mermaid.initialize({ flowchart:{ htmlLabels: false } });- * - * **Example 2:**
- * - * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). - * A description of each option follows below. - * - * @name Configuration +/** + * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click + * here](8.6.0_docs.md)].** + * + * ## **What follows are config instructions for older versions** + * + * These are the default options which can be overridden with the initialization call like so: + * + * **Example 1:**
mermaid.initialize({ flowchart:{ htmlLabels: false } });+ * + * **Example 2:**
+ * + * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). + * A description of each option follows below. + * + * @name Configuration */ var config = { - /** - * Theme , the CSS style sheet - * - * | Parameter | Description | Type | Required | Values | - * | --------- | --------------- | ------ | -------- | ---------------------------------------------- | - * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | - * - * **Notes:** To disable any pre-defined mermaid theme, use "null".
"theme": "forest", - * "themeCSS": ".node rect { fill: red; }"+ /** + * Theme , the CSS style sheet + * + * | Parameter | Description | Type | Required | Values | + * | --------- | --------------- | ------ | -------- | ---------------------------------------------- | + * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | + * + * **Notes:** To disable any pre-defined mermaid theme, use "null".
"theme": "forest", + * "themeCSS": ".node rect { fill: red; }"*/ theme: 'default', themeVariables: _themes__WEBPACK_IMPORTED_MODULE_0__["default"]["default"].getThemeVariables(), @@ -12481,472 +12557,472 @@ var config = { maxTextSize: 50000, darkMode: false, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | - * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | - * - * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | + * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | + * + * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. */ fontFamily: '"trebuchet ms", verdana, arial, sans-serif;', - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- | - * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 1, 2, 3, 4, 5 | - * - * **Notes:** - * - * - Debug: 1 - * - Info: 2 - * - Warn: 3 - * - Error: 4 - * - Fatal: 5 (default) + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- | + * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 1, 2, 3, 4, 5 | + * + * **Notes:** + * + * - Debug: 1 + * - Info: 2 + * - Warn: 3 + * - Error: 4 + * - Fatal: 5 (default) */ logLevel: 5, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- | - * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' | - * - * **Notes**: - * - * - **strict**: (**default**) tags in text are encoded, click functionality is disabled - * - **loose**: tags in text are allowed, click functionality is enabled - * - **antiscript**: html tags in text are allowed, (only script element is removed), click - * functionality is enabled + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- | + * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' | + * + * **Notes**: + * + * - **strict**: (**default**) tags in text are encoded, click functionality is disabled + * - **loose**: tags in text are allowed, click functionality is enabled + * - **antiscript**: html tags in text are allowed, (only script element is removed), click + * functionality is enabled */ securityLevel: 'strict', - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | -------------------------------------------- | ------- | -------- | ----------- | - * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | - * - * **Notes:** Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | -------------------------------------------- | ------- | -------- | ----------- | + * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | + * + * **Notes:** Default value: true */ startOnLoad: true, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | - * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | - * - * **Notes**: - * - * This matters if you are using base tag settings. - * - * Default value: false + /** + * | Parameter | Description | Type | Required | Values | + * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | + * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | + * + * **Notes**: + * + * This matters if you are using base tag settings. + * + * Default value: false */ arrowMarkerAbsolute: false, - /** - * This option controls which currentConfig keys are considered _secure_ and can only be changed - * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the - * `secure` keys in the current currentConfig. This prevents malicious graph directives from - * overriding a site's default security. - * - * **Notes**: - * - * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] + /** + * This option controls which currentConfig keys are considered _secure_ and can only be changed + * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the + * `secure` keys in the current currentConfig. This prevents malicious graph directives from + * overriding a site's default security. + * + * **Notes**: + * + * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] */ secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'], - /** - * This option controls if the generated ids of nodes in the SVG are generated randomly or based - * on a seed. If set to false, the IDs are generated based on the current date and thus are not - * deterministic. This is the default behaviour. - * - * **Notes**: - * - * This matters if your files are checked into sourcecontrol e.g. git and should not change unless - * content is changed. - * - * Default value: false + /** + * This option controls if the generated ids of nodes in the SVG are generated randomly or based + * on a seed. If set to false, the IDs are generated based on the current date and thus are not + * deterministic. This is the default behaviour. + * + * **Notes**: + * + * This matters if your files are checked into sourcecontrol e.g. git and should not change unless + * content is changed. + * + * Default value: false */ deterministicIds: false, - /** - * This option is the optional seed for deterministic ids. if set to undefined but - * deterministicIds is true, a simple number iterator is used. You can set this attribute to base - * the seed on a static string. + /** + * This option is the optional seed for deterministic ids. if set to undefined but + * deterministicIds is true, a simple number iterator is used. You can set this attribute to base + * the seed on a static string. */ deterministicIDSeed: undefined, /** The object containing configurations specific for flowcharts */ flowchart: { - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | - * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - * - * **Notes:** - * - * The amount of padding around the diagram as a whole so that embedded diagrams have margins, - * expressed in pixels - * - * Default value: 8 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | + * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + * + * **Notes:** + * + * The amount of padding around the diagram as a whole so that embedded diagrams have margins, + * expressed in pixels + * + * Default value: 8 */ diagramPadding: 8, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | - * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | - * - * **Notes:** Default value: true. + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | + * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | + * + * **Notes:** Default value: true. */ htmlLabels: true, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | - * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | - * - * **Notes:** - * - * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the - * vertical spacing for LR as well as RL graphs.** - * - * Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | + * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | + * + * **Notes:** + * + * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the + * vertical spacing for LR as well as RL graphs.** + * + * Default value: 50 */ nodeSpacing: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | - * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | - * - * **Notes**: - * - * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal - * spacing for LR as well as RL graphs. - * - * Default value 50 + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | + * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | + * + * **Notes**: + * + * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal + * spacing for LR as well as RL graphs. + * + * Default value 50 */ rankSpacing: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | - * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | - * - * **Notes:** - * - * Default Value: 'basis' + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | + * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | + * + * **Notes:** + * + * Default Value: 'basis' */ curve: 'basis', // Only used in new experimental rendering // represents the padding between the labels and the shape padding: 15, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See notes | boolean | 4 | true, false | - * - * **Notes:** - * - * When this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ----------- | ------- | -------- | ----------------------- | - * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - * - * **Notes:** - * - * Decides which rendering engine that is to be used for the rendering. Legal values are: - * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - * - * Default value: 'dagre-d3' + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ----------- | ------- | -------- | ----------------------- | + * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + * + * **Notes:** + * + * Decides which rendering engine that is to be used for the rendering. Legal values are: + * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + * + * Default value: 'dagre-d3' */ defaultRenderer: 'dagre-d3' }, /** The object containing configurations specific for sequence diagrams */ sequence: { - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ---------------------------- | ------- | -------- | ------------------ | - * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | - * - * **Notes:** Default value :10 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ---------------------------- | ------- | -------- | ------------------ | + * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | + * + * **Notes:** Default value :10 */ activationWidth: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | - * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 */ diagramMarginX: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | - * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ diagramMarginY: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | --------------------- | ------- | -------- | ------------------ | - * | actorMargin | Margin between actors | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------- | ------- | -------- | ------------------ | + * | actorMargin | Margin between actors | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 */ actorMargin: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | -------------------- | ------- | -------- | ------------------ | - * | width | Width of actor boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 150 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | -------------------- | ------- | -------- | ------------------ | + * | width | Width of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 150 */ width: 150, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | --------------------- | ------- | -------- | ------------------ | - * | height | Height of actor boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 65 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | --------------------- | ------- | -------- | ------------------ | + * | height | Height of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 65 */ height: 65, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ------------------------ | ------- | -------- | ------------------ | - * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ------------------------ | ------- | -------- | ------------------ | + * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ boxMargin: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ | - * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 5 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ | + * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 5 */ boxTextMargin: 5, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | ------------------- | ------- | -------- | ------------------ | - * | noteMargin | margin around notes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | ------------------- | ------- | -------- | ------------------ | + * | noteMargin | margin around notes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ noteMargin: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | ---------------------- | ------- | -------- | ------------------ | - * | messageMargin | Space between messages | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 35 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | ---------------------- | ------- | -------- | ------------------ | + * | messageMargin | Space between messages | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 35 */ messageMargin: 35, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------ | --------------------------- | ------ | -------- | ------------------------- | - * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | - * - * **Notes:** Default value: 'center' + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | --------------------------- | ------ | -------- | ------------------------- | + * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | + * + * **Notes:** Default value: 'center' */ messageAlign: 'center', - /** - * | Parameter | Description | Type | Required | Values | - * | ------------ | --------------------------- | ------- | -------- | ----------- | - * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false | - * - * **Notes:** Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | --------------------------- | ------- | -------- | ----------- | + * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false | + * + * **Notes:** Default value: true */ mirrorActors: true, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | - * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | - * - * **Notes:** - * - * Default value: false. + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | + * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | + * + * **Notes:** + * + * Default value: false. */ forceMenus: false, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ | - * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | - * - * **Notes:** - * - * Depending on css styling this might need adjustment. - * - * Default value: 1 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ | + * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | + * + * **Notes:** + * + * Depending on css styling this might need adjustment. + * + * Default value: 1 */ bottomMarginAdj: 1, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See Notes | boolean | Required | true, false | - * - * **Notes:** When this flag is set to true, the height and width is set to 100% and is then - * scaling with the available space. If set to false, the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See Notes | boolean | Required | true, false | + * + * **Notes:** When this flag is set to true, the height and width is set to 100% and is then + * scaling with the available space. If set to false, the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ------------------------------------ | ------- | -------- | ----------- | - * | rightAngles | display curve arrows as right angles | boolean | Required | true, false | - * - * **Notes:** - * - * This will display arrows that start and begin at the same node as right angles, rather than a curve - * - * Default value: false + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ------------------------------------ | ------- | -------- | ----------- | + * | rightAngles | display curve arrows as right angles | boolean | Required | true, false | + * + * **Notes:** + * + * This will display arrows that start and begin at the same node as right angles, rather than a curve + * + * Default value: false */ rightAngles: false, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------------- | ------------------------------- | ------- | -------- | ----------- | - * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | - * - * **Notes:** Default value: false + /** + * | Parameter | Description | Type | Required | Values | + * | ------------------- | ------------------------------- | ------- | -------- | ----------- | + * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | + * + * **Notes:** Default value: false */ showSequenceNumbers: false, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | - * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | - * - * **Notes:** **Default value 14**.. + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | + * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | + * + * **Notes:** **Default value 14**.. */ actorFontSize: 14, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | - * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | - * - * **Notes:** Default value: "'Open Sans", sans-serif' + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | + * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | + * + * **Notes:** Default value: "'Open Sans", sans-serif' */ actorFontFamily: '"Open Sans", sans-serif', - /** - * This sets the font weight of the actor's description - * - * **Notes:** Default value: 400. + /** + * This sets the font weight of the actor's description + * + * **Notes:** Default value: 400. */ actorFontWeight: 400, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | - * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 14 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | + * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 14 */ noteFontSize: 14, - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | - * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | - * - * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | + * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | + * + * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' */ noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif', - /** - * This sets the font weight of the note's description - * - * **Notes:** Default value: 400 + /** + * This sets the font weight of the note's description + * + * **Notes:** Default value: 400 */ noteFontWeight: 400, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | - * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | - * - * **Notes:** Default value: 'center' + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | + * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | + * + * **Notes:** Default value: 'center' */ noteAlign: 'center', - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- | - * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | - * - * **Notes:** Default value: 16 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- | + * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | + * + * **Notes:** Default value: 16 */ messageFontSize: 16, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | - * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | - * - * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' + /** + * | Parameter | Description | Type | Required | Values | + * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | + * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | + * + * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' */ messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif', - /** - * This sets the font weight of the message's description - * - * **Notes:** Default value: 400. + /** + * This sets the font weight of the message's description + * + * **Notes:** Default value: 400. */ messageFontWeight: 400, - /** - * This sets the auto-wrap state for the diagram - * - * **Notes:** Default value: false. + /** + * This sets the auto-wrap state for the diagram + * + * **Notes:** Default value: false. */ wrap: false, - /** - * This sets the auto-wrap padding for the diagram (sides only) - * - * **Notes:** Default value: 0. + /** + * This sets the auto-wrap padding for the diagram (sides only) + * + * **Notes:** Default value: 0. */ wrapPadding: 10, - /** - * This sets the width of the loop-box (loop, alt, opt, par) - * - * **Notes:** Default value: 50. + /** + * This sets the width of the loop-box (loop, alt, opt, par) + * + * **Notes:** Default value: 50. */ labelBoxWidth: 50, - /** - * This sets the height of the loop-box (loop, alt, opt, par) - * - * **Notes:** Default value: 20. + /** + * This sets the height of the loop-box (loop, alt, opt, par) + * + * **Notes:** Default value: 20. */ labelBoxHeight: 20, messageFont: function messageFont() { @@ -12974,133 +13050,133 @@ var config = { /** The object containing configurations specific for gantt diagrams */ gantt: { - /** - * ### titleTopMargin - * - * | Parameter | Description | Type | Required | Values | - * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | - * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 25 + /** + * ### titleTopMargin + * + * | Parameter | Description | Type | Required | Values | + * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | + * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 25 */ titleTopMargin: 25, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ----------------------------------- | ------- | -------- | ------------------ | - * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 20 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ----------------------------------- | ------- | -------- | ------------------ | + * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 20 */ barHeight: 20, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | - * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | - * - * **Notes:** Default value: 4 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | + * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | + * + * **Notes:** Default value: 4 */ barGap: 4, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | - * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | + * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 */ topPadding: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | - * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 75 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | + * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 75 */ rightPadding: 75, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | - * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 75 + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | + * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 75 */ leftPadding: 75, - /** - * | Parameter | Description | Type | Required | Values | - * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | - * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 35 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | + * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 35 */ gridLineStartPadding: 35, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ----------- | ------- | -------- | ------------------ | - * | fontSize | Font size | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 11 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ----------- | ------- | -------- | ------------------ | + * | fontSize | Font size | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 11 */ fontSize: 11, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ---------------------- | ------- | -------- | ------------------ | - * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 11 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ---------------------- | ------- | -------- | ------------------ | + * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 11 */ sectionFontSize: 11, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | - * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | - * - * **Notes:** Default value: 4 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | + * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | + * + * **Notes:** Default value: 4 */ numberSectionStyles: 4, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | --------------------------- | ---- | -------- | ---------------- | - * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | - * - * **Notes:** - * - * This might need adjustment to match your locale and preferences - * - * Default value: '%Y-%m-%d'. + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | --------------------------- | ---- | -------- | ---------------- | + * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | + * + * **Notes:** + * + * This might need adjustment to match your locale and preferences + * + * Default value: '%Y-%m-%d'. */ axisFormat: '%Y-%m-%d', - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See notes | boolean | 4 | true, false | - * - * **Notes:** - * - * When this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ----------- | ------- | -------- | ----------- | - * | topAxis | See notes | Boolean | 4 | True, False | - * - * **Notes:** when this flag is set date labels will be added to the top of the chart - * - * **Default value false**. + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ----------- | ------- | -------- | ----------- | + * | topAxis | See notes | Boolean | 4 | True, False | + * + * **Notes:** when this flag is set date labels will be added to the top of the chart + * + * **Default value false**. */ topAxis: false, useWidth: undefined @@ -13108,137 +13184,137 @@ var config = { /** The object containing configurations specific for journey diagrams */ journey: { - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | - * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 */ diagramMarginX: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | - * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ diagramMarginY: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | --------------------- | ------- | -------- | ------------------ | - * | actorMargin | Margin between actors | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 50 + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------- | ------- | -------- | ------------------ | + * | actorMargin | Margin between actors | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 */ leftMargin: 150, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | -------------------- | ------- | -------- | ------------------ | - * | width | Width of actor boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 150 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | -------------------- | ------- | -------- | ------------------ | + * | width | Width of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 150 */ width: 150, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | --------------------- | ------- | -------- | ------------------ | - * | height | Height of actor boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 65 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | --------------------- | ------- | -------- | ------------------ | + * | height | Height of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 65 */ height: 50, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ------------------------ | ------- | -------- | ------------------ | - * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ------------------------ | ------- | -------- | ------------------ | + * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ boxMargin: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ | - * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 5 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ | + * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 5 */ boxTextMargin: 5, - /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | ------------------- | ------- | -------- | ------------------ | - * | noteMargin | Margin around notes | Integer | Required | Any Positive Value | - * - * **Notes:** Default value: 10 + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | ------------------- | ------- | -------- | ------------------ | + * | noteMargin | Margin around notes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 */ noteMargin: 10, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | ----------------------- | ------- | -------- | ------------------ | - * | messageMargin | Space between messages. | Integer | Required | Any Positive Value | - * - * **Notes:** - * - * Space between messages. - * - * Default value: 35 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | ----------------------- | ------- | -------- | ------------------ | + * | messageMargin | Space between messages. | Integer | Required | Any Positive Value | + * + * **Notes:** + * + * Space between messages. + * + * Default value: 35 */ messageMargin: 35, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------ | --------------------------- | ---- | -------- | ------------------------- | - * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - * - * **Notes:** Default value: 'center' + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | --------------------------- | ---- | -------- | ------------------------- | + * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | + * + * **Notes:** Default value: 'center' */ messageAlign: 'center', - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ | - * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - * - * **Notes:** - * - * Depending on css styling this might need adjustment. - * - * Default value: 1 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ | + * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | + * + * **Notes:** + * + * Depending on css styling this might need adjustment. + * + * Default value: 1 */ bottomMarginAdj: 1, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See notes | boolean | 4 | true, false | - * - * **Notes:** - * - * When this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | --------------------------------- | ---- | -------- | ----------- | - * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - * - * **Notes:** - * - * This will display arrows that start and begin at the same node as right angles, rather than a curves - * - * Default value: false + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------------------- | ---- | -------- | ----------- | + * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | + * + * **Notes:** + * + * This will display arrows that start and begin at the same node as right angles, rather than a curves + * + * Default value: false */ rightAngles: false, taskFontSize: 14, @@ -13255,31 +13331,31 @@ var config = { class: { arrowMarkerAbsolute: false, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See notes | boolean | 4 | true, false | - * - * **Notes:** - * - * When this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ----------- | ------- | -------- | ----------------------- | - * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - * - * **Notes**: - * - * Decides which rendering engine that is to be used for the rendering. Legal values are: - * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - * - * Default value: 'dagre-d3' + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ----------- | ------- | -------- | ----------------------- | + * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + * + * **Notes**: + * + * Decides which rendering engine that is to be used for the rendering. Legal values are: + * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + * + * Default value: 'dagre-d3' */ defaultRenderer: 'dagre-wrapper' }, @@ -13303,138 +13379,138 @@ var config = { compositTitleSize: 35, radius: 5, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See notes | boolean | 4 | true, false | - * - * **Notes:** - * - * When this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true */ useMaxWidth: true, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ----------- | ------- | -------- | ----------------------- | - * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - * - * **Notes:** - * - * Decides which rendering engine that is to be used for the rendering. Legal values are: - * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - * - * Default value: 'dagre-d3' + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ----------- | ------- | -------- | ----------------------- | + * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + * + * **Notes:** + * + * Decides which rendering engine that is to be used for the rendering. Legal values are: + * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + * + * Default value: 'dagre-d3' */ defaultRenderer: 'dagre-wrapper' }, /** The object containing configurations specific for entity relationship diagrams */ er: { - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | - * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - * - * **Notes:** - * - * The amount of padding around the diagram as a whole so that embedded diagrams have margins, - * expressed in pixels - * - * Default value: 20 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | + * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + * + * **Notes:** + * + * The amount of padding around the diagram as a whole so that embedded diagrams have margins, + * expressed in pixels + * + * Default value: 20 */ diagramPadding: 20, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | - * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | - * - * **Notes:** - * - * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. - * - * T = top, B = bottom, L = left, and R = right. - * - * Default value: 'TB' + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | + * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | + * + * **Notes:** + * + * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. + * + * T = top, B = bottom, L = left, and R = right. + * + * Default value: 'TB' */ layoutDirection: 'TB', - /** - * | Parameter | Description | Type | Required | Values | - * | -------------- | ---------------------------------- | ------- | -------- | ------------------ | - * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | - * - * **Notes:** Expressed in pixels. Default value: 100 + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ---------------------------------- | ------- | -------- | ------------------ | + * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | + * + * **Notes:** Expressed in pixels. Default value: 100 */ minEntityWidth: 100, - /** - * | Parameter | Description | Type | Required | Values | - * | --------------- | ----------------------------------- | ------- | -------- | ------------------ | - * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | - * - * **Notes:** Expressed in pixels Default value: 75 + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ----------------------------------- | ------- | -------- | ------------------ | + * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | + * + * **Notes:** Expressed in pixels Default value: 75 */ minEntityHeight: 75, - /** - * | Parameter | Description | Type | Required | Values | - * | ------------- | ----------------------------------------------------------- | ------- | -------- | ------------------ | - * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value | - * - * **Notes:** - * - * The minimum internal padding betweentext in an entity box and the enclosing box borders, - * expressed in pixels. - * - * Default value: 15 + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | ----------------------------------------------------------- | ------- | -------- | ------------------ | + * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value | + * + * **Notes:** + * + * The minimum internal padding betweentext in an entity box and the enclosing box borders, + * expressed in pixels. + * + * Default value: 15 */ entityPadding: 15, - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ----------------------------------- | ------ | -------- | -------------------- | - * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | - * - * **Notes:** Default value: 'gray' + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ----------------------------------- | ------ | -------- | -------------------- | + * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | + * + * **Notes:** Default value: 'gray' */ stroke: 'gray', - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | -------------------------- | ------ | -------- | -------------------- | - * | fill | Fill color of entity boxes | string | 4 | Any recognized color | - * - * **Notes:** Default value: 'honeydew' + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | -------------------------- | ------ | -------- | -------------------- | + * | fill | Fill color of entity boxes | string | 4 | Any recognized color | + * + * **Notes:** Default value: 'honeydew' */ fill: 'honeydew', - /** - * | Parameter | Description | Type | Required | Values | - * | --------- | ------------------- | ------- | -------- | ------------------ | - * | fontSize | Font Size in pixels | Integer | | Any Positive Value | - * - * **Notes:** - * - * Font size (expressed as an integer representing a number of pixels) Default value: 12 + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ------------------- | ------- | -------- | ------------------ | + * | fontSize | Font Size in pixels | Integer | | Any Positive Value | + * + * **Notes:** + * + * Font size (expressed as an integer representing a number of pixels) Default value: 12 */ fontSize: 12, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See Notes | boolean | Required | true, false | - * - * **Notes:** - * - * When this flag is set to true, the diagram width is locked to 100% and scaled based on - * available space. If set to false, the diagram reserves its absolute width. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See Notes | boolean | Required | true, false | + * + * **Notes:** + * + * When this flag is set to true, the diagram width is locked to 100% and scaled based on + * available space. If set to false, the diagram reserves its absolute width. + * + * Default value: true */ useMaxWidth: true }, @@ -13443,17 +13519,17 @@ var config = { pie: { useWidth: undefined, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See Notes | boolean | Required | true, false | - * - * **Notes:** - * - * When this flag is set to true, the diagram width is locked to 100% and scaled based on - * available space. If set to false, the diagram reserves its absolute width. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See Notes | boolean | Required | true, false | + * + * **Notes:** + * + * When this flag is set to true, the diagram width is locked to 100% and scaled based on + * available space. If set to false, the diagram reserves its absolute width. + * + * Default value: true */ useMaxWidth: true }, @@ -13462,17 +13538,17 @@ var config = { requirement: { useWidth: undefined, - /** - * | Parameter | Description | Type | Required | Values | - * | ----------- | ----------- | ------- | -------- | ----------- | - * | useMaxWidth | See Notes | boolean | Required | true, false | - * - * **Notes:** - * - * When this flag is set to true, the diagram width is locked to 100% and scaled based on - * available space. If set to false, the diagram reserves its absolute width. - * - * Default value: true + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See Notes | boolean | Required | true, false | + * + * **Notes:** + * + * When this flag is set to true, the diagram width is locked to 100% and scaled based on + * available space. If set to false, the diagram reserves its absolute width. + * + * Default value: true */ useMaxWidth: true, rect_fill: '#f9f9f9', @@ -13537,16 +13613,20 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "cleanupLabel": () => (/* binding */ cleanupLabel), /* harmony export */ "clear": () => (/* binding */ clear), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ "getAccDescription": () => (/* binding */ getAccDescription), /* harmony export */ "getClass": () => (/* binding */ getClass), /* harmony export */ "getClasses": () => (/* binding */ getClasses), /* harmony export */ "getRelations": () => (/* binding */ getRelations), +/* harmony export */ "getTitle": () => (/* binding */ getTitle), /* harmony export */ "lineType": () => (/* binding */ lineType), /* harmony export */ "lookUpDomId": () => (/* binding */ lookUpDomId), /* harmony export */ "parseDirective": () => (/* binding */ parseDirective), /* harmony export */ "relationType": () => (/* binding */ relationType), +/* harmony export */ "setAccDescription": () => (/* binding */ setAccDescription), /* harmony export */ "setClickEvent": () => (/* binding */ setClickEvent), /* harmony export */ "setCssClass": () => (/* binding */ setCssClass), -/* harmony export */ "setLink": () => (/* binding */ setLink) +/* harmony export */ "setLink": () => (/* binding */ setLink), +/* harmony export */ "setTitle": () => (/* binding */ setTitle) /* harmony export */ }); /* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "d3"); /* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(d3__WEBPACK_IMPORTED_MODULE_0__); @@ -13602,11 +13682,11 @@ var splitClassNameAndType = function splitClassNameAndType(id) { type: genericType }; }; -/** - * Function called by parser when a node definition has been found. - * - * @param id - * @public +/** + * Function called by parser when a node definition has been found. + * + * @param id + * @public */ @@ -13625,11 +13705,11 @@ var addClass = function addClass(id) { }; classCounter++; }; -/** - * Function to lookup domId from id in the graph definition. - * - * @param id - * @public +/** + * Function to lookup domId from id in the graph definition. + * + * @param id + * @public */ var lookUpDomId = function lookUpDomId(id) { @@ -13666,27 +13746,27 @@ var addRelation = function addRelation(relation) { relation.relationTitle2 = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(relation.relationTitle2.trim(), _config__WEBPACK_IMPORTED_MODULE_2__.getConfig()); relations.push(relation); }; -/** - * Adds an annotation to the specified class Annotations mark special properties of the given type - * (like 'interface' or 'service') - * - * @param className The class name - * @param annotation The name of the annotation without any brackets - * @public +/** + * Adds an annotation to the specified class Annotations mark special properties of the given type + * (like 'interface' or 'service') + * + * @param className The class name + * @param annotation The name of the annotation without any brackets + * @public */ var addAnnotation = function addAnnotation(className, annotation) { var validatedClassName = splitClassNameAndType(className).className; classes[validatedClassName].annotations.push(annotation); }; -/** - * Adds a member to the specified class - * - * @param className The class name - * @param member The full name of the member. If the member is enclosed in <
Additionally, dissimilar types will not clobber unless the - * config.clobber parameter === true. Example: - * - * ```js - * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' }; - * let config_1 = { foo: 'foo', bar: 'bar' }; - * let result = assignWithDepth(config_0, config_1); - * console.log(result); - * //-> result: { foo: { bar: 'bar' }, bar: 'bar' } - * ``` - * - * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a - * destructured array of objects and dst is not an array, assignWithDepth will apply each element - * of src to dst in order. - * @param dst - * @param src - * @param config - * @param dst - * @param src - * @param config - * @param dst - * @param src - * @param config - * @param {any} dst - The destination of the merge - * @param {any} src - The source object(s) to merge into destination - * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth - * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default: - * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }` - * @returns {any} +/** + * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the + * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively) + * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of + * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and + * effectively merged with src[`k`]
Additionally, dissimilar types will not clobber unless the
+ * config.clobber parameter === true. Example:
+ *
+ * ```js
+ * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
+ * let config_1 = { foo: 'foo', bar: 'bar' };
+ * let result = assignWithDepth(config_0, config_1);
+ * console.log(result);
+ * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
+ * ```
+ *
+ * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a
+ * destructured array of objects and dst is not an array, assignWithDepth will apply each element
+ * of src to dst in order.
+ * @param dst
+ * @param src
+ * @param config
+ * @param dst
+ * @param src
+ * @param config
+ * @param dst
+ * @param src
+ * @param config
+ * @param {any} dst - The destination of the merge
+ * @param {any} src - The source object(s) to merge into destination
+ * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth
+ * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:
+ * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`
+ * @returns {any}
*/
var assignWithDepth = function assignWithDepth(dst, src, config) {
@@ -30191,23 +30515,23 @@ var getTextObj = function getTextObj() {
valign: undefined
};
};
-/**
- * Adds text to an element
- *
- * @param {SVGElement} elem Element to add text to
- * @param {{
- * text: string;
- * x: number;
- * y: number;
- * anchor: 'start' | 'middle' | 'end';
- * fontFamily: string;
- * fontSize: string | number;
- * fontWeight: string | number;
- * fill: string;
- * class: string | undefined;
- * textMargin: number;
- * }} textData
- * @returns {SVGTextElement} Text element with given styling and content
+/**
+ * Adds text to an element
+ *
+ * @param {SVGElement} elem Element to add text to
+ * @param {{
+ * text: string;
+ * x: number;
+ * y: number;
+ * anchor: 'start' | 'middle' | 'end';
+ * fontFamily: string;
+ * fontSize: string | number;
+ * fontWeight: string | number;
+ * fill: string;
+ * class: string | undefined;
+ * textMargin: number;
+ * }} textData
+ * @returns {SVGTextElement} Text element with given styling and content
*/
var drawSimpleText = function drawSimpleText(elem, textData) {
@@ -30317,15 +30641,15 @@ var breakString = memoize(function (word, maxWidth) {
var config = arguments.length > 3 ? arguments[3] : undefined;
return "".concat(word, "-").concat(maxWidth, "-").concat(hyphenCharacter, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
});
-/**
- * This calculates the text's height, taking into account the wrap breaks and both the statically
- * configured height, width, and the length of the text (in pixels).
- *
- * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.
- *
- * @param {any} text The text to measure
- * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
- * @returns {any} - The height for the given text
+/**
+ * This calculates the text's height, taking into account the wrap breaks and both the statically
+ * configured height, width, and the length of the text (in pixels).
+ *
+ * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.
+ *
+ * @param {any} text The text to measure
+ * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
+ * @returns {any} - The height for the given text
*/
var calculateTextHeight = function calculateTextHeight(text, config) {
@@ -30337,12 +30661,12 @@ var calculateTextHeight = function calculateTextHeight(text, config) {
}, config);
return calculateTextDimensions(text, config).height;
};
-/**
- * This calculates the width of the given text, font size and family.
- *
- * @param {any} text - The text to calculate the width of
- * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
- * @returns {any} - The width for the given text
+/**
+ * This calculates the width of the given text, font size and family.
+ *
+ * @param {any} text - The text to calculate the width of
+ * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
+ * @returns {any} - The width for the given text
*/
var calculateTextWidth = function calculateTextWidth(text, config) {
@@ -30353,13 +30677,13 @@ var calculateTextWidth = function calculateTextWidth(text, config) {
}, config);
return calculateTextDimensions(text, config).width;
};
-/**
- * This calculates the dimensions of the given text, font size, font family, font weight, and margins.
- *
- * @param {any} text - The text to calculate the width of
- * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting
- * the resulting size
- * @returns - The width for the given text
+/**
+ * This calculates the dimensions of the given text, font size, font family, font weight, and margins.
+ *
+ * @param {any} text - The text to calculate the width of
+ * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting
+ * the resulting size
+ * @returns - The width for the given text
*/
var calculateTextDimensions = memoize(function (text, config) {
@@ -30438,11 +30762,11 @@ var calculateTextDimensions = memoize(function (text, config) {
}, function (text, config) {
return "".concat(text, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
});
-/**
- * Applys d3 attributes
- *
- * @param {any} d3Elem D3 Element to apply the attributes onto
- * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes
+/**
+ * Applys d3 attributes
+ *
+ * @param {any} d3Elem D3 Element to apply the attributes onto
+ * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes
*/
var d3Attrs = function d3Attrs(d3Elem, attrs) {
@@ -30460,13 +30784,13 @@ var d3Attrs = function d3Attrs(d3Elem, attrs) {
_iterator2.f();
}
};
-/**
- * Gives attributes for an SVG's size given arguments
- *
- * @param {number} height The height of the SVG
- * @param {number} width The width of the SVG
- * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
- * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG
+/**
+ * Gives attributes for an SVG's size given arguments
+ *
+ * @param {number} height The height of the SVG
+ * @param {number} width The width of the SVG
+ * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
+ * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG
*/
@@ -30483,13 +30807,13 @@ var calculateSvgSizeAttrs = function calculateSvgSizeAttrs(height, width, useMax
return attrs;
};
-/**
- * Applies attributes from `calculateSvgSizeAttrs`
- *
- * @param {SVGSVGElement} svgElem The SVG Element to configure
- * @param {number} height The height of the SVG
- * @param {number} width The width of the SVG
- * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
+/**
+ * Applies attributes from `calculateSvgSizeAttrs`
+ *
+ * @param {SVGSVGElement} svgElem The SVG Element to configure
+ * @param {number} height The height of the SVG
+ * @param {number} width The width of the SVG
+ * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
*/
var configureSvgSize = function configureSvgSize(svgElem, height, width, useMaxWidth) {
@@ -30516,11 +30840,11 @@ var initIdGeneratior = /*#__PURE__*/function () {
return iterator;
}();
var decoder;
-/**
- * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}
- *
- * @param {string} html HTML as a string
- * @returns Unescaped HTML
+/**
+ * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}
+ *
+ * @param {string} html HTML as a string
+ * @returns Unescaped HTML
*/
var entityDecode = function entityDecode(html) {
@@ -30531,10 +30855,10 @@ var entityDecode = function entityDecode(html) {
decoder.innerHTML = html;
return unescape(decoder.textContent);
};
-/**
- * Sanitizes directive objects
- *
- * @param {object} args Directive's JSON
+/**
+ * Sanitizes directive objects
+ *
+ * @param {object} args Directive's JSON
*/
var directiveSanitizer = function directiveSanitizer(args) {
@@ -31393,7 +31717,7 @@ module.exports = require("stylis");
/***/ ((module) => {
"use strict";
-module.exports = JSON.parse('{"name":"mermaid","version":"9.0.1","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext js,html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^6.0.0","cypress-image-snapshot":"^4.0.1","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","graphlib":"^2.1.8","khroma":"^1.4.1","moment-mini":"^2.24.0","stylis":"^4.0.10"},"devDependencies":{"@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^16.0.0","@commitlint/config-conventional":"^16.0.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.5.2","documentation":"13.2.0","eslint":"^8.2.0","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^6.2.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^38.0.3","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","identity-obj-proxy":"^3.0.0","jest":"^27.0.6","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^12.1.2","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}');
+module.exports = JSON.parse('{"name":"mermaid","version":"9.0.1","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext js,html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","graphlib":"^2.1.8","khroma":"^2.0.0","moment-mini":"^2.24.0","stylis":"^4.0.10"},"devDependencies":{"@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^16.0.0","@commitlint/config-conventional":"^16.0.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.5.4","cypress-image-snapshot":"^4.0.1","documentation":"13.2.0","eslint":"^8.2.0","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^6.2.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^39.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","identity-obj-proxy":"^3.0.0","jest":"^27.0.6","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^12.1.2","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}');
/***/ })
diff --git a/dist/mermaid.core.js.map b/dist/mermaid.core.js.map
index 7436c0f3a..fc5d0ddb7 100644
--- a/dist/mermaid.core.js.map
+++ b/dist/mermaid.core.js.map
@@ -1 +1 @@
-{"version":3,"file":"mermaid.core.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,4uCAA4uC;AACvvC,aAAa,yvBAAyvB;AACtwB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,kEAAkE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,mEAAmE,EAAE,QAAQ,sDAAsD,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,oBAAoB,sMAAsM,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,kHAAkH,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,mHAAmH,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,gNAAgN,gBAAgB,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,8CAA8C,eAAe,UAAU,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,sBAAsB,2DAA2D,+CAA+C,6BAA6B,WAAW,GAAG,WAAW,EAAE,wBAAwB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AACh1F,iBAAiB,8FAA8F;AAC/G;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,yIAAyI,8BAA8B,mBAAmB,yBAAyB,gIAAgI,oBAAoB,WAAW,yBAAyB,0fAA0f,EAAE,MAAM,YAAY,EAAE;AAC56B,aAAa,iBAAiB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,kBAAkB,kCAAkC,kBAAkB,qCAAqC,SAAS,kCAAkC,WAAW,2CAA2C,YAAY,kCAAkC,aAAa,kCAAkC,WAAW,kCAAkC,YAAY;AACpgB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACt3BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,+vBAA+vB;AAC1wB,aAAa,2aAA2a;AACxb;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,mFAAmF,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,kDAAkD,uDAAuD,kDAAkD,GAAG,UAAU,EAAE,UAAU,mDAAmD,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,mGAAmG,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,eAAe,6BAA6B,2BAA2B,UAAU,uEAAuE,aAAa;AAC9pC,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,yBAAyB;AACzB;AACA,qCAAqC;AACrC;AACA,yBAAyB;AACzB;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0GAA0G,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,gGAAgG,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AAC7gB,aAAa,kBAAkB,8BAA8B,UAAU,8BAA8B,mBAAmB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,UAAU,iDAAiD,YAAY;AAClU,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AClxBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,i4DAAi4D;AAC54D,aAAa,kpCAAkpC;AAC/pC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C,WAAW;AACtG;AACA;AACA,+CAA+C,gDAAgD,WAAW;AAC1G;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC,qDAAqD;AACxF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,mBAAmB,0xBAA0xB,21JAA21J,UAAU;AAC9vL,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,WAAW,6BAA6B,QAAQ,6DAA6D,WAAW,gCAAgC,YAAY;AACvjB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACzgCA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6iBAA6iB;AACxjB,aAAa,kWAAkW;AAC/W;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,2IAA2I,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,0GAA0G,uKAAuK,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AACv5B,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,qBAAqB,8TAA8T,2EAA2E,2BAA2B,2BAA2B,6BAA6B,qDAAqD,2BAA2B,kBAAkB,kBAAkB;AACttB,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,YAAY;AAC/Z,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7vBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,mhBAAmhB,0BAA0B;AACxjB,aAAa,wTAAwT,EAAE;AACvU;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,kDAAkD,EAAE,MAAM,EAAE,mDAAmD,EAAE,mDAAmD,EAAE,2CAA2C,4CAA4C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,4EAA4E,6BAA6B,gBAAgB,gBAAgB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,8BAA8B,UAAU,EAAE,UAAU,EAAE,UAAU,eAAe,wDAAwD,GAAG,aAAa,EAAE,UAAU,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,2CAA2C,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,eAAe,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,GAAG,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,eAAe,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,GAAG,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B;AACjyG,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,UAAU,wBAAwB,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB;AACvF,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,YAAY,kCAAkC,WAAW,kCAAkC,YAAY;AAC1T,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACt5BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,iSAAiS,mHAAmH;AAC/Z,aAAa,mJAAmJ,2FAA2F;AAC3P;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,yDAAyD,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,0BAA0B,yDAAyD,iBAAiB,gBAAgB,sEAAsE,aAAa,EAAE,UAAU;AAC1sB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA,sCAAsC;AACtC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB;AACrI,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,mBAAmB,+BAA+B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACvW,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC3pBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6iCAA6iC;AACxjC,aAAa,yrBAAyrB;AACtsB;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;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,CAAC;AACD,SAAS,yBAAyB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8HAA8H,EAAE,uBAAuB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,eAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,8CAA8C,gBAAgB,4BAA4B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AAC5qF,iBAAiB,2QAA2Q;AAC5R;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yHAAyH,WAAW,qoBAAqoB;AACh2B,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,cAAc,6BAA6B,UAAU,6BAA6B,WAAW,kCAAkC,YAAY;AAC9V,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC/xBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,yhCAAyhC;AACpiC,aAAa,woBAAwoB;AACrpB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,yBAAyB,gDAAgD;AACzE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;AACA,4BAA4B,gFAAgF;AAC5G;AACA;AACA,4BAA4B,kFAAkF;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,wDAAwD;AAC/E;AACA;AACA;;AAEA,uBAAuB,qDAAqD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,4EAA4E,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,+NAA+N,EAAE,uBAAuB,iCAAiC,sMAAsM,4BAA4B,aAAa,EAAE,aAAa,EAAE,SAAS,gBAAgB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,4CAA4C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,sFAAsF,EAAE,oCAAoC,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,iDAAiD,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,EAAE,mBAAmB,gBAAgB,SAAS,EAAE,SAAS,kFAAkF,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,WAAW,aAAa,WAAW,GAAG,iCAAiC,kHAAkH,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,gBAAgB,cAAc,EAAE,UAAU,EAAE,WAAW,gBAAgB,WAAW,4CAA4C,kOAAkO,EAAE,kOAAkO,EAAE,kOAAkO,EAAE,WAAW,EAAE,4OAA4O,EAAE,WAAW,EAAE,4OAA4O,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,0DAA0D,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,sDAAsD,YAAY,aAAa,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAC1oH,iBAAiB,yNAAyN;AAC1O;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,yCAAyC,qBAAqB;AAC9D;AACA,0BAA0B,iBAAiB,oBAAoB;AAC/D;AACA,0BAA0B,iBAAiB;AAC3C;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,kEAAkE,iCAAiC,sKAAsK,uNAAuN,yBAAyB,iCAAiC,qEAAqE,qBAAqB,yCAAyC,4IAA4I;AAC3+B,aAAa,kBAAkB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAAkC,OAAO,mCAAmC,UAAU,sCAAsC,SAAS,mCAAmC,YAAY;AAC1T,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACh4BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,khBAAkhB,qJAAqJ;AAClrB,aAAa,iVAAiV,6HAA6H;AAC3d;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;;AAEA,2CAA2C,iCAAiC;AAC5E,iBAAiB,4BAA4B,+DAA+D,WAAW;AACvH;AACA;AACA;;AAEA,sEAAsE;AACtE,iBAAiB,4BAA4B,+DAA+D,WAAW,8DAA8D;AACrL;AACA;AACA;;AAEA,2EAA2E;AAC3E,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA,2GAA2G;AAC3G,kBAAkB;AAClB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,6GAA6G;AAC7G,iBAAiB,0CAA0C;AAC3D;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,gEAAgE,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,qKAAqK,EAAE,uBAAuB,iCAAiC,4IAA4I,yCAAyC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,0DAA0D,oCAAoC,gIAAgI,gBAAgB,2CAA2C,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,eAAe,UAAU,GAAG,uKAAuK,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,sDAAsD,KAAK,+BAA+B,uKAAuK;AACvrD,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,0BAA0B,0CAA0C;AAC5F;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,yBAAyB,mDAAmD,2CAA2C;AACvH;AACA,yBAAyB,mDAAmD,6CAA6C;AACzH;AACA,4DAA4D;AAC5D;AACA,4DAA4D;AAC5D;AACA,qDAAqD;AACrD;AACA,iDAAiD;AACjD;AACA,2CAA2C;AAC3C;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6IAA6I,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,ocAAoc,6CAA6C,wBAAwB,WAAW,gLAAgL,oJAAoJ,qBAAqB;AAC9mC,aAAa,QAAQ,kCAAkC,oBAAoB,kCAAkC,kBAAkB,sCAAsC,mBAAmB,sCAAsC,mBAAmB,oCAAoC,WAAW,yEAAyE,qBAAqB,+BAA+B,kBAAkB,qCAAqC,cAAc,kCAAkC,YAAY,+BAA+B,SAAS,qCAAqC,UAAU,kCAAkC,UAAU,6BAA6B,aAAa,+BAA+B,iBAAiB,kCAAkC,eAAe,6BAA6B,UAAU,mEAAmE,OAAO,kCAAkC,YAAY;AAC77B,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACp0BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8VAA8V;AACzW,aAAa,gMAAgM;AAC7M;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,6EAA6E,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4CAA4C,wDAAwD,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,aAAa,EAAE,UAAU,EAAE,UAAU;AACrhB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;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,aAAa;AACb;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;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;A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CA;AACA;;AACA,IAAMvK,MAAM,GAAG;AACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACED,EAAAA,KAAK,EAAE,SAXM;AAYbmB,EAAAA,cAAc,EAAEnB,4EAAA,EAZH;AAabwc,EAAAA,QAAQ,EAAElZ,SAbG;;AAcb;AACAmZ,EAAAA,WAAW,EAAE,KAfA;AAgBbC,EAAAA,QAAQ,EAAE,KAhBG;;AAkBb;AACF;AACA;AACA;AACA;AACA;AACA;AACEra,EAAAA,UAAU,EAAE,6CAzBC;;AA2Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEsa,EAAAA,QAAQ,EAAE,CAxCG;;AA0Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEV,EAAAA,aAAa,EAAE,QAtDF;;AAwDb;AACF;AACA;AACA;AACA;AACA;AACA;AACEW,EAAAA,WAAW,EAAE,IA/DA;;AAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEpP,EAAAA,mBAAmB,EAAE,KA5ER;;AA8Eb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE1L,EAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CAxFK;;AA0Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE+a,EAAAA,gBAAgB,EAAE,KAtGL;;AAwGb;AACF;AACA;AACA;AACA;AACEC,EAAAA,mBAAmB,EAAExZ,SA7GR;;AA+Gb;AACAG,EAAAA,SAAS,EAAE;AACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIsZ,IAAAA,cAAc,EAAE,CAbP;;AAeT;AACJ;AACA;AACA;AACA;AACA;AACA;AACIrZ,IAAAA,UAAU,EAAE,IAtBH;;AAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIsZ,IAAAA,WAAW,EAAE,EApCJ;;AAsCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAlDJ;;AAoDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIjQ,IAAAA,KAAK,EAAE,OA7DE;AA8DT;AACA;AACA/I,IAAAA,OAAO,EAAE,EAhEA;;AAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIiZ,IAAAA,WAAW,EAAE,IA9EJ;;AAgFT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE;AA5FR,GAhHE;;AA+Mb;AACAC,EAAAA,QAAQ,EAAE;AACR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,EART;;AAUR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAjBR;;AAmBR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EA1BR;;AA4BR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAnCL;;AAqCR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIzZ,IAAAA,KAAK,EAAE,GA5CC;;AA8CR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,EArDA;;AAuDR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIyZ,IAAAA,SAAS,EAAE,EA9DH;;AAgER;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,CAvEP;;AAyER;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,EAhFJ;;AAkFR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EAzFP;;AA2FR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,QAlGN;;AAoGR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,IA3GN;;AA6GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,KAtHJ;;AAwHR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,CAnIT;;AAqIR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACId,IAAAA,WAAW,EAAE,IA/IL;;AAiJR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIe,IAAAA,WAAW,EAAE,KA5JL;;AA8JR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,mBAAmB,EAAE,KArKb;;AAuKR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EA9KP;;AAgLR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,yBAvLT;;AAyLR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,GA9LT;;AAgMR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,EAvMN;;AAyMR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,4CAhNR;;AAkNR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,GAvNR;;AAyNR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,SAAS,EAAE,QAhOH;;AAkOR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,EAzOT;;AA2OR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,iBAAiB,EAAE,4CAlPX;;AAoPR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,iBAAiB,EAAE,GAzPX;;AA2PR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,IAAI,EAAE,KAhQE;;AAkQR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAvQL;;AAyQR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EA9QP;;AAgRR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EArRR;AAuRRC,IAAAA,WAAW,EAAE,uBAAY;AACvB,aAAO;AACL5c,QAAAA,UAAU,EAAE,KAAKsc,iBADZ;AAELO,QAAAA,QAAQ,EAAE,KAAKR,eAFV;AAGLS,QAAAA,UAAU,EAAE,KAAKP;AAHZ,OAAP;AAKD,KA7RO;AA8RRQ,IAAAA,QAAQ,EAAE,oBAAY;AACpB,aAAO;AACL/c,QAAAA,UAAU,EAAE,KAAKkc,cADZ;AAELW,QAAAA,QAAQ,EAAE,KAAKZ,YAFV;AAGLa,QAAAA,UAAU,EAAE,KAAKX;AAHZ,OAAP;AAKD,KApSO;AAqSRa,IAAAA,SAAS,EAAE,qBAAY;AACrB,aAAO;AACLhd,QAAAA,UAAU,EAAE,KAAK+b,eADZ;AAELc,QAAAA,QAAQ,EAAE,KAAKf,aAFV;AAGLgB,QAAAA,UAAU,EAAE,KAAKd;AAHZ,OAAP;AAKD;AA3SO,GAhNG;;AA8fb;AACAiB,EAAAA,KAAK,EAAE;AACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAVX;;AAYL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,SAAS,EAAE,EAnBN;;AAqBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,CA5BH;;AA8BL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,EArCP;;AAuCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,EA9CT;;AAgDL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAvDR;;AAyDL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,oBAAoB,EAAE,EAhEjB;;AAkEL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIX,IAAAA,QAAQ,EAAE,EAzEL;;AA2EL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIY,IAAAA,eAAe,EAAE,EAlFZ;;AAoFL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,mBAAmB,EAAE,CA3FhB;;AA6FL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,UAxGP;;AA0GL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI9C,IAAAA,WAAW,EAAE,IAtHR;;AAwHL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI+C,IAAAA,OAAO,EAAE,KAjIJ;AAmILC,IAAAA,QAAQ,EAAE5c;AAnIL,GA/fM;;AAqoBb;AACA6c,EAAAA,OAAO,EAAE;AACP;AACJ;AACA;AACA;AACA;AACA;AACA;AACI7C,IAAAA,cAAc,EAAE,EART;;AAUP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAjBT;;AAmBP;AACJ;AACA;AACA;AACA;AACA;AACA;AACI6C,IAAAA,UAAU,EAAE,GA1BL;;AA4BP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIrc,IAAAA,KAAK,EAAE,GAnCA;;AAqCP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,EA5CD;;AA8CP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIyZ,IAAAA,SAAS,EAAE,EArDJ;;AAuDP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,CA9DR;;AAgEP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,EAvEL;;AAyEP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EApFR;;AAsFP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,QA7FP;;AA+FP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIG,IAAAA,eAAe,EAAE,CA1GV;;AA4GP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACId,IAAAA,WAAW,EAAE,IAxHN;;AA0HP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIe,IAAAA,WAAW,EAAE,KArIN;AAsIPoC,IAAAA,YAAY,EAAE,EAtIP;AAuIPC,IAAAA,cAAc,EAAE,yBAvIT;AAwIPC,IAAAA,UAAU,EAAE,EAxIL;AAyIP;AACAlD,IAAAA,eAAe,EAAE,EA1IV;AA4IP;AACAmD,IAAAA,aAAa,EAAE,IA7IR;AA8IPC,IAAAA,YAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,CA9IP;AAgJPC,IAAAA,YAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,EAAmE,SAAnE,CAhJP;AAiJPC,IAAAA,cAAc,EAAE,CAAC,MAAD;AAjJT,GAtoBI;AAyxBb1d,EAAAA,KAAK,EAAE;AACLuK,IAAAA,mBAAmB,EAAE,KADhB;;AAGL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI0P,IAAAA,WAAW,EAAE,IAfR;;AAgBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE;AA5BZ,GAzxBM;AAuzBb5P,EAAAA,KAAK,EAAE;AACLqT,IAAAA,aAAa,EAAE,EADV;AAELC,IAAAA,QAAQ,EAAE,CAFL;AAGL5c,IAAAA,OAAO,EAAE,CAHJ;AAIL6c,IAAAA,UAAU,EAAE,EAJP;AAKLC,IAAAA,UAAU,EAAE,CAAC,EALR;AAMLpD,IAAAA,UAAU,EAAE,EANP;AAOLqD,IAAAA,SAAS,EAAE,EAPN;AAQLC,IAAAA,UAAU,EAAE,CARP;AASL;AACAC,IAAAA,WAAW,EAAE,CAVR;AAWL;AACA;AACAC,IAAAA,cAAc,EAAE,IAbX;AAcLjC,IAAAA,QAAQ,EAAE,EAdL;AAeLkC,IAAAA,WAAW,EAAE,EAfR;AAgBLC,IAAAA,gBAAgB,EAAE,IAhBb;AAiBLC,IAAAA,iBAAiB,EAAE,EAjBd;AAkBLC,IAAAA,MAAM,EAAE,CAlBH;;AAmBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIrE,IAAAA,WAAW,EAAE,IA/BR;;AAgCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE;AA5CZ,GAvzBM;;AAs2Bb;AACAqE,EAAAA,EAAE,EAAE;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIzE,IAAAA,cAAc,EAAE,EAbd;;AAeF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI0E,IAAAA,eAAe,EAAE,IA5Bf;;AA8BF;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,GArCd;;AAuCF;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,EA9Cf;;AAgDF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EA5Db;;AA8DF;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,MArEN;;AAuEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,IAAI,EAAE,UA9EJ;;AAgFF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI5C,IAAAA,QAAQ,EAAE,EAzFR;;AA2FF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIhC,IAAAA,WAAW,EAAE;AAvGX,GAv2BS;;AAi9Bb;AACA6E,EAAAA,GAAG,EAAE;AACH7B,IAAAA,QAAQ,EAAE5c,SADP;;AAGH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI4Z,IAAAA,WAAW,EAAE;AAfV,GAl9BQ;;AAo+Bb;AACA8E,EAAAA,WAAW,EAAE;AACX9B,IAAAA,QAAQ,EAAE5c,SADC;;AAGX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI4Z,IAAAA,WAAW,EAAE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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;AChhBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/accessibility.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/interactionDb.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/external commonjs \"@braintree/sanitize-url\"","webpack://mermaid/external commonjs \"d3\"","webpack://mermaid/external commonjs \"dagre\"","webpack://mermaid/external commonjs \"dagre-d3\"","webpack://mermaid/external commonjs \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external commonjs \"dompurify\"","webpack://mermaid/external commonjs \"graphlib\"","webpack://mermaid/external commonjs \"khroma\"","webpack://mermaid/external commonjs \"moment-mini\"","webpack://mermaid/external commonjs \"stylis\"","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/user-journey/parser|fs","webpack://mermaid/webpack/bootstrap","webpack://mermaid/webpack/runtime/compat get default export","webpack://mermaid/webpack/runtime/define property getters","webpack://mermaid/webpack/runtime/hasOwnProperty shorthand","webpack://mermaid/webpack/runtime/make namespace object","webpack://mermaid/webpack/runtime/node module decorator","webpack://mermaid/webpack/before-startup","webpack://mermaid/webpack/startup","webpack://mermaid/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn ","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,12],$V5=[1,11],$V6=[1,15,24],$V7=[1,19],$V8=[1,31],$V9=[1,34],$Va=[1,32],$Vb=[1,33],$Vc=[1,35],$Vd=[1,36],$Ve=[1,37],$Vf=[1,38],$Vg=[1,41],$Vh=[1,42],$Vi=[1,43],$Vj=[1,44],$Vk=[15,24],$Vl=[1,56],$Vm=[1,57],$Vn=[1,58],$Vo=[1,59],$Vp=[1,60],$Vq=[1,61],$Vr=[15,24,31,38,39,47,50,51,52,53,54,55,60,62],$Vs=[15,24,29,31,38,39,43,47,50,51,52,53,54,55,60,62,77,78,79,80],$Vt=[7,8,9,10,15,18,22,24],$Vu=[47,77,78,79,80],$Vv=[47,54,55,77,78,79,80],$Vw=[47,50,51,52,53,77,78,79,80],$Vx=[15,24,31],$Vy=[1,93];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"direction\":5,\"directive\":6,\"direction_tb\":7,\"direction_bt\":8,\"direction_rl\":9,\"direction_lr\":10,\"graphConfig\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\"NEWLINE\":15,\":\":16,\"argDirective\":17,\"open_directive\":18,\"type_directive\":19,\"arg_directive\":20,\"close_directive\":21,\"CLASS_DIAGRAM\":22,\"statements\":23,\"EOF\":24,\"statement\":25,\"className\":26,\"alphaNumToken\":27,\"classLiteralName\":28,\"GENERICTYPE\":29,\"relationStatement\":30,\"LABEL\":31,\"classStatement\":32,\"methodStatement\":33,\"annotationStatement\":34,\"clickStatement\":35,\"cssClassStatement\":36,\"CLASS\":37,\"STYLE_SEPARATOR\":38,\"STRUCT_START\":39,\"members\":40,\"STRUCT_STOP\":41,\"ANNOTATION_START\":42,\"ANNOTATION_END\":43,\"MEMBER\":44,\"SEPARATOR\":45,\"relation\":46,\"STR\":47,\"relationType\":48,\"lineType\":49,\"AGGREGATION\":50,\"EXTENSION\":51,\"COMPOSITION\":52,\"DEPENDENCY\":53,\"LINE\":54,\"DOTTED_LINE\":55,\"CALLBACK\":56,\"LINK\":57,\"LINK_TARGET\":58,\"CLICK\":59,\"CALLBACK_NAME\":60,\"CALLBACK_ARGS\":61,\"HREF\":62,\"CSSCLASS\":63,\"commentToken\":64,\"textToken\":65,\"graphCodeTokens\":66,\"textNoTagsToken\":67,\"TAGSTART\":68,\"TAGEND\":69,\"==\":70,\"--\":71,\"PCT\":72,\"DEFAULT\":73,\"SPACE\":74,\"MINUS\":75,\"keywords\":76,\"UNICODE_TEXT\":77,\"NUM\":78,\"ALPHA\":79,\"BQUOTE_STR\":80,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",7:\"direction_tb\",8:\"direction_bt\",9:\"direction_rl\",10:\"direction_lr\",15:\"NEWLINE\",16:\":\",18:\"open_directive\",19:\"type_directive\",20:\"arg_directive\",21:\"close_directive\",22:\"CLASS_DIAGRAM\",24:\"EOF\",29:\"GENERICTYPE\",31:\"LABEL\",37:\"CLASS\",38:\"STYLE_SEPARATOR\",39:\"STRUCT_START\",41:\"STRUCT_STOP\",42:\"ANNOTATION_START\",43:\"ANNOTATION_END\",44:\"MEMBER\",45:\"SEPARATOR\",47:\"STR\",50:\"AGGREGATION\",51:\"EXTENSION\",52:\"COMPOSITION\",53:\"DEPENDENCY\",54:\"LINE\",55:\"DOTTED_LINE\",56:\"CALLBACK\",57:\"LINK\",58:\"LINK_TARGET\",59:\"CLICK\",60:\"CALLBACK_NAME\",61:\"CALLBACK_ARGS\",62:\"HREF\",63:\"CSSCLASS\",66:\"graphCodeTokens\",68:\"TAGSTART\",69:\"TAGEND\",70:\"==\",71:\"--\",72:\"PCT\",73:\"DEFAULT\",74:\"SPACE\",75:\"MINUS\",76:\"keywords\",77:\"UNICODE_TEXT\",78:\"NUM\",79:\"ALPHA\",80:\"BQUOTE_STR\"},\nproductions_: [0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[23,1],[23,2],[23,3],[26,1],[26,1],[26,2],[26,2],[26,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[32,2],[32,4],[32,5],[32,7],[34,4],[40,1],[40,2],[33,1],[33,2],[33,1],[33,1],[30,3],[30,4],[30,4],[30,5],[46,3],[46,2],[46,2],[46,1],[48,1],[48,1],[48,1],[48,1],[49,1],[49,1],[35,3],[35,4],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[36,3],[64,1],[64,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[67,1],[67,1],[67,1],[67,1],[27,1],[27,1],[27,1],[28,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.setDirection('TB');\nbreak;\ncase 5:\n yy.setDirection('BT');\nbreak;\ncase 6:\n yy.setDirection('RL');\nbreak;\ncase 7:\n yy.setDirection('LR');\nbreak;\ncase 11:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 12:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 14:\n yy.parseDirective('}%%', 'close_directive', 'class'); \nbreak;\ncase 19: case 20:\n this.$=$$[$0]; \nbreak;\ncase 21:\n this.$=$$[$0-1]+$$[$0]; \nbreak;\ncase 22: case 23:\n this.$=$$[$0-1]+'~'+$$[$0]; \nbreak;\ncase 24:\n yy.addRelation($$[$0]); \nbreak;\ncase 25:\n $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); \nbreak;\ncase 33:\nyy.addClass($$[$0]);\nbreak;\ncase 34:\nyy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);\nbreak;\ncase 35:\n/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);\nbreak;\ncase 36:\nyy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);\nbreak;\ncase 37:\n yy.addAnnotation($$[$0],$$[$0-2]); \nbreak;\ncase 38:\n this.$ = [$$[$0]]; \nbreak;\ncase 39:\n $$[$0].push($$[$0-1]);this.$=$$[$0];\nbreak;\ncase 40:\n/*console.log('Rel found',$$[$0]);*/\nbreak;\ncase 41:\nyy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));\nbreak;\ncase 42:\n/*console.warn('Member',$$[$0]);*/\nbreak;\ncase 43:\n/*console.log('sep found',$$[$0]);*/\nbreak;\ncase 44:\n this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; \nbreak;\ncase 45:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}\nbreak;\ncase 46:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; \nbreak;\ncase 47:\n this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} \nbreak;\ncase 48:\n this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 49:\n this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 50:\n this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; \nbreak;\ncase 51:\n this.$={type1:'none',type2:'none',lineType:$$[$0]}; \nbreak;\ncase 52:\n this.$=yy.relationType.AGGREGATION;\nbreak;\ncase 53:\n this.$=yy.relationType.EXTENSION;\nbreak;\ncase 54:\n this.$=yy.relationType.COMPOSITION;\nbreak;\ncase 55:\n this.$=yy.relationType.DEPENDENCY;\nbreak;\ncase 56:\nthis.$=yy.lineType.LINE;\nbreak;\ncase 57:\nthis.$=yy.lineType.DOTTED_LINE;\nbreak;\ncase 58: case 64:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 59: case 65:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 60: case 68:\nthis.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 61:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);\nbreak;\ncase 62: case 70:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 63: case 71:\nthis.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 67:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 72:\nyy.setCssClass($$[$0-1], $$[$0]);\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5},{1:[3]},{1:[2,1]},{1:[2,2]},{3:13,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5},{1:[2,8]},o($V6,[2,4]),o($V6,[2,5]),o($V6,[2,6]),o($V6,[2,7]),{13:14,19:[1,15]},{15:[1,16]},{19:[2,11]},{1:[2,3]},{14:17,16:[1,18],21:$V7},o([16,21],[2,12]),{5:29,6:28,7:$V0,8:$V1,9:$V2,10:$V3,12:10,18:$V4,23:20,25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:$V8,42:$V9,44:$Va,45:$Vb,56:$Vc,57:$Vd,59:$Ve,63:$Vf,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{15:[1,45]},{17:46,20:[1,47]},{15:[2,14]},{24:[1,48]},{15:[1,49],24:[2,16]},o($Vk,[2,24],{31:[1,50]}),o($Vk,[2,26]),o($Vk,[2,27]),o($Vk,[2,28]),o($Vk,[2,29]),o($Vk,[2,30]),o($Vk,[2,31]),o($Vk,[2,32]),o($Vk,[2,40],{46:51,48:54,49:55,31:[1,53],47:[1,52],50:$Vl,51:$Vm,52:$Vn,53:$Vo,54:$Vp,55:$Vq}),{26:62,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,42]),o($Vk,[2,43]),{27:63,77:$Vg,78:$Vh,79:$Vi},{26:64,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:65,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:66,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{47:[1,67]},o($Vr,[2,19],{27:39,28:40,26:68,29:[1,69],77:$Vg,78:$Vh,79:$Vi,80:$Vj}),o($Vr,[2,20],{29:[1,70]}),o($Vs,[2,86]),o($Vs,[2,87]),o($Vs,[2,88]),o([15,24,29,31,38,39,47,50,51,52,53,54,55,60,62],[2,89]),o($Vt,[2,9]),{14:71,21:$V7},{21:[2,13]},{1:[2,15]},{5:29,6:28,7:$V0,8:$V1,9:$V2,10:$V3,12:10,18:$V4,23:72,24:[2,17],25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:$V8,42:$V9,44:$Va,45:$Vb,56:$Vc,57:$Vd,59:$Ve,63:$Vf,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,25]),{26:73,27:39,28:40,47:[1,74],77:$Vg,78:$Vh,79:$Vi,80:$Vj},{46:75,48:54,49:55,50:$Vl,51:$Vm,52:$Vn,53:$Vo,54:$Vp,55:$Vq},o($Vk,[2,41]),{49:76,54:$Vp,55:$Vq},o($Vu,[2,51],{48:77,50:$Vl,51:$Vm,52:$Vn,53:$Vo}),o($Vv,[2,52]),o($Vv,[2,53]),o($Vv,[2,54]),o($Vv,[2,55]),o($Vw,[2,56]),o($Vw,[2,57]),o($Vk,[2,33],{38:[1,78],39:[1,79]}),{43:[1,80]},{47:[1,81]},{47:[1,82]},{60:[1,83],62:[1,84]},{27:85,77:$Vg,78:$Vh,79:$Vi},o($Vr,[2,21]),o($Vr,[2,22]),o($Vr,[2,23]),{15:[1,86]},{24:[2,18]},o($Vx,[2,44]),{26:87,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:88,27:39,28:40,47:[1,89],77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vu,[2,50],{48:90,50:$Vl,51:$Vm,52:$Vn,53:$Vo}),o($Vu,[2,49]),{27:91,77:$Vg,78:$Vh,79:$Vi},{40:92,44:$Vy},{26:94,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,58],{47:[1,95]}),o($Vk,[2,60],{47:[1,97],58:[1,96]}),o($Vk,[2,64],{47:[1,98],61:[1,99]}),o($Vk,[2,68],{47:[1,101],58:[1,100]}),o($Vk,[2,72]),o($Vt,[2,10]),o($Vx,[2,46]),o($Vx,[2,45]),{26:102,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vu,[2,48]),o($Vk,[2,34],{39:[1,103]}),{41:[1,104]},{40:105,41:[2,38],44:$Vy},o($Vk,[2,37]),o($Vk,[2,59]),o($Vk,[2,61]),o($Vk,[2,62],{58:[1,106]}),o($Vk,[2,65]),o($Vk,[2,66],{47:[1,107]}),o($Vk,[2,69]),o($Vk,[2,70],{58:[1,108]}),o($Vx,[2,47]),{40:109,44:$Vy},o($Vk,[2,35]),{41:[2,39]},o($Vk,[2,63]),o($Vk,[2,67]),o($Vk,[2,71]),{41:[1,110]},o($Vk,[2,36])],\ndefaultActions: {2:[2,1],3:[2,2],5:[2,8],12:[2,11],13:[2,3],19:[2,14],47:[2,13],48:[2,15],72:[2,18],105:[2,39]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 18; \nbreak;\ncase 1:return 7;\nbreak;\ncase 2:return 8;\nbreak;\ncase 3:return 9;\nbreak;\ncase 4:return 10;\nbreak;\ncase 5: this.begin('type_directive'); return 19; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 16; \nbreak;\ncase 7: this.popState(); this.popState(); return 21; \nbreak;\ncase 8:return 20;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:return 15;\nbreak;\ncase 12:/* skip whitespace */\nbreak;\ncase 13:return 22;\nbreak;\ncase 14:return 22;\nbreak;\ncase 15: this.begin(\"struct\"); /*console.log('Starting struct');*/ return 39;\nbreak;\ncase 16:return \"EOF_IN_STRUCT\";\nbreak;\ncase 17:return \"OPEN_IN_STRUCT\";\nbreak;\ncase 18: /*console.log('Ending struct');*/this.popState(); return 41;\nbreak;\ncase 19:/* nothing */\nbreak;\ncase 20: /*console.log('lex-member: ' + yy_.yytext);*/ return \"MEMBER\";\nbreak;\ncase 21:return 37;\nbreak;\ncase 22:return 63;\nbreak;\ncase 23:return 56;\nbreak;\ncase 24:return 57;\nbreak;\ncase 25:return 59;\nbreak;\ncase 26:return 42;\nbreak;\ncase 27:return 43;\nbreak;\ncase 28:this.begin(\"generic\");\nbreak;\ncase 29:this.popState();\nbreak;\ncase 30:return \"GENERICTYPE\";\nbreak;\ncase 31:this.begin(\"string\");\nbreak;\ncase 32:this.popState();\nbreak;\ncase 33:return \"STR\";\nbreak;\ncase 34:this.begin(\"bqstring\");\nbreak;\ncase 35:this.popState();\nbreak;\ncase 36:return \"BQUOTE_STR\";\nbreak;\ncase 37:this.begin(\"href\");\nbreak;\ncase 38:this.popState();\nbreak;\ncase 39:return 62;\nbreak;\ncase 40:this.begin(\"callback_name\");\nbreak;\ncase 41:this.popState();\nbreak;\ncase 42:this.popState(); this.begin(\"callback_args\");\nbreak;\ncase 43:return 60;\nbreak;\ncase 44:this.popState();\nbreak;\ncase 45:return 61;\nbreak;\ncase 46:return 58;\nbreak;\ncase 47:return 58;\nbreak;\ncase 48:return 58;\nbreak;\ncase 49:return 58;\nbreak;\ncase 50:return 51;\nbreak;\ncase 51:return 51;\nbreak;\ncase 52:return 53;\nbreak;\ncase 53:return 53;\nbreak;\ncase 54:return 52;\nbreak;\ncase 55:return 50;\nbreak;\ncase 56:return 54;\nbreak;\ncase 57:return 55;\nbreak;\ncase 58:return 31;\nbreak;\ncase 59:return 38;\nbreak;\ncase 60:return 75;\nbreak;\ncase 61:return 'DOT';\nbreak;\ncase 62:return 'PLUS';\nbreak;\ncase 63:return 72;\nbreak;\ncase 64:return 'EQUALS';\nbreak;\ncase 65:return 'EQUALS';\nbreak;\ncase 66:return 79;\nbreak;\ncase 67:return 'PUNCTUATION';\nbreak;\ncase 68:return 78;\nbreak;\ncase 69:return 77;\nbreak;\ncase 70:return 74;\nbreak;\ncase 71:return 24;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-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])/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"callback_args\":{\"rules\":[44,45],\"inclusive\":false},\"callback_name\":{\"rules\":[41,42,43],\"inclusive\":false},\"href\":{\"rules\":[38,39],\"inclusive\":false},\"struct\":{\"rules\":[16,17,18,19,20],\"inclusive\":false},\"generic\":{\"rules\":[29,30],\"inclusive\":false},\"bqstring\":{\"rules\":[35,36],\"inclusive\":false},\"string\":{\"rules\":[32,33],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,31,34,37,40,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,23,25,27,45],$V3=[1,17],$V4=[1,18],$V5=[1,19],$V6=[1,22],$V7=[1,27],$V8=[1,28],$V9=[1,29],$Va=[1,30],$Vb=[1,41],$Vc=[27,42,43],$Vd=[4,6,9,11,23,25,27,45],$Ve=[38,39,40,41],$Vf=[22,33],$Vg=[1,59];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"ER_DIAGRAM\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"entityName\":17,\"relSpec\":18,\"role\":19,\"BLOCK_START\":20,\"attributes\":21,\"BLOCK_STOP\":22,\"title\":23,\"title_value\":24,\"accDescription\":25,\"description_value\":26,\"ALPHANUM\":27,\"attribute\":28,\"attributeType\":29,\"attributeName\":30,\"attributeKeyType\":31,\"attributeComment\":32,\"ATTRIBUTE_WORD\":33,\"ATTRIBUTE_KEY\":34,\"COMMENT\":35,\"cardinality\":36,\"relType\":37,\"ZERO_OR_ONE\":38,\"ZERO_OR_MORE\":39,\"ONE_OR_MORE\":40,\"ONLY_ONE\":41,\"NON_IDENTIFYING\":42,\"IDENTIFYING\":43,\"WORD\":44,\"open_directive\":45,\"type_directive\":46,\"arg_directive\":47,\"close_directive\":48,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"ER_DIAGRAM\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",20:\"BLOCK_START\",22:\"BLOCK_STOP\",23:\"title\",24:\"title_value\",25:\"accDescription\",26:\"description_value\",27:\"ALPHANUM\",33:\"ATTRIBUTE_WORD\",34:\"ATTRIBUTE_KEY\",35:\"COMMENT\",38:\"ZERO_OR_ONE\",39:\"ZERO_OR_MORE\",40:\"ONE_OR_MORE\",41:\"ONLY_ONE\",42:\"NON_IDENTIFYING\",43:\"IDENTIFYING\",44:\"WORD\",45:\"open_directive\",46:\"type_directive\",47:\"arg_directive\",48:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[17,1],[21,1],[21,2],[28,2],[28,3],[28,3],[28,4],[29,1],[30,1],[31,1],[32,1],[18,3],[36,1],[36,1],[36,1],[36,1],[37,1],[37,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n /*console.log('finished parsing');*/ \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 12:\n\n yy.addEntity($$[$0-4]);\n yy.addEntity($$[$0-2]);\n yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);\n /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/\n \nbreak;\ncase 13:\n\n /* console.log('detected block'); */\n yy.addEntity($$[$0-3]);\n yy.addAttributes($$[$0-3], $$[$0-1]);\n /* console.log('handled block'); */\n \nbreak;\ncase 14:\n yy.addEntity($$[$0-2]); \nbreak;\ncase 15:\n yy.addEntity($$[$0]); \nbreak;\ncase 16:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 18:\n this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/ \nbreak;\ncase 19:\n this.$ = [$$[$0]]; \nbreak;\ncase 20:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 21:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 22:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 23:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 25: case 26: case 27:\n this.$=$$[$0]; \nbreak;\ncase 28:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 29:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 30:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 31:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 32:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 34:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 35:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 36:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 37:\n this.$ = $$[$0]; \nbreak;\ncase 38:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 39:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 40:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 41:\n yy.parseDirective('}%%', 'close_directive', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,45:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,45:$V1},{13:8,46:[1,9]},{46:[2,38]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:$V3,25:$V4,27:$V5,45:$V1},{1:[2,2]},{14:20,15:[1,21],48:$V6},o([15,48],[2,39]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:23,12:4,17:16,23:$V3,25:$V4,27:$V5,45:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:24,36:26,20:[1,25],38:$V7,39:$V8,40:$V9,41:$Va}),{24:[1,31]},{26:[1,32]},o([6,9,11,15,20,23,25,27,38,39,40,41,45],[2,18]),{11:[1,33]},{16:34,47:[1,35]},{11:[2,41]},o($V2,[2,5]),{17:36,27:$V5},{21:37,22:[1,38],28:39,29:40,33:$Vb},{37:42,42:[1,43],43:[1,44]},o($Vc,[2,30]),o($Vc,[2,31]),o($Vc,[2,32]),o($Vc,[2,33]),o($V2,[2,16]),o($V2,[2,17]),o($Vd,[2,9]),{14:45,48:$V6},{48:[2,40]},{15:[1,46]},{22:[1,47]},o($V2,[2,14]),{21:48,22:[2,19],28:39,29:40,33:$Vb},{30:49,33:[1,50]},{33:[2,25]},{36:51,38:$V7,39:$V8,40:$V9,41:$Va},o($Ve,[2,34]),o($Ve,[2,35]),{11:[1,52]},{19:53,27:[1,55],44:[1,54]},o($V2,[2,13]),{22:[2,20]},o($Vf,[2,21],{31:56,32:57,34:[1,58],35:$Vg}),o([22,33,34,35],[2,26]),{27:[2,29]},o($Vd,[2,10]),o($V2,[2,12]),o($V2,[2,36]),o($V2,[2,37]),o($Vf,[2,22],{32:60,35:$Vg}),o($Vf,[2,23]),o([22,33,35],[2,27]),o($Vf,[2,28]),o($Vf,[2,24])],\ndefaultActions: {5:[2,38],7:[2,2],22:[2,41],35:[2,40],41:[2,25],48:[2,20],51:[2,29]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin(\"title\");return 23; \nbreak;\ncase 1: this.popState(); return \"title_value\"; \nbreak;\ncase 2: this.begin(\"accDescription\");return 25; \nbreak;\ncase 3: this.popState(); return \"description_value\"; \nbreak;\ncase 4: this.begin('open_directive'); return 45; \nbreak;\ncase 5: this.begin('type_directive'); return 46; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 7: this.popState(); this.popState(); return 48; \nbreak;\ncase 8:return 47;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:return 11;\nbreak;\ncase 12:/* skip whitespace */\nbreak;\ncase 13:return 9;\nbreak;\ncase 14:return 44;\nbreak;\ncase 15:return 4;\nbreak;\ncase 16: this.begin(\"block\"); return 20; \nbreak;\ncase 17:/* skip whitespace in block */\nbreak;\ncase 18:return 34\nbreak;\ncase 19:return 33\nbreak;\ncase 20:return 35;\nbreak;\ncase 21:/* nothing */\nbreak;\ncase 22: this.popState(); return 22; \nbreak;\ncase 23:return yy_.yytext[0];\nbreak;\ncase 24:return 38;\nbreak;\ncase 25:return 39;\nbreak;\ncase 26:return 40;\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 38;\nbreak;\ncase 29:return 39;\nbreak;\ncase 30:return 40;\nbreak;\ncase 31:return 42;\nbreak;\ncase 32:return 43;\nbreak;\ncase 33:return 42;\nbreak;\ncase 34:return 42;\nbreak;\ncase 35:return 27;\nbreak;\ncase 36:return yy_.yytext[0];\nbreak;\ncase 37:return 6;\nbreak;\n}\n},\nrules: [/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescription\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:[\\s]+)/i,/^(?:\"[^\"]*\")/i,/^(?:erDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\s+)/i,/^(?:(?:PK)|(?:FK))/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:\"[^\"]*\")/i,/^(?:[\\n]+)/i,/^(?:\\})/i,/^(?:.)/i,/^(?:\\|o\\b)/i,/^(?:\\}o\\b)/i,/^(?:\\}\\|)/i,/^(?:\\|\\|)/i,/^(?:o\\|)/i,/^(?:o\\{)/i,/^(?:\\|\\{)/i,/^(?:\\.\\.)/i,/^(?:--)/i,/^(?:\\.-)/i,/^(?:-\\.)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:.)/i,/^(?:$)/i],\nconditions: {\"accDescription\":{\"rules\":[3],\"inclusive\":false},\"title\":{\"rules\":[1],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"block\":{\"rules\":[17,18,19,20,21,22,23],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,2,4,9,10,11,12,13,14,15,16,24,25,26,27,28,29,30,31,32,33,34,35,36,37],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,9],$V1=[1,7],$V2=[1,6],$V3=[1,8],$V4=[1,20,21,22,23,38,47,61,62,81,82,83,84,85,86,90,100,101,104,106,107,113,114,115,116,117,118,119,120,121,122],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,59],$Vc=[1,45],$Vd=[1,49],$Ve=[1,33],$Vf=[1,34],$Vg=[1,35],$Vh=[1,36],$Vi=[1,37],$Vj=[1,53],$Vk=[1,60],$Vl=[1,48],$Vm=[1,50],$Vn=[1,52],$Vo=[1,56],$Vp=[1,57],$Vq=[1,38],$Vr=[1,39],$Vs=[1,40],$Vt=[1,41],$Vu=[1,58],$Vv=[1,47],$Vw=[1,51],$Vx=[1,54],$Vy=[1,55],$Vz=[1,46],$VA=[1,63],$VB=[1,68],$VC=[1,20,21,22,23,38,42,47,61,62,81,82,83,84,85,86,90,100,101,104,106,107,113,114,115,116,117,118,119,120,121,122],$VD=[1,72],$VE=[1,71],$VF=[1,73],$VG=[20,21,23,76,77],$VH=[1,94],$VI=[1,99],$VJ=[1,102],$VK=[1,103],$VL=[1,96],$VM=[1,101],$VN=[1,104],$VO=[1,97],$VP=[1,109],$VQ=[1,108],$VR=[1,98],$VS=[1,100],$VT=[1,105],$VU=[1,106],$VV=[1,107],$VW=[1,110],$VX=[20,21,22,23,76,77],$VY=[20,21,22,23,48,76,77],$VZ=[20,21,22,23,40,47,48,50,52,54,56,58,60,61,62,64,66,68,69,71,76,77,86,90,100,101,104,106,107,117,118,119,120,121,122],$V_=[20,21,23],$V$=[20,21,23,47,61,62,76,77,86,90,100,101,104,106,107,117,118,119,120,121,122],$V01=[1,12,20,21,22,23,24,38,42,47,61,62,81,82,83,84,85,86,90,100,101,104,106,107,113,114,115,116,117,118,119,120,121,122],$V11=[47,61,62,86,90,100,101,104,106,107,117,118,119,120,121,122],$V21=[1,144],$V31=[1,152],$V41=[1,153],$V51=[1,154],$V61=[1,155],$V71=[1,139],$V81=[1,140],$V91=[1,136],$Va1=[1,147],$Vb1=[1,148],$Vc1=[1,149],$Vd1=[1,150],$Ve1=[1,151],$Vf1=[1,156],$Vg1=[1,157],$Vh1=[1,142],$Vi1=[1,145],$Vj1=[1,141],$Vk1=[1,138],$Vl1=[20,21,22,23,38,42,47,61,62,81,82,83,84,85,86,90,100,101,104,106,107,113,114,115,116,117,118,119,120,121,122],$Vm1=[1,160],$Vn1=[20,21,22,23,26,47,61,62,86,100,101,104,106,107,117,118,119,120,121,122],$Vo1=[20,21,22,23,24,26,38,40,41,42,47,51,53,55,57,59,61,62,63,65,67,68,70,72,76,77,81,82,83,84,85,86,87,90,100,101,104,106,107,108,109,117,118,119,120,121,122],$Vp1=[12,21,22,24],$Vq1=[22,101],$Vr1=[1,245],$Vs1=[1,240],$Vt1=[1,241],$Vu1=[1,249],$Vv1=[1,246],$Vw1=[1,243],$Vx1=[1,242],$Vy1=[1,244],$Vz1=[1,247],$VA1=[1,248],$VB1=[1,250],$VC1=[1,268],$VD1=[20,21,23,101],$VE1=[20,21,22,23,61,62,81,97,100,101,104,105,106,107,108];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"directive\":5,\"openDirective\":6,\"typeDirective\":7,\"closeDirective\":8,\"separator\":9,\":\":10,\"argDirective\":11,\"open_directive\":12,\"type_directive\":13,\"arg_directive\":14,\"close_directive\":15,\"graphConfig\":16,\"document\":17,\"line\":18,\"statement\":19,\"SEMI\":20,\"NEWLINE\":21,\"SPACE\":22,\"EOF\":23,\"GRAPH\":24,\"NODIR\":25,\"DIR\":26,\"FirstStmtSeperator\":27,\"ending\":28,\"endToken\":29,\"spaceList\":30,\"spaceListNewline\":31,\"verticeStatement\":32,\"styleStatement\":33,\"linkStyleStatement\":34,\"classDefStatement\":35,\"classStatement\":36,\"clickStatement\":37,\"subgraph\":38,\"text\":39,\"SQS\":40,\"SQE\":41,\"end\":42,\"direction\":43,\"link\":44,\"node\":45,\"vertex\":46,\"AMP\":47,\"STYLE_SEPARATOR\":48,\"idString\":49,\"DOUBLECIRCLESTART\":50,\"DOUBLECIRCLEEND\":51,\"PS\":52,\"PE\":53,\"(-\":54,\"-)\":55,\"STADIUMSTART\":56,\"STADIUMEND\":57,\"SUBROUTINESTART\":58,\"SUBROUTINEEND\":59,\"VERTEX_WITH_PROPS_START\":60,\"ALPHA\":61,\"COLON\":62,\"PIPE\":63,\"CYLINDERSTART\":64,\"CYLINDEREND\":65,\"DIAMOND_START\":66,\"DIAMOND_STOP\":67,\"TAGEND\":68,\"TRAPSTART\":69,\"TRAPEND\":70,\"INVTRAPSTART\":71,\"INVTRAPEND\":72,\"linkStatement\":73,\"arrowText\":74,\"TESTSTR\":75,\"START_LINK\":76,\"LINK\":77,\"textToken\":78,\"STR\":79,\"keywords\":80,\"STYLE\":81,\"LINKSTYLE\":82,\"CLASSDEF\":83,\"CLASS\":84,\"CLICK\":85,\"DOWN\":86,\"UP\":87,\"textNoTags\":88,\"textNoTagsToken\":89,\"DEFAULT\":90,\"stylesOpt\":91,\"alphaNum\":92,\"CALLBACKNAME\":93,\"CALLBACKARGS\":94,\"HREF\":95,\"LINK_TARGET\":96,\"HEX\":97,\"numList\":98,\"INTERPOLATE\":99,\"NUM\":100,\"COMMA\":101,\"style\":102,\"styleComponent\":103,\"MINUS\":104,\"UNIT\":105,\"BRKT\":106,\"DOT\":107,\"PCT\":108,\"TAGSTART\":109,\"alphaNumToken\":110,\"idStringToken\":111,\"alphaNumStatement\":112,\"direction_tb\":113,\"direction_bt\":114,\"direction_rl\":115,\"direction_lr\":116,\"PUNCTUATION\":117,\"UNICODE_TEXT\":118,\"PLUS\":119,\"EQUALS\":120,\"MULT\":121,\"UNDERSCORE\":122,\"graphCodeTokens\":123,\"ARROW_CROSS\":124,\"ARROW_POINT\":125,\"ARROW_CIRCLE\":126,\"ARROW_OPEN\":127,\"QUOTE\":128,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",10:\":\",12:\"open_directive\",13:\"type_directive\",14:\"arg_directive\",15:\"close_directive\",20:\"SEMI\",21:\"NEWLINE\",22:\"SPACE\",23:\"EOF\",24:\"GRAPH\",25:\"NODIR\",26:\"DIR\",38:\"subgraph\",40:\"SQS\",41:\"SQE\",42:\"end\",47:\"AMP\",48:\"STYLE_SEPARATOR\",50:\"DOUBLECIRCLESTART\",51:\"DOUBLECIRCLEEND\",52:\"PS\",53:\"PE\",54:\"(-\",55:\"-)\",56:\"STADIUMSTART\",57:\"STADIUMEND\",58:\"SUBROUTINESTART\",59:\"SUBROUTINEEND\",60:\"VERTEX_WITH_PROPS_START\",61:\"ALPHA\",62:\"COLON\",63:\"PIPE\",64:\"CYLINDERSTART\",65:\"CYLINDEREND\",66:\"DIAMOND_START\",67:\"DIAMOND_STOP\",68:\"TAGEND\",69:\"TRAPSTART\",70:\"TRAPEND\",71:\"INVTRAPSTART\",72:\"INVTRAPEND\",75:\"TESTSTR\",76:\"START_LINK\",77:\"LINK\",79:\"STR\",81:\"STYLE\",82:\"LINKSTYLE\",83:\"CLASSDEF\",84:\"CLASS\",85:\"CLICK\",86:\"DOWN\",87:\"UP\",90:\"DEFAULT\",93:\"CALLBACKNAME\",94:\"CALLBACKARGS\",95:\"HREF\",96:\"LINK_TARGET\",97:\"HEX\",99:\"INTERPOLATE\",100:\"NUM\",101:\"COMMA\",104:\"MINUS\",105:\"UNIT\",106:\"BRKT\",107:\"DOT\",108:\"PCT\",109:\"TAGSTART\",113:\"direction_tb\",114:\"direction_bt\",115:\"direction_rl\",116:\"direction_lr\",117:\"PUNCTUATION\",118:\"UNICODE_TEXT\",119:\"PLUS\",120:\"EQUALS\",121:\"MULT\",122:\"UNDERSCORE\",124:\"ARROW_CROSS\",125:\"ARROW_POINT\",126:\"ARROW_CIRCLE\",127:\"ARROW_OPEN\",128:\"QUOTE\"},\nproductions_: [0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[45,1],[45,5],[45,3],[46,4],[46,4],[46,6],[46,4],[46,4],[46,4],[46,8],[46,4],[46,4],[46,4],[46,6],[46,4],[46,4],[46,4],[46,4],[46,4],[46,1],[44,2],[44,3],[44,3],[44,1],[44,3],[73,1],[74,3],[39,1],[39,2],[39,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[88,1],[88,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[98,1],[98,3],[91,1],[91,3],[102,1],[102,2],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[103,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[89,1],[89,1],[89,1],[89,1],[49,1],[49,2],[92,1],[92,2],[112,1],[112,1],[112,1],[112,1],[43,1],[43,1],[43,1],[43,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[111,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1],[123,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 6:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 7:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 8:\n yy.parseDirective('}%%', 'close_directive', 'flowchart'); \nbreak;\ncase 10:\n this.$ = [];\nbreak;\ncase 11:\n\n\t if($$[$0] !== []){\n\t $$[$0-1].push($$[$0]);\n\t }\n\t this.$=$$[$0-1];\nbreak;\ncase 12: case 79: case 81: case 93: case 149: case 151: case 152:\nthis.$=$$[$0];\nbreak;\ncase 19:\n yy.setDirection('TB');this.$ = 'TB';\nbreak;\ncase 20:\n yy.setDirection($$[$0-1]);this.$ = $$[$0-1];\nbreak;\ncase 35:\n /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes\nbreak;\ncase 36: case 37: case 38: case 39: case 40:\nthis.$=[];\nbreak;\ncase 41:\nthis.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);\nbreak;\ncase 42:\nthis.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);\nbreak;\ncase 43:\nthis.$=yy.addSubGraph(undefined,$$[$0-1],undefined);\nbreak;\ncase 48:\n /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) } \nbreak;\ncase 49:\n /* console.warn('vs',$$[$0-3].stmt,$$[$0-1]); */ yy.addLink($$[$0-3].stmt,$$[$0-1],$$[$0-2]); this.$ = { stmt: $$[$0-1], nodes: $$[$0-1].concat($$[$0-3].nodes) } \nbreak;\ncase 50:\n/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }\nbreak;\ncase 51:\n /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }\nbreak;\ncase 52:\n /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];\nbreak;\ncase 53:\n this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */ \nbreak;\ncase 54:\nthis.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])\nbreak;\ncase 55:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');\nbreak;\ncase 56:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'doublecircle');\nbreak;\ncase 57:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');\nbreak;\ncase 58:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');\nbreak;\ncase 59:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');\nbreak;\ncase 60:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');\nbreak;\ncase 61:\nthis.$ = $$[$0-7];yy.addVertex($$[$0-7],$$[$0-1],'rect',undefined,undefined,undefined, Object.fromEntries([[$$[$0-5], $$[$0-3]]]));\nbreak;\ncase 62:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');\nbreak;\ncase 63:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');\nbreak;\ncase 64:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');\nbreak;\ncase 65:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');\nbreak;\ncase 67:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');\nbreak;\ncase 68:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');\nbreak;\ncase 70:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');\nbreak;\ncase 71:\n /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);\nbreak;\ncase 72:\n$$[$0-1].text = $$[$0];this.$ = $$[$0-1];\nbreak;\ncase 73: case 74:\n$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];\nbreak;\ncase 75:\nthis.$ = $$[$0];\nbreak;\ncase 76:\nvar inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length,\"text\":$$[$0-1]};\nbreak;\ncase 77:\nvar inf = yy.destructLink($$[$0]);this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length};\nbreak;\ncase 78:\nthis.$ = $$[$0-1];\nbreak;\ncase 80: case 94: case 150:\nthis.$=$$[$0-1]+''+$$[$0];\nbreak;\ncase 95: case 96:\nthis.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);\nbreak;\ncase 97:\nthis.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);\nbreak;\ncase 98: case 106:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 99: case 107:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 100:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 101:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-4], $$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-4], $$[$0]);\nbreak;\ncase 102: case 108:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 103: case 109:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 104: case 110:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);\nbreak;\ncase 105: case 111:\nthis.$ = $$[$0-5];yy.setLink($$[$0-5], $$[$0-4], $$[$0]);yy.setTooltip($$[$0-5], $$[$0-2]);\nbreak;\ncase 112:\nthis.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);\nbreak;\ncase 113: case 115:\nthis.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);\nbreak;\ncase 114:\nthis.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);\nbreak;\ncase 116:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);\nbreak;\ncase 117:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);\nbreak;\ncase 118:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);\nbreak;\ncase 119:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);\nbreak;\ncase 120: case 122:\nthis.$ = [$$[$0]]\nbreak;\ncase 121: case 123:\n$$[$0-2].push($$[$0]);this.$ = $$[$0-2];\nbreak;\ncase 125:\nthis.$ = $$[$0-1] + $$[$0];\nbreak;\ncase 147:\nthis.$=$$[$0]\nbreak;\ncase 148:\nthis.$=$$[$0-1]+''+$$[$0]\nbreak;\ncase 153:\nthis.$='v';\nbreak;\ncase 154:\nthis.$='-';\nbreak;\ncase 155:\n this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 156:\n this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 157:\n this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 158:\n this.$={stmt:'dir', value:'LR'};\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},o($V4,$V5,{17:11}),{7:12,13:[1,13]},{16:14,21:$V1,22:$V2,24:$V3},{16:15,21:$V1,22:$V2,24:$V3},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,43:31,45:32,46:42,47:$Vb,49:43,61:$Vc,62:$Vd,81:$Ve,82:$Vf,83:$Vg,84:$Vh,85:$Vi,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,113:$Vq,114:$Vr,115:$Vs,116:$Vt,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},{8:61,10:[1,62],15:$VA},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,65],21:[1,66],22:$VB,27:64,30:67},o($VC,[2,11]),o($VC,[2,12]),o($VC,[2,13]),o($VC,[2,14]),o($VC,[2,15]),o($VC,[2,16]),{9:69,20:$VD,21:$VE,23:$VF,44:70,73:74,76:[1,75],77:[1,76]},{9:77,20:$VD,21:$VE,23:$VF},{9:78,20:$VD,21:$VE,23:$VF},{9:79,20:$VD,21:$VE,23:$VF},{9:80,20:$VD,21:$VE,23:$VF},{9:81,20:$VD,21:$VE,23:$VF},{9:83,20:$VD,21:$VE,22:[1,82],23:$VF},o($VC,[2,44]),o($VG,[2,51],{30:84,22:$VB}),{22:[1,85]},{22:[1,86]},{22:[1,87]},{22:[1,88]},{26:$VH,47:$VI,61:$VJ,62:$VK,79:[1,92],86:$VL,92:91,93:[1,89],95:[1,90],100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($VC,[2,155]),o($VC,[2,156]),o($VC,[2,157]),o($VC,[2,158]),o($VX,[2,52],{48:[1,111]}),o($VY,[2,71],{111:124,40:[1,112],47:$Vb,50:[1,113],52:[1,114],54:[1,115],56:[1,116],58:[1,117],60:[1,118],61:$Vc,62:$Vd,64:[1,119],66:[1,120],68:[1,121],69:[1,122],71:[1,123],86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz}),o($VZ,[2,147]),o($VZ,[2,172]),o($VZ,[2,173]),o($VZ,[2,174]),o($VZ,[2,175]),o($VZ,[2,176]),o($VZ,[2,177]),o($VZ,[2,178]),o($VZ,[2,179]),o($VZ,[2,180]),o($VZ,[2,181]),o($VZ,[2,182]),o($VZ,[2,183]),o($VZ,[2,184]),o($VZ,[2,185]),o($VZ,[2,186]),o($VZ,[2,187]),{9:125,20:$VD,21:$VE,23:$VF},{11:126,14:[1,127]},o($V_,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,128]},o($V$,[2,34],{30:129,22:$VB}),o($VC,[2,35]),{45:130,46:42,47:$Vb,49:43,61:$Vc,62:$Vd,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},o($V01,[2,45]),o($V01,[2,46]),o($V01,[2,47]),o($V11,[2,75],{74:131,63:[1,133],75:[1,132]}),{22:$V21,24:$V31,26:$V41,38:$V51,39:134,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o([47,61,62,63,75,86,90,100,101,104,106,107,117,118,119,120,121,122],[2,77]),o($VC,[2,36]),o($VC,[2,37]),o($VC,[2,38]),o($VC,[2,39]),o($VC,[2,40]),{22:$V21,24:$V31,26:$V41,38:$V51,39:158,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($Vl1,$V5,{17:159}),o($VG,[2,50],{47:$Vm1}),{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,92:161,97:[1,162],100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{90:[1,163],98:164,100:[1,165]},{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,90:[1,166],92:167,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,92:168,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($V_,[2,98],{22:[1,169],94:[1,170]}),o($V_,[2,102],{22:[1,171]}),o($V_,[2,106],{110:95,112:173,22:[1,172],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW}),o($V_,[2,108],{22:[1,174]}),o($Vn1,[2,149]),o($Vn1,[2,151]),o($Vn1,[2,152]),o($Vn1,[2,153]),o($Vn1,[2,154]),o($Vo1,[2,159]),o($Vo1,[2,160]),o($Vo1,[2,161]),o($Vo1,[2,162]),o($Vo1,[2,163]),o($Vo1,[2,164]),o($Vo1,[2,165]),o($Vo1,[2,166]),o($Vo1,[2,167]),o($Vo1,[2,168]),o($Vo1,[2,169]),o($Vo1,[2,170]),o($Vo1,[2,171]),{47:$Vb,49:175,61:$Vc,62:$Vd,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},{22:$V21,24:$V31,26:$V41,38:$V51,39:176,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:177,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:179,42:$V61,47:$VI,52:[1,178],61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:180,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:181,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:182,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{61:[1,183]},{22:$V21,24:$V31,26:$V41,38:$V51,39:184,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:185,42:$V61,47:$VI,61:$VJ,62:$VK,66:[1,186],68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:187,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:188,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:189,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($VZ,[2,148]),o($Vp1,[2,3]),{8:190,15:$VA},{15:[2,7]},o($V4,[2,28]),o($V$,[2,33]),o($VG,[2,48],{30:191,22:$VB}),o($V11,[2,72],{22:[1,192]}),{22:[1,193]},{22:$V21,24:$V31,26:$V41,38:$V51,39:194,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,77:[1,195],78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($Vo1,[2,79]),o($Vo1,[2,81]),o($Vo1,[2,137]),o($Vo1,[2,138]),o($Vo1,[2,139]),o($Vo1,[2,140]),o($Vo1,[2,141]),o($Vo1,[2,142]),o($Vo1,[2,143]),o($Vo1,[2,144]),o($Vo1,[2,145]),o($Vo1,[2,146]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,86]),o($Vo1,[2,87]),o($Vo1,[2,88]),o($Vo1,[2,89]),o($Vo1,[2,90]),o($Vo1,[2,91]),o($Vo1,[2,92]),{9:198,20:$VD,21:$VE,22:$V21,23:$VF,24:$V31,26:$V41,38:$V51,40:[1,197],42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,199],43:31,45:32,46:42,47:$Vb,49:43,61:$Vc,62:$Vd,81:$Ve,82:$Vf,83:$Vg,84:$Vh,85:$Vi,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,113:$Vq,114:$Vr,115:$Vs,116:$Vt,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},{22:$VB,30:200},{22:[1,201],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:173,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:[1,202]},{22:[1,203]},{22:[1,204],101:[1,205]},o($Vq1,[2,120]),{22:[1,206]},{22:[1,207],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:173,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:[1,208],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:173,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{79:[1,209]},o($V_,[2,100],{22:[1,210]}),{79:[1,211],96:[1,212]},{79:[1,213]},o($Vn1,[2,150]),{79:[1,214],96:[1,215]},o($VX,[2,54],{111:124,47:$Vb,61:$Vc,62:$Vd,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz}),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,216],42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,51:[1,217],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:218,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,53:[1,219],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,55:[1,220],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,57:[1,221],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:[1,222],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{62:[1,223]},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,65:[1,224],68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,67:[1,225],68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:226,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,227],42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,70:[1,228],72:[1,229],76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,70:[1,231],72:[1,230],76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{9:232,20:$VD,21:$VE,23:$VF},o($VG,[2,49],{47:$Vm1}),o($V11,[2,74]),o($V11,[2,73]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,63:[1,233],68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($V11,[2,76]),o($Vo1,[2,80]),{22:$V21,24:$V31,26:$V41,38:$V51,39:234,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($Vl1,$V5,{17:235}),o($VC,[2,43]),{46:236,47:$Vb,49:43,61:$Vc,62:$Vd,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:237,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:251,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:252,97:$Vv1,99:[1,253],100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:254,97:$Vv1,99:[1,255],100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{100:[1,256]},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:257,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:258,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,92:259,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($V_,[2,99]),{79:[1,260]},o($V_,[2,103],{22:[1,261]}),o($V_,[2,104]),o($V_,[2,107]),o($V_,[2,109],{22:[1,262]}),o($V_,[2,110]),o($VY,[2,55]),o($VY,[2,56]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,53:[1,263],61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($VY,[2,63]),o($VY,[2,58]),o($VY,[2,59]),o($VY,[2,60]),{61:[1,264]},o($VY,[2,62]),o($VY,[2,64]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,61:$VJ,62:$VK,67:[1,265],68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($VY,[2,66]),o($VY,[2,67]),o($VY,[2,69]),o($VY,[2,68]),o($VY,[2,70]),o($Vp1,[2,4]),o([22,47,61,62,86,90,100,101,104,106,107,117,118,119,120,121,122],[2,78]),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,266],42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,267],43:31,45:32,46:42,47:$Vb,49:43,61:$Vc,62:$Vd,81:$Ve,82:$Vf,83:$Vg,84:$Vh,85:$Vi,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,113:$Vq,114:$Vr,115:$Vs,116:$Vt,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},o($VX,[2,53]),o($V_,[2,112],{101:$VC1}),o($VD1,[2,122],{103:269,22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,97:$Vv1,100:$Vw1,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1}),o($VE1,[2,124]),o($VE1,[2,126]),o($VE1,[2,127]),o($VE1,[2,128]),o($VE1,[2,129]),o($VE1,[2,130]),o($VE1,[2,131]),o($VE1,[2,132]),o($VE1,[2,133]),o($VE1,[2,134]),o($VE1,[2,135]),o($VE1,[2,136]),o($V_,[2,113],{101:$VC1}),o($V_,[2,114],{101:$VC1}),{22:[1,270]},o($V_,[2,115],{101:$VC1}),{22:[1,271]},o($Vq1,[2,121]),o($V_,[2,95],{101:$VC1}),o($V_,[2,96],{101:$VC1}),o($V_,[2,97],{110:95,112:173,26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW}),o($V_,[2,101]),{96:[1,272]},{96:[1,273]},{53:[1,274]},{63:[1,275]},{67:[1,276]},{9:277,20:$VD,21:$VE,23:$VF},o($VC,[2,42]),{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,97:$Vv1,100:$Vw1,102:278,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},o($VE1,[2,125]),{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,92:279,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,92:280,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,110:95,112:93,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($V_,[2,105]),o($V_,[2,111]),o($VY,[2,57]),{22:$V21,24:$V31,26:$V41,38:$V51,39:281,42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:135,79:$V91,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},o($VY,[2,65]),o($Vl1,$V5,{17:282}),o($VD1,[2,123],{103:269,22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,97:$Vv1,100:$Vw1,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1}),o($V_,[2,118],{110:95,112:173,22:[1,283],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW}),o($V_,[2,119],{110:95,112:173,22:[1,284],26:$VH,47:$VI,61:$VJ,62:$VK,86:$VL,100:$VM,101:$VN,104:$VO,106:$VP,107:$VQ,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW}),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,285],42:$V61,47:$VI,61:$VJ,62:$VK,68:$V71,76:$V81,78:196,80:146,81:$Va1,82:$Vb1,83:$Vc1,84:$Vd1,85:$Ve1,86:$Vf1,87:$Vg1,89:137,90:$Vh1,100:$VM,101:$VN,104:$Vi1,106:$VP,107:$VQ,108:$Vj1,109:$Vk1,110:143,117:$VR,118:$VS,119:$VT,120:$VU,121:$VV,122:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,286],43:31,45:32,46:42,47:$Vb,49:43,61:$Vc,62:$Vd,81:$Ve,82:$Vf,83:$Vg,84:$Vh,85:$Vi,86:$Vj,90:$Vk,100:$Vl,101:$Vm,104:$Vn,106:$Vo,107:$Vp,111:44,113:$Vq,114:$Vr,115:$Vs,116:$Vt,117:$Vu,118:$Vv,119:$Vw,120:$Vx,121:$Vy,122:$Vz},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:287,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},{22:$Vr1,61:$Vs1,62:$Vt1,81:$Vu1,91:288,97:$Vv1,100:$Vw1,102:238,103:239,104:$Vx1,105:$Vy1,106:$Vz1,107:$VA1,108:$VB1},o($VY,[2,61]),o($VC,[2,41]),o($V_,[2,116],{101:$VC1}),o($V_,[2,117],{101:$VC1})],\ndefaultActions: {2:[2,1],9:[2,5],10:[2,2],127:[2,7]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 12; \nbreak;\ncase 1: this.begin('type_directive'); return 13; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 10; \nbreak;\ncase 3: this.popState(); this.popState(); return 15; \nbreak;\ncase 4:return 14;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:this.begin(\"string\");\nbreak;\ncase 8:this.popState();\nbreak;\ncase 9:return \"STR\";\nbreak;\ncase 10:return 81;\nbreak;\ncase 11:return 90;\nbreak;\ncase 12:return 82;\nbreak;\ncase 13:return 99;\nbreak;\ncase 14:return 83;\nbreak;\ncase 15:return 84;\nbreak;\ncase 16:this.begin(\"href\");\nbreak;\ncase 17:this.popState();\nbreak;\ncase 18:return 95;\nbreak;\ncase 19:this.begin(\"callbackname\");\nbreak;\ncase 20:this.popState();\nbreak;\ncase 21:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 22:return 93;\nbreak;\ncase 23:this.popState();\nbreak;\ncase 24:return 94;\nbreak;\ncase 25:this.begin(\"click\");\nbreak;\ncase 26:this.popState();\nbreak;\ncase 27:return 85;\nbreak;\ncase 28:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 29:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 30:return 38;\nbreak;\ncase 31:return 42;\nbreak;\ncase 32:return 96;\nbreak;\ncase 33:return 96;\nbreak;\ncase 34:return 96;\nbreak;\ncase 35:return 96;\nbreak;\ncase 36: this.popState(); return 25; \nbreak;\ncase 37: this.popState(); return 26; \nbreak;\ncase 38: this.popState(); return 26; \nbreak;\ncase 39: this.popState(); return 26; \nbreak;\ncase 40: this.popState(); return 26; \nbreak;\ncase 41: this.popState(); return 26; \nbreak;\ncase 42: this.popState(); return 26; \nbreak;\ncase 43: this.popState(); return 26; \nbreak;\ncase 44: this.popState(); return 26; \nbreak;\ncase 45: this.popState(); return 26; \nbreak;\ncase 46: this.popState(); return 26; \nbreak;\ncase 47:return 113;\nbreak;\ncase 48:return 114;\nbreak;\ncase 49:return 115;\nbreak;\ncase 50:return 116;\nbreak;\ncase 51: return 100;\nbreak;\ncase 52:return 106;\nbreak;\ncase 53:return 48;\nbreak;\ncase 54:return 62;\nbreak;\ncase 55:return 47;\nbreak;\ncase 56:return 20;\nbreak;\ncase 57:return 101;\nbreak;\ncase 58:return 121;\nbreak;\ncase 59:return 77;\nbreak;\ncase 60:return 77;\nbreak;\ncase 61:return 77;\nbreak;\ncase 62:return 76;\nbreak;\ncase 63:return 76;\nbreak;\ncase 64:return 76;\nbreak;\ncase 65:return 54;\nbreak;\ncase 66:return 55;\nbreak;\ncase 67:return 56;\nbreak;\ncase 68:return 57;\nbreak;\ncase 69:return 58;\nbreak;\ncase 70:return 59;\nbreak;\ncase 71:return 60;\nbreak;\ncase 72:return 64;\nbreak;\ncase 73:return 65;\nbreak;\ncase 74:return 50;\nbreak;\ncase 75:return 51;\nbreak;\ncase 76:return 104;\nbreak;\ncase 77:return 107;\nbreak;\ncase 78:return 122;\nbreak;\ncase 79:return 119;\nbreak;\ncase 80:return 108;\nbreak;\ncase 81:return 120;\nbreak;\ncase 82:return 120;\nbreak;\ncase 83:return 109;\nbreak;\ncase 84:return 68;\nbreak;\ncase 85:return 87;\nbreak;\ncase 86:return 'SEP';\nbreak;\ncase 87:return 86;\nbreak;\ncase 88:return 61;\nbreak;\ncase 89:return 70;\nbreak;\ncase 90:return 69;\nbreak;\ncase 91:return 72;\nbreak;\ncase 92:return 71;\nbreak;\ncase 93:return 117;\nbreak;\ncase 94:return 118;\nbreak;\ncase 95:return 63;\nbreak;\ncase 96:return 52;\nbreak;\ncase 97:return 53;\nbreak;\ncase 98:return 40;\nbreak;\ncase 99:return 41;\nbreak;\ncase 100:return 66\nbreak;\ncase 101:return 67\nbreak;\ncase 102:return 128;\nbreak;\ncase 103:return 21;\nbreak;\ncase 104:return 22;\nbreak;\ncase 105:return 23;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)[^\\n]*)/,/^(?:[^\\}]%%[^\\n]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:click[\\s]+)/,/^(?:[\\s\\n])/,/^(?:[^\\s\\n]*)/,/^(?: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]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:\\s*[xo<]?--+[-xo>]\\s*)/,/^(?:\\s*[xo<]?==+[=xo>]\\s*)/,/^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,/^(?:\\s*[xo<]?--\\s*)/,/^(?:\\s*[xo<]?==\\s*)/,/^(?:\\s*[xo<]?-\\.\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:\\(\\[)/,/^(?:\\]\\))/,/^(?:\\[\\[)/,/^(?:\\]\\])/,/^(?:\\[\\|)/,/^(?:\\[\\()/,/^(?:\\)\\])/,/^(?:\\(\\(\\()/,/^(?:\\)\\)\\))/,/^(?:-)/,/^(?:\\.)/,/^(?:[\\_])/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:\\\\\\|)/,/^(?:v\\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\\\\])/,/^(?:\\[\\/)/,/^(?:\\/\\])/,/^(?:\\[\\\\)/,/^(?:[!\"#$%&'*+,-.`?\\\\_/])/,/^(?:[\\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)/,/^(?:$)/],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[23,24],\"inclusive\":false},\"callbackname\":{\"rules\":[20,21,22],\"inclusive\":false},\"href\":{\"rules\":[17,18],\"inclusive\":false},\"click\":{\"rules\":[26,27],\"inclusive\":false},\"vertex\":{\"rules\":[],\"inclusive\":false},\"dir\":{\"rules\":[36,37,38,39,40,41,42,43,44,45,46],\"inclusive\":false},\"string\":{\"rules\":[8,9],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,10,11,12,13,14,15,16,19,25,28,29,30,31,32,33,34,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,25],$Vd=[1,27],$Ve=[1,30],$Vf=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,29,34];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"gantt\":5,\"document\":6,\"EOF\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NL\":11,\"dateFormat\":12,\"inclusiveEndDates\":13,\"topAxis\":14,\"axisFormat\":15,\"excludes\":16,\"includes\":17,\"todayMarker\":18,\"title\":19,\"section\":20,\"clickStatement\":21,\"taskTxt\":22,\"taskData\":23,\"openDirective\":24,\"typeDirective\":25,\"closeDirective\":26,\":\":27,\"argDirective\":28,\"click\":29,\"callbackname\":30,\"callbackargs\":31,\"href\":32,\"clickStatementDebug\":33,\"open_directive\":34,\"type_directive\":35,\"arg_directive\":36,\"close_directive\":37,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"gantt\",7:\"EOF\",9:\"SPACE\",11:\"NL\",12:\"dateFormat\",13:\"inclusiveEndDates\",14:\"topAxis\",15:\"axisFormat\",16:\"excludes\",17:\"includes\",18:\"todayMarker\",19:\"title\",20:\"section\",22:\"taskTxt\",23:\"taskData\",27:\":\",29:\"click\",30:\"callbackname\",31:\"callbackargs\",32:\"href\",34:\"open_directive\",35:\"type_directive\",36:\"arg_directive\",37:\"close_directive\"},\nproductions_: [0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[21,2],[21,3],[21,3],[21,4],[21,3],[21,4],[21,2],[33,2],[33,3],[33,3],[33,4],[33,3],[33,4],[33,2],[24,1],[25,1],[28,1],[26,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 2:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 9:\nyy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 10:\nyy.enableInclusiveEndDates();this.$=$$[$0].substr(18);\nbreak;\ncase 11:\nyy.TopAxis();this.$=$$[$0].substr(8);\nbreak;\ncase 12:\nyy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 13:\nyy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 14:\nyy.setIncludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 15:\nyy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);\nbreak;\ncase 16:\nyy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 19:\nyy.addTask($$[$0-1],$$[$0]);this.$='task';\nbreak;\ncase 23:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);\nbreak;\ncase 24:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 25:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);\nbreak;\ncase 26:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);\nbreak;\ncase 27:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);\nbreak;\ncase 28:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);\nbreak;\ncase 29:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 30: case 36:\nthis.$=$$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 31: case 32: case 34:\nthis.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 33: case 35:\nthis.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 37:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 38:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 39:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 40:\n yy.parseDirective('}%%', 'close_directive', 'gantt'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,24:4,34:$V1},{1:[3]},{3:6,4:2,5:$V0,24:4,34:$V1},o($V2,[2,3],{6:7}),{25:8,35:[1,9]},{35:[2,37]},{1:[2,1]},{4:26,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,21:24,22:$Vc,24:4,29:$Vd,34:$V1},{26:28,27:[1,29],37:$Ve},o([27,37],[2,38]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:26,10:31,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,21:24,22:$Vc,24:4,29:$Vd,34:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),{23:[1,32]},o($V2,[2,20]),{30:[1,33],32:[1,34]},{11:[1,35]},{28:36,36:[1,37]},{11:[2,40]},o($V2,[2,5]),o($V2,[2,19]),o($V2,[2,23],{31:[1,38],32:[1,39]}),o($V2,[2,29],{30:[1,40]}),o($Vf,[2,21]),{26:41,37:$Ve},{37:[2,39]},o($V2,[2,24],{32:[1,42]}),o($V2,[2,25]),o($V2,[2,27],{31:[1,43]}),{11:[1,44]},o($V2,[2,26]),o($V2,[2,28]),o($Vf,[2,22])],\ndefaultActions: {5:[2,37],6:[2,1],30:[2,40],37:[2,39]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 34; \nbreak;\ncase 1: this.begin('type_directive'); return 35; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 27; \nbreak;\ncase 3: this.popState(); this.popState(); return 37; \nbreak;\ncase 4:return 36;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:/* do nothing */\nbreak;\ncase 8:return 11;\nbreak;\ncase 9:/* skip whitespace */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:/* skip comments */\nbreak;\ncase 12:this.begin(\"href\");\nbreak;\ncase 13:this.popState();\nbreak;\ncase 14:return 32;\nbreak;\ncase 15:this.begin(\"callbackname\");\nbreak;\ncase 16:this.popState();\nbreak;\ncase 17:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 18:return 30;\nbreak;\ncase 19:this.popState();\nbreak;\ncase 20:return 31;\nbreak;\ncase 21:this.begin(\"click\");\nbreak;\ncase 22:this.popState();\nbreak;\ncase 23:return 29;\nbreak;\ncase 24:return 5;\nbreak;\ncase 25:return 12;\nbreak;\ncase 26:return 13;\nbreak;\ncase 27:return 14;\nbreak;\ncase 28:return 15;\nbreak;\ncase 29:return 17;\nbreak;\ncase 30:return 16;\nbreak;\ncase 31:return 18;\nbreak;\ncase 32:return 'date';\nbreak;\ncase 33:return 19;\nbreak;\ncase 34:return 20;\nbreak;\ncase 35:return 22;\nbreak;\ncase 36:return 23;\nbreak;\ncase 37:return 27;\nbreak;\ncase 38:return 7;\nbreak;\ncase 39:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)*[^\\n]*)/i,/^(?:[^\\}]%%*[^\\n]*)/i,/^(?:%%*[^\\n]*[\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:href[\\s]+[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:call[\\s]+)/i,/^(?:\\([\\s]*\\))/i,/^(?:\\()/i,/^(?:[^(]*)/i,/^(?:\\))/i,/^(?:[^)]*)/i,/^(?:click[\\s]+)/i,/^(?:[\\s\\n])/i,/^(?:[^\\s\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:inclusiveEndDates\\b)/i,/^(?:topAxis\\b)/i,/^(?:axisFormat\\s[^#\\n;]+)/i,/^(?:includes\\s[^#\\n;]+)/i,/^(?:excludes\\s[^#\\n;]+)/i,/^(?:todayMarker\\s[^\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[19,20],\"inclusive\":false},\"callbackname\":{\"rules\":[16,17,18],\"inclusive\":false},\"href\":{\"rules\":[13,14],\"inclusive\":false},\"click\":{\"rules\":[22,23],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,7],$V2=[1,5],$V3=[1,9],$V4=[1,6],$V5=[2,6],$V6=[1,16],$V7=[6,8,14,18,20,21,22,37,41],$V8=[8,14,18,20,21,22],$V9=[8,13,14,18,20,21,22],$Va=[1,26],$Vb=[6,8,14,37,41],$Vc=[8,14,41],$Vd=[1,53],$Ve=[1,54],$Vf=[1,55],$Vg=[8,14,24,28,29,41];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"GG\":6,\"document\":7,\"EOF\":8,\":\":9,\"DIR\":10,\"options\":11,\"body\":12,\"OPT\":13,\"NL\":14,\"line\":15,\"statement\":16,\"commitStatement\":17,\"BRANCH\":18,\"ID\":19,\"CHECKOUT\":20,\"MERGE\":21,\"COMMIT\":22,\"commit_arg\":23,\"COMMIT_TAG\":24,\"STR\":25,\"COMMIT_TYPE\":26,\"commitType\":27,\"COMMIT_ID\":28,\"COMMIT_MSG\":29,\"NORMAL\":30,\"REVERSE\":31,\"HIGHLIGHT\":32,\"openDirective\":33,\"typeDirective\":34,\"closeDirective\":35,\"argDirective\":36,\"open_directive\":37,\"type_directive\":38,\"arg_directive\":39,\"close_directive\":40,\";\":41,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",18:\"BRANCH\",19:\"ID\",20:\"CHECKOUT\",21:\"MERGE\",22:\"COMMIT\",24:\"COMMIT_TAG\",25:\"STR\",26:\"COMMIT_TYPE\",28:\"COMMIT_ID\",29:\"COMMIT_MSG\",30:\"NORMAL\",31:\"REVERSE\",32:\"HIGHLIGHT\",37:\"open_directive\",38:\"type_directive\",39:\"arg_directive\",40:\"close_directive\",41:\";\"},\nproductions_: [0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,2],[16,2],[16,2],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[23,0],[23,1],[27,1],[27,1],[27,1],[5,3],[5,5],[33,1],[34,1],[36,1],[35,1],[4,1],[4,1],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 3:\n return $$[$0]; \nbreak;\ncase 4:\n return $$[$0-1]; \nbreak;\ncase 5:\nyy.setDirection($$[$0-3]); return $$[$0-1];\nbreak;\ncase 7:\n yy.setOptions($$[$0-1]); this.$ = $$[$0]\nbreak;\ncase 8:\n$$[$0-1] +=$$[$0]; this.$=$$[$0-1]\nbreak;\ncase 10:\nthis.$ = []\nbreak;\ncase 11:\n$$[$0-1].push($$[$0]); this.$=$$[$0-1];\nbreak;\ncase 12:\nthis.$ =$$[$0-1]\nbreak;\ncase 15:\nyy.branch($$[$0])\nbreak;\ncase 16:\nyy.checkout($$[$0])\nbreak;\ncase 17:\nyy.merge($$[$0])\nbreak;\ncase 18:\nyy.commit($$[$0])\nbreak;\ncase 19:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 20:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 21:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 22:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 23:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 24:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 25:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 26:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 27:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 28:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 29:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 30:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 31:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 32:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 33:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 34:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 35:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 36:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 37:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 38:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 39:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 40:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 41:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 42:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 43:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 44:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 45:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 46:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 47:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 48:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 49:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 50:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 51:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 52:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 53:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 54:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 55:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 56:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 57:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 58:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 59:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 60:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 61:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 62:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 63:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 64:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 65:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 66:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 67:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 68:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 69:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 70:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 71:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 72:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 73:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 74:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 75:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 76:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 79:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 80:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 81:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 82:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 83:\nthis.$ = \"\"\nbreak;\ncase 84:\nthis.$=$$[$0]\nbreak;\ncase 85:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 86:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 87:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 90:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 91:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 92:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 93:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,33:8,37:$V3,41:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,33:8,37:$V3,41:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,33:8,37:$V3,41:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,94]),o($V7,[2,95]),o($V7,[2,96]),{34:17,38:[1,18]},{38:[2,90]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:$V5,11:15,14:$V6},{9:[1,21]},o($V8,[2,10],{12:22,13:[1,23]}),o($V9,[2,9]),{9:[1,25],35:24,40:$Va},o([9,40],[2,91]),{1:[2,3]},{8:[1,27]},{7:28,8:$V5,11:15,14:$V6},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:[1,33],20:[1,34],21:[1,35],22:[1,36]},o($V9,[2,8]),o($Vb,[2,88]),{36:37,39:[1,38]},o($Vb,[2,93]),{1:[2,4]},{8:[1,39]},o($V8,[2,11]),{4:40,8:$V1,14:$V2,41:$V4},o($V8,[2,13]),o($Vc,[2,14]),{19:[1,41]},{19:[1,42]},{19:[1,43]},o($Vc,[2,83],{23:44,24:[1,45],25:[1,49],26:[1,46],28:[1,47],29:[1,48]}),{35:50,40:$Va},{40:[2,92]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,15]),o($Vc,[2,16]),o($Vc,[2,17]),o($Vc,[2,18]),{25:[1,51]},{27:52,30:$Vd,31:$Ve,32:$Vf},{25:[1,56]},{25:[1,57]},o($Vc,[2,84]),o($Vb,[2,89]),o($Vc,[2,19],{26:[1,58],28:[1,59],29:[1,60]}),o($Vc,[2,20],{24:[1,61],28:[1,62],29:[1,63]}),o($Vg,[2,85]),o($Vg,[2,86]),o($Vg,[2,87]),o($Vc,[2,23],{24:[1,64],26:[1,65],29:[1,66]}),o($Vc,[2,34],{24:[1,67],26:[1,68],28:[1,69]}),{27:70,30:$Vd,31:$Ve,32:$Vf},{25:[1,71]},{25:[1,72]},{25:[1,73]},{25:[1,74]},{25:[1,75]},{25:[1,76]},{27:77,30:$Vd,31:$Ve,32:$Vf},{25:[1,78]},{25:[1,79]},{27:80,30:$Vd,31:$Ve,32:$Vf},{25:[1,81]},o($Vc,[2,21],{28:[1,82],29:[1,83]}),o($Vc,[2,25],{26:[1,84],29:[1,85]}),o($Vc,[2,35],{26:[1,86],28:[1,87]}),o($Vc,[2,22],{28:[1,88],29:[1,89]}),o($Vc,[2,27],{24:[1,90],29:[1,91]}),o($Vc,[2,38],{24:[1,92],28:[1,93]}),o($Vc,[2,24],{26:[1,94],29:[1,95]}),o($Vc,[2,26],{24:[1,96],29:[1,97]}),o($Vc,[2,39],{24:[1,99],26:[1,98]}),o($Vc,[2,36],{26:[1,100],28:[1,101]}),o($Vc,[2,37],{24:[1,102],28:[1,103]}),o($Vc,[2,40],{24:[1,105],26:[1,104]}),{25:[1,106]},{25:[1,107]},{27:108,30:$Vd,31:$Ve,32:$Vf},{25:[1,109]},{27:110,30:$Vd,31:$Ve,32:$Vf},{25:[1,111]},{25:[1,112]},{25:[1,113]},{25:[1,114]},{25:[1,115]},{25:[1,116]},{25:[1,117]},{27:118,30:$Vd,31:$Ve,32:$Vf},{25:[1,119]},{25:[1,120]},{25:[1,121]},{27:122,30:$Vd,31:$Ve,32:$Vf},{25:[1,123]},{27:124,30:$Vd,31:$Ve,32:$Vf},{25:[1,125]},{25:[1,126]},{25:[1,127]},{27:128,30:$Vd,31:$Ve,32:$Vf},{25:[1,129]},o($Vc,[2,32],{29:[1,130]}),o($Vc,[2,45],{28:[1,131]}),o($Vc,[2,33],{29:[1,132]}),o($Vc,[2,56],{26:[1,133]}),o($Vc,[2,46],{28:[1,134]}),o($Vc,[2,55],{26:[1,135]}),o($Vc,[2,31],{29:[1,136]}),o($Vc,[2,44],{28:[1,137]}),o($Vc,[2,30],{29:[1,138]}),o($Vc,[2,50],{24:[1,139]}),o($Vc,[2,43],{28:[1,140]}),o($Vc,[2,49],{24:[1,141]}),o($Vc,[2,29],{29:[1,142]}),o($Vc,[2,57],{26:[1,143]}),o($Vc,[2,28],{29:[1,144]}),o($Vc,[2,51],{24:[1,145]}),o($Vc,[2,52],{24:[1,146]}),o($Vc,[2,58],{26:[1,147]}),o($Vc,[2,42],{28:[1,148]}),o($Vc,[2,53],{26:[1,149]}),o($Vc,[2,41],{28:[1,150]}),o($Vc,[2,47],{24:[1,151]}),o($Vc,[2,48],{24:[1,152]}),o($Vc,[2,54],{26:[1,153]}),{25:[1,154]},{25:[1,155]},{25:[1,156]},{27:157,30:$Vd,31:$Ve,32:$Vf},{25:[1,158]},{27:159,30:$Vd,31:$Ve,32:$Vf},{25:[1,160]},{25:[1,161]},{25:[1,162]},{25:[1,163]},{25:[1,164]},{25:[1,165]},{25:[1,166]},{27:167,30:$Vd,31:$Ve,32:$Vf},{25:[1,168]},{25:[1,169]},{25:[1,170]},{27:171,30:$Vd,31:$Ve,32:$Vf},{25:[1,172]},{27:173,30:$Vd,31:$Ve,32:$Vf},{25:[1,174]},{25:[1,175]},{25:[1,176]},{27:177,30:$Vd,31:$Ve,32:$Vf},o($Vc,[2,73]),o($Vc,[2,74]),o($Vc,[2,71]),o($Vc,[2,72]),o($Vc,[2,76]),o($Vc,[2,75]),o($Vc,[2,80]),o($Vc,[2,79]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,82]),o($Vc,[2,81]),o($Vc,[2,70]),o($Vc,[2,69]),o($Vc,[2,68]),o($Vc,[2,67]),o($Vc,[2,65]),o($Vc,[2,66]),o($Vc,[2,64]),o($Vc,[2,63]),o($Vc,[2,62]),o($Vc,[2,61]),o($Vc,[2,59]),o($Vc,[2,60])],\ndefaultActions: {9:[2,90],10:[2,1],11:[2,2],19:[2,3],27:[2,4],38:[2,92],39:[2,5]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 37; \nbreak;\ncase 1: this.begin('type_directive'); return 38; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 40; \nbreak;\ncase 4:return 39;\nbreak;\ncase 5:/*{console.log('New line');return 14;}*/ return 14;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip comments */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:return 6;\nbreak;\ncase 10:return 22;\nbreak;\ncase 11:return 28;\nbreak;\ncase 12:return 26;\nbreak;\ncase 13:return 29;\nbreak;\ncase 14:return 30;\nbreak;\ncase 15:return 31;\nbreak;\ncase 16:return 32;\nbreak;\ncase 17:return 24;\nbreak;\ncase 18:return 18;\nbreak;\ncase 19:return 21;\nbreak;\ncase 20:return 20;\nbreak;\ncase 21:return 10;\nbreak;\ncase 22:return 10;\nbreak;\ncase 23:return 9;\nbreak;\ncase 24:return 'CARET'\nbreak;\ncase 25:this.begin(\"options\");\nbreak;\ncase 26:this.popState();\nbreak;\ncase 27:return 13;\nbreak;\ncase 28:this.begin(\"string\");\nbreak;\ncase 29:this.popState();\nbreak;\ncase 30:return 25;\nbreak;\ncase 31:return 19;\nbreak;\ncase 32:return 8;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit\\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\\b)/i,/^(?:REVERSE\\b)/i,/^(?:HIGHLIGHT\\b)/i,/^(?:tag:)/i,/^(?:branch\\b)/i,/^(?:merge\\b)/i,/^(?:checkout\\b)/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:end\\r?\\n)/i,/^(?:[^\\n]+\\r?\\n)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[a-zA-Z][-_\\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"options\":{\"rules\":[26,27],\"inclusive\":false},\"string\":{\"rules\":[29,30],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,31,32],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"info\":4,\"document\":5,\"EOF\":6,\"line\":7,\"statement\":8,\"NL\":9,\"showInfo\":10,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\"},\nproductions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return yy; \nbreak;\ncase 4:\n \nbreak;\ncase 6:\n yy.setInfo(true); \nbreak;\n}\n},\ntable: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],\ndefaultActions: {4:[2,1]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\r\n\t// Pre-lexer code can go here\r\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 4 ;\nbreak;\ncase 1:return 9 ;\nbreak;\ncase 2:return 'space';\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 6 ;\nbreak;\ncase 5:return 'TXT' ;\nbreak;\n}\n},\nrules: [/^(?:info\\b)/i,/^(?:[\\s\\n\\r]+)/i,/^(?:[\\s]+)/i,/^(?:showInfo\\b)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,9],$V5=[1,11,13,15,22,23,24,25],$V6=[2,5],$V7=[1,6,11,13,15,22,23,24,25],$V8=[22,23,24],$V9=[2,8],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,25],$Ve=[6,22,23,24,25];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"PIE\":6,\"document\":7,\"showData\":8,\"line\":9,\"statement\":10,\"txt\":11,\"value\":12,\"title\":13,\"title_value\":14,\"accDescription\":15,\"description_value\":16,\"openDirective\":17,\"typeDirective\":18,\"closeDirective\":19,\":\":20,\"argDirective\":21,\"NEWLINE\":22,\";\":23,\"EOF\":24,\"open_directive\":25,\"type_directive\":26,\"arg_directive\":27,\"close_directive\":28,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"PIE\",8:\"showData\",11:\"txt\",12:\"value\",13:\"title\",14:\"title_value\",15:\"accDescription\",16:\"description_value\",20:\":\",22:\"NEWLINE\",23:\";\",24:\"EOF\",25:\"open_directive\",26:\"type_directive\",27:\"arg_directive\",28:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[17,1],[18,1],[21,1],[19,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\nyy.setShowData(true);\nbreak;\ncase 7:\n this.$ = $$[$0-1] \nbreak;\ncase 9:\n yy.addSection($$[$0-1],yy.cleanupValue($$[$0])); \nbreak;\ncase 10:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 18:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 19:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 20:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 21:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,17:8,22:$V1,23:$V2,24:$V3,25:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,17:8,22:$V1,23:$V2,24:$V3,25:$V4},{3:11,4:2,5:3,6:$V0,17:8,22:$V1,23:$V2,24:$V3,25:$V4},o($V5,$V6,{7:12,8:[1,13]}),o($V7,[2,15]),o($V7,[2,16]),o($V7,[2,17]),{18:14,26:[1,15]},{26:[2,18]},{1:[2,1]},{1:[2,2]},o($V8,$V9,{17:8,9:16,10:17,5:21,1:[2,3],11:$Va,13:$Vb,15:$Vc,25:$V4}),o($V5,$V6,{7:22}),{19:23,20:[1,24],28:$Vd},o([20,28],[2,19]),o($V5,[2,6]),{4:26,22:$V1,23:$V2,24:$V3},{12:[1,27]},{14:[1,28]},{16:[1,29]},o($V8,[2,12]),o($V8,$V9,{17:8,9:16,10:17,5:21,1:[2,4],11:$Va,13:$Vb,15:$Vc,25:$V4}),o($Ve,[2,13]),{21:30,27:[1,31]},o($Ve,[2,21]),o($V5,[2,7]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),{19:32,28:$Vd},{28:[2,20]},o($Ve,[2,14])],\ndefaultActions: {9:[2,18],10:[2,1],11:[2,2],31:[2,20]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 25; \nbreak;\ncase 1: this.begin('type_directive'); return 26; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 20; \nbreak;\ncase 3: this.popState(); this.popState(); return 28; \nbreak;\ncase 4:return 27;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */{ /*console.log('');*/ }\nbreak;\ncase 7:return 22;\nbreak;\ncase 8:/* do nothing */\nbreak;\ncase 9:/* ignore */\nbreak;\ncase 10: this.begin(\"title\");return 13; \nbreak;\ncase 11: this.popState(); return \"title_value\"; \nbreak;\ncase 12: this.begin(\"accDescription\");return 15; \nbreak;\ncase 13: this.popState(); return \"description_value\"; \nbreak;\ncase 14: this.begin(\"string\"); \nbreak;\ncase 15: this.popState(); \nbreak;\ncase 16: return \"txt\"; \nbreak;\ncase 17:return 6;\nbreak;\ncase 18:return 8;\nbreak;\ncase 19:return \"value\";\nbreak;\ncase 20:return 24;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n\\r]+)/i,/^(?:%%[^\\n]*)/i,/^(?:[\\s]+)/i,/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescription\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:pie\\b)/i,/^(?:showData\\b)/i,/^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i,/^(?:$)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"accDescription\":{\"rules\":[13],\"inclusive\":false},\"title\":{\"rules\":[11],\"inclusive\":false},\"string\":{\"rules\":[15,16],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,12,14,17,18,19,20],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[1,17],$V3=[2,10],$V4=[1,21],$V5=[1,22],$V6=[1,23],$V7=[1,24],$V8=[1,25],$V9=[1,26],$Va=[1,19],$Vb=[1,27],$Vc=[1,28],$Vd=[1,31],$Ve=[66,67],$Vf=[5,8,14,35,36,37,38,39,40,48,55,57,66,67],$Vg=[5,6,8,14,35,36,37,38,39,40,48,66,67],$Vh=[1,51],$Vi=[1,52],$Vj=[1,53],$Vk=[1,54],$Vl=[1,55],$Vm=[1,56],$Vn=[1,57],$Vo=[57,58],$Vp=[1,69],$Vq=[1,65],$Vr=[1,66],$Vs=[1,67],$Vt=[1,68],$Vu=[1,70],$Vv=[1,74],$Vw=[1,75],$Vx=[1,72],$Vy=[1,73],$Vz=[5,8,14,35,36,37,38,39,40,48,66,67];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"NEWLINE\":5,\"RD\":6,\"diagram\":7,\"EOF\":8,\"openDirective\":9,\"typeDirective\":10,\"closeDirective\":11,\":\":12,\"argDirective\":13,\"open_directive\":14,\"type_directive\":15,\"arg_directive\":16,\"close_directive\":17,\"requirementDef\":18,\"elementDef\":19,\"relationshipDef\":20,\"requirementType\":21,\"requirementName\":22,\"STRUCT_START\":23,\"requirementBody\":24,\"ID\":25,\"COLONSEP\":26,\"id\":27,\"TEXT\":28,\"text\":29,\"RISK\":30,\"riskLevel\":31,\"VERIFYMTHD\":32,\"verifyType\":33,\"STRUCT_STOP\":34,\"REQUIREMENT\":35,\"FUNCTIONAL_REQUIREMENT\":36,\"INTERFACE_REQUIREMENT\":37,\"PERFORMANCE_REQUIREMENT\":38,\"PHYSICAL_REQUIREMENT\":39,\"DESIGN_CONSTRAINT\":40,\"LOW_RISK\":41,\"MED_RISK\":42,\"HIGH_RISK\":43,\"VERIFY_ANALYSIS\":44,\"VERIFY_DEMONSTRATION\":45,\"VERIFY_INSPECTION\":46,\"VERIFY_TEST\":47,\"ELEMENT\":48,\"elementName\":49,\"elementBody\":50,\"TYPE\":51,\"type\":52,\"DOCREF\":53,\"ref\":54,\"END_ARROW_L\":55,\"relationship\":56,\"LINE\":57,\"END_ARROW_R\":58,\"CONTAINS\":59,\"COPIES\":60,\"DERIVES\":61,\"SATISFIES\":62,\"VERIFIES\":63,\"REFINES\":64,\"TRACES\":65,\"unqString\":66,\"qString\":67,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"NEWLINE\",6:\"RD\",8:\"EOF\",12:\":\",14:\"open_directive\",15:\"type_directive\",16:\"arg_directive\",17:\"close_directive\",23:\"STRUCT_START\",25:\"ID\",26:\"COLONSEP\",28:\"TEXT\",30:\"RISK\",32:\"VERIFYMTHD\",34:\"STRUCT_STOP\",35:\"REQUIREMENT\",36:\"FUNCTIONAL_REQUIREMENT\",37:\"INTERFACE_REQUIREMENT\",38:\"PERFORMANCE_REQUIREMENT\",39:\"PHYSICAL_REQUIREMENT\",40:\"DESIGN_CONSTRAINT\",41:\"LOW_RISK\",42:\"MED_RISK\",43:\"HIGH_RISK\",44:\"VERIFY_ANALYSIS\",45:\"VERIFY_DEMONSTRATION\",46:\"VERIFY_INSPECTION\",47:\"VERIFY_TEST\",48:\"ELEMENT\",51:\"TYPE\",53:\"DOCREF\",55:\"END_ARROW_L\",57:\"LINE\",58:\"END_ARROW_R\",59:\"CONTAINS\",60:\"COPIES\",61:\"DERIVES\",62:\"SATISFIES\",63:\"VERIFIES\",64:\"REFINES\",65:\"TRACES\",66:\"unqString\",67:\"qString\"},\nproductions_: [0,[3,3],[3,2],[3,4],[4,3],[4,5],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[18,5],[24,5],[24,5],[24,5],[24,5],[24,2],[24,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[31,1],[31,1],[31,1],[33,1],[33,1],[33,1],[33,1],[19,5],[50,5],[50,5],[50,2],[50,1],[20,5],[20,5],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[27,1],[27,1],[29,1],[29,1],[49,1],[49,1],[52,1],[52,1],[54,1],[54,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 7:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 8:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 9:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\ncase 10:\n this.$ = [] \nbreak;\ncase 16:\n yy.addRequirement($$[$0-3], $$[$0-4]) \nbreak;\ncase 17:\n yy.setNewReqId($$[$0-2]); \nbreak;\ncase 18:\n yy.setNewReqText($$[$0-2]); \nbreak;\ncase 19:\n yy.setNewReqRisk($$[$0-2]); \nbreak;\ncase 20:\n yy.setNewReqVerifyMethod($$[$0-2]); \nbreak;\ncase 23:\n this.$=yy.RequirementType.REQUIREMENT;\nbreak;\ncase 24:\n this.$=yy.RequirementType.FUNCTIONAL_REQUIREMENT;\nbreak;\ncase 25:\n this.$=yy.RequirementType.INTERFACE_REQUIREMENT;\nbreak;\ncase 26:\n this.$=yy.RequirementType.PERFORMANCE_REQUIREMENT;\nbreak;\ncase 27:\n this.$=yy.RequirementType.PHYSICAL_REQUIREMENT;\nbreak;\ncase 28:\n this.$=yy.RequirementType.DESIGN_CONSTRAINT;\nbreak;\ncase 29:\n this.$=yy.RiskLevel.LOW_RISK;\nbreak;\ncase 30:\n this.$=yy.RiskLevel.MED_RISK;\nbreak;\ncase 31:\n this.$=yy.RiskLevel.HIGH_RISK;\nbreak;\ncase 32:\n this.$=yy.VerifyType.VERIFY_ANALYSIS;\nbreak;\ncase 33:\n this.$=yy.VerifyType.VERIFY_DEMONSTRATION;\nbreak;\ncase 34:\n this.$=yy.VerifyType.VERIFY_INSPECTION;\nbreak;\ncase 35:\n this.$=yy.VerifyType.VERIFY_TEST;\nbreak;\ncase 36:\n yy.addElement($$[$0-3]) \nbreak;\ncase 37:\n yy.setNewElementType($$[$0-2]); \nbreak;\ncase 38:\n yy.setNewElementDocRef($$[$0-2]); \nbreak;\ncase 41:\n yy.addRelationship($$[$0-2], $$[$0], $$[$0-4]) \nbreak;\ncase 42:\n yy.addRelationship($$[$0-2], $$[$0-4], $$[$0]) \nbreak;\ncase 43:\n this.$=yy.Relationships.CONTAINS;\nbreak;\ncase 44:\n this.$=yy.Relationships.COPIES;\nbreak;\ncase 45:\n this.$=yy.Relationships.DERIVES;\nbreak;\ncase 46:\n this.$=yy.Relationships.SATISFIES;\nbreak;\ncase 47:\n this.$=yy.Relationships.VERIFIES;\nbreak;\ncase 48:\n this.$=yy.Relationships.REFINES;\nbreak;\ncase 49:\n this.$=yy.Relationships.TRACES;\nbreak;\n}\n},\ntable: [{3:1,4:2,6:$V0,9:4,14:$V1},{1:[3]},{3:7,4:2,5:[1,6],6:$V0,9:4,14:$V1},{5:[1,8]},{10:9,15:[1,10]},{15:[2,6]},{3:11,4:2,6:$V0,9:4,14:$V1},{1:[2,2]},{4:16,5:$V2,7:12,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{11:29,12:[1,30],17:$Vd},o([12,17],[2,7]),{1:[2,1]},{8:[1,32]},{4:16,5:$V2,7:33,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:34,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:35,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:36,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:37,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{22:38,66:[1,39],67:[1,40]},{49:41,66:[1,42],67:[1,43]},{55:[1,44],57:[1,45]},o($Ve,[2,23]),o($Ve,[2,24]),o($Ve,[2,25]),o($Ve,[2,26]),o($Ve,[2,27]),o($Ve,[2,28]),o($Vf,[2,52]),o($Vf,[2,53]),o($Vg,[2,4]),{13:46,16:[1,47]},o($Vg,[2,9]),{1:[2,3]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{23:[1,48]},{23:[2,50]},{23:[2,51]},{23:[1,49]},{23:[2,56]},{23:[2,57]},{56:50,59:$Vh,60:$Vi,61:$Vj,62:$Vk,63:$Vl,64:$Vm,65:$Vn},{56:58,59:$Vh,60:$Vi,61:$Vj,62:$Vk,63:$Vl,64:$Vm,65:$Vn},{11:59,17:$Vd},{17:[2,8]},{5:[1,60]},{5:[1,61]},{57:[1,62]},o($Vo,[2,43]),o($Vo,[2,44]),o($Vo,[2,45]),o($Vo,[2,46]),o($Vo,[2,47]),o($Vo,[2,48]),o($Vo,[2,49]),{58:[1,63]},o($Vg,[2,5]),{5:$Vp,24:64,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vv,34:$Vw,50:71,51:$Vx,53:$Vy},{27:76,66:$Vb,67:$Vc},{27:77,66:$Vb,67:$Vc},o($Vz,[2,16]),{26:[1,78]},{26:[1,79]},{26:[1,80]},{26:[1,81]},{5:$Vp,24:82,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},o($Vz,[2,22]),o($Vz,[2,36]),{26:[1,83]},{26:[1,84]},{5:$Vv,34:$Vw,50:85,51:$Vx,53:$Vy},o($Vz,[2,40]),o($Vz,[2,41]),o($Vz,[2,42]),{27:86,66:$Vb,67:$Vc},{29:87,66:[1,88],67:[1,89]},{31:90,41:[1,91],42:[1,92],43:[1,93]},{33:94,44:[1,95],45:[1,96],46:[1,97],47:[1,98]},o($Vz,[2,21]),{52:99,66:[1,100],67:[1,101]},{54:102,66:[1,103],67:[1,104]},o($Vz,[2,39]),{5:[1,105]},{5:[1,106]},{5:[2,54]},{5:[2,55]},{5:[1,107]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[1,108]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[2,35]},{5:[1,109]},{5:[2,58]},{5:[2,59]},{5:[1,110]},{5:[2,60]},{5:[2,61]},{5:$Vp,24:111,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:112,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:113,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:114,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vv,34:$Vw,50:115,51:$Vx,53:$Vy},{5:$Vv,34:$Vw,50:116,51:$Vx,53:$Vy},o($Vz,[2,17]),o($Vz,[2,18]),o($Vz,[2,19]),o($Vz,[2,20]),o($Vz,[2,37]),o($Vz,[2,38])],\ndefaultActions: {5:[2,6],7:[2,2],11:[2,1],32:[2,3],33:[2,11],34:[2,12],35:[2,13],36:[2,14],37:[2,15],39:[2,50],40:[2,51],42:[2,56],43:[2,57],47:[2,8],88:[2,54],89:[2,55],91:[2,29],92:[2,30],93:[2,31],95:[2,32],96:[2,33],97:[2,34],98:[2,35],100:[2,58],101:[2,59],103:[2,60],104:[2,61]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 14; \nbreak;\ncase 1: this.begin('type_directive'); return 15; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 12; \nbreak;\ncase 3: this.popState(); this.popState(); return 17; \nbreak;\ncase 4:return 16;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip comments */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:return 8;\nbreak;\ncase 10:return 6;\nbreak;\ncase 11:return 23;\nbreak;\ncase 12:return 34;\nbreak;\ncase 13:return 26;\nbreak;\ncase 14:return 25;\nbreak;\ncase 15:return 28;\nbreak;\ncase 16:return 30;\nbreak;\ncase 17:return 32;\nbreak;\ncase 18:return 35;\nbreak;\ncase 19:return 36;\nbreak;\ncase 20:return 37;\nbreak;\ncase 21:return 38;\nbreak;\ncase 22:return 39;\nbreak;\ncase 23:return 40;\nbreak;\ncase 24:return 41;\nbreak;\ncase 25:return 42;\nbreak;\ncase 26:return 43;\nbreak;\ncase 27:return 44;\nbreak;\ncase 28:return 45;\nbreak;\ncase 29:return 46;\nbreak;\ncase 30:return 47;\nbreak;\ncase 31:return 48;\nbreak;\ncase 32:return 59;\nbreak;\ncase 33:return 60;\nbreak;\ncase 34:return 61;\nbreak;\ncase 35:return 62;\nbreak;\ncase 36:return 63;\nbreak;\ncase 37:return 64;\nbreak;\ncase 38:return 65;\nbreak;\ncase 39:return 51;\nbreak;\ncase 40:return 53;\nbreak;\ncase 41:return 55;\nbreak;\ncase 42:return 58;\nbreak;\ncase 43:return 57;\nbreak;\ncase 44: this.begin(\"string\"); \nbreak;\ncase 45: this.popState(); \nbreak;\ncase 46: return \"qString\"; \nbreak;\ncase 47: yy_.yytext = yy_.yytext.trim(); return 66;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?::)/i,/^(?:id\\b)/i,/^(?:text\\b)/i,/^(?:risk\\b)/i,/^(?:verifyMethod\\b)/i,/^(?:requirement\\b)/i,/^(?:functionalRequirement\\b)/i,/^(?:interfaceRequirement\\b)/i,/^(?:performanceRequirement\\b)/i,/^(?:physicalRequirement\\b)/i,/^(?:designConstraint\\b)/i,/^(?:low\\b)/i,/^(?:medium\\b)/i,/^(?:high\\b)/i,/^(?:analysis\\b)/i,/^(?:demonstration\\b)/i,/^(?:inspection\\b)/i,/^(?:test\\b)/i,/^(?:element\\b)/i,/^(?:contains\\b)/i,/^(?:copies\\b)/i,/^(?:derives\\b)/i,/^(?:satisfies\\b)/i,/^(?:verifies\\b)/i,/^(?:refines\\b)/i,/^(?:traces\\b)/i,/^(?:type\\b)/i,/^(?:docref\\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"unqString\":{\"rules\":[],\"inclusive\":false},\"token\":{\"rules\":[],\"inclusive\":false},\"string\":{\"rules\":[45,46],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,47],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,18],$V8=[1,19],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,29],$Vd=[1,30],$Ve=[1,31],$Vf=[1,32],$Vg=[1,33],$Vh=[1,34],$Vi=[1,35],$Vj=[1,36],$Vk=[1,39],$Vl=[1,40],$Vm=[1,41],$Vn=[1,42],$Vo=[1,43],$Vp=[1,44],$Vq=[1,47],$Vr=[1,4,5,16,20,22,23,24,30,31,32,33,34,35,36,37,39,41,42,43,48,49,50,51,59,69],$Vs=[4,5,16,20,22,23,24,30,31,32,33,34,35,36,37,39,43,48,49,50,51,59,69],$Vt=[4,5,16,20,22,23,24,30,31,32,33,34,35,36,37,39,42,43,48,49,50,51,59,69],$Vu=[4,5,16,20,22,23,24,30,31,32,33,34,35,36,37,39,41,43,48,49,50,51,59,69],$Vv=[57,58,59],$Vw=[1,104],$Vx=[1,4,5,7,16,20,22,23,24,30,31,32,33,34,35,36,37,39,41,42,43,48,49,50,51,59,69];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NEWLINE\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"openDirective\":11,\"typeDirective\":12,\"closeDirective\":13,\":\":14,\"argDirective\":15,\"participant\":16,\"actor\":17,\"AS\":18,\"restOfLine\":19,\"participant_actor\":20,\"signal\":21,\"autonumber\":22,\"activate\":23,\"deactivate\":24,\"note_statement\":25,\"links_statement\":26,\"link_statement\":27,\"properties_statement\":28,\"details_statement\":29,\"title\":30,\"legacy_title\":31,\"accDescription\":32,\"loop\":33,\"end\":34,\"rect\":35,\"opt\":36,\"alt\":37,\"else_sections\":38,\"par\":39,\"par_sections\":40,\"and\":41,\"else\":42,\"note\":43,\"placement\":44,\"text2\":45,\"over\":46,\"actor_pair\":47,\"links\":48,\"link\":49,\"properties\":50,\"details\":51,\"spaceList\":52,\",\":53,\"left_of\":54,\"right_of\":55,\"signaltype\":56,\"+\":57,\"-\":58,\"ACTOR\":59,\"SOLID_OPEN_ARROW\":60,\"DOTTED_OPEN_ARROW\":61,\"SOLID_ARROW\":62,\"DOTTED_ARROW\":63,\"SOLID_CROSS\":64,\"DOTTED_CROSS\":65,\"SOLID_POINT\":66,\"DOTTED_POINT\":67,\"TXT\":68,\"open_directive\":69,\"type_directive\":70,\"arg_directive\":71,\"close_directive\":72,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NEWLINE\",7:\"SD\",14:\":\",16:\"participant\",18:\"AS\",19:\"restOfLine\",20:\"participant_actor\",22:\"autonumber\",23:\"activate\",24:\"deactivate\",30:\"title\",31:\"legacy_title\",32:\"accDescription\",33:\"loop\",34:\"end\",35:\"rect\",36:\"opt\",37:\"alt\",39:\"par\",41:\"and\",42:\"else\",43:\"note\",46:\"over\",48:\"links\",49:\"link\",50:\"properties\",51:\"details\",53:\",\",54:\"left_of\",55:\"right_of\",57:\"+\",58:\"-\",59:\"ACTOR\",60:\"SOLID_OPEN_ARROW\",61:\"DOTTED_OPEN_ARROW\",62:\"SOLID_ARROW\",63:\"DOTTED_ARROW\",64:\"SOLID_CROSS\",65:\"DOTTED_CROSS\",66:\"SOLID_POINT\",67:\"DOTTED_POINT\",68:\"TXT\",69:\"open_directive\",70:\"type_directive\",71:\"arg_directive\",72:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,1],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[40,1],[40,4],[38,1],[38,4],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[52,2],[52,1],[47,3],[47,1],[44,1],[44,1],[21,5],[21,5],[21,4],[17,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[45,1],[11,1],[12,1],[15,1],[13,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.apply($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$=[]; \nbreak;\ncase 12:\n$$[$0-3].type='addParticipant';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 13:\n$$[$0-1].type='addParticipant';this.$=$$[$0-1];\nbreak;\ncase 14:\n$$[$0-3].type='addActor';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 15:\n$$[$0-1].type='addActor'; this.$=$$[$0-1];\nbreak;\ncase 17:\nyy.enableSequenceNumbers()\nbreak;\ncase 18:\nthis.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};\nbreak;\ncase 19:\nthis.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};\nbreak;\ncase 25:\nyy.setTitle($$[$0].substring(6));this.$=$$[$0].substring(6);\nbreak;\ncase 26:\nyy.setTitle($$[$0].substring(7));this.$=$$[$0].substring(7);\nbreak;\ncase 27:\nyy.setAccDescription($$[$0].substring(15));this.$=$$[$0].substring(15);\nbreak;\ncase 28:\n\n\t\t$$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});\n\t\t$$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 29:\n\n\t\t$$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });\n\t\t$$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 30:\n\n\t\t$$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});\n\t\t$$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 31:\n\n\t\t// Alt start\n\t\t$$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});\n\t\t// Content in alt is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 32:\n\n\t\t// Parallel start\n\t\t$$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});\n\t\t// Content in par is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 35:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 37:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 38:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 39:\n\n\t\t// Coerce actor_pair into a [to, from, ...] array\n\t\t$$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);\n\t\t$$[$0-2][0] = $$[$0-2][0].actor;\n\t\t$$[$0-2][1] = $$[$0-2][1].actor;\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];\nbreak;\ncase 40:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 41:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 42:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 43:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 46:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 47:\n this.$ = $$[$0]; \nbreak;\ncase 48:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 49:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 50:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}\n\t ]\nbreak;\ncase 51:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}\n\t ]\nbreak;\ncase 52:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 53:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 54:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 55:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 56:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 57:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 58:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 59:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 60:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 61:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 62:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 63:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 64:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 65:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 66:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,69:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,69:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,69:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,69:$V3},o([1,4,5,16,20,22,23,24,30,31,32,33,35,36,37,39,43,48,49,50,51,59,69],$V4,{8:11}),{12:12,70:[1,13]},{70:[2,63]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,35:$Vg,36:$Vh,37:$Vi,39:$Vj,43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{13:45,14:[1,46],72:$Vq},o([14,72],[2,64]),o($Vr,[2,6]),{6:37,10:48,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,35:$Vg,36:$Vh,37:$Vi,39:$Vj,43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},o($Vr,[2,8]),o($Vr,[2,9]),{17:49,59:$Vp},{17:50,59:$Vp},{5:[1,51]},o($Vr,[2,17]),{17:52,59:$Vp},{17:53,59:$Vp},{5:[1,54]},{5:[1,55]},{5:[1,56]},{5:[1,57]},{5:[1,58]},o($Vr,[2,25]),o($Vr,[2,26]),o($Vr,[2,27]),{19:[1,59]},{19:[1,60]},{19:[1,61]},{19:[1,62]},{19:[1,63]},o($Vr,[2,33]),{56:64,60:[1,65],61:[1,66],62:[1,67],63:[1,68],64:[1,69],65:[1,70],66:[1,71],67:[1,72]},{44:73,46:[1,74],54:[1,75],55:[1,76]},{17:77,59:$Vp},{17:78,59:$Vp},{17:79,59:$Vp},{17:80,59:$Vp},o([5,18,53,60,61,62,63,64,65,66,67,68],[2,53]),{5:[1,81]},{15:82,71:[1,83]},{5:[2,66]},o($Vr,[2,7]),{5:[1,85],18:[1,84]},{5:[1,87],18:[1,86]},o($Vr,[2,16]),{5:[1,88]},{5:[1,89]},o($Vr,[2,20]),o($Vr,[2,21]),o($Vr,[2,22]),o($Vr,[2,23]),o($Vr,[2,24]),o($Vs,$V4,{8:90}),o($Vs,$V4,{8:91}),o($Vs,$V4,{8:92}),o($Vt,$V4,{38:93,8:94}),o($Vu,$V4,{40:95,8:96}),{17:99,57:[1,97],58:[1,98],59:$Vp},o($Vv,[2,54]),o($Vv,[2,55]),o($Vv,[2,56]),o($Vv,[2,57]),o($Vv,[2,58]),o($Vv,[2,59]),o($Vv,[2,60]),o($Vv,[2,61]),{17:100,59:$Vp},{17:102,47:101,59:$Vp},{59:[2,48]},{59:[2,49]},{45:103,68:$Vw},{45:105,68:$Vw},{45:106,68:$Vw},{45:107,68:$Vw},o($Vx,[2,10]),{13:108,72:$Vq},{72:[2,65]},{19:[1,109]},o($Vr,[2,13]),{19:[1,110]},o($Vr,[2,15]),o($Vr,[2,18]),o($Vr,[2,19]),{4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,34:[1,111],35:$Vg,36:$Vh,37:$Vi,39:$Vj,43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,34:[1,112],35:$Vg,36:$Vh,37:$Vi,39:$Vj,43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,34:[1,113],35:$Vg,36:$Vh,37:$Vi,39:$Vj,43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{34:[1,114]},{4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,34:[2,36],35:$Vg,36:$Vh,37:$Vi,39:$Vj,42:[1,115],43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{34:[1,116]},{4:$V5,5:$V6,6:37,9:14,10:16,11:6,16:$V7,17:38,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,31:$Vd,32:$Ve,33:$Vf,34:[2,34],35:$Vg,36:$Vh,37:$Vi,39:$Vj,41:[1,117],43:$Vk,48:$Vl,49:$Vm,50:$Vn,51:$Vo,59:$Vp,69:$V3},{17:118,59:$Vp},{17:119,59:$Vp},{45:120,68:$Vw},{45:121,68:$Vw},{45:122,68:$Vw},{53:[1,123],68:[2,47]},{5:[2,40]},{5:[2,62]},{5:[2,41]},{5:[2,42]},{5:[2,43]},{5:[1,124]},{5:[1,125]},{5:[1,126]},o($Vr,[2,28]),o($Vr,[2,29]),o($Vr,[2,30]),o($Vr,[2,31]),{19:[1,127]},o($Vr,[2,32]),{19:[1,128]},{45:129,68:$Vw},{45:130,68:$Vw},{5:[2,52]},{5:[2,38]},{5:[2,39]},{17:131,59:$Vp},o($Vx,[2,11]),o($Vr,[2,12]),o($Vr,[2,14]),o($Vt,$V4,{8:94,38:132}),o($Vu,$V4,{8:96,40:133}),{5:[2,50]},{5:[2,51]},{68:[2,46]},{34:[2,37]},{34:[2,35]}],\ndefaultActions: {7:[2,63],8:[2,1],9:[2,2],10:[2,3],47:[2,66],75:[2,48],76:[2,49],83:[2,65],103:[2,40],104:[2,62],105:[2,41],106:[2,42],107:[2,43],120:[2,52],121:[2,38],122:[2,39],129:[2,50],130:[2,51],131:[2,46],132:[2,37],133:[2,35]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 69; \nbreak;\ncase 1: this.begin('type_directive'); return 70; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 72; \nbreak;\ncase 4:return 71;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip same-line whitespace */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11: this.begin('ID'); return 16; \nbreak;\ncase 12: this.begin('ID'); return 20; \nbreak;\ncase 13: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 59; \nbreak;\ncase 14: this.popState(); this.popState(); this.begin('LINE'); return 18; \nbreak;\ncase 15: this.popState(); this.popState(); return 5; \nbreak;\ncase 16: this.begin('LINE'); return 33; \nbreak;\ncase 17: this.begin('LINE'); return 35; \nbreak;\ncase 18: this.begin('LINE'); return 36; \nbreak;\ncase 19: this.begin('LINE'); return 37; \nbreak;\ncase 20: this.begin('LINE'); return 42; \nbreak;\ncase 21: this.begin('LINE'); return 39; \nbreak;\ncase 22: this.begin('LINE'); return 41; \nbreak;\ncase 23: this.popState(); return 19; \nbreak;\ncase 24:return 34;\nbreak;\ncase 25:return 54;\nbreak;\ncase 26:return 55;\nbreak;\ncase 27:return 48;\nbreak;\ncase 28:return 49;\nbreak;\ncase 29:return 50;\nbreak;\ncase 30:return 51;\nbreak;\ncase 31:return 46;\nbreak;\ncase 32:return 43;\nbreak;\ncase 33: this.begin('ID'); return 23; \nbreak;\ncase 34: this.begin('ID'); return 24; \nbreak;\ncase 35:return 30;\nbreak;\ncase 36:return 31;\nbreak;\ncase 37:return 32;\nbreak;\ncase 38:return 7;\nbreak;\ncase 39:return 22;\nbreak;\ncase 40:return 53;\nbreak;\ncase 41:return 5;\nbreak;\ncase 42: yy_.yytext = yy_.yytext.trim(); return 59; \nbreak;\ncase 43:return 62;\nbreak;\ncase 44:return 63;\nbreak;\ncase 45:return 60;\nbreak;\ncase 46:return 61;\nbreak;\ncase 47:return 64;\nbreak;\ncase 48:return 65;\nbreak;\ncase 49:return 66;\nbreak;\ncase 50:return 67;\nbreak;\ncase 51:return 68;\nbreak;\ncase 52:return 57;\nbreak;\ncase 53:return 58;\nbreak;\ncase 54:return 5;\nbreak;\ncase 55:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:participant\\b)/i,/^(?:actor\\b)/i,/^(?:[^\\->:\\n,;]+?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:rect\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:par\\b)/i,/^(?:and\\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:links\\b)/i,/^(?:link\\b)/i,/^(?:properties\\b)/i,/^(?:details\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:title:\\s[^#\\n;]+)/i,/^(?:accDescription\\s[^#\\n;]+)/i,/^(?:sequenceDiagram\\b)/i,/^(?:autonumber\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\\)])/i,/^(?:--[\\)])/i,/^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"open_directive\":{\"rules\":[1,8],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3,8],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4,8],\"inclusive\":false},\"ID\":{\"rules\":[7,8,13],\"inclusive\":false},\"ALIAS\":{\"rules\":[7,8,14,15],\"inclusive\":false},\"LINE\":{\"rules\":[7,8,23],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,30],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,32],$Vi=[1,33],$Vj=[1,34],$Vk=[1,35],$Vl=[1,31],$Vm=[1,38],$Vn=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vo=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vp=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vq=[4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NL\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"idStatement\":11,\"DESCR\":12,\"-->\":13,\"HIDE_EMPTY\":14,\"scale\":15,\"WIDTH\":16,\"COMPOSIT_STATE\":17,\"STRUCT_START\":18,\"STRUCT_STOP\":19,\"STATE_DESCR\":20,\"AS\":21,\"ID\":22,\"FORK\":23,\"JOIN\":24,\"CHOICE\":25,\"CONCURRENT\":26,\"note\":27,\"notePosition\":28,\"NOTE_TEXT\":29,\"direction\":30,\"openDirective\":31,\"typeDirective\":32,\"closeDirective\":33,\":\":34,\"argDirective\":35,\"direction_tb\":36,\"direction_bt\":37,\"direction_rl\":38,\"direction_lr\":39,\"eol\":40,\";\":41,\"EDGE_STATE\":42,\"left_of\":43,\"right_of\":44,\"open_directive\":45,\"type_directive\":46,\"arg_directive\":47,\"close_directive\":48,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NL\",7:\"SD\",12:\"DESCR\",13:\"-->\",14:\"HIDE_EMPTY\",15:\"scale\",16:\"WIDTH\",17:\"COMPOSIT_STATE\",18:\"STRUCT_START\",19:\"STRUCT_STOP\",20:\"STATE_DESCR\",21:\"AS\",22:\"ID\",23:\"FORK\",24:\"JOIN\",25:\"CHOICE\",26:\"CONCURRENT\",27:\"note\",29:\"NOTE_TEXT\",34:\":\",36:\"direction_tb\",37:\"direction_bt\",38:\"direction_rl\",39:\"direction_lr\",41:\";\",42:\"EDGE_STATE\",43:\"left_of\",44:\"right_of\",45:\"open_directive\",46:\"type_directive\",47:\"arg_directive\",48:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[40,1],[40,1],[11,1],[11,1],[28,1],[28,1],[31,1],[32,1],[35,1],[33,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n\n if($$[$0]!='nl'){\n $$[$0-1].push($$[$0]);this.$ = $$[$0-1]\n }\n // console.warn('Got document',$$[$0-1], $$[$0]);\n \nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$='nl';\nbreak;\ncase 10:\n /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};\nbreak;\ncase 11:\n /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};\nbreak;\ncase 12:\n\n /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};\n \nbreak;\ncase 13:\n\n /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-3], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0-1] ,type: 'default', description: ''}, description: $$[$0].substr(1).trim()};\n \nbreak;\ncase 17:\n\n /* console.warn('Adding document for state without id ', $$[$0-3]);*/\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }\n \nbreak;\ncase 18:\n\n var id=$$[$0];\n var description = $$[$0-2].trim();\n if($$[$0].match(':')){\n var parts = $$[$0].split(':');\n id=parts[0];\n description = [description, parts[1]];\n }\n this.$={stmt: 'state', id: id, type: 'default', description: description};\n\n \nbreak;\ncase 19:\n\n // console.warn('Adding document for state with id zxzx', $$[$0-3], $$[$0-2], yy.getDirection()); yy.addDocument($$[$0-3]);\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }\n \nbreak;\ncase 20:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'fork' }\n \nbreak;\ncase 21:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'join' }\n \nbreak;\ncase 22:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'choice' }\n \nbreak;\ncase 23:\n\n this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }\n \nbreak;\ncase 24:\n\n /* console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/\n this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};\n \nbreak;\ncase 30:\n yy.setDirection('TB');this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 31:\n yy.setDirection('BT');this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 32:\n yy.setDirection('RL'); this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 33:\n yy.setDirection('LR');this.$={stmt:'dir', value:'LR'};\nbreak;\ncase 36: case 37:\nthis.$=$$[$0];\nbreak;\ncase 40:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 41:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 42:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 43:\n yy.parseDirective('}%%', 'close_directive', 'state'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,27,36,37,38,39,42,45],$V4,{8:11}),{32:12,46:[1,13]},{46:[2,40]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},{33:36,34:[1,37],48:$Vm},o([34,48],[2,41]),o($Vn,[2,6]),{6:28,10:39,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,8]),o($Vn,[2,9]),o($Vn,[2,10],{12:[1,40],13:[1,41]}),o($Vn,[2,14]),{16:[1,42]},o($Vn,[2,16],{18:[1,43]}),{21:[1,44]},o($Vn,[2,20]),o($Vn,[2,21]),o($Vn,[2,22]),o($Vn,[2,23]),{28:45,29:[1,46],43:[1,47],44:[1,48]},o($Vn,[2,26]),o($Vn,[2,27]),o($Vo,[2,36]),o($Vo,[2,37]),o($Vn,[2,30]),o($Vn,[2,31]),o($Vn,[2,32]),o($Vn,[2,33]),o($Vp,[2,28]),{35:49,47:[1,50]},o($Vp,[2,43]),o($Vn,[2,7]),o($Vn,[2,11]),{11:51,22:$Vb,42:$Vl},o($Vn,[2,15]),o($Vq,$V4,{8:52}),{22:[1,53]},{22:[1,54]},{21:[1,55]},{22:[2,38]},{22:[2,39]},{33:56,48:$Vm},{48:[2,42]},o($Vn,[2,12],{12:[1,57]}),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,58],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,18],{18:[1,59]}),{29:[1,60]},{22:[1,61]},o($Vp,[2,29]),o($Vn,[2,13]),o($Vn,[2,17]),o($Vq,$V4,{8:62}),o($Vn,[2,24]),o($Vn,[2,25]),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,63],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,19])],\ndefaultActions: {7:[2,40],8:[2,1],9:[2,2],10:[2,3],47:[2,38],48:[2,39],50:[2,42]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 36;\nbreak;\ncase 1:return 37;\nbreak;\ncase 2:return 38;\nbreak;\ncase 3:return 39;\nbreak;\ncase 4: this.begin('open_directive'); return 45; \nbreak;\ncase 5: this.begin('type_directive'); return 46; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 34; \nbreak;\ncase 7: this.popState(); this.popState(); return 48; \nbreak;\ncase 8:return 47;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */{ /*console.log('Crap after close');*/ }\nbreak;\ncase 11:return 5;\nbreak;\ncase 12:/* skip all whitespace */\nbreak;\ncase 13:/* skip same-line whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15; \nbreak;\ncase 17:return 16;\nbreak;\ncase 18:this.popState();\nbreak;\ncase 19: /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); \nbreak;\ncase 20:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 21:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 22:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 23:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 24:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 25:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 26: return 36;\nbreak;\ncase 27: return 37;\nbreak;\ncase 28: return 38;\nbreak;\ncase 29: return 39;\nbreak;\ncase 30: /*console.log('Starting STATE_STRING zxzx');*/this.begin(\"STATE_STRING\");\nbreak;\ncase 31:this.popState();this.pushState('STATE_ID');return \"AS\";\nbreak;\ncase 32:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 33:this.popState();\nbreak;\ncase 34: /*console.log('Long description:', yy_.yytext);*/return \"STATE_DESCR\";\nbreak;\ncase 35:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;\nbreak;\ncase 36:this.popState();\nbreak;\ncase 37:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;\nbreak;\ncase 38: /*console.log('Ending struct');*/ this.popState(); return 19;\nbreak;\ncase 39:/* nothing */\nbreak;\ncase 40: this.begin('NOTE'); return 27; \nbreak;\ncase 41: this.popState();this.pushState('NOTE_ID');return 43;\nbreak;\ncase 42: this.popState();this.pushState('NOTE_ID');return 44;\nbreak;\ncase 43: this.popState();this.pushState('FLOATING_NOTE');\nbreak;\ncase 44:this.popState();this.pushState('FLOATING_NOTE_ID');return \"AS\";\nbreak;\ncase 45:/**/\nbreak;\ncase 46: /*console.log('Floating note text: ', yy_.yytext);*/return \"NOTE_TEXT\";\nbreak;\ncase 47:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 48: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;\nbreak;\ncase 49: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 29;\nbreak;\ncase 50: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 29;\nbreak;\ncase 51: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 52: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 53: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14; \nbreak;\ncase 54: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 42;\nbreak;\ncase 55: /*console.log('=>ID=',yy_.yytext);*/ return 22;\nbreak;\ncase 56: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12; \nbreak;\ncase 57:return 13;\nbreak;\ncase 58:return 26;\nbreak;\ncase 59:return 5;\nbreak;\ncase 60:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:[\\s]+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:state\\s+)/i,/^(?:.*<
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|
/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n let fo;\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n};\n\n/**\n * @param {any} fo\n * @param {any} value\n */\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + 'px';\n fo.style.height = '12px';\n }\n}\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n 'start_right',\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\n// const getRelationType = function(type) {\n// switch (type) {\n// case stateDb.relationType.AGGREGATION:\n// return 'aggregation';\n// case stateDb.relationType.EXTENSION:\n// return 'extension';\n// case stateDb.relationType.COMPOSITION:\n// return 'composition';\n// case stateDb.relationType.DEPENDENCY:\n// return 'dependency';\n// }\n// };\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n *\n * @param {Array} _points\n * @param {any} boundryNode\n * @returns {Array} Points\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last opint ouside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outtside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n // log.warn('edge', edge);\n // log.warn('from cluster', clusterDb[edge.fromCluster], points);\n // const updatedPoints = [];\n // let lastPointOutside = edge.points[edge.points.length - 1];\n // let isInside = false;\n // for (let i = points.length - 1; i >= 0; i--) {\n // const point = points[i];\n // const node = clusterDb[edge.fromCluster].node;\n // log.warn('checking to', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.warn('inside', edge.fromCluster, point, node);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n // log.warn('intersect', intersection(node, lastPointOutside, point));\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // updatedPoints.unshift(inter);\n // log.warn('Adding point -updated = ', updatedPoints);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // // points.push(insterection);\n // isInside = true;\n // } else {\n // // at the outside\n // // if (!isInside) updatedPoints.unshift(point);\n // updatedPoints.unshift(point);\n // log.warn('Outside point', point, updatedPoints);\n // }\n // lastPointOutside = point;\n // }\n // points = updatedPoints;\n // points = edge.points;\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recusively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recurive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\n\n/**\n * @param node\n * @param rx\n * @param point\n */\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n\nexport default intersectCircle;\n","/**\n * @param node\n * @param rx\n * @param ry\n * @param point\n */\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n\nexport default intersectEllipse;\n","/**\n * Returns the point at which two lines, p and q, intersect or returns undefined if they do not intersect.\n *\n * @param p1\n * @param p2\n * @param q1\n * @param q2\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\n/**\n * @param r1\n * @param r2\n */\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n\nexport default intersectLine;\n","module.exports = intersectNode;\n\n/**\n * @param node\n * @param point\n */\nfunction intersectNode(node, point) {\n // console.info('Intersect Node');\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/**\n * Returns the point ({x, y}) at which the point argument intersects with the node argument assuming\n * that it has the shape specified by polygon.\n *\n * @param node\n * @param polyPoints\n * @param point\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\r\n var x = node.x;\r\n var y = node.y;\r\n\r\n // Rectangle intersection algorithm from:\r\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\r\n var dx = point.x - x;\r\n var dy = point.y - y;\r\n var w = node.width / 2;\r\n var h = node.height / 2;\r\n\r\n var sx, sy;\r\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\r\n // Intersection is top or bottom of rect.\r\n if (dy < 0) {\r\n h = -h;\r\n }\r\n sx = dy === 0 ? 0 : (h * dx) / dy;\r\n sy = h;\r\n } else {\r\n // Intersection is left or right of rect.\r\n if (dx < 0) {\r\n w = -w;\r\n }\r\n sx = w;\r\n sy = dx === 0 ? 0 : (w * dy) / dx;\r\n }\r\n\r\n return { x: x + sx, y: y + sy };\r\n};\r\n\r\nexport default intersectRect;\r\n","/** Setup arrow head and define the marker. The result is appended to the svg. */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semanitc free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/** Decorates with functions required by mermaids dagre-wrapper. */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n *\n * @param graph\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n *\n * @param {Finds a} id\n * @param {any} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacment node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster inorder to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate, sanitizeText as sanitize } from '../diagrams/common/common';\n\nconst sanitizeText = (txt) => sanitize(txt, getConfig());\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', totalWidth)\n .attr('height', totalHeight);\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * @param rect\n * @param borders\n * @param totalWidth\n * @param totalHeight\n */\nfunction applyNodePropertyBorders(rect, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length);\n strokeDashArray.push(0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0);\n strokeDashArray.push(length);\n };\n if (borders.includes('t')) {\n log.debug('add top border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('r')) {\n log.debug('add right border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes('b')) {\n log.debug('add bottom border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('l')) {\n log.debug('add left border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect.attr('stroke-dasharray', strokeDashArray.join(' '));\n}\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst doublecircle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const gap = 5;\n const circleGroup = shapeSvg.insert('g', ':first-child');\n const outerCircle = circleGroup.insert('circle');\n const innerCircle = circleGroup.insert('circle');\n\n // center the circle around its coordinate\n outerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding + gap)\n .attr('width', bbox.width + node.padding + gap * 2)\n .attr('height', bbox.height + node.padding + gap * 2);\n\n innerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('DoubleCircle main');\n\n updateNodeBounds(node, outerCircle);\n\n node.intersect = function (point) {\n log.info('DoubleCircle intersect', node, bbox.width / 2 + halfPadding + gap, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += '<' + node.classData.type + '>';\n } else {\n classTitleString += '<' + node.classData.type + '>';\n }\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Positin the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n let target;\n if (getConfig().securityLevel === 'sandbox') {\n target = '_top';\n } else if (node.linkTarget) {\n target = node.linkTarget || '_blank';\n }\n newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target);\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { decodeEntities } from '../../mermaidAPI';\nimport { select } from 'd3';\nimport { evaluate, sanitizeText } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0];\n\n const text = label\n .node()\n .appendChild(\n createLabel(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\n/**\n * @param parent\n * @param w\n * @param h\n * @param points\n */\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click\n * here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:** mermaid.initialize({ flowchart:{ htmlLabels: false } });
\n *\n * **Example 2:**
\n *\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).\n * A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * Theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\". \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"
\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diagram */\n maxTextSize: 50000,\n darkMode: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |\n * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- |\n * | logLevel | This option decides the amount of logging to be used. | string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n * **Notes:**\n *\n * - Debug: 1\n * - Info: 2\n * - Warn: 3\n * - Error: 4\n * - Fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- |\n * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click\n * functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |\n * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed\n * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the\n * `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n *\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based\n * on a seed. If set to false, the IDs are generated based on the current date and thus are not\n * deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless\n * content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but\n * deterministicIds is true, a simple number iterator is used. You can set this attribute to base\n * the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /** The object containing configurations specific for flowcharts */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the\n * vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal\n * spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |\n *\n * **Notes:**\n *\n * Default Value: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /** The object containing configurations specific for sequence diagrams */\n sequence: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------- | ------- | -------- | ------------------ |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ---------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------ | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------- | -------- | ----------- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n mirrorActors: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------------------ | ------- | -------- | ----------- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ------------------------------- | ------- | -------- | ----------- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:** Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n * **Notes:** **Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |\n * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: \"'Open Sans\", sans-serif'\n */\n actorFontFamily: '\"Open Sans\", sans-serif',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:** Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |\n * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:** Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:** Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:** Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /** The object containing configurations specific for gantt diagrams */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ------------------ |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------- | ------- | -------- | ------------------ |\n * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | --------------------------- | ---- | -------- | ---------------- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ----------- |\n * | topAxis | See notes | Boolean | 4 | True, False |\n *\n * **Notes:** when this flag is set date labels will be added to the top of the chart\n *\n * **Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /** The object containing configurations specific for journey diagrams */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open Sans\", sans-serif',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes**:\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /** The object containing configurations specific for entity relationship diagrams */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |\n * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:** Expressed in pixels. Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Expressed in pixels Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------------------------------------------- | ------- | -------- | ------------------ |\n * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding betweentext in an entity box and the enclosing box borders,\n * expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------ | -------- | -------------------- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------- | ------ | -------- | -------------------- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels) Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for pie diagrams */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for req diagrams */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n gitGraph: {\n diagramPadding: 8,\n nodeLabel: {\n width: 75,\n height: 100,\n x: -25,\n y: 0,\n },\n mainBranchName: 'main',\n showCommitLabel: true,\n showBranches: true,\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, configApi.getConfig());\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = common.sanitizeText(split[1], configApi.getConfig());\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n *\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relation.relationTitle1 = common.sanitizeText(\n relation.relationTitle1.trim(),\n configApi.getConfig()\n );\n\n relation.relationTitle2 = common.sanitizeText(\n relation.relationTitle2.trim(),\n configApi.getConfig()\n );\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class Annotations mark special properties of the given type\n * (like 'interface' or 'service')\n *\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n *\n * @param className The class name\n * @param member The full name of the member. If the member is enclosed in <