找不到页面
我们找不到您要找的页面。
请联系原始链接来源网站的所有者,并告知他们链接已损坏。
diff --git a/404.html b/404.html index fdf1bbf..8b102be 100644 --- a/404.html +++ b/404.html @@ -2,11 +2,11 @@
- +我们找不到您要找的页面。
请联系原始链接来源网站的所有者,并告知他们链接已损坏。
} */
+ let marker
+ return start
+
+ /**
+ * Start of thematic break.
+ *
+ * ```markdown
+ * > | ***
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('thematicBreak')
+ // To do: parse indent like `markdown-rs`.
+ return before(code)
+ }
+
+ /**
+ * After optional whitespace, at marker.
+ *
+ * ```markdown
+ * > | ***
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function before(code) {
+ marker = code
+ return atBreak(code)
+ }
+
+ /**
+ * After something, before something else.
+ *
+ * ```markdown
+ * > | ***
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function atBreak(code) {
+ if (code === marker) {
+ effects.enter('thematicBreakSequence')
+ return sequence(code)
+ }
+ if (size >= 3 && (code === null || markdownLineEnding(code))) {
+ effects.exit('thematicBreak')
+ return ok(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * In sequence.
+ *
+ * ```markdown
+ * > | ***
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequence(code) {
+ if (code === marker) {
+ effects.consume(code)
+ size++
+ return sequence
+ }
+ effects.exit('thematicBreakSequence')
+ return markdownSpace(code)
+ ? factorySpace(effects, atBreak, 'whitespace')(code)
+ : atBreak(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/list.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').ContainerState} ContainerState
+ * @typedef {import('micromark-util-types').Exiter} Exiter
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+
+
+/** @type {Construct} */
+const list = {
+ name: 'list',
+ tokenize: tokenizeListStart,
+ continuation: {
+ tokenize: tokenizeListContinuation
+ },
+ exit: tokenizeListEnd
+}
+
+/** @type {Construct} */
+const listItemPrefixWhitespaceConstruct = {
+ tokenize: tokenizeListItemPrefixWhitespace,
+ partial: true
+}
+
+/** @type {Construct} */
+const indentConstruct = {
+ tokenize: tokenizeIndent,
+ partial: true
+}
+
+// To do: `markdown-rs` parses list items on their own and later stitches them
+// together.
+
+/**
+ * @type {Tokenizer}
+ * @this {TokenizeContext}
+ */
+function tokenizeListStart(effects, ok, nok) {
+ const self = this
+ const tail = self.events[self.events.length - 1]
+ let initialSize =
+ tail && tail[1].type === 'linePrefix'
+ ? tail[2].sliceSerialize(tail[1], true).length
+ : 0
+ let size = 0
+ return start
+
+ /** @type {State} */
+ function start(code) {
+ const kind =
+ self.containerState.type ||
+ (code === 42 || code === 43 || code === 45
+ ? 'listUnordered'
+ : 'listOrdered')
+ if (
+ kind === 'listUnordered'
+ ? !self.containerState.marker || code === self.containerState.marker
+ : asciiDigit(code)
+ ) {
+ if (!self.containerState.type) {
+ self.containerState.type = kind
+ effects.enter(kind, {
+ _container: true
+ })
+ }
+ if (kind === 'listUnordered') {
+ effects.enter('listItemPrefix')
+ return code === 42 || code === 45
+ ? effects.check(thematicBreak, nok, atMarker)(code)
+ : atMarker(code)
+ }
+ if (!self.interrupt || code === 49) {
+ effects.enter('listItemPrefix')
+ effects.enter('listItemValue')
+ return inside(code)
+ }
+ }
+ return nok(code)
+ }
+
+ /** @type {State} */
+ function inside(code) {
+ if (asciiDigit(code) && ++size < 10) {
+ effects.consume(code)
+ return inside
+ }
+ if (
+ (!self.interrupt || size < 2) &&
+ (self.containerState.marker
+ ? code === self.containerState.marker
+ : code === 41 || code === 46)
+ ) {
+ effects.exit('listItemValue')
+ return atMarker(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * @type {State}
+ **/
+ function atMarker(code) {
+ effects.enter('listItemMarker')
+ effects.consume(code)
+ effects.exit('listItemMarker')
+ self.containerState.marker = self.containerState.marker || code
+ return effects.check(
+ blankLine,
+ // Can’t be empty when interrupting.
+ self.interrupt ? nok : onBlank,
+ effects.attempt(
+ listItemPrefixWhitespaceConstruct,
+ endOfPrefix,
+ otherPrefix
+ )
+ )
+ }
+
+ /** @type {State} */
+ function onBlank(code) {
+ self.containerState.initialBlankLine = true
+ initialSize++
+ return endOfPrefix(code)
+ }
+
+ /** @type {State} */
+ function otherPrefix(code) {
+ if (markdownSpace(code)) {
+ effects.enter('listItemPrefixWhitespace')
+ effects.consume(code)
+ effects.exit('listItemPrefixWhitespace')
+ return endOfPrefix
+ }
+ return nok(code)
+ }
+
+ /** @type {State} */
+ function endOfPrefix(code) {
+ self.containerState.size =
+ initialSize +
+ self.sliceSerialize(effects.exit('listItemPrefix'), true).length
+ return ok(code)
+ }
+}
+
+/**
+ * @type {Tokenizer}
+ * @this {TokenizeContext}
+ */
+function tokenizeListContinuation(effects, ok, nok) {
+ const self = this
+ self.containerState._closeFlow = undefined
+ return effects.check(blankLine, onBlank, notBlank)
+
+ /** @type {State} */
+ function onBlank(code) {
+ self.containerState.furtherBlankLines =
+ self.containerState.furtherBlankLines ||
+ self.containerState.initialBlankLine
+
+ // We have a blank line.
+ // Still, try to consume at most the items size.
+ return factorySpace(
+ effects,
+ ok,
+ 'listItemIndent',
+ self.containerState.size + 1
+ )(code)
+ }
+
+ /** @type {State} */
+ function notBlank(code) {
+ if (self.containerState.furtherBlankLines || !markdownSpace(code)) {
+ self.containerState.furtherBlankLines = undefined
+ self.containerState.initialBlankLine = undefined
+ return notInCurrentItem(code)
+ }
+ self.containerState.furtherBlankLines = undefined
+ self.containerState.initialBlankLine = undefined
+ return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)
+ }
+
+ /** @type {State} */
+ function notInCurrentItem(code) {
+ // While we do continue, we signal that the flow should be closed.
+ self.containerState._closeFlow = true
+ // As we’re closing flow, we’re no longer interrupting.
+ self.interrupt = undefined
+ // Always populated by defaults.
+
+ return factorySpace(
+ effects,
+ effects.attempt(list, ok, nok),
+ 'linePrefix',
+ self.parser.constructs.disable.null.includes('codeIndented')
+ ? undefined
+ : 4
+ )(code)
+ }
+}
+
+/**
+ * @type {Tokenizer}
+ * @this {TokenizeContext}
+ */
+function tokenizeIndent(effects, ok, nok) {
+ const self = this
+ return factorySpace(
+ effects,
+ afterPrefix,
+ 'listItemIndent',
+ self.containerState.size + 1
+ )
+
+ /** @type {State} */
+ function afterPrefix(code) {
+ const tail = self.events[self.events.length - 1]
+ return tail &&
+ tail[1].type === 'listItemIndent' &&
+ tail[2].sliceSerialize(tail[1], true).length === self.containerState.size
+ ? ok(code)
+ : nok(code)
+ }
+}
+
+/**
+ * @type {Exiter}
+ * @this {TokenizeContext}
+ */
+function tokenizeListEnd(effects) {
+ effects.exit(this.containerState.type)
+}
+
+/**
+ * @type {Tokenizer}
+ * @this {TokenizeContext}
+ */
+function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
+ const self = this
+
+ // Always populated by defaults.
+
+ return factorySpace(
+ effects,
+ afterPrefix,
+ 'listItemPrefixWhitespace',
+ self.parser.constructs.disable.null.includes('codeIndented')
+ ? undefined
+ : 4 + 1
+ )
+
+ /** @type {State} */
+ function afterPrefix(code) {
+ const tail = self.events[self.events.length - 1]
+ return !markdownSpace(code) &&
+ tail &&
+ tail[1].type === 'listItemPrefixWhitespace'
+ ? ok(code)
+ : nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/block-quote.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Exiter} Exiter
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const blockQuote = {
+ name: 'blockQuote',
+ tokenize: tokenizeBlockQuoteStart,
+ continuation: {
+ tokenize: tokenizeBlockQuoteContinuation
+ },
+ exit
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeBlockQuoteStart(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ * Start of block quote.
+ *
+ * ```markdown
+ * > | > a
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ if (code === 62) {
+ const state = self.containerState
+ if (!state.open) {
+ effects.enter('blockQuote', {
+ _container: true
+ })
+ state.open = true
+ }
+ effects.enter('blockQuotePrefix')
+ effects.enter('blockQuoteMarker')
+ effects.consume(code)
+ effects.exit('blockQuoteMarker')
+ return after
+ }
+ return nok(code)
+ }
+
+ /**
+ * After `>`, before optional whitespace.
+ *
+ * ```markdown
+ * > | > a
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ if (markdownSpace(code)) {
+ effects.enter('blockQuotePrefixWhitespace')
+ effects.consume(code)
+ effects.exit('blockQuotePrefixWhitespace')
+ effects.exit('blockQuotePrefix')
+ return ok
+ }
+ effects.exit('blockQuotePrefix')
+ return ok(code)
+ }
+}
+
+/**
+ * Start of block quote continuation.
+ *
+ * ```markdown
+ * | > a
+ * > | > b
+ * ^
+ * ```
+ *
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeBlockQuoteContinuation(effects, ok, nok) {
+ const self = this
+ return contStart
+
+ /**
+ * Start of block quote continuation.
+ *
+ * Also used to parse the first block quote opening.
+ *
+ * ```markdown
+ * | > a
+ * > | > b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function contStart(code) {
+ if (markdownSpace(code)) {
+ // Always populated by defaults.
+
+ return factorySpace(
+ effects,
+ contBefore,
+ 'linePrefix',
+ self.parser.constructs.disable.null.includes('codeIndented')
+ ? undefined
+ : 4
+ )(code)
+ }
+ return contBefore(code)
+ }
+
+ /**
+ * At `>`, after optional whitespace.
+ *
+ * Also used to parse the first block quote opening.
+ *
+ * ```markdown
+ * | > a
+ * > | > b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function contBefore(code) {
+ return effects.attempt(blockQuote, ok, nok)(code)
+ }
+}
+
+/** @type {Exiter} */
+function exit(effects) {
+ effects.exit('blockQuote')
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-factory-destination/index.js
+/**
+ * @typedef {import('micromark-util-types').Effects} Effects
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenType} TokenType
+ */
+
+
+/**
+ * Parse destinations.
+ *
+ * ###### Examples
+ *
+ * ```markdown
+ *
+ * b>
+ *
+ *
+ * a
+ * a\)b
+ * a(b)c
+ * a(b)
+ * ```
+ *
+ * @param {Effects} effects
+ * Context.
+ * @param {State} ok
+ * State switched to when successful.
+ * @param {State} nok
+ * State switched to when unsuccessful.
+ * @param {TokenType} type
+ * Type for whole (`` or `b`).
+ * @param {TokenType} literalType
+ * Type when enclosed (``).
+ * @param {TokenType} literalMarkerType
+ * Type for enclosing (`<` and `>`).
+ * @param {TokenType} rawType
+ * Type when not enclosed (`b`).
+ * @param {TokenType} stringType
+ * Type for the value (`a` or `b`).
+ * @param {number | undefined} [max=Infinity]
+ * Depth of nested parens (inclusive).
+ * @returns {State}
+ * Start state.
+ */ // eslint-disable-next-line max-params
+function factoryDestination(
+ effects,
+ ok,
+ nok,
+ type,
+ literalType,
+ literalMarkerType,
+ rawType,
+ stringType,
+ max
+) {
+ const limit = max || Number.POSITIVE_INFINITY
+ let balance = 0
+ return start
+
+ /**
+ * Start of destination.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > | aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ if (code === 60) {
+ effects.enter(type)
+ effects.enter(literalType)
+ effects.enter(literalMarkerType)
+ effects.consume(code)
+ effects.exit(literalMarkerType)
+ return enclosedBefore
+ }
+
+ // ASCII control, space, closing paren.
+ if (code === null || code === 32 || code === 41 || asciiControl(code)) {
+ return nok(code)
+ }
+ effects.enter(type)
+ effects.enter(rawType)
+ effects.enter(stringType)
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return raw(code)
+ }
+
+ /**
+ * After `<`, at an enclosed destination.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function enclosedBefore(code) {
+ if (code === 62) {
+ effects.enter(literalMarkerType)
+ effects.consume(code)
+ effects.exit(literalMarkerType)
+ effects.exit(literalType)
+ effects.exit(type)
+ return ok
+ }
+ effects.enter(stringType)
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return enclosed(code)
+ }
+
+ /**
+ * In enclosed destination.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function enclosed(code) {
+ if (code === 62) {
+ effects.exit('chunkString')
+ effects.exit(stringType)
+ return enclosedBefore(code)
+ }
+ if (code === null || code === 60 || markdownLineEnding(code)) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return code === 92 ? enclosedEscape : enclosed
+ }
+
+ /**
+ * After `\`, at a special character.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function enclosedEscape(code) {
+ if (code === 60 || code === 62 || code === 92) {
+ effects.consume(code)
+ return enclosed
+ }
+ return enclosed(code)
+ }
+
+ /**
+ * In raw destination.
+ *
+ * ```markdown
+ * > | aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function raw(code) {
+ if (
+ !balance &&
+ (code === null || code === 41 || markdownLineEndingOrSpace(code))
+ ) {
+ effects.exit('chunkString')
+ effects.exit(stringType)
+ effects.exit(rawType)
+ effects.exit(type)
+ return ok(code)
+ }
+ if (balance < limit && code === 40) {
+ effects.consume(code)
+ balance++
+ return raw
+ }
+ if (code === 41) {
+ effects.consume(code)
+ balance--
+ return raw
+ }
+
+ // ASCII control (but *not* `\0`) and space and `(`.
+ // Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
+ // doesn’t.
+ if (code === null || code === 32 || code === 40 || asciiControl(code)) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return code === 92 ? rawEscape : raw
+ }
+
+ /**
+ * After `\`, at special character.
+ *
+ * ```markdown
+ * > | a\*a
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function rawEscape(code) {
+ if (code === 40 || code === 41 || code === 92) {
+ effects.consume(code)
+ return raw
+ }
+ return raw(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-factory-label/index.js
+/**
+ * @typedef {import('micromark-util-types').Effects} Effects
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').TokenType} TokenType
+ */
+
+
+/**
+ * Parse labels.
+ *
+ * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
+ *
+ * ###### Examples
+ *
+ * ```markdown
+ * [a]
+ * [a
+ * b]
+ * [a\]b]
+ * ```
+ *
+ * @this {TokenizeContext}
+ * Tokenize context.
+ * @param {Effects} effects
+ * Context.
+ * @param {State} ok
+ * State switched to when successful.
+ * @param {State} nok
+ * State switched to when unsuccessful.
+ * @param {TokenType} type
+ * Type of the whole label (`[a]`).
+ * @param {TokenType} markerType
+ * Type for the markers (`[` and `]`).
+ * @param {TokenType} stringType
+ * Type for the identifier (`a`).
+ * @returns {State}
+ * Start state.
+ */ // eslint-disable-next-line max-params
+function factoryLabel(effects, ok, nok, type, markerType, stringType) {
+ const self = this
+ let size = 0
+ /** @type {boolean} */
+ let seen
+ return start
+
+ /**
+ * Start of label.
+ *
+ * ```markdown
+ * > | [a]
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter(type)
+ effects.enter(markerType)
+ effects.consume(code)
+ effects.exit(markerType)
+ effects.enter(stringType)
+ return atBreak
+ }
+
+ /**
+ * In label, at something, before something else.
+ *
+ * ```markdown
+ * > | [a]
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function atBreak(code) {
+ if (
+ size > 999 ||
+ code === null ||
+ code === 91 ||
+ (code === 93 && !seen) ||
+ // To do: remove in the future once we’ve switched from
+ // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
+ // which doesn’t need this.
+ // Hidden footnotes hook.
+ /* c8 ignore next 3 */
+ (code === 94 &&
+ !size &&
+ '_hiddenFootnoteSupport' in self.parser.constructs)
+ ) {
+ return nok(code)
+ }
+ if (code === 93) {
+ effects.exit(stringType)
+ effects.enter(markerType)
+ effects.consume(code)
+ effects.exit(markerType)
+ effects.exit(type)
+ return ok
+ }
+
+ // To do: indent? Link chunks and EOLs together?
+ if (markdownLineEnding(code)) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return atBreak
+ }
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return labelInside(code)
+ }
+
+ /**
+ * In label, in text.
+ *
+ * ```markdown
+ * > | [a]
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function labelInside(code) {
+ if (
+ code === null ||
+ code === 91 ||
+ code === 93 ||
+ markdownLineEnding(code) ||
+ size++ > 999
+ ) {
+ effects.exit('chunkString')
+ return atBreak(code)
+ }
+ effects.consume(code)
+ if (!seen) seen = !markdownSpace(code)
+ return code === 92 ? labelEscape : labelInside
+ }
+
+ /**
+ * After `\`, at a special character.
+ *
+ * ```markdown
+ * > | [a\*a]
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function labelEscape(code) {
+ if (code === 91 || code === 92 || code === 93) {
+ effects.consume(code)
+ size++
+ return labelInside
+ }
+ return labelInside(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-factory-title/index.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Effects} Effects
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenType} TokenType
+ */
+
+
+
+/**
+ * Parse titles.
+ *
+ * ###### Examples
+ *
+ * ```markdown
+ * "a"
+ * 'b'
+ * (c)
+ * "a
+ * b"
+ * 'a
+ * b'
+ * (a\)b)
+ * ```
+ *
+ * @param {Effects} effects
+ * Context.
+ * @param {State} ok
+ * State switched to when successful.
+ * @param {State} nok
+ * State switched to when unsuccessful.
+ * @param {TokenType} type
+ * Type of the whole title (`"a"`, `'b'`, `(c)`).
+ * @param {TokenType} markerType
+ * Type for the markers (`"`, `'`, `(`, and `)`).
+ * @param {TokenType} stringType
+ * Type for the value (`a`).
+ * @returns {State}
+ * Start state.
+ */ // eslint-disable-next-line max-params
+function factoryTitle(effects, ok, nok, type, markerType, stringType) {
+ /** @type {NonNullable} */
+ let marker
+ return start
+
+ /**
+ * Start of title.
+ *
+ * ```markdown
+ * > | "a"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ if (code === 34 || code === 39 || code === 40) {
+ effects.enter(type)
+ effects.enter(markerType)
+ effects.consume(code)
+ effects.exit(markerType)
+ marker = code === 40 ? 41 : code
+ return begin
+ }
+ return nok(code)
+ }
+
+ /**
+ * After opening marker.
+ *
+ * This is also used at the closing marker.
+ *
+ * ```markdown
+ * > | "a"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function begin(code) {
+ if (code === marker) {
+ effects.enter(markerType)
+ effects.consume(code)
+ effects.exit(markerType)
+ effects.exit(type)
+ return ok
+ }
+ effects.enter(stringType)
+ return atBreak(code)
+ }
+
+ /**
+ * At something, before something else.
+ *
+ * ```markdown
+ * > | "a"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function atBreak(code) {
+ if (code === marker) {
+ effects.exit(stringType)
+ return begin(marker)
+ }
+ if (code === null) {
+ return nok(code)
+ }
+
+ // Note: blank lines can’t exist in content.
+ if (markdownLineEnding(code)) {
+ // To do: use `space_or_tab_eol_with_options`, connect.
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return factorySpace(effects, atBreak, 'linePrefix')
+ }
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return inside(code)
+ }
+
+ /**
+ *
+ *
+ * @type {State}
+ */
+ function inside(code) {
+ if (code === marker || code === null || markdownLineEnding(code)) {
+ effects.exit('chunkString')
+ return atBreak(code)
+ }
+ effects.consume(code)
+ return code === 92 ? escape : inside
+ }
+
+ /**
+ * After `\`, at a special character.
+ *
+ * ```markdown
+ * > | "a\*b"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function escape(code) {
+ if (code === marker || code === 92) {
+ effects.consume(code)
+ return inside
+ }
+ return inside(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-factory-whitespace/index.js
+/**
+ * @typedef {import('micromark-util-types').Effects} Effects
+ * @typedef {import('micromark-util-types').State} State
+ */
+
+
+
+/**
+ * Parse spaces and tabs.
+ *
+ * There is no `nok` parameter:
+ *
+ * * line endings or spaces in markdown are often optional, in which case this
+ * factory can be used and `ok` will be switched to whether spaces were found
+ * or not
+ * * one line ending or space can be detected with
+ * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
+ *
+ * @param {Effects} effects
+ * Context.
+ * @param {State} ok
+ * State switched to when successful.
+ * @returns
+ * Start state.
+ */
+function factoryWhitespace(effects, ok) {
+ /** @type {boolean} */
+ let seen
+ return start
+
+ /** @type {State} */
+ function start(code) {
+ if (markdownLineEnding(code)) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ seen = true
+ return start
+ }
+ if (markdownSpace(code)) {
+ return factorySpace(
+ effects,
+ start,
+ seen ? 'linePrefix' : 'lineSuffix'
+ )(code)
+ }
+ return ok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-util-normalize-identifier/index.js
+/**
+ * Normalize an identifier (as found in references, definitions).
+ *
+ * Collapses markdown whitespace, trim, and then lower- and uppercase.
+ *
+ * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
+ * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
+ * uppercase character (U+0398 (`Θ`)).
+ * So, to get a canonical form, we perform both lower- and uppercase.
+ *
+ * Using uppercase last makes sure keys will never interact with default
+ * prototypal values (such as `constructor`): nothing in the prototype of
+ * `Object` is uppercase.
+ *
+ * @param {string} value
+ * Identifier to normalize.
+ * @returns {string}
+ * Normalized identifier.
+ */
+function normalizeIdentifier(value) {
+ return (
+ value
+ // Collapse markdown whitespace.
+ .replace(/[\t\n\r ]+/g, ' ')
+ // Trim.
+ .replace(/^ | $/g, '')
+ // Some characters are considered “uppercase”, but if their lowercase
+ // counterpart is uppercased will result in a different uppercase
+ // character.
+ // Hence, to get that form, we perform both lower- and uppercase.
+ // Upper case makes sure keys will not interact with default prototypal
+ // methods: no method is uppercase.
+ .toLowerCase()
+ .toUpperCase()
+ )
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/definition.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+
+
+
+
+/** @type {Construct} */
+const definition = {
+ name: 'definition',
+ tokenize: tokenizeDefinition
+}
+
+/** @type {Construct} */
+const titleBefore = {
+ tokenize: tokenizeTitleBefore,
+ partial: true
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeDefinition(effects, ok, nok) {
+ const self = this
+ /** @type {string} */
+ let identifier
+ return start
+
+ /**
+ * At start of a definition.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // Do not interrupt paragraphs (but do follow definitions).
+ // To do: do `interrupt` the way `markdown-rs` does.
+ // To do: parse whitespace the way `markdown-rs` does.
+ effects.enter('definition')
+ return before(code)
+ }
+
+ /**
+ * After optional whitespace, at `[`.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function before(code) {
+ // To do: parse whitespace the way `markdown-rs` does.
+
+ return factoryLabel.call(
+ self,
+ effects,
+ labelAfter,
+ // Note: we don’t need to reset the way `markdown-rs` does.
+ nok,
+ 'definitionLabel',
+ 'definitionLabelMarker',
+ 'definitionLabelString'
+ )(code)
+ }
+
+ /**
+ * After label.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function labelAfter(code) {
+ identifier = normalizeIdentifier(
+ self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
+ )
+ if (code === 58) {
+ effects.enter('definitionMarker')
+ effects.consume(code)
+ effects.exit('definitionMarker')
+ return markerAfter
+ }
+ return nok(code)
+ }
+
+ /**
+ * After marker.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function markerAfter(code) {
+ // Note: whitespace is optional.
+ return markdownLineEndingOrSpace(code)
+ ? factoryWhitespace(effects, destinationBefore)(code)
+ : destinationBefore(code)
+ }
+
+ /**
+ * Before destination.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function destinationBefore(code) {
+ return factoryDestination(
+ effects,
+ destinationAfter,
+ // Note: we don’t need to reset the way `markdown-rs` does.
+ nok,
+ 'definitionDestination',
+ 'definitionDestinationLiteral',
+ 'definitionDestinationLiteralMarker',
+ 'definitionDestinationRaw',
+ 'definitionDestinationString'
+ )(code)
+ }
+
+ /**
+ * After destination.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function destinationAfter(code) {
+ return effects.attempt(titleBefore, after, after)(code)
+ }
+
+ /**
+ * After definition.
+ *
+ * ```markdown
+ * > | [a]: b
+ * ^
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ return markdownSpace(code)
+ ? factorySpace(effects, afterWhitespace, 'whitespace')(code)
+ : afterWhitespace(code)
+ }
+
+ /**
+ * After definition, after optional whitespace.
+ *
+ * ```markdown
+ * > | [a]: b
+ * ^
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function afterWhitespace(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('definition')
+
+ // Note: we don’t care about uniqueness.
+ // It’s likely that that doesn’t happen very frequently.
+ // It is more likely that it wastes precious time.
+ self.parser.defined.push(identifier)
+
+ // To do: `markdown-rs` interrupt.
+ // // You’d be interrupting.
+ // tokenizer.interrupt = true
+ return ok(code)
+ }
+ return nok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeTitleBefore(effects, ok, nok) {
+ return titleBefore
+
+ /**
+ * After destination, at whitespace.
+ *
+ * ```markdown
+ * > | [a]: b
+ * ^
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function titleBefore(code) {
+ return markdownLineEndingOrSpace(code)
+ ? factoryWhitespace(effects, beforeMarker)(code)
+ : nok(code)
+ }
+
+ /**
+ * At title.
+ *
+ * ```markdown
+ * | [a]: b
+ * > | "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function beforeMarker(code) {
+ return factoryTitle(
+ effects,
+ titleAfter,
+ nok,
+ 'definitionTitle',
+ 'definitionTitleMarker',
+ 'definitionTitleString'
+ )(code)
+ }
+
+ /**
+ * After title.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function titleAfter(code) {
+ return markdownSpace(code)
+ ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)
+ : titleAfterOptionalWhitespace(code)
+ }
+
+ /**
+ * After title, after optional whitespace.
+ *
+ * ```markdown
+ * > | [a]: b "c"
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function titleAfterOptionalWhitespace(code) {
+ return code === null || markdownLineEnding(code) ? ok(code) : nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/code-indented.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const codeIndented = {
+ name: 'codeIndented',
+ tokenize: tokenizeCodeIndented
+}
+
+/** @type {Construct} */
+const furtherStart = {
+ tokenize: tokenizeFurtherStart,
+ partial: true
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeCodeIndented(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ * Start of code (indented).
+ *
+ * > **Parsing note**: it is not needed to check if this first line is a
+ * > filled line (that it has a non-whitespace character), because blank lines
+ * > are parsed already, so we never run into that.
+ *
+ * ```markdown
+ * > | aaa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // To do: manually check if interrupting like `markdown-rs`.
+
+ effects.enter('codeIndented')
+ // To do: use an improved `space_or_tab` function like `markdown-rs`,
+ // so that we can drop the next state.
+ return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)
+ }
+
+ /**
+ * At start, after 1 or 4 spaces.
+ *
+ * ```markdown
+ * > | aaa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function afterPrefix(code) {
+ const tail = self.events[self.events.length - 1]
+ return tail &&
+ tail[1].type === 'linePrefix' &&
+ tail[2].sliceSerialize(tail[1], true).length >= 4
+ ? atBreak(code)
+ : nok(code)
+ }
+
+ /**
+ * At a break.
+ *
+ * ```markdown
+ * > | aaa
+ * ^ ^
+ * ```
+ *
+ * @type {State}
+ */
+ function atBreak(code) {
+ if (code === null) {
+ return after(code)
+ }
+ if (markdownLineEnding(code)) {
+ return effects.attempt(furtherStart, atBreak, after)(code)
+ }
+ effects.enter('codeFlowValue')
+ return inside(code)
+ }
+
+ /**
+ * In code content.
+ *
+ * ```markdown
+ * > | aaa
+ * ^^^^
+ * ```
+ *
+ * @type {State}
+ */
+ function inside(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('codeFlowValue')
+ return atBreak(code)
+ }
+ effects.consume(code)
+ return inside
+ }
+
+ /** @type {State} */
+ function after(code) {
+ effects.exit('codeIndented')
+ // To do: allow interrupting like `markdown-rs`.
+ // Feel free to interrupt.
+ // tokenizer.interrupt = false
+ return ok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeFurtherStart(effects, ok, nok) {
+ const self = this
+ return furtherStart
+
+ /**
+ * At eol, trying to parse another indent.
+ *
+ * ```markdown
+ * > | aaa
+ * ^
+ * | bbb
+ * ```
+ *
+ * @type {State}
+ */
+ function furtherStart(code) {
+ // To do: improve `lazy` / `pierce` handling.
+ // If this is a lazy line, it can’t be code.
+ if (self.parser.lazy[self.now().line]) {
+ return nok(code)
+ }
+ if (markdownLineEnding(code)) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return furtherStart
+ }
+
+ // To do: the code here in `micromark-js` is a bit different from
+ // `markdown-rs` because there it can attempt spaces.
+ // We can’t yet.
+ //
+ // To do: use an improved `space_or_tab` function like `markdown-rs`,
+ // so that we can drop the next state.
+ return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)
+ }
+
+ /**
+ * At start, after 1 or 4 spaces.
+ *
+ * ```markdown
+ * > | aaa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function afterPrefix(code) {
+ const tail = self.events[self.events.length - 1]
+ return tail &&
+ tail[1].type === 'linePrefix' &&
+ tail[2].sliceSerialize(tail[1], true).length >= 4
+ ? ok(code)
+ : markdownLineEnding(code)
+ ? furtherStart(code)
+ : nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/heading-atx.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').Token} Token
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+/** @type {Construct} */
+const headingAtx = {
+ name: 'headingAtx',
+ tokenize: tokenizeHeadingAtx,
+ resolve: resolveHeadingAtx
+}
+
+/** @type {Resolver} */
+function resolveHeadingAtx(events, context) {
+ let contentEnd = events.length - 2
+ let contentStart = 3
+ /** @type {Token} */
+ let content
+ /** @type {Token} */
+ let text
+
+ // Prefix whitespace, part of the opening.
+ if (events[contentStart][1].type === 'whitespace') {
+ contentStart += 2
+ }
+
+ // Suffix whitespace, part of the closing.
+ if (
+ contentEnd - 2 > contentStart &&
+ events[contentEnd][1].type === 'whitespace'
+ ) {
+ contentEnd -= 2
+ }
+ if (
+ events[contentEnd][1].type === 'atxHeadingSequence' &&
+ (contentStart === contentEnd - 1 ||
+ (contentEnd - 4 > contentStart &&
+ events[contentEnd - 2][1].type === 'whitespace'))
+ ) {
+ contentEnd -= contentStart + 1 === contentEnd ? 2 : 4
+ }
+ if (contentEnd > contentStart) {
+ content = {
+ type: 'atxHeadingText',
+ start: events[contentStart][1].start,
+ end: events[contentEnd][1].end
+ }
+ text = {
+ type: 'chunkText',
+ start: events[contentStart][1].start,
+ end: events[contentEnd][1].end,
+ contentType: 'text'
+ }
+ splice(events, contentStart, contentEnd - contentStart + 1, [
+ ['enter', content, context],
+ ['enter', text, context],
+ ['exit', text, context],
+ ['exit', content, context]
+ ])
+ }
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeHeadingAtx(effects, ok, nok) {
+ let size = 0
+ return start
+
+ /**
+ * Start of a heading (atx).
+ *
+ * ```markdown
+ * > | ## aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // To do: parse indent like `markdown-rs`.
+ effects.enter('atxHeading')
+ return before(code)
+ }
+
+ /**
+ * After optional whitespace, at `#`.
+ *
+ * ```markdown
+ * > | ## aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function before(code) {
+ effects.enter('atxHeadingSequence')
+ return sequenceOpen(code)
+ }
+
+ /**
+ * In opening sequence.
+ *
+ * ```markdown
+ * > | ## aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceOpen(code) {
+ if (code === 35 && size++ < 6) {
+ effects.consume(code)
+ return sequenceOpen
+ }
+
+ // Always at least one `#`.
+ if (code === null || markdownLineEndingOrSpace(code)) {
+ effects.exit('atxHeadingSequence')
+ return atBreak(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * After something, before something else.
+ *
+ * ```markdown
+ * > | ## aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function atBreak(code) {
+ if (code === 35) {
+ effects.enter('atxHeadingSequence')
+ return sequenceFurther(code)
+ }
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('atxHeading')
+ // To do: interrupt like `markdown-rs`.
+ // // Feel free to interrupt.
+ // tokenizer.interrupt = false
+ return ok(code)
+ }
+ if (markdownSpace(code)) {
+ return factorySpace(effects, atBreak, 'whitespace')(code)
+ }
+
+ // To do: generate `data` tokens, add the `text` token later.
+ // Needs edit map, see: `markdown.rs`.
+ effects.enter('atxHeadingText')
+ return data(code)
+ }
+
+ /**
+ * In further sequence (after whitespace).
+ *
+ * Could be normal “visible” hashes in the heading or a final sequence.
+ *
+ * ```markdown
+ * > | ## aa ##
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceFurther(code) {
+ if (code === 35) {
+ effects.consume(code)
+ return sequenceFurther
+ }
+ effects.exit('atxHeadingSequence')
+ return atBreak(code)
+ }
+
+ /**
+ * In text.
+ *
+ * ```markdown
+ * > | ## aa
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function data(code) {
+ if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {
+ effects.exit('atxHeadingText')
+ return atBreak(code)
+ }
+ effects.consume(code)
+ return data
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/setext-underline.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const setextUnderline = {
+ name: 'setextUnderline',
+ tokenize: tokenizeSetextUnderline,
+ resolveTo: resolveToSetextUnderline
+}
+
+/** @type {Resolver} */
+function resolveToSetextUnderline(events, context) {
+ // To do: resolve like `markdown-rs`.
+ let index = events.length
+ /** @type {number | undefined} */
+ let content
+ /** @type {number | undefined} */
+ let text
+ /** @type {number | undefined} */
+ let definition
+
+ // Find the opening of the content.
+ // It’ll always exist: we don’t tokenize if it isn’t there.
+ while (index--) {
+ if (events[index][0] === 'enter') {
+ if (events[index][1].type === 'content') {
+ content = index
+ break
+ }
+ if (events[index][1].type === 'paragraph') {
+ text = index
+ }
+ }
+ // Exit
+ else {
+ if (events[index][1].type === 'content') {
+ // Remove the content end (if needed we’ll add it later)
+ events.splice(index, 1)
+ }
+ if (!definition && events[index][1].type === 'definition') {
+ definition = index
+ }
+ }
+ }
+ const heading = {
+ type: 'setextHeading',
+ start: Object.assign({}, events[text][1].start),
+ end: Object.assign({}, events[events.length - 1][1].end)
+ }
+
+ // Change the paragraph to setext heading text.
+ events[text][1].type = 'setextHeadingText'
+
+ // If we have definitions in the content, we’ll keep on having content,
+ // but we need move it.
+ if (definition) {
+ events.splice(text, 0, ['enter', heading, context])
+ events.splice(definition + 1, 0, ['exit', events[content][1], context])
+ events[content][1].end = Object.assign({}, events[definition][1].end)
+ } else {
+ events[content][1] = heading
+ }
+
+ // Add the heading exit at the end.
+ events.push(['exit', heading, context])
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeSetextUnderline(effects, ok, nok) {
+ const self = this
+ /** @type {NonNullable} */
+ let marker
+ return start
+
+ /**
+ * At start of heading (setext) underline.
+ *
+ * ```markdown
+ * | aa
+ * > | ==
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ let index = self.events.length
+ /** @type {boolean | undefined} */
+ let paragraph
+ // Find an opening.
+ while (index--) {
+ // Skip enter/exit of line ending, line prefix, and content.
+ // We can now either have a definition or a paragraph.
+ if (
+ self.events[index][1].type !== 'lineEnding' &&
+ self.events[index][1].type !== 'linePrefix' &&
+ self.events[index][1].type !== 'content'
+ ) {
+ paragraph = self.events[index][1].type === 'paragraph'
+ break
+ }
+ }
+
+ // To do: handle lazy/pierce like `markdown-rs`.
+ // To do: parse indent like `markdown-rs`.
+ if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
+ effects.enter('setextHeadingLine')
+ marker = code
+ return before(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * After optional whitespace, at `-` or `=`.
+ *
+ * ```markdown
+ * | aa
+ * > | ==
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function before(code) {
+ effects.enter('setextHeadingLineSequence')
+ return inside(code)
+ }
+
+ /**
+ * In sequence.
+ *
+ * ```markdown
+ * | aa
+ * > | ==
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function inside(code) {
+ if (code === marker) {
+ effects.consume(code)
+ return inside
+ }
+ effects.exit('setextHeadingLineSequence')
+ return markdownSpace(code)
+ ? factorySpace(effects, after, 'lineSuffix')(code)
+ : after(code)
+ }
+
+ /**
+ * After sequence, after optional whitespace.
+ *
+ * ```markdown
+ * | aa
+ * > | ==
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('setextHeadingLine')
+ return ok(code)
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-util-html-tag-name/index.js
+/**
+ * List of lowercase HTML “block” tag names.
+ *
+ * The list, when parsing HTML (flow), results in more relaxed rules (condition
+ * 6).
+ * Because they are known blocks, the HTML-like syntax doesn’t have to be
+ * strictly parsed.
+ * For tag names not in this list, a more strict algorithm (condition 7) is used
+ * to detect whether the HTML-like syntax is seen as HTML (flow) or not.
+ *
+ * This is copied from:
+ * .
+ *
+ * > 👉 **Note**: `search` was added in `CommonMark@0.31`.
+ */
+const htmlBlockNames = [
+ 'address',
+ 'article',
+ 'aside',
+ 'base',
+ 'basefont',
+ 'blockquote',
+ 'body',
+ 'caption',
+ 'center',
+ 'col',
+ 'colgroup',
+ 'dd',
+ 'details',
+ 'dialog',
+ 'dir',
+ 'div',
+ 'dl',
+ 'dt',
+ 'fieldset',
+ 'figcaption',
+ 'figure',
+ 'footer',
+ 'form',
+ 'frame',
+ 'frameset',
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'head',
+ 'header',
+ 'hr',
+ 'html',
+ 'iframe',
+ 'legend',
+ 'li',
+ 'link',
+ 'main',
+ 'menu',
+ 'menuitem',
+ 'nav',
+ 'noframes',
+ 'ol',
+ 'optgroup',
+ 'option',
+ 'p',
+ 'param',
+ 'search',
+ 'section',
+ 'summary',
+ 'table',
+ 'tbody',
+ 'td',
+ 'tfoot',
+ 'th',
+ 'thead',
+ 'title',
+ 'tr',
+ 'track',
+ 'ul'
+]
+
+/**
+ * List of lowercase HTML “raw” tag names.
+ *
+ * The list, when parsing HTML (flow), results in HTML that can include lines
+ * without exiting, until a closing tag also in this list is found (condition
+ * 1).
+ *
+ * This module is copied from:
+ * .
+ *
+ * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.
+ */
+const htmlRawNames = ['pre', 'script', 'style', 'textarea']
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/html-flow.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+
+/** @type {Construct} */
+const htmlFlow = {
+ name: 'htmlFlow',
+ tokenize: tokenizeHtmlFlow,
+ resolveTo: resolveToHtmlFlow,
+ concrete: true
+}
+
+/** @type {Construct} */
+const blankLineBefore = {
+ tokenize: tokenizeBlankLineBefore,
+ partial: true
+}
+const nonLazyContinuationStart = {
+ tokenize: tokenizeNonLazyContinuationStart,
+ partial: true
+}
+
+/** @type {Resolver} */
+function resolveToHtmlFlow(events) {
+ let index = events.length
+ while (index--) {
+ if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {
+ break
+ }
+ }
+ if (index > 1 && events[index - 2][1].type === 'linePrefix') {
+ // Add the prefix start to the HTML token.
+ events[index][1].start = events[index - 2][1].start
+ // Add the prefix start to the HTML line token.
+ events[index + 1][1].start = events[index - 2][1].start
+ // Remove the line prefix.
+ events.splice(index - 2, 2)
+ }
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeHtmlFlow(effects, ok, nok) {
+ const self = this
+ /** @type {number} */
+ let marker
+ /** @type {boolean} */
+ let closingTag
+ /** @type {string} */
+ let buffer
+ /** @type {number} */
+ let index
+ /** @type {Code} */
+ let markerB
+ return start
+
+ /**
+ * Start of HTML (flow).
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // To do: parse indent like `markdown-rs`.
+ return before(code)
+ }
+
+ /**
+ * At `<`, after optional whitespace.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function before(code) {
+ effects.enter('htmlFlow')
+ effects.enter('htmlFlowData')
+ effects.consume(code)
+ return open
+ }
+
+ /**
+ * After `<`, at tag name or other stuff.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function open(code) {
+ if (code === 33) {
+ effects.consume(code)
+ return declarationOpen
+ }
+ if (code === 47) {
+ effects.consume(code)
+ closingTag = true
+ return tagCloseStart
+ }
+ if (code === 63) {
+ effects.consume(code)
+ marker = 3
+ // To do:
+ // tokenizer.concrete = true
+ // To do: use `markdown-rs` style interrupt.
+ // While we’re in an instruction instead of a declaration, we’re on a `?`
+ // right now, so we do need to search for `>`, similar to declarations.
+ return self.interrupt ? ok : continuationDeclarationInside
+ }
+
+ // ASCII alphabetical.
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ // @ts-expect-error: not null.
+ buffer = String.fromCharCode(code)
+ return tagName
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ` |
+ * ^
+ * > |
+ * ^
+ * > | &<]]>
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function declarationOpen(code) {
+ if (code === 45) {
+ effects.consume(code)
+ marker = 2
+ return commentOpenInside
+ }
+ if (code === 91) {
+ effects.consume(code)
+ marker = 5
+ index = 0
+ return cdataOpenInside
+ }
+
+ // ASCII alphabetical.
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ marker = 4
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok : continuationDeclarationInside
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ` |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function commentOpenInside(code) {
+ if (code === 45) {
+ effects.consume(code)
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok : continuationDeclarationInside
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ` | &<]]>
+ * ^^^^^^
+ * ```
+ *
+ * @type {State}
+ */
+ function cdataOpenInside(code) {
+ const value = 'CDATA['
+ if (code === value.charCodeAt(index++)) {
+ effects.consume(code)
+ if (index === value.length) {
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok : continuation
+ }
+ return cdataOpenInside
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ``, in closing tag, at tag name.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagCloseStart(code) {
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ // @ts-expect-error: not null.
+ buffer = String.fromCharCode(code)
+ return tagName
+ }
+ return nok(code)
+ }
+
+ /**
+ * In tag name.
+ *
+ * ```markdown
+ * > |
+ * ^^
+ * > |
+ * ^^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagName(code) {
+ if (
+ code === null ||
+ code === 47 ||
+ code === 62 ||
+ markdownLineEndingOrSpace(code)
+ ) {
+ const slash = code === 47
+ const name = buffer.toLowerCase()
+ if (!slash && !closingTag && htmlRawNames.includes(name)) {
+ marker = 1
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok(code) : continuation(code)
+ }
+ if (htmlBlockNames.includes(buffer.toLowerCase())) {
+ marker = 6
+ if (slash) {
+ effects.consume(code)
+ return basicSelfClosing
+ }
+
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok(code) : continuation(code)
+ }
+ marker = 7
+ // Do not support complete HTML when interrupting.
+ return self.interrupt && !self.parser.lazy[self.now().line]
+ ? nok(code)
+ : closingTag
+ ? completeClosingTagAfter(code)
+ : completeAttributeNameBefore(code)
+ }
+
+ // ASCII alphanumerical and `-`.
+ if (code === 45 || asciiAlphanumeric(code)) {
+ effects.consume(code)
+ buffer += String.fromCharCode(code)
+ return tagName
+ }
+ return nok(code)
+ }
+
+ /**
+ * After closing slash of a basic tag name.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function basicSelfClosing(code) {
+ if (code === 62) {
+ effects.consume(code)
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return self.interrupt ? ok : continuation
+ }
+ return nok(code)
+ }
+
+ /**
+ * After closing slash of a complete tag name.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeClosingTagAfter(code) {
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return completeClosingTagAfter
+ }
+ return completeEnd(code)
+ }
+
+ /**
+ * At an attribute name.
+ *
+ * At first, this state is used after a complete tag name, after whitespace,
+ * where it expects optional attributes or the end of the tag.
+ * It is also reused after attributes, when expecting more optional
+ * attributes.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeNameBefore(code) {
+ if (code === 47) {
+ effects.consume(code)
+ return completeEnd
+ }
+
+ // ASCII alphanumerical and `:` and `_`.
+ if (code === 58 || code === 95 || asciiAlpha(code)) {
+ effects.consume(code)
+ return completeAttributeName
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return completeAttributeNameBefore
+ }
+ return completeEnd(code)
+ }
+
+ /**
+ * In attribute name.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeName(code) {
+ // ASCII alphanumerical and `-`, `.`, `:`, and `_`.
+ if (
+ code === 45 ||
+ code === 46 ||
+ code === 58 ||
+ code === 95 ||
+ asciiAlphanumeric(code)
+ ) {
+ effects.consume(code)
+ return completeAttributeName
+ }
+ return completeAttributeNameAfter(code)
+ }
+
+ /**
+ * After attribute name, at an optional initializer, the end of the tag, or
+ * whitespace.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeNameAfter(code) {
+ if (code === 61) {
+ effects.consume(code)
+ return completeAttributeValueBefore
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return completeAttributeNameAfter
+ }
+ return completeAttributeNameBefore(code)
+ }
+
+ /**
+ * Before unquoted, double quoted, or single quoted attribute value, allowing
+ * whitespace.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeValueBefore(code) {
+ if (
+ code === null ||
+ code === 60 ||
+ code === 61 ||
+ code === 62 ||
+ code === 96
+ ) {
+ return nok(code)
+ }
+ if (code === 34 || code === 39) {
+ effects.consume(code)
+ markerB = code
+ return completeAttributeValueQuoted
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return completeAttributeValueBefore
+ }
+ return completeAttributeValueUnquoted(code)
+ }
+
+ /**
+ * In double or single quoted attribute value.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeValueQuoted(code) {
+ if (code === markerB) {
+ effects.consume(code)
+ markerB = null
+ return completeAttributeValueQuotedAfter
+ }
+ if (code === null || markdownLineEnding(code)) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return completeAttributeValueQuoted
+ }
+
+ /**
+ * In unquoted attribute value.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeValueUnquoted(code) {
+ if (
+ code === null ||
+ code === 34 ||
+ code === 39 ||
+ code === 47 ||
+ code === 60 ||
+ code === 61 ||
+ code === 62 ||
+ code === 96 ||
+ markdownLineEndingOrSpace(code)
+ ) {
+ return completeAttributeNameAfter(code)
+ }
+ effects.consume(code)
+ return completeAttributeValueUnquoted
+ }
+
+ /**
+ * After double or single quoted attribute value, before whitespace or the
+ * end of the tag.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAttributeValueQuotedAfter(code) {
+ if (code === 47 || code === 62 || markdownSpace(code)) {
+ return completeAttributeNameBefore(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * In certain circumstances of a complete tag where only an `>` is allowed.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeEnd(code) {
+ if (code === 62) {
+ effects.consume(code)
+ return completeAfter
+ }
+ return nok(code)
+ }
+
+ /**
+ * After `>` in a complete tag.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function completeAfter(code) {
+ if (code === null || markdownLineEnding(code)) {
+ // // Do not form containers.
+ // tokenizer.concrete = true
+ return continuation(code)
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return completeAfter
+ }
+ return nok(code)
+ }
+
+ /**
+ * In continuation of any HTML kind.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuation(code) {
+ if (code === 45 && marker === 2) {
+ effects.consume(code)
+ return continuationCommentInside
+ }
+ if (code === 60 && marker === 1) {
+ effects.consume(code)
+ return continuationRawTagOpen
+ }
+ if (code === 62 && marker === 4) {
+ effects.consume(code)
+ return continuationClose
+ }
+ if (code === 63 && marker === 3) {
+ effects.consume(code)
+ return continuationDeclarationInside
+ }
+ if (code === 93 && marker === 5) {
+ effects.consume(code)
+ return continuationCdataInside
+ }
+ if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {
+ effects.exit('htmlFlowData')
+ return effects.check(
+ blankLineBefore,
+ continuationAfter,
+ continuationStart
+ )(code)
+ }
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('htmlFlowData')
+ return continuationStart(code)
+ }
+ effects.consume(code)
+ return continuation
+ }
+
+ /**
+ * In continuation, at eol.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * | asd
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationStart(code) {
+ return effects.check(
+ nonLazyContinuationStart,
+ continuationStartNonLazy,
+ continuationAfter
+ )(code)
+ }
+
+ /**
+ * In continuation, at eol, before non-lazy content.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * | asd
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationStartNonLazy(code) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return continuationBefore
+ }
+
+ /**
+ * In continuation, before non-lazy content.
+ *
+ * ```markdown
+ * |
+ * > | asd
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationBefore(code) {
+ if (code === null || markdownLineEnding(code)) {
+ return continuationStart(code)
+ }
+ effects.enter('htmlFlowData')
+ return continuation(code)
+ }
+
+ /**
+ * In comment continuation, after one `-`, expecting another.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationCommentInside(code) {
+ if (code === 45) {
+ effects.consume(code)
+ return continuationDeclarationInside
+ }
+ return continuation(code)
+ }
+
+ /**
+ * In raw continuation, after `<`, at `/`.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationRawTagOpen(code) {
+ if (code === 47) {
+ effects.consume(code)
+ buffer = ''
+ return continuationRawEndTag
+ }
+ return continuation(code)
+ }
+
+ /**
+ * In raw continuation, after ``, in a raw tag name.
+ *
+ * ```markdown
+ * > |
+ * ^^^^^^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationRawEndTag(code) {
+ if (code === 62) {
+ const name = buffer.toLowerCase()
+ if (htmlRawNames.includes(name)) {
+ effects.consume(code)
+ return continuationClose
+ }
+ return continuation(code)
+ }
+ if (asciiAlpha(code) && buffer.length < 8) {
+ effects.consume(code)
+ // @ts-expect-error: not null.
+ buffer += String.fromCharCode(code)
+ return continuationRawEndTag
+ }
+ return continuation(code)
+ }
+
+ /**
+ * In cdata continuation, after `]`, expecting `]>`.
+ *
+ * ```markdown
+ * > | &<]]>
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationCdataInside(code) {
+ if (code === 93) {
+ effects.consume(code)
+ return continuationDeclarationInside
+ }
+ return continuation(code)
+ }
+
+ /**
+ * In declaration or instruction continuation, at `>`.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * > | >
+ * ^
+ * > |
+ * ^
+ * > |
+ * ^
+ * > | &<]]>
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationDeclarationInside(code) {
+ if (code === 62) {
+ effects.consume(code)
+ return continuationClose
+ }
+
+ // More dashes.
+ if (code === 45 && marker === 2) {
+ effects.consume(code)
+ return continuationDeclarationInside
+ }
+ return continuation(code)
+ }
+
+ /**
+ * In closed continuation: everything we get until the eol/eof is part of it.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationClose(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('htmlFlowData')
+ return continuationAfter(code)
+ }
+ effects.consume(code)
+ return continuationClose
+ }
+
+ /**
+ * Done.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function continuationAfter(code) {
+ effects.exit('htmlFlow')
+ // // Feel free to interrupt.
+ // tokenizer.interrupt = false
+ // // No longer concrete.
+ // tokenizer.concrete = false
+ return ok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeNonLazyContinuationStart(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ * At eol, before continuation.
+ *
+ * ```markdown
+ * > | * ```js
+ * ^
+ * | b
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ if (markdownLineEnding(code)) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return after
+ }
+ return nok(code)
+ }
+
+ /**
+ * A continuation.
+ *
+ * ```markdown
+ * | * ```js
+ * > | b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeBlankLineBefore(effects, ok, nok) {
+ return start
+
+ /**
+ * Before eol, expecting blank line.
+ *
+ * ```markdown
+ * > |
+ * ^
+ * |
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return effects.attempt(blankLine, ok, nok)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/code-fenced.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const nonLazyContinuation = {
+ tokenize: tokenizeNonLazyContinuation,
+ partial: true
+}
+
+/** @type {Construct} */
+const codeFenced = {
+ name: 'codeFenced',
+ tokenize: tokenizeCodeFenced,
+ concrete: true
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeCodeFenced(effects, ok, nok) {
+ const self = this
+ /** @type {Construct} */
+ const closeStart = {
+ tokenize: tokenizeCloseStart,
+ partial: true
+ }
+ let initialPrefix = 0
+ let sizeOpen = 0
+ /** @type {NonNullable} */
+ let marker
+ return start
+
+ /**
+ * Start of code.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // To do: parse whitespace like `markdown-rs`.
+ return beforeSequenceOpen(code)
+ }
+
+ /**
+ * In opening fence, after prefix, at sequence.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function beforeSequenceOpen(code) {
+ const tail = self.events[self.events.length - 1]
+ initialPrefix =
+ tail && tail[1].type === 'linePrefix'
+ ? tail[2].sliceSerialize(tail[1], true).length
+ : 0
+ marker = code
+ effects.enter('codeFenced')
+ effects.enter('codeFencedFence')
+ effects.enter('codeFencedFenceSequence')
+ return sequenceOpen(code)
+ }
+
+ /**
+ * In opening fence sequence.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceOpen(code) {
+ if (code === marker) {
+ sizeOpen++
+ effects.consume(code)
+ return sequenceOpen
+ }
+ if (sizeOpen < 3) {
+ return nok(code)
+ }
+ effects.exit('codeFencedFenceSequence')
+ return markdownSpace(code)
+ ? factorySpace(effects, infoBefore, 'whitespace')(code)
+ : infoBefore(code)
+ }
+
+ /**
+ * In opening fence, after the sequence (and optional whitespace), before info.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function infoBefore(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('codeFencedFence')
+ return self.interrupt
+ ? ok(code)
+ : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
+ }
+ effects.enter('codeFencedFenceInfo')
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return info(code)
+ }
+
+ /**
+ * In info.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function info(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('chunkString')
+ effects.exit('codeFencedFenceInfo')
+ return infoBefore(code)
+ }
+ if (markdownSpace(code)) {
+ effects.exit('chunkString')
+ effects.exit('codeFencedFenceInfo')
+ return factorySpace(effects, metaBefore, 'whitespace')(code)
+ }
+ if (code === 96 && code === marker) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return info
+ }
+
+ /**
+ * In opening fence, after info and whitespace, before meta.
+ *
+ * ```markdown
+ * > | ~~~js eval
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function metaBefore(code) {
+ if (code === null || markdownLineEnding(code)) {
+ return infoBefore(code)
+ }
+ effects.enter('codeFencedFenceMeta')
+ effects.enter('chunkString', {
+ contentType: 'string'
+ })
+ return meta(code)
+ }
+
+ /**
+ * In meta.
+ *
+ * ```markdown
+ * > | ~~~js eval
+ * ^
+ * | alert(1)
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function meta(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('chunkString')
+ effects.exit('codeFencedFenceMeta')
+ return infoBefore(code)
+ }
+ if (code === 96 && code === marker) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return meta
+ }
+
+ /**
+ * At eol/eof in code, before a non-lazy closing fence or content.
+ *
+ * ```markdown
+ * > | ~~~js
+ * ^
+ * > | alert(1)
+ * ^
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function atNonLazyBreak(code) {
+ return effects.attempt(closeStart, after, contentBefore)(code)
+ }
+
+ /**
+ * Before code content, not a closing fence, at eol.
+ *
+ * ```markdown
+ * | ~~~js
+ * > | alert(1)
+ * ^
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function contentBefore(code) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return contentStart
+ }
+
+ /**
+ * Before code content, not a closing fence.
+ *
+ * ```markdown
+ * | ~~~js
+ * > | alert(1)
+ * ^
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function contentStart(code) {
+ return initialPrefix > 0 && markdownSpace(code)
+ ? factorySpace(
+ effects,
+ beforeContentChunk,
+ 'linePrefix',
+ initialPrefix + 1
+ )(code)
+ : beforeContentChunk(code)
+ }
+
+ /**
+ * Before code content, after optional prefix.
+ *
+ * ```markdown
+ * | ~~~js
+ * > | alert(1)
+ * ^
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function beforeContentChunk(code) {
+ if (code === null || markdownLineEnding(code)) {
+ return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
+ }
+ effects.enter('codeFlowValue')
+ return contentChunk(code)
+ }
+
+ /**
+ * In code content.
+ *
+ * ```markdown
+ * | ~~~js
+ * > | alert(1)
+ * ^^^^^^^^
+ * | ~~~
+ * ```
+ *
+ * @type {State}
+ */
+ function contentChunk(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('codeFlowValue')
+ return beforeContentChunk(code)
+ }
+ effects.consume(code)
+ return contentChunk
+ }
+
+ /**
+ * After code.
+ *
+ * ```markdown
+ * | ~~~js
+ * | alert(1)
+ * > | ~~~
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ effects.exit('codeFenced')
+ return ok(code)
+ }
+
+ /**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+ function tokenizeCloseStart(effects, ok, nok) {
+ let size = 0
+ return startBefore
+
+ /**
+ *
+ *
+ * @type {State}
+ */
+ function startBefore(code) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return start
+ }
+
+ /**
+ * Before closing fence, at optional whitespace.
+ *
+ * ```markdown
+ * | ~~~js
+ * | alert(1)
+ * > | ~~~
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // Always populated by defaults.
+
+ // To do: `enter` here or in next state?
+ effects.enter('codeFencedFence')
+ return markdownSpace(code)
+ ? factorySpace(
+ effects,
+ beforeSequenceClose,
+ 'linePrefix',
+ self.parser.constructs.disable.null.includes('codeIndented')
+ ? undefined
+ : 4
+ )(code)
+ : beforeSequenceClose(code)
+ }
+
+ /**
+ * In closing fence, after optional whitespace, at sequence.
+ *
+ * ```markdown
+ * | ~~~js
+ * | alert(1)
+ * > | ~~~
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function beforeSequenceClose(code) {
+ if (code === marker) {
+ effects.enter('codeFencedFenceSequence')
+ return sequenceClose(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * In closing fence sequence.
+ *
+ * ```markdown
+ * | ~~~js
+ * | alert(1)
+ * > | ~~~
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceClose(code) {
+ if (code === marker) {
+ size++
+ effects.consume(code)
+ return sequenceClose
+ }
+ if (size >= sizeOpen) {
+ effects.exit('codeFencedFenceSequence')
+ return markdownSpace(code)
+ ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)
+ : sequenceCloseAfter(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * After closing fence sequence, after optional whitespace.
+ *
+ * ```markdown
+ * | ~~~js
+ * | alert(1)
+ * > | ~~~
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceCloseAfter(code) {
+ if (code === null || markdownLineEnding(code)) {
+ effects.exit('codeFencedFence')
+ return ok(code)
+ }
+ return nok(code)
+ }
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeNonLazyContinuation(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ *
+ *
+ * @type {State}
+ */
+ function start(code) {
+ if (code === null) {
+ return nok(code)
+ }
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return lineStart
+ }
+
+ /**
+ *
+ *
+ * @type {State}
+ */
+ function lineStart(code) {
+ return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/character-entities/index.js
+/**
+ * Map of named character references.
+ *
+ * @type {Record}
+ */
+const characterEntities = {
+ AElig: 'Æ',
+ AMP: '&',
+ Aacute: 'Á',
+ Abreve: 'Ă',
+ Acirc: 'Â',
+ Acy: 'А',
+ Afr: '𝔄',
+ Agrave: 'À',
+ Alpha: 'Α',
+ Amacr: 'Ā',
+ And: '⩓',
+ Aogon: 'Ą',
+ Aopf: '𝔸',
+ ApplyFunction: '',
+ Aring: 'Å',
+ Ascr: '𝒜',
+ Assign: '≔',
+ Atilde: 'Ã',
+ Auml: 'Ä',
+ Backslash: '∖',
+ Barv: '⫧',
+ Barwed: '⌆',
+ Bcy: 'Б',
+ Because: '∵',
+ Bernoullis: 'ℬ',
+ Beta: 'Β',
+ Bfr: '𝔅',
+ Bopf: '𝔹',
+ Breve: '˘',
+ Bscr: 'ℬ',
+ Bumpeq: '≎',
+ CHcy: 'Ч',
+ COPY: '©',
+ Cacute: 'Ć',
+ Cap: '⋒',
+ CapitalDifferentialD: 'ⅅ',
+ Cayleys: 'ℭ',
+ Ccaron: 'Č',
+ Ccedil: 'Ç',
+ Ccirc: 'Ĉ',
+ Cconint: '∰',
+ Cdot: 'Ċ',
+ Cedilla: '¸',
+ CenterDot: '·',
+ Cfr: 'ℭ',
+ Chi: 'Χ',
+ CircleDot: '⊙',
+ CircleMinus: '⊖',
+ CirclePlus: '⊕',
+ CircleTimes: '⊗',
+ ClockwiseContourIntegral: '∲',
+ CloseCurlyDoubleQuote: '”',
+ CloseCurlyQuote: '’',
+ Colon: '∷',
+ Colone: '⩴',
+ Congruent: '≡',
+ Conint: '∯',
+ ContourIntegral: '∮',
+ Copf: 'ℂ',
+ Coproduct: '∐',
+ CounterClockwiseContourIntegral: '∳',
+ Cross: '⨯',
+ Cscr: '𝒞',
+ Cup: '⋓',
+ CupCap: '≍',
+ DD: 'ⅅ',
+ DDotrahd: '⤑',
+ DJcy: 'Ђ',
+ DScy: 'Ѕ',
+ DZcy: 'Џ',
+ Dagger: '‡',
+ Darr: '↡',
+ Dashv: '⫤',
+ Dcaron: 'Ď',
+ Dcy: 'Д',
+ Del: '∇',
+ Delta: 'Δ',
+ Dfr: '𝔇',
+ DiacriticalAcute: '´',
+ DiacriticalDot: '˙',
+ DiacriticalDoubleAcute: '˝',
+ DiacriticalGrave: '`',
+ DiacriticalTilde: '˜',
+ Diamond: '⋄',
+ DifferentialD: 'ⅆ',
+ Dopf: '𝔻',
+ Dot: '¨',
+ DotDot: '⃜',
+ DotEqual: '≐',
+ DoubleContourIntegral: '∯',
+ DoubleDot: '¨',
+ DoubleDownArrow: '⇓',
+ DoubleLeftArrow: '⇐',
+ DoubleLeftRightArrow: '⇔',
+ DoubleLeftTee: '⫤',
+ DoubleLongLeftArrow: '⟸',
+ DoubleLongLeftRightArrow: '⟺',
+ DoubleLongRightArrow: '⟹',
+ DoubleRightArrow: '⇒',
+ DoubleRightTee: '⊨',
+ DoubleUpArrow: '⇑',
+ DoubleUpDownArrow: '⇕',
+ DoubleVerticalBar: '∥',
+ DownArrow: '↓',
+ DownArrowBar: '⤓',
+ DownArrowUpArrow: '⇵',
+ DownBreve: '̑',
+ DownLeftRightVector: '⥐',
+ DownLeftTeeVector: '⥞',
+ DownLeftVector: '↽',
+ DownLeftVectorBar: '⥖',
+ DownRightTeeVector: '⥟',
+ DownRightVector: '⇁',
+ DownRightVectorBar: '⥗',
+ DownTee: '⊤',
+ DownTeeArrow: '↧',
+ Downarrow: '⇓',
+ Dscr: '𝒟',
+ Dstrok: 'Đ',
+ ENG: 'Ŋ',
+ ETH: 'Ð',
+ Eacute: 'É',
+ Ecaron: 'Ě',
+ Ecirc: 'Ê',
+ Ecy: 'Э',
+ Edot: 'Ė',
+ Efr: '𝔈',
+ Egrave: 'È',
+ Element: '∈',
+ Emacr: 'Ē',
+ EmptySmallSquare: '◻',
+ EmptyVerySmallSquare: '▫',
+ Eogon: 'Ę',
+ Eopf: '𝔼',
+ Epsilon: 'Ε',
+ Equal: '⩵',
+ EqualTilde: '≂',
+ Equilibrium: '⇌',
+ Escr: 'ℰ',
+ Esim: '⩳',
+ Eta: 'Η',
+ Euml: 'Ë',
+ Exists: '∃',
+ ExponentialE: 'ⅇ',
+ Fcy: 'Ф',
+ Ffr: '𝔉',
+ FilledSmallSquare: '◼',
+ FilledVerySmallSquare: '▪',
+ Fopf: '𝔽',
+ ForAll: '∀',
+ Fouriertrf: 'ℱ',
+ Fscr: 'ℱ',
+ GJcy: 'Ѓ',
+ GT: '>',
+ Gamma: 'Γ',
+ Gammad: 'Ϝ',
+ Gbreve: 'Ğ',
+ Gcedil: 'Ģ',
+ Gcirc: 'Ĝ',
+ Gcy: 'Г',
+ Gdot: 'Ġ',
+ Gfr: '𝔊',
+ Gg: '⋙',
+ Gopf: '𝔾',
+ GreaterEqual: '≥',
+ GreaterEqualLess: '⋛',
+ GreaterFullEqual: '≧',
+ GreaterGreater: '⪢',
+ GreaterLess: '≷',
+ GreaterSlantEqual: '⩾',
+ GreaterTilde: '≳',
+ Gscr: '𝒢',
+ Gt: '≫',
+ HARDcy: 'Ъ',
+ Hacek: 'ˇ',
+ Hat: '^',
+ Hcirc: 'Ĥ',
+ Hfr: 'ℌ',
+ HilbertSpace: 'ℋ',
+ Hopf: 'ℍ',
+ HorizontalLine: '─',
+ Hscr: 'ℋ',
+ Hstrok: 'Ħ',
+ HumpDownHump: '≎',
+ HumpEqual: '≏',
+ IEcy: 'Е',
+ IJlig: 'IJ',
+ IOcy: 'Ё',
+ Iacute: 'Í',
+ Icirc: 'Î',
+ Icy: 'И',
+ Idot: 'İ',
+ Ifr: 'ℑ',
+ Igrave: 'Ì',
+ Im: 'ℑ',
+ Imacr: 'Ī',
+ ImaginaryI: 'ⅈ',
+ Implies: '⇒',
+ Int: '∬',
+ Integral: '∫',
+ Intersection: '⋂',
+ InvisibleComma: '',
+ InvisibleTimes: '',
+ Iogon: 'Į',
+ Iopf: '𝕀',
+ Iota: 'Ι',
+ Iscr: 'ℐ',
+ Itilde: 'Ĩ',
+ Iukcy: 'І',
+ Iuml: 'Ï',
+ Jcirc: 'Ĵ',
+ Jcy: 'Й',
+ Jfr: '𝔍',
+ Jopf: '𝕁',
+ Jscr: '𝒥',
+ Jsercy: 'Ј',
+ Jukcy: 'Є',
+ KHcy: 'Х',
+ KJcy: 'Ќ',
+ Kappa: 'Κ',
+ Kcedil: 'Ķ',
+ Kcy: 'К',
+ Kfr: '𝔎',
+ Kopf: '𝕂',
+ Kscr: '𝒦',
+ LJcy: 'Љ',
+ LT: '<',
+ Lacute: 'Ĺ',
+ Lambda: 'Λ',
+ Lang: '⟪',
+ Laplacetrf: 'ℒ',
+ Larr: '↞',
+ Lcaron: 'Ľ',
+ Lcedil: 'Ļ',
+ Lcy: 'Л',
+ LeftAngleBracket: '⟨',
+ LeftArrow: '←',
+ LeftArrowBar: '⇤',
+ LeftArrowRightArrow: '⇆',
+ LeftCeiling: '⌈',
+ LeftDoubleBracket: '⟦',
+ LeftDownTeeVector: '⥡',
+ LeftDownVector: '⇃',
+ LeftDownVectorBar: '⥙',
+ LeftFloor: '⌊',
+ LeftRightArrow: '↔',
+ LeftRightVector: '⥎',
+ LeftTee: '⊣',
+ LeftTeeArrow: '↤',
+ LeftTeeVector: '⥚',
+ LeftTriangle: '⊲',
+ LeftTriangleBar: '⧏',
+ LeftTriangleEqual: '⊴',
+ LeftUpDownVector: '⥑',
+ LeftUpTeeVector: '⥠',
+ LeftUpVector: '↿',
+ LeftUpVectorBar: '⥘',
+ LeftVector: '↼',
+ LeftVectorBar: '⥒',
+ Leftarrow: '⇐',
+ Leftrightarrow: '⇔',
+ LessEqualGreater: '⋚',
+ LessFullEqual: '≦',
+ LessGreater: '≶',
+ LessLess: '⪡',
+ LessSlantEqual: '⩽',
+ LessTilde: '≲',
+ Lfr: '𝔏',
+ Ll: '⋘',
+ Lleftarrow: '⇚',
+ Lmidot: 'Ŀ',
+ LongLeftArrow: '⟵',
+ LongLeftRightArrow: '⟷',
+ LongRightArrow: '⟶',
+ Longleftarrow: '⟸',
+ Longleftrightarrow: '⟺',
+ Longrightarrow: '⟹',
+ Lopf: '𝕃',
+ LowerLeftArrow: '↙',
+ LowerRightArrow: '↘',
+ Lscr: 'ℒ',
+ Lsh: '↰',
+ Lstrok: 'Ł',
+ Lt: '≪',
+ Map: '⤅',
+ Mcy: 'М',
+ MediumSpace: ' ',
+ Mellintrf: 'ℳ',
+ Mfr: '𝔐',
+ MinusPlus: '∓',
+ Mopf: '𝕄',
+ Mscr: 'ℳ',
+ Mu: 'Μ',
+ NJcy: 'Њ',
+ Nacute: 'Ń',
+ Ncaron: 'Ň',
+ Ncedil: 'Ņ',
+ Ncy: 'Н',
+ NegativeMediumSpace: '',
+ NegativeThickSpace: '',
+ NegativeThinSpace: '',
+ NegativeVeryThinSpace: '',
+ NestedGreaterGreater: '≫',
+ NestedLessLess: '≪',
+ NewLine: '\n',
+ Nfr: '𝔑',
+ NoBreak: '',
+ NonBreakingSpace: ' ',
+ Nopf: 'ℕ',
+ Not: '⫬',
+ NotCongruent: '≢',
+ NotCupCap: '≭',
+ NotDoubleVerticalBar: '∦',
+ NotElement: '∉',
+ NotEqual: '≠',
+ NotEqualTilde: '≂̸',
+ NotExists: '∄',
+ NotGreater: '≯',
+ NotGreaterEqual: '≱',
+ NotGreaterFullEqual: '≧̸',
+ NotGreaterGreater: '≫̸',
+ NotGreaterLess: '≹',
+ NotGreaterSlantEqual: '⩾̸',
+ NotGreaterTilde: '≵',
+ NotHumpDownHump: '≎̸',
+ NotHumpEqual: '≏̸',
+ NotLeftTriangle: '⋪',
+ NotLeftTriangleBar: '⧏̸',
+ NotLeftTriangleEqual: '⋬',
+ NotLess: '≮',
+ NotLessEqual: '≰',
+ NotLessGreater: '≸',
+ NotLessLess: '≪̸',
+ NotLessSlantEqual: '⩽̸',
+ NotLessTilde: '≴',
+ NotNestedGreaterGreater: '⪢̸',
+ NotNestedLessLess: '⪡̸',
+ NotPrecedes: '⊀',
+ NotPrecedesEqual: '⪯̸',
+ NotPrecedesSlantEqual: '⋠',
+ NotReverseElement: '∌',
+ NotRightTriangle: '⋫',
+ NotRightTriangleBar: '⧐̸',
+ NotRightTriangleEqual: '⋭',
+ NotSquareSubset: '⊏̸',
+ NotSquareSubsetEqual: '⋢',
+ NotSquareSuperset: '⊐̸',
+ NotSquareSupersetEqual: '⋣',
+ NotSubset: '⊂⃒',
+ NotSubsetEqual: '⊈',
+ NotSucceeds: '⊁',
+ NotSucceedsEqual: '⪰̸',
+ NotSucceedsSlantEqual: '⋡',
+ NotSucceedsTilde: '≿̸',
+ NotSuperset: '⊃⃒',
+ NotSupersetEqual: '⊉',
+ NotTilde: '≁',
+ NotTildeEqual: '≄',
+ NotTildeFullEqual: '≇',
+ NotTildeTilde: '≉',
+ NotVerticalBar: '∤',
+ Nscr: '𝒩',
+ Ntilde: 'Ñ',
+ Nu: 'Ν',
+ OElig: 'Œ',
+ Oacute: 'Ó',
+ Ocirc: 'Ô',
+ Ocy: 'О',
+ Odblac: 'Ő',
+ Ofr: '𝔒',
+ Ograve: 'Ò',
+ Omacr: 'Ō',
+ Omega: 'Ω',
+ Omicron: 'Ο',
+ Oopf: '𝕆',
+ OpenCurlyDoubleQuote: '“',
+ OpenCurlyQuote: '‘',
+ Or: '⩔',
+ Oscr: '𝒪',
+ Oslash: 'Ø',
+ Otilde: 'Õ',
+ Otimes: '⨷',
+ Ouml: 'Ö',
+ OverBar: '‾',
+ OverBrace: '⏞',
+ OverBracket: '⎴',
+ OverParenthesis: '⏜',
+ PartialD: '∂',
+ Pcy: 'П',
+ Pfr: '𝔓',
+ Phi: 'Φ',
+ Pi: 'Π',
+ PlusMinus: '±',
+ Poincareplane: 'ℌ',
+ Popf: 'ℙ',
+ Pr: '⪻',
+ Precedes: '≺',
+ PrecedesEqual: '⪯',
+ PrecedesSlantEqual: '≼',
+ PrecedesTilde: '≾',
+ Prime: '″',
+ Product: '∏',
+ Proportion: '∷',
+ Proportional: '∝',
+ Pscr: '𝒫',
+ Psi: 'Ψ',
+ QUOT: '"',
+ Qfr: '𝔔',
+ Qopf: 'ℚ',
+ Qscr: '𝒬',
+ RBarr: '⤐',
+ REG: '®',
+ Racute: 'Ŕ',
+ Rang: '⟫',
+ Rarr: '↠',
+ Rarrtl: '⤖',
+ Rcaron: 'Ř',
+ Rcedil: 'Ŗ',
+ Rcy: 'Р',
+ Re: 'ℜ',
+ ReverseElement: '∋',
+ ReverseEquilibrium: '⇋',
+ ReverseUpEquilibrium: '⥯',
+ Rfr: 'ℜ',
+ Rho: 'Ρ',
+ RightAngleBracket: '⟩',
+ RightArrow: '→',
+ RightArrowBar: '⇥',
+ RightArrowLeftArrow: '⇄',
+ RightCeiling: '⌉',
+ RightDoubleBracket: '⟧',
+ RightDownTeeVector: '⥝',
+ RightDownVector: '⇂',
+ RightDownVectorBar: '⥕',
+ RightFloor: '⌋',
+ RightTee: '⊢',
+ RightTeeArrow: '↦',
+ RightTeeVector: '⥛',
+ RightTriangle: '⊳',
+ RightTriangleBar: '⧐',
+ RightTriangleEqual: '⊵',
+ RightUpDownVector: '⥏',
+ RightUpTeeVector: '⥜',
+ RightUpVector: '↾',
+ RightUpVectorBar: '⥔',
+ RightVector: '⇀',
+ RightVectorBar: '⥓',
+ Rightarrow: '⇒',
+ Ropf: 'ℝ',
+ RoundImplies: '⥰',
+ Rrightarrow: '⇛',
+ Rscr: 'ℛ',
+ Rsh: '↱',
+ RuleDelayed: '⧴',
+ SHCHcy: 'Щ',
+ SHcy: 'Ш',
+ SOFTcy: 'Ь',
+ Sacute: 'Ś',
+ Sc: '⪼',
+ Scaron: 'Š',
+ Scedil: 'Ş',
+ Scirc: 'Ŝ',
+ Scy: 'С',
+ Sfr: '𝔖',
+ ShortDownArrow: '↓',
+ ShortLeftArrow: '←',
+ ShortRightArrow: '→',
+ ShortUpArrow: '↑',
+ Sigma: 'Σ',
+ SmallCircle: '∘',
+ Sopf: '𝕊',
+ Sqrt: '√',
+ Square: '□',
+ SquareIntersection: '⊓',
+ SquareSubset: '⊏',
+ SquareSubsetEqual: '⊑',
+ SquareSuperset: '⊐',
+ SquareSupersetEqual: '⊒',
+ SquareUnion: '⊔',
+ Sscr: '𝒮',
+ Star: '⋆',
+ Sub: '⋐',
+ Subset: '⋐',
+ SubsetEqual: '⊆',
+ Succeeds: '≻',
+ SucceedsEqual: '⪰',
+ SucceedsSlantEqual: '≽',
+ SucceedsTilde: '≿',
+ SuchThat: '∋',
+ Sum: '∑',
+ Sup: '⋑',
+ Superset: '⊃',
+ SupersetEqual: '⊇',
+ Supset: '⋑',
+ THORN: 'Þ',
+ TRADE: '™',
+ TSHcy: 'Ћ',
+ TScy: 'Ц',
+ Tab: '\t',
+ Tau: 'Τ',
+ Tcaron: 'Ť',
+ Tcedil: 'Ţ',
+ Tcy: 'Т',
+ Tfr: '𝔗',
+ Therefore: '∴',
+ Theta: 'Θ',
+ ThickSpace: ' ',
+ ThinSpace: ' ',
+ Tilde: '∼',
+ TildeEqual: '≃',
+ TildeFullEqual: '≅',
+ TildeTilde: '≈',
+ Topf: '𝕋',
+ TripleDot: '⃛',
+ Tscr: '𝒯',
+ Tstrok: 'Ŧ',
+ Uacute: 'Ú',
+ Uarr: '↟',
+ Uarrocir: '⥉',
+ Ubrcy: 'Ў',
+ Ubreve: 'Ŭ',
+ Ucirc: 'Û',
+ Ucy: 'У',
+ Udblac: 'Ű',
+ Ufr: '𝔘',
+ Ugrave: 'Ù',
+ Umacr: 'Ū',
+ UnderBar: '_',
+ UnderBrace: '⏟',
+ UnderBracket: '⎵',
+ UnderParenthesis: '⏝',
+ Union: '⋃',
+ UnionPlus: '⊎',
+ Uogon: 'Ų',
+ Uopf: '𝕌',
+ UpArrow: '↑',
+ UpArrowBar: '⤒',
+ UpArrowDownArrow: '⇅',
+ UpDownArrow: '↕',
+ UpEquilibrium: '⥮',
+ UpTee: '⊥',
+ UpTeeArrow: '↥',
+ Uparrow: '⇑',
+ Updownarrow: '⇕',
+ UpperLeftArrow: '↖',
+ UpperRightArrow: '↗',
+ Upsi: 'ϒ',
+ Upsilon: 'Υ',
+ Uring: 'Ů',
+ Uscr: '𝒰',
+ Utilde: 'Ũ',
+ Uuml: 'Ü',
+ VDash: '⊫',
+ Vbar: '⫫',
+ Vcy: 'В',
+ Vdash: '⊩',
+ Vdashl: '⫦',
+ Vee: '⋁',
+ Verbar: '‖',
+ Vert: '‖',
+ VerticalBar: '∣',
+ VerticalLine: '|',
+ VerticalSeparator: '❘',
+ VerticalTilde: '≀',
+ VeryThinSpace: ' ',
+ Vfr: '𝔙',
+ Vopf: '𝕍',
+ Vscr: '𝒱',
+ Vvdash: '⊪',
+ Wcirc: 'Ŵ',
+ Wedge: '⋀',
+ Wfr: '𝔚',
+ Wopf: '𝕎',
+ Wscr: '𝒲',
+ Xfr: '𝔛',
+ Xi: 'Ξ',
+ Xopf: '𝕏',
+ Xscr: '𝒳',
+ YAcy: 'Я',
+ YIcy: 'Ї',
+ YUcy: 'Ю',
+ Yacute: 'Ý',
+ Ycirc: 'Ŷ',
+ Ycy: 'Ы',
+ Yfr: '𝔜',
+ Yopf: '𝕐',
+ Yscr: '𝒴',
+ Yuml: 'Ÿ',
+ ZHcy: 'Ж',
+ Zacute: 'Ź',
+ Zcaron: 'Ž',
+ Zcy: 'З',
+ Zdot: 'Ż',
+ ZeroWidthSpace: '',
+ Zeta: 'Ζ',
+ Zfr: 'ℨ',
+ Zopf: 'ℤ',
+ Zscr: '𝒵',
+ aacute: 'á',
+ abreve: 'ă',
+ ac: '∾',
+ acE: '∾̳',
+ acd: '∿',
+ acirc: 'â',
+ acute: '´',
+ acy: 'а',
+ aelig: 'æ',
+ af: '',
+ afr: '𝔞',
+ agrave: 'à',
+ alefsym: 'ℵ',
+ aleph: 'ℵ',
+ alpha: 'α',
+ amacr: 'ā',
+ amalg: '⨿',
+ amp: '&',
+ and: '∧',
+ andand: '⩕',
+ andd: '⩜',
+ andslope: '⩘',
+ andv: '⩚',
+ ang: '∠',
+ ange: '⦤',
+ angle: '∠',
+ angmsd: '∡',
+ angmsdaa: '⦨',
+ angmsdab: '⦩',
+ angmsdac: '⦪',
+ angmsdad: '⦫',
+ angmsdae: '⦬',
+ angmsdaf: '⦭',
+ angmsdag: '⦮',
+ angmsdah: '⦯',
+ angrt: '∟',
+ angrtvb: '⊾',
+ angrtvbd: '⦝',
+ angsph: '∢',
+ angst: 'Å',
+ angzarr: '⍼',
+ aogon: 'ą',
+ aopf: '𝕒',
+ ap: '≈',
+ apE: '⩰',
+ apacir: '⩯',
+ ape: '≊',
+ apid: '≋',
+ apos: "'",
+ approx: '≈',
+ approxeq: '≊',
+ aring: 'å',
+ ascr: '𝒶',
+ ast: '*',
+ asymp: '≈',
+ asympeq: '≍',
+ atilde: 'ã',
+ auml: 'ä',
+ awconint: '∳',
+ awint: '⨑',
+ bNot: '⫭',
+ backcong: '≌',
+ backepsilon: '϶',
+ backprime: '‵',
+ backsim: '∽',
+ backsimeq: '⋍',
+ barvee: '⊽',
+ barwed: '⌅',
+ barwedge: '⌅',
+ bbrk: '⎵',
+ bbrktbrk: '⎶',
+ bcong: '≌',
+ bcy: 'б',
+ bdquo: '„',
+ becaus: '∵',
+ because: '∵',
+ bemptyv: '⦰',
+ bepsi: '϶',
+ bernou: 'ℬ',
+ beta: 'β',
+ beth: 'ℶ',
+ between: '≬',
+ bfr: '𝔟',
+ bigcap: '⋂',
+ bigcirc: '◯',
+ bigcup: '⋃',
+ bigodot: '⨀',
+ bigoplus: '⨁',
+ bigotimes: '⨂',
+ bigsqcup: '⨆',
+ bigstar: '★',
+ bigtriangledown: '▽',
+ bigtriangleup: '△',
+ biguplus: '⨄',
+ bigvee: '⋁',
+ bigwedge: '⋀',
+ bkarow: '⤍',
+ blacklozenge: '⧫',
+ blacksquare: '▪',
+ blacktriangle: '▴',
+ blacktriangledown: '▾',
+ blacktriangleleft: '◂',
+ blacktriangleright: '▸',
+ blank: '␣',
+ blk12: '▒',
+ blk14: '░',
+ blk34: '▓',
+ block: '█',
+ bne: '=⃥',
+ bnequiv: '≡⃥',
+ bnot: '⌐',
+ bopf: '𝕓',
+ bot: '⊥',
+ bottom: '⊥',
+ bowtie: '⋈',
+ boxDL: '╗',
+ boxDR: '╔',
+ boxDl: '╖',
+ boxDr: '╓',
+ boxH: '═',
+ boxHD: '╦',
+ boxHU: '╩',
+ boxHd: '╤',
+ boxHu: '╧',
+ boxUL: '╝',
+ boxUR: '╚',
+ boxUl: '╜',
+ boxUr: '╙',
+ boxV: '║',
+ boxVH: '╬',
+ boxVL: '╣',
+ boxVR: '╠',
+ boxVh: '╫',
+ boxVl: '╢',
+ boxVr: '╟',
+ boxbox: '⧉',
+ boxdL: '╕',
+ boxdR: '╒',
+ boxdl: '┐',
+ boxdr: '┌',
+ boxh: '─',
+ boxhD: '╥',
+ boxhU: '╨',
+ boxhd: '┬',
+ boxhu: '┴',
+ boxminus: '⊟',
+ boxplus: '⊞',
+ boxtimes: '⊠',
+ boxuL: '╛',
+ boxuR: '╘',
+ boxul: '┘',
+ boxur: '└',
+ boxv: '│',
+ boxvH: '╪',
+ boxvL: '╡',
+ boxvR: '╞',
+ boxvh: '┼',
+ boxvl: '┤',
+ boxvr: '├',
+ bprime: '‵',
+ breve: '˘',
+ brvbar: '¦',
+ bscr: '𝒷',
+ bsemi: '⁏',
+ bsim: '∽',
+ bsime: '⋍',
+ bsol: '\\',
+ bsolb: '⧅',
+ bsolhsub: '⟈',
+ bull: '•',
+ bullet: '•',
+ bump: '≎',
+ bumpE: '⪮',
+ bumpe: '≏',
+ bumpeq: '≏',
+ cacute: 'ć',
+ cap: '∩',
+ capand: '⩄',
+ capbrcup: '⩉',
+ capcap: '⩋',
+ capcup: '⩇',
+ capdot: '⩀',
+ caps: '∩︀',
+ caret: '⁁',
+ caron: 'ˇ',
+ ccaps: '⩍',
+ ccaron: 'č',
+ ccedil: 'ç',
+ ccirc: 'ĉ',
+ ccups: '⩌',
+ ccupssm: '⩐',
+ cdot: 'ċ',
+ cedil: '¸',
+ cemptyv: '⦲',
+ cent: '¢',
+ centerdot: '·',
+ cfr: '𝔠',
+ chcy: 'ч',
+ check: '✓',
+ checkmark: '✓',
+ chi: 'χ',
+ cir: '○',
+ cirE: '⧃',
+ circ: 'ˆ',
+ circeq: '≗',
+ circlearrowleft: '↺',
+ circlearrowright: '↻',
+ circledR: '®',
+ circledS: 'Ⓢ',
+ circledast: '⊛',
+ circledcirc: '⊚',
+ circleddash: '⊝',
+ cire: '≗',
+ cirfnint: '⨐',
+ cirmid: '⫯',
+ cirscir: '⧂',
+ clubs: '♣',
+ clubsuit: '♣',
+ colon: ':',
+ colone: '≔',
+ coloneq: '≔',
+ comma: ',',
+ commat: '@',
+ comp: '∁',
+ compfn: '∘',
+ complement: '∁',
+ complexes: 'ℂ',
+ cong: '≅',
+ congdot: '⩭',
+ conint: '∮',
+ copf: '𝕔',
+ coprod: '∐',
+ copy: '©',
+ copysr: '℗',
+ crarr: '↵',
+ cross: '✗',
+ cscr: '𝒸',
+ csub: '⫏',
+ csube: '⫑',
+ csup: '⫐',
+ csupe: '⫒',
+ ctdot: '⋯',
+ cudarrl: '⤸',
+ cudarrr: '⤵',
+ cuepr: '⋞',
+ cuesc: '⋟',
+ cularr: '↶',
+ cularrp: '⤽',
+ cup: '∪',
+ cupbrcap: '⩈',
+ cupcap: '⩆',
+ cupcup: '⩊',
+ cupdot: '⊍',
+ cupor: '⩅',
+ cups: '∪︀',
+ curarr: '↷',
+ curarrm: '⤼',
+ curlyeqprec: '⋞',
+ curlyeqsucc: '⋟',
+ curlyvee: '⋎',
+ curlywedge: '⋏',
+ curren: '¤',
+ curvearrowleft: '↶',
+ curvearrowright: '↷',
+ cuvee: '⋎',
+ cuwed: '⋏',
+ cwconint: '∲',
+ cwint: '∱',
+ cylcty: '⌭',
+ dArr: '⇓',
+ dHar: '⥥',
+ dagger: '†',
+ daleth: 'ℸ',
+ darr: '↓',
+ dash: '‐',
+ dashv: '⊣',
+ dbkarow: '⤏',
+ dblac: '˝',
+ dcaron: 'ď',
+ dcy: 'д',
+ dd: 'ⅆ',
+ ddagger: '‡',
+ ddarr: '⇊',
+ ddotseq: '⩷',
+ deg: '°',
+ delta: 'δ',
+ demptyv: '⦱',
+ dfisht: '⥿',
+ dfr: '𝔡',
+ dharl: '⇃',
+ dharr: '⇂',
+ diam: '⋄',
+ diamond: '⋄',
+ diamondsuit: '♦',
+ diams: '♦',
+ die: '¨',
+ digamma: 'ϝ',
+ disin: '⋲',
+ div: '÷',
+ divide: '÷',
+ divideontimes: '⋇',
+ divonx: '⋇',
+ djcy: 'ђ',
+ dlcorn: '⌞',
+ dlcrop: '⌍',
+ dollar: '$',
+ dopf: '𝕕',
+ dot: '˙',
+ doteq: '≐',
+ doteqdot: '≑',
+ dotminus: '∸',
+ dotplus: '∔',
+ dotsquare: '⊡',
+ doublebarwedge: '⌆',
+ downarrow: '↓',
+ downdownarrows: '⇊',
+ downharpoonleft: '⇃',
+ downharpoonright: '⇂',
+ drbkarow: '⤐',
+ drcorn: '⌟',
+ drcrop: '⌌',
+ dscr: '𝒹',
+ dscy: 'ѕ',
+ dsol: '⧶',
+ dstrok: 'đ',
+ dtdot: '⋱',
+ dtri: '▿',
+ dtrif: '▾',
+ duarr: '⇵',
+ duhar: '⥯',
+ dwangle: '⦦',
+ dzcy: 'џ',
+ dzigrarr: '⟿',
+ eDDot: '⩷',
+ eDot: '≑',
+ eacute: 'é',
+ easter: '⩮',
+ ecaron: 'ě',
+ ecir: '≖',
+ ecirc: 'ê',
+ ecolon: '≕',
+ ecy: 'э',
+ edot: 'ė',
+ ee: 'ⅇ',
+ efDot: '≒',
+ efr: '𝔢',
+ eg: '⪚',
+ egrave: 'è',
+ egs: '⪖',
+ egsdot: '⪘',
+ el: '⪙',
+ elinters: '⏧',
+ ell: 'ℓ',
+ els: '⪕',
+ elsdot: '⪗',
+ emacr: 'ē',
+ empty: '∅',
+ emptyset: '∅',
+ emptyv: '∅',
+ emsp13: ' ',
+ emsp14: ' ',
+ emsp: ' ',
+ eng: 'ŋ',
+ ensp: ' ',
+ eogon: 'ę',
+ eopf: '𝕖',
+ epar: '⋕',
+ eparsl: '⧣',
+ eplus: '⩱',
+ epsi: 'ε',
+ epsilon: 'ε',
+ epsiv: 'ϵ',
+ eqcirc: '≖',
+ eqcolon: '≕',
+ eqsim: '≂',
+ eqslantgtr: '⪖',
+ eqslantless: '⪕',
+ equals: '=',
+ equest: '≟',
+ equiv: '≡',
+ equivDD: '⩸',
+ eqvparsl: '⧥',
+ erDot: '≓',
+ erarr: '⥱',
+ escr: 'ℯ',
+ esdot: '≐',
+ esim: '≂',
+ eta: 'η',
+ eth: 'ð',
+ euml: 'ë',
+ euro: '€',
+ excl: '!',
+ exist: '∃',
+ expectation: 'ℰ',
+ exponentiale: 'ⅇ',
+ fallingdotseq: '≒',
+ fcy: 'ф',
+ female: '♀',
+ ffilig: 'ffi',
+ fflig: 'ff',
+ ffllig: 'ffl',
+ ffr: '𝔣',
+ filig: 'fi',
+ fjlig: 'fj',
+ flat: '♭',
+ fllig: 'fl',
+ fltns: '▱',
+ fnof: 'ƒ',
+ fopf: '𝕗',
+ forall: '∀',
+ fork: '⋔',
+ forkv: '⫙',
+ fpartint: '⨍',
+ frac12: '½',
+ frac13: '⅓',
+ frac14: '¼',
+ frac15: '⅕',
+ frac16: '⅙',
+ frac18: '⅛',
+ frac23: '⅔',
+ frac25: '⅖',
+ frac34: '¾',
+ frac35: '⅗',
+ frac38: '⅜',
+ frac45: '⅘',
+ frac56: '⅚',
+ frac58: '⅝',
+ frac78: '⅞',
+ frasl: '⁄',
+ frown: '⌢',
+ fscr: '𝒻',
+ gE: '≧',
+ gEl: '⪌',
+ gacute: 'ǵ',
+ gamma: 'γ',
+ gammad: 'ϝ',
+ gap: '⪆',
+ gbreve: 'ğ',
+ gcirc: 'ĝ',
+ gcy: 'г',
+ gdot: 'ġ',
+ ge: '≥',
+ gel: '⋛',
+ geq: '≥',
+ geqq: '≧',
+ geqslant: '⩾',
+ ges: '⩾',
+ gescc: '⪩',
+ gesdot: '⪀',
+ gesdoto: '⪂',
+ gesdotol: '⪄',
+ gesl: '⋛︀',
+ gesles: '⪔',
+ gfr: '𝔤',
+ gg: '≫',
+ ggg: '⋙',
+ gimel: 'ℷ',
+ gjcy: 'ѓ',
+ gl: '≷',
+ glE: '⪒',
+ gla: '⪥',
+ glj: '⪤',
+ gnE: '≩',
+ gnap: '⪊',
+ gnapprox: '⪊',
+ gne: '⪈',
+ gneq: '⪈',
+ gneqq: '≩',
+ gnsim: '⋧',
+ gopf: '𝕘',
+ grave: '`',
+ gscr: 'ℊ',
+ gsim: '≳',
+ gsime: '⪎',
+ gsiml: '⪐',
+ gt: '>',
+ gtcc: '⪧',
+ gtcir: '⩺',
+ gtdot: '⋗',
+ gtlPar: '⦕',
+ gtquest: '⩼',
+ gtrapprox: '⪆',
+ gtrarr: '⥸',
+ gtrdot: '⋗',
+ gtreqless: '⋛',
+ gtreqqless: '⪌',
+ gtrless: '≷',
+ gtrsim: '≳',
+ gvertneqq: '≩︀',
+ gvnE: '≩︀',
+ hArr: '⇔',
+ hairsp: ' ',
+ half: '½',
+ hamilt: 'ℋ',
+ hardcy: 'ъ',
+ harr: '↔',
+ harrcir: '⥈',
+ harrw: '↭',
+ hbar: 'ℏ',
+ hcirc: 'ĥ',
+ hearts: '♥',
+ heartsuit: '♥',
+ hellip: '…',
+ hercon: '⊹',
+ hfr: '𝔥',
+ hksearow: '⤥',
+ hkswarow: '⤦',
+ hoarr: '⇿',
+ homtht: '∻',
+ hookleftarrow: '↩',
+ hookrightarrow: '↪',
+ hopf: '𝕙',
+ horbar: '―',
+ hscr: '𝒽',
+ hslash: 'ℏ',
+ hstrok: 'ħ',
+ hybull: '⁃',
+ hyphen: '‐',
+ iacute: 'í',
+ ic: '',
+ icirc: 'î',
+ icy: 'и',
+ iecy: 'е',
+ iexcl: '¡',
+ iff: '⇔',
+ ifr: '𝔦',
+ igrave: 'ì',
+ ii: 'ⅈ',
+ iiiint: '⨌',
+ iiint: '∭',
+ iinfin: '⧜',
+ iiota: '℩',
+ ijlig: 'ij',
+ imacr: 'ī',
+ image: 'ℑ',
+ imagline: 'ℐ',
+ imagpart: 'ℑ',
+ imath: 'ı',
+ imof: '⊷',
+ imped: 'Ƶ',
+ in: '∈',
+ incare: '℅',
+ infin: '∞',
+ infintie: '⧝',
+ inodot: 'ı',
+ int: '∫',
+ intcal: '⊺',
+ integers: 'ℤ',
+ intercal: '⊺',
+ intlarhk: '⨗',
+ intprod: '⨼',
+ iocy: 'ё',
+ iogon: 'į',
+ iopf: '𝕚',
+ iota: 'ι',
+ iprod: '⨼',
+ iquest: '¿',
+ iscr: '𝒾',
+ isin: '∈',
+ isinE: '⋹',
+ isindot: '⋵',
+ isins: '⋴',
+ isinsv: '⋳',
+ isinv: '∈',
+ it: '',
+ itilde: 'ĩ',
+ iukcy: 'і',
+ iuml: 'ï',
+ jcirc: 'ĵ',
+ jcy: 'й',
+ jfr: '𝔧',
+ jmath: 'ȷ',
+ jopf: '𝕛',
+ jscr: '𝒿',
+ jsercy: 'ј',
+ jukcy: 'є',
+ kappa: 'κ',
+ kappav: 'ϰ',
+ kcedil: 'ķ',
+ kcy: 'к',
+ kfr: '𝔨',
+ kgreen: 'ĸ',
+ khcy: 'х',
+ kjcy: 'ќ',
+ kopf: '𝕜',
+ kscr: '𝓀',
+ lAarr: '⇚',
+ lArr: '⇐',
+ lAtail: '⤛',
+ lBarr: '⤎',
+ lE: '≦',
+ lEg: '⪋',
+ lHar: '⥢',
+ lacute: 'ĺ',
+ laemptyv: '⦴',
+ lagran: 'ℒ',
+ lambda: 'λ',
+ lang: '⟨',
+ langd: '⦑',
+ langle: '⟨',
+ lap: '⪅',
+ laquo: '«',
+ larr: '←',
+ larrb: '⇤',
+ larrbfs: '⤟',
+ larrfs: '⤝',
+ larrhk: '↩',
+ larrlp: '↫',
+ larrpl: '⤹',
+ larrsim: '⥳',
+ larrtl: '↢',
+ lat: '⪫',
+ latail: '⤙',
+ late: '⪭',
+ lates: '⪭︀',
+ lbarr: '⤌',
+ lbbrk: '❲',
+ lbrace: '{',
+ lbrack: '[',
+ lbrke: '⦋',
+ lbrksld: '⦏',
+ lbrkslu: '⦍',
+ lcaron: 'ľ',
+ lcedil: 'ļ',
+ lceil: '⌈',
+ lcub: '{',
+ lcy: 'л',
+ ldca: '⤶',
+ ldquo: '“',
+ ldquor: '„',
+ ldrdhar: '⥧',
+ ldrushar: '⥋',
+ ldsh: '↲',
+ le: '≤',
+ leftarrow: '←',
+ leftarrowtail: '↢',
+ leftharpoondown: '↽',
+ leftharpoonup: '↼',
+ leftleftarrows: '⇇',
+ leftrightarrow: '↔',
+ leftrightarrows: '⇆',
+ leftrightharpoons: '⇋',
+ leftrightsquigarrow: '↭',
+ leftthreetimes: '⋋',
+ leg: '⋚',
+ leq: '≤',
+ leqq: '≦',
+ leqslant: '⩽',
+ les: '⩽',
+ lescc: '⪨',
+ lesdot: '⩿',
+ lesdoto: '⪁',
+ lesdotor: '⪃',
+ lesg: '⋚︀',
+ lesges: '⪓',
+ lessapprox: '⪅',
+ lessdot: '⋖',
+ lesseqgtr: '⋚',
+ lesseqqgtr: '⪋',
+ lessgtr: '≶',
+ lesssim: '≲',
+ lfisht: '⥼',
+ lfloor: '⌊',
+ lfr: '𝔩',
+ lg: '≶',
+ lgE: '⪑',
+ lhard: '↽',
+ lharu: '↼',
+ lharul: '⥪',
+ lhblk: '▄',
+ ljcy: 'љ',
+ ll: '≪',
+ llarr: '⇇',
+ llcorner: '⌞',
+ llhard: '⥫',
+ lltri: '◺',
+ lmidot: 'ŀ',
+ lmoust: '⎰',
+ lmoustache: '⎰',
+ lnE: '≨',
+ lnap: '⪉',
+ lnapprox: '⪉',
+ lne: '⪇',
+ lneq: '⪇',
+ lneqq: '≨',
+ lnsim: '⋦',
+ loang: '⟬',
+ loarr: '⇽',
+ lobrk: '⟦',
+ longleftarrow: '⟵',
+ longleftrightarrow: '⟷',
+ longmapsto: '⟼',
+ longrightarrow: '⟶',
+ looparrowleft: '↫',
+ looparrowright: '↬',
+ lopar: '⦅',
+ lopf: '𝕝',
+ loplus: '⨭',
+ lotimes: '⨴',
+ lowast: '∗',
+ lowbar: '_',
+ loz: '◊',
+ lozenge: '◊',
+ lozf: '⧫',
+ lpar: '(',
+ lparlt: '⦓',
+ lrarr: '⇆',
+ lrcorner: '⌟',
+ lrhar: '⇋',
+ lrhard: '⥭',
+ lrm: '',
+ lrtri: '⊿',
+ lsaquo: '‹',
+ lscr: '𝓁',
+ lsh: '↰',
+ lsim: '≲',
+ lsime: '⪍',
+ lsimg: '⪏',
+ lsqb: '[',
+ lsquo: '‘',
+ lsquor: '‚',
+ lstrok: 'ł',
+ lt: '<',
+ ltcc: '⪦',
+ ltcir: '⩹',
+ ltdot: '⋖',
+ lthree: '⋋',
+ ltimes: '⋉',
+ ltlarr: '⥶',
+ ltquest: '⩻',
+ ltrPar: '⦖',
+ ltri: '◃',
+ ltrie: '⊴',
+ ltrif: '◂',
+ lurdshar: '⥊',
+ luruhar: '⥦',
+ lvertneqq: '≨︀',
+ lvnE: '≨︀',
+ mDDot: '∺',
+ macr: '¯',
+ male: '♂',
+ malt: '✠',
+ maltese: '✠',
+ map: '↦',
+ mapsto: '↦',
+ mapstodown: '↧',
+ mapstoleft: '↤',
+ mapstoup: '↥',
+ marker: '▮',
+ mcomma: '⨩',
+ mcy: 'м',
+ mdash: '—',
+ measuredangle: '∡',
+ mfr: '𝔪',
+ mho: '℧',
+ micro: 'µ',
+ mid: '∣',
+ midast: '*',
+ midcir: '⫰',
+ middot: '·',
+ minus: '−',
+ minusb: '⊟',
+ minusd: '∸',
+ minusdu: '⨪',
+ mlcp: '⫛',
+ mldr: '…',
+ mnplus: '∓',
+ models: '⊧',
+ mopf: '𝕞',
+ mp: '∓',
+ mscr: '𝓂',
+ mstpos: '∾',
+ mu: 'μ',
+ multimap: '⊸',
+ mumap: '⊸',
+ nGg: '⋙̸',
+ nGt: '≫⃒',
+ nGtv: '≫̸',
+ nLeftarrow: '⇍',
+ nLeftrightarrow: '⇎',
+ nLl: '⋘̸',
+ nLt: '≪⃒',
+ nLtv: '≪̸',
+ nRightarrow: '⇏',
+ nVDash: '⊯',
+ nVdash: '⊮',
+ nabla: '∇',
+ nacute: 'ń',
+ nang: '∠⃒',
+ nap: '≉',
+ napE: '⩰̸',
+ napid: '≋̸',
+ napos: 'ʼn',
+ napprox: '≉',
+ natur: '♮',
+ natural: '♮',
+ naturals: 'ℕ',
+ nbsp: ' ',
+ nbump: '≎̸',
+ nbumpe: '≏̸',
+ ncap: '⩃',
+ ncaron: 'ň',
+ ncedil: 'ņ',
+ ncong: '≇',
+ ncongdot: '⩭̸',
+ ncup: '⩂',
+ ncy: 'н',
+ ndash: '–',
+ ne: '≠',
+ neArr: '⇗',
+ nearhk: '⤤',
+ nearr: '↗',
+ nearrow: '↗',
+ nedot: '≐̸',
+ nequiv: '≢',
+ nesear: '⤨',
+ nesim: '≂̸',
+ nexist: '∄',
+ nexists: '∄',
+ nfr: '𝔫',
+ ngE: '≧̸',
+ nge: '≱',
+ ngeq: '≱',
+ ngeqq: '≧̸',
+ ngeqslant: '⩾̸',
+ nges: '⩾̸',
+ ngsim: '≵',
+ ngt: '≯',
+ ngtr: '≯',
+ nhArr: '⇎',
+ nharr: '↮',
+ nhpar: '⫲',
+ ni: '∋',
+ nis: '⋼',
+ nisd: '⋺',
+ niv: '∋',
+ njcy: 'њ',
+ nlArr: '⇍',
+ nlE: '≦̸',
+ nlarr: '↚',
+ nldr: '‥',
+ nle: '≰',
+ nleftarrow: '↚',
+ nleftrightarrow: '↮',
+ nleq: '≰',
+ nleqq: '≦̸',
+ nleqslant: '⩽̸',
+ nles: '⩽̸',
+ nless: '≮',
+ nlsim: '≴',
+ nlt: '≮',
+ nltri: '⋪',
+ nltrie: '⋬',
+ nmid: '∤',
+ nopf: '𝕟',
+ not: '¬',
+ notin: '∉',
+ notinE: '⋹̸',
+ notindot: '⋵̸',
+ notinva: '∉',
+ notinvb: '⋷',
+ notinvc: '⋶',
+ notni: '∌',
+ notniva: '∌',
+ notnivb: '⋾',
+ notnivc: '⋽',
+ npar: '∦',
+ nparallel: '∦',
+ nparsl: '⫽⃥',
+ npart: '∂̸',
+ npolint: '⨔',
+ npr: '⊀',
+ nprcue: '⋠',
+ npre: '⪯̸',
+ nprec: '⊀',
+ npreceq: '⪯̸',
+ nrArr: '⇏',
+ nrarr: '↛',
+ nrarrc: '⤳̸',
+ nrarrw: '↝̸',
+ nrightarrow: '↛',
+ nrtri: '⋫',
+ nrtrie: '⋭',
+ nsc: '⊁',
+ nsccue: '⋡',
+ nsce: '⪰̸',
+ nscr: '𝓃',
+ nshortmid: '∤',
+ nshortparallel: '∦',
+ nsim: '≁',
+ nsime: '≄',
+ nsimeq: '≄',
+ nsmid: '∤',
+ nspar: '∦',
+ nsqsube: '⋢',
+ nsqsupe: '⋣',
+ nsub: '⊄',
+ nsubE: '⫅̸',
+ nsube: '⊈',
+ nsubset: '⊂⃒',
+ nsubseteq: '⊈',
+ nsubseteqq: '⫅̸',
+ nsucc: '⊁',
+ nsucceq: '⪰̸',
+ nsup: '⊅',
+ nsupE: '⫆̸',
+ nsupe: '⊉',
+ nsupset: '⊃⃒',
+ nsupseteq: '⊉',
+ nsupseteqq: '⫆̸',
+ ntgl: '≹',
+ ntilde: 'ñ',
+ ntlg: '≸',
+ ntriangleleft: '⋪',
+ ntrianglelefteq: '⋬',
+ ntriangleright: '⋫',
+ ntrianglerighteq: '⋭',
+ nu: 'ν',
+ num: '#',
+ numero: '№',
+ numsp: ' ',
+ nvDash: '⊭',
+ nvHarr: '⤄',
+ nvap: '≍⃒',
+ nvdash: '⊬',
+ nvge: '≥⃒',
+ nvgt: '>⃒',
+ nvinfin: '⧞',
+ nvlArr: '⤂',
+ nvle: '≤⃒',
+ nvlt: '<⃒',
+ nvltrie: '⊴⃒',
+ nvrArr: '⤃',
+ nvrtrie: '⊵⃒',
+ nvsim: '∼⃒',
+ nwArr: '⇖',
+ nwarhk: '⤣',
+ nwarr: '↖',
+ nwarrow: '↖',
+ nwnear: '⤧',
+ oS: 'Ⓢ',
+ oacute: 'ó',
+ oast: '⊛',
+ ocir: '⊚',
+ ocirc: 'ô',
+ ocy: 'о',
+ odash: '⊝',
+ odblac: 'ő',
+ odiv: '⨸',
+ odot: '⊙',
+ odsold: '⦼',
+ oelig: 'œ',
+ ofcir: '⦿',
+ ofr: '𝔬',
+ ogon: '˛',
+ ograve: 'ò',
+ ogt: '⧁',
+ ohbar: '⦵',
+ ohm: 'Ω',
+ oint: '∮',
+ olarr: '↺',
+ olcir: '⦾',
+ olcross: '⦻',
+ oline: '‾',
+ olt: '⧀',
+ omacr: 'ō',
+ omega: 'ω',
+ omicron: 'ο',
+ omid: '⦶',
+ ominus: '⊖',
+ oopf: '𝕠',
+ opar: '⦷',
+ operp: '⦹',
+ oplus: '⊕',
+ or: '∨',
+ orarr: '↻',
+ ord: '⩝',
+ order: 'ℴ',
+ orderof: 'ℴ',
+ ordf: 'ª',
+ ordm: 'º',
+ origof: '⊶',
+ oror: '⩖',
+ orslope: '⩗',
+ orv: '⩛',
+ oscr: 'ℴ',
+ oslash: 'ø',
+ osol: '⊘',
+ otilde: 'õ',
+ otimes: '⊗',
+ otimesas: '⨶',
+ ouml: 'ö',
+ ovbar: '⌽',
+ par: '∥',
+ para: '¶',
+ parallel: '∥',
+ parsim: '⫳',
+ parsl: '⫽',
+ part: '∂',
+ pcy: 'п',
+ percnt: '%',
+ period: '.',
+ permil: '‰',
+ perp: '⊥',
+ pertenk: '‱',
+ pfr: '𝔭',
+ phi: 'φ',
+ phiv: 'ϕ',
+ phmmat: 'ℳ',
+ phone: '☎',
+ pi: 'π',
+ pitchfork: '⋔',
+ piv: 'ϖ',
+ planck: 'ℏ',
+ planckh: 'ℎ',
+ plankv: 'ℏ',
+ plus: '+',
+ plusacir: '⨣',
+ plusb: '⊞',
+ pluscir: '⨢',
+ plusdo: '∔',
+ plusdu: '⨥',
+ pluse: '⩲',
+ plusmn: '±',
+ plussim: '⨦',
+ plustwo: '⨧',
+ pm: '±',
+ pointint: '⨕',
+ popf: '𝕡',
+ pound: '£',
+ pr: '≺',
+ prE: '⪳',
+ prap: '⪷',
+ prcue: '≼',
+ pre: '⪯',
+ prec: '≺',
+ precapprox: '⪷',
+ preccurlyeq: '≼',
+ preceq: '⪯',
+ precnapprox: '⪹',
+ precneqq: '⪵',
+ precnsim: '⋨',
+ precsim: '≾',
+ prime: '′',
+ primes: 'ℙ',
+ prnE: '⪵',
+ prnap: '⪹',
+ prnsim: '⋨',
+ prod: '∏',
+ profalar: '⌮',
+ profline: '⌒',
+ profsurf: '⌓',
+ prop: '∝',
+ propto: '∝',
+ prsim: '≾',
+ prurel: '⊰',
+ pscr: '𝓅',
+ psi: 'ψ',
+ puncsp: ' ',
+ qfr: '𝔮',
+ qint: '⨌',
+ qopf: '𝕢',
+ qprime: '⁗',
+ qscr: '𝓆',
+ quaternions: 'ℍ',
+ quatint: '⨖',
+ quest: '?',
+ questeq: '≟',
+ quot: '"',
+ rAarr: '⇛',
+ rArr: '⇒',
+ rAtail: '⤜',
+ rBarr: '⤏',
+ rHar: '⥤',
+ race: '∽̱',
+ racute: 'ŕ',
+ radic: '√',
+ raemptyv: '⦳',
+ rang: '⟩',
+ rangd: '⦒',
+ range: '⦥',
+ rangle: '⟩',
+ raquo: '»',
+ rarr: '→',
+ rarrap: '⥵',
+ rarrb: '⇥',
+ rarrbfs: '⤠',
+ rarrc: '⤳',
+ rarrfs: '⤞',
+ rarrhk: '↪',
+ rarrlp: '↬',
+ rarrpl: '⥅',
+ rarrsim: '⥴',
+ rarrtl: '↣',
+ rarrw: '↝',
+ ratail: '⤚',
+ ratio: '∶',
+ rationals: 'ℚ',
+ rbarr: '⤍',
+ rbbrk: '❳',
+ rbrace: '}',
+ rbrack: ']',
+ rbrke: '⦌',
+ rbrksld: '⦎',
+ rbrkslu: '⦐',
+ rcaron: 'ř',
+ rcedil: 'ŗ',
+ rceil: '⌉',
+ rcub: '}',
+ rcy: 'р',
+ rdca: '⤷',
+ rdldhar: '⥩',
+ rdquo: '”',
+ rdquor: '”',
+ rdsh: '↳',
+ real: 'ℜ',
+ realine: 'ℛ',
+ realpart: 'ℜ',
+ reals: 'ℝ',
+ rect: '▭',
+ reg: '®',
+ rfisht: '⥽',
+ rfloor: '⌋',
+ rfr: '𝔯',
+ rhard: '⇁',
+ rharu: '⇀',
+ rharul: '⥬',
+ rho: 'ρ',
+ rhov: 'ϱ',
+ rightarrow: '→',
+ rightarrowtail: '↣',
+ rightharpoondown: '⇁',
+ rightharpoonup: '⇀',
+ rightleftarrows: '⇄',
+ rightleftharpoons: '⇌',
+ rightrightarrows: '⇉',
+ rightsquigarrow: '↝',
+ rightthreetimes: '⋌',
+ ring: '˚',
+ risingdotseq: '≓',
+ rlarr: '⇄',
+ rlhar: '⇌',
+ rlm: '',
+ rmoust: '⎱',
+ rmoustache: '⎱',
+ rnmid: '⫮',
+ roang: '⟭',
+ roarr: '⇾',
+ robrk: '⟧',
+ ropar: '⦆',
+ ropf: '𝕣',
+ roplus: '⨮',
+ rotimes: '⨵',
+ rpar: ')',
+ rpargt: '⦔',
+ rppolint: '⨒',
+ rrarr: '⇉',
+ rsaquo: '›',
+ rscr: '𝓇',
+ rsh: '↱',
+ rsqb: ']',
+ rsquo: '’',
+ rsquor: '’',
+ rthree: '⋌',
+ rtimes: '⋊',
+ rtri: '▹',
+ rtrie: '⊵',
+ rtrif: '▸',
+ rtriltri: '⧎',
+ ruluhar: '⥨',
+ rx: '℞',
+ sacute: 'ś',
+ sbquo: '‚',
+ sc: '≻',
+ scE: '⪴',
+ scap: '⪸',
+ scaron: 'š',
+ sccue: '≽',
+ sce: '⪰',
+ scedil: 'ş',
+ scirc: 'ŝ',
+ scnE: '⪶',
+ scnap: '⪺',
+ scnsim: '⋩',
+ scpolint: '⨓',
+ scsim: '≿',
+ scy: 'с',
+ sdot: '⋅',
+ sdotb: '⊡',
+ sdote: '⩦',
+ seArr: '⇘',
+ searhk: '⤥',
+ searr: '↘',
+ searrow: '↘',
+ sect: '§',
+ semi: ';',
+ seswar: '⤩',
+ setminus: '∖',
+ setmn: '∖',
+ sext: '✶',
+ sfr: '𝔰',
+ sfrown: '⌢',
+ sharp: '♯',
+ shchcy: 'щ',
+ shcy: 'ш',
+ shortmid: '∣',
+ shortparallel: '∥',
+ shy: '',
+ sigma: 'σ',
+ sigmaf: 'ς',
+ sigmav: 'ς',
+ sim: '∼',
+ simdot: '⩪',
+ sime: '≃',
+ simeq: '≃',
+ simg: '⪞',
+ simgE: '⪠',
+ siml: '⪝',
+ simlE: '⪟',
+ simne: '≆',
+ simplus: '⨤',
+ simrarr: '⥲',
+ slarr: '←',
+ smallsetminus: '∖',
+ smashp: '⨳',
+ smeparsl: '⧤',
+ smid: '∣',
+ smile: '⌣',
+ smt: '⪪',
+ smte: '⪬',
+ smtes: '⪬︀',
+ softcy: 'ь',
+ sol: '/',
+ solb: '⧄',
+ solbar: '⌿',
+ sopf: '𝕤',
+ spades: '♠',
+ spadesuit: '♠',
+ spar: '∥',
+ sqcap: '⊓',
+ sqcaps: '⊓︀',
+ sqcup: '⊔',
+ sqcups: '⊔︀',
+ sqsub: '⊏',
+ sqsube: '⊑',
+ sqsubset: '⊏',
+ sqsubseteq: '⊑',
+ sqsup: '⊐',
+ sqsupe: '⊒',
+ sqsupset: '⊐',
+ sqsupseteq: '⊒',
+ squ: '□',
+ square: '□',
+ squarf: '▪',
+ squf: '▪',
+ srarr: '→',
+ sscr: '𝓈',
+ ssetmn: '∖',
+ ssmile: '⌣',
+ sstarf: '⋆',
+ star: '☆',
+ starf: '★',
+ straightepsilon: 'ϵ',
+ straightphi: 'ϕ',
+ strns: '¯',
+ sub: '⊂',
+ subE: '⫅',
+ subdot: '⪽',
+ sube: '⊆',
+ subedot: '⫃',
+ submult: '⫁',
+ subnE: '⫋',
+ subne: '⊊',
+ subplus: '⪿',
+ subrarr: '⥹',
+ subset: '⊂',
+ subseteq: '⊆',
+ subseteqq: '⫅',
+ subsetneq: '⊊',
+ subsetneqq: '⫋',
+ subsim: '⫇',
+ subsub: '⫕',
+ subsup: '⫓',
+ succ: '≻',
+ succapprox: '⪸',
+ succcurlyeq: '≽',
+ succeq: '⪰',
+ succnapprox: '⪺',
+ succneqq: '⪶',
+ succnsim: '⋩',
+ succsim: '≿',
+ sum: '∑',
+ sung: '♪',
+ sup1: '¹',
+ sup2: '²',
+ sup3: '³',
+ sup: '⊃',
+ supE: '⫆',
+ supdot: '⪾',
+ supdsub: '⫘',
+ supe: '⊇',
+ supedot: '⫄',
+ suphsol: '⟉',
+ suphsub: '⫗',
+ suplarr: '⥻',
+ supmult: '⫂',
+ supnE: '⫌',
+ supne: '⊋',
+ supplus: '⫀',
+ supset: '⊃',
+ supseteq: '⊇',
+ supseteqq: '⫆',
+ supsetneq: '⊋',
+ supsetneqq: '⫌',
+ supsim: '⫈',
+ supsub: '⫔',
+ supsup: '⫖',
+ swArr: '⇙',
+ swarhk: '⤦',
+ swarr: '↙',
+ swarrow: '↙',
+ swnwar: '⤪',
+ szlig: 'ß',
+ target: '⌖',
+ tau: 'τ',
+ tbrk: '⎴',
+ tcaron: 'ť',
+ tcedil: 'ţ',
+ tcy: 'т',
+ tdot: '⃛',
+ telrec: '⌕',
+ tfr: '𝔱',
+ there4: '∴',
+ therefore: '∴',
+ theta: 'θ',
+ thetasym: 'ϑ',
+ thetav: 'ϑ',
+ thickapprox: '≈',
+ thicksim: '∼',
+ thinsp: ' ',
+ thkap: '≈',
+ thksim: '∼',
+ thorn: 'þ',
+ tilde: '˜',
+ times: '×',
+ timesb: '⊠',
+ timesbar: '⨱',
+ timesd: '⨰',
+ tint: '∭',
+ toea: '⤨',
+ top: '⊤',
+ topbot: '⌶',
+ topcir: '⫱',
+ topf: '𝕥',
+ topfork: '⫚',
+ tosa: '⤩',
+ tprime: '‴',
+ trade: '™',
+ triangle: '▵',
+ triangledown: '▿',
+ triangleleft: '◃',
+ trianglelefteq: '⊴',
+ triangleq: '≜',
+ triangleright: '▹',
+ trianglerighteq: '⊵',
+ tridot: '◬',
+ trie: '≜',
+ triminus: '⨺',
+ triplus: '⨹',
+ trisb: '⧍',
+ tritime: '⨻',
+ trpezium: '⏢',
+ tscr: '𝓉',
+ tscy: 'ц',
+ tshcy: 'ћ',
+ tstrok: 'ŧ',
+ twixt: '≬',
+ twoheadleftarrow: '↞',
+ twoheadrightarrow: '↠',
+ uArr: '⇑',
+ uHar: '⥣',
+ uacute: 'ú',
+ uarr: '↑',
+ ubrcy: 'ў',
+ ubreve: 'ŭ',
+ ucirc: 'û',
+ ucy: 'у',
+ udarr: '⇅',
+ udblac: 'ű',
+ udhar: '⥮',
+ ufisht: '⥾',
+ ufr: '𝔲',
+ ugrave: 'ù',
+ uharl: '↿',
+ uharr: '↾',
+ uhblk: '▀',
+ ulcorn: '⌜',
+ ulcorner: '⌜',
+ ulcrop: '⌏',
+ ultri: '◸',
+ umacr: 'ū',
+ uml: '¨',
+ uogon: 'ų',
+ uopf: '𝕦',
+ uparrow: '↑',
+ updownarrow: '↕',
+ upharpoonleft: '↿',
+ upharpoonright: '↾',
+ uplus: '⊎',
+ upsi: 'υ',
+ upsih: 'ϒ',
+ upsilon: 'υ',
+ upuparrows: '⇈',
+ urcorn: '⌝',
+ urcorner: '⌝',
+ urcrop: '⌎',
+ uring: 'ů',
+ urtri: '◹',
+ uscr: '𝓊',
+ utdot: '⋰',
+ utilde: 'ũ',
+ utri: '▵',
+ utrif: '▴',
+ uuarr: '⇈',
+ uuml: 'ü',
+ uwangle: '⦧',
+ vArr: '⇕',
+ vBar: '⫨',
+ vBarv: '⫩',
+ vDash: '⊨',
+ vangrt: '⦜',
+ varepsilon: 'ϵ',
+ varkappa: 'ϰ',
+ varnothing: '∅',
+ varphi: 'ϕ',
+ varpi: 'ϖ',
+ varpropto: '∝',
+ varr: '↕',
+ varrho: 'ϱ',
+ varsigma: 'ς',
+ varsubsetneq: '⊊︀',
+ varsubsetneqq: '⫋︀',
+ varsupsetneq: '⊋︀',
+ varsupsetneqq: '⫌︀',
+ vartheta: 'ϑ',
+ vartriangleleft: '⊲',
+ vartriangleright: '⊳',
+ vcy: 'в',
+ vdash: '⊢',
+ vee: '∨',
+ veebar: '⊻',
+ veeeq: '≚',
+ vellip: '⋮',
+ verbar: '|',
+ vert: '|',
+ vfr: '𝔳',
+ vltri: '⊲',
+ vnsub: '⊂⃒',
+ vnsup: '⊃⃒',
+ vopf: '𝕧',
+ vprop: '∝',
+ vrtri: '⊳',
+ vscr: '𝓋',
+ vsubnE: '⫋︀',
+ vsubne: '⊊︀',
+ vsupnE: '⫌︀',
+ vsupne: '⊋︀',
+ vzigzag: '⦚',
+ wcirc: 'ŵ',
+ wedbar: '⩟',
+ wedge: '∧',
+ wedgeq: '≙',
+ weierp: '℘',
+ wfr: '𝔴',
+ wopf: '𝕨',
+ wp: '℘',
+ wr: '≀',
+ wreath: '≀',
+ wscr: '𝓌',
+ xcap: '⋂',
+ xcirc: '◯',
+ xcup: '⋃',
+ xdtri: '▽',
+ xfr: '𝔵',
+ xhArr: '⟺',
+ xharr: '⟷',
+ xi: 'ξ',
+ xlArr: '⟸',
+ xlarr: '⟵',
+ xmap: '⟼',
+ xnis: '⋻',
+ xodot: '⨀',
+ xopf: '𝕩',
+ xoplus: '⨁',
+ xotime: '⨂',
+ xrArr: '⟹',
+ xrarr: '⟶',
+ xscr: '𝓍',
+ xsqcup: '⨆',
+ xuplus: '⨄',
+ xutri: '△',
+ xvee: '⋁',
+ xwedge: '⋀',
+ yacute: 'ý',
+ yacy: 'я',
+ ycirc: 'ŷ',
+ ycy: 'ы',
+ yen: '¥',
+ yfr: '𝔶',
+ yicy: 'ї',
+ yopf: '𝕪',
+ yscr: '𝓎',
+ yucy: 'ю',
+ yuml: 'ÿ',
+ zacute: 'ź',
+ zcaron: 'ž',
+ zcy: 'з',
+ zdot: 'ż',
+ zeetrf: 'ℨ',
+ zeta: 'ζ',
+ zfr: '𝔷',
+ zhcy: 'ж',
+ zigrarr: '⇝',
+ zopf: '𝕫',
+ zscr: '𝓏',
+ zwj: '',
+ zwnj: ''
+}
+
+;// CONCATENATED MODULE: ./node_modules/decode-named-character-reference/index.js
+
+
+const own = {}.hasOwnProperty
+
+/**
+ * Decode a single character reference (without the `&` or `;`).
+ * You probably only need this when you’re building parsers yourself that follow
+ * different rules compared to HTML.
+ * This is optimized to be tiny in browsers.
+ *
+ * @param {string} value
+ * `notin` (named), `#123` (deci), `#x123` (hexa).
+ * @returns {string|false}
+ * Decoded reference.
+ */
+function decodeNamedCharacterReference(value) {
+ return own.call(characterEntities, value) ? characterEntities[value] : false
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/character-reference.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const characterReference = {
+ name: 'characterReference',
+ tokenize: tokenizeCharacterReference
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeCharacterReference(effects, ok, nok) {
+ const self = this
+ let size = 0
+ /** @type {number} */
+ let max
+ /** @type {(code: Code) => boolean} */
+ let test
+ return start
+
+ /**
+ * Start of character reference.
+ *
+ * ```markdown
+ * > | a&b
+ * ^
+ * > | a{b
+ * ^
+ * > | a b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('characterReference')
+ effects.enter('characterReferenceMarker')
+ effects.consume(code)
+ effects.exit('characterReferenceMarker')
+ return open
+ }
+
+ /**
+ * After `&`, at `#` for numeric references or alphanumeric for named
+ * references.
+ *
+ * ```markdown
+ * > | a&b
+ * ^
+ * > | a{b
+ * ^
+ * > | a b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function open(code) {
+ if (code === 35) {
+ effects.enter('characterReferenceMarkerNumeric')
+ effects.consume(code)
+ effects.exit('characterReferenceMarkerNumeric')
+ return numeric
+ }
+ effects.enter('characterReferenceValue')
+ max = 31
+ test = asciiAlphanumeric
+ return value(code)
+ }
+
+ /**
+ * After `#`, at `x` for hexadecimals or digit for decimals.
+ *
+ * ```markdown
+ * > | a{b
+ * ^
+ * > | a b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function numeric(code) {
+ if (code === 88 || code === 120) {
+ effects.enter('characterReferenceMarkerHexadecimal')
+ effects.consume(code)
+ effects.exit('characterReferenceMarkerHexadecimal')
+ effects.enter('characterReferenceValue')
+ max = 6
+ test = asciiHexDigit
+ return value
+ }
+ effects.enter('characterReferenceValue')
+ max = 7
+ test = asciiDigit
+ return value(code)
+ }
+
+ /**
+ * After markers (``, ``, or `&`), in value, before `;`.
+ *
+ * The character reference kind defines what and how many characters are
+ * allowed.
+ *
+ * ```markdown
+ * > | a&b
+ * ^^^
+ * > | a{b
+ * ^^^
+ * > | a b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function value(code) {
+ if (code === 59 && size) {
+ const token = effects.exit('characterReferenceValue')
+ if (
+ test === asciiAlphanumeric &&
+ !decodeNamedCharacterReference(self.sliceSerialize(token))
+ ) {
+ return nok(code)
+ }
+
+ // To do: `markdown-rs` uses a different name:
+ // `CharacterReferenceMarkerSemi`.
+ effects.enter('characterReferenceMarker')
+ effects.consume(code)
+ effects.exit('characterReferenceMarker')
+ effects.exit('characterReference')
+ return ok
+ }
+ if (test(code) && size++ < max) {
+ effects.consume(code)
+ return value
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/character-escape.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+/** @type {Construct} */
+const characterEscape = {
+ name: 'characterEscape',
+ tokenize: tokenizeCharacterEscape
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeCharacterEscape(effects, ok, nok) {
+ return start
+
+ /**
+ * Start of character escape.
+ *
+ * ```markdown
+ * > | a\*b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('characterEscape')
+ effects.enter('escapeMarker')
+ effects.consume(code)
+ effects.exit('escapeMarker')
+ return inside
+ }
+
+ /**
+ * After `\`, at punctuation.
+ *
+ * ```markdown
+ * > | a\*b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function inside(code) {
+ // ASCII punctuation.
+ if (asciiPunctuation(code)) {
+ effects.enter('characterEscapeValue')
+ effects.consume(code)
+ effects.exit('characterEscapeValue')
+ effects.exit('characterEscape')
+ return ok
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/line-ending.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const lineEnding = {
+ name: 'lineEnding',
+ tokenize: tokenizeLineEnding
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeLineEnding(effects, ok) {
+ return start
+
+ /** @type {State} */
+ function start(code) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return factorySpace(effects, ok, 'linePrefix')
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/label-end.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Event} Event
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').Token} Token
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+
+
+
+
+
+/** @type {Construct} */
+const labelEnd = {
+ name: 'labelEnd',
+ tokenize: tokenizeLabelEnd,
+ resolveTo: resolveToLabelEnd,
+ resolveAll: resolveAllLabelEnd
+}
+
+/** @type {Construct} */
+const resourceConstruct = {
+ tokenize: tokenizeResource
+}
+/** @type {Construct} */
+const referenceFullConstruct = {
+ tokenize: tokenizeReferenceFull
+}
+/** @type {Construct} */
+const referenceCollapsedConstruct = {
+ tokenize: tokenizeReferenceCollapsed
+}
+
+/** @type {Resolver} */
+function resolveAllLabelEnd(events) {
+ let index = -1
+ while (++index < events.length) {
+ const token = events[index][1]
+ if (
+ token.type === 'labelImage' ||
+ token.type === 'labelLink' ||
+ token.type === 'labelEnd'
+ ) {
+ // Remove the marker.
+ events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)
+ token.type = 'data'
+ index++
+ }
+ }
+ return events
+}
+
+/** @type {Resolver} */
+function resolveToLabelEnd(events, context) {
+ let index = events.length
+ let offset = 0
+ /** @type {Token} */
+ let token
+ /** @type {number | undefined} */
+ let open
+ /** @type {number | undefined} */
+ let close
+ /** @type {Array} */
+ let media
+
+ // Find an opening.
+ while (index--) {
+ token = events[index][1]
+ if (open) {
+ // If we see another link, or inactive link label, we’ve been here before.
+ if (
+ token.type === 'link' ||
+ (token.type === 'labelLink' && token._inactive)
+ ) {
+ break
+ }
+
+ // Mark other link openings as inactive, as we can’t have links in
+ // links.
+ if (events[index][0] === 'enter' && token.type === 'labelLink') {
+ token._inactive = true
+ }
+ } else if (close) {
+ if (
+ events[index][0] === 'enter' &&
+ (token.type === 'labelImage' || token.type === 'labelLink') &&
+ !token._balanced
+ ) {
+ open = index
+ if (token.type !== 'labelLink') {
+ offset = 2
+ break
+ }
+ }
+ } else if (token.type === 'labelEnd') {
+ close = index
+ }
+ }
+ const group = {
+ type: events[open][1].type === 'labelLink' ? 'link' : 'image',
+ start: Object.assign({}, events[open][1].start),
+ end: Object.assign({}, events[events.length - 1][1].end)
+ }
+ const label = {
+ type: 'label',
+ start: Object.assign({}, events[open][1].start),
+ end: Object.assign({}, events[close][1].end)
+ }
+ const text = {
+ type: 'labelText',
+ start: Object.assign({}, events[open + offset + 2][1].end),
+ end: Object.assign({}, events[close - 2][1].start)
+ }
+ media = [
+ ['enter', group, context],
+ ['enter', label, context]
+ ]
+
+ // Opening marker.
+ media = push(media, events.slice(open + 1, open + offset + 3))
+
+ // Text open.
+ media = push(media, [['enter', text, context]])
+
+ // Always populated by defaults.
+
+ // Between.
+ media = push(
+ media,
+ resolveAll(
+ context.parser.constructs.insideSpan.null,
+ events.slice(open + offset + 4, close - 3),
+ context
+ )
+ )
+
+ // Text close, marker close, label close.
+ media = push(media, [
+ ['exit', text, context],
+ events[close - 2],
+ events[close - 1],
+ ['exit', label, context]
+ ])
+
+ // Reference, resource, or so.
+ media = push(media, events.slice(close + 1))
+
+ // Media close.
+ media = push(media, [['exit', group, context]])
+ splice(events, open, events.length, media)
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeLabelEnd(effects, ok, nok) {
+ const self = this
+ let index = self.events.length
+ /** @type {Token} */
+ let labelStart
+ /** @type {boolean} */
+ let defined
+
+ // Find an opening.
+ while (index--) {
+ if (
+ (self.events[index][1].type === 'labelImage' ||
+ self.events[index][1].type === 'labelLink') &&
+ !self.events[index][1]._balanced
+ ) {
+ labelStart = self.events[index][1]
+ break
+ }
+ }
+ return start
+
+ /**
+ * Start of label end.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * > | [a][b] c
+ * ^
+ * > | [a][] b
+ * ^
+ * > | [a] b
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ // If there is not an okay opening.
+ if (!labelStart) {
+ return nok(code)
+ }
+
+ // If the corresponding label (link) start is marked as inactive,
+ // it means we’d be wrapping a link, like this:
+ //
+ // ```markdown
+ // > | a [b [c](d) e](f) g.
+ // ^
+ // ```
+ //
+ // We can’t have that, so it’s just balanced brackets.
+ if (labelStart._inactive) {
+ return labelEndNok(code)
+ }
+ defined = self.parser.defined.includes(
+ normalizeIdentifier(
+ self.sliceSerialize({
+ start: labelStart.end,
+ end: self.now()
+ })
+ )
+ )
+ effects.enter('labelEnd')
+ effects.enter('labelMarker')
+ effects.consume(code)
+ effects.exit('labelMarker')
+ effects.exit('labelEnd')
+ return after
+ }
+
+ /**
+ * After `]`.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * > | [a][b] c
+ * ^
+ * > | [a][] b
+ * ^
+ * > | [a] b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ // Note: `markdown-rs` also parses GFM footnotes here, which for us is in
+ // an extension.
+
+ // Resource (`[asd](fgh)`)?
+ if (code === 40) {
+ return effects.attempt(
+ resourceConstruct,
+ labelEndOk,
+ defined ? labelEndOk : labelEndNok
+ )(code)
+ }
+
+ // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
+ if (code === 91) {
+ return effects.attempt(
+ referenceFullConstruct,
+ labelEndOk,
+ defined ? referenceNotFull : labelEndNok
+ )(code)
+ }
+
+ // Shortcut (`[asd]`) reference?
+ return defined ? labelEndOk(code) : labelEndNok(code)
+ }
+
+ /**
+ * After `]`, at `[`, but not at a full reference.
+ *
+ * > 👉 **Note**: we only get here if the label is defined.
+ *
+ * ```markdown
+ * > | [a][] b
+ * ^
+ * > | [a] b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceNotFull(code) {
+ return effects.attempt(
+ referenceCollapsedConstruct,
+ labelEndOk,
+ labelEndNok
+ )(code)
+ }
+
+ /**
+ * Done, we found something.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * > | [a][b] c
+ * ^
+ * > | [a][] b
+ * ^
+ * > | [a] b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function labelEndOk(code) {
+ // Note: `markdown-rs` does a bunch of stuff here.
+ return ok(code)
+ }
+
+ /**
+ * Done, it’s nothing.
+ *
+ * There was an okay opening, but we didn’t match anything.
+ *
+ * ```markdown
+ * > | [a](b c
+ * ^
+ * > | [a][b c
+ * ^
+ * > | [a] b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function labelEndNok(code) {
+ labelStart._balanced = true
+ return nok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeResource(effects, ok, nok) {
+ return resourceStart
+
+ /**
+ * At a resource.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceStart(code) {
+ effects.enter('resource')
+ effects.enter('resourceMarker')
+ effects.consume(code)
+ effects.exit('resourceMarker')
+ return resourceBefore
+ }
+
+ /**
+ * In resource, after `(`, at optional whitespace.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceBefore(code) {
+ return markdownLineEndingOrSpace(code)
+ ? factoryWhitespace(effects, resourceOpen)(code)
+ : resourceOpen(code)
+ }
+
+ /**
+ * In resource, after optional whitespace, at `)` or a destination.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceOpen(code) {
+ if (code === 41) {
+ return resourceEnd(code)
+ }
+ return factoryDestination(
+ effects,
+ resourceDestinationAfter,
+ resourceDestinationMissing,
+ 'resourceDestination',
+ 'resourceDestinationLiteral',
+ 'resourceDestinationLiteralMarker',
+ 'resourceDestinationRaw',
+ 'resourceDestinationString',
+ 32
+ )(code)
+ }
+
+ /**
+ * In resource, after destination, at optional whitespace.
+ *
+ * ```markdown
+ * > | [a](b) c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceDestinationAfter(code) {
+ return markdownLineEndingOrSpace(code)
+ ? factoryWhitespace(effects, resourceBetween)(code)
+ : resourceEnd(code)
+ }
+
+ /**
+ * At invalid destination.
+ *
+ * ```markdown
+ * > | [a](<<) b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceDestinationMissing(code) {
+ return nok(code)
+ }
+
+ /**
+ * In resource, after destination and whitespace, at `(` or title.
+ *
+ * ```markdown
+ * > | [a](b ) c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceBetween(code) {
+ if (code === 34 || code === 39 || code === 40) {
+ return factoryTitle(
+ effects,
+ resourceTitleAfter,
+ nok,
+ 'resourceTitle',
+ 'resourceTitleMarker',
+ 'resourceTitleString'
+ )(code)
+ }
+ return resourceEnd(code)
+ }
+
+ /**
+ * In resource, after title, at optional whitespace.
+ *
+ * ```markdown
+ * > | [a](b "c") d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceTitleAfter(code) {
+ return markdownLineEndingOrSpace(code)
+ ? factoryWhitespace(effects, resourceEnd)(code)
+ : resourceEnd(code)
+ }
+
+ /**
+ * In resource, at `)`.
+ *
+ * ```markdown
+ * > | [a](b) d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function resourceEnd(code) {
+ if (code === 41) {
+ effects.enter('resourceMarker')
+ effects.consume(code)
+ effects.exit('resourceMarker')
+ effects.exit('resource')
+ return ok
+ }
+ return nok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeReferenceFull(effects, ok, nok) {
+ const self = this
+ return referenceFull
+
+ /**
+ * In a reference (full), at the `[`.
+ *
+ * ```markdown
+ * > | [a][b] d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceFull(code) {
+ return factoryLabel.call(
+ self,
+ effects,
+ referenceFullAfter,
+ referenceFullMissing,
+ 'reference',
+ 'referenceMarker',
+ 'referenceString'
+ )(code)
+ }
+
+ /**
+ * In a reference (full), after `]`.
+ *
+ * ```markdown
+ * > | [a][b] d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceFullAfter(code) {
+ return self.parser.defined.includes(
+ normalizeIdentifier(
+ self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
+ )
+ )
+ ? ok(code)
+ : nok(code)
+ }
+
+ /**
+ * In reference (full) that was missing.
+ *
+ * ```markdown
+ * > | [a][b d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceFullMissing(code) {
+ return nok(code)
+ }
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeReferenceCollapsed(effects, ok, nok) {
+ return referenceCollapsedStart
+
+ /**
+ * In reference (collapsed), at `[`.
+ *
+ * > 👉 **Note**: we only get here if the label is defined.
+ *
+ * ```markdown
+ * > | [a][] d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceCollapsedStart(code) {
+ // We only attempt a collapsed label if there’s a `[`.
+
+ effects.enter('reference')
+ effects.enter('referenceMarker')
+ effects.consume(code)
+ effects.exit('referenceMarker')
+ return referenceCollapsedOpen
+ }
+
+ /**
+ * In reference (collapsed), at `]`.
+ *
+ * > 👉 **Note**: we only get here if the label is defined.
+ *
+ * ```markdown
+ * > | [a][] d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function referenceCollapsedOpen(code) {
+ if (code === 93) {
+ effects.enter('referenceMarker')
+ effects.consume(code)
+ effects.exit('referenceMarker')
+ effects.exit('reference')
+ return ok
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/label-start-image.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const labelStartImage = {
+ name: 'labelStartImage',
+ tokenize: tokenizeLabelStartImage,
+ resolveAll: labelEnd.resolveAll
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeLabelStartImage(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ * Start of label (image) start.
+ *
+ * ```markdown
+ * > | a ![b] c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('labelImage')
+ effects.enter('labelImageMarker')
+ effects.consume(code)
+ effects.exit('labelImageMarker')
+ return open
+ }
+
+ /**
+ * After `!`, at `[`.
+ *
+ * ```markdown
+ * > | a ![b] c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function open(code) {
+ if (code === 91) {
+ effects.enter('labelMarker')
+ effects.consume(code)
+ effects.exit('labelMarker')
+ effects.exit('labelImage')
+ return after
+ }
+ return nok(code)
+ }
+
+ /**
+ * After `![`.
+ *
+ * ```markdown
+ * > | a ![b] c
+ * ^
+ * ```
+ *
+ * This is needed in because, when GFM footnotes are enabled, images never
+ * form when started with a `^`.
+ * Instead, links form:
+ *
+ * ```markdown
+ * 
+ *
+ * ![^a][b]
+ *
+ * [b]: c
+ * ```
+ *
+ * ```html
+ * !^a
+ * !^a
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ // To do: use a new field to do this, this is still needed for
+ // `micromark-extension-gfm-footnote`, but the `label-start-link`
+ // behavior isn’t.
+ // Hidden footnotes hook.
+ /* c8 ignore next 3 */
+ return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs
+ ? nok(code)
+ : ok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-util-classify-character/index.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ */
+
+
+/**
+ * Classify whether a code represents whitespace, punctuation, or something
+ * else.
+ *
+ * Used for attention (emphasis, strong), whose sequences can open or close
+ * based on the class of surrounding characters.
+ *
+ * > 👉 **Note**: eof (`null`) is seen as whitespace.
+ *
+ * @param {Code} code
+ * Code.
+ * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
+ * Group.
+ */
+function classifyCharacter(code) {
+ if (
+ code === null ||
+ markdownLineEndingOrSpace(code) ||
+ unicodeWhitespace(code)
+ ) {
+ return 1
+ }
+ if (unicodePunctuation(code)) {
+ return 2
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/attention.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Event} Event
+ * @typedef {import('micromark-util-types').Point} Point
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').Token} Token
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+
+/** @type {Construct} */
+const attention = {
+ name: 'attention',
+ tokenize: tokenizeAttention,
+ resolveAll: resolveAllAttention
+}
+
+/**
+ * Take all events and resolve attention to emphasis or strong.
+ *
+ * @type {Resolver}
+ */
+function resolveAllAttention(events, context) {
+ let index = -1
+ /** @type {number} */
+ let open
+ /** @type {Token} */
+ let group
+ /** @type {Token} */
+ let text
+ /** @type {Token} */
+ let openingSequence
+ /** @type {Token} */
+ let closingSequence
+ /** @type {number} */
+ let use
+ /** @type {Array} */
+ let nextEvents
+ /** @type {number} */
+ let offset
+
+ // Walk through all events.
+ //
+ // Note: performance of this is fine on an mb of normal markdown, but it’s
+ // a bottleneck for malicious stuff.
+ while (++index < events.length) {
+ // Find a token that can close.
+ if (
+ events[index][0] === 'enter' &&
+ events[index][1].type === 'attentionSequence' &&
+ events[index][1]._close
+ ) {
+ open = index
+
+ // Now walk back to find an opener.
+ while (open--) {
+ // Find a token that can open the closer.
+ if (
+ events[open][0] === 'exit' &&
+ events[open][1].type === 'attentionSequence' &&
+ events[open][1]._open &&
+ // If the markers are the same:
+ context.sliceSerialize(events[open][1]).charCodeAt(0) ===
+ context.sliceSerialize(events[index][1]).charCodeAt(0)
+ ) {
+ // If the opening can close or the closing can open,
+ // and the close size *is not* a multiple of three,
+ // but the sum of the opening and closing size *is* multiple of three,
+ // then don’t match.
+ if (
+ (events[open][1]._close || events[index][1]._open) &&
+ (events[index][1].end.offset - events[index][1].start.offset) % 3 &&
+ !(
+ (events[open][1].end.offset -
+ events[open][1].start.offset +
+ events[index][1].end.offset -
+ events[index][1].start.offset) %
+ 3
+ )
+ ) {
+ continue
+ }
+
+ // Number of markers to use from the sequence.
+ use =
+ events[open][1].end.offset - events[open][1].start.offset > 1 &&
+ events[index][1].end.offset - events[index][1].start.offset > 1
+ ? 2
+ : 1
+ const start = Object.assign({}, events[open][1].end)
+ const end = Object.assign({}, events[index][1].start)
+ movePoint(start, -use)
+ movePoint(end, use)
+ openingSequence = {
+ type: use > 1 ? 'strongSequence' : 'emphasisSequence',
+ start,
+ end: Object.assign({}, events[open][1].end)
+ }
+ closingSequence = {
+ type: use > 1 ? 'strongSequence' : 'emphasisSequence',
+ start: Object.assign({}, events[index][1].start),
+ end
+ }
+ text = {
+ type: use > 1 ? 'strongText' : 'emphasisText',
+ start: Object.assign({}, events[open][1].end),
+ end: Object.assign({}, events[index][1].start)
+ }
+ group = {
+ type: use > 1 ? 'strong' : 'emphasis',
+ start: Object.assign({}, openingSequence.start),
+ end: Object.assign({}, closingSequence.end)
+ }
+ events[open][1].end = Object.assign({}, openingSequence.start)
+ events[index][1].start = Object.assign({}, closingSequence.end)
+ nextEvents = []
+
+ // If there are more markers in the opening, add them before.
+ if (events[open][1].end.offset - events[open][1].start.offset) {
+ nextEvents = push(nextEvents, [
+ ['enter', events[open][1], context],
+ ['exit', events[open][1], context]
+ ])
+ }
+
+ // Opening.
+ nextEvents = push(nextEvents, [
+ ['enter', group, context],
+ ['enter', openingSequence, context],
+ ['exit', openingSequence, context],
+ ['enter', text, context]
+ ])
+
+ // Always populated by defaults.
+
+ // Between.
+ nextEvents = push(
+ nextEvents,
+ resolveAll(
+ context.parser.constructs.insideSpan.null,
+ events.slice(open + 1, index),
+ context
+ )
+ )
+
+ // Closing.
+ nextEvents = push(nextEvents, [
+ ['exit', text, context],
+ ['enter', closingSequence, context],
+ ['exit', closingSequence, context],
+ ['exit', group, context]
+ ])
+
+ // If there are more markers in the closing, add them after.
+ if (events[index][1].end.offset - events[index][1].start.offset) {
+ offset = 2
+ nextEvents = push(nextEvents, [
+ ['enter', events[index][1], context],
+ ['exit', events[index][1], context]
+ ])
+ } else {
+ offset = 0
+ }
+ splice(events, open - 1, index - open + 3, nextEvents)
+ index = open + nextEvents.length - offset - 2
+ break
+ }
+ }
+ }
+ }
+
+ // Remove remaining sequences.
+ index = -1
+ while (++index < events.length) {
+ if (events[index][1].type === 'attentionSequence') {
+ events[index][1].type = 'data'
+ }
+ }
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeAttention(effects, ok) {
+ const attentionMarkers = this.parser.constructs.attentionMarkers.null
+ const previous = this.previous
+ const before = classifyCharacter(previous)
+
+ /** @type {NonNullable} */
+ let marker
+ return start
+
+ /**
+ * Before a sequence.
+ *
+ * ```markdown
+ * > | **
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ marker = code
+ effects.enter('attentionSequence')
+ return inside(code)
+ }
+
+ /**
+ * In a sequence.
+ *
+ * ```markdown
+ * > | **
+ * ^^
+ * ```
+ *
+ * @type {State}
+ */
+ function inside(code) {
+ if (code === marker) {
+ effects.consume(code)
+ return inside
+ }
+ const token = effects.exit('attentionSequence')
+
+ // To do: next major: move this to resolver, just like `markdown-rs`.
+ const after = classifyCharacter(code)
+
+ // Always populated by defaults.
+
+ const open =
+ !after || (after === 2 && before) || attentionMarkers.includes(code)
+ const close =
+ !before || (before === 2 && after) || attentionMarkers.includes(previous)
+ token._open = Boolean(marker === 42 ? open : open && (before || !close))
+ token._close = Boolean(marker === 42 ? close : close && (after || !open))
+ return ok(code)
+ }
+}
+
+/**
+ * Move a point a bit.
+ *
+ * Note: `move` only works inside lines! It’s not possible to move past other
+ * chunks (replacement characters, tabs, or line endings).
+ *
+ * @param {Point} point
+ * @param {number} offset
+ * @returns {void}
+ */
+function movePoint(point, offset) {
+ point.column += offset
+ point.offset += offset
+ point._bufferIndex += offset
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/autolink.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+/** @type {Construct} */
+const autolink = {
+ name: 'autolink',
+ tokenize: tokenizeAutolink
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeAutolink(effects, ok, nok) {
+ let size = 0
+ return start
+
+ /**
+ * Start of an autolink.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('autolink')
+ effects.enter('autolinkMarker')
+ effects.consume(code)
+ effects.exit('autolinkMarker')
+ effects.enter('autolinkProtocol')
+ return open
+ }
+
+ /**
+ * After `<`, at protocol or atext.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function open(code) {
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ return schemeOrEmailAtext
+ }
+ return emailAtext(code)
+ }
+
+ /**
+ * At second byte of protocol or atext.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function schemeOrEmailAtext(code) {
+ // ASCII alphanumeric and `+`, `-`, and `.`.
+ if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {
+ // Count the previous alphabetical from `open` too.
+ size = 1
+ return schemeInsideOrEmailAtext(code)
+ }
+ return emailAtext(code)
+ }
+
+ /**
+ * In ambiguous protocol or atext.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function schemeInsideOrEmailAtext(code) {
+ if (code === 58) {
+ effects.consume(code)
+ size = 0
+ return urlInside
+ }
+
+ // ASCII alphanumeric and `+`, `-`, and `.`.
+ if (
+ (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&
+ size++ < 32
+ ) {
+ effects.consume(code)
+ return schemeInsideOrEmailAtext
+ }
+ size = 0
+ return emailAtext(code)
+ }
+
+ /**
+ * After protocol, in URL.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function urlInside(code) {
+ if (code === 62) {
+ effects.exit('autolinkProtocol')
+ effects.enter('autolinkMarker')
+ effects.consume(code)
+ effects.exit('autolinkMarker')
+ effects.exit('autolink')
+ return ok
+ }
+
+ // ASCII control, space, or `<`.
+ if (code === null || code === 32 || code === 60 || asciiControl(code)) {
+ return nok(code)
+ }
+ effects.consume(code)
+ return urlInside
+ }
+
+ /**
+ * In email atext.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function emailAtext(code) {
+ if (code === 64) {
+ effects.consume(code)
+ return emailAtSignOrDot
+ }
+ if (asciiAtext(code)) {
+ effects.consume(code)
+ return emailAtext
+ }
+ return nok(code)
+ }
+
+ /**
+ * In label, after at-sign or dot.
+ *
+ * ```markdown
+ * > | ab
+ * ^ ^
+ * ```
+ *
+ * @type {State}
+ */
+ function emailAtSignOrDot(code) {
+ return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)
+ }
+
+ /**
+ * In label, where `.` and `>` are allowed.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function emailLabel(code) {
+ if (code === 46) {
+ effects.consume(code)
+ size = 0
+ return emailAtSignOrDot
+ }
+ if (code === 62) {
+ // Exit, then change the token type.
+ effects.exit('autolinkProtocol').type = 'autolinkEmail'
+ effects.enter('autolinkMarker')
+ effects.consume(code)
+ effects.exit('autolinkMarker')
+ effects.exit('autolink')
+ return ok
+ }
+ return emailValue(code)
+ }
+
+ /**
+ * In label, where `.` and `>` are *not* allowed.
+ *
+ * Though, this is also used in `emailLabel` to parse other values.
+ *
+ * ```markdown
+ * > | ab
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function emailValue(code) {
+ // ASCII alphanumeric or `-`.
+ if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {
+ const next = code === 45 ? emailValue : emailLabel
+ effects.consume(code)
+ return next
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/html-text.js
+/**
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const htmlText = {
+ name: 'htmlText',
+ tokenize: tokenizeHtmlText
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeHtmlText(effects, ok, nok) {
+ const self = this
+ /** @type {NonNullable | undefined} */
+ let marker
+ /** @type {number} */
+ let index
+ /** @type {State} */
+ let returnState
+ return start
+
+ /**
+ * Start of HTML (text).
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('htmlText')
+ effects.enter('htmlTextData')
+ effects.consume(code)
+ return open
+ }
+
+ /**
+ * After `<`, at tag name or other stuff.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * > | a c
+ * ^
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function open(code) {
+ if (code === 33) {
+ effects.consume(code)
+ return declarationOpen
+ }
+ if (code === 47) {
+ effects.consume(code)
+ return tagCloseStart
+ }
+ if (code === 63) {
+ effects.consume(code)
+ return instruction
+ }
+
+ // ASCII alphabetical.
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ return tagOpen
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ` | a c
+ * ^
+ * > | a c
+ * ^
+ * > | a &<]]> c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function declarationOpen(code) {
+ if (code === 45) {
+ effects.consume(code)
+ return commentOpenInside
+ }
+ if (code === 91) {
+ effects.consume(code)
+ index = 0
+ return cdataOpenInside
+ }
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ return declaration
+ }
+ return nok(code)
+ }
+
+ /**
+ * In a comment, after ` | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function commentOpenInside(code) {
+ if (code === 45) {
+ effects.consume(code)
+ return commentEnd
+ }
+ return nok(code)
+ }
+
+ /**
+ * In comment.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function comment(code) {
+ if (code === null) {
+ return nok(code)
+ }
+ if (code === 45) {
+ effects.consume(code)
+ return commentClose
+ }
+ if (markdownLineEnding(code)) {
+ returnState = comment
+ return lineEndingBefore(code)
+ }
+ effects.consume(code)
+ return comment
+ }
+
+ /**
+ * In comment, after `-`.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function commentClose(code) {
+ if (code === 45) {
+ effects.consume(code)
+ return commentEnd
+ }
+ return comment(code)
+ }
+
+ /**
+ * In comment, after `--`.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function commentEnd(code) {
+ return code === 62
+ ? end(code)
+ : code === 45
+ ? commentClose(code)
+ : comment(code)
+ }
+
+ /**
+ * After ` | a &<]]> b
+ * ^^^^^^
+ * ```
+ *
+ * @type {State}
+ */
+ function cdataOpenInside(code) {
+ const value = 'CDATA['
+ if (code === value.charCodeAt(index++)) {
+ effects.consume(code)
+ return index === value.length ? cdata : cdataOpenInside
+ }
+ return nok(code)
+ }
+
+ /**
+ * In CDATA.
+ *
+ * ```markdown
+ * > | a &<]]> b
+ * ^^^
+ * ```
+ *
+ * @type {State}
+ */
+ function cdata(code) {
+ if (code === null) {
+ return nok(code)
+ }
+ if (code === 93) {
+ effects.consume(code)
+ return cdataClose
+ }
+ if (markdownLineEnding(code)) {
+ returnState = cdata
+ return lineEndingBefore(code)
+ }
+ effects.consume(code)
+ return cdata
+ }
+
+ /**
+ * In CDATA, after `]`, at another `]`.
+ *
+ * ```markdown
+ * > | a &<]]> b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function cdataClose(code) {
+ if (code === 93) {
+ effects.consume(code)
+ return cdataEnd
+ }
+ return cdata(code)
+ }
+
+ /**
+ * In CDATA, after `]]`, at `>`.
+ *
+ * ```markdown
+ * > | a &<]]> b
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function cdataEnd(code) {
+ if (code === 62) {
+ return end(code)
+ }
+ if (code === 93) {
+ effects.consume(code)
+ return cdataEnd
+ }
+ return cdata(code)
+ }
+
+ /**
+ * In declaration.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function declaration(code) {
+ if (code === null || code === 62) {
+ return end(code)
+ }
+ if (markdownLineEnding(code)) {
+ returnState = declaration
+ return lineEndingBefore(code)
+ }
+ effects.consume(code)
+ return declaration
+ }
+
+ /**
+ * In instruction.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function instruction(code) {
+ if (code === null) {
+ return nok(code)
+ }
+ if (code === 63) {
+ effects.consume(code)
+ return instructionClose
+ }
+ if (markdownLineEnding(code)) {
+ returnState = instruction
+ return lineEndingBefore(code)
+ }
+ effects.consume(code)
+ return instruction
+ }
+
+ /**
+ * In instruction, after `?`, at `>`.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function instructionClose(code) {
+ return code === 62 ? end(code) : instruction(code)
+ }
+
+ /**
+ * After ``, in closing tag, at tag name.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagCloseStart(code) {
+ // ASCII alphabetical.
+ if (asciiAlpha(code)) {
+ effects.consume(code)
+ return tagClose
+ }
+ return nok(code)
+ }
+
+ /**
+ * After ` | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagClose(code) {
+ // ASCII alphanumerical and `-`.
+ if (code === 45 || asciiAlphanumeric(code)) {
+ effects.consume(code)
+ return tagClose
+ }
+ return tagCloseBetween(code)
+ }
+
+ /**
+ * In closing tag, after tag name.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagCloseBetween(code) {
+ if (markdownLineEnding(code)) {
+ returnState = tagCloseBetween
+ return lineEndingBefore(code)
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return tagCloseBetween
+ }
+ return end(code)
+ }
+
+ /**
+ * After ` | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpen(code) {
+ // ASCII alphanumerical and `-`.
+ if (code === 45 || asciiAlphanumeric(code)) {
+ effects.consume(code)
+ return tagOpen
+ }
+ if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
+ return tagOpenBetween(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * In opening tag, after tag name.
+ *
+ * ```markdown
+ * > | a c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenBetween(code) {
+ if (code === 47) {
+ effects.consume(code)
+ return end
+ }
+
+ // ASCII alphabetical and `:` and `_`.
+ if (code === 58 || code === 95 || asciiAlpha(code)) {
+ effects.consume(code)
+ return tagOpenAttributeName
+ }
+ if (markdownLineEnding(code)) {
+ returnState = tagOpenBetween
+ return lineEndingBefore(code)
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return tagOpenBetween
+ }
+ return end(code)
+ }
+
+ /**
+ * In attribute name.
+ *
+ * ```markdown
+ * > | a d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeName(code) {
+ // ASCII alphabetical and `-`, `.`, `:`, and `_`.
+ if (
+ code === 45 ||
+ code === 46 ||
+ code === 58 ||
+ code === 95 ||
+ asciiAlphanumeric(code)
+ ) {
+ effects.consume(code)
+ return tagOpenAttributeName
+ }
+ return tagOpenAttributeNameAfter(code)
+ }
+
+ /**
+ * After attribute name, before initializer, the end of the tag, or
+ * whitespace.
+ *
+ * ```markdown
+ * > | a d
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeNameAfter(code) {
+ if (code === 61) {
+ effects.consume(code)
+ return tagOpenAttributeValueBefore
+ }
+ if (markdownLineEnding(code)) {
+ returnState = tagOpenAttributeNameAfter
+ return lineEndingBefore(code)
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return tagOpenAttributeNameAfter
+ }
+ return tagOpenBetween(code)
+ }
+
+ /**
+ * Before unquoted, double quoted, or single quoted attribute value, allowing
+ * whitespace.
+ *
+ * ```markdown
+ * > | a e
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeValueBefore(code) {
+ if (
+ code === null ||
+ code === 60 ||
+ code === 61 ||
+ code === 62 ||
+ code === 96
+ ) {
+ return nok(code)
+ }
+ if (code === 34 || code === 39) {
+ effects.consume(code)
+ marker = code
+ return tagOpenAttributeValueQuoted
+ }
+ if (markdownLineEnding(code)) {
+ returnState = tagOpenAttributeValueBefore
+ return lineEndingBefore(code)
+ }
+ if (markdownSpace(code)) {
+ effects.consume(code)
+ return tagOpenAttributeValueBefore
+ }
+ effects.consume(code)
+ return tagOpenAttributeValueUnquoted
+ }
+
+ /**
+ * In double or single quoted attribute value.
+ *
+ * ```markdown
+ * > | a e
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeValueQuoted(code) {
+ if (code === marker) {
+ effects.consume(code)
+ marker = undefined
+ return tagOpenAttributeValueQuotedAfter
+ }
+ if (code === null) {
+ return nok(code)
+ }
+ if (markdownLineEnding(code)) {
+ returnState = tagOpenAttributeValueQuoted
+ return lineEndingBefore(code)
+ }
+ effects.consume(code)
+ return tagOpenAttributeValueQuoted
+ }
+
+ /**
+ * In unquoted attribute value.
+ *
+ * ```markdown
+ * > | a e
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeValueUnquoted(code) {
+ if (
+ code === null ||
+ code === 34 ||
+ code === 39 ||
+ code === 60 ||
+ code === 61 ||
+ code === 96
+ ) {
+ return nok(code)
+ }
+ if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
+ return tagOpenBetween(code)
+ }
+ effects.consume(code)
+ return tagOpenAttributeValueUnquoted
+ }
+
+ /**
+ * After double or single quoted attribute value, before whitespace or the end
+ * of the tag.
+ *
+ * ```markdown
+ * > | a e
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function tagOpenAttributeValueQuotedAfter(code) {
+ if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
+ return tagOpenBetween(code)
+ }
+ return nok(code)
+ }
+
+ /**
+ * In certain circumstances of a tag where only an `>` is allowed.
+ *
+ * ```markdown
+ * > | a e
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function end(code) {
+ if (code === 62) {
+ effects.consume(code)
+ effects.exit('htmlTextData')
+ effects.exit('htmlText')
+ return ok
+ }
+ return nok(code)
+ }
+
+ /**
+ * At eol.
+ *
+ * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
+ * > empty tokens.
+ *
+ * ```markdown
+ * > | a
+ * ```
+ *
+ * @type {State}
+ */
+ function lineEndingBefore(code) {
+ effects.exit('htmlTextData')
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return lineEndingAfter
+ }
+
+ /**
+ * After eol, at optional whitespace.
+ *
+ * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
+ * > empty tokens.
+ *
+ * ```markdown
+ * | a
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function lineEndingAfter(code) {
+ // Always populated by defaults.
+
+ return markdownSpace(code)
+ ? factorySpace(
+ effects,
+ lineEndingAfterPrefix,
+ 'linePrefix',
+ self.parser.constructs.disable.null.includes('codeIndented')
+ ? undefined
+ : 4
+ )(code)
+ : lineEndingAfterPrefix(code)
+ }
+
+ /**
+ * After eol, after optional whitespace.
+ *
+ * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
+ * > empty tokens.
+ *
+ * ```markdown
+ * | a
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function lineEndingAfterPrefix(code) {
+ effects.enter('htmlTextData')
+ return returnState(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/label-start-link.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+
+/** @type {Construct} */
+const labelStartLink = {
+ name: 'labelStartLink',
+ tokenize: tokenizeLabelStartLink,
+ resolveAll: labelEnd.resolveAll
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeLabelStartLink(effects, ok, nok) {
+ const self = this
+ return start
+
+ /**
+ * Start of label (link) start.
+ *
+ * ```markdown
+ * > | a [b] c
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('labelLink')
+ effects.enter('labelMarker')
+ effects.consume(code)
+ effects.exit('labelMarker')
+ effects.exit('labelLink')
+ return after
+ }
+
+ /** @type {State} */
+ function after(code) {
+ // To do: this isn’t needed in `micromark-extension-gfm-footnote`,
+ // remove.
+ // Hidden footnotes hook.
+ /* c8 ignore next 3 */
+ return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs
+ ? nok(code)
+ : ok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+/** @type {Construct} */
+const hardBreakEscape = {
+ name: 'hardBreakEscape',
+ tokenize: tokenizeHardBreakEscape
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeHardBreakEscape(effects, ok, nok) {
+ return start
+
+ /**
+ * Start of a hard break (escape).
+ *
+ * ```markdown
+ * > | a\
+ * ^
+ * | b
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('hardBreakEscape')
+ effects.consume(code)
+ return after
+ }
+
+ /**
+ * After `\`, at eol.
+ *
+ * ```markdown
+ * > | a\
+ * ^
+ * | b
+ * ```
+ *
+ * @type {State}
+ */
+ function after(code) {
+ if (markdownLineEnding(code)) {
+ effects.exit('hardBreakEscape')
+ return ok(code)
+ }
+ return nok(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-core-commonmark/lib/code-text.js
+/**
+ * @typedef {import('micromark-util-types').Construct} Construct
+ * @typedef {import('micromark-util-types').Previous} Previous
+ * @typedef {import('micromark-util-types').Resolver} Resolver
+ * @typedef {import('micromark-util-types').State} State
+ * @typedef {import('micromark-util-types').Token} Token
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
+ */
+
+
+/** @type {Construct} */
+const codeText = {
+ name: 'codeText',
+ tokenize: tokenizeCodeText,
+ resolve: resolveCodeText,
+ previous
+}
+
+// To do: next major: don’t resolve, like `markdown-rs`.
+/** @type {Resolver} */
+function resolveCodeText(events) {
+ let tailExitIndex = events.length - 4
+ let headEnterIndex = 3
+ /** @type {number} */
+ let index
+ /** @type {number | undefined} */
+ let enter
+
+ // If we start and end with an EOL or a space.
+ if (
+ (events[headEnterIndex][1].type === 'lineEnding' ||
+ events[headEnterIndex][1].type === 'space') &&
+ (events[tailExitIndex][1].type === 'lineEnding' ||
+ events[tailExitIndex][1].type === 'space')
+ ) {
+ index = headEnterIndex
+
+ // And we have data.
+ while (++index < tailExitIndex) {
+ if (events[index][1].type === 'codeTextData') {
+ // Then we have padding.
+ events[headEnterIndex][1].type = 'codeTextPadding'
+ events[tailExitIndex][1].type = 'codeTextPadding'
+ headEnterIndex += 2
+ tailExitIndex -= 2
+ break
+ }
+ }
+ }
+
+ // Merge adjacent spaces and data.
+ index = headEnterIndex - 1
+ tailExitIndex++
+ while (++index <= tailExitIndex) {
+ if (enter === undefined) {
+ if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {
+ enter = index
+ }
+ } else if (
+ index === tailExitIndex ||
+ events[index][1].type === 'lineEnding'
+ ) {
+ events[enter][1].type = 'codeTextData'
+ if (index !== enter + 2) {
+ events[enter][1].end = events[index - 1][1].end
+ events.splice(enter + 2, index - enter - 2)
+ tailExitIndex -= index - enter - 2
+ index = enter + 2
+ }
+ enter = undefined
+ }
+ }
+ return events
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Previous}
+ */
+function previous(code) {
+ // If there is a previous code, there will always be a tail.
+ return (
+ code !== 96 ||
+ this.events[this.events.length - 1][1].type === 'characterEscape'
+ )
+}
+
+/**
+ * @this {TokenizeContext}
+ * @type {Tokenizer}
+ */
+function tokenizeCodeText(effects, ok, nok) {
+ const self = this
+ let sizeOpen = 0
+ /** @type {number} */
+ let size
+ /** @type {Token} */
+ let token
+ return start
+
+ /**
+ * Start of code (text).
+ *
+ * ```markdown
+ * > | `a`
+ * ^
+ * > | \`a`
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function start(code) {
+ effects.enter('codeText')
+ effects.enter('codeTextSequence')
+ return sequenceOpen(code)
+ }
+
+ /**
+ * In opening sequence.
+ *
+ * ```markdown
+ * > | `a`
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceOpen(code) {
+ if (code === 96) {
+ effects.consume(code)
+ sizeOpen++
+ return sequenceOpen
+ }
+ effects.exit('codeTextSequence')
+ return between(code)
+ }
+
+ /**
+ * Between something and something else.
+ *
+ * ```markdown
+ * > | `a`
+ * ^^
+ * ```
+ *
+ * @type {State}
+ */
+ function between(code) {
+ // EOF.
+ if (code === null) {
+ return nok(code)
+ }
+
+ // To do: next major: don’t do spaces in resolve, but when compiling,
+ // like `markdown-rs`.
+ // Tabs don’t work, and virtual spaces don’t make sense.
+ if (code === 32) {
+ effects.enter('space')
+ effects.consume(code)
+ effects.exit('space')
+ return between
+ }
+
+ // Closing fence? Could also be data.
+ if (code === 96) {
+ token = effects.enter('codeTextSequence')
+ size = 0
+ return sequenceClose(code)
+ }
+ if (markdownLineEnding(code)) {
+ effects.enter('lineEnding')
+ effects.consume(code)
+ effects.exit('lineEnding')
+ return between
+ }
+
+ // Data.
+ effects.enter('codeTextData')
+ return data(code)
+ }
+
+ /**
+ * In data.
+ *
+ * ```markdown
+ * > | `a`
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function data(code) {
+ if (
+ code === null ||
+ code === 32 ||
+ code === 96 ||
+ markdownLineEnding(code)
+ ) {
+ effects.exit('codeTextData')
+ return between(code)
+ }
+ effects.consume(code)
+ return data
+ }
+
+ /**
+ * In closing sequence.
+ *
+ * ```markdown
+ * > | `a`
+ * ^
+ * ```
+ *
+ * @type {State}
+ */
+ function sequenceClose(code) {
+ // More.
+ if (code === 96) {
+ effects.consume(code)
+ size++
+ return sequenceClose
+ }
+
+ // Done!
+ if (size === sizeOpen) {
+ effects.exit('codeTextSequence')
+ effects.exit('codeText')
+ return ok(code)
+ }
+
+ // More or less accents: mark as data.
+ token.type = 'codeTextData'
+ return data(code)
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark/lib/constructs.js
+/**
+ * @typedef {import('micromark-util-types').Extension} Extension
+ */
+
+
+
+
+/** @satisfies {Extension['document']} */
+const constructs_document = {
+ [42]: list,
+ [43]: list,
+ [45]: list,
+ [48]: list,
+ [49]: list,
+ [50]: list,
+ [51]: list,
+ [52]: list,
+ [53]: list,
+ [54]: list,
+ [55]: list,
+ [56]: list,
+ [57]: list,
+ [62]: blockQuote
+}
+
+/** @satisfies {Extension['contentInitial']} */
+const contentInitial = {
+ [91]: definition
+}
+
+/** @satisfies {Extension['flowInitial']} */
+const flowInitial = {
+ [-2]: codeIndented,
+ [-1]: codeIndented,
+ [32]: codeIndented
+}
+
+/** @satisfies {Extension['flow']} */
+const constructs_flow = {
+ [35]: headingAtx,
+ [42]: thematicBreak,
+ [45]: [setextUnderline, thematicBreak],
+ [60]: htmlFlow,
+ [61]: setextUnderline,
+ [95]: thematicBreak,
+ [96]: codeFenced,
+ [126]: codeFenced
+}
+
+/** @satisfies {Extension['string']} */
+const constructs_string = {
+ [38]: characterReference,
+ [92]: characterEscape
+}
+
+/** @satisfies {Extension['text']} */
+const constructs_text = {
+ [-5]: lineEnding,
+ [-4]: lineEnding,
+ [-3]: lineEnding,
+ [33]: labelStartImage,
+ [38]: characterReference,
+ [42]: attention,
+ [60]: [autolink, htmlText],
+ [91]: labelStartLink,
+ [92]: [hardBreakEscape, characterEscape],
+ [93]: labelEnd,
+ [95]: attention,
+ [96]: codeText
+}
+
+/** @satisfies {Extension['insideSpan']} */
+const insideSpan = {
+ null: [attention, resolver]
+}
+
+/** @satisfies {Extension['attentionMarkers']} */
+const attentionMarkers = {
+ null: [42, 95]
+}
+
+/** @satisfies {Extension['disable']} */
+const disable = {
+ null: []
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark/lib/parse.js
+/**
+ * @typedef {import('micromark-util-types').Create} Create
+ * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
+ * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
+ * @typedef {import('micromark-util-types').ParseContext} ParseContext
+ * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
+ */
+
+
+
+
+
+
+
+
+
+/**
+ * @param {ParseOptions | null | undefined} [options]
+ * @returns {ParseContext}
+ */
+function parse(options) {
+ const settings = options || {}
+ const constructs =
+ /** @type {FullNormalizedExtension} */
+ combineExtensions([constructs_namespaceObject, ...(settings.extensions || [])])
+
+ /** @type {ParseContext} */
+ const parser = {
+ defined: [],
+ lazy: {},
+ constructs,
+ content: create(content),
+ document: create(document_document),
+ flow: create(flow),
+ string: create(string),
+ text: create(text_text)
+ }
+ return parser
+
+ /**
+ * @param {InitialConstruct} initial
+ */
+ function create(initial) {
+ return creator
+ /** @type {Create} */
+ function creator(from) {
+ return createTokenizer(parser, initial, from)
+ }
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark/lib/preprocess.js
+/**
+ * @typedef {import('micromark-util-types').Chunk} Chunk
+ * @typedef {import('micromark-util-types').Code} Code
+ * @typedef {import('micromark-util-types').Encoding} Encoding
+ * @typedef {import('micromark-util-types').Value} Value
+ */
+
+/**
+ * @callback Preprocessor
+ * @param {Value} value
+ * @param {Encoding | null | undefined} [encoding]
+ * @param {boolean | null | undefined} [end=false]
+ * @returns {Array}
+ */
+
+const search = /[\0\t\n\r]/g
+
+/**
+ * @returns {Preprocessor}
+ */
+function preprocess() {
+ let column = 1
+ let buffer = ''
+ /** @type {boolean | undefined} */
+ let start = true
+ /** @type {boolean | undefined} */
+ let atCarriageReturn
+ return preprocessor
+
+ /** @type {Preprocessor} */
+ function preprocessor(value, encoding, end) {
+ /** @type {Array} */
+ const chunks = []
+ /** @type {RegExpMatchArray | null} */
+ let match
+ /** @type {number} */
+ let next
+ /** @type {number} */
+ let startPosition
+ /** @type {number} */
+ let endPosition
+ /** @type {Code} */
+ let code
+
+ // @ts-expect-error `Buffer` does allow an encoding.
+ value = buffer + value.toString(encoding)
+ startPosition = 0
+ buffer = ''
+ if (start) {
+ // To do: `markdown-rs` actually parses BOMs (byte order mark).
+ if (value.charCodeAt(0) === 65279) {
+ startPosition++
+ }
+ start = undefined
+ }
+ while (startPosition < value.length) {
+ search.lastIndex = startPosition
+ match = search.exec(value)
+ endPosition =
+ match && match.index !== undefined ? match.index : value.length
+ code = value.charCodeAt(endPosition)
+ if (!match) {
+ buffer = value.slice(startPosition)
+ break
+ }
+ if (code === 10 && startPosition === endPosition && atCarriageReturn) {
+ chunks.push(-3)
+ atCarriageReturn = undefined
+ } else {
+ if (atCarriageReturn) {
+ chunks.push(-5)
+ atCarriageReturn = undefined
+ }
+ if (startPosition < endPosition) {
+ chunks.push(value.slice(startPosition, endPosition))
+ column += endPosition - startPosition
+ }
+ switch (code) {
+ case 0: {
+ chunks.push(65533)
+ column++
+ break
+ }
+ case 9: {
+ next = Math.ceil(column / 4) * 4
+ chunks.push(-2)
+ while (column++ < next) chunks.push(-1)
+ break
+ }
+ case 10: {
+ chunks.push(-4)
+ column = 1
+ break
+ }
+ default: {
+ atCarriageReturn = true
+ column = 1
+ }
+ }
+ }
+ startPosition = endPosition + 1
+ }
+ if (end) {
+ if (atCarriageReturn) chunks.push(-5)
+ if (buffer) chunks.push(buffer)
+ chunks.push(null)
+ }
+ return chunks
+ }
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark/lib/postprocess.js
+/**
+ * @typedef {import('micromark-util-types').Event} Event
+ */
+
+
+
+/**
+ * @param {Array} events
+ * @returns {Array}
+ */
+function postprocess(events) {
+ while (!subtokenize(events)) {
+ // Empty
+ }
+ return events
+}
+
+;// CONCATENATED MODULE: ./node_modules/micromark-util-decode-numeric-character-reference/index.js
+/**
+ * Turn the number (in string form as either hexa- or plain decimal) coming from
+ * a numeric character reference into a character.
+ *
+ * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
+ * non-characters and control characters safe.
+ *
+ * @param {string} value
+ * Value to decode.
+ * @param {number} base
+ * Numeric base.
+ * @returns {string}
+ * Character.
+ */
+function decodeNumericCharacterReference(value, base) {
+ const code = Number.parseInt(value, base)
+ if (
+ // C0 except for HT, LF, FF, CR, space.
+ code < 9 ||
+ code === 11 ||
+ (code > 13 && code < 32) ||
+ // Control character (DEL) of C0, and C1 controls.
+ (code > 126 && code < 160) ||
+ // Lone high surrogates and low surrogates.
+ (code > 55295 && code < 57344) ||
+ // Noncharacters.
+ (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||
+ (code & 65535) === 65535 ||
+ (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||
+ // Out of range
+ code > 1114111
+ ) {
+ return '\uFFFD'
+ }
+ return String.fromCharCode(code)
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/micromark-util-decode-string/index.js
+
+
+const characterEscapeOrReference =
+ /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi
+
+/**
+ * Decode markdown strings (which occur in places such as fenced code info
+ * strings, destinations, labels, and titles).
+ *
+ * The “string” content type allows character escapes and -references.
+ * This decodes those.
+ *
+ * @param {string} value
+ * Value to decode.
+ * @returns {string}
+ * Decoded value.
+ */
+function decodeString(value) {
+ return value.replace(characterEscapeOrReference, decode)
+}
+
+/**
+ * @param {string} $0
+ * @param {string} $1
+ * @param {string} $2
+ * @returns {string}
+ */
+function decode($0, $1, $2) {
+ if ($1) {
+ // Escape.
+ return $1
+ }
+
+ // Reference.
+ const head = $2.charCodeAt(0)
+ if (head === 35) {
+ const head = $2.charCodeAt(1)
+ const hex = head === 120 || head === 88
+ return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)
+ }
+ return decodeNamedCharacterReference($2) || $0
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/unist-util-stringify-position/lib/index.js
+/**
+ * @typedef {import('unist').Node} Node
+ * @typedef {import('unist').Point} Point
+ * @typedef {import('unist').Position} Position
+ */
+
+/**
+ * @typedef NodeLike
+ * @property {string} type
+ * @property {PositionLike | null | undefined} [position]
+ *
+ * @typedef PositionLike
+ * @property {PointLike | null | undefined} [start]
+ * @property {PointLike | null | undefined} [end]
+ *
+ * @typedef PointLike
+ * @property {number | null | undefined} [line]
+ * @property {number | null | undefined} [column]
+ * @property {number | null | undefined} [offset]
+ */
+
+/**
+ * Serialize the positional info of a point, position (start and end points),
+ * or node.
+ *
+ * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
+ * Node, position, or point.
+ * @returns {string}
+ * Pretty printed positional info of a node (`string`).
+ *
+ * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
+ * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
+ * column, `s` for `start`, and `e` for end.
+ * An empty string (`''`) is returned if the given value is neither `node`,
+ * `position`, nor `point`.
+ */
+function stringifyPosition(value) {
+ // Nothing.
+ if (!value || typeof value !== 'object') {
+ return ''
+ }
+
+ // Node.
+ if ('position' in value || 'type' in value) {
+ return position(value.position)
+ }
+
+ // Position.
+ if ('start' in value || 'end' in value) {
+ return position(value)
+ }
+
+ // Point.
+ if ('line' in value || 'column' in value) {
+ return point(value)
+ }
+
+ // ?
+ return ''
+}
+
+/**
+ * @param {Point | PointLike | null | undefined} point
+ * @returns {string}
+ */
+function point(point) {
+ return index(point && point.line) + ':' + index(point && point.column)
+}
+
+/**
+ * @param {Position | PositionLike | null | undefined} pos
+ * @returns {string}
+ */
+function position(pos) {
+ return point(pos && pos.start) + '-' + point(pos && pos.end)
+}
+
+/**
+ * @param {number | null | undefined} value
+ * @returns {number}
+ */
+function index(value) {
+ return value && typeof value === 'number' ? value : 1
+}
+
+;// CONCATENATED MODULE: ./node_modules/mermaid/node_modules/mdast-util-from-markdown/lib/index.js
+/**
+ * @typedef {import('micromark-util-types').Encoding} Encoding
+ * @typedef {import('micromark-util-types').Event} Event
+ * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
+ * @typedef {import('micromark-util-types').Token} Token
+ * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
+ * @typedef {import('micromark-util-types').Value} Value
+ *
+ * @typedef {import('unist').Parent} UnistParent
+ * @typedef {import('unist').Point} Point
+ *
+ * @typedef {import('mdast').PhrasingContent} PhrasingContent
+ * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
+ * @typedef {import('mdast').Content} Content
+ * @typedef {import('mdast').Break} Break
+ * @typedef {import('mdast').Blockquote} Blockquote
+ * @typedef {import('mdast').Code} Code
+ * @typedef {import('mdast').Definition} Definition
+ * @typedef {import('mdast').Emphasis} Emphasis
+ * @typedef {import('mdast').Heading} Heading
+ * @typedef {import('mdast').HTML} HTML
+ * @typedef {import('mdast').Image} Image
+ * @typedef {import('mdast').ImageReference} ImageReference
+ * @typedef {import('mdast').InlineCode} InlineCode
+ * @typedef {import('mdast').Link} Link
+ * @typedef {import('mdast').LinkReference} LinkReference
+ * @typedef {import('mdast').List} List
+ * @typedef {import('mdast').ListItem} ListItem
+ * @typedef {import('mdast').Paragraph} Paragraph
+ * @typedef {import('mdast').Root} Root
+ * @typedef {import('mdast').Strong} Strong
+ * @typedef {import('mdast').Text} Text
+ * @typedef {import('mdast').ThematicBreak} ThematicBreak
+ * @typedef {import('mdast').ReferenceType} ReferenceType
+ * @typedef {import('../index.js').CompileData} CompileData
+ */
+
+/**
+ * @typedef {Root | Content} Node
+ * @typedef {Extract} Parent
+ *
+ * @typedef {Omit & {type: 'fragment', children: Array}} Fragment
+ */
+
+/**
+ * @callback Transform
+ * Extra transform, to change the AST afterwards.
+ * @param {Root} tree
+ * Tree to transform.
+ * @returns {Root | undefined | null | void}
+ * New tree or nothing (in which case the current tree is used).
+ *
+ * @callback Handle
+ * Handle a token.
+ * @param {CompileContext} this
+ * Context.
+ * @param {Token} token
+ * Current token.
+ * @returns {void}
+ * Nothing.
+ *
+ * @typedef {Record} Handles
+ * Token types mapping to handles
+ *
+ * @callback OnEnterError
+ * Handle the case where the `right` token is open, but it is closed (by the
+ * `left` token) or because we reached the end of the document.
+ * @param {Omit} this
+ * Context.
+ * @param {Token | undefined} left
+ * Left token.
+ * @param {Token} right
+ * Right token.
+ * @returns {void}
+ * Nothing.
+ *
+ * @callback OnExitError
+ * Handle the case where the `right` token is open but it is closed by
+ * exiting the `left` token.
+ * @param {Omit} this
+ * Context.
+ * @param {Token} left
+ * Left token.
+ * @param {Token} right
+ * Right token.
+ * @returns {void}
+ * Nothing.
+ *
+ * @typedef {[Token, OnEnterError | undefined]} TokenTuple
+ * Open token on the stack, with an optional error handler for when
+ * that token isn’t closed properly.
+ */
+
+/**
+ * @typedef Config
+ * Configuration.
+ *
+ * We have our defaults, but extensions will add more.
+ * @property {Array} canContainEols
+ * Token types where line endings are used.
+ * @property {Handles} enter
+ * Opening handles.
+ * @property {Handles} exit
+ * Closing handles.
+ * @property {Array} transforms
+ * Tree transforms.
+ *
+ * @typedef {Partial} Extension
+ * Change how markdown tokens from micromark are turned into mdast.
+ *
+ * @typedef CompileContext
+ * mdast compiler context.
+ * @property {Array} stack
+ * Stack of nodes.
+ * @property {Array} tokenStack
+ * Stack of tokens.
+ * @property {(key: Key) => CompileData[Key]} getData
+ * Get data from the key/value store.
+ * @property {(key: Key, value?: CompileData[Key]) => void} setData
+ * Set data into the key/value store.
+ * @property {(this: CompileContext) => void} buffer
+ * Capture some of the output data.
+ * @property {(this: CompileContext) => string} resume
+ * Stop capturing and access the output data.
+ * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
+ * Enter a token.
+ * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
+ * Exit a token.
+ * @property {TokenizeContext['sliceSerialize']} sliceSerialize
+ * Get the string value of a token.
+ * @property {Config} config
+ * Configuration.
+ *
+ * @typedef FromMarkdownOptions
+ * Configuration for how to build mdast.
+ * @property {Array> | null | undefined} [mdastExtensions]
+ * Extensions for this utility to change how tokens are turned into a tree.
+ *
+ * @typedef {ParseOptions & FromMarkdownOptions} Options
+ * Configuration.
+ */
+
+// To do: micromark: create a registry of tokens?
+// To do: next major: don’t return given `Node` from `enter`.
+// To do: next major: remove setter/getter.
+
+
+
+
+
+
+
+
+
+
+const lib_own = {}.hasOwnProperty
+
+/**
+ * @param value
+ * Markdown to parse.
+ * @param encoding
+ * Character encoding for when `value` is `Buffer`.
+ * @param options
+ * Configuration.
+ * @returns
+ * mdast tree.
+ */
+const fromMarkdown =
+ /**
+ * @type {(
+ * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
+ * ((value: Value, options?: Options | null | undefined) => Root)
+ * )}
+ */
+
+ /**
+ * @param {Value} value
+ * @param {Encoding | Options | null | undefined} [encoding]
+ * @param {Options | null | undefined} [options]
+ * @returns {Root}
+ */
+ function (value, encoding, options) {
+ if (typeof encoding !== 'string') {
+ options = encoding
+ encoding = undefined
+ }
+ return compiler(options)(
+ postprocess(
+ parse(options).document().write(preprocess()(value, encoding, true))
+ )
+ )
+ }
+
+/**
+ * Note this compiler only understand complete buffering, not streaming.
+ *
+ * @param {Options | null | undefined} [options]
+ */
+function compiler(options) {
+ /** @type {Config} */
+ const config = {
+ transforms: [],
+ canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
+ enter: {
+ autolink: opener(link),
+ autolinkProtocol: onenterdata,
+ autolinkEmail: onenterdata,
+ atxHeading: opener(heading),
+ blockQuote: opener(blockQuote),
+ characterEscape: onenterdata,
+ characterReference: onenterdata,
+ codeFenced: opener(codeFlow),
+ codeFencedFenceInfo: buffer,
+ codeFencedFenceMeta: buffer,
+ codeIndented: opener(codeFlow, buffer),
+ codeText: opener(codeText, buffer),
+ codeTextData: onenterdata,
+ data: onenterdata,
+ codeFlowValue: onenterdata,
+ definition: opener(definition),
+ definitionDestinationString: buffer,
+ definitionLabelString: buffer,
+ definitionTitleString: buffer,
+ emphasis: opener(emphasis),
+ hardBreakEscape: opener(hardBreak),
+ hardBreakTrailing: opener(hardBreak),
+ htmlFlow: opener(html, buffer),
+ htmlFlowData: onenterdata,
+ htmlText: opener(html, buffer),
+ htmlTextData: onenterdata,
+ image: opener(image),
+ label: buffer,
+ link: opener(link),
+ listItem: opener(listItem),
+ listItemValue: onenterlistitemvalue,
+ listOrdered: opener(list, onenterlistordered),
+ listUnordered: opener(list),
+ paragraph: opener(paragraph),
+ reference: onenterreference,
+ referenceString: buffer,
+ resourceDestinationString: buffer,
+ resourceTitleString: buffer,
+ setextHeading: opener(heading),
+ strong: opener(strong),
+ thematicBreak: opener(thematicBreak)
+ },
+ exit: {
+ atxHeading: closer(),
+ atxHeadingSequence: onexitatxheadingsequence,
+ autolink: closer(),
+ autolinkEmail: onexitautolinkemail,
+ autolinkProtocol: onexitautolinkprotocol,
+ blockQuote: closer(),
+ characterEscapeValue: onexitdata,
+ characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
+ characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
+ characterReferenceValue: onexitcharacterreferencevalue,
+ codeFenced: closer(onexitcodefenced),
+ codeFencedFence: onexitcodefencedfence,
+ codeFencedFenceInfo: onexitcodefencedfenceinfo,
+ codeFencedFenceMeta: onexitcodefencedfencemeta,
+ codeFlowValue: onexitdata,
+ codeIndented: closer(onexitcodeindented),
+ codeText: closer(onexitcodetext),
+ codeTextData: onexitdata,
+ data: onexitdata,
+ definition: closer(),
+ definitionDestinationString: onexitdefinitiondestinationstring,
+ definitionLabelString: onexitdefinitionlabelstring,
+ definitionTitleString: onexitdefinitiontitlestring,
+ emphasis: closer(),
+ hardBreakEscape: closer(onexithardbreak),
+ hardBreakTrailing: closer(onexithardbreak),
+ htmlFlow: closer(onexithtmlflow),
+ htmlFlowData: onexitdata,
+ htmlText: closer(onexithtmltext),
+ htmlTextData: onexitdata,
+ image: closer(onexitimage),
+ label: onexitlabel,
+ labelText: onexitlabeltext,
+ lineEnding: onexitlineending,
+ link: closer(onexitlink),
+ listItem: closer(),
+ listOrdered: closer(),
+ listUnordered: closer(),
+ paragraph: closer(),
+ referenceString: onexitreferencestring,
+ resourceDestinationString: onexitresourcedestinationstring,
+ resourceTitleString: onexitresourcetitlestring,
+ resource: onexitresource,
+ setextHeading: closer(onexitsetextheading),
+ setextHeadingLineSequence: onexitsetextheadinglinesequence,
+ setextHeadingText: onexitsetextheadingtext,
+ strong: closer(),
+ thematicBreak: closer()
+ }
+ }
+ configure(config, (options || {}).mdastExtensions || [])
+
+ /** @type {CompileData} */
+ const data = {}
+ return compile
+
+ /**
+ * Turn micromark events into an mdast tree.
+ *
+ * @param {Array} events
+ * Events.
+ * @returns {Root}
+ * mdast tree.
+ */
+ function compile(events) {
+ /** @type {Root} */
+ let tree = {
+ type: 'root',
+ children: []
+ }
+ /** @type {Omit} */
+ const context = {
+ stack: [tree],
+ tokenStack: [],
+ config,
+ enter,
+ exit,
+ buffer,
+ resume,
+ setData,
+ getData
+ }
+ /** @type {Array} */
+ const listStack = []
+ let index = -1
+ while (++index < events.length) {
+ // We preprocess lists to add `listItem` tokens, and to infer whether
+ // items the list itself are spread out.
+ if (
+ events[index][1].type === 'listOrdered' ||
+ events[index][1].type === 'listUnordered'
+ ) {
+ if (events[index][0] === 'enter') {
+ listStack.push(index)
+ } else {
+ const tail = listStack.pop()
+ index = prepareList(events, tail, index)
+ }
+ }
+ }
+ index = -1
+ while (++index < events.length) {
+ const handler = config[events[index][0]]
+ if (lib_own.call(handler, events[index][1].type)) {
+ handler[events[index][1].type].call(
+ Object.assign(
+ {
+ sliceSerialize: events[index][2].sliceSerialize
+ },
+ context
+ ),
+ events[index][1]
+ )
+ }
+ }
+
+ // Handle tokens still being open.
+ if (context.tokenStack.length > 0) {
+ const tail = context.tokenStack[context.tokenStack.length - 1]
+ const handler = tail[1] || defaultOnError
+ handler.call(context, undefined, tail[0])
+ }
+
+ // Figure out `root` position.
+ tree.position = {
+ start: lib_point(
+ events.length > 0
+ ? events[0][1].start
+ : {
+ line: 1,
+ column: 1,
+ offset: 0
+ }
+ ),
+ end: lib_point(
+ events.length > 0
+ ? events[events.length - 2][1].end
+ : {
+ line: 1,
+ column: 1,
+ offset: 0
+ }
+ )
+ }
+
+ // Call transforms.
+ index = -1
+ while (++index < config.transforms.length) {
+ tree = config.transforms[index](tree) || tree
+ }
+ return tree
+ }
+
+ /**
+ * @param {Array} events
+ * @param {number} start
+ * @param {number} length
+ * @returns {number}
+ */
+ function prepareList(events, start, length) {
+ let index = start - 1
+ let containerBalance = -1
+ let listSpread = false
+ /** @type {Token | undefined} */
+ let listItem
+ /** @type {number | undefined} */
+ let lineIndex
+ /** @type {number | undefined} */
+ let firstBlankLineIndex
+ /** @type {boolean | undefined} */
+ let atMarker
+ while (++index <= length) {
+ const event = events[index]
+ if (
+ event[1].type === 'listUnordered' ||
+ event[1].type === 'listOrdered' ||
+ event[1].type === 'blockQuote'
+ ) {
+ if (event[0] === 'enter') {
+ containerBalance++
+ } else {
+ containerBalance--
+ }
+ atMarker = undefined
+ } else if (event[1].type === 'lineEndingBlank') {
+ if (event[0] === 'enter') {
+ if (
+ listItem &&
+ !atMarker &&
+ !containerBalance &&
+ !firstBlankLineIndex
+ ) {
+ firstBlankLineIndex = index
+ }
+ atMarker = undefined
+ }
+ } else if (
+ event[1].type === 'linePrefix' ||
+ event[1].type === 'listItemValue' ||
+ event[1].type === 'listItemMarker' ||
+ event[1].type === 'listItemPrefix' ||
+ event[1].type === 'listItemPrefixWhitespace'
+ ) {
+ // Empty.
+ } else {
+ atMarker = undefined
+ }
+ if (
+ (!containerBalance &&
+ event[0] === 'enter' &&
+ event[1].type === 'listItemPrefix') ||
+ (containerBalance === -1 &&
+ event[0] === 'exit' &&
+ (event[1].type === 'listUnordered' ||
+ event[1].type === 'listOrdered'))
+ ) {
+ if (listItem) {
+ let tailIndex = index
+ lineIndex = undefined
+ while (tailIndex--) {
+ const tailEvent = events[tailIndex]
+ if (
+ tailEvent[1].type === 'lineEnding' ||
+ tailEvent[1].type === 'lineEndingBlank'
+ ) {
+ if (tailEvent[0] === 'exit') continue
+ if (lineIndex) {
+ events[lineIndex][1].type = 'lineEndingBlank'
+ listSpread = true
+ }
+ tailEvent[1].type = 'lineEnding'
+ lineIndex = tailIndex
+ } else if (
+ tailEvent[1].type === 'linePrefix' ||
+ tailEvent[1].type === 'blockQuotePrefix' ||
+ tailEvent[1].type === 'blockQuotePrefixWhitespace' ||
+ tailEvent[1].type === 'blockQuoteMarker' ||
+ tailEvent[1].type === 'listItemIndent'
+ ) {
+ // Empty
+ } else {
+ break
+ }
+ }
+ if (
+ firstBlankLineIndex &&
+ (!lineIndex || firstBlankLineIndex < lineIndex)
+ ) {
+ listItem._spread = true
+ }
+
+ // Fix position.
+ listItem.end = Object.assign(
+ {},
+ lineIndex ? events[lineIndex][1].start : event[1].end
+ )
+ events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])
+ index++
+ length++
+ }
+
+ // Create a new list item.
+ if (event[1].type === 'listItemPrefix') {
+ listItem = {
+ type: 'listItem',
+ _spread: false,
+ start: Object.assign({}, event[1].start),
+ // @ts-expect-error: we’ll add `end` in a second.
+ end: undefined
+ }
+ // @ts-expect-error: `listItem` is most definitely defined, TS...
+ events.splice(index, 0, ['enter', listItem, event[2]])
+ index++
+ length++
+ firstBlankLineIndex = undefined
+ atMarker = true
+ }
+ }
+ }
+ events[start][1]._spread = listSpread
+ return length
+ }
+
+ /**
+ * Set data.
+ *
+ * @template {keyof CompileData} Key
+ * Field type.
+ * @param {Key} key
+ * Key of field.
+ * @param {CompileData[Key]} [value]
+ * New value.
+ * @returns {void}
+ * Nothing.
+ */
+ function setData(key, value) {
+ data[key] = value
+ }
+
+ /**
+ * Get data.
+ *
+ * @template {keyof CompileData} Key
+ * Field type.
+ * @param {Key} key
+ * Key of field.
+ * @returns {CompileData[Key]}
+ * Value.
+ */
+ function getData(key) {
+ return data[key]
+ }
+
+ /**
+ * Create an opener handle.
+ *
+ * @param {(token: Token) => Node} create
+ * Create a node.
+ * @param {Handle} [and]
+ * Optional function to also run.
+ * @returns {Handle}
+ * Handle.
+ */
+ function opener(create, and) {
+ return open
+
+ /**
+ * @this {CompileContext}
+ * @param {Token} token
+ * @returns {void}
+ */
+ function open(token) {
+ enter.call(this, create(token), token)
+ if (and) and.call(this, token)
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * @returns {void}
+ */
+ function buffer() {
+ this.stack.push({
+ type: 'fragment',
+ children: []
+ })
+ }
+
+ /**
+ * @template {Node} Kind
+ * Node type.
+ * @this {CompileContext}
+ * Context.
+ * @param {Kind} node
+ * Node to enter.
+ * @param {Token} token
+ * Corresponding token.
+ * @param {OnEnterError | undefined} [errorHandler]
+ * Handle the case where this token is open, but it is closed by something else.
+ * @returns {Kind}
+ * The given node.
+ */
+ function enter(node, token, errorHandler) {
+ const parent = this.stack[this.stack.length - 1]
+ // @ts-expect-error: Assume `Node` can exist as a child of `parent`.
+ parent.children.push(node)
+ this.stack.push(node)
+ this.tokenStack.push([token, errorHandler])
+ // @ts-expect-error: `end` will be patched later.
+ node.position = {
+ start: lib_point(token.start)
+ }
+ return node
+ }
+
+ /**
+ * Create a closer handle.
+ *
+ * @param {Handle} [and]
+ * Optional function to also run.
+ * @returns {Handle}
+ * Handle.
+ */
+ function closer(and) {
+ return close
+
+ /**
+ * @this {CompileContext}
+ * @param {Token} token
+ * @returns {void}
+ */
+ function close(token) {
+ if (and) and.call(this, token)
+ exit.call(this, token)
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * Context.
+ * @param {Token} token
+ * Corresponding token.
+ * @param {OnExitError | undefined} [onExitError]
+ * Handle the case where another token is open.
+ * @returns {Node}
+ * The closed node.
+ */
+ function exit(token, onExitError) {
+ const node = this.stack.pop()
+ const open = this.tokenStack.pop()
+ if (!open) {
+ throw new Error(
+ 'Cannot close `' +
+ token.type +
+ '` (' +
+ stringifyPosition({
+ start: token.start,
+ end: token.end
+ }) +
+ '): it’s not open'
+ )
+ } else if (open[0].type !== token.type) {
+ if (onExitError) {
+ onExitError.call(this, token, open[0])
+ } else {
+ const handler = open[1] || defaultOnError
+ handler.call(this, token, open[0])
+ }
+ }
+ node.position.end = lib_point(token.end)
+ return node
+ }
+
+ /**
+ * @this {CompileContext}
+ * @returns {string}
+ */
+ function resume() {
+ return lib_toString(this.stack.pop())
+ }
+
+ //
+ // Handlers.
+ //
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onenterlistordered() {
+ setData('expectingFirstListItemValue', true)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onenterlistitemvalue(token) {
+ if (getData('expectingFirstListItemValue')) {
+ const ancestor = this.stack[this.stack.length - 2]
+ ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)
+ setData('expectingFirstListItemValue')
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcodefencedfenceinfo() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.lang = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcodefencedfencemeta() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.meta = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcodefencedfence() {
+ // Exit if this is the closing fence.
+ if (getData('flowCodeInside')) return
+ this.buffer()
+ setData('flowCodeInside', true)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcodefenced() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
+ setData('flowCodeInside')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcodeindented() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.value = data.replace(/(\r?\n|\r)$/g, '')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitdefinitionlabelstring(token) {
+ const label = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.label = label
+ node.identifier = normalizeIdentifier(
+ this.sliceSerialize(token)
+ ).toLowerCase()
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitdefinitiontitlestring() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.title = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitdefinitiondestinationstring() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.url = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitatxheadingsequence(token) {
+ const node = this.stack[this.stack.length - 1]
+ if (!node.depth) {
+ const depth = this.sliceSerialize(token).length
+ node.depth = depth
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitsetextheadingtext() {
+ setData('setextHeadingSlurpLineEnding', true)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitsetextheadinglinesequence(token) {
+ const node = this.stack[this.stack.length - 1]
+ node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitsetextheading() {
+ setData('setextHeadingSlurpLineEnding')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onenterdata(token) {
+ const node = this.stack[this.stack.length - 1]
+ let tail = node.children[node.children.length - 1]
+ if (!tail || tail.type !== 'text') {
+ // Add a new text node.
+ tail = text()
+ // @ts-expect-error: we’ll add `end` later.
+ tail.position = {
+ start: lib_point(token.start)
+ }
+ // @ts-expect-error: Assume `parent` accepts `text`.
+ node.children.push(tail)
+ }
+ this.stack.push(tail)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitdata(token) {
+ const tail = this.stack.pop()
+ tail.value += this.sliceSerialize(token)
+ tail.position.end = lib_point(token.end)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitlineending(token) {
+ const context = this.stack[this.stack.length - 1]
+ // If we’re at a hard break, include the line ending in there.
+ if (getData('atHardBreak')) {
+ const tail = context.children[context.children.length - 1]
+ tail.position.end = lib_point(token.end)
+ setData('atHardBreak')
+ return
+ }
+ if (
+ !getData('setextHeadingSlurpLineEnding') &&
+ config.canContainEols.includes(context.type)
+ ) {
+ onenterdata.call(this, token)
+ onexitdata.call(this, token)
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexithardbreak() {
+ setData('atHardBreak', true)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexithtmlflow() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.value = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexithtmltext() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.value = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitcodetext() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.value = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitlink() {
+ const node = this.stack[this.stack.length - 1]
+ // Note: there are also `identifier` and `label` fields on this link node!
+ // These are used / cleaned here.
+ // To do: clean.
+ if (getData('inReference')) {
+ /** @type {ReferenceType} */
+ const referenceType = getData('referenceType') || 'shortcut'
+ node.type += 'Reference'
+ // @ts-expect-error: mutate.
+ node.referenceType = referenceType
+ // @ts-expect-error: mutate.
+ delete node.url
+ delete node.title
+ } else {
+ // @ts-expect-error: mutate.
+ delete node.identifier
+ // @ts-expect-error: mutate.
+ delete node.label
+ }
+ setData('referenceType')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitimage() {
+ const node = this.stack[this.stack.length - 1]
+ // Note: there are also `identifier` and `label` fields on this link node!
+ // These are used / cleaned here.
+ // To do: clean.
+ if (getData('inReference')) {
+ /** @type {ReferenceType} */
+ const referenceType = getData('referenceType') || 'shortcut'
+ node.type += 'Reference'
+ // @ts-expect-error: mutate.
+ node.referenceType = referenceType
+ // @ts-expect-error: mutate.
+ delete node.url
+ delete node.title
+ } else {
+ // @ts-expect-error: mutate.
+ delete node.identifier
+ // @ts-expect-error: mutate.
+ delete node.label
+ }
+ setData('referenceType')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitlabeltext(token) {
+ const string = this.sliceSerialize(token)
+ const ancestor = this.stack[this.stack.length - 2]
+ // @ts-expect-error: stash this on the node, as it might become a reference
+ // later.
+ ancestor.label = decodeString(string)
+ // @ts-expect-error: same as above.
+ ancestor.identifier = normalizeIdentifier(string).toLowerCase()
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitlabel() {
+ const fragment = this.stack[this.stack.length - 1]
+ const value = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ // Assume a reference.
+ setData('inReference', true)
+ if (node.type === 'link') {
+ /** @type {Array} */
+ // @ts-expect-error: Assume static phrasing content.
+ const children = fragment.children
+ node.children = children
+ } else {
+ node.alt = value
+ }
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitresourcedestinationstring() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.url = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitresourcetitlestring() {
+ const data = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ node.title = data
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitresource() {
+ setData('inReference')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onenterreference() {
+ setData('referenceType', 'collapsed')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitreferencestring(token) {
+ const label = this.resume()
+ const node = this.stack[this.stack.length - 1]
+ // @ts-expect-error: stash this on the node, as it might become a reference
+ // later.
+ node.label = label
+ // @ts-expect-error: same as above.
+ node.identifier = normalizeIdentifier(
+ this.sliceSerialize(token)
+ ).toLowerCase()
+ setData('referenceType', 'full')
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+
+ function onexitcharacterreferencemarker(token) {
+ setData('characterReferenceType', token.type)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitcharacterreferencevalue(token) {
+ const data = this.sliceSerialize(token)
+ const type = getData('characterReferenceType')
+ /** @type {string} */
+ let value
+ if (type) {
+ value = decodeNumericCharacterReference(
+ data,
+ type === 'characterReferenceMarkerNumeric' ? 10 : 16
+ )
+ setData('characterReferenceType')
+ } else {
+ const result = decodeNamedCharacterReference(data)
+ value = result
+ }
+ const tail = this.stack.pop()
+ tail.value += value
+ tail.position.end = lib_point(token.end)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitautolinkprotocol(token) {
+ onexitdata.call(this, token)
+ const node = this.stack[this.stack.length - 1]
+ node.url = this.sliceSerialize(token)
+ }
+
+ /**
+ * @this {CompileContext}
+ * @type {Handle}
+ */
+ function onexitautolinkemail(token) {
+ onexitdata.call(this, token)
+ const node = this.stack[this.stack.length - 1]
+ node.url = 'mailto:' + this.sliceSerialize(token)
+ }
+
+ //
+ // Creaters.
+ //
+
+ /** @returns {Blockquote} */
+ function blockQuote() {
+ return {
+ type: 'blockquote',
+ children: []
+ }
+ }
+
+ /** @returns {Code} */
+ function codeFlow() {
+ return {
+ type: 'code',
+ lang: null,
+ meta: null,
+ value: ''
+ }
+ }
+
+ /** @returns {InlineCode} */
+ function codeText() {
+ return {
+ type: 'inlineCode',
+ value: ''
+ }
+ }
+
+ /** @returns {Definition} */
+ function definition() {
+ return {
+ type: 'definition',
+ identifier: '',
+ label: null,
+ title: null,
+ url: ''
+ }
+ }
+
+ /** @returns {Emphasis} */
+ function emphasis() {
+ return {
+ type: 'emphasis',
+ children: []
+ }
+ }
+
+ /** @returns {Heading} */
+ function heading() {
+ // @ts-expect-error `depth` will be set later.
+ return {
+ type: 'heading',
+ depth: undefined,
+ children: []
+ }
+ }
+
+ /** @returns {Break} */
+ function hardBreak() {
+ return {
+ type: 'break'
+ }
+ }
+
+ /** @returns {HTML} */
+ function html() {
+ return {
+ type: 'html',
+ value: ''
+ }
+ }
+
+ /** @returns {Image} */
+ function image() {
+ return {
+ type: 'image',
+ title: null,
+ url: '',
+ alt: null
+ }
+ }
+
+ /** @returns {Link} */
+ function link() {
+ return {
+ type: 'link',
+ title: null,
+ url: '',
+ children: []
+ }
+ }
+
+ /**
+ * @param {Token} token
+ * @returns {List}
+ */
+ function list(token) {
+ return {
+ type: 'list',
+ ordered: token.type === 'listOrdered',
+ start: null,
+ spread: token._spread,
+ children: []
+ }
+ }
+
+ /**
+ * @param {Token} token
+ * @returns {ListItem}
+ */
+ function listItem(token) {
+ return {
+ type: 'listItem',
+ spread: token._spread,
+ checked: null,
+ children: []
+ }
+ }
+
+ /** @returns {Paragraph} */
+ function paragraph() {
+ return {
+ type: 'paragraph',
+ children: []
+ }
+ }
+
+ /** @returns {Strong} */
+ function strong() {
+ return {
+ type: 'strong',
+ children: []
+ }
+ }
+
+ /** @returns {Text} */
+ function text() {
+ return {
+ type: 'text',
+ value: ''
+ }
+ }
+
+ /** @returns {ThematicBreak} */
+ function thematicBreak() {
+ return {
+ type: 'thematicBreak'
+ }
+ }
+}
+
+/**
+ * Copy a point-like value.
+ *
+ * @param {Point} d
+ * Point-like value.
+ * @returns {Point}
+ * unist point.
+ */
+function lib_point(d) {
+ return {
+ line: d.line,
+ column: d.column,
+ offset: d.offset
+ }
+}
+
+/**
+ * @param {Config} combined
+ * @param {Array>} extensions
+ * @returns {void}
+ */
+function configure(combined, extensions) {
+ let index = -1
+ while (++index < extensions.length) {
+ const value = extensions[index]
+ if (Array.isArray(value)) {
+ configure(combined, value)
+ } else {
+ extension(combined, value)
+ }
+ }
+}
+
+/**
+ * @param {Config} combined
+ * @param {Extension} extension
+ * @returns {void}
+ */
+function extension(combined, extension) {
+ /** @type {keyof Extension} */
+ let key
+ for (key in extension) {
+ if (lib_own.call(extension, key)) {
+ if (key === 'canContainEols') {
+ const right = extension[key]
+ if (right) {
+ combined[key].push(...right)
+ }
+ } else if (key === 'transforms') {
+ const right = extension[key]
+ if (right) {
+ combined[key].push(...right)
+ }
+ } else if (key === 'enter' || key === 'exit') {
+ const right = extension[key]
+ if (right) {
+ Object.assign(combined[key], right)
+ }
+ }
+ }
+ }
+}
+
+/** @type {OnEnterError} */
+function defaultOnError(left, right) {
+ if (left) {
+ throw new Error(
+ 'Cannot close `' +
+ left.type +
+ '` (' +
+ stringifyPosition({
+ start: left.start,
+ end: left.end
+ }) +
+ '): a different token (`' +
+ right.type +
+ '`, ' +
+ stringifyPosition({
+ start: right.start,
+ end: right.end
+ }) +
+ ') is open'
+ )
+ } else {
+ throw new Error(
+ 'Cannot close document, a token (`' +
+ right.type +
+ '`, ' +
+ stringifyPosition({
+ start: right.start,
+ end: right.end
+ }) +
+ ') is still open'
+ )
+ }
+}
+
+// EXTERNAL MODULE: ./node_modules/ts-dedent/esm/index.js
+var esm = __webpack_require__(8464);
+;// CONCATENATED MODULE: ./node_modules/mermaid/dist/createText-aebacdfe.js
+
+
+
+function preprocessMarkdown(markdown) {
+ const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n");
+ const withoutExtraSpaces = (0,esm/* dedent */.Z)(withoutMultipleNewlines);
+ return withoutExtraSpaces;
+}
+function markdownToLines(markdown) {
+ const preprocessedMarkdown = preprocessMarkdown(markdown);
+ const { children } = fromMarkdown(preprocessedMarkdown);
+ const lines = [[]];
+ let currentLine = 0;
+ function processNode(node, parentType = "normal") {
+ if (node.type === "text") {
+ const textLines = node.value.split("\n");
+ textLines.forEach((textLine, index) => {
+ if (index !== 0) {
+ currentLine++;
+ lines.push([]);
+ }
+ textLine.split(" ").forEach((word) => {
+ if (word) {
+ lines[currentLine].push({ content: word, type: parentType });
+ }
+ });
+ });
+ } else if (node.type === "strong" || node.type === "emphasis") {
+ node.children.forEach((contentNode) => {
+ processNode(contentNode, node.type);
+ });
+ }
+ }
+ children.forEach((treeNode) => {
+ if (treeNode.type === "paragraph") {
+ treeNode.children.forEach((contentNode) => {
+ processNode(contentNode);
+ });
+ }
+ });
+ return lines;
+}
+function markdownToHTML(markdown) {
+ const { children } = fromMarkdown(markdown);
+ function output(node) {
+ if (node.type === "text") {
+ return node.value.replace(/\n/g, "
");
+ } else if (node.type === "strong") {
+ return `${node.children.map(output).join("")}`;
+ } else if (node.type === "emphasis") {
+ return `${node.children.map(output).join("")}`;
+ } else if (node.type === "paragraph") {
+ return `${node.children.map(output).join("")}
`;
+ }
+ return `Unsupported markdown: ${node.type}`;
+ }
+ return children.map(output).join("");
+}
+function splitTextToChars(text) {
+ if (Intl.Segmenter) {
+ return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);
+ }
+ return [...text];
+}
+function splitWordToFitWidth(checkFit, word) {
+ const characters = splitTextToChars(word.content);
+ return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);
+}
+function splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {
+ if (remainingChars.length === 0) {
+ return [
+ { content: usedChars.join(""), type },
+ { content: "", type }
+ ];
+ }
+ const [nextChar, ...rest] = remainingChars;
+ const newWord = [...usedChars, nextChar];
+ if (checkFit([{ content: newWord.join(""), type }])) {
+ return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);
+ }
+ if (usedChars.length === 0 && nextChar) {
+ usedChars.push(nextChar);
+ remainingChars.shift();
+ }
+ return [
+ { content: usedChars.join(""), type },
+ { content: remainingChars.join(""), type }
+ ];
+}
+function splitLineToFitWidth(line, checkFit) {
+ if (line.some(({ content }) => content.includes("\n"))) {
+ throw new Error("splitLineToFitWidth does not support newlines in the line");
+ }
+ return splitLineToFitWidthRecursion(line, checkFit);
+}
+function splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {
+ if (words.length === 0) {
+ if (newLine.length > 0) {
+ lines.push(newLine);
+ }
+ return lines.length > 0 ? lines : [];
+ }
+ let joiner = "";
+ if (words[0].content === " ") {
+ joiner = " ";
+ words.shift();
+ }
+ const nextWord = words.shift() ?? { content: " ", type: "normal" };
+ const lineWithNextWord = [...newLine];
+ if (joiner !== "") {
+ lineWithNextWord.push({ content: joiner, type: "normal" });
+ }
+ lineWithNextWord.push(nextWord);
+ if (checkFit(lineWithNextWord)) {
+ return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);
+ }
+ if (newLine.length > 0) {
+ lines.push(newLine);
+ words.unshift(nextWord);
+ } else if (nextWord.content) {
+ const [line, rest] = splitWordToFitWidth(checkFit, nextWord);
+ lines.push([line]);
+ if (rest.content) {
+ words.unshift(rest);
+ }
+ }
+ return splitLineToFitWidthRecursion(words, checkFit, lines);
+}
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function addHtmlSpan(element, node, width, classes, addBackground = false) {
+ const fo = element.append("foreignObject");
+ const div = fo.append("xhtml:div");
+ const label = node.label;
+ const labelClass = node.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ `
+ " + label + ""
+ );
+ applyStyle(div, node.labelStyle);
+ div.style("display", "table-cell");
+ div.style("white-space", "nowrap");
+ div.style("max-width", width + "px");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ if (addBackground) {
+ div.attr("class", "labelBkg");
+ }
+ let bbox = div.node().getBoundingClientRect();
+ if (bbox.width === width) {
+ div.style("display", "table");
+ div.style("white-space", "break-spaces");
+ div.style("width", width + "px");
+ bbox = div.node().getBoundingClientRect();
+ }
+ fo.style("width", bbox.width);
+ fo.style("height", bbox.height);
+ return fo.node();
+}
+function createTspan(textElement, lineIndex, lineHeight) {
+ return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
+}
+function computeWidthOfText(parentNode, lineHeight, line) {
+ const testElement = parentNode.append("text");
+ const testSpan = createTspan(testElement, 1, lineHeight);
+ updateTextContentAndStyles(testSpan, line);
+ const textLength = testSpan.node().getComputedTextLength();
+ testElement.remove();
+ return textLength;
+}
+function computeDimensionOfText(parentNode, lineHeight, text) {
+ var _a;
+ const testElement = parentNode.append("text");
+ const testSpan = createTspan(testElement, 1, lineHeight);
+ updateTextContentAndStyles(testSpan, [{ content: text, type: "normal" }]);
+ const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect();
+ if (textDimension) {
+ testElement.remove();
+ }
+ return textDimension;
+}
+function createFormattedText(width, g, structuredText, addBackground = false) {
+ const lineHeight = 1.1;
+ const labelGroup = g.append("g");
+ const bkg = labelGroup.insert("rect").attr("class", "background");
+ const textElement = labelGroup.append("text").attr("y", "-10.1");
+ let lineIndex = 0;
+ for (const line of structuredText) {
+ const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width;
+ const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);
+ for (const preparedLine of linesUnderWidth) {
+ const tspan = createTspan(textElement, lineIndex, lineHeight);
+ updateTextContentAndStyles(tspan, preparedLine);
+ lineIndex++;
+ }
+ }
+ if (addBackground) {
+ const bbox = textElement.node().getBBox();
+ const padding = 2;
+ bkg.attr("x", -padding).attr("y", -padding).attr("width", bbox.width + 2 * padding).attr("height", bbox.height + 2 * padding);
+ return labelGroup.node();
+ } else {
+ return textElement.node();
+ }
+}
+function updateTextContentAndStyles(tspan, wrappedLine) {
+ tspan.text("");
+ wrappedLine.forEach((word, index) => {
+ const innerTspan = tspan.append("tspan").attr("font-style", word.type === "emphasis" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
+ if (index === 0) {
+ innerTspan.text(word.content);
+ } else {
+ innerTspan.text(" " + word.content);
+ }
+ });
+}
+const createText = (el, text = "", {
+ style = "",
+ isTitle = false,
+ classes = "",
+ useHtmlLabels = true,
+ isNode = true,
+ width = 200,
+ addSvgBackground = false
+} = {}) => {
+ mermaid_934d9bea.l.info("createText", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);
+ if (useHtmlLabels) {
+ const htmlText = markdownToHTML(text);
+ const node = {
+ isNode,
+ label: (0,mermaid_934d9bea.J)(htmlText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ ),
+ labelStyle: style.replace("fill:", "color:")
+ };
+ const vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground);
+ return vertexNode;
+ } else {
+ const structuredText = markdownToLines(text);
+ const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);
+ return svgLabel;
+ }
+};
+
+
+
+/***/ }),
+
+/***/ 9138:
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ diagram: () => (/* binding */ diagram)
+/* harmony export */ });
+/* harmony import */ var _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5322);
+/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4218);
+/* harmony import */ var _createText_aebacdfe_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(4511);
+/* harmony import */ var cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1377);
+/* harmony import */ var cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4607);
+/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1619);
+/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2281);
+/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(7201);
+/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7484);
+/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7967);
+/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(683);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
+ productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ case 7:
+ return yy;
+ case 8:
+ yy.getLogger().trace("Stop NL ");
+ break;
+ case 9:
+ yy.getLogger().trace("Stop EOF ");
+ break;
+ case 11:
+ yy.getLogger().trace("Stop NL2 ");
+ break;
+ case 12:
+ yy.getLogger().trace("Stop EOF2 ");
+ break;
+ case 15:
+ yy.getLogger().info("Node: ", $$[$0].id);
+ yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 16:
+ yy.getLogger().trace("Icon: ", $$[$0]);
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 17:
+ case 21:
+ yy.decorateNode({ class: $$[$0] });
+ break;
+ case 18:
+ yy.getLogger().trace("SPACELIST");
+ break;
+ case 19:
+ yy.getLogger().trace("Node: ", $$[$0].id);
+ yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 20:
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 25:
+ yy.getLogger().trace("node found ..", $$[$0 - 2]);
+ this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ case 26:
+ this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
+ break;
+ case 27:
+ yy.getLogger().trace("node found ..", $$[$0 - 3]);
+ this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],
+ defaultActions: { 2: [2, 1], 6: [2, 2] },
+ parseError: function parseError2(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError2(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // 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.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ yy.getLogger().trace("Found comment", yy_.yytext);
+ return 6;
+ case 1:
+ return 8;
+ case 2:
+ this.begin("CLASS");
+ break;
+ case 3:
+ this.popState();
+ return 16;
+ case 4:
+ this.popState();
+ break;
+ case 5:
+ yy.getLogger().trace("Begin icon");
+ this.begin("ICON");
+ break;
+ case 6:
+ yy.getLogger().trace("SPACELINE");
+ return 6;
+ case 7:
+ return 7;
+ case 8:
+ return 15;
+ case 9:
+ yy.getLogger().trace("end icon");
+ this.popState();
+ break;
+ case 10:
+ yy.getLogger().trace("Exploding node");
+ this.begin("NODE");
+ return 19;
+ case 11:
+ yy.getLogger().trace("Cloud");
+ this.begin("NODE");
+ return 19;
+ case 12:
+ yy.getLogger().trace("Explosion Bang");
+ this.begin("NODE");
+ return 19;
+ case 13:
+ yy.getLogger().trace("Cloud Bang");
+ this.begin("NODE");
+ return 19;
+ case 14:
+ this.begin("NODE");
+ return 19;
+ case 15:
+ this.begin("NODE");
+ return 19;
+ case 16:
+ this.begin("NODE");
+ return 19;
+ case 17:
+ this.begin("NODE");
+ return 19;
+ case 18:
+ return 13;
+ case 19:
+ return 22;
+ case 20:
+ return 11;
+ case 21:
+ this.begin("NSTR2");
+ break;
+ case 22:
+ return "NODE_DESCR";
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ yy.getLogger().trace("Starting NSTR");
+ this.begin("NSTR");
+ break;
+ case 25:
+ yy.getLogger().trace("description:", yy_.yytext);
+ return "NODE_DESCR";
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ this.popState();
+ yy.getLogger().trace("node end ))");
+ return "NODE_DEND";
+ case 28:
+ this.popState();
+ yy.getLogger().trace("node end )");
+ return "NODE_DEND";
+ case 29:
+ this.popState();
+ yy.getLogger().trace("node end ...", yy_.yytext);
+ return "NODE_DEND";
+ case 30:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 31:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 32:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 33:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 34:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 35:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ case 36:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ }
+ },
+ rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
+ conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const mindmapParser = parser;
+const sanitizeText = (text) => (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.d)(text, (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.c)());
+let nodes = [];
+let cnt = 0;
+let elements = {};
+const clear = () => {
+ nodes = [];
+ cnt = 0;
+ elements = {};
+};
+const getParent = function(level) {
+ for (let i = nodes.length - 1; i >= 0; i--) {
+ if (nodes[i].level < level) {
+ return nodes[i];
+ }
+ }
+ return null;
+};
+const getMindmap = () => {
+ return nodes.length > 0 ? nodes[0] : null;
+};
+const addNode = (level, id, descr, type) => {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.info("addNode", level, id, descr, type);
+ const conf = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.c)();
+ const node = {
+ id: cnt++,
+ nodeId: sanitizeText(id),
+ level,
+ descr: sanitizeText(descr),
+ type,
+ children: [],
+ width: (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.c)().mindmap.maxNodeWidth
+ };
+ switch (node.type) {
+ case nodeType.ROUNDED_RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.HEXAGON:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ default:
+ node.padding = conf.mindmap.padding;
+ }
+ const parent = getParent(level);
+ if (parent) {
+ parent.children.push(node);
+ nodes.push(node);
+ } else {
+ if (nodes.length === 0) {
+ nodes.push(node);
+ } else {
+ let error = new Error(
+ 'There can be only one root. No parent could be found for ("' + node.descr + '")'
+ );
+ error.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ };
+ throw error;
+ }
+ }
+};
+const nodeType = {
+ DEFAULT: 0,
+ NO_BORDER: 0,
+ ROUNDED_RECT: 1,
+ RECT: 2,
+ CIRCLE: 3,
+ CLOUD: 4,
+ BANG: 5,
+ HEXAGON: 6
+};
+const getType = (startStr, endStr) => {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.debug("In get type", startStr, endStr);
+ switch (startStr) {
+ case "[":
+ return nodeType.RECT;
+ case "(":
+ return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
+ case "((":
+ return nodeType.CIRCLE;
+ case ")":
+ return nodeType.CLOUD;
+ case "))":
+ return nodeType.BANG;
+ case "{{":
+ return nodeType.HEXAGON;
+ default:
+ return nodeType.DEFAULT;
+ }
+};
+const setElementForId = (id, element) => {
+ elements[id] = element;
+};
+const decorateNode = (decoration) => {
+ const node = nodes[nodes.length - 1];
+ if (decoration && decoration.icon) {
+ node.icon = sanitizeText(decoration.icon);
+ }
+ if (decoration && decoration.class) {
+ node.class = sanitizeText(decoration.class);
+ }
+};
+const type2Str = (type) => {
+ switch (type) {
+ case nodeType.DEFAULT:
+ return "no-border";
+ case nodeType.RECT:
+ return "rect";
+ case nodeType.ROUNDED_RECT:
+ return "rounded-rect";
+ case nodeType.CIRCLE:
+ return "circle";
+ case nodeType.CLOUD:
+ return "cloud";
+ case nodeType.BANG:
+ return "bang";
+ case nodeType.HEXAGON:
+ return "hexgon";
+ default:
+ return "no-border";
+ }
+};
+let parseError;
+const setErrorHandler = (handler) => {
+ parseError = handler;
+};
+const getLogger = () => _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l;
+const getNodeById = (id) => nodes[id];
+const getElementById = (id) => elements[id];
+const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addNode,
+ clear,
+ decorateNode,
+ getElementById,
+ getLogger,
+ getMindmap,
+ getNodeById,
+ getType,
+ nodeType,
+ get parseError() {
+ return parseError;
+ },
+ sanitizeText,
+ setElementForId,
+ setErrorHandler,
+ type2Str
+}, Symbol.toStringTag, { value: "Module" }));
+const MAX_SECTIONS = 12;
+const defaultBkg = function(elem, node, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
+};
+const rectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width);
+};
+const cloudBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r1 = 0.15 * w;
+ const r2 = 0.25 * w;
+ const r3 = 0.35 * w;
+ const r4 = 0.2 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}
+ a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}
+ a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}
+
+ a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}
+
+ a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}
+ a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}
+
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}
+
+ H0 V0 Z`
+ );
+};
+const bangBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r = 0.15 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}
+
+ a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}
+ a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}
+ a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}
+
+ H0 V0 Z`
+ );
+};
+const circleBkg = function(elem, node) {
+ elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2);
+};
+function insertPolygonShape(parent, w, h, points, node) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")");
+}
+const hexagonBkg = function(elem, node) {
+ const h = node.height;
+ const f = 4;
+ const m = h / f;
+ const w = node.width - node.padding + 2 * m;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ insertPolygonShape(elem, w, h, points, node);
+};
+const roundedRectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width);
+};
+const drawNode = function(elem, node, fullSection, conf) {
+ const htmlLabels = conf.htmlLabels;
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const nodeElem = elem.append("g");
+ node.section = section;
+ let sectionClass = "section-" + section;
+ if (section < 0) {
+ sectionClass += " section-root";
+ }
+ nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass);
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const description = node.descr.replace(/(
)/g, "\n");
+ (0,_createText_aebacdfe_js__WEBPACK_IMPORTED_MODULE_7__.a)(textElem, description, {
+ useHtmlLabels: htmlLabels,
+ width: node.width,
+ classes: "mindmap-node-label"
+ });
+ if (!htmlLabels) {
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ }
+ const bbox = textElem.node().getBBox();
+ const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+ node.width = bbox.width + 2 * node.padding;
+ if (node.icon) {
+ if (node.type === nodeType.CIRCLE) {
+ node.height += 50;
+ node.width += 50;
+ const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")"
+ );
+ } else {
+ node.width += 50;
+ const orgHeight = node.height;
+ node.height = Math.max(orgHeight, 60);
+ const heightDiff = Math.abs(node.height - orgHeight);
+ const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")"
+ );
+ }
+ } else {
+ if (!htmlLabels) {
+ const dx = node.width / 2;
+ const dy = node.padding / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ } else {
+ const dx = (node.width - bbox.width) / 2;
+ const dy = (node.height - bbox.height) / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ }
+ }
+ switch (node.type) {
+ case nodeType.DEFAULT:
+ defaultBkg(bkgElem, node, section);
+ break;
+ case nodeType.ROUNDED_RECT:
+ roundedRectBkg(bkgElem, node);
+ break;
+ case nodeType.RECT:
+ rectBkg(bkgElem, node);
+ break;
+ case nodeType.CIRCLE:
+ bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")");
+ circleBkg(bkgElem, node);
+ break;
+ case nodeType.CLOUD:
+ cloudBkg(bkgElem, node);
+ break;
+ case nodeType.BANG:
+ bangBkg(bkgElem, node);
+ break;
+ case nodeType.HEXAGON:
+ hexagonBkg(bkgElem, node);
+ break;
+ }
+ setElementForId(node.id, nodeElem);
+ return node.height;
+};
+const drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) {
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const sx = parent.x + parent.width / 2;
+ const sy = parent.y + parent.height / 2;
+ const ex = mindmap.x + mindmap.width / 2;
+ const ey = mindmap.y + mindmap.height / 2;
+ const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;
+ const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;
+ const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;
+ const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;
+ edgesElem.append("path").attr(
+ "d",
+ parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`
+ ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth);
+};
+const positionNode = function(node) {
+ const nodeElem = getElementById(node.id);
+ const x = node.x || 0;
+ const y = node.y || 0;
+ nodeElem.attr("transform", "translate(" + x + "," + y + ")");
+};
+const svgDraw = { drawNode, positionNode, drawEdge };
+cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__.use(cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__);
+function drawNodes(svg, mindmap, section, conf) {
+ svgDraw.drawNode(svg, mindmap, section, conf);
+ if (mindmap.children) {
+ mindmap.children.forEach((child, index) => {
+ drawNodes(svg, child, section < 0 ? index : section, conf);
+ });
+ }
+}
+function drawEdges(edgesEl, cy) {
+ cy.edges().map((edge, id) => {
+ const data = edge.data();
+ if (edge[0]._private.bodyBounds) {
+ const bounds = edge[0]._private.rscratch;
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.trace("Edge: ", id, data);
+ edgesEl.insert("path").attr(
+ "d",
+ `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `
+ ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth);
+ }
+ });
+}
+function addNodes(mindmap, cy, conf, level) {
+ cy.add({
+ group: "nodes",
+ data: {
+ id: mindmap.id,
+ labelText: mindmap.descr,
+ height: mindmap.height,
+ width: mindmap.width,
+ level,
+ nodeId: mindmap.id,
+ padding: mindmap.padding,
+ type: mindmap.type
+ },
+ position: {
+ x: mindmap.x,
+ y: mindmap.y
+ }
+ });
+ if (mindmap.children) {
+ mindmap.children.forEach((child) => {
+ addNodes(child, cy, conf, level + 1);
+ cy.add({
+ group: "edges",
+ data: {
+ id: `${mindmap.id}_${child.id}`,
+ source: mindmap.id,
+ target: child.id,
+ depth: level,
+ section: child.section
+ }
+ });
+ });
+ }
+}
+function layoutMindmap(node, conf) {
+ return new Promise((resolve) => {
+ const renderEl = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body").append("div").attr("id", "cy").attr("style", "display:none");
+ const cy = cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__({
+ container: document.getElementById("cy"),
+ // container to render in
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "bezier"
+ }
+ }
+ ]
+ });
+ renderEl.remove();
+ addNodes(node, cy, conf, 0);
+ cy.nodes().forEach(function(n) {
+ n.layoutDimensions = () => {
+ const data = n.data();
+ return { w: data.width, h: data.height };
+ };
+ });
+ cy.layout({
+ name: "cose-bilkent",
+ quality: "proof",
+ // headless: true,
+ styleEnabled: false,
+ animate: false
+ }).run();
+ cy.ready((e) => {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.info("Ready", e);
+ resolve(cy);
+ });
+ });
+}
+function positionNodes(cy) {
+ cy.nodes().map((node, id) => {
+ const data = node.data();
+ data.x = node.position().x;
+ data.y = node.position().y;
+ svgDraw.positionNode(data);
+ const el = getElementById(data.nodeId);
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data);
+ el.attr(
+ "transform",
+ `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`
+ );
+ el.attr("attr", `apa-${id})`);
+ });
+}
+const draw = async (text, id, version, diagObj) => {
+ const conf = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.c)();
+ conf.htmlLabels = false;
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.l.debug("Rendering mindmap diagram\n" + text, diagObj.parser);
+ const securityLevel = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.c)().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body");
+ const svg = root.select("#" + id);
+ svg.append("g");
+ const mm = diagObj.db.getMindmap();
+ const edgesElem = svg.append("g");
+ edgesElem.attr("class", "mindmap-edges");
+ const nodesElem = svg.append("g");
+ nodesElem.attr("class", "mindmap-nodes");
+ drawNodes(nodesElem, mm, -1, conf);
+ const cy = await layoutMindmap(mm, conf);
+ drawEdges(edgesElem, cy);
+ positionNodes(cy);
+ (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_6__.o)(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);
+};
+const mindmapRenderer = {
+ draw
+};
+const genSections = (options) => {
+ let sections = "";
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i];
+ if ((0,khroma__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(options["lineColor" + i])) {
+ options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)(options["lineColor" + i], 20);
+ } else {
+ options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(options["lineColor" + i], 20);
+ }
+ }
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ const sw = "" + (17 - 3 * i);
+ sections += `
+ .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {
+ fill: ${options["cScale" + i]};
+ }
+ .section-${i - 1} text {
+ fill: ${options["cScaleLabel" + i]};
+ }
+ .node-icon-${i - 1} {
+ font-size: 40px;
+ color: ${options["cScaleLabel" + i]};
+ }
+ .section-edge-${i - 1}{
+ stroke: ${options["cScale" + i]};
+ }
+ .edge-depth-${i - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i - 1} line {
+ stroke: ${options["cScaleInv" + i]} ;
+ stroke-width: 3;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections;
+};
+const getStyles = (options) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options)}
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
+ fill: ${options.git0};
+ }
+ .section-root text {
+ fill: ${options.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .mindmap-node-label {
+ dy: 1em;
+ alignment-baseline: middle;
+ text-anchor: middle;
+ dominant-baseline: middle;
+ text-align: center;
+ }
+`;
+const mindmapStyles = getStyles;
+const diagram = {
+ db: mindmapDb,
+ renderer: mindmapRenderer,
+ parser: mindmapParser,
+ styles: mindmapStyles
+};
+
+
+
+/***/ })
+
+};
+;
\ No newline at end of file
diff --git a/assets/js/16.f6c38692.js b/assets/js/16.f6c38692.js
new file mode 100644
index 0000000..c1aa83d
--- /dev/null
+++ b/assets/js/16.f6c38692.js
@@ -0,0 +1,2106 @@
+exports.id = 16;
+exports.ids = [16];
+exports.modules = {
+
+/***/ 8734:
+/***/ (function(module) {
+
+!function(e,t){ true?module.exports=t():0}(this,(function(){"use strict";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return s.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return s.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return s.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return n.bind(this)(a)}}}));
+
+/***/ }),
+
+/***/ 285:
+/***/ (function(module) {
+
+!function(e,t){ true?module.exports=t():0}(this,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,i=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,a("seconds")],ss:[r,a("seconds")],m:[r,a("minutes")],mm:[r,a("minutes")],H:[r,a("hours")],h:[r,a("hours")],HH:[r,a("hours")],hh:[r,a("hours")],D:[r,a("day")],DD:[n,a("day")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,a("month")],MM:[n,a("month")],MMM:[i,function(e){var t=h("months"),n=(h("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\d{4}/,a("year")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date(("X"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date("")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date("")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(""))}else i.call(this,e)}}}));
+
+/***/ }),
+
+/***/ 9542:
+/***/ (function(module) {
+
+!function(e,t){ true?module.exports=t():0}(this,(function(){"use strict";var e="day";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf("year"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,"week")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return"isoweek"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):n.bind(this)(e,t)}}}));
+
+/***/ }),
+
+/***/ 8016:
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ diagram: () => (/* binding */ diagram)
+/* harmony export */ });
+/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7967);
+/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7484);
+/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9542);
+/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(285);
+/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8734);
+/* harmony import */ var _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5322);
+/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4218);
+/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(683);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "weekday": 11, "weekday_monday": 12, "weekday_tuesday": 13, "weekday_wednesday": 14, "weekday_thursday": 15, "weekday_friday": 16, "weekday_saturday": 17, "weekday_sunday": 18, "dateFormat": 19, "inclusiveEndDates": 20, "topAxis": 21, "axisFormat": 22, "tickInterval": 23, "excludes": 24, "includes": 25, "todayMarker": 26, "title": 27, "acc_title": 28, "acc_title_value": 29, "acc_descr": 30, "acc_descr_value": 31, "acc_descr_multiline_value": 32, "section": 33, "clickStatement": 34, "taskTxt": 35, "taskData": 36, "click": 37, "callbackname": 38, "callbackargs": 39, "href": 40, "clickStatementDebug": 41, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 19: "dateFormat", 20: "inclusiveEndDates", 21: "topAxis", 22: "axisFormat", 23: "tickInterval", 24: "excludes", 25: "includes", 26: "todayMarker", 27: "title", 28: "acc_title", 29: "acc_title_value", 30: "acc_descr", 31: "acc_descr_value", 32: "acc_descr_multiline_value", 33: "section", 35: "taskTxt", 36: "taskData", 37: "click", 38: "callbackname", 39: "callbackargs", 40: "href" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.setWeekday("monday");
+ break;
+ case 9:
+ yy.setWeekday("tuesday");
+ break;
+ case 10:
+ yy.setWeekday("wednesday");
+ break;
+ case 11:
+ yy.setWeekday("thursday");
+ break;
+ case 12:
+ yy.setWeekday("friday");
+ break;
+ case 13:
+ yy.setWeekday("saturday");
+ break;
+ case 14:
+ yy.setWeekday("sunday");
+ break;
+ case 15:
+ yy.setDateFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 16:
+ yy.enableInclusiveEndDates();
+ this.$ = $$[$0].substr(18);
+ break;
+ case 17:
+ yy.TopAxis();
+ this.$ = $$[$0].substr(8);
+ break;
+ case 18:
+ yy.setAxisFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 19:
+ yy.setTickInterval($$[$0].substr(13));
+ this.$ = $$[$0].substr(13);
+ break;
+ case 20:
+ yy.setExcludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 21:
+ yy.setIncludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 22:
+ yy.setTodayMarker($$[$0].substr(12));
+ this.$ = $$[$0].substr(12);
+ break;
+ case 24:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 25:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 26:
+ case 27:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 28:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 30:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 31:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0], null);
+ break;
+ case 32:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 33:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 34:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setLink($$[$0 - 3], $$[$0]);
+ break;
+ case 35:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0], null);
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ break;
+ case 36:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ break;
+ case 37:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 38:
+ case 44:
+ this.$ = $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 39:
+ case 40:
+ case 42:
+ this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 41:
+ case 43:
+ this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])],
+ defaultActions: {},
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // 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.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return "open_directive";
+ case 1:
+ this.begin("acc_title");
+ return 28;
+ case 2:
+ this.popState();
+ return "acc_title_value";
+ case 3:
+ this.begin("acc_descr");
+ return 30;
+ case 4:
+ this.popState();
+ return "acc_descr_value";
+ case 5:
+ this.begin("acc_descr_multiline");
+ break;
+ case 6:
+ this.popState();
+ break;
+ case 7:
+ return "acc_descr_multiline_value";
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return 10;
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ this.begin("href");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return 40;
+ case 18:
+ this.begin("callbackname");
+ break;
+ case 19:
+ this.popState();
+ break;
+ case 20:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 21:
+ return 38;
+ case 22:
+ this.popState();
+ break;
+ case 23:
+ return 39;
+ case 24:
+ this.begin("click");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return 37;
+ case 27:
+ return 4;
+ case 28:
+ return 19;
+ case 29:
+ return 20;
+ case 30:
+ return 21;
+ case 31:
+ return 22;
+ case 32:
+ return 23;
+ case 33:
+ return 25;
+ case 34:
+ return 24;
+ case 35:
+ return 26;
+ case 36:
+ return 12;
+ case 37:
+ return 13;
+ case 38:
+ return 14;
+ case 39:
+ return 15;
+ case 40:
+ return 16;
+ case 41:
+ return 17;
+ case 42:
+ return 18;
+ case 43:
+ return "date";
+ case 44:
+ return 27;
+ case 45:
+ return "accDescription";
+ case 46:
+ return 33;
+ case 47:
+ return 35;
+ case 48:
+ return 36;
+ case 49:
+ return ":";
+ case 50:
+ return 6;
+ case 51:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "callbackargs": { "rules": [22, 23], "inclusive": false }, "callbackname": { "rules": [19, 20, 21], "inclusive": false }, "href": { "rules": [16, 17], "inclusive": false }, "click": { "rules": [25, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 18, 24, 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], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const ganttParser = parser;
+dayjs__WEBPACK_IMPORTED_MODULE_1__.extend(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_2__);
+dayjs__WEBPACK_IMPORTED_MODULE_1__.extend(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_3__);
+dayjs__WEBPACK_IMPORTED_MODULE_1__.extend(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_4__);
+let dateFormat = "";
+let axisFormat = "";
+let tickInterval = void 0;
+let todayMarker = "";
+let includes = [];
+let excludes = [];
+let links = {};
+let sections = [];
+let tasks = [];
+let currentSection = "";
+let displayMode = "";
+const tags = ["active", "done", "crit", "milestone"];
+let funs = [];
+let inclusiveEndDates = false;
+let topAxis = false;
+let weekday = "sunday";
+let lastOrder = 0;
+const clear = function() {
+ sections = [];
+ tasks = [];
+ currentSection = "";
+ funs = [];
+ taskCnt = 0;
+ lastTask = void 0;
+ lastTaskID = void 0;
+ rawTasks = [];
+ dateFormat = "";
+ axisFormat = "";
+ displayMode = "";
+ tickInterval = void 0;
+ todayMarker = "";
+ includes = [];
+ excludes = [];
+ inclusiveEndDates = false;
+ topAxis = false;
+ lastOrder = 0;
+ links = {};
+ (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.t)();
+ weekday = "sunday";
+};
+const setAxisFormat = function(txt) {
+ axisFormat = txt;
+};
+const getAxisFormat = function() {
+ return axisFormat;
+};
+const setTickInterval = function(txt) {
+ tickInterval = txt;
+};
+const getTickInterval = function() {
+ return tickInterval;
+};
+const setTodayMarker = function(txt) {
+ todayMarker = txt;
+};
+const getTodayMarker = function() {
+ return todayMarker;
+};
+const setDateFormat = function(txt) {
+ dateFormat = txt;
+};
+const enableInclusiveEndDates = function() {
+ inclusiveEndDates = true;
+};
+const endDatesAreInclusive = function() {
+ return inclusiveEndDates;
+};
+const enableTopAxis = function() {
+ topAxis = true;
+};
+const topAxisEnabled = function() {
+ return topAxis;
+};
+const setDisplayMode = function(txt) {
+ displayMode = txt;
+};
+const getDisplayMode = function() {
+ return displayMode;
+};
+const getDateFormat = function() {
+ return dateFormat;
+};
+const setIncludes = function(txt) {
+ includes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getIncludes = function() {
+ return includes;
+};
+const setExcludes = function(txt) {
+ excludes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getExcludes = function() {
+ return excludes;
+};
+const getLinks = function() {
+ return links;
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 10;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks = rawTasks;
+ return tasks;
+};
+const isInvalidDate = function(date, dateFormat2, excludes2, includes2) {
+ if (includes2.includes(date.format(dateFormat2.trim()))) {
+ return false;
+ }
+ if (date.isoWeekday() >= 6 && excludes2.includes("weekends")) {
+ return true;
+ }
+ if (excludes2.includes(date.format("dddd").toLowerCase())) {
+ return true;
+ }
+ return excludes2.includes(date.format(dateFormat2.trim()));
+};
+const setWeekday = function(txt) {
+ weekday = txt;
+};
+const getWeekday = function() {
+ return weekday;
+};
+const checkTaskDates = function(task, dateFormat2, excludes2, includes2) {
+ if (!excludes2.length || task.manualEndTime) {
+ return;
+ }
+ let startTime;
+ if (task.startTime instanceof Date) {
+ startTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(task.startTime);
+ } else {
+ startTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(task.startTime, dateFormat2, true);
+ }
+ startTime = startTime.add(1, "d");
+ let originalEndTime;
+ if (task.endTime instanceof Date) {
+ originalEndTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(task.endTime);
+ } else {
+ originalEndTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(task.endTime, dateFormat2, true);
+ }
+ const [fixedEndTime, renderEndTime] = fixTaskDates(
+ startTime,
+ originalEndTime,
+ dateFormat2,
+ excludes2,
+ includes2
+ );
+ task.endTime = fixedEndTime.toDate();
+ task.renderEndTime = renderEndTime;
+};
+const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {
+ let invalid = false;
+ let renderEndTime = null;
+ while (startTime <= endTime) {
+ if (!invalid) {
+ renderEndTime = endTime.toDate();
+ }
+ invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);
+ if (invalid) {
+ endTime = endTime.add(1, "d");
+ }
+ startTime = startTime.add(1, "d");
+ }
+ return [endTime, renderEndTime];
+};
+const getStartDate = function(prevTime, dateFormat2, str) {
+ str = str.trim();
+ const re = /^after\s+([\d\w- ]+)/;
+ const afterStatement = re.exec(str.trim());
+ if (afterStatement !== null) {
+ let latestEndingTask = null;
+ afterStatement[1].split(" ").forEach(function(id) {
+ let task = findTaskById(id);
+ if (task !== void 0) {
+ if (!latestEndingTask) {
+ latestEndingTask = task;
+ } else {
+ if (task.endTime > latestEndingTask.endTime) {
+ latestEndingTask = task;
+ }
+ }
+ }
+ });
+ if (!latestEndingTask) {
+ const dt = /* @__PURE__ */ new Date();
+ dt.setHours(0, 0, 0, 0);
+ return dt;
+ } else {
+ return latestEndingTask.endTime;
+ }
+ }
+ let mDate = dayjs__WEBPACK_IMPORTED_MODULE_1__(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ return mDate.toDate();
+ } else {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.l.debug("Invalid date:" + str);
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.l.debug("With date format:" + dateFormat2.trim());
+ const d = new Date(str);
+ if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously
+ // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.
+ // This can cause virtually infinite loops while rendering, so for the
+ // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as
+ // invalid.
+ d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {
+ throw new Error("Invalid date:" + str);
+ }
+ return d;
+ }
+};
+const parseDuration = function(str) {
+ const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());
+ if (statement !== null) {
+ return [Number.parseFloat(statement[1]), statement[2]];
+ }
+ return [NaN, "ms"];
+};
+const getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {
+ str = str.trim();
+ let mDate = dayjs__WEBPACK_IMPORTED_MODULE_1__(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ if (inclusive) {
+ mDate = mDate.add(1, "d");
+ }
+ return mDate.toDate();
+ }
+ let endTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(prevTime);
+ const [durationValue, durationUnit] = parseDuration(str);
+ if (!Number.isNaN(durationValue)) {
+ const newEndTime = endTime.add(durationValue, durationUnit);
+ if (newEndTime.isValid()) {
+ endTime = newEndTime;
+ }
+ }
+ return endTime.toDate();
+};
+let taskCnt = 0;
+const parseId = function(idStr) {
+ if (idStr === void 0) {
+ taskCnt = taskCnt + 1;
+ return "task" + taskCnt;
+ }
+ return idStr;
+};
+const compileData = function(prevTask, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ let endTimeData = "";
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = prevTask.endTime;
+ endTimeData = data[0];
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = getStartDate(void 0, dateFormat, data[0]);
+ endTimeData = data[1];
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = getStartDate(void 0, dateFormat, data[1]);
+ endTimeData = data[2];
+ break;
+ }
+ if (endTimeData) {
+ task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
+ task.manualEndTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(endTimeData, "YYYY-MM-DD", true).isValid();
+ checkTaskDates(task, dateFormat, excludes, includes);
+ }
+ return task;
+};
+const parseData = function(prevTaskId, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = {
+ type: "prevTaskEnd",
+ id: prevTaskId
+ };
+ task.endTime = {
+ data: data[0]
+ };
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[0]
+ };
+ task.endTime = {
+ data: data[1]
+ };
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[1]
+ };
+ task.endTime = {
+ data: data[2]
+ };
+ break;
+ }
+ return task;
+};
+let lastTask;
+let lastTaskID;
+let rawTasks = [];
+const taskDb = {};
+const addTask = function(descr, data) {
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ processed: false,
+ manualEndTime: false,
+ renderEndTime: null,
+ raw: { data },
+ task: descr,
+ classes: []
+ };
+ const taskInfo = parseData(lastTaskID, data);
+ rawTask.raw.startTime = taskInfo.startTime;
+ rawTask.raw.endTime = taskInfo.endTime;
+ rawTask.id = taskInfo.id;
+ rawTask.prevTaskId = lastTaskID;
+ rawTask.active = taskInfo.active;
+ rawTask.done = taskInfo.done;
+ rawTask.crit = taskInfo.crit;
+ rawTask.milestone = taskInfo.milestone;
+ rawTask.order = lastOrder;
+ lastOrder++;
+ const pos = rawTasks.push(rawTask);
+ lastTaskID = rawTask.id;
+ taskDb[rawTask.id] = pos - 1;
+};
+const findTaskById = function(id) {
+ const pos = taskDb[id];
+ return rawTasks[pos];
+};
+const addTaskOrg = function(descr, data) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ const taskInfo = compileData(lastTask, data);
+ newTask.startTime = taskInfo.startTime;
+ newTask.endTime = taskInfo.endTime;
+ newTask.id = taskInfo.id;
+ newTask.active = taskInfo.active;
+ newTask.done = taskInfo.done;
+ newTask.crit = taskInfo.crit;
+ newTask.milestone = taskInfo.milestone;
+ lastTask = newTask;
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ const task = rawTasks[pos];
+ let startTime = "";
+ switch (rawTasks[pos].raw.startTime.type) {
+ case "prevTaskEnd": {
+ const prevTask = findTaskById(task.prevTaskId);
+ task.startTime = prevTask.endTime;
+ break;
+ }
+ case "getStartDate":
+ startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);
+ if (startTime) {
+ rawTasks[pos].startTime = startTime;
+ }
+ break;
+ }
+ if (rawTasks[pos].startTime) {
+ rawTasks[pos].endTime = getEndDate(
+ rawTasks[pos].startTime,
+ dateFormat,
+ rawTasks[pos].raw.endTime.data,
+ inclusiveEndDates
+ );
+ if (rawTasks[pos].endTime) {
+ rawTasks[pos].processed = true;
+ rawTasks[pos].manualEndTime = dayjs__WEBPACK_IMPORTED_MODULE_1__(
+ rawTasks[pos].raw.endTime.data,
+ "YYYY-MM-DD",
+ true
+ ).isValid();
+ checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);
+ }
+ }
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const setLink = function(ids, _linkStr) {
+ let linkStr = _linkStr;
+ if ((0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().securityLevel !== "loose") {
+ linkStr = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__/* .sanitizeUrl */ .Nm)(_linkStr);
+ }
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ window.open(linkStr, "_self");
+ });
+ links[id] = linkStr;
+ }
+ });
+ setClass(ids, "clickable");
+};
+const setClass = function(ids, className) {
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ rawTask.classes.push(className);
+ }
+ });
+};
+const setClickFun = function(id, functionName, functionArgs) {
+ if ((0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id);
+ }
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.u.runFunc(functionName, ...argList);
+ });
+ }
+};
+const pushFun = function(id, callbackFunction) {
+ funs.push(
+ function() {
+ const elem = document.querySelector(`[id="${id}"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ },
+ function() {
+ const elem = document.querySelector(`[id="${id}-text"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ }
+ );
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFun(id, functionName, functionArgs);
+ });
+ setClass(ids, "clickable");
+};
+const bindFunctions = function(element) {
+ funs.forEach(function(fun) {
+ fun(element);
+ });
+};
+const ganttDb = {
+ getConfig: () => (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().gantt,
+ clear,
+ setDateFormat,
+ getDateFormat,
+ enableInclusiveEndDates,
+ endDatesAreInclusive,
+ enableTopAxis,
+ topAxisEnabled,
+ setAxisFormat,
+ getAxisFormat,
+ setTickInterval,
+ getTickInterval,
+ setTodayMarker,
+ getTodayMarker,
+ setAccTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.s,
+ getAccTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.g,
+ setDiagramTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.q,
+ getDiagramTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.r,
+ setDisplayMode,
+ getDisplayMode,
+ setAccDescription: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.b,
+ getAccDescription: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.a,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ findTaskById,
+ addTaskOrg,
+ setIncludes,
+ getIncludes,
+ setExcludes,
+ getExcludes,
+ setClickEvent,
+ setLink,
+ getLinks,
+ bindFunctions,
+ parseDuration,
+ isInvalidDate,
+ setWeekday,
+ getWeekday
+};
+function getTaskTags(data, task, tags2) {
+ let matchFound = true;
+ while (matchFound) {
+ matchFound = false;
+ tags2.forEach(function(t) {
+ const pattern = "^\\s*" + t + "\\s*$";
+ const regex = new RegExp(pattern);
+ if (data[0].match(regex)) {
+ task[t] = true;
+ data.shift(1);
+ matchFound = true;
+ }
+ });
+ }
+}
+const setConf = function() {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.l.debug("Something is calling, setConf, remove the call");
+};
+const mapWeekdayToTimeFunction = {
+ monday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMonday */ .Ox9,
+ tuesday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeTuesday */ .YDX,
+ wednesday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeWednesday */ .EFj,
+ thursday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeThursday */ .Igq,
+ friday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeFriday */ .y2j,
+ saturday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeSaturday */ .LqH,
+ sunday: d3__WEBPACK_IMPORTED_MODULE_5__/* .timeSunday */ .Zyz
+};
+const getMaxIntersections = (tasks2, orderOffset) => {
+ let timeline = [...tasks2].map(() => -Infinity);
+ let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
+ let maxIntersections = 0;
+ for (const element of sorted) {
+ for (let j = 0; j < timeline.length; j++) {
+ if (element.startTime >= timeline[j]) {
+ timeline[j] = element.endTime;
+ element.order = j + orderOffset;
+ if (j > maxIntersections) {
+ maxIntersections = j;
+ }
+ break;
+ }
+ }
+ }
+ return maxIntersections;
+};
+let w;
+const draw = function(text, id, version, diagObj) {
+ const conf = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().gantt;
+ const securityLevel = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .select */ .Ys)("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .select */ .Ys)("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const elem = doc.getElementById(id);
+ w = elem.parentElement.offsetWidth;
+ if (w === void 0) {
+ w = 1200;
+ }
+ if (conf.useWidth !== void 0) {
+ w = conf.useWidth;
+ }
+ const taskArray = diagObj.db.getTasks();
+ let categories = [];
+ for (const element of taskArray) {
+ categories.push(element.type);
+ }
+ categories = checkUnique(categories);
+ const categoryHeights = {};
+ let h = 2 * conf.topPadding;
+ if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") {
+ const categoryElements = {};
+ for (const element of taskArray) {
+ if (categoryElements[element.section] === void 0) {
+ categoryElements[element.section] = [element];
+ } else {
+ categoryElements[element.section].push(element);
+ }
+ }
+ let intersections = 0;
+ for (const category of Object.keys(categoryElements)) {
+ const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
+ intersections += categoryHeight;
+ h += categoryHeight * (conf.barHeight + conf.barGap);
+ categoryHeights[category] = categoryHeight;
+ }
+ } else {
+ h += taskArray.length * (conf.barHeight + conf.barGap);
+ for (const category of categories) {
+ categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
+ }
+ }
+ elem.setAttribute("viewBox", "0 0 " + w + " " + h);
+ const svg = root.select(`[id="${id}"]`);
+ const timeScale = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .scaleTime */ .Xf)().domain([
+ (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .min */ .VV$)(taskArray, function(d) {
+ return d.startTime;
+ }),
+ (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .max */ .Fp7)(taskArray, function(d) {
+ return d.endTime;
+ })
+ ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
+ function taskCompare(a, b) {
+ const taskA = a.startTime;
+ const taskB = b.startTime;
+ let result = 0;
+ if (taskA > taskB) {
+ result = 1;
+ } else if (taskA < taskB) {
+ result = -1;
+ }
+ return result;
+ }
+ taskArray.sort(taskCompare);
+ makeGant(taskArray, w, h);
+ (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.i)(svg, h, w, conf.useMaxWidth);
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText");
+ function makeGant(tasks2, pageWidth, pageHeight) {
+ const barHeight = conf.barHeight;
+ const gap = barHeight + conf.barGap;
+ const topPadding = conf.topPadding;
+ const leftPadding = conf.leftPadding;
+ const colorScale = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .scaleLinear */ .BYU)().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(d3__WEBPACK_IMPORTED_MODULE_5__/* .interpolateHcl */ .JHv);
+ drawExcludeDays(
+ gap,
+ topPadding,
+ leftPadding,
+ pageWidth,
+ pageHeight,
+ tasks2,
+ diagObj.db.getExcludes(),
+ diagObj.db.getIncludes()
+ );
+ makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
+ drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);
+ vertLabels(gap, topPadding);
+ drawToday(leftPadding, topPadding, pageWidth, pageHeight);
+ }
+ function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {
+ const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
+ const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));
+ svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad - 2;
+ }).attr("width", function() {
+ return w2 - conf.rightPadding / 2;
+ }).attr("height", theGap).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ return "section section" + i % conf.numberSectionStyles;
+ }
+ }
+ return "section section0";
+ });
+ const rectangles = svg.append("g").selectAll("rect").data(theArray).enter();
+ const links2 = diagObj.db.getLinks();
+ rectangles.append("rect").attr("id", function(d) {
+ return d.id;
+ }).attr("rx", 3).attr("ry", 3).attr("x", function(d) {
+ if (d.milestone) {
+ return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ return timeScale(d.startTime) + theSidePad;
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad;
+ }).attr("width", function(d) {
+ if (d.milestone) {
+ return theBarHeight;
+ }
+ return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
+ }).attr("height", theBarHeight).attr("transform-origin", function(d, i) {
+ i = d.order;
+ return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
+ }).attr("class", function(d) {
+ const res = "task";
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskClass = "";
+ if (d.active) {
+ if (d.crit) {
+ taskClass += " activeCrit";
+ } else {
+ taskClass = " active";
+ }
+ } else if (d.done) {
+ if (d.crit) {
+ taskClass = " doneCrit";
+ } else {
+ taskClass = " done";
+ }
+ } else {
+ if (d.crit) {
+ taskClass += " crit";
+ }
+ }
+ if (taskClass.length === 0) {
+ taskClass = " task";
+ }
+ if (d.milestone) {
+ taskClass = " milestone " + taskClass;
+ }
+ taskClass += secNum;
+ taskClass += " " + classStr;
+ return res + taskClass;
+ });
+ rectangles.append("text").attr("id", function(d) {
+ return d.id + "-text";
+ }).text(function(d) {
+ return d.task;
+ }).attr("font-size", conf.fontSize).attr("x", function(d) {
+ let startX = timeScale(d.startTime);
+ let endX = timeScale(d.renderEndTime || d.endTime);
+ if (d.milestone) {
+ startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return startX + theSidePad - 5;
+ } else {
+ return endX + theSidePad + 5;
+ }
+ } else {
+ return (endX - startX) / 2 + startX + theSidePad;
+ }
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
+ }).attr("text-height", theBarHeight).attr("class", function(d) {
+ const startX = timeScale(d.startTime);
+ let endX = timeScale(d.endTime);
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskType = "";
+ if (d.active) {
+ if (d.crit) {
+ taskType = "activeCritText" + secNum;
+ } else {
+ taskType = "activeText" + secNum;
+ }
+ }
+ if (d.done) {
+ if (d.crit) {
+ taskType = taskType + " doneCritText" + secNum;
+ } else {
+ taskType = taskType + " doneText" + secNum;
+ }
+ } else {
+ if (d.crit) {
+ taskType = taskType + " critText" + secNum;
+ }
+ }
+ if (d.milestone) {
+ taskType += " milestoneText";
+ }
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
+ } else {
+ return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ } else {
+ return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ });
+ const securityLevel2 = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.c)().securityLevel;
+ if (securityLevel2 === "sandbox") {
+ let sandboxElement2;
+ sandboxElement2 = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .select */ .Ys)("#i" + id);
+ const doc2 = sandboxElement2.nodes()[0].contentDocument;
+ rectangles.filter(function(d) {
+ return links2[d.id] !== void 0;
+ }).each(function(o) {
+ var taskRect = doc2.querySelector("#" + o.id);
+ var taskText = doc2.querySelector("#" + o.id + "-text");
+ const oldParent = taskRect.parentNode;
+ var Link = doc2.createElement("a");
+ Link.setAttribute("xlink:href", links2[o.id]);
+ Link.setAttribute("target", "_top");
+ oldParent.appendChild(Link);
+ Link.appendChild(taskRect);
+ Link.appendChild(taskText);
+ });
+ }
+ }
+ function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {
+ if (excludes2.length === 0 && includes2.length === 0) {
+ return;
+ }
+ let minTime;
+ let maxTime;
+ for (const { startTime, endTime } of tasks2) {
+ if (minTime === void 0 || startTime < minTime) {
+ minTime = startTime;
+ }
+ if (maxTime === void 0 || endTime > maxTime) {
+ maxTime = endTime;
+ }
+ }
+ if (!minTime || !maxTime) {
+ return;
+ }
+ if (dayjs__WEBPACK_IMPORTED_MODULE_1__(maxTime).diff(dayjs__WEBPACK_IMPORTED_MODULE_1__(minTime), "year") > 5) {
+ _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.l.warn(
+ "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days."
+ );
+ return;
+ }
+ const dateFormat2 = diagObj.db.getDateFormat();
+ const excludeRanges = [];
+ let range = null;
+ let d = dayjs__WEBPACK_IMPORTED_MODULE_1__(minTime);
+ while (d.valueOf() <= maxTime) {
+ if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {
+ if (!range) {
+ range = {
+ start: d,
+ end: d
+ };
+ } else {
+ range.end = d;
+ }
+ } else {
+ if (range) {
+ excludeRanges.push(range);
+ range = null;
+ }
+ }
+ d = d.add(1, "d");
+ }
+ const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter();
+ rectangles.append("rect").attr("id", function(d2) {
+ return "exclude-" + d2.start.format("YYYY-MM-DD");
+ }).attr("x", function(d2) {
+ return timeScale(d2.start) + theSidePad;
+ }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) {
+ const renderEnd = d2.end.add(1, "day");
+ return timeScale(renderEnd) - timeScale(d2.start);
+ }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) {
+ return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px";
+ }).attr("class", "exclude-range");
+ }
+ function makeGrid(theSidePad, theTopPad, w2, h2) {
+ let bottomXAxis = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .axisBottom */ .LLu)(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat((0,d3__WEBPACK_IMPORTED_MODULE_5__/* .timeFormat */ .i$Z)(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ const reTickInterval = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/;
+ const resultTickInterval = reTickInterval.exec(
+ diagObj.db.getTickInterval() || conf.tickInterval
+ );
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ const weekday2 = diagObj.db.getWeekday() || conf.weekday;
+ switch (interval) {
+ case "millisecond":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMillisecond */ .U8T.every(every));
+ break;
+ case "second":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeSecond */ .S1K.every(every));
+ break;
+ case "minute":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMinute */ .Z_i.every(every));
+ break;
+ case "hour":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeHour */ .WQD.every(every));
+ break;
+ case "day":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeDay */ .rr1.every(every));
+ break;
+ case "week":
+ bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));
+ break;
+ case "month":
+ bottomXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMonth */ .F0B.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
+ if (diagObj.db.topAxisEnabled() || conf.topAxis) {
+ let topXAxis = (0,d3__WEBPACK_IMPORTED_MODULE_5__/* .axisTop */ .F5q)(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat((0,d3__WEBPACK_IMPORTED_MODULE_5__/* .timeFormat */ .i$Z)(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ const weekday2 = diagObj.db.getWeekday() || conf.weekday;
+ switch (interval) {
+ case "millisecond":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMillisecond */ .U8T.every(every));
+ break;
+ case "second":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeSecond */ .S1K.every(every));
+ break;
+ case "minute":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMinute */ .Z_i.every(every));
+ break;
+ case "hour":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeHour */ .WQD.every(every));
+ break;
+ case "day":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeDay */ .rr1.every(every));
+ break;
+ case "week":
+ topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));
+ break;
+ case "month":
+ topXAxis.ticks(d3__WEBPACK_IMPORTED_MODULE_5__/* .timeMonth */ .F0B.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
+ }
+ }
+ function vertLabels(theGap, theTopPad) {
+ let prevGap = 0;
+ const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);
+ svg.append("g").selectAll("text").data(numOccurances).enter().append(function(d) {
+ const rows = d[0].split(_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_7__.e.lineBreakRegex);
+ const dy = -(rows.length - 1) / 2;
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("dy", dy + "em");
+ for (const [j, row] of rows.entries()) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttribute("alignment-baseline", "central");
+ tspan.setAttribute("x", "10");
+ if (j > 0) {
+ tspan.setAttribute("dy", "1em");
+ }
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }).attr("x", 10).attr("y", function(d, i) {
+ if (i > 0) {
+ for (let j = 0; j < i; j++) {
+ prevGap += numOccurances[i - 1][1];
+ return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
+ }
+ } else {
+ return d[1] * theGap / 2 + theTopPad;
+ }
+ }).attr("font-size", conf.sectionFontSize).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d[0] === category) {
+ return "sectionTitle sectionTitle" + i % conf.numberSectionStyles;
+ }
+ }
+ return "sectionTitle";
+ });
+ }
+ function drawToday(theSidePad, theTopPad, w2, h2) {
+ const todayMarker2 = diagObj.db.getTodayMarker();
+ if (todayMarker2 === "off") {
+ return;
+ }
+ const todayG = svg.append("g").attr("class", "today");
+ const today = /* @__PURE__ */ new Date();
+ const todayLine = todayG.append("line");
+ todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today");
+ if (todayMarker2 !== "") {
+ todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
+ }
+ }
+ function checkUnique(arr) {
+ const hash = {};
+ const result = [];
+ for (let i = 0, l = arr.length; i < l; ++i) {
+ if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {
+ hash[arr[i]] = true;
+ result.push(arr[i]);
+ }
+ }
+ return result;
+ }
+};
+const ganttRenderer = {
+ setConf,
+ draw
+};
+const getStyles = (options) => `
+ .mermaid-main-font {
+ font-family: "trebuchet ms", verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ .exclude-range {
+ fill: ${options.excludeBkgColor};
+ }
+
+ .section {
+ stroke: none;
+ opacity: 0.2;
+ }
+
+ .section0 {
+ fill: ${options.sectionBkgColor};
+ }
+
+ .section2 {
+ fill: ${options.sectionBkgColor2};
+ }
+
+ .section1,
+ .section3 {
+ fill: ${options.altSectionBkgColor};
+ opacity: 0.2;
+ }
+
+ .sectionTitle0 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle1 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle2 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle3 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle {
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ // text-height: 14px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+
+ /* Grid and axis */
+
+ .grid .tick {
+ stroke: ${options.gridColor};
+ opacity: 0.8;
+ shape-rendering: crispEdges;
+ text {
+ font-family: ${options.fontFamily};
+ fill: ${options.textColor};
+ }
+ }
+
+ .grid path {
+ stroke-width: 0;
+ }
+
+
+ /* Today line */
+
+ .today {
+ fill: none;
+ stroke: ${options.todayLineColor};
+ stroke-width: 2px;
+ }
+
+
+ /* Task styling */
+
+ /* Default task */
+
+ .task {
+ stroke-width: 2;
+ }
+
+ .taskText {
+ text-anchor: middle;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+
+ // .taskText:not([font-size]) {
+ // font-size: ${options.ganttFontSize};
+ // }
+
+ .taskTextOutsideRight {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+ .taskTextOutsideLeft {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: end;
+ // font-size: ${options.ganttFontSize};
+ }
+
+ /* Special case clickable */
+ .task.clickable {
+ cursor: pointer;
+ }
+ .taskText.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideLeft.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideRight.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ /* Specific task settings for the sections*/
+
+ .taskText0,
+ .taskText1,
+ .taskText2,
+ .taskText3 {
+ fill: ${options.taskTextColor};
+ }
+
+ .task0,
+ .task1,
+ .task2,
+ .task3 {
+ fill: ${options.taskBkgColor};
+ stroke: ${options.taskBorderColor};
+ }
+
+ .taskTextOutside0,
+ .taskTextOutside2
+ {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+ .taskTextOutside1,
+ .taskTextOutside3 {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+
+ /* Active task */
+
+ .active0,
+ .active1,
+ .active2,
+ .active3 {
+ fill: ${options.activeTaskBkgColor};
+ stroke: ${options.activeTaskBorderColor};
+ }
+
+ .activeText0,
+ .activeText1,
+ .activeText2,
+ .activeText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Completed task */
+
+ .done0,
+ .done1,
+ .done2,
+ .done3 {
+ stroke: ${options.doneTaskBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneText0,
+ .doneText1,
+ .doneText2,
+ .doneText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Tasks on the critical line */
+
+ .crit0,
+ .crit1,
+ .crit2,
+ .crit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.critBkgColor};
+ stroke-width: 2;
+ }
+
+ .activeCrit0,
+ .activeCrit1,
+ .activeCrit2,
+ .activeCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.activeTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneCrit0,
+ .doneCrit1,
+ .doneCrit2,
+ .doneCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ stroke-width: 2;
+ cursor: pointer;
+ shape-rendering: crispEdges;
+ }
+
+ .milestone {
+ transform: rotate(45deg) scale(0.8,0.8);
+ }
+
+ .milestoneText {
+ font-style: italic;
+ }
+ .doneCritText0,
+ .doneCritText1,
+ .doneCritText2,
+ .doneCritText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+ .activeCritText0,
+ .activeCritText1,
+ .activeCritText2,
+ .activeCritText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+ .titleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor} ;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+`;
+const ganttStyles = getStyles;
+const diagram = {
+ parser: ganttParser,
+ db: ganttDb,
+ renderer: ganttRenderer,
+ styles: ganttStyles
+};
+
+
+
+/***/ })
+
+};
+;
\ No newline at end of file
diff --git a/assets/js/1772.056ffd72.js b/assets/js/1772.056ffd72.js
new file mode 100644
index 0000000..7156a6f
--- /dev/null
+++ b/assets/js/1772.056ffd72.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklanding_vr=self.webpackChunklanding_vr||[]).push([[1772],{5658:(e,t,n)=>{n.d(t,{Z:()=>a});n(7294);var i=n(512),o=n(5999),s=n(2503),r=n(5893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,i.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});n(7294);var i=n(5999),o=n(8264),s=n(7293),r=n(5658),a=n(5893);function l(){const e=(0,i.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]);
\ No newline at end of file
diff --git a/assets/js/17896441.6eaf1b4e.js b/assets/js/17896441.6eaf1b4e.js
new file mode 100644
index 0000000..6cf8ee2
--- /dev/null
+++ b/assets/js/17896441.6eaf1b4e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklanding_vr=self.webpackChunklanding_vr||[]).push([[7918],{7362:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ae});var s=n(7294),a=n(8264),i=n(902),l=n(5893);const o=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,l.jsx)(o.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,l.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(512),m=n(7524),h=n(5999),v=n(2244);function x(e){const{previous:t,next:n}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(v.Z,{...t,subLabel:(0,l.jsx)(h.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,l.jsx)(v.Z,{...n,subLabel:(0,l.jsx)(h.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=c();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var p=n(2263),g=n(3692),f=n(143),j=n(5281),N=n(373),L=n(4477);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,l.jsx)(h.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,l.jsx)(h.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function Z(e){const t=C[e.versionMetadata.banner];return(0,l.jsx)(t,{...e})}function _(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,l.jsx)(h.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(g.Z,{to:n,onClick:s,children:(0,l.jsx)(h.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,p.Z)(),{pluginId:a}=(0,f.gA)({failfast:!0}),{savePreferredVersionName:i}=(0,N.J)(a),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,f.Jo)(a),c=o??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,l.jsxs)("div",{className:(0,u.Z)(t,j.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(Z,{siteTitle:s,versionMetadata:n})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(_,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:t}=e;const n=(0,L.E)();return n.banner?(0,l.jsx)(k,{className:t,versionMetadata:n}):null}function H(e){let{className:t}=e;const n=(0,L.E)();return n.badge?(0,l.jsx)("span",{className:(0,u.Z)(t,j.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(h.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}var y=n(1526),w=n(7265);function U(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(t||n||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.Z)(j.k.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.Z)("row margin-top--sm",j.k.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(y.Z,{tags:a})})}),o&&(0,l.jsx)(w.Z,{className:(0,u.Z)("margin-top--sm",j.k.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var M=n(6043),A=n(3743);const I={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function E(e){let{collapsed:t,...n}=e;return(0,l.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",I.tocCollapsibleButton,!t&&I.tocCollapsibleButtonExpanded,n.className),children:(0,l.jsx)(h.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const B={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function O(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,M.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(B.tocCollapsible,!i&&B.tocCollapsibleExpanded,n),children:[(0,l.jsx)(E,{collapsed:i,onClick:o}),(0,l.jsx)(M.z,{lazy:!0,className:B.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(A.Z,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const P={tocMobile:"tocMobile_ITEo"};function S(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(O,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(j.k.docs.docTocMobile,P.tocMobile)})}var V=n(9407);function R(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(V.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:j.k.docs.docTocDesktop})}var D=n(2503),F=n(7917);function z(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(j.k.docs.docMarkdown,"markdown"),children:[n&&(0,l.jsx)("header",{children:(0,l.jsx)(D.Z,{as:"h1",children:n})}),(0,l.jsx)(F.Z,{children:t})]})}var q=n(2802),G=n(8596),J=n(4996);function W(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const $={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function Q(){const e=(0,J.Z)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(g.Z,{"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(W,{className:$.breadcrumbHomeIcon})})})}const X={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Y(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,l.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,l.jsx)(g.Z,{className:a,href:n,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:t})}):(0,l.jsx)("span",{className:a,children:t})}function K(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,l.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,l.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,q.s1)(),t=(0,G.Ns)();return e?(0,l.jsx)("nav",{className:(0,u.Z)(j.k.docs.docBreadcrumbs,X.breadcrumbsContainer),"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,l.jsx)(Q,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,l.jsx)(K,{active:s,index:n,addMicrodata:!!a,children:(0,l.jsx)(Y,{href:a,isLast:s,children:t.label})},n)}))]})}):null}var te=n(2212);const ne={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function se(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,l.jsx)(S,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,l.jsx)(R,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&ne.docItemCol),children:[s&&(0,l.jsx)(te.Z,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:ne.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ee,{}),(0,l.jsx)(H,{}),n.mobile,(0,l.jsx)(z,{children:t}),(0,l.jsx)(U,{})]}),(0,l.jsx)(b,{})]})]}),n.desktop&&(0,l.jsx)("div",{className:"col col--3",children:n.desktop})]})}function ae(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.FG,{className:t,children:[(0,l.jsx)(d,{}),(0,l.jsx)(se,{children:(0,l.jsx)(n,{})})]})})}},7265:(e,t,n)=>{n.d(t,{Z:()=>b});n(7294);var s=n(512),a=n(5999),i=n(5281),l=n(3692);const o={iconEdit:"iconEdit_Z9Sw"};var r=n(5893);function c(e){let{className:t,...n}=e;return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(o.iconEdit,t),"aria-hidden":"true",...n,children:(0,r.jsx)("g",{children:(0,r.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d(e){let{editUrl:t}=e;return(0,r.jsxs)(l.Z,{to:t,className:i.k.common.editThisPage,children:[(0,r.jsx)(c,{}),(0,r.jsx)(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(9788);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.P)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(a.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,r.jsx)("b",{children:(0,r.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,r.jsx)(a.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,r.jsx)("b",{children:t})},children:" by {user}"})}function v(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,r.jsxs)("span",{className:i.k.common.lastUpdated,children:[(0,r.jsx)(a.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,r.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,r.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const x={lastUpdated:"lastUpdated_JAkA"};function b(e){let{className:t,editUrl:n,lastUpdatedAt:a,lastUpdatedBy:i}=e;return(0,r.jsxs)("div",{className:(0,s.Z)("row",t),children:[(0,r.jsx)("div",{className:"col",children:n&&(0,r.jsx)(d,{editUrl:n})}),(0,r.jsx)("div",{className:(0,s.Z)("col",x.lastUpdated),children:(a||i)&&(0,r.jsx)(v,{lastUpdatedAt:a,lastUpdatedBy:i})})]})}},2244:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(512),a=n(3692),i=n(5893);function l(e){const{permalink:t,title:n,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.Z,{className:(0,s.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}},9407:(e,t,n)=>{n.d(t,{Z:()=>c});n(7294);var s=n(512),a=n(3743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=n(5893);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,l.jsx)("div",{className:(0,s.Z)(i.tableOfContents,"thin-scrollbar",t),children:(0,l.jsx)(a.Z,{...n,linkClassName:o,linkActiveClassName:r})})}},3743:(e,t,n)=>{n.d(t,{Z:()=>x});var s=n(7294),a=n(6668);function i(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>o(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,n])}var u=n(3692),m=n(5893);function h(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function x(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,a.L)(),b=c??x.tableOfContents.minHeadingLevel,p=u??x.tableOfContents.maxHeadingLevel,g=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:b,maxHeadingLevel:p});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:b,maxHeadingLevel:p}}),[o,r,b,p])),(0,m.jsx)(v,{toc:g,className:n,linkClassName:o,...h})}},3008:(e,t,n)=>{n.d(t,{Z:()=>o});n(7294);var s=n(512),a=n(3692);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=n(5893);function o(e){let{permalink:t,label:n,count:o}=e;return(0,l.jsxs)(a.Z,{href:t,className:(0,s.Z)(i.tag,o?i.tagWithCount:i.tagRegular),children:[n,o&&(0,l.jsx)("span",{children:o})]})}},1526:(e,t,n)=>{n.d(t,{Z:()=>r});n(7294);var s=n(512),a=n(5999),i=n(3008);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=n(5893);function r(e){let{tags:t}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.Z)(l.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.Z,{label:t,permalink:n})},n)}))})]})}},2212:(e,t,n)=>{n.d(t,{Z:()=>h});n(7294);var s=n(512),a=n(5999),i=n(5742),l=n(5893);function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(5281),u=n(9047);function m(e){let{className:t}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.Z)(t,d.k.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}},9788:(e,t,n)=>{n.d(t,{P:()=>a});var s=n(2263);function a(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.Z)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.Z)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}}}]);
\ No newline at end of file
diff --git a/assets/js/183.9d7278a1.js b/assets/js/183.9d7278a1.js
new file mode 100644
index 0000000..8336aff
--- /dev/null
+++ b/assets/js/183.9d7278a1.js
@@ -0,0 +1,1320 @@
+"use strict";
+exports.id = 183;
+exports.ids = [183];
+exports.modules = {
+
+/***/ 6784:
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ diagram: () => (/* binding */ diagram)
+/* harmony export */ });
+/* harmony import */ var _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5322);
+/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4218);
+/* harmony import */ var _svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3317);
+/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7484);
+/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7967);
+/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(683);
+
+
+
+
+
+
+
+
+
+
+
+
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 9:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 10:
+ case 11:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 12:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 13:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])],
+ defaultActions: {},
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // 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.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ return 10;
+ case 3:
+ break;
+ case 4:
+ break;
+ case 5:
+ return 4;
+ case 6:
+ return 11;
+ case 7:
+ this.begin("acc_title");
+ return 12;
+ case 8:
+ this.popState();
+ return "acc_title_value";
+ case 9:
+ this.begin("acc_descr");
+ return 14;
+ case 10:
+ this.popState();
+ return "acc_descr_value";
+ case 11:
+ this.begin("acc_descr_multiline");
+ break;
+ case 12:
+ this.popState();
+ break;
+ case 13:
+ return "acc_descr_multiline_value";
+ case 14:
+ return 17;
+ case 15:
+ return 18;
+ case 16:
+ return 19;
+ case 17:
+ return ":";
+ case 18:
+ return 6;
+ case 19:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let currentSection = "";
+const sections = [];
+const tasks = [];
+const rawTasks = [];
+const clear = function() {
+ sections.length = 0;
+ tasks.length = 0;
+ currentSection = "";
+ rawTasks.length = 0;
+ (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.t)();
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks.push(...rawTasks);
+ return tasks;
+};
+const updateActors = function() {
+ const tempActors = [];
+ tasks.forEach((task) => {
+ if (task.people) {
+ tempActors.push(...task.people);
+ }
+ });
+ const unique = new Set(tempActors);
+ return [...unique].sort();
+};
+const addTask = function(descr, taskData) {
+ const pieces = taskData.substr(1).split(":");
+ let score = 0;
+ let peeps = [];
+ if (pieces.length === 1) {
+ score = Number(pieces[0]);
+ peeps = [];
+ } else {
+ score = Number(pieces[0]);
+ peeps = pieces[1].split(",");
+ }
+ const peopleList = peeps.map((s) => s.trim());
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ people: peopleList,
+ task: descr,
+ score
+ };
+ rawTasks.push(rawTask);
+};
+const addTaskOrg = function(descr) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const getActors = function() {
+ return updateActors();
+};
+const db = {
+ getConfig: () => (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey,
+ clear,
+ setDiagramTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.q,
+ getDiagramTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.r,
+ setAccTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.s,
+ getAccTitle: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.g,
+ setAccDescription: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.b,
+ getAccDescription: _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.a,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ addTaskOrg,
+ getActors
+};
+const getStyles = (options) => `.label {
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ color: ${options.textColor};
+ }
+ .mouth {
+ stroke: #666;
+ }
+
+ line {
+ stroke: ${options.textColor}
+ }
+
+ .legend {
+ fill: ${options.textColor};
+ }
+
+ .label text {
+ fill: #333;
+ }
+ .label {
+ color: ${options.textColor}
+ }
+
+ .face {
+ ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"};
+ stroke: #999;
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 1.5px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .task-type-0, .section-type-0 {
+ ${options.fillType0 ? `fill: ${options.fillType0}` : ""};
+ }
+ .task-type-1, .section-type-1 {
+ ${options.fillType0 ? `fill: ${options.fillType1}` : ""};
+ }
+ .task-type-2, .section-type-2 {
+ ${options.fillType0 ? `fill: ${options.fillType2}` : ""};
+ }
+ .task-type-3, .section-type-3 {
+ ${options.fillType0 ? `fill: ${options.fillType3}` : ""};
+ }
+ .task-type-4, .section-type-4 {
+ ${options.fillType0 ? `fill: ${options.fillType4}` : ""};
+ }
+ .task-type-5, .section-type-5 {
+ ${options.fillType0 ? `fill: ${options.fillType5}` : ""};
+ }
+ .task-type-6, .section-type-6 {
+ ${options.fillType0 ? `fill: ${options.fillType6}` : ""};
+ }
+ .task-type-7, .section-type-7 {
+ ${options.fillType0 ? `fill: ${options.fillType7}` : ""};
+ }
+
+ .actor-0 {
+ ${options.actor0 ? `fill: ${options.actor0}` : ""};
+ }
+ .actor-1 {
+ ${options.actor1 ? `fill: ${options.actor1}` : ""};
+ }
+ .actor-2 {
+ ${options.actor2 ? `fill: ${options.actor2}` : ""};
+ }
+ .actor-3 {
+ ${options.actor3 ? `fill: ${options.actor3}` : ""};
+ }
+ .actor-4 {
+ ${options.actor4 ? `fill: ${options.actor4}` : ""};
+ }
+ .actor-5 {
+ ${options.actor5 ? `fill: ${options.actor5}` : ""};
+ }
+`;
+const styles = getStyles;
+const drawRect = function(elem, rectData) {
+ return (0,_svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__.d)(elem, rectData);
+};
+const drawFace = function(element, faceData) {
+ const radius = 15;
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ function sad(face2) {
+ const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+};
+const drawCircle = function(element, circleData) {
+ const circleElement = element.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+};
+const drawText = function(elem, textData) {
+ return (0,_svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__.f)(elem, textData);
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText(elem, txtObject);
+};
+const drawSection = function(elem, section, conf2) {
+ const g = elem.append("g");
+ const rect = (0,_svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__.g)();
+ rect.x = section.x;
+ rect.y = section.y;
+ rect.fill = section.fill;
+ rect.width = conf2.width * section.taskCount + // width of the tasks
+ conf2.diagramMarginX * (section.taskCount - 1);
+ rect.height = conf2.height;
+ rect.class = "journey-section section-type-" + section.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ _drawTextCandidateFunc(conf2)(
+ section.text,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "journey-section section-type-" + section.num },
+ conf2,
+ section.colour
+ );
+};
+let taskCount = -1;
+const drawTask = function(elem, task, conf2) {
+ const center = task.x + conf2.width / 2;
+ const g = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g, {
+ cx: center,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect = (0,_svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__.g)();
+ rect.x = task.x;
+ rect.y = task.y;
+ rect.fill = task.fill;
+ rect.width = conf2.width;
+ rect.height = conf2.height;
+ rect.class = "task task-type-" + task.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ let xPos = task.x + 14;
+ task.people.forEach((person) => {
+ const colour = task.actors[person].color;
+ const circle = {
+ cx: xPos,
+ cy: task.y,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ title: person,
+ pos: task.actors[person].position
+ };
+ drawCircle(g, circle);
+ xPos += 10;
+ });
+ _drawTextCandidateFunc(conf2)(
+ task.task,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "task" },
+ conf2,
+ task.colour
+ );
+};
+const drawBackgroundRect = function(elem, bounds2) {
+ (0,_svgDrawCommon_ad5ef572_js__WEBPACK_IMPORTED_MODULE_5__.a)(elem, bounds2);
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {
+ const { taskFontSize, taskFontFamily } = conf2;
+ const lines = content.split(/
/gi);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const body = g.append("switch");
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const initGraphics = function(graphics) {
+ graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
+};
+const svgDraw = {
+ drawRect,
+ drawCircle,
+ drawSection,
+ drawText,
+ drawLabel,
+ drawTask,
+ drawBackgroundRect,
+ initGraphics
+};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ keys.forEach(function(key) {
+ conf[key] = cnf[key];
+ });
+};
+const actors = {};
+function drawActorLegend(diagram2) {
+ const conf2 = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey;
+ let yPos = 60;
+ Object.keys(actors).forEach((person) => {
+ const colour = actors[person].color;
+ const circleData = {
+ cx: 20,
+ cy: yPos,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ pos: actors[person].position
+ };
+ svgDraw.drawCircle(diagram2, circleData);
+ const labelData = {
+ x: 40,
+ y: yPos + 7,
+ fill: "#666",
+ text: person,
+ textMargin: conf2.boxTextMargin | 5
+ };
+ svgDraw.drawText(diagram2, labelData);
+ yPos += 20;
+ });
+}
+const conf = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey;
+const LEFT_MARGIN = conf.leftMargin;
+const draw = function(text, id, version, diagObj) {
+ const conf2 = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey;
+ const securityLevel = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body");
+ bounds.init();
+ const diagram2 = root.select("#" + id);
+ svgDraw.initGraphics(diagram2);
+ const tasks2 = diagObj.db.getTasks();
+ const title = diagObj.db.getDiagramTitle();
+ const actorNames = diagObj.db.getActors();
+ for (const member in actors) {
+ delete actors[member];
+ }
+ let actorPos = 0;
+ actorNames.forEach((actorName) => {
+ actors[actorName] = {
+ color: conf2.actorColours[actorPos % conf2.actorColours.length],
+ position: actorPos
+ };
+ actorPos++;
+ });
+ drawActorLegend(diagram2);
+ bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
+ drawTasks(diagram2, tasks2, 0);
+ const box = bounds.getBounds();
+ if (title) {
+ diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
+ }
+ const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;
+ const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;
+ (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.i)(diagram2, height, width, conf2.useMaxWidth);
+ diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ const extraVertForTitle = title ? 70 : 0;
+ diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);
+ diagram2.attr("preserveAspectRatio", "xMinYMin meet");
+ diagram2.attr("height", height + extraVertForTitle + 25);
+};
+const bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ init: function() {
+ this.sequenceItems = [];
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ },
+ updateVal: function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ },
+ updateBounds: function(startx, starty, stopx, stopy) {
+ const conf2 = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey;
+ const _self = this;
+ let cnt = 0;
+ function updateFn(type) {
+ return function updateItemBounds(item) {
+ cnt++;
+ const n = _self.sequenceItems.length - cnt + 1;
+ _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ if (!(type === "activation")) {
+ _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ }
+ };
+ }
+ this.sequenceItems.forEach(updateFn());
+ },
+ insert: function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ },
+ bumpVerticalPos: function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return this.data;
+ }
+};
+const fills = conf.sectionFills;
+const textColours = conf.sectionColours;
+const drawTasks = function(diagram2, tasks2, verticalPos) {
+ const conf2 = (0,_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_4__.c)().journey;
+ let lastSection = "";
+ const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
+ const taskPos = verticalPos + sectionVHeight;
+ let sectionNumber = 0;
+ let fill = "#CCC";
+ let colour = "black";
+ let num = 0;
+ for (const [i, task] of tasks2.entries()) {
+ if (lastSection !== task.section) {
+ fill = fills[sectionNumber % fills.length];
+ num = sectionNumber % fills.length;
+ colour = textColours[sectionNumber % textColours.length];
+ let taskInSectionCount = 0;
+ const currentSection2 = task.section;
+ for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {
+ if (tasks2[taskIndex].section == currentSection2) {
+ taskInSectionCount = taskInSectionCount + 1;
+ } else {
+ break;
+ }
+ }
+ const section = {
+ x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,
+ y: 50,
+ text: task.section,
+ fill,
+ num,
+ colour,
+ taskCount: taskInSectionCount
+ };
+ svgDraw.drawSection(diagram2, section, conf2);
+ lastSection = task.section;
+ sectionNumber++;
+ }
+ const taskActors = task.people.reduce((acc, actorName) => {
+ if (actors[actorName]) {
+ acc[actorName] = actors[actorName];
+ }
+ return acc;
+ }, {});
+ task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;
+ task.y = taskPos;
+ task.width = conf2.diagramMarginX;
+ task.height = conf2.diagramMarginY;
+ task.colour = colour;
+ task.fill = fill;
+ task.num = num;
+ task.actors = taskActors;
+ svgDraw.drawTask(diagram2, task, conf2);
+ bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
+ }
+};
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ renderer.setConf(cnf.journey);
+ db.clear();
+ }
+};
+
+
+
+/***/ }),
+
+/***/ 3317:
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ a: () => (/* binding */ drawBackgroundRect),
+/* harmony export */ b: () => (/* binding */ drawEmbeddedImage),
+/* harmony export */ c: () => (/* binding */ drawImage),
+/* harmony export */ d: () => (/* binding */ drawRect),
+/* harmony export */ e: () => (/* binding */ getTextObj),
+/* harmony export */ f: () => (/* binding */ drawText),
+/* harmony export */ g: () => (/* binding */ getNoteRect)
+/* harmony export */ });
+/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7967);
+/* harmony import */ var _mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5322);
+
+
+const drawRect = (element, rectData) => {
+ const rectElement = element.append("rect");
+ rectElement.attr("x", rectData.x);
+ rectElement.attr("y", rectData.y);
+ rectElement.attr("fill", rectData.fill);
+ rectElement.attr("stroke", rectData.stroke);
+ rectElement.attr("width", rectData.width);
+ rectElement.attr("height", rectData.height);
+ rectData.rx !== void 0 && rectElement.attr("rx", rectData.rx);
+ rectData.ry !== void 0 && rectElement.attr("ry", rectData.ry);
+ if (rectData.attrs !== void 0) {
+ for (const attrKey in rectData.attrs) {
+ rectElement.attr(attrKey, rectData.attrs[attrKey]);
+ }
+ }
+ rectData.class !== void 0 && rectElement.attr("class", rectData.class);
+ return rectElement;
+};
+const drawBackgroundRect = (element, bounds) => {
+ const rectData = {
+ x: bounds.startx,
+ y: bounds.starty,
+ width: bounds.stopx - bounds.startx,
+ height: bounds.stopy - bounds.starty,
+ fill: bounds.fill,
+ stroke: bounds.stroke,
+ class: "rect"
+ };
+ const rectElement = drawRect(element, rectData);
+ rectElement.lower();
+};
+const drawText = (element, textData) => {
+ const nText = textData.text.replace(_mermaid_934d9bea_js__WEBPACK_IMPORTED_MODULE_1__.H, " ");
+ const textElem = element.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ textData.class !== void 0 && textElem.attr("class", textData.class);
+ const tspan = textElem.append("tspan");
+ tspan.attr("x", textData.x + textData.textMargin * 2);
+ tspan.text(nText);
+ return textElem;
+};
+const drawImage = (elem, x, y, link) => {
+ const imageElement = elem.append("image");
+ imageElement.attr("x", x);
+ imageElement.attr("y", y);
+ const sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__/* .sanitizeUrl */ .Nm)(link);
+ imageElement.attr("xlink:href", sanitizedLink);
+};
+const drawEmbeddedImage = (element, x, y, link) => {
+ const imageElement = element.append("use");
+ imageElement.attr("x", x);
+ imageElement.attr("y", y);
+ const sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__/* .sanitizeUrl */ .Nm)(link);
+ imageElement.attr("xlink:href", `#${sanitizedLink}`);
+};
+const getNoteRect = () => {
+ const noteRectData = {
+ x: 0,
+ y: 0,
+ width: 100,
+ height: 100,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ anchor: "start",
+ rx: 0,
+ ry: 0
+ };
+ return noteRectData;
+};
+const getTextObj = () => {
+ const testObject = {
+ x: 0,
+ y: 0,
+ width: 100,
+ height: 100,
+ "text-anchor": "start",
+ style: "#666",
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: true
+ };
+ return testObject;
+};
+
+
+
+/***/ })
+
+};
+;
\ No newline at end of file
diff --git a/assets/js/1df93b7f.4d485b95.js b/assets/js/1df93b7f.4d485b95.js
new file mode 100644
index 0000000..d10e0e8
--- /dev/null
+++ b/assets/js/1df93b7f.4d485b95.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklanding_vr=self.webpackChunklanding_vr||[]).push([[3237],{9722:(e,t,a)=>{a.d(t,{Z:()=>c});var l,r=a(7294);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":a},c),void 0===t?r.createElement("title",{id:a},"Easy to Use"):t?r.createElement("title",{id:a},t):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{"data-name":"Path 83",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193.275 193.275 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657.282 657.282 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 84",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193.272 193.272 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657.3 657.3 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 85",d:"m302 282.962 26-57 36 83-31-60Z",opacity:.1}),r.createElement("path",{"data-name":"Path 86",d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z",opacity:.1}),r.createElement("path",{"data-name":"Path 87",d:"M464.411 315.191 493 292.962l130 150-132-128Z",opacity:.1}),r.createElement("path",{"data-name":"Path 88",d:"M852.79 645.032a193.265 193.265 0 0 1-27.46 11.94L623.2 425.232Z",opacity:.1}),r.createElement("circle",{"data-name":"Ellipse 11",cx:3,cy:3,r:3,transform:"translate(479 98.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 12",cx:3,cy:3,r:3,transform:"translate(396 201.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 13",cx:2,cy:2,r:2,transform:"translate(600 220.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 14",cx:2,cy:2,r:2,transform:"translate(180 265.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 15",cx:2,cy:2,r:2,transform:"translate(612 96.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 16",cx:2,cy:2,r:2,transform:"translate(736 192.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 17",cx:2,cy:2,r:2,transform:"translate(858 344.962)",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 89",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 90",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 91",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 92",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14Z",opacity:.1}),r.createElement("ellipse",{"data-name":"Ellipse 18",cx:544,cy:30,rx:544,ry:30,transform:"translate(0 583.962)",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 93",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96Z",fill:"#ff6584"}),r.createElement("path",{"data-name":"Path 94",d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636Z",opacity:.1}),r.createElement("rect",{"data-name":"Rectangle 97",width:92,height:18,rx:9,transform:"translate(489 604.962)",fill:"#2f2e41"}),r.createElement("rect",{"data-name":"Rectangle 98",width:92,height:18,rx:9,transform:"translate(489 586.962)",fill:"#2f2e41"}),r.createElement("path",{"data-name":"Path 95",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 96",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 97",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 98",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 99",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 100",d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877Z",opacity:.2}),r.createElement("path",{"data-name":"Path 101",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 102",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 103",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 104",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 105",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 106",d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293Z",opacity:.2}),r.createElement("path",{"data-name":"Path 107",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 108",d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512Z",opacity:.2}),r.createElement("path",{"data-name":"Path 109",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 110",d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125Z",opacity:.2}),r.createElement("path",{"data-name":"Path 111",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 112",d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65Z",opacity:.2}),r.createElement("path",{"data-name":"Path 113",d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793Z",opacity:.1}),r.createElement("path",{"data-name":"Path 114",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8Z",fill:"#3f3d56"})),r.createElement("path",{"data-name":"Path 40",d:"M360.175 475.732h91.791v37.153h-91.791Z",fill:"#fff",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 41",d:"M277.126 597.026a21.828 21.828 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 42",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 43",d:"M408.255 618.882h32.782v-43.71h-32.782Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 44",d:"M462.893 591.563a5.438 5.438 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 45",d:"M419.183 553.317h32.782v-21.855h-32.782Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 46",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 2.811 2.811 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253c.023-.081.042-.164.063-.246a2.814 2.814 0 0 0 .349.035",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 47",d:"M320.836 479.556a2.732 2.732 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.732 2.732 0 0 1-2.732 2.732",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 48",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z",fill:"#ffff50",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 49",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 50",d:"M342.691 618.882h43.71v-43.71h-43.71Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{"data-name":"Rectangle 3",width:92.361,height:36.462,rx:2,fill:"#d8d8d8"}),r.createElement("g",{"data-name":"Group 2",transform:"translate(1.531 23.03)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 4",width:5.336,height:5.336,rx:1,transform:"translate(16.797)"}),r.createElement("rect",{"data-name":"Rectangle 5",width:5.336,height:5.336,rx:1,transform:"translate(23.12)"}),r.createElement("rect",{"data-name":"Rectangle 6",width:5.336,height:5.336,rx:1,transform:"translate(29.444)"}),r.createElement("rect",{"data-name":"Rectangle 7",width:5.336,height:5.336,rx:1,transform:"translate(35.768)"}),r.createElement("rect",{"data-name":"Rectangle 8",width:5.336,height:5.336,rx:1,transform:"translate(42.091)"}),r.createElement("rect",{"data-name":"Rectangle 9",width:5.336,height:5.336,rx:1,transform:"translate(48.415)"}),r.createElement("rect",{"data-name":"Rectangle 10",width:5.336,height:5.336,rx:1,transform:"translate(54.739)"}),r.createElement("rect",{"data-name":"Rectangle 11",width:5.336,height:5.336,rx:1,transform:"translate(61.063)"}),r.createElement("rect",{"data-name":"Rectangle 12",width:5.336,height:5.336,rx:1,transform:"translate(67.386)"}),r.createElement("path",{"data-name":"Path 51",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0ZM75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 3",transform:"translate(1.531 10.261)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 52",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 13",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 14",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 15",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 16",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 17",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 18",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 19",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 20",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 21",width:5.336,height:5.336,rx:1,transform:"translate(58.888)"}),r.createElement("rect",{"data-name":"Rectangle 22",width:5.336,height:5.336,rx:1,transform:"translate(65.212)"}),r.createElement("rect",{"data-name":"Rectangle 23",width:5.336,height:5.336,rx:1,transform:"translate(71.536)"}),r.createElement("rect",{"data-name":"Rectangle 24",width:5.336,height:5.336,rx:1,transform:"translate(77.859)"}),r.createElement("rect",{"data-name":"Rectangle 25",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"})),r.createElement("g",{"data-name":"Group 4",transform:"rotate(180 45.525 4.773)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 53",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 26",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 27",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 28",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 29",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 30",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 31",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 32",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 33",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 34",width:5.336,height:5.336,rx:1,transform:"translate(58.889)"}),r.createElement("rect",{"data-name":"Rectangle 35",width:5.336,height:5.336,rx:1,transform:"translate(65.213)"}),r.createElement("rect",{"data-name":"Rectangle 36",width:5.336,height:5.336,rx:1,transform:"translate(71.537)"}),r.createElement("rect",{"data-name":"Rectangle 37",width:5.336,height:5.336,rx:1,transform:"translate(77.86)"}),r.createElement("rect",{"data-name":"Rectangle 38",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"}),r.createElement("rect",{"data-name":"Rectangle 39",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 40",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 41",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 42",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 43",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 44",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 45",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 46",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 47",width:5.336,height:5.336,rx:1,transform:"translate(58.889)"}),r.createElement("rect",{"data-name":"Rectangle 48",width:5.336,height:5.336,rx:1,transform:"translate(65.213)"}),r.createElement("rect",{"data-name":"Rectangle 49",width:5.336,height:5.336,rx:1,transform:"translate(71.537)"}),r.createElement("rect",{"data-name":"Rectangle 50",width:5.336,height:5.336,rx:1,transform:"translate(77.86)"}),r.createElement("rect",{"data-name":"Rectangle 51",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"})),r.createElement("g",{"data-name":"Group 6",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 54",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{"data-name":"Rectangle 52",width:5.336,height:5.336,rx:1}),r.createElement("rect",{"data-name":"Rectangle 53",width:5.336,height:5.336,rx:1,transform:"translate(6.324)"}),r.createElement("rect",{"data-name":"Rectangle 54",width:5.336,height:5.336,rx:1,transform:"translate(12.647)"}),r.createElement("rect",{"data-name":"Rectangle 55",width:5.336,height:5.336,rx:1,transform:"translate(18.971)"}),r.createElement("rect",{"data-name":"Rectangle 56",width:5.336,height:5.336,rx:1,transform:"translate(25.295)"}),r.createElement("rect",{"data-name":"Rectangle 57",width:5.336,height:5.336,rx:1,transform:"translate(31.619)"}),r.createElement("rect",{"data-name":"Rectangle 58",width:5.336,height:5.336,rx:1,transform:"translate(37.942)"}),r.createElement("rect",{"data-name":"Rectangle 59",width:5.336,height:5.336,rx:1,transform:"translate(44.265)"}),r.createElement("rect",{"data-name":"Rectangle 60",width:5.336,height:5.336,rx:1,transform:"translate(50.589)"}),r.createElement("rect",{"data-name":"Rectangle 61",width:5.336,height:5.336,rx:1,transform:"translate(56.912)"}),r.createElement("rect",{"data-name":"Rectangle 62",width:5.336,height:5.336,rx:1,transform:"translate(63.236)"})),r.createElement("path",{"data-name":"Path 55",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 7",transform:"translate(1.531 29.627)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 63",width:5.336,height:5.336,rx:1}),r.createElement("rect",{"data-name":"Rectangle 64",width:5.336,height:5.336,rx:1,transform:"translate(6.324)"}),r.createElement("rect",{"data-name":"Rectangle 65",width:5.336,height:5.336,rx:1,transform:"translate(12.647)"}),r.createElement("rect",{"data-name":"Rectangle 66",width:5.336,height:5.336,rx:1,transform:"translate(18.971)"}),r.createElement("path",{"data-name":"Path 56",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0Zm33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 67",width:5.336,height:5.336,rx:1,transform:"translate(66.003)"}),r.createElement("rect",{"data-name":"Rectangle 68",width:5.336,height:5.336,rx:1,transform:"translate(72.327)"}),r.createElement("rect",{"data-name":"Rectangle 69",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"}),r.createElement("path",{"data-name":"Path 57",d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z"}),r.createElement("path",{"data-name":"Path 58",d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z"})),r.createElement("rect",{"data-name":"Rectangle 70",width:88.927,height:2.371,rx:1.085,transform:"translate(1.925 1.17)",fill:"#4a4a4a"}),r.createElement("rect",{"data-name":"Rectangle 71",width:4.986,height:1.581,rx:.723,transform:"translate(4.1 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 72",width:4.986,height:1.581,rx:.723,transform:"translate(10.923 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 73",width:4.986,height:1.581,rx:.723,transform:"translate(16.173 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 74",width:4.986,height:1.581,rx:.723,transform:"translate(21.421 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 75",width:4.986,height:1.581,rx:.723,transform:"translate(26.671 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 76",width:4.986,height:1.581,rx:.723,transform:"translate(33.232 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 77",width:4.986,height:1.581,rx:.723,transform:"translate(38.48 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 78",width:4.986,height:1.581,rx:.723,transform:"translate(43.73 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 79",width:4.986,height:1.581,rx:.723,transform:"translate(48.978 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 80",width:4.986,height:1.581,rx:.723,transform:"translate(55.54 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 81",width:4.986,height:1.581,rx:.723,transform:"translate(60.788 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 82",width:4.986,height:1.581,rx:.723,transform:"translate(66.038 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 83",width:4.986,height:1.581,rx:.723,transform:"translate(72.599 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 84",width:4.986,height:1.581,rx:.723,transform:"translate(77.847 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 85",width:4.986,height:1.581,rx:.723,transform:"translate(83.097 1.566)",fill:"#d8d8d8",opacity:.136})),r.createElement("path",{"data-name":"Path 59",d:"M408.256 591.563a5.439 5.439 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 60",d:"M342.691 553.317h43.71v-21.855h-43.71Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 61",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 2.811 2.811 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253c.023-.081.042-.164.063-.246a2.811 2.811 0 0 0 .349.035",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 62",d:"M408.256 464.531a2.967 2.967 0 0 1-.535-.055 2.754 2.754 0 0 1-.514-.153 2.838 2.838 0 0 1-.471-.251 4.139 4.139 0 0 1-.415-.339 3.2 3.2 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 2.968 2.968 0 0 1 .055-.535 3.152 3.152 0 0 1 .152-.514 2.874 2.874 0 0 1 .252-.47 2.633 2.633 0 0 1 .753-.754 2.837 2.837 0 0 1 .471-.251 2.753 2.753 0 0 1 .514-.153 2.527 2.527 0 0 1 1.071 0 2.654 2.654 0 0 1 .983.4 4.139 4.139 0 0 1 .415.339 4.019 4.019 0 0 1 .339.415 2.786 2.786 0 0 1 .251.47 2.864 2.864 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4.139 4.139 0 0 1-.415.339 2.722 2.722 0 0 1-1.519.459m21.855-1.366a2.789 2.789 0 0 1-1.935-.8 4.162 4.162 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.789 2.789 0 0 1 .8-1.934 4.139 4.139 0 0 1 .415-.339 2.838 2.838 0 0 1 .471-.251 2.752 2.752 0 0 1 .514-.153 2.527 2.527 0 0 1 1.071 0 2.654 2.654 0 0 1 .983.4 4.139 4.139 0 0 1 .415.339 2.79 2.79 0 0 1 .8 1.934 3.069 3.069 0 0 1-.055.535 2.779 2.779 0 0 1-.153.514 3.885 3.885 0 0 1-.251.47 4.02 4.02 0 0 1-.339.415 4.138 4.138 0 0 1-.415.339 2.722 2.722 0 0 1-1.519.459",fillRule:"evenodd"}))))}},8066:(e,t,a)=>{a.d(t,{Z:()=>c});var l,r=a(7294);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":a},c),void 0===t?r.createElement("title",{id:a},"Powered by React"):t?r.createElement("title",{id:a},t):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{"data-name":"Path 299",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a87.991 87.991 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189.089 189.089 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 300",d:"M497.02 445.61a95.21 95.21 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a87.991 87.991 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12ZM162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z",opacity:.1}),r.createElement("path",{"data-name":"Path 301",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 302",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z",opacity:.2}),r.createElement("path",{"data-name":"Path 303",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 304",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 305",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Rectangle 137",fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Rectangle 138",opacity:.1,d:"M680.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Rectangle 139",fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Path 306",d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 307",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 308",d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z",opacity:.1}),r.createElement("path",{"data-name":"Path 309",d:"M194.59 319.15h177.5V467.4l-177.5 4Z",fill:"#39374d"}),r.createElement("path",{"data-name":"Path 310",d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z",opacity:.1}),r.createElement("path",{"data-name":"Path 311",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 312",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95Z",opacity:.1}),r.createElement("path",{"data-name":"Path 313",d:"M775.59 319.15h-177.5V467.4l177.5 4Z",fill:"#39374d"}),r.createElement("path",{"data-name":"Path 314",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 315",d:"M397.09 319.15h177.5V467.4l-177.5 4Z",fill:"#4267b2"}),r.createElement("path",{"data-name":"Path 316",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z",opacity:.1}),r.createElement("circle",{"data-name":"Ellipse 111",cx:51.33,cy:51.33,r:51.33,transform:"translate(435.93 246.82)",fill:"#fbbebe"}),r.createElement("path",{"data-name":"Path 317",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a344.66 344.66 0 0 0 9.65 33.92Z",fill:"#fbbebe"}),r.createElement("path",{"data-name":"Path 318",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2437.506 2437.506 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88Z",fill:"#ff6584"}),r.createElement("path",{"data-name":"Path 319",d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 320",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.617 10.617 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.391 10.391 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937.419 937.419 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 321",d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5.159 5.159 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.564 3.564 0 0 1 .25.61 6.279 6.279 0 0 1 .36 2.59Z",opacity:.1}),r.createElement("path",{"data-name":"Path 322",d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z",opacity:.1}),r.createElement("path",{"data-name":"Path 323",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 324",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z",opacity:.1}),r.createElement("path",{"data-name":"Path 325",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 326",d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z",opacity:.1}),r.createElement("path",{"data-name":"Path 327",d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z",opacity:.1}),r.createElement("path",{"data-name":"Path 328",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 329",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.491 163.491 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266.055 266.055 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16Z",fill:"#3f3d56"})),r.createElement("path",{"data-name":"Path 40",d:"M280.139 370.832h43.635v17.662h-43.635Z",fill:"#fff",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 41",d:"M240.66 428.493a10.377 10.377 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 42",d:"m287.402 373.625 36.373-2.273v-5.195a10.389 10.389 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.389 10.389 0 0 0 10.389 10.34h62.335a10.389 10.389 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 43",d:"M302.996 438.882h15.584v-20.779h-15.584Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 44",d:"M328.97 425.895a2.582 2.582 0 0 0-.332.033c-.02-.078-.038-.156-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6 2.6 0 1 0-5.128 0c-.077.02-.154.038-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 45",d:"M308.191 407.713h15.584v-10.389h-15.584Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 46",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1.336 1.336 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.285 1.285 0 0 0-.783.269l-.087-.087a1.285 1.285 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.285 1.285 0 0 0-.263-.776l.087-.087a1.285 1.285 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5c.011-.038.02-.078.03-.117a1.337 1.337 0 0 0 .166.017",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 47",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 48",d:"M282.217 438.882h31.168a10.389 10.389 0 0 0 10.389-10.389V392.13h-31.168a10.389 10.389 0 0 0-10.389 10.389Z",fill:"#ffff50",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 49",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.815 3.815 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.588 3.588 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 50",d:"M271.828 438.882h20.779v-20.779h-20.779Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{"data-name":"Rectangle 3",width:43.906,height:17.333,rx:2,fill:"#d8d8d8"}),r.createElement("g",{"data-name":"Group 2",transform:"translate(.728 10.948)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 4",width:2.537,height:2.537,rx:1,transform:"translate(7.985)"}),r.createElement("rect",{"data-name":"Rectangle 5",width:2.537,height:2.537,rx:1,transform:"translate(10.991)"}),r.createElement("rect",{"data-name":"Rectangle 6",width:2.537,height:2.537,rx:1,transform:"translate(13.997)"}),r.createElement("rect",{"data-name":"Rectangle 7",width:2.537,height:2.537,rx:1,transform:"translate(17.003)"}),r.createElement("rect",{"data-name":"Rectangle 8",width:2.537,height:2.537,rx:1,transform:"translate(20.009)"}),r.createElement("rect",{"data-name":"Rectangle 9",width:2.537,height:2.537,rx:1,transform:"translate(23.015)"}),r.createElement("rect",{"data-name":"Rectangle 10",width:2.537,height:2.537,rx:1,transform:"translate(26.021)"}),r.createElement("rect",{"data-name":"Rectangle 11",width:2.537,height:2.537,rx:1,transform:"translate(29.028)"}),r.createElement("rect",{"data-name":"Rectangle 12",width:2.537,height:2.537,rx:1,transform:"translate(32.034)"}),r.createElement("path",{"data-name":"Path 51",d:"M.519 0H6.9a.519.519 0 0 1 .521.52v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Zm35.134 0h6.383a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-6.384a.519.519 0 0 1-.519-.519v-1.5A.519.519 0 0 1 35.652 0Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 3",transform:"translate(.728 4.878)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 52",d:"M.519 0h2.437a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 13",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 14",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 15",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 16",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 17",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 18",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 19",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 20",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 21",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 22",width:2.537,height:2.537,rx:1,transform:"translate(31)"}),r.createElement("rect",{"data-name":"Rectangle 23",width:2.537,height:2.537,rx:1,transform:"translate(34.006)"}),r.createElement("rect",{"data-name":"Rectangle 24",width:2.537,height:2.537,rx:1,transform:"translate(37.012)"}),r.createElement("rect",{"data-name":"Rectangle 25",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"})),r.createElement("g",{"data-name":"Group 4",transform:"rotate(180 21.642 2.269)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 53",d:"M.519 0h2.437a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 26",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 27",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 28",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 29",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 30",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 31",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 32",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 33",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 34",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 35",width:2.537,height:2.537,rx:1,transform:"translate(31.001)"}),r.createElement("rect",{"data-name":"Rectangle 36",width:2.537,height:2.537,rx:1,transform:"translate(34.007)"}),r.createElement("rect",{"data-name":"Rectangle 37",width:2.537,height:2.537,rx:1,transform:"translate(37.013)"}),r.createElement("rect",{"data-name":"Rectangle 38",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"}),r.createElement("rect",{"data-name":"Rectangle 39",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 40",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 41",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 42",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 43",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 44",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 45",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 46",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 47",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 48",width:2.537,height:2.537,rx:1,transform:"translate(31.001)"}),r.createElement("rect",{"data-name":"Rectangle 49",width:2.537,height:2.537,rx:1,transform:"translate(34.007)"}),r.createElement("rect",{"data-name":"Rectangle 50",width:2.537,height:2.537,rx:1,transform:"translate(37.013)"}),r.createElement("rect",{"data-name":"Rectangle 51",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"})),r.createElement("g",{"data-name":"Group 6",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 54",d:"M1.247 7.883h3.47a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-3.47A.519.519 0 0 1 .728 9.9V8.403a.519.519 0 0 1 .519-.52Z",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{"data-name":"Rectangle 52",width:2.537,height:2.537,rx:1}),r.createElement("rect",{"data-name":"Rectangle 53",width:2.537,height:2.537,rx:1,transform:"translate(3.006)"}),r.createElement("rect",{"data-name":"Rectangle 54",width:2.537,height:2.537,rx:1,transform:"translate(6.012)"}),r.createElement("rect",{"data-name":"Rectangle 55",width:2.537,height:2.537,rx:1,transform:"translate(9.018)"}),r.createElement("rect",{"data-name":"Rectangle 56",width:2.537,height:2.537,rx:1,transform:"translate(12.025)"}),r.createElement("rect",{"data-name":"Rectangle 57",width:2.537,height:2.537,rx:1,transform:"translate(15.031)"}),r.createElement("rect",{"data-name":"Rectangle 58",width:2.537,height:2.537,rx:1,transform:"translate(18.037)"}),r.createElement("rect",{"data-name":"Rectangle 59",width:2.537,height:2.537,rx:1,transform:"translate(21.042)"}),r.createElement("rect",{"data-name":"Rectangle 60",width:2.537,height:2.537,rx:1,transform:"translate(24.049)"}),r.createElement("rect",{"data-name":"Rectangle 61",width:2.537,height:2.537,rx:1,transform:"translate(27.055)"}),r.createElement("rect",{"data-name":"Rectangle 62",width:2.537,height:2.537,rx:1,transform:"translate(30.061)"})),r.createElement("path",{"data-name":"Path 55",d:"M39.482 7.883h3.28a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-3.281a.519.519 0 0 1-.519-.521V8.403a.519.519 0 0 1 .519-.52Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 7",transform:"translate(.728 14.084)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 63",width:2.537,height:2.537,rx:1}),r.createElement("rect",{"data-name":"Rectangle 64",width:2.537,height:2.537,rx:1,transform:"translate(3.006)"}),r.createElement("rect",{"data-name":"Rectangle 65",width:2.537,height:2.537,rx:1,transform:"translate(6.012)"}),r.createElement("rect",{"data-name":"Rectangle 66",width:2.537,height:2.537,rx:1,transform:"translate(9.018)"}),r.createElement("path",{"data-name":"Path 56",d:"M12.543 0h14.462a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H12.543a.519.519 0 0 1-.519-.52V.519A.519.519 0 0 1 12.543 0Zm15.97 0h1.874a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-1.874a.519.519 0 0 1-.519-.519v-1.5A.519.519 0 0 1 28.513 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 67",width:2.537,height:2.537,rx:1,transform:"translate(31.376)"}),r.createElement("rect",{"data-name":"Rectangle 68",width:2.537,height:2.537,rx:1,transform:"translate(34.382)"}),r.createElement("rect",{"data-name":"Rectangle 69",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"}),r.createElement("path",{"data-name":"Path 57",d:"M37.199 1.08V.519A.519.519 0 0 1 37.718 0h1.499a.519.519 0 0 1 .519.519v.561Z"}),r.createElement("path",{"data-name":"Path 58",d:"M39.737 1.456v.561a.519.519 0 0 1-.519.519h-1.499a.519.519 0 0 1-.519-.519v-.561Z"})),r.createElement("rect",{"data-name":"Rectangle 70",width:42.273,height:1.127,rx:.564,transform:"translate(.915 .556)",fill:"#4a4a4a"}),r.createElement("rect",{"data-name":"Rectangle 71",width:2.37,height:.752,rx:.376,transform:"translate(1.949 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 72",width:2.37,height:.752,rx:.376,transform:"translate(5.193 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 73",width:2.37,height:.752,rx:.376,transform:"translate(7.688 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 74",width:2.37,height:.752,rx:.376,transform:"translate(10.183 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 75",width:2.37,height:.752,rx:.376,transform:"translate(12.679 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 76",width:2.37,height:.752,rx:.376,transform:"translate(15.797 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 77",width:2.37,height:.752,rx:.376,transform:"translate(18.292 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 78",width:2.37,height:.752,rx:.376,transform:"translate(20.788 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 79",width:2.37,height:.752,rx:.376,transform:"translate(23.283 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 80",width:2.37,height:.752,rx:.376,transform:"translate(26.402 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 81",width:2.37,height:.752,rx:.376,transform:"translate(28.897 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 82",width:2.37,height:.752,rx:.376,transform:"translate(31.393 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 83",width:2.37,height:.752,rx:.376,transform:"translate(34.512 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 84",width:2.37,height:.752,rx:.376,transform:"translate(37.007 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 85",width:2.37,height:.752,rx:.376,transform:"translate(39.502 .744)",fill:"#d8d8d8",opacity:.136})),r.createElement("path",{"data-name":"Path 59",d:"M302.996 425.895a2.583 2.583 0 0 0-.332.033c-.02-.078-.038-.156-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6 2.6 0 1 0-5.128 0c-.077.02-.154.038-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 60",d:"M271.828 407.713h20.779v-10.389h-20.779Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 61",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1.338 1.338 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.285 1.285 0 0 0-.783.269l-.087-.087a1.285 1.285 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.285 1.285 0 0 0-.263-.776l.087-.087a1.285 1.285 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5c.011-.038.02-.078.03-.117a1.335 1.335 0 0 0 .166.017",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 62",d:"M302.997 365.507a1.41 1.41 0 0 1-.255-.026 1.309 1.309 0 0 1-.244-.073 1.349 1.349 0 0 1-.224-.119 1.967 1.967 0 0 1-.2-.161 1.52 1.52 0 0 1-.161-.2 1.282 1.282 0 0 1-.218-.722 1.41 1.41 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.364 1.364 0 0 1 .12-.223 1.252 1.252 0 0 1 .358-.358 1.349 1.349 0 0 1 .224-.119 1.309 1.309 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.262 1.262 0 0 1 .468.192 1.968 1.968 0 0 1 .2.161 1.908 1.908 0 0 1 .161.2 1.322 1.322 0 0 1 .12.223 1.361 1.361 0 0 1 .1.5 1.317 1.317 0 0 1-.379.919 1.968 1.968 0 0 1-.2.161 1.346 1.346 0 0 1-.223.119 1.332 1.332 0 0 1-.5.1m10.389-.649a1.326 1.326 0 0 1-.92-.379 1.979 1.979 0 0 1-.161-.2 1.282 1.282 0 0 1-.218-.722 1.326 1.326 0 0 1 .379-.919 1.967 1.967 0 0 1 .2-.161 1.351 1.351 0 0 1 .224-.119 1.308 1.308 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.262 1.262 0 0 1 .468.192 1.967 1.967 0 0 1 .2.161 1.326 1.326 0 0 1 .379.919 1.461 1.461 0 0 1-.026.255 1.323 1.323 0 0 1-.073.244 1.847 1.847 0 0 1-.119.223 1.911 1.911 0 0 1-.161.2 1.967 1.967 0 0 1-.2.161 1.294 1.294 0 0 1-.722.218",fillRule:"evenodd"}),r.createElement("g",{transform:"translate(466.3 278.56)",fill:"#61dafb"},r.createElement("path",{"data-name":"Path 330",d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.861 7.861 0 0 0-4.016-1v4a4.152 4.152 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a86.9 86.9 0 0 0-11.386-1.954 87.469 87.469 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a84.687 84.687 0 0 0-7.405 8.947 83.732 83.732 0 0 0-11.4 1.972 54.136 54.136 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a3.991 3.991 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.882 7.882 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752Zm-23.346-11.96a80.235 80.235 0 0 1-2.421 7.083 83.185 83.185 0 0 0-2.349-4.3 96.877 96.877 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93.313 93.313 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94.058 94.058 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93.313 93.313 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101.198 101.198 0 0 1-3.712 7.15Zm5.792-2.331a76.525 76.525 0 0 1 2.474 7.136 80.22 80.22 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96.22 96.22 0 0 0 2.329-4.324Zm-18.182 19.128a73.921 73.921 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a69.993 69.993 0 0 1-4.931 5.738Zm-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80.235 80.235 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2Zm13.25-37.314a73.924 73.924 0 0 1 4.985 5.738 110.567 110.567 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a69.993 69.993 0 0 1 4.931-5.738ZM206.362 103.8a100.567 100.567 0 0 0-4.913 8.55 76.525 76.525 0 0 1-2.474-7.136 90.158 90.158 0 0 1 7.387-1.414Zm-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86.122 86.122 0 0 0 4.034 10.92 84.9 84.9 0 0 0-3.981 10.866 53.804 53.804 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a86.9 86.9 0 0 0 11.386 1.954 87.465 87.465 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.279 4.279 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a3.99 3.99 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a84.689 84.689 0 0 0 7.405-8.947 83.731 83.731 0 0 0 11.4-1.972 50.194 50.194 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86.12 86.12 0 0 0-4.034-10.92 84.9 84.9 0 0 0 3.981-10.866 56.777 56.777 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z"}),r.createElement("path",{"data-name":"Path 331",d:"M201.718 78.072Z"}),r.createElement("circle",{"data-name":"Ellipse 112",cx:8.194,cy:8.194,r:8.194,transform:"translate(211.472 108.984)"}),r.createElement("path",{"data-name":"Path 332",d:"M237.525 78.018Z"})))))}},4002:(e,t,a)=>{a.d(t,{Z:()=>N});var l,r,n,c,h,d,m,i,s,f,o,g,E,v,p,x,R,w,Z,y,M,u,P,j,q,b,V,A,H,_,G,O,C,S,I,F,B=a(7294);function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...N}=e;return B.createElement("svg",D({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":a},N),void 0===t?B.createElement("title",{id:a},"Focus on What Matters"):t?B.createElement("title",{id:a},t):null,l||(l=B.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=B.createElement("ellipse",{cx:559,cy:635.5,rx:514,ry:27.5,fill:"#3f3d56"})),n||(n=B.createElement("ellipse",{cx:558,cy:627,rx:460,ry:22,opacity:.2})),c||(c=B.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=B.createElement("path",{d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67Z",fill:"#3f3d56"})),d||(d=B.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67Z",opacity:.2})),m||(m=B.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=B.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=B.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=B.createElement("rect",{x:168,y:213.5,width:337,height:386,rx:5.335,fill:"#606060"})),o||(o=B.createElement("rect",{x:603,y:272.5,width:284,height:22,rx:5.476,fill:"#2e8555"})),g||(g=B.createElement("rect",{x:537,y:352.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),E||(E=B.createElement("rect",{x:537,y:396.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),v||(v=B.createElement("rect",{x:537,y:440.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),p||(p=B.createElement("rect",{x:537,y:484.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),x||(x=B.createElement("rect",{x:865,y:552.5,width:88,height:26,rx:7.028,fill:"#3ecc5f"})),R||(R=B.createElement("path",{d:"M1053.103 506.116a30.114 30.114 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.114 30.114 0 0 0 3.983 15.266 31.248 31.248 0 0 0 0 30.532 31.248 31.248 0 0 0 0 30.532 31.248 31.248 0 0 0 0 30.532 30.114 30.114 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.114 30.114 0 0 0-3.983-15.267 31.248 31.248 0 0 0 0-30.532 31.248 31.248 0 0 0 0-30.532 31.248 31.248 0 0 0 0-30.532Z",fill:"#3f3d56"})),w||(w=B.createElement("ellipse",{cx:1038.003,cy:460.318,rx:19.083,ry:24.981,fill:"#3f3d56"})),Z||(Z=B.createElement("ellipse",{cx:1038.003,cy:429.786,rx:19.083,ry:24.981,fill:"#3f3d56"})),y||(y=B.createElement("path",{d:"M1109.439 220.845a91.61 91.61 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.566 91.566 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.458 91.458 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.418 91.418 0 0 0 0-113.03Z",fill:"#3ecc5f",fillRule:"evenodd"})),M||(M=B.createElement("path",{d:"M946.188 277.36a91.013 91.013 0 0 0 19.562 56.514 91.406 91.406 0 1 0 143.689 0c12.25-15.553-163.25-66.774-163.25-56.515Z",opacity:.1})),u||(u=B.createElement("path",{d:"M330.12 342.936h111.474v45.12H330.12Z",fill:"#fff",fillRule:"evenodd"})),P||(P=B.createElement("path",{d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z",fill:"#3ecc5f",fillRule:"evenodd"})),j||(j=B.createElement("path",{d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497c0 .028-.004.055-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197",fill:"#3ecc5f",fillRule:"evenodd"})),q||(q=B.createElement("path",{d:"M388.511 516.783h39.812V463.7h-39.812Z",fill:"#3ecc5f",fillRule:"evenodd"})),b||(b=B.createElement("path",{d:"M454.865 483.606a6.602 6.602 0 0 0-.848.085c-.05-.2-.099-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186",fill:"#44d860",fillRule:"evenodd"})),V||(V=B.createElement("path",{d:"M401.782 437.158h39.812v-26.541h-39.812Z",fill:"#3ecc5f",fillRule:"evenodd"})),A||(A=B.createElement("path",{d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3.411 3.411 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.282 3.282 0 0 0-2 .688q-.11-.113-.224-.223a3.282 3.282 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.282 3.282 0 0 0-.672-1.982q.114-.11.223-.223a3.282 3.282 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3.413 3.413 0 0 0 .424.042",fill:"#44d860",fillRule:"evenodd"})),H||(H=B.createElement("path",{d:"M282.345 347.581a3.318 3.318 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.318 3.318 0 0 1-3.318 3.318",fillRule:"evenodd"})),_||(_=B.createElement("path",{d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z",fill:"#ffff50",fillRule:"evenodd"})),G||(G=B.createElement("path",{d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z",fillRule:"evenodd"})),O||(O=B.createElement("path",{d:"M308.887 516.783h53.083V463.7h-53.083Z",fill:"#3ecc5f",fillRule:"evenodd"})),C||(C=B.createElement("path",{d:"M388.511 483.606a6.602 6.602 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186",fill:"#44d860",fillRule:"evenodd"})),S||(S=B.createElement("path",{d:"M308.887 437.158h53.083v-26.541h-53.083Z",fill:"#3ecc5f",fillRule:"evenodd"})),I||(I=B.createElement("path",{d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3.411 3.411 0 0 0-.423.042c-.026-.1-.05-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.282 3.282 0 0 0-2.001.688q-.11-.113-.223-.223a3.282 3.282 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.282 3.282 0 0 0-.671-1.982q.113-.11.223-.223a3.282 3.282 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3.413 3.413 0 0 0 .423.042",fill:"#44d860",fillRule:"evenodd"})),F||(F=B.createElement("path",{d:"M388.511 329.334a3.603 3.603 0 0 1-.65-.067 3.344 3.344 0 0 1-.624-.185 3.447 3.447 0 0 1-.572-.306 5.027 5.027 0 0 1-.504-.411 3.887 3.887 0 0 1-.41-.504 3.275 3.275 0 0 1-.558-1.845 3.602 3.602 0 0 1 .067-.65 3.826 3.826 0 0 1 .184-.624 3.489 3.489 0 0 1 .307-.57 3.197 3.197 0 0 1 .914-.916 3.447 3.447 0 0 1 .572-.305 3.344 3.344 0 0 1 .624-.186 3.07 3.07 0 0 1 1.3 0 3.223 3.223 0 0 1 1.195.49 5.028 5.028 0 0 1 .504.412 4.88 4.88 0 0 1 .411.504 3.382 3.382 0 0 1 .306.571 3.478 3.478 0 0 1 .252 1.274 3.364 3.364 0 0 1-.969 2.349 5.027 5.027 0 0 1-.504.411 3.306 3.306 0 0 1-1.845.558m26.542-1.66a3.388 3.388 0 0 1-2.35-.968 5.042 5.042 0 0 1-.41-.504 3.275 3.275 0 0 1-.558-1.845 3.387 3.387 0 0 1 .967-2.349 5.026 5.026 0 0 1 .505-.411 3.447 3.447 0 0 1 .572-.305 3.343 3.343 0 0 1 .623-.186 3.07 3.07 0 0 1 1.3 0 3.224 3.224 0 0 1 1.195.49 5.026 5.026 0 0 1 .504.412 3.388 3.388 0 0 1 .97 2.35 3.726 3.726 0 0 1-.067.65 3.374 3.374 0 0 1-.186.623 4.715 4.715 0 0 1-.305.57 4.88 4.88 0 0 1-.412.505 5.026 5.026 0 0 1-.504.412 3.305 3.305 0 0 1-1.844.557",fillRule:"evenodd"})))}},6683:(e,t,a)=>{a.r(t),a.d(t,{default:()=>P});var l,r=a(7294);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:108.852,height:40,viewBox:"0 0 108.852 40","aria-labelledby":a},c),void 0===t?r.createElement("title",{id:a},"Download_on_the_App_Store_Badge_CNSC_RGB_blk_092917"):t?r.createElement("title",{id:a},t):null,r.createElement("path",{d:"M99.322 0H9.535c-.367 0-.73 0-1.095.002-.306.002-.61.008-.919.013A13.215 13.215 0 0 0 5.517.19a6.665 6.665 0 0 0-1.9.627 6.438 6.438 0 0 0-1.62 1.18A6.258 6.258 0 0 0 .82 3.617a6.601 6.601 0 0 0-.625 1.903 12.993 12.993 0 0 0-.179 2.002c-.01.307-.01.615-.015.921V31.56c.005.31.006.61.015.921a12.992 12.992 0 0 0 .18 2.002 6.588 6.588 0 0 0 .624 1.905A6.208 6.208 0 0 0 1.998 38a6.274 6.274 0 0 0 1.618 1.179 6.7 6.7 0 0 0 1.901.63 13.455 13.455 0 0 0 2.004.177c.31.007.613.011.919.011.366.002.728.002 1.095.002h89.787c.36 0 .725 0 1.084-.002.305 0 .617-.004.922-.01a13.279 13.279 0 0 0 2-.178 6.804 6.804 0 0 0 1.908-.63A6.277 6.277 0 0 0 106.854 38a6.395 6.395 0 0 0 1.181-1.614 6.604 6.604 0 0 0 .62-1.905 13.506 13.506 0 0 0 .185-2.002c.004-.31.004-.61.004-.921.008-.364.008-.725.008-1.094V9.536c0-.366 0-.73-.008-1.092 0-.306 0-.614-.004-.92a13.507 13.507 0 0 0-.186-2.003 6.618 6.618 0 0 0-.619-1.903 6.466 6.466 0 0 0-2.799-2.8 6.768 6.768 0 0 0-1.908-.627 13.044 13.044 0 0 0-2-.176c-.305-.005-.617-.011-.922-.013C100.046 0 99.682 0 99.322 0Z",style:{fill:"#a6a6a6"}}),l||(l=r.createElement("path",{d:"M8.445 39.125c-.305 0-.602-.004-.904-.01a12.687 12.687 0 0 1-1.87-.164 5.884 5.884 0 0 1-1.656-.548 5.406 5.406 0 0 1-1.397-1.016 5.32 5.32 0 0 1-1.02-1.397 5.722 5.722 0 0 1-.544-1.657 12.414 12.414 0 0 1-.166-1.875c-.007-.21-.015-.913-.015-.913v-23.1s.009-.692.015-.895a12.37 12.37 0 0 1 .165-1.872 5.755 5.755 0 0 1 .544-1.662 5.373 5.373 0 0 1 1.015-1.398 5.565 5.565 0 0 1 1.402-1.023 5.823 5.823 0 0 1 1.653-.544A12.586 12.586 0 0 1 7.543.887l.902-.012h91.956l.913.013a12.385 12.385 0 0 1 1.859.162 5.938 5.938 0 0 1 1.67.548 5.594 5.594 0 0 1 2.416 2.42 5.763 5.763 0 0 1 .535 1.649 12.995 12.995 0 0 1 .174 1.887c.003.283.003.588.003.89.008.375.008.732.008 1.092v20.929c0 .363 0 .718-.008 1.075 0 .325 0 .623-.004.93a12.731 12.731 0 0 1-.171 1.853 5.739 5.739 0 0 1-.54 1.67 5.48 5.48 0 0 1-1.016 1.386 5.413 5.413 0 0 1-1.4 1.022 5.862 5.862 0 0 1-1.667.55 12.542 12.542 0 0 1-1.87.163c-.292.007-.599.011-.897.011l-1.084.002Z"})),r.createElement("path",{d:"M41.167 16.555h-4.051l-.973 2.873h-1.716l3.837-10.63h1.783l3.838 10.63H42.14Zm-3.632-1.326h3.212l-1.583-4.663h-.044ZM52.173 15.553c0 2.408-1.29 3.956-3.234 3.956a2.627 2.627 0 0 1-2.439-1.356h-.036v3.838h-1.591V11.678h1.54v1.289h.029a2.749 2.749 0 0 1 2.467-1.37c1.967 0 3.264 1.555 3.264 3.956Zm-1.635 0c0-1.569-.811-2.6-2.048-2.6-1.216 0-2.033 1.053-2.033 2.6 0 1.562.817 2.607 2.033 2.607 1.237 0 2.048-1.024 2.048-2.607ZM60.703 15.553c0 2.408-1.29 3.956-3.235 3.956a2.627 2.627 0 0 1-2.438-1.356h-.037v3.838h-1.59V11.678h1.54v1.289h.028a2.749 2.749 0 0 1 2.468-1.37c1.967 0 3.264 1.555 3.264 3.956Zm-1.636 0c0-1.569-.81-2.6-2.048-2.6-1.215 0-2.033 1.053-2.033 2.6 0 1.562.818 2.607 2.033 2.607 1.237 0 2.048-1.024 2.048-2.607ZM66.34 16.466c.117 1.054 1.14 1.746 2.54 1.746 1.341 0 2.306-.692 2.306-1.642 0-.825-.582-1.32-1.96-1.658l-1.377-.332c-1.952-.471-2.858-1.384-2.858-2.865 0-1.834 1.598-3.094 3.867-3.094 2.247 0 3.786 1.26 3.838 3.094H71.09c-.096-1.061-.973-1.701-2.254-1.701s-2.158.648-2.158 1.59c0 .752.56 1.194 1.93 1.533l1.17.287c2.182.516 3.087 1.392 3.087 2.947 0 1.988-1.583 3.234-4.103 3.234-2.357 0-3.948-1.216-4.051-3.139ZM76.3 9.844v1.834h1.473v1.26H76.3v4.272c0 .664.295.973.943.973a4.971 4.971 0 0 0 .523-.037v1.252a4.368 4.368 0 0 1-.884.074c-1.569 0-2.18-.59-2.18-2.092v-4.442h-1.127v-1.26H74.7V9.844ZM78.626 15.553c0-2.438 1.436-3.97 3.675-3.97 2.247 0 3.677 1.532 3.677 3.97 0 2.445-1.422 3.97-3.677 3.97-2.253 0-3.675-1.525-3.675-3.97Zm5.73 0c0-1.672-.766-2.66-2.055-2.66s-2.055.995-2.055 2.66c0 1.68.766 2.66 2.055 2.66s2.056-.98 2.056-2.66ZM87.29 11.678h1.516v1.319h.037a1.848 1.848 0 0 1 1.864-1.4 2.453 2.453 0 0 1 .545.06v1.487a2.224 2.224 0 0 0-.715-.096 1.603 1.603 0 0 0-1.657 1.783v4.597h-1.59ZM98.586 17.151a3.11 3.11 0 0 1-3.337 2.373c-2.254 0-3.653-1.51-3.653-3.934 0-2.43 1.406-4.007 3.586-4.007 2.145 0 3.493 1.473 3.493 3.822v.545H93.2v.096a2.018 2.018 0 0 0 2.085 2.195 1.753 1.753 0 0 0 1.79-1.09ZM93.21 14.84h3.874a1.864 1.864 0 0 0-1.9-1.967 1.962 1.962 0 0 0-1.974 1.967ZM34.429 24.04h7.461v.78h-3.547v1.104q.763.353 1.535.778.772.425 1.562.912l-.46.717q-.813-.519-1.46-.914-.649-.396-1.177-.657v4.608h-.79V24.82h-3.124ZM43.956 24.274h1.562v-.63h.772v.63h1.447v.717H46.29v.61h1.824l-.036-.939q-.02-.49-.019-1.026h.767q0 .546.016 1.031t.035.935h2.03v.726h-1.993q.036.505.094.923l.103.749a1.657 1.657 0 0 1 .056.224l.036.217a8.074 8.074 0 0 0 .34-.859q.152-.454.276-.974l.703.322a9.738 9.738 0 0 1-1.006 2.578c.024.06.05.123.08.185q.043.094.09.182.289.574.46.574.114 0 .266-1.208l.675.359q-.29 1.677-.855 1.676-.427 0-.97-.754a2.133 2.133 0 0 1-.187-.358 5.12 5.12 0 0 1-1.402 1.204l-.436-.629a4.192 4.192 0 0 0 1.488-1.402q-.083-.271-.167-.558-.085-.287-.145-.6a12.605 12.605 0 0 1-.262-1.85H43.52v-.727h1.998v-.61h-1.562Zm3.781 5.288v.69q-.303.037-.613.068c-.207.022-.416.045-.627.07v.95h-.772v-.854q-.436.037-.887.069c-.3.021-.605.05-.914.083l-.101-.744q.51-.02.978-.053.469-.035.924-.063v-.62H44.19l-.16-.63a5.213 5.213 0 0 0 .555-.886h-.808v-.704h1.116a1.733 1.733 0 0 0 .097-.268q.036-.135.092-.287l.753.134c-.03.085-.055.16-.073.227a.992.992 0 0 1-.078.194h2.09v.704h-2.37q-.124.249-.251.46t-.237.409h.81v-.557h.771v.557h1.194v.647h-1.194v.537c.211-.017.42-.039.627-.061q.31-.035.613-.072Zm1.347-5.459.583-.394a12.556 12.556 0 0 1 .979 1.236l-.593.422q-.18-.284-.42-.603-.242-.32-.55-.66Z",style:{fill:"#fff"}}),r.createElement("g",{"data-name":""},r.createElement("path",{"data-name":"",d:"M24.769 20.3a4.949 4.949 0 0 1 2.356-4.151 5.066 5.066 0 0 0-3.99-2.158c-1.68-.176-3.308 1.005-4.164 1.005-.872 0-2.19-.988-3.608-.958a5.315 5.315 0 0 0-4.473 2.728c-1.934 3.348-.491 8.269 1.361 10.976.927 1.325 2.01 2.805 3.428 2.753 1.387-.058 1.905-.885 3.58-.885 1.658 0 2.144.885 3.59.852 1.489-.025 2.426-1.332 3.32-2.67a10.962 10.962 0 0 0 1.52-3.092 4.782 4.782 0 0 1-2.92-4.4ZM22.037 12.21a4.872 4.872 0 0 0 1.115-3.49 4.957 4.957 0 0 0-3.208 1.66A4.636 4.636 0 0 0 18.8 13.74a4.1 4.1 0 0 0 3.237-1.53Z",style:{fill:"#fff"}})))};var h=a(2503),d=a(512);const m={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var i=a(5893);const s=[{title:"\u770b\u6587\u6863\uff0c\u67e5 Wiki",Svg:a(4002).Z,description:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{style:{margin:0},children:"\u8981\u67e5\u9605\u82f1\u6587\u6587\u6863\uff0c\u5c1d\u8bd5\u5404\u79cd\u7ffb\u8bd1\u5de5\u5177\uff0c\u5374\u603b\u8981\u5fcd\u53d7\u201c\u673a\u7ffb\u611f\u201d\uff0c\u603b\u8981\u6392\u67e5\u201c\u4e0d\u8be5\u7ffb\u8bd1\u5374\u7ffb\u8bd1\u201d\u7684\u9519\u8bef\uff1f"}),(0,i.jsx)("p",{style:{margin:0},children:"\u6709\u4e86 Valo Reader\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u9605\u8bfb\u82f1\u6587\u6587\u6863\u3002\u65e0\u635f\u83b7\u53d6\u539f\u6587\u8868\u8fbe\u7684\u542b\u4e49\u3002\u9047\u5230\u751f\u758f\u5355\u8bcd\uff0c\u6309\u4e0b\u952e\u76d8\uff0c\u76f4\u63a5\u83b7\u53d6\u5176\u4e2d\u6587\u91ca\u4e49\u3002"})]})},{title:"\u5199\u4ee3\u7801\uff0c\u641c Feature",Svg:a(4002).Z,description:(0,i.jsx)(i.Fragment,{children:"\u770b\u5230\u4e86\u4e0d\u61c2\u7684 API\uff0c\u9009\u4e2d\uff0c\u590d\u5236\uff0c\u7c98\u8d34\uff0c\u641c\u7d22\u56db\u8fde\uff0c\u53cd\u53cd\u590d\u590d\uff1f\u6709\u4e86 Valo Reader \u4f60\u53ef\u4ee5\u76f4\u63a5\u6309\u4e0b\u6307\u5b9a\u7684\u6309\u952e\uff0c\u9a6c\u4e0a\u67d0\u4e2a\u5355\u8bcd\u7684\u91ca\u4e49\uff0c\u5404\u79cd\u547d\u540d\u6cd5\uff0cValo Reader \u5168\u90fd\u80fd\u89e3\u6790\u3002Issue, StackOverflow \u968f\u4fbf\u901b\u3002"})},{title:"\u4e0b\u8f6f\u4ef6\uff0c\u627e\u6c49\u5316",Svg:a(9722).Z,description:(0,i.jsx)(i.Fragment,{children:"\u8f6f\u4ef6\u53ea\u6709\u82f1\u6587\u7248\uff0c\u8fd8\u6ca1\u53d1\u9009\u4e2d\u590d\u5236\uff1f\u6ca1\u5173\u7cfb\uff0c\u4f60\u518d\u4e5f\u4e0d\u9700\u8981\u5386\u7ecf\u8270\u9669\u627e\u6c49\u5316\u4e86\u3002\u53ea\u8981\u4f60\u80fd\u5728\u5c4f\u5e55\u4e0a\u770b\u5230\uff0cValo Reader \u5c31\u80fd\u4e00\u952e\u5e2e\u4f60\u67e5\u8be2\u91ca\u4e49\u3002"})},{title:"\u73a9\u6e38\u620f\uff0c\u4e0b MOD",Svg:a(8066).Z,description:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{children:"\u6709\u4e86 Valo Reader \u540e\uff0c\u4f60\u518d\u4e5f\u4e0d\u7528\u62c5\u5fc3\u6e38\u620f\u6216 MOD \u4f5c\u8005\u65e0\u529b\u63d0\u4f9b\u6c49\u5316\u7248\u4e86\u3002\u6253\u5f00\u6e38\u620f\uff0c\u76f4\u63a5\u6e38\u73a9\u3002"}),(0,i.jsx)("p",{children:"\u5982\u679c\u8fd8\u60f3\u6311\u6218\u4e00\u4e0b\uff0c\u4f60\u751a\u81f3\u53ef\u4ee5\u5c06\u6e38\u620f\u7684\u663e\u793a\u8bed\u8a00\u5207\u6362\u4e3a\u82f1\u6587\u6a21\u5f0f\uff0c\u4e00\u8fb9\u611f\u53d7\u6e38\u620f\uff0c\u4e00\u8fb9\u542c\u53d6\u4e2d\u6587\u97f3\u9891\uff0c\u4e00\u8fb9\u770b\u770b\u6587\u6848\u7ec4\u5982\u4f55\u628a\u6c49\u8bed\u6897\u4f20\u64ad\u7ed9\u5168\u4e16\u754c\u3002\u5f88\u597d\uff0c\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u4e00\u8fb9\u73a9\u6e38\u620f\uff0c\u4e00\u8fb9\u5b66\u4e60\u4e86\uff0c\u53ef\u771f\u662f\u592a\u5377\u4e86\ud83e\udd73\u3002"})]})},{title:"\u60f3\u8981\u63d0\u9ad8\u82f1\u8bed\u6c34\u5e73",Svg:a(4002).Z,description:(0,i.jsx)(i.Fragment,{children:"\u867d\u7136\u8fd9\u4e0d\u662f\u672c\u8f6f\u4ef6\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5f53\u6211\u4eec\u57fa\u4e8e\u5174\u8da3\uff0c\u76f4\u63a5\u9605\u8bfb\u5927\u91cf\u539f\u6587\u65f6\uff0c\u6211\u4eec\u5df2\u7ecf\u5728\u8fd9\u6837\u505a\u4e86\u3002\u6211\u4eec\u7684\u5934\u8111\u81ea\u7136\u4f1a\u5728\u8fd9\u4e00\u8fc7\u7a0b\u4e2d\u4e0d\u65ad\u5730\u83b7\u5f97\u8bad\u7ec3\u5e76\u63d0\u5347\u3002"})},{title:"\u60f3\u8981\u5728\u793e\u4ea4\u5a92\u4f53\u4e0a follow \u5927\u4f6c\uff1f",Svg:a(4002).Z,description:(0,i.jsx)(i.Fragment,{children:"\u6ca1\u95ee\u9898\uff0c\u8fd8\u662f\u50cf\u524d\u51e0\u6b65\u4e00\u6837\u3002\u6ca1\u6709\u4ec0\u4e48\u590d\u6742\u7684\u4ea4\u4e92\u3002"})},{title:"\u60f3\u8981...\u60f3\u8981...",Svg:a(4002).Z,description:(0,i.jsx)(i.Fragment,{children:"\u5168\u90fd\u53ef\u4ee5\uff0c\u4efb\u4f55\u4f7f\u7528\u82f1\u8bed\u5c55\u793a\u7684\u4fe1\u606f\u3002"})}];function f(e){let{title:t,Svg:a,description:l}=e;return(0,i.jsxs)("div",{className:(0,d.Z)("col col--12"),style:{display:"flex",justifyContent:"center",alignItems:"center"},children:[(0,i.jsx)("div",{children:(0,i.jsx)(a,{className:m.featureSvg,role:"img"})}),(0,i.jsx)("div",{style:{width:24}}),(0,i.jsxs)("div",{children:[(0,i.jsx)(h.Z,{as:"h3",children:t}),(0,i.jsx)("div",{style:{padding:0},children:l})]})]})}function o(){return(0,i.jsx)("section",{className:m.features,children:(0,i.jsx)("div",{className:"container hl_width",children:(0,i.jsx)("div",{className:"row",children:s.map(((e,t)=>(0,i.jsx)(f,{...e},t)))})})})}const g=a.p+"assets/images/intro-663e889360c7a0e605df52af33af3b11.gif";var E,v=a(7293);function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return r.createElement("svg",p({xmlns:"http://www.w3.org/2000/svg",width:140.183,height:40,viewBox:"0 0 140.183 40","aria-labelledby":a},l),void 0===t?r.createElement("title",{id:a},"Download_on_the_Mac_App_Store_Badge_CNSC_RGB_blk_092917"):t?r.createElement("title",{id:a},t):null,r.createElement("path",{d:"M130.654 0H9.534c-.366 0-.728 0-1.094.002-.306.002-.61.008-.919.013A13.215 13.215 0 0 0 5.517.19a6.665 6.665 0 0 0-1.9.627 6.438 6.438 0 0 0-1.62 1.18A6.258 6.258 0 0 0 .82 3.617a6.601 6.601 0 0 0-.625 1.903 12.993 12.993 0 0 0-.179 2.002c-.01.307-.01.615-.015.921V31.56c.005.31.006.61.015.921a12.992 12.992 0 0 0 .18 2.002 6.588 6.588 0 0 0 .624 1.905A6.208 6.208 0 0 0 1.998 38a6.274 6.274 0 0 0 1.618 1.179 6.7 6.7 0 0 0 1.901.63 13.455 13.455 0 0 0 2.004.177c.31.007.613.011.919.011.366.002.728.002 1.095.002h121.119c.36 0 .725 0 1.084-.002.305 0 .617-.004.922-.01a13.279 13.279 0 0 0 2-.178 6.804 6.804 0 0 0 1.908-.63A6.277 6.277 0 0 0 138.185 38a6.395 6.395 0 0 0 1.182-1.614 6.604 6.604 0 0 0 .619-1.905 13.506 13.506 0 0 0 .186-2.002c.003-.31.003-.61.003-.921.008-.364.008-.725.008-1.094V9.536c0-.366 0-.73-.008-1.092 0-.306 0-.614-.003-.92a13.507 13.507 0 0 0-.186-2.003 6.618 6.618 0 0 0-.62-1.903 6.466 6.466 0 0 0-2.798-2.8 6.768 6.768 0 0 0-1.908-.627 13.044 13.044 0 0 0-2-.176c-.305-.005-.617-.011-.922-.013-.36-.002-.725-.002-1.084-.002Z",style:{fill:"#a6a6a6"}}),E||(E=r.createElement("path",{d:"M8.445 39.125c-.305 0-.602-.004-.904-.01a12.687 12.687 0 0 1-1.87-.164 5.884 5.884 0 0 1-1.656-.548 5.406 5.406 0 0 1-1.397-1.016 5.32 5.32 0 0 1-1.02-1.397 5.722 5.722 0 0 1-.544-1.657 12.413 12.413 0 0 1-.166-1.875c-.007-.21-.015-.913-.015-.913v-23.1s.009-.692.015-.895a12.37 12.37 0 0 1 .165-1.872 5.756 5.756 0 0 1 .544-1.662 5.373 5.373 0 0 1 1.015-1.398 5.565 5.565 0 0 1 1.402-1.023 5.823 5.823 0 0 1 1.653-.544A12.586 12.586 0 0 1 7.543.887l.902-.012h123.288l.913.013a12.385 12.385 0 0 1 1.859.162 5.938 5.938 0 0 1 1.67.548 5.594 5.594 0 0 1 2.415 2.42 5.763 5.763 0 0 1 .536 1.649 12.995 12.995 0 0 1 .173 1.887c.003.283.003.588.003.89.008.375.008.732.008 1.092v20.929c0 .363 0 .718-.008 1.075 0 .325 0 .623-.004.93a12.731 12.731 0 0 1-.17 1.853 5.739 5.739 0 0 1-.54 1.67 5.48 5.48 0 0 1-1.016 1.386 5.413 5.413 0 0 1-1.4 1.022 5.862 5.862 0 0 1-1.667.55 12.542 12.542 0 0 1-1.87.163c-.293.007-.6.011-.897.011l-1.084.002Z"})),r.createElement("path",{d:"M44.592 19.428v-7.824h-.052l-3.204 7.742h-1.222L36.9 11.604h-.05v7.824h-1.504V8.798h1.909l3.44 8.39h.058l3.433-8.39h1.915v10.63ZM47.371 17.225c0-1.355 1.039-2.173 2.88-2.283l2.122-.119v-.589c0-.862-.567-1.348-1.533-1.348a1.481 1.481 0 0 0-1.627 1.09h-1.488c.044-1.4 1.348-2.393 3.16-2.393 1.849 0 3.071 1.009 3.071 2.533v5.312h-1.524v-1.275h-.037a2.77 2.77 0 0 1-2.446 1.407 2.35 2.35 0 0 1-2.578-2.335Zm5.002-.7v-.596l-1.908.118c-.95.059-1.488.471-1.488 1.134 0 .678.56 1.12 1.414 1.12a1.858 1.858 0 0 0 1.982-1.776ZM60.636 14.344a1.711 1.711 0 0 0-1.827-1.428c-1.222 0-2.032 1.024-2.032 2.637 0 1.65.817 2.644 2.047 2.644a1.668 1.668 0 0 0 1.812-1.392h1.532a3.097 3.097 0 0 1-3.359 2.719c-2.21 0-3.653-1.51-3.653-3.97 0-2.41 1.443-3.971 3.638-3.971a3.115 3.115 0 0 1 3.36 2.761ZM72.504 16.555h-4.051l-.973 2.873h-1.716L69.6 8.798h1.783l3.838 10.63h-1.745Zm-3.631-1.326h3.21l-1.582-4.663h-.045ZM83.51 15.553c0 2.408-1.29 3.956-3.235 3.956a2.627 2.627 0 0 1-2.438-1.356H77.8v3.838h-1.59V11.678h1.54v1.289h.029a2.749 2.749 0 0 1 2.467-1.37c1.967 0 3.263 1.555 3.263 3.956Zm-1.636 0c0-1.569-.81-2.6-2.047-2.6-1.216 0-2.033 1.053-2.033 2.6 0 1.562.817 2.607 2.033 2.607 1.237 0 2.047-1.024 2.047-2.607ZM92.039 15.553c0 2.408-1.29 3.956-3.234 3.956a2.627 2.627 0 0 1-2.439-1.356h-.036v3.838h-1.591V11.678h1.54v1.289h.029a2.749 2.749 0 0 1 2.467-1.37c1.967 0 3.264 1.555 3.264 3.956Zm-1.635 0c0-1.569-.811-2.6-2.048-2.6-1.216 0-2.033 1.053-2.033 2.6 0 1.562.817 2.607 2.033 2.607 1.237 0 2.048-1.024 2.048-2.607ZM97.676 16.466c.118 1.054 1.142 1.746 2.54 1.746 1.342 0 2.306-.692 2.306-1.642 0-.825-.582-1.32-1.96-1.658l-1.377-.332c-1.951-.471-2.857-1.384-2.857-2.865 0-1.834 1.598-3.094 3.867-3.094 2.246 0 3.786 1.26 3.838 3.094h-1.606c-.096-1.061-.973-1.701-2.254-1.701s-2.159.647-2.159 1.59c0 .752.56 1.194 1.93 1.532l1.171.288c2.181.516 3.087 1.392 3.087 2.947 0 1.988-1.584 3.234-4.103 3.234-2.357 0-3.949-1.216-4.052-3.139ZM107.635 9.844v1.834h1.474v1.26h-1.474v4.272c0 .664.295.973.943.973a4.97 4.97 0 0 0 .523-.037v1.252a4.368 4.368 0 0 1-.883.074c-1.57 0-2.181-.59-2.181-2.092v-4.442h-1.127v-1.26h1.127V9.844ZM109.961 15.553c0-2.438 1.436-3.97 3.676-3.97 2.247 0 3.676 1.532 3.676 3.97 0 2.445-1.422 3.97-3.676 3.97-2.254 0-3.676-1.525-3.676-3.97Zm5.731 0c0-1.673-.766-2.66-2.055-2.66s-2.056.995-2.056 2.66c0 1.68.767 2.66 2.056 2.66s2.055-.98 2.055-2.66ZM118.624 11.678h1.517v1.319h.037a1.848 1.848 0 0 1 1.864-1.4 2.453 2.453 0 0 1 .545.06v1.487a2.224 2.224 0 0 0-.714-.096 1.603 1.603 0 0 0-1.658 1.783v4.597h-1.59ZM129.921 17.152a3.11 3.11 0 0 1-3.337 2.372c-2.254 0-3.653-1.51-3.653-3.934 0-2.431 1.407-4.007 3.586-4.007 2.144 0 3.493 1.472 3.493 3.822v.545h-5.474v.097a2.018 2.018 0 0 0 2.085 2.195 1.753 1.753 0 0 0 1.79-1.09Zm-5.377-2.314h3.874a1.864 1.864 0 0 0-1.9-1.966 1.962 1.962 0 0 0-1.974 1.966ZM34.429 24.04h7.461v.78h-3.547v1.104q.763.353 1.535.778.772.425 1.562.912l-.46.717q-.813-.519-1.46-.914-.649-.396-1.177-.657v4.608h-.79V24.82h-3.124ZM43.956 24.274h1.562v-.63h.772v.63h1.447v.717H46.29v.61h1.824l-.036-.939q-.02-.49-.019-1.026h.767q0 .546.016 1.031t.035.935h2.03v.726h-1.993q.036.505.094.923l.103.749a1.657 1.657 0 0 1 .056.224l.036.217a8.074 8.074 0 0 0 .34-.859q.152-.454.276-.974l.703.322a9.738 9.738 0 0 1-1.006 2.578c.024.06.05.123.08.185q.043.094.09.182.289.574.46.574.114 0 .266-1.208l.675.359q-.29 1.677-.855 1.676-.427 0-.97-.754a2.133 2.133 0 0 1-.187-.358 5.12 5.12 0 0 1-1.402 1.204l-.436-.629a4.192 4.192 0 0 0 1.488-1.402q-.083-.271-.167-.558-.085-.287-.145-.6a12.605 12.605 0 0 1-.262-1.85H43.52v-.727h1.998v-.61h-1.562Zm3.781 5.288v.69q-.303.037-.613.068c-.207.022-.416.045-.627.07v.95h-.772v-.854q-.436.037-.887.069c-.3.021-.605.05-.914.083l-.101-.744q.51-.02.978-.053.469-.035.924-.063v-.62H44.19l-.16-.63a5.213 5.213 0 0 0 .555-.886h-.808v-.704h1.116a1.733 1.733 0 0 0 .097-.268q.036-.135.092-.287l.753.134c-.03.085-.055.16-.073.227a.992.992 0 0 1-.078.194h2.09v.704h-2.37q-.124.249-.251.46t-.237.409h.81v-.557h.771v.557h1.194v.647h-1.194v.537c.211-.017.42-.039.627-.061q.31-.035.613-.072Zm1.347-5.459.583-.394a12.556 12.556 0 0 1 .979 1.236l-.593.422q-.18-.284-.42-.603-.242-.32-.55-.66Z",style:{fill:"#fff"}}),r.createElement("g",{"data-name":""},r.createElement("path",{"data-name":"",d:"M24.769 20.3a4.949 4.949 0 0 1 2.356-4.151 5.066 5.066 0 0 0-3.99-2.158c-1.68-.176-3.308 1.005-4.164 1.005-.872 0-2.19-.988-3.608-.958a5.315 5.315 0 0 0-4.473 2.728c-1.934 3.348-.491 8.269 1.361 10.976.927 1.325 2.01 2.805 3.428 2.753 1.387-.058 1.905-.885 3.58-.885 1.658 0 2.144.885 3.59.852 1.489-.025 2.426-1.332 3.32-2.67a10.962 10.962 0 0 0 1.52-3.092 4.782 4.782 0 0 1-2.92-4.4ZM22.037 12.21a4.872 4.872 0 0 0 1.115-3.49 4.957 4.957 0 0 0-3.208 1.66A4.636 4.636 0 0 0 18.8 13.74a4.1 4.1 0 0 0 3.237-1.53Z",style:{fill:"#fff"}})))},R=a.p+"assets/images/zh-cn_badge_web_generic-8f9699fee31eb9fc4794826fa6042730.png",w={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};var Z=a(2263);function y(){const{siteConfig:e}=(0,Z.Z)();return(0,i.jsx)("header",{className:(0,d.Z)("hero hero--primary",w.heroBanner),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(h.Z,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("p",{children:"\u5728\u4efb\u4f55\u7a0b\u5e8f\u4e2d\u76f4\u6309\u4e0b\u5feb\u6377\u952e\uff0cValo Reader \u5373\u4f1a\u7acb\u5373\u4e3a\u4f60\u5c55\u793a\u5149\u6807\u6240\u5728\u5904\u5355\u8bcd\u7684\u91ca\u4e49\u5e76\u53d1\u97f3"}),(0,i.jsx)(M,{})]})})}function M(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{style:{flexDirection:"row",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("div",{style:{textAlign:"center",fontWeight:500,fontSize:20},children:"\u9a6c\u4e0a\u83b7\u53d6 Valo Reader"})}),(0,i.jsx)("div",{style:{height:16}}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},children:[(0,i.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("a",{href:"https://apps.apple.com/cn/app/valo-reader/id6448040931?platform=mac",style:{display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)(x,{style:{height:40}})})}),(0,i.jsx)("div",{style:{width:8}}),(0,i.jsx)("a",{style:{textDecoration:"none"},href:"https://github.com/HaloWang/valo-reader-doc/releases/download/1.0.0_111/babel-1.0.0+111-windows-setup.exe",children:(0,i.jsxs)("div",{style:{alignItems:"center",background:"#3388FF",border:"1px solid #66666666",borderRadius:6,display:"flex",flexDirection:"column",fontSize:14,justifyContent:"center",padding:"0 8px 1px 8px"},children:[(0,i.jsx)("div",{style:{color:"white",fontWeight:600},children:"Windows"}),(0,i.jsx)("div",{style:{color:"white",fontSize:8},children:"\u70b9\u51fb\u4e0b\u8f7d"})]})})]})]})}function u(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{style:{flexDirection:"row",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("div",{style:{textAlign:"center",fontWeight:500,fontSize:20},children:"\u60f3\u8981\u665a\u4e0a\u7761\u89c9\u65f6\u9605\u8bfb\u4e00\u4e0b\u82f1\u6587\u5185\u5bb9\uff1f"})}),(0,i.jsx)("div",{style:{height:16}}),(0,i.jsx)("div",{style:{textAlign:"center",fontSize:14},children:"\u4f60\u4e5f\u53ef\u4ee5\u70b9\u51fb\u4e0b\u65b9\u7684\u94fe\u63a5\u83b7\u53d6 Valo Reader \u7684\u79fb\u52a8\u5e73\u53f0\u7248\u672c\u3002\u8be5\u7248\u672c\u53ef\u4ee5\u65b9\u4fbf\u4f60\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u9605\u8bfb\u82f1\u6587\u7f51\u9875\u548c\u82f1\u6587 PDF \u6587\u6863\u3002"}),(0,i.jsx)("div",{style:{height:8}}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},children:[(0,i.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("a",{style:{display:"flex",justifyContent:"center",alignItems:"center"},href:"https://play.google.com/store/apps/details?id=com.df.mobile&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1",children:(0,i.jsx)("img",{style:{height:52},alt:"\u4e0b\u8f7d\u5e94\u7528\uff0c\u8bf7\u5230 Google Play",src:R})})}),(0,i.jsx)("div",{style:{width:8}}),(0,i.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("a",{href:"https://apps.apple.com/cn/app/valo-reader/id6448040931?platform=iphone",style:{display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)(c,{})})})]})]})}function P(){const{siteConfig:e}=(0,Z.Z)();return(0,i.jsxs)(v.Z,{title:`${e.title} - \u8f7b\u677e\u9605\u8bfb\u82f1\u6587\u5185\u5bb9`,description:"Description will go into a meta tag in ",children:[(0,i.jsx)(y,{}),(0,i.jsxs)("main",{children:[(0,i.jsx)("div",{style:{display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",margin:8},children:(0,i.jsx)("img",{style:{display:"flex"},src:g})}),(0,i.jsx)(o,{}),(0,i.jsx)(M,{}),(0,i.jsx)("div",{style:{height:20}}),(0,i.jsx)("div",{style:{height:20}}),(0,i.jsx)("div",{style:{height:20}}),(0,i.jsx)(u,{}),(0,i.jsx)("div",{style:{height:20}})]})]})}}}]);
\ No newline at end of file
diff --git a/assets/js/1f391b9e.8f582faf.js b/assets/js/1f391b9e.8f582faf.js
new file mode 100644
index 0000000..a417bb9
--- /dev/null
+++ b/assets/js/1f391b9e.8f582faf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklanding_vr=self.webpackChunklanding_vr||[]).push([[3085],{4247:(e,n,t)=>{t.r(n),t.d(n,{default:()=>u});t(7294);var i=t(512),a=t(8264),l=t(5281),s=t(7293),r=t(7917),c=t(9407),o=t(2212);const d={mdxPageWrapper:"mdxPageWrapper_j9I6"};var m=t(5893);function u(e){const{content:n}=e,{metadata:{title:t,description:u,frontMatter:f,unlisted:v},assets:h}=n,{keywords:g,wrapperClassName:x,hide_table_of_contents:p}=f,L=h.image??f.image;return(0,m.jsx)(a.FG,{className:(0,i.Z)(x??l.k.wrapper.mdxPages,l.k.page.mdxPage),children:(0,m.jsxs)(s.Z,{children:[(0,m.jsx)(a.d,{title:t,description:u,keywords:g,image:L}),(0,m.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,m.jsxs)("div",{className:(0,i.Z)("row",d.mdxPageWrapper),children:[(0,m.jsxs)("div",{className:(0,i.Z)("col",!p&&"col--8"),children:[v&&(0,m.jsx)(o.Z,{}),(0,m.jsx)("article",{children:(0,m.jsx)(r.Z,{children:(0,m.jsx)(n,{})})})]}),!p&&n.toc.length>0&&(0,m.jsx)("div",{className:"col col--2",children:(0,m.jsx)(c.Z,{toc:n.toc,minHeadingLevel:f.toc_min_heading_level,maxHeadingLevel:f.toc_max_heading_level})})]})})]})})}},9407:(e,n,t)=>{t.d(n,{Z:()=>o});t(7294);var i=t(512),a=t(3743);const l={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var s=t(5893);const r="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o(e){let{className:n,...t}=e;return(0,s.jsx)("div",{className:(0,i.Z)(l.tableOfContents,"thin-scrollbar",n),children:(0,s.jsx)(a.Z,{...t,linkClassName:r,linkActiveClassName:c})})}},3743:(e,n,t)=>{t.d(n,{Z:()=>h});var i=t(7294),a=t(6668);function l(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const i=t.slice(2,e.level);e.parentIndex=Math.max(...i),t[e.level]=n}));const i=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):i.push(a)})),i}function s(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return n.flatMap((e=>{const n=s({toc:e.children,minHeadingLevel:t,maxHeadingLevel:i});return function(e){return e.level>=t&&e.level<=i}(e)?[{...e,children:n}]:n}))}function r(e){const n=e.getBoundingClientRect();return n.top===n.bottom?r(e.parentNode):n}function c(e,n){let{anchorTopOffset:t}=n;const i=e.find((e=>r(e).top>=t));if(i){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,i.useRef)(void 0),t=o();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:l,maxHeadingLevel:s}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),r=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const i=[];for(let a=n;a<=t;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:l,maxHeadingLevel:s}),o=c(r,{anchorTopOffset:t.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,t])}var m=t(3692),u=t(5893);function f(e){let{toc:n,className:t,linkClassName:i,isChild:a}=e;return n.length?(0,u.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.Z,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:t,linkClassName:i})]},e.id)))}):null}const v=i.memo(f);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:c,minHeadingLevel:o,maxHeadingLevel:m,...f}=e;const h=(0,a.L)(),g=o??h.tableOfContents.minHeadingLevel,x=m??h.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>s({toc:l(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:g,maxHeadingLevel:x});return d((0,i.useMemo)((()=>{if(r&&c)return{linkClassName:r,linkActiveClassName:c,minHeadingLevel:g,maxHeadingLevel:x}}),[r,c,g,x])),(0,u.jsx)(v,{toc:p,className:t,linkClassName:r,...f})}},2212:(e,n,t)=>{t.d(n,{Z:()=>f});t(7294);var i=t(512),a=t(5999),l=t(5742),s=t(5893);function r(){return(0,s.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,s.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,s.jsx)(l.Z,{children:(0,s.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),m=t(9047);function u(e){let{className:n}=e;return(0,s.jsx)(m.Z,{type:"caution",title:(0,s.jsx)(r,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,s.jsx)(c,{})})}function f(e){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o,{}),(0,s.jsx)(u,{...e})]})}}}]);
\ No newline at end of file
diff --git a/assets/js/238.b9ae058b.js b/assets/js/238.b9ae058b.js
new file mode 100644
index 0000000..cb5a6af
--- /dev/null
+++ b/assets/js/238.b9ae058b.js
@@ -0,0 +1,23653 @@
+exports.id = 238;
+exports.ids = [238];
+exports.modules = {
+
+/***/ 7295:
+/***/ ((module) => {
+
+(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=undefined;if(!f&&c)return require(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=undefined,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$defaultLayoutOpt = _ref.defaultLayoutOptions,
+ defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt,
+ _ref$algorithms = _ref.algorithms,
+ algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms,
+ workerFactory = _ref.workerFactory,
+ workerUrl = _ref.workerUrl;
+
+ _classCallCheck(this, ELK);
+
+ this.defaultLayoutOptions = defaultLayoutOptions;
+ this.initialized = false;
+
+ // check valid worker construction possible
+ if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') {
+ throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");
+ }
+ var factory = workerFactory;
+ if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') {
+ // use default Web Worker
+ factory = function factory(url) {
+ return new Worker(url);
+ };
+ }
+
+ // create the worker
+ var worker = factory(workerUrl);
+ if (typeof worker.postMessage !== 'function') {
+ throw new TypeError("Created worker does not provide" + " the required 'postMessage' function.");
+ }
+
+ // wrap the worker to return promises
+ this.worker = new PromisedWorker(worker);
+
+ // initially register algorithms
+ this.worker.postMessage({
+ cmd: 'register',
+ algorithms: algorithms
+ }).then(function (r) {
+ return _this.initialized = true;
+ }).catch(console.err);
+ }
+
+ _createClass(ELK, [{
+ key: 'layout',
+ value: function layout(graph) {
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ _ref2$layoutOptions = _ref2.layoutOptions,
+ layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions,
+ _ref2$logging = _ref2.logging,
+ logging = _ref2$logging === undefined ? false : _ref2$logging,
+ _ref2$measureExecutio = _ref2.measureExecutionTime,
+ measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio;
+
+ if (!graph) {
+ return Promise.reject(new Error("Missing mandatory parameter 'graph'."));
+ }
+ return this.worker.postMessage({
+ cmd: 'layout',
+ graph: graph,
+ layoutOptions: layoutOptions,
+ options: {
+ logging: logging,
+ measureExecutionTime: measureExecutionTime
+ }
+ });
+ }
+ }, {
+ key: 'knownLayoutAlgorithms',
+ value: function knownLayoutAlgorithms() {
+ return this.worker.postMessage({ cmd: 'algorithms' });
+ }
+ }, {
+ key: 'knownLayoutOptions',
+ value: function knownLayoutOptions() {
+ return this.worker.postMessage({ cmd: 'options' });
+ }
+ }, {
+ key: 'knownLayoutCategories',
+ value: function knownLayoutCategories() {
+ return this.worker.postMessage({ cmd: 'categories' });
+ }
+ }, {
+ key: 'terminateWorker',
+ value: function terminateWorker() {
+ this.worker.terminate();
+ }
+ }]);
+
+ return ELK;
+}();
+
+exports.default = ELK;
+
+var PromisedWorker = function () {
+ function PromisedWorker(worker) {
+ var _this2 = this;
+
+ _classCallCheck(this, PromisedWorker);
+
+ if (worker === undefined) {
+ throw new Error("Missing mandatory parameter 'worker'.");
+ }
+ this.resolvers = {};
+ this.worker = worker;
+ this.worker.onmessage = function (answer) {
+ // why is this necessary?
+ setTimeout(function () {
+ _this2.receive(_this2, answer);
+ }, 0);
+ };
+ }
+
+ _createClass(PromisedWorker, [{
+ key: 'postMessage',
+ value: function postMessage(msg) {
+ var id = this.id || 0;
+ this.id = id + 1;
+ msg.id = id;
+ var self = this;
+ return new Promise(function (resolve, reject) {
+ // prepare the resolver
+ self.resolvers[id] = function (err, res) {
+ if (err) {
+ self.convertGwtStyleError(err);
+ reject(err);
+ } else {
+ resolve(res);
+ }
+ };
+ // post the message
+ self.worker.postMessage(msg);
+ });
+ }
+ }, {
+ key: 'receive',
+ value: function receive(self, answer) {
+ var json = answer.data;
+ var resolver = self.resolvers[json.id];
+ if (resolver) {
+ delete self.resolvers[json.id];
+ if (json.error) {
+ resolver(json.error);
+ } else {
+ resolver(null, json.data);
+ }
+ }
+ }
+ }, {
+ key: 'terminate',
+ value: function terminate() {
+ if (this.worker.terminate) {
+ this.worker.terminate();
+ }
+ }
+ }, {
+ key: 'convertGwtStyleError',
+ value: function convertGwtStyleError(err) {
+ if (!err) {
+ return;
+ }
+ // Somewhat flatten the way GWT stores nested exception(s)
+ var javaException = err['__java$exception'];
+ if (javaException) {
+ // Note that the property name of the nested exception is different
+ // in the non-minified ('cause') and the minified (not deterministic) version.
+ // Hence, the version below only works for the non-minified version.
+ // However, as the minified stack trace is not of much use anyway, one
+ // should switch the used version for debugging in such a case.
+ if (javaException.cause && javaException.cause.backingJsObject) {
+ err.cause = javaException.cause.backingJsObject;
+ this.convertGwtStyleError(err.cause);
+ }
+ delete err['__java$exception'];
+ }
+ }
+ }]);
+
+ return PromisedWorker;
+}();
+},{}],2:[function(require,module,exports){
+(function (global){(function (){
+'use strict';
+
+// -------------- FAKE ELEMENTS GWT ASSUMES EXIST --------------
+var $wnd;
+if (typeof window !== 'undefined')
+ $wnd = window
+else if (typeof global !== 'undefined')
+ $wnd = global // nodejs
+else if (typeof self !== 'undefined')
+ $wnd = self // web worker
+
+var $moduleName,
+ $moduleBase;
+
+// -------------- WORKAROUND STRICT MODE, SEE #127 --------------
+var g, i, o;
+
+// -------------- GENERATED CODE --------------
+function nb(){}
+function xb(){}
+function Fd(){}
+function $g(){}
+function _p(){}
+function yq(){}
+function Sq(){}
+function Es(){}
+function Jw(){}
+function Vw(){}
+function VA(){}
+function dA(){}
+function MA(){}
+function PA(){}
+function PB(){}
+function bx(){}
+function cx(){}
+function vy(){}
+function Nz(){}
+function Yz(){}
+function Ylb(){}
+function Ymb(){}
+function xmb(){}
+function Fmb(){}
+function Qmb(){}
+function gcb(){}
+function ccb(){}
+function jcb(){}
+function jtb(){}
+function otb(){}
+function qtb(){}
+function _fb(){}
+function bpb(){}
+function kpb(){}
+function ppb(){}
+function Gpb(){}
+function drb(){}
+function dzb(){}
+function fzb(){}
+function fxb(){}
+function Vxb(){}
+function Ovb(){}
+function byb(){}
+function zyb(){}
+function Zyb(){}
+function _yb(){}
+function hzb(){}
+function jzb(){}
+function lzb(){}
+function nzb(){}
+function rzb(){}
+function zzb(){}
+function Czb(){}
+function Ezb(){}
+function Gzb(){}
+function Izb(){}
+function Mzb(){}
+function bBb(){}
+function NBb(){}
+function PBb(){}
+function RBb(){}
+function iCb(){}
+function OCb(){}
+function SCb(){}
+function GDb(){}
+function JDb(){}
+function fEb(){}
+function xEb(){}
+function CEb(){}
+function GEb(){}
+function yFb(){}
+function KGb(){}
+function tIb(){}
+function vIb(){}
+function xIb(){}
+function zIb(){}
+function OIb(){}
+function SIb(){}
+function TJb(){}
+function VJb(){}
+function XJb(){}
+function XKb(){}
+function fKb(){}
+function VKb(){}
+function VLb(){}
+function jLb(){}
+function nLb(){}
+function GLb(){}
+function KLb(){}
+function MLb(){}
+function OLb(){}
+function RLb(){}
+function YLb(){}
+function bMb(){}
+function gMb(){}
+function lMb(){}
+function pMb(){}
+function wMb(){}
+function zMb(){}
+function CMb(){}
+function FMb(){}
+function LMb(){}
+function zNb(){}
+function PNb(){}
+function kOb(){}
+function pOb(){}
+function tOb(){}
+function yOb(){}
+function FOb(){}
+function GPb(){}
+function aQb(){}
+function cQb(){}
+function eQb(){}
+function gQb(){}
+function iQb(){}
+function CQb(){}
+function MQb(){}
+function OQb(){}
+function ASb(){}
+function fTb(){}
+function kTb(){}
+function STb(){}
+function fUb(){}
+function DUb(){}
+function VUb(){}
+function YUb(){}
+function _Ub(){}
+function _Wb(){}
+function QWb(){}
+function XWb(){}
+function jVb(){}
+function DVb(){}
+function VVb(){}
+function $Vb(){}
+function dXb(){}
+function hXb(){}
+function lXb(){}
+function gYb(){}
+function HYb(){}
+function SYb(){}
+function VYb(){}
+function dZb(){}
+function P$b(){}
+function T$b(){}
+function h1b(){}
+function m1b(){}
+function q1b(){}
+function u1b(){}
+function y1b(){}
+function C1b(){}
+function e2b(){}
+function g2b(){}
+function m2b(){}
+function q2b(){}
+function u2b(){}
+function S2b(){}
+function U2b(){}
+function W2b(){}
+function _2b(){}
+function e3b(){}
+function h3b(){}
+function p3b(){}
+function t3b(){}
+function w3b(){}
+function y3b(){}
+function A3b(){}
+function M3b(){}
+function Q3b(){}
+function U3b(){}
+function Y3b(){}
+function l4b(){}
+function q4b(){}
+function s4b(){}
+function u4b(){}
+function w4b(){}
+function y4b(){}
+function L4b(){}
+function N4b(){}
+function P4b(){}
+function R4b(){}
+function T4b(){}
+function X4b(){}
+function I5b(){}
+function Q5b(){}
+function T5b(){}
+function Z5b(){}
+function l6b(){}
+function o6b(){}
+function t6b(){}
+function z6b(){}
+function L6b(){}
+function M6b(){}
+function P6b(){}
+function X6b(){}
+function $6b(){}
+function a7b(){}
+function c7b(){}
+function g7b(){}
+function j7b(){}
+function m7b(){}
+function r7b(){}
+function x7b(){}
+function D7b(){}
+function D9b(){}
+function b9b(){}
+function h9b(){}
+function j9b(){}
+function l9b(){}
+function w9b(){}
+function F9b(){}
+function hac(){}
+function jac(){}
+function pac(){}
+function uac(){}
+function Iac(){}
+function Kac(){}
+function Sac(){}
+function obc(){}
+function rbc(){}
+function vbc(){}
+function Fbc(){}
+function Jbc(){}
+function Xbc(){}
+function ccc(){}
+function fcc(){}
+function lcc(){}
+function occ(){}
+function tcc(){}
+function ycc(){}
+function Acc(){}
+function Ccc(){}
+function Ecc(){}
+function Gcc(){}
+function Zcc(){}
+function _cc(){}
+function bdc(){}
+function fdc(){}
+function jdc(){}
+function pdc(){}
+function sdc(){}
+function ydc(){}
+function Adc(){}
+function Cdc(){}
+function Edc(){}
+function Idc(){}
+function Ndc(){}
+function Qdc(){}
+function Sdc(){}
+function Udc(){}
+function Wdc(){}
+function Ydc(){}
+function aec(){}
+function hec(){}
+function jec(){}
+function lec(){}
+function nec(){}
+function uec(){}
+function wec(){}
+function yec(){}
+function Aec(){}
+function Fec(){}
+function Jec(){}
+function Lec(){}
+function Nec(){}
+function Rec(){}
+function Uec(){}
+function Zec(){}
+function Zfc(){}
+function lfc(){}
+function tfc(){}
+function xfc(){}
+function zfc(){}
+function Ffc(){}
+function Jfc(){}
+function Nfc(){}
+function Pfc(){}
+function Vfc(){}
+function _fc(){}
+function fgc(){}
+function jgc(){}
+function lgc(){}
+function Bgc(){}
+function ehc(){}
+function ghc(){}
+function ihc(){}
+function khc(){}
+function mhc(){}
+function ohc(){}
+function qhc(){}
+function yhc(){}
+function Ahc(){}
+function Ghc(){}
+function Ihc(){}
+function Khc(){}
+function Mhc(){}
+function Shc(){}
+function Uhc(){}
+function Whc(){}
+function dic(){}
+function dlc(){}
+function blc(){}
+function flc(){}
+function hlc(){}
+function jlc(){}
+function Glc(){}
+function Ilc(){}
+function Klc(){}
+function Mlc(){}
+function Mjc(){}
+function Qjc(){}
+function Qlc(){}
+function Ulc(){}
+function Ylc(){}
+function Lkc(){}
+function Nkc(){}
+function Pkc(){}
+function Rkc(){}
+function Xkc(){}
+function _kc(){}
+function gmc(){}
+function kmc(){}
+function zmc(){}
+function Fmc(){}
+function Wmc(){}
+function $mc(){}
+function anc(){}
+function mnc(){}
+function wnc(){}
+function Hnc(){}
+function Jnc(){}
+function Lnc(){}
+function Nnc(){}
+function Pnc(){}
+function Ync(){}
+function eoc(){}
+function Aoc(){}
+function Coc(){}
+function Eoc(){}
+function Joc(){}
+function Loc(){}
+function Zoc(){}
+function _oc(){}
+function bpc(){}
+function hpc(){}
+function kpc(){}
+function ppc(){}
+function pFc(){}
+function Ryc(){}
+function QCc(){}
+function PDc(){}
+function xGc(){}
+function HGc(){}
+function JGc(){}
+function NGc(){}
+function GIc(){}
+function iKc(){}
+function mKc(){}
+function wKc(){}
+function yKc(){}
+function AKc(){}
+function EKc(){}
+function KKc(){}
+function OKc(){}
+function QKc(){}
+function SKc(){}
+function UKc(){}
+function YKc(){}
+function aLc(){}
+function fLc(){}
+function hLc(){}
+function nLc(){}
+function pLc(){}
+function tLc(){}
+function vLc(){}
+function zLc(){}
+function BLc(){}
+function DLc(){}
+function FLc(){}
+function sMc(){}
+function JMc(){}
+function hNc(){}
+function RNc(){}
+function ZNc(){}
+function _Nc(){}
+function bOc(){}
+function dOc(){}
+function fOc(){}
+function hOc(){}
+function hRc(){}
+function jRc(){}
+function KRc(){}
+function NRc(){}
+function NQc(){}
+function LQc(){}
+function _Qc(){}
+function cPc(){}
+function iPc(){}
+function kPc(){}
+function mPc(){}
+function xPc(){}
+function zPc(){}
+function zSc(){}
+function BSc(){}
+function GSc(){}
+function ISc(){}
+function NSc(){}
+function TSc(){}
+function NTc(){}
+function NVc(){}
+function oVc(){}
+function SVc(){}
+function VVc(){}
+function XVc(){}
+function ZVc(){}
+function bWc(){}
+function bXc(){}
+function CXc(){}
+function FXc(){}
+function IXc(){}
+function MXc(){}
+function UXc(){}
+function bYc(){}
+function fYc(){}
+function oYc(){}
+function qYc(){}
+function uYc(){}
+function pZc(){}
+function G$c(){}
+function h0c(){}
+function N0c(){}
+function k1c(){}
+function I1c(){}
+function Q1c(){}
+function f2c(){}
+function i2c(){}
+function k2c(){}
+function w2c(){}
+function O2c(){}
+function S2c(){}
+function Z2c(){}
+function v3c(){}
+function x3c(){}
+function R3c(){}
+function U3c(){}
+function e4c(){}
+function w4c(){}
+function x4c(){}
+function z4c(){}
+function B4c(){}
+function D4c(){}
+function F4c(){}
+function H4c(){}
+function J4c(){}
+function L4c(){}
+function N4c(){}
+function P4c(){}
+function R4c(){}
+function T4c(){}
+function V4c(){}
+function X4c(){}
+function Z4c(){}
+function _4c(){}
+function _7c(){}
+function b5c(){}
+function d5c(){}
+function f5c(){}
+function h5c(){}
+function H5c(){}
+function Hfd(){}
+function Zfd(){}
+function Zed(){}
+function ged(){}
+function Jed(){}
+function Ned(){}
+function Red(){}
+function Ved(){}
+function bbd(){}
+function mdd(){}
+function _fd(){}
+function fgd(){}
+function kgd(){}
+function Mgd(){}
+function Ahd(){}
+function Ald(){}
+function Tld(){}
+function xkd(){}
+function rmd(){}
+function knd(){}
+function Jod(){}
+function JCd(){}
+function Bpd(){}
+function BFd(){}
+function oFd(){}
+function bqd(){}
+function bvd(){}
+function jvd(){}
+function yud(){}
+function Hxd(){}
+function EBd(){}
+function aDd(){}
+function MGd(){}
+function vHd(){}
+function RHd(){}
+function wNd(){}
+function zNd(){}
+function CNd(){}
+function KNd(){}
+function XNd(){}
+function $Nd(){}
+function HPd(){}
+function lUd(){}
+function XUd(){}
+function DWd(){}
+function GWd(){}
+function JWd(){}
+function MWd(){}
+function PWd(){}
+function SWd(){}
+function VWd(){}
+function YWd(){}
+function _Wd(){}
+function xYd(){}
+function BYd(){}
+function mZd(){}
+function EZd(){}
+function GZd(){}
+function JZd(){}
+function MZd(){}
+function PZd(){}
+function SZd(){}
+function VZd(){}
+function YZd(){}
+function _Zd(){}
+function c$d(){}
+function f$d(){}
+function i$d(){}
+function l$d(){}
+function o$d(){}
+function r$d(){}
+function u$d(){}
+function x$d(){}
+function A$d(){}
+function D$d(){}
+function G$d(){}
+function J$d(){}
+function M$d(){}
+function P$d(){}
+function S$d(){}
+function V$d(){}
+function Y$d(){}
+function _$d(){}
+function c_d(){}
+function f_d(){}
+function i_d(){}
+function l_d(){}
+function o_d(){}
+function r_d(){}
+function u_d(){}
+function x_d(){}
+function A_d(){}
+function D_d(){}
+function G_d(){}
+function J_d(){}
+function M_d(){}
+function P_d(){}
+function S_d(){}
+function V_d(){}
+function Y_d(){}
+function h5d(){}
+function U6d(){}
+function U9d(){}
+function _8d(){}
+function fae(){}
+function hae(){}
+function kae(){}
+function nae(){}
+function qae(){}
+function tae(){}
+function wae(){}
+function zae(){}
+function Cae(){}
+function Fae(){}
+function Iae(){}
+function Lae(){}
+function Oae(){}
+function Rae(){}
+function Uae(){}
+function Xae(){}
+function $ae(){}
+function bbe(){}
+function ebe(){}
+function hbe(){}
+function kbe(){}
+function nbe(){}
+function qbe(){}
+function tbe(){}
+function wbe(){}
+function zbe(){}
+function Cbe(){}
+function Fbe(){}
+function Ibe(){}
+function Lbe(){}
+function Obe(){}
+function Rbe(){}
+function Ube(){}
+function Xbe(){}
+function $be(){}
+function bce(){}
+function ece(){}
+function hce(){}
+function kce(){}
+function nce(){}
+function qce(){}
+function tce(){}
+function wce(){}
+function zce(){}
+function Cce(){}
+function Fce(){}
+function Ice(){}
+function Lce(){}
+function Oce(){}
+function Rce(){}
+function Uce(){}
+function Xce(){}
+function ude(){}
+function Vge(){}
+function dhe(){}
+function s_b(a){}
+function jSd(a){}
+function ol(){wb()}
+function oPb(){nPb()}
+function EPb(){CPb()}
+function gFb(){fFb()}
+function TRb(){SRb()}
+function ySb(){wSb()}
+function PSb(){OSb()}
+function dTb(){bTb()}
+function i4b(){b4b()}
+function D2b(){x2b()}
+function J6b(){D6b()}
+function u9b(){q9b()}
+function $9b(){I9b()}
+function Umc(){Imc()}
+function abc(){Vac()}
+function ZCc(){VCc()}
+function kCc(){hCc()}
+function rCc(){oCc()}
+function Tcc(){Occ()}
+function xkc(){gkc()}
+function xDc(){rDc()}
+function iDc(){cDc()}
+function kwc(){jwc()}
+function tJc(){jJc()}
+function dJc(){aJc()}
+function Pyc(){Nyc()}
+function VBc(){SBc()}
+function CFc(){yFc()}
+function CUc(){wUc()}
+function lUc(){fUc()}
+function sUc(){pUc()}
+function IUc(){GUc()}
+function IWc(){HWc()}
+function _Wc(){ZWc()}
+function fHc(){dHc()}
+function f0c(){d0c()}
+function B0c(){A0c()}
+function L0c(){J0c()}
+function LTc(){JTc()}
+function sTc(){rTc()}
+function KLc(){ILc()}
+function wNc(){tNc()}
+function PYc(){OYc()}
+function nZc(){lZc()}
+function q3c(){p3c()}
+function Z7c(){X7c()}
+function Z9c(){Y9c()}
+function _ad(){Zad()}
+function kdd(){idd()}
+function $md(){Smd()}
+function HGd(){tGd()}
+function hLd(){NKd()}
+function J6d(){Uge()}
+function Mvb(a){uCb(a)}
+function Yb(a){this.a=a}
+function cc(a){this.a=a}
+function cj(a){this.a=a}
+function ij(a){this.a=a}
+function Dj(a){this.a=a}
+function df(a){this.a=a}
+function kf(a){this.a=a}
+function ah(a){this.a=a}
+function lh(a){this.a=a}
+function th(a){this.a=a}
+function Ph(a){this.a=a}
+function vi(a){this.a=a}
+function Ci(a){this.a=a}
+function Fk(a){this.a=a}
+function Ln(a){this.a=a}
+function ap(a){this.a=a}
+function zp(a){this.a=a}
+function Yp(a){this.a=a}
+function qq(a){this.a=a}
+function Dq(a){this.a=a}
+function wr(a){this.a=a}
+function Ir(a){this.b=a}
+function sj(a){this.c=a}
+function sw(a){this.a=a}
+function fw(a){this.a=a}
+function xw(a){this.a=a}
+function Cw(a){this.a=a}
+function Qw(a){this.a=a}
+function Rw(a){this.a=a}
+function Xw(a){this.a=a}
+function Xv(a){this.a=a}
+function Sv(a){this.a=a}
+function eu(a){this.a=a}
+function Zx(a){this.a=a}
+function _x(a){this.a=a}
+function xy(a){this.a=a}
+function xB(a){this.a=a}
+function HB(a){this.a=a}
+function TB(a){this.a=a}
+function fC(a){this.a=a}
+function wB(){this.a=[]}
+function MBb(a,b){a.a=b}
+function w_b(a,b){a.a=b}
+function x_b(a,b){a.b=b}
+function YOb(a,b){a.b=b}
+function $Ob(a,b){a.b=b}
+function ZGb(a,b){a.j=b}
+function qNb(a,b){a.g=b}
+function rNb(a,b){a.i=b}
+function dRb(a,b){a.c=b}
+function eRb(a,b){a.d=b}
+function z_b(a,b){a.d=b}
+function y_b(a,b){a.c=b}
+function __b(a,b){a.k=b}
+function E0b(a,b){a.c=b}
+function njc(a,b){a.c=b}
+function mjc(a,b){a.a=b}
+function dFc(a,b){a.a=b}
+function eFc(a,b){a.f=b}
+function nOc(a,b){a.a=b}
+function oOc(a,b){a.b=b}
+function pOc(a,b){a.d=b}
+function qOc(a,b){a.i=b}
+function rOc(a,b){a.o=b}
+function sOc(a,b){a.r=b}
+function $Pc(a,b){a.a=b}
+function _Pc(a,b){a.b=b}
+function DVc(a,b){a.e=b}
+function EVc(a,b){a.f=b}
+function FVc(a,b){a.g=b}
+function SZc(a,b){a.e=b}
+function TZc(a,b){a.f=b}
+function c$c(a,b){a.f=b}
+function bJd(a,b){a.n=b}
+function A1d(a,b){a.a=b}
+function J1d(a,b){a.a=b}
+function B1d(a,b){a.c=b}
+function K1d(a,b){a.c=b}
+function L1d(a,b){a.d=b}
+function M1d(a,b){a.e=b}
+function N1d(a,b){a.g=b}
+function d2d(a,b){a.a=b}
+function e2d(a,b){a.c=b}
+function f2d(a,b){a.d=b}
+function g2d(a,b){a.e=b}
+function h2d(a,b){a.f=b}
+function i2d(a,b){a.j=b}
+function Z8d(a,b){a.a=b}
+function $8d(a,b){a.b=b}
+function g9d(a,b){a.a=b}
+function Cic(a){a.b=a.a}
+function Dg(a){a.c=a.d.d}
+function vib(a){this.d=a}
+function eib(a){this.a=a}
+function Pib(a){this.a=a}
+function Vib(a){this.a=a}
+function $ib(a){this.a=a}
+function mcb(a){this.a=a}
+function Mcb(a){this.a=a}
+function Xcb(a){this.a=a}
+function Ndb(a){this.a=a}
+function _db(a){this.a=a}
+function teb(a){this.a=a}
+function Qeb(a){this.a=a}
+function djb(a){this.a=a}
+function Gjb(a){this.a=a}
+function Njb(a){this.a=a}
+function Bjb(a){this.b=a}
+function lnb(a){this.b=a}
+function Dnb(a){this.b=a}
+function anb(a){this.a=a}
+function Mob(a){this.a=a}
+function Rob(a){this.a=a}
+function iob(a){this.c=a}
+function olb(a){this.c=a}
+function qub(a){this.c=a}
+function Tub(a){this.a=a}
+function Vub(a){this.a=a}
+function Xub(a){this.a=a}
+function Zub(a){this.a=a}
+function tpb(a){this.a=a}
+function _pb(a){this.a=a}
+function Wqb(a){this.a=a}
+function nsb(a){this.a=a}
+function Rxb(a){this.a=a}
+function Txb(a){this.a=a}
+function Xxb(a){this.a=a}
+function bzb(a){this.a=a}
+function tzb(a){this.a=a}
+function vzb(a){this.a=a}
+function xzb(a){this.a=a}
+function Kzb(a){this.a=a}
+function Ozb(a){this.a=a}
+function iAb(a){this.a=a}
+function kAb(a){this.a=a}
+function mAb(a){this.a=a}
+function BAb(a){this.a=a}
+function hBb(a){this.a=a}
+function jBb(a){this.a=a}
+function nBb(a){this.a=a}
+function TBb(a){this.a=a}
+function XBb(a){this.a=a}
+function QCb(a){this.a=a}
+function WCb(a){this.a=a}
+function _Cb(a){this.a=a}
+function dEb(a){this.a=a}
+function QGb(a){this.a=a}
+function YGb(a){this.a=a}
+function tKb(a){this.a=a}
+function CLb(a){this.a=a}
+function JMb(a){this.a=a}
+function RNb(a){this.a=a}
+function kQb(a){this.a=a}
+function mQb(a){this.a=a}
+function FQb(a){this.a=a}
+function ETb(a){this.a=a}
+function UTb(a){this.a=a}
+function dUb(a){this.a=a}
+function hUb(a){this.a=a}
+function EZb(a){this.a=a}
+function j$b(a){this.a=a}
+function v$b(a){this.e=a}
+function J0b(a){this.a=a}
+function M0b(a){this.a=a}
+function R0b(a){this.a=a}
+function U0b(a){this.a=a}
+function i2b(a){this.a=a}
+function k2b(a){this.a=a}
+function o2b(a){this.a=a}
+function s2b(a){this.a=a}
+function G2b(a){this.a=a}
+function I2b(a){this.a=a}
+function K2b(a){this.a=a}
+function M2b(a){this.a=a}
+function W3b(a){this.a=a}
+function $3b(a){this.a=a}
+function V4b(a){this.a=a}
+function u5b(a){this.a=a}
+function A7b(a){this.a=a}
+function G7b(a){this.a=a}
+function J7b(a){this.a=a}
+function M7b(a){this.a=a}
+function Mbc(a){this.a=a}
+function Pbc(a){this.a=a}
+function lac(a){this.a=a}
+function nac(a){this.a=a}
+function qcc(a){this.a=a}
+function Gdc(a){this.a=a}
+function $dc(a){this.a=a}
+function cec(a){this.a=a}
+function _ec(a){this.a=a}
+function pfc(a){this.a=a}
+function Bfc(a){this.a=a}
+function Lfc(a){this.a=a}
+function ygc(a){this.a=a}
+function Dgc(a){this.a=a}
+function shc(a){this.a=a}
+function uhc(a){this.a=a}
+function whc(a){this.a=a}
+function Chc(a){this.a=a}
+function Ehc(a){this.a=a}
+function Ohc(a){this.a=a}
+function Yhc(a){this.a=a}
+function Tkc(a){this.a=a}
+function Vkc(a){this.a=a}
+function Olc(a){this.a=a}
+function pnc(a){this.a=a}
+function rnc(a){this.a=a}
+function dpc(a){this.a=a}
+function fpc(a){this.a=a}
+function GCc(a){this.a=a}
+function KCc(a){this.a=a}
+function mDc(a){this.a=a}
+function jEc(a){this.a=a}
+function HEc(a){this.a=a}
+function FEc(a){this.c=a}
+function qoc(a){this.b=a}
+function bFc(a){this.a=a}
+function GFc(a){this.a=a}
+function iGc(a){this.a=a}
+function kGc(a){this.a=a}
+function mGc(a){this.a=a}
+function $Gc(a){this.a=a}
+function hIc(a){this.a=a}
+function lIc(a){this.a=a}
+function pIc(a){this.a=a}
+function tIc(a){this.a=a}
+function xIc(a){this.a=a}
+function zIc(a){this.a=a}
+function CIc(a){this.a=a}
+function LIc(a){this.a=a}
+function CKc(a){this.a=a}
+function IKc(a){this.a=a}
+function MKc(a){this.a=a}
+function $Kc(a){this.a=a}
+function cLc(a){this.a=a}
+function jLc(a){this.a=a}
+function rLc(a){this.a=a}
+function xLc(a){this.a=a}
+function OMc(a){this.a=a}
+function ZOc(a){this.a=a}
+function ZRc(a){this.a=a}
+function aSc(a){this.a=a}
+function I$c(a){this.a=a}
+function K$c(a){this.a=a}
+function M$c(a){this.a=a}
+function O$c(a){this.a=a}
+function U$c(a){this.a=a}
+function n1c(a){this.a=a}
+function z1c(a){this.a=a}
+function B1c(a){this.a=a}
+function Q2c(a){this.a=a}
+function U2c(a){this.a=a}
+function z3c(a){this.a=a}
+function med(a){this.a=a}
+function Xed(a){this.a=a}
+function _ed(a){this.a=a}
+function Qfd(a){this.a=a}
+function Bgd(a){this.a=a}
+function $gd(a){this.a=a}
+function lrd(a){this.a=a}
+function urd(a){this.a=a}
+function vrd(a){this.a=a}
+function wrd(a){this.a=a}
+function xrd(a){this.a=a}
+function yrd(a){this.a=a}
+function zrd(a){this.a=a}
+function Ard(a){this.a=a}
+function Brd(a){this.a=a}
+function Crd(a){this.a=a}
+function Ird(a){this.a=a}
+function Krd(a){this.a=a}
+function Lrd(a){this.a=a}
+function Mrd(a){this.a=a}
+function Nrd(a){this.a=a}
+function Prd(a){this.a=a}
+function Srd(a){this.a=a}
+function Yrd(a){this.a=a}
+function Zrd(a){this.a=a}
+function _rd(a){this.a=a}
+function asd(a){this.a=a}
+function bsd(a){this.a=a}
+function csd(a){this.a=a}
+function dsd(a){this.a=a}
+function msd(a){this.a=a}
+function osd(a){this.a=a}
+function qsd(a){this.a=a}
+function ssd(a){this.a=a}
+function Wsd(a){this.a=a}
+function Lsd(a){this.b=a}
+function thd(a){this.f=a}
+function qtd(a){this.a=a}
+function yBd(a){this.a=a}
+function GBd(a){this.a=a}
+function MBd(a){this.a=a}
+function SBd(a){this.a=a}
+function iCd(a){this.a=a}
+function YMd(a){this.a=a}
+function GNd(a){this.a=a}
+function EPd(a){this.a=a}
+function EQd(a){this.a=a}
+function NTd(a){this.a=a}
+function qOd(a){this.b=a}
+function lVd(a){this.c=a}
+function VVd(a){this.e=a}
+function iYd(a){this.a=a}
+function RYd(a){this.a=a}
+function ZYd(a){this.a=a}
+function z0d(a){this.a=a}
+function O0d(a){this.a=a}
+function s0d(a){this.d=a}
+function W5d(a){this.a=a}
+function cge(a){this.a=a}
+function xfe(a){this.e=a}
+function Tfd(){this.a=0}
+function jkb(){Vjb(this)}
+function Rkb(){Ckb(this)}
+function Lqb(){Uhb(this)}
+function lEb(){kEb(this)}
+function A_b(){s_b(this)}
+function UQd(){this.c=FQd}
+function v6d(a,b){b.Wb(a)}
+function moc(a,b){a.b+=b}
+function yXb(a){a.b=new Ji}
+function vbb(a){return a.e}
+function DB(a){return a.a}
+function LB(a){return a.a}
+function ZB(a){return a.a}
+function lC(a){return a.a}
+function EC(a){return a.a}
+function wC(){return null}
+function SB(){return null}
+function hcb(){mvd();ovd()}
+function zJb(a){a.b.tf(a.e)}
+function j5b(a,b){a.b=b-a.b}
+function g5b(a,b){a.a=b-a.a}
+function PXc(a,b){b.ad(a.a)}
+function plc(a,b){G0b(b,a)}
+function hp(a,b,c){a.Od(c,b)}
+function As(a,b){a.e=b;b.b=a}
+function Zl(a){Ql();this.a=a}
+function jq(a){Ql();this.a=a}
+function sq(a){Ql();this.a=a}
+function Fq(a){im();this.a=a}
+function Sz(a){Rz();Qz.be(a)}
+function gz(){Xy.call(this)}
+function xcb(){Xy.call(this)}
+function pcb(){gz.call(this)}
+function tcb(){gz.call(this)}
+function Bdb(){gz.call(this)}
+function Vdb(){gz.call(this)}
+function Ydb(){gz.call(this)}
+function Geb(){gz.call(this)}
+function bgb(){gz.call(this)}
+function Apb(){gz.call(this)}
+function Jpb(){gz.call(this)}
+function utb(){gz.call(this)}
+function x2c(){gz.call(this)}
+function rQd(){this.a=this}
+function MPd(){this.Bb|=256}
+function tTb(){this.b=new mt}
+function fA(){fA=ccb;new Lqb}
+function rcb(){pcb.call(this)}
+function dCb(a,b){a.length=b}
+function Tvb(a,b){Ekb(a.a,b)}
+function sKb(a,b){UHb(a.c,b)}
+function SMc(a,b){Qqb(a.b,b)}
+function vBd(a,b){uAd(a.a,b)}
+function wBd(a,b){vAd(a.a,b)}
+function GLd(a,b){Uhd(a.e,b)}
+function d7d(a){D2d(a.c,a.b)}
+function mj(a,b){a.kc().Nb(b)}
+function Odb(a){this.a=Tdb(a)}
+function Tqb(){this.a=new Lqb}
+function gyb(){this.a=new Lqb}
+function Wvb(){this.a=new Rkb}
+function KFb(){this.a=new Rkb}
+function PFb(){this.a=new Rkb}
+function FFb(){this.a=new yFb}
+function pGb(){this.a=new MFb}
+function ZQb(){this.a=new MQb}
+function Gxb(){this.a=new Pwb}
+function jUb(){this.a=new PTb}
+function sDb(){this.a=new oDb}
+function zDb(){this.a=new tDb}
+function CWb(){this.a=new Rkb}
+function HXb(){this.a=new Rkb}
+function nYb(){this.a=new Rkb}
+function BYb(){this.a=new Rkb}
+function fLb(){this.d=new Rkb}
+function vYb(){this.a=new Tqb}
+function a2b(){this.a=new Lqb}
+function wZb(){this.b=new Lqb}
+function TCc(){this.b=new Rkb}
+function zJc(){this.e=new Rkb}
+function uMc(){this.d=new Rkb}
+function wdc(){this.a=new xkc}
+function vKc(){Rkb.call(this)}
+function twb(){Wvb.call(this)}
+function oHb(){$Gb.call(this)}
+function LXb(){HXb.call(this)}
+function L_b(){H_b.call(this)}
+function H_b(){A_b.call(this)}
+function p0b(){A_b.call(this)}
+function s0b(){p0b.call(this)}
+function WMc(){VMc.call(this)}
+function bNc(){VMc.call(this)}
+function EPc(){CPc.call(this)}
+function JPc(){CPc.call(this)}
+function OPc(){CPc.call(this)}
+function w1c(){s1c.call(this)}
+function s7c(){Psb.call(this)}
+function apd(){Ald.call(this)}
+function ppd(){Ald.call(this)}
+function lDd(){YCd.call(this)}
+function NDd(){YCd.call(this)}
+function mFd(){Lqb.call(this)}
+function vFd(){Lqb.call(this)}
+function GFd(){Lqb.call(this)}
+function KPd(){Tqb.call(this)}
+function OJd(){hJd.call(this)}
+function aQd(){MPd.call(this)}
+function SSd(){FId.call(this)}
+function rUd(){FId.call(this)}
+function oUd(){Lqb.call(this)}
+function NYd(){Lqb.call(this)}
+function cZd(){Lqb.call(this)}
+function R8d(){MGd.call(this)}
+function o9d(){MGd.call(this)}
+function i9d(){R8d.call(this)}
+function hee(){ude.call(this)}
+function Dd(a){yd.call(this,a)}
+function Hd(a){yd.call(this,a)}
+function ph(a){lh.call(this,a)}
+function Sh(a){Wc.call(this,a)}
+function oi(a){Sh.call(this,a)}
+function Ii(a){Wc.call(this,a)}
+function Zdd(){this.a=new Psb}
+function CPc(){this.a=new Tqb}
+function s1c(){this.a=new Lqb}
+function QSc(){this.a=new Rkb}
+function D2c(){this.j=new Rkb}
+function QXc(){this.a=new UXc}
+function e_c(){this.a=new d_c}
+function YCd(){this.a=new aDd}
+function _k(){_k=ccb;$k=new al}
+function Lk(){Lk=ccb;Kk=new Mk}
+function wb(){wb=ccb;vb=new xb}
+function hs(){hs=ccb;gs=new is}
+function rs(a){Sh.call(this,a)}
+function Gp(a){Sh.call(this,a)}
+function xp(a){Lo.call(this,a)}
+function Ep(a){Lo.call(this,a)}
+function Tp(a){Wn.call(this,a)}
+function wx(a){un.call(this,a)}
+function ov(a){dv.call(this,a)}
+function Mv(a){Br.call(this,a)}
+function Ov(a){Br.call(this,a)}
+function Lw(a){Br.call(this,a)}
+function hz(a){Yy.call(this,a)}
+function MB(a){hz.call(this,a)}
+function eC(){fC.call(this,{})}
+function Ftb(a){Atb();this.a=a}
+function zwb(a){a.b=null;a.c=0}
+function Vy(a,b){a.e=b;Sy(a,b)}
+function LVb(a,b){a.a=b;NVb(a)}
+function lIb(a,b,c){a.a[b.g]=c}
+function vfd(a,b,c){Dfd(c,a,b)}
+function Odc(a,b){rjc(b.i,a.n)}
+function Wyc(a,b){Xyc(a).td(b)}
+function ERb(a,b){return a*a/b}
+function Xr(a,b){return a.g-b.g}
+function tC(a){return new TB(a)}
+function vC(a){return new yC(a)}
+function ocb(a){hz.call(this,a)}
+function qcb(a){hz.call(this,a)}
+function ucb(a){hz.call(this,a)}
+function vcb(a){Yy.call(this,a)}
+function fGc(a){LFc();this.a=a}
+function c0d(a){kzd();this.a=a}
+function bhd(a){Rgd();this.f=a}
+function dhd(a){Rgd();this.f=a}
+function Cdb(a){hz.call(this,a)}
+function Wdb(a){hz.call(this,a)}
+function Zdb(a){hz.call(this,a)}
+function Feb(a){hz.call(this,a)}
+function Heb(a){hz.call(this,a)}
+function Ccb(a){return uCb(a),a}
+function Edb(a){return uCb(a),a}
+function Gdb(a){return uCb(a),a}
+function jfb(a){return uCb(a),a}
+function tfb(a){return uCb(a),a}
+function akb(a){return a.b==a.c}
+function Hwb(a){return !!a&&a.b}
+function pIb(a){return !!a&&a.k}
+function qIb(a){return !!a&&a.j}
+function amb(a){uCb(a);this.a=a}
+function wVb(a){qVb(a);return a}
+function Blb(a){Glb(a,a.length)}
+function cgb(a){hz.call(this,a)}
+function cqd(a){hz.call(this,a)}
+function n8d(a){hz.call(this,a)}
+function y2c(a){hz.call(this,a)}
+function z2c(a){hz.call(this,a)}
+function mde(a){hz.call(this,a)}
+function pc(a){qc.call(this,a,0)}
+function Ji(){Ki.call(this,12,3)}
+function Kz(){Kz=ccb;Jz=new Nz}
+function jz(){jz=ccb;iz=new nb}
+function KA(){KA=ccb;JA=new MA}
+function OB(){OB=ccb;NB=new PB}
+function jc(){throw vbb(new bgb)}
+function zh(){throw vbb(new bgb)}
+function Pi(){throw vbb(new bgb)}
+function Pj(){throw vbb(new bgb)}
+function Qj(){throw vbb(new bgb)}
+function Ym(){throw vbb(new bgb)}
+function Gb(){this.a=GD(Qb(She))}
+function oy(a){Ql();this.a=Qb(a)}
+function Bs(a,b){a.Td(b);b.Sd(a)}
+function iw(a,b){a.a.ec().Mc(b)}
+function CYb(a,b,c){a.c.lf(b,c)}
+function scb(a){qcb.call(this,a)}
+function Oeb(a){Wdb.call(this,a)}
+function Hfb(){mcb.call(this,'')}
+function Ifb(){mcb.call(this,'')}
+function Ufb(){mcb.call(this,'')}
+function Vfb(){mcb.call(this,'')}
+function Xfb(a){qcb.call(this,a)}
+function zob(a){lnb.call(this,a)}
+function Yob(a){Inb.call(this,a)}
+function Gob(a){zob.call(this,a)}
+function Mk(){Fk.call(this,null)}
+function al(){Fk.call(this,null)}
+function Az(){Az=ccb;!!(Rz(),Qz)}
+function wrb(){wrb=ccb;vrb=yrb()}
+function Mtb(a){return a.a?a.b:0}
+function Vtb(a){return a.a?a.b:0}
+function Lcb(a,b){return a.a-b.a}
+function Wcb(a,b){return a.a-b.a}
+function Peb(a,b){return a.a-b.a}
+function eCb(a,b){return PC(a,b)}
+function GC(a,b){return rdb(a,b)}
+function _B(b,a){return a in b.a}
+function _Db(a,b){a.f=b;return a}
+function ZDb(a,b){a.b=b;return a}
+function $Db(a,b){a.c=b;return a}
+function aEb(a,b){a.g=b;return a}
+function HGb(a,b){a.a=b;return a}
+function IGb(a,b){a.f=b;return a}
+function JGb(a,b){a.k=b;return a}
+function dLb(a,b){a.a=b;return a}
+function eLb(a,b){a.e=b;return a}
+function zVb(a,b){a.e=b;return a}
+function AVb(a,b){a.f=b;return a}
+function KOb(a,b){a.b=true;a.d=b}
+function DHb(a,b){a.b=new g7c(b)}
+function uvb(a,b,c){b.td(a.a[c])}
+function zvb(a,b,c){b.we(a.a[c])}
+function wJc(a,b){return a.b-b.b}
+function kOc(a,b){return a.g-b.g}
+function WQc(a,b){return a.s-b.s}
+function Lic(a,b){return a?0:b-1}
+function SFc(a,b){return a?0:b-1}
+function RFc(a,b){return a?b-1:0}
+function M2c(a,b){return b.Yf(a)}
+function M3c(a,b){a.b=b;return a}
+function L3c(a,b){a.a=b;return a}
+function N3c(a,b){a.c=b;return a}
+function O3c(a,b){a.d=b;return a}
+function P3c(a,b){a.e=b;return a}
+function Q3c(a,b){a.f=b;return a}
+function b4c(a,b){a.a=b;return a}
+function c4c(a,b){a.b=b;return a}
+function d4c(a,b){a.c=b;return a}
+function z5c(a,b){a.c=b;return a}
+function y5c(a,b){a.b=b;return a}
+function A5c(a,b){a.d=b;return a}
+function B5c(a,b){a.e=b;return a}
+function C5c(a,b){a.f=b;return a}
+function D5c(a,b){a.g=b;return a}
+function E5c(a,b){a.a=b;return a}
+function F5c(a,b){a.i=b;return a}
+function G5c(a,b){a.j=b;return a}
+function Vdd(a,b){a.k=b;return a}
+function Wdd(a,b){a.j=b;return a}
+function ykc(a,b){gkc();F0b(b,a)}
+function T$c(a,b,c){R$c(a.a,b,c)}
+function RGc(a){cEc.call(this,a)}
+function iHc(a){cEc.call(this,a)}
+function t7c(a){Qsb.call(this,a)}
+function aPb(a){_Ob.call(this,a)}
+function Ixd(a){zud.call(this,a)}
+function dCd(a){ZBd.call(this,a)}
+function fCd(a){ZBd.call(this,a)}
+function p_b(){q_b.call(this,'')}
+function d7c(){this.a=0;this.b=0}
+function aPc(){this.b=0;this.a=0}
+function NJd(a,b){a.b=0;DId(a,b)}
+function X1d(a,b){a.c=b;a.b=true}
+function Oc(a,b){return a.c._b(b)}
+function gdb(a){return a.e&&a.e()}
+function Vd(a){return !a?null:a.d}
+function sn(a,b){return Gv(a.b,b)}
+function Fv(a){return !a?null:a.g}
+function Kv(a){return !a?null:a.i}
+function hdb(a){fdb(a);return a.o}
+function Fhd(){Fhd=ccb;Ehd=ond()}
+function Hhd(){Hhd=ccb;Ghd=Cod()}
+function LFd(){LFd=ccb;KFd=qZd()}
+function p8d(){p8d=ccb;o8d=Y9d()}
+function r8d(){r8d=ccb;q8d=dae()}
+function mvd(){mvd=ccb;lvd=n4c()}
+function Srb(){throw vbb(new bgb)}
+function enb(){throw vbb(new bgb)}
+function fnb(){throw vbb(new bgb)}
+function gnb(){throw vbb(new bgb)}
+function jnb(){throw vbb(new bgb)}
+function Cnb(){throw vbb(new bgb)}
+function Uqb(a){this.a=new Mqb(a)}
+function tgb(a){lgb();ngb(this,a)}
+function Hxb(a){this.a=new Qwb(a)}
+function _ub(a,b){while(a.ye(b));}
+function Sub(a,b){while(a.sd(b));}
+function Bfb(a,b){a.a+=b;return a}
+function Cfb(a,b){a.a+=b;return a}
+function Ffb(a,b){a.a+=b;return a}
+function Lfb(a,b){a.a+=b;return a}
+function WAb(a){Tzb(a);return a.a}
+function Wsb(a){return a.b!=a.d.c}
+function pD(a){return a.l|a.m<<22}
+function aIc(a,b){return a.d[b.p]}
+function h2c(a,b){return c2c(a,b)}
+function cCb(a,b,c){a.splice(b,c)}
+function WHb(a){a.c?VHb(a):XHb(a)}
+function jVc(a){this.a=0;this.b=a}
+function ZUc(){this.a=new L2c(K$)}
+function tRc(){this.b=new L2c(h$)}
+function Q$c(){this.b=new L2c(J_)}
+function d_c(){this.b=new L2c(J_)}
+function OCd(){throw vbb(new bgb)}
+function PCd(){throw vbb(new bgb)}
+function QCd(){throw vbb(new bgb)}
+function RCd(){throw vbb(new bgb)}
+function SCd(){throw vbb(new bgb)}
+function TCd(){throw vbb(new bgb)}
+function UCd(){throw vbb(new bgb)}
+function VCd(){throw vbb(new bgb)}
+function WCd(){throw vbb(new bgb)}
+function XCd(){throw vbb(new bgb)}
+function ahe(){throw vbb(new utb)}
+function bhe(){throw vbb(new utb)}
+function Rge(a){this.a=new ege(a)}
+function ege(a){dge(this,a,Vee())}
+function Fhe(a){return !a||Ehe(a)}
+function dde(a){return $ce[a]!=-1}
+function Iz(){xz!=0&&(xz=0);zz=-1}
+function Ybb(){Wbb==null&&(Wbb=[])}
+function ONd(a,b){Rxd(ZKd(a.a),b)}
+function TNd(a,b){Rxd(ZKd(a.a),b)}
+function Yf(a,b){zf.call(this,a,b)}
+function $f(a,b){Yf.call(this,a,b)}
+function Hf(a,b){this.b=a;this.c=b}
+function rk(a,b){this.b=a;this.a=b}
+function ek(a,b){this.a=a;this.b=b}
+function gk(a,b){this.a=a;this.b=b}
+function pk(a,b){this.a=a;this.b=b}
+function yk(a,b){this.a=a;this.b=b}
+function Ak(a,b){this.a=a;this.b=b}
+function Fj(a,b){this.a=a;this.b=b}
+function _j(a,b){this.a=a;this.b=b}
+function dr(a,b){this.a=a;this.b=b}
+function zr(a,b){this.b=a;this.a=b}
+function So(a,b){this.b=a;this.a=b}
+function qp(a,b){this.b=a;this.a=b}
+function $q(a,b){this.b=a;this.a=b}
+function $r(a,b){this.f=a;this.g=b}
+function ne(a,b){this.e=a;this.d=b}
+function Wo(a,b){this.g=a;this.i=b}
+function bu(a,b){this.a=a;this.b=b}
+function qu(a,b){this.a=a;this.f=b}
+function qv(a,b){this.b=a;this.c=b}
+function ox(a,b){this.a=a;this.b=b}
+function Px(a,b){this.a=a;this.b=b}
+function mC(a,b){this.a=a;this.b=b}
+function Wc(a){Lb(a.dc());this.c=a}
+function rf(a){this.b=BD(Qb(a),83)}
+function Zv(a){this.a=BD(Qb(a),83)}
+function dv(a){this.a=BD(Qb(a),15)}
+function $u(a){this.a=BD(Qb(a),15)}
+function Br(a){this.b=BD(Qb(a),47)}
+function eB(){this.q=new $wnd.Date}
+function Zfb(){Zfb=ccb;Yfb=new jcb}
+function Emb(){Emb=ccb;Dmb=new Fmb}
+function Vhb(a){return a.f.c+a.g.c}
+function hnb(a,b){return a.b.Hc(b)}
+function inb(a,b){return a.b.Ic(b)}
+function knb(a,b){return a.b.Qc(b)}
+function Dob(a,b){return a.b.Hc(b)}
+function dob(a,b){return a.c.uc(b)}
+function Rqb(a,b){return a.a._b(b)}
+function fob(a,b){return pb(a.c,b)}
+function jt(a,b){return Mhb(a.b,b)}
+function Lp(a,b){return a>b&&b0}
+function Gbb(a,b){return ybb(a,b)<0}
+function Crb(a,b){return a.a.get(b)}
+function icb(b,a){return a.split(b)}
+function Vrb(a,b){return Mhb(a.e,b)}
+function Nvb(a){return uCb(a),false}
+function Rub(a){Kub.call(this,a,21)}
+function wcb(a,b){Zy.call(this,a,b)}
+function mxb(a,b){$r.call(this,a,b)}
+function Gyb(a,b){$r.call(this,a,b)}
+function zx(a){yx();Wn.call(this,a)}
+function zlb(a,b){Dlb(a,a.length,b)}
+function Alb(a,b){Flb(a,a.length,b)}
+function ABb(a,b,c){b.ud(a.a.Ge(c))}
+function uBb(a,b,c){b.we(a.a.Fe(c))}
+function GBb(a,b,c){b.td(a.a.Kb(c))}
+function Zq(a,b,c){a.Mb(c)&&b.td(c)}
+function aCb(a,b,c){a.splice(b,0,c)}
+function lDb(a,b){return uqb(a.e,b)}
+function pjb(a,b){this.d=a;this.e=b}
+function kqb(a,b){this.b=a;this.a=b}
+function VBb(a,b){this.b=a;this.a=b}
+function BEb(a,b){this.b=a;this.a=b}
+function sBb(a,b){this.a=a;this.b=b}
+function yBb(a,b){this.a=a;this.b=b}
+function EBb(a,b){this.a=a;this.b=b}
+function KBb(a,b){this.a=a;this.b=b}
+function aDb(a,b){this.a=a;this.b=b}
+function tMb(a,b){this.b=a;this.a=b}
+function oOb(a,b){this.b=a;this.a=b}
+function SOb(a,b){$r.call(this,a,b)}
+function SMb(a,b){$r.call(this,a,b)}
+function NEb(a,b){$r.call(this,a,b)}
+function VEb(a,b){$r.call(this,a,b)}
+function sFb(a,b){$r.call(this,a,b)}
+function hHb(a,b){$r.call(this,a,b)}
+function OHb(a,b){$r.call(this,a,b)}
+function FIb(a,b){$r.call(this,a,b)}
+function wLb(a,b){$r.call(this,a,b)}
+function YRb(a,b){$r.call(this,a,b)}
+function zTb(a,b){$r.call(this,a,b)}
+function rUb(a,b){$r.call(this,a,b)}
+function oWb(a,b){$r.call(this,a,b)}
+function SXb(a,b){$r.call(this,a,b)}
+function k0b(a,b){$r.call(this,a,b)}
+function z5b(a,b){$r.call(this,a,b)}
+function T8b(a,b){$r.call(this,a,b)}
+function ibc(a,b){$r.call(this,a,b)}
+function Cec(a,b){this.a=a;this.b=b}
+function rfc(a,b){this.a=a;this.b=b}
+function Rfc(a,b){this.a=a;this.b=b}
+function Tfc(a,b){this.a=a;this.b=b}
+function bgc(a,b){this.a=a;this.b=b}
+function ngc(a,b){this.a=a;this.b=b}
+function Qhc(a,b){this.a=a;this.b=b}
+function $hc(a,b){this.a=a;this.b=b}
+function Z0b(a,b){this.a=a;this.b=b}
+function ZVb(a,b){this.b=a;this.a=b}
+function Dfc(a,b){this.b=a;this.a=b}
+function dgc(a,b){this.b=a;this.a=b}
+function Bmc(a,b){this.b=a;this.a=b}
+function cWb(a,b){this.c=a;this.d=b}
+function I$b(a,b){this.e=a;this.d=b}
+function Unc(a,b){this.a=a;this.b=b}
+function Oic(a,b){this.b=b;this.c=a}
+function Bjc(a,b){$r.call(this,a,b)}
+function Yjc(a,b){$r.call(this,a,b)}
+function Gkc(a,b){$r.call(this,a,b)}
+function Bpc(a,b){$r.call(this,a,b)}
+function Jpc(a,b){$r.call(this,a,b)}
+function Tpc(a,b){$r.call(this,a,b)}
+function cqc(a,b){$r.call(this,a,b)}
+function oqc(a,b){$r.call(this,a,b)}
+function yqc(a,b){$r.call(this,a,b)}
+function Hqc(a,b){$r.call(this,a,b)}
+function Uqc(a,b){$r.call(this,a,b)}
+function arc(a,b){$r.call(this,a,b)}
+function mrc(a,b){$r.call(this,a,b)}
+function zrc(a,b){$r.call(this,a,b)}
+function Prc(a,b){$r.call(this,a,b)}
+function Yrc(a,b){$r.call(this,a,b)}
+function fsc(a,b){$r.call(this,a,b)}
+function nsc(a,b){$r.call(this,a,b)}
+function nzc(a,b){$r.call(this,a,b)}
+function zzc(a,b){$r.call(this,a,b)}
+function Kzc(a,b){$r.call(this,a,b)}
+function Xzc(a,b){$r.call(this,a,b)}
+function Dtc(a,b){$r.call(this,a,b)}
+function lAc(a,b){$r.call(this,a,b)}
+function uAc(a,b){$r.call(this,a,b)}
+function CAc(a,b){$r.call(this,a,b)}
+function LAc(a,b){$r.call(this,a,b)}
+function UAc(a,b){$r.call(this,a,b)}
+function aBc(a,b){$r.call(this,a,b)}
+function uBc(a,b){$r.call(this,a,b)}
+function DBc(a,b){$r.call(this,a,b)}
+function MBc(a,b){$r.call(this,a,b)}
+function sGc(a,b){$r.call(this,a,b)}
+function VIc(a,b){$r.call(this,a,b)}
+function EIc(a,b){this.b=a;this.a=b}
+function qKc(a,b){this.a=a;this.b=b}
+function GKc(a,b){this.a=a;this.b=b}
+function lLc(a,b){this.a=a;this.b=b}
+function mMc(a,b){this.a=a;this.b=b}
+function fMc(a,b){$r.call(this,a,b)}
+function ZLc(a,b){$r.call(this,a,b)}
+function ZMc(a,b){this.b=a;this.d=b}
+function IOc(a,b){$r.call(this,a,b)}
+function GQc(a,b){$r.call(this,a,b)}
+function PQc(a,b){this.a=a;this.b=b}
+function RQc(a,b){this.a=a;this.b=b}
+function ARc(a,b){$r.call(this,a,b)}
+function rSc(a,b){$r.call(this,a,b)}
+function TTc(a,b){$r.call(this,a,b)}
+function _Tc(a,b){$r.call(this,a,b)}
+function RUc(a,b){$r.call(this,a,b)}
+function uVc(a,b){$r.call(this,a,b)}
+function hWc(a,b){$r.call(this,a,b)}
+function rWc(a,b){$r.call(this,a,b)}
+function kXc(a,b){$r.call(this,a,b)}
+function uXc(a,b){$r.call(this,a,b)}
+function AYc(a,b){$r.call(this,a,b)}
+function l$c(a,b){$r.call(this,a,b)}
+function Z$c(a,b){$r.call(this,a,b)}
+function D_c(a,b){$r.call(this,a,b)}
+function O_c(a,b){$r.call(this,a,b)}
+function c1c(a,b){$r.call(this,a,b)}
+function cVb(a,b){return uqb(a.c,b)}
+function nnc(a,b){return uqb(b.b,a)}
+function x1c(a,b){return -a.b.Je(b)}
+function D3c(a,b){return uqb(a.g,b)}
+function O5c(a,b){$r.call(this,a,b)}
+function a6c(a,b){$r.call(this,a,b)}
+function m2c(a,b){this.a=a;this.b=b}
+function W2c(a,b){this.a=a;this.b=b}
+function f7c(a,b){this.a=a;this.b=b}
+function G7c(a,b){$r.call(this,a,b)}
+function j8c(a,b){$r.call(this,a,b)}
+function iad(a,b){$r.call(this,a,b)}
+function rad(a,b){$r.call(this,a,b)}
+function Bad(a,b){$r.call(this,a,b)}
+function Nad(a,b){$r.call(this,a,b)}
+function ibd(a,b){$r.call(this,a,b)}
+function tbd(a,b){$r.call(this,a,b)}
+function Ibd(a,b){$r.call(this,a,b)}
+function Ubd(a,b){$r.call(this,a,b)}
+function gcd(a,b){$r.call(this,a,b)}
+function scd(a,b){$r.call(this,a,b)}
+function Ycd(a,b){$r.call(this,a,b)}
+function udd(a,b){$r.call(this,a,b)}
+function Jdd(a,b){$r.call(this,a,b)}
+function Eed(a,b){$r.call(this,a,b)}
+function bfd(a,b){this.a=a;this.b=b}
+function dfd(a,b){this.a=a;this.b=b}
+function ffd(a,b){this.a=a;this.b=b}
+function Kfd(a,b){this.a=a;this.b=b}
+function Mfd(a,b){this.a=a;this.b=b}
+function Ofd(a,b){this.a=a;this.b=b}
+function vgd(a,b){this.a=a;this.b=b}
+function qgd(a,b){$r.call(this,a,b)}
+function jrd(a,b){this.a=a;this.b=b}
+function krd(a,b){this.a=a;this.b=b}
+function mrd(a,b){this.a=a;this.b=b}
+function nrd(a,b){this.a=a;this.b=b}
+function qrd(a,b){this.a=a;this.b=b}
+function rrd(a,b){this.a=a;this.b=b}
+function srd(a,b){this.b=a;this.a=b}
+function trd(a,b){this.b=a;this.a=b}
+function Drd(a,b){this.b=a;this.a=b}
+function Frd(a,b){this.b=a;this.a=b}
+function Hrd(a,b){this.a=a;this.b=b}
+function Jrd(a,b){this.a=a;this.b=b}
+function Ord(a,b){Xqd(a.a,BD(b,56))}
+function BIc(a,b){gIc(a.a,BD(b,11))}
+function fIc(a,b){FHc();return b!=a}
+function Arb(){wrb();return new vrb}
+function CMc(){wMc();this.b=new Tqb}
+function NNc(){FNc();this.a=new Tqb}
+function eCc(){ZBc();aCc.call(this)}
+function Dsd(a,b){$r.call(this,a,b)}
+function Urd(a,b){this.a=a;this.b=b}
+function Wrd(a,b){this.a=a;this.b=b}
+function kGd(a,b){this.a=a;this.b=b}
+function nGd(a,b){this.a=a;this.b=b}
+function bUd(a,b){this.a=a;this.b=b}
+function zVd(a,b){this.a=a;this.b=b}
+function C1d(a,b){this.d=a;this.b=b}
+function MLd(a,b){this.d=a;this.e=b}
+function Wud(a,b){this.f=a;this.c=b}
+function f7d(a,b){this.b=a;this.c=b}
+function _zd(a,b){this.i=a;this.g=b}
+function Y1d(a,b){this.e=a;this.a=b}
+function c8d(a,b){this.a=a;this.b=b}
+function $Id(a,b){a.i=null;_Id(a,b)}
+function ivd(a,b){!!a&&Rhb(cvd,a,b)}
+function hCd(a,b){return qAd(a.a,b)}
+function e7d(a){return R2d(a.c,a.b)}
+function Wd(a){return !a?null:a.dd()}
+function PD(a){return a==null?null:a}
+function KD(a){return typeof a===Khe}
+function LD(a){return typeof a===Lhe}
+function ND(a){return typeof a===Mhe}
+function Em(a,b){return a.Hd().Xb(b)}
+function Kq(a,b){return hr(a.Kc(),b)}
+function Bbb(a,b){return ybb(a,b)==0}
+function Ebb(a,b){return ybb(a,b)>=0}
+function Kbb(a,b){return ybb(a,b)!=0}
+function Jdb(a){return ''+(uCb(a),a)}
+function pfb(a,b){return a.substr(b)}
+function cg(a){ag(a);return a.d.gc()}
+function oVb(a){pVb(a,a.c);return a}
+function RD(a){CCb(a==null);return a}
+function Dfb(a,b){a.a+=''+b;return a}
+function Efb(a,b){a.a+=''+b;return a}
+function Nfb(a,b){a.a+=''+b;return a}
+function Pfb(a,b){a.a+=''+b;return a}
+function Qfb(a,b){a.a+=''+b;return a}
+function Mfb(a,b){return a.a+=''+b,a}
+function Esb(a,b){Gsb(a,b,a.a,a.a.a)}
+function Fsb(a,b){Gsb(a,b,a.c.b,a.c)}
+function Mqd(a,b,c){Rpd(b,kqd(a,c))}
+function Nqd(a,b,c){Rpd(b,kqd(a,c))}
+function Dhe(a,b){Hhe(new Fyd(a),b)}
+function cB(a,b){a.q.setTime(Sbb(b))}
+function fvb(a,b){bvb.call(this,a,b)}
+function jvb(a,b){bvb.call(this,a,b)}
+function nvb(a,b){bvb.call(this,a,b)}
+function Nqb(a){Uhb(this);Ld(this,a)}
+function wmb(a){tCb(a,0);return null}
+function X6c(a){a.a=0;a.b=0;return a}
+function f3c(a,b){a.a=b.g+1;return a}
+function PJc(a,b){return a.j[b.p]==2}
+function _Pb(a){return VPb(BD(a,79))}
+function yJb(){yJb=ccb;xJb=as(wJb())}
+function Y8b(){Y8b=ccb;X8b=as(W8b())}
+function mt(){this.b=new Mqb(Cv(12))}
+function Otb(){this.b=0;this.a=false}
+function Wtb(){this.b=0;this.a=false}
+function sl(a){this.a=a;ol.call(this)}
+function vl(a){this.a=a;ol.call(this)}
+function Nsd(a,b){Msd.call(this,a,b)}
+function $zd(a,b){Cyd.call(this,a,b)}
+function nNd(a,b){_zd.call(this,a,b)}
+function s4d(a,b){p4d.call(this,a,b)}
+function w4d(a,b){qRd.call(this,a,b)}
+function rEd(a,b){pEd();Rhb(oEd,a,b)}
+function lcb(a,b){return qfb(a.a,0,b)}
+function ww(a,b){return a.a.a.a.cc(b)}
+function mb(a,b){return PD(a)===PD(b)}
+function Mdb(a,b){return Kdb(a.a,b.a)}
+function $db(a,b){return beb(a.a,b.a)}
+function seb(a,b){return ueb(a.a,b.a)}
+function hfb(a,b){return a.indexOf(b)}
+function Ny(a,b){return a==b?0:a?1:-1}
+function kB(a){return a<10?'0'+a:''+a}
+function Mq(a){return Qb(a),new sl(a)}
+function SC(a){return TC(a.l,a.m,a.h)}
+function Hdb(a){return QD((uCb(a),a))}
+function Idb(a){return QD((uCb(a),a))}
+function NIb(a,b){return beb(a.g,b.g)}
+function Fbb(a){return typeof a===Lhe}
+function mWb(a){return a==hWb||a==kWb}
+function nWb(a){return a==hWb||a==iWb}
+function G1b(a){return Jkb(a.b.b,a,0)}
+function lrb(a){this.a=Arb();this.b=a}
+function Frb(a){this.a=Arb();this.b=a}
+function swb(a,b){Ekb(a.a,b);return b}
+function Z1c(a,b){Ekb(a.c,b);return a}
+function E2c(a,b){d3c(a.a,b);return a}
+function _gc(a,b){Hgc();return b.a+=a}
+function bhc(a,b){Hgc();return b.a+=a}
+function ahc(a,b){Hgc();return b.c+=a}
+function Nlb(a,b){Klb(a,0,a.length,b)}
+function zsb(){Wqb.call(this,new $rb)}
+function I_b(){B_b.call(this,0,0,0,0)}
+function I6c(){J6c.call(this,0,0,0,0)}
+function g7c(a){this.a=a.a;this.b=a.b}
+function fad(a){return a==aad||a==bad}
+function gad(a){return a==dad||a==_9c}
+function Jzc(a){return a==Fzc||a==Ezc}
+function fcd(a){return a!=bcd&&a!=ccd}
+function oid(a){return a.Lg()&&a.Mg()}
+function Gfd(a){return Kkd(BD(a,118))}
+function k3c(a){return d3c(new j3c,a)}
+function y2d(a,b){return new p4d(b,a)}
+function z2d(a,b){return new p4d(b,a)}
+function ukd(a,b,c){vkd(a,b);wkd(a,c)}
+function _kd(a,b,c){cld(a,b);ald(a,c)}
+function bld(a,b,c){dld(a,b);eld(a,c)}
+function gmd(a,b,c){hmd(a,b);imd(a,c)}
+function nmd(a,b,c){omd(a,b);pmd(a,c)}
+function iKd(a,b){$Jd(a,b);_Jd(a,a.D)}
+function _ud(a){Wud.call(this,a,true)}
+function Xg(a,b,c){Vg.call(this,a,b,c)}
+function Ygb(a){Hgb();Zgb.call(this,a)}
+function rxb(){mxb.call(this,'Head',1)}
+function wxb(){mxb.call(this,'Tail',3)}
+function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)}
+function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)}
+function MGb(a){Hkb(a.xf(),new QGb(a))}
+function xtb(a){return a!=null?tb(a):0}
+function b2b(a,b){return ntd(b,mpd(a))}
+function c2b(a,b){return ntd(b,mpd(a))}
+function dAb(a,b){return a[a.length]=b}
+function gAb(a,b){return a[a.length]=b}
+function Vq(a){return lr(a.b.Kc(),a.a)}
+function dqd(a,b){return _o(qo(a.d),b)}
+function eqd(a,b){return _o(qo(a.g),b)}
+function fqd(a,b){return _o(qo(a.j),b)}
+function Osd(a,b){Msd.call(this,a.b,b)}
+function q0b(a){B_b.call(this,a,a,a,a)}
+function HOb(a){a.b&&LOb(a);return a.a}
+function IOb(a){a.b&&LOb(a);return a.c}
+function uyb(a,b){if(lyb){return}a.b=b}
+function lzd(a,b,c){NC(a,b,c);return c}
+function mBc(a,b,c){NC(a.c[b.g],b.g,c)}
+function _Hd(a,b,c){BD(a.c,69).Xh(b,c)}
+function wfd(a,b,c){bld(c,c.i+a,c.j+b)}
+function UOd(a,b){wtd(VKd(a.a),XOd(b))}
+function bTd(a,b){wtd(QSd(a.a),eTd(b))}
+function Lge(a){wfe();xfe.call(this,a)}
+function CAd(a){return a==null?0:tb(a)}
+function fNc(){fNc=ccb;eNc=new Rpb(v1)}
+function h0d(){h0d=ccb;new i0d;new Rkb}
+function i0d(){new Lqb;new Lqb;new Lqb}
+function GA(){GA=ccb;fA();FA=new Lqb}
+function Iy(){Iy=ccb;$wnd.Math.log(2)}
+function UVd(){UVd=ccb;TVd=(AFd(),zFd)}
+function _ge(){throw vbb(new cgb(Cxe))}
+function ohe(){throw vbb(new cgb(Cxe))}
+function che(){throw vbb(new cgb(Dxe))}
+function rhe(){throw vbb(new cgb(Dxe))}
+function Mg(a){this.a=a;Gg.call(this,a)}
+function up(a){this.a=a;rf.call(this,a)}
+function Bp(a){this.a=a;rf.call(this,a)}
+function Okb(a,b){Mlb(a.c,a.c.length,b)}
+function llb(a){return a.ab?1:0}
+function Deb(a,b){return ybb(a,b)>0?a:b}
+function TC(a,b,c){return {l:a,m:b,h:c}}
+function Ctb(a,b){a.a!=null&&BIc(b,a.a)}
+function Csb(a){a.a=new jtb;a.c=new jtb}
+function hDb(a){this.b=a;this.a=new Rkb}
+function dOb(a){this.b=new pOb;this.a=a}
+function q_b(a){n_b.call(this);this.a=a}
+function txb(){mxb.call(this,'Range',2)}
+function bUb(){ZTb();this.a=new L2c(zP)}
+function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)}
+function fKc(a,b){FJc();return b.n.b+=a}
+function Tgc(a,b,c){return Rhb(a.g,c,b)}
+function LJc(a,b,c){return Rhb(a.k,c,b)}
+function r1c(a,b){return Rhb(a.a,b.a,b)}
+function jBc(a,b,c){return hBc(b,c,a.c)}
+function E6c(a){return new f7c(a.c,a.d)}
+function F6c(a){return new f7c(a.c,a.d)}
+function R6c(a){return new f7c(a.a,a.b)}
+function CQd(a,b){return hA(a.a,b,null)}
+function fec(a){QZb(a,null);RZb(a,null)}
+function AOc(a){BOc(a,null);COc(a,null)}
+function u4d(){qRd.call(this,null,null)}
+function y4d(){RRd.call(this,null,null)}
+function a7d(a){this.a=a;Lqb.call(this)}
+function Pp(a){this.b=(mmb(),new iob(a))}
+function Py(a){a.j=KC(VI,nie,310,0,0,1)}
+function oAd(a,b,c){a.c.Vc(b,BD(c,133))}
+function GAd(a,b,c){a.c.ji(b,BD(c,133))}
+function JLd(a,b){Uxd(a);a.Gc(BD(b,15))}
+function b7d(a,b){return t2d(a.c,a.b,b)}
+function Bv(a,b){return new Qv(a.Kc(),b)}
+function Lq(a,b){return rr(a.Kc(),b)!=-1}
+function Sqb(a,b){return a.a.Bc(b)!=null}
+function pr(a){return a.Ob()?a.Pb():null}
+function yfb(a){return zfb(a,0,a.length)}
+function JD(a,b){return a!=null&&AD(a,b)}
+function $A(a,b){a.q.setHours(b);YA(a,b)}
+function Yrb(a,b){if(a.c){jsb(b);isb(b)}}
+function nk(a,b,c){BD(a.Kb(c),164).Nb(b)}
+function RJc(a,b,c){SJc(a,b,c);return c}
+function Eub(a,b,c){a.a=b^1502;a.b=c^kke}
+function xHb(a,b,c){return a.a[b.g][c.g]}
+function REc(a,b){return a.a[b.c.p][b.p]}
+function aEc(a,b){return a.e[b.c.p][b.p]}
+function tEc(a,b){return a.c[b.c.p][b.p]}
+function OJc(a,b){return a.j[b.p]=aKc(b)}
+function k5c(a,b){return cfb(a.f,b.tg())}
+function Isd(a,b){return cfb(a.b,b.tg())}
+function Sfd(a,b){return a.a0?b*b/a:b*b*100}
+function CRb(a,b){return a>0?b/(a*a):b*100}
+function G2c(a,b,c){return Ekb(b,I2c(a,c))}
+function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)}
+function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)}
+function O6c(a,b,c){a.a+=b;a.b+=c;return a}
+function Z6c(a,b,c){a.a*=b;a.b*=c;return a}
+function b7c(a,b,c){a.a-=b;a.b-=c;return a}
+function a7c(a,b){a.a=b.a;a.b=b.b;return a}
+function V6c(a){a.a=-a.a;a.b=-a.b;return a}
+function Dic(a){this.c=a;this.a=1;this.b=1}
+function xed(a){this.c=a;dld(a,0);eld(a,0)}
+function u7c(a){Psb.call(this);n7c(this,a)}
+function AXb(a){xXb();yXb(this);this.mf(a)}
+function GRd(a,b){nRd();qRd.call(this,a,b)}
+function dSd(a,b){LRd();RRd.call(this,a,b)}
+function hSd(a,b){LRd();RRd.call(this,a,b)}
+function fSd(a,b){LRd();dSd.call(this,a,b)}
+function sId(a,b,c){dId.call(this,a,b,c,2)}
+function zXd(a,b){UVd();nXd.call(this,a,b)}
+function BXd(a,b){UVd();zXd.call(this,a,b)}
+function DXd(a,b){UVd();zXd.call(this,a,b)}
+function FXd(a,b){UVd();DXd.call(this,a,b)}
+function PXd(a,b){UVd();nXd.call(this,a,b)}
+function RXd(a,b){UVd();PXd.call(this,a,b)}
+function XXd(a,b){UVd();nXd.call(this,a,b)}
+function pAd(a,b){return a.c.Fc(BD(b,133))}
+function w1d(a,b,c){return V1d(p1d(a,b),c)}
+function N2d(a,b,c){return b.Qk(a.e,a.c,c)}
+function P2d(a,b,c){return b.Rk(a.e,a.c,c)}
+function a3d(a,b){return xid(a.e,BD(b,49))}
+function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))}
+function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))}
+function ypb(a,b){b.$modCount=a.$modCount}
+function MUc(){MUc=ccb;LUc=new Lsd('root')}
+function LCd(){LCd=ccb;KCd=new lDd;new NDd}
+function KVc(){this.a=new Hp;this.b=new Hp}
+function FUd(){hJd.call(this);this.Bb|=Tje}
+function t_c(){$r.call(this,'GROW_TREE',0)}
+function C9d(a){return a==null?null:cde(a)}
+function G9d(a){return a==null?null:jde(a)}
+function J9d(a){return a==null?null:fcb(a)}
+function K9d(a){return a==null?null:fcb(a)}
+function fdb(a){if(a.o!=null){return}vdb(a)}
+function DD(a){CCb(a==null||KD(a));return a}
+function ED(a){CCb(a==null||LD(a));return a}
+function GD(a){CCb(a==null||ND(a));return a}
+function gB(a){this.q=new $wnd.Date(Sbb(a))}
+function Mf(a,b){this.c=a;ne.call(this,a,b)}
+function Sf(a,b){this.a=a;Mf.call(this,a,b)}
+function Hg(a,b){this.d=a;Dg(this);this.b=b}
+function bAb(a,b){Vzb.call(this,a);this.a=b}
+function vAb(a,b){Vzb.call(this,a);this.a=b}
+function sNb(a){pNb.call(this,0,0);this.f=a}
+function Vg(a,b,c){dg.call(this,a,b,c,null)}
+function Yg(a,b,c){dg.call(this,a,b,c,null)}
+function Pxb(a,b,c){return a.ue(b,c)<=0?c:b}
+function Qxb(a,b,c){return a.ue(b,c)<=0?b:c}
+function g4c(a,b){return BD(Wrb(a.b,b),149)}
+function i4c(a,b){return BD(Wrb(a.c,b),229)}
+function wic(a){return BD(Ikb(a.a,a.b),287)}
+function B6c(a){return new f7c(a.c,a.d+a.a)}
+function eLc(a){return FJc(),Jzc(BD(a,197))}
+function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))}
+function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)}
+function qyb(a,b){if(lyb){return}Ekb(a.a,b)}
+function F2b(a,b){x2b();return f_b(b.d.i,a)}
+function _9b(a,b){I9b();return new gac(b,a)}
+function _Hb(a,b){ytb(b,lle);a.f=b;return a}
+function Kld(a,b,c){c=_hd(a,b,3,c);return c}
+function bmd(a,b,c){c=_hd(a,b,6,c);return c}
+function kpd(a,b,c){c=_hd(a,b,9,c);return c}
+function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)}
+function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))}
+function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)}
+function c7d(a,b,c){return C2d(a.c,a.b,b,c)}
+function DAd(a,b){return (b&Ohe)%a.d.length}
+function Msd(a,b){Lsd.call(this,a);this.a=b}
+function uVd(a,b){lVd.call(this,a);this.a=b}
+function sYd(a,b){lVd.call(this,a);this.a=b}
+function zyd(a,b){this.c=a;zud.call(this,b)}
+function YOd(a,b){this.a=a;qOd.call(this,b)}
+function fTd(a,b){this.a=a;qOd.call(this,b)}
+function Xp(a){this.a=(Xj(a,Jie),new Skb(a))}
+function cq(a){this.a=(Xj(a,Jie),new Skb(a))}
+function LA(a){!a.a&&(a.a=new VA);return a.a}
+function XMb(a){if(a>8){return 0}return a+1}
+function Ecb(a,b){Bcb();return a==b?0:a?1:-1}
+function Opb(a,b,c){return Npb(a,BD(b,22),c)}
+function Bz(a,b,c){return a.apply(b,c);var d}
+function Sfb(a,b,c){a.a+=zfb(b,0,c);return a}
+function ijb(a,b){var c;c=a.e;a.e=b;return c}
+function trb(a,b){var c;c=a[hke];c.call(a,b)}
+function urb(a,b){var c;c=a[hke];c.call(a,b)}
+function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1}
+function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d}
+function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)}
+function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))}
+function Bxb(a,b){return Vd(Cwb(a.a,b,true))}
+function Cxb(a,b){return Vd(Dwb(a.a,b,true))}
+function _Bb(a,b){return eCb(new Array(b),a)}
+function HD(a){return String.fromCharCode(a)}
+function mz(a){return a==null?null:a.message}
+function gRb(){this.a=new Rkb;this.b=new Rkb}
+function iTb(){this.a=new MQb;this.b=new tTb}
+function tDb(){this.b=new d7c;this.c=new Rkb}
+function _Qb(){this.d=new d7c;this.e=new d7c}
+function n_b(){this.n=new d7c;this.o=new d7c}
+function $Gb(){this.n=new p0b;this.i=new I6c}
+function sec(){this.a=new Umc;this.b=new mnc}
+function NIc(){this.a=new Rkb;this.d=new Rkb}
+function LDc(){this.b=new Tqb;this.a=new Tqb}
+function hSc(){this.b=new Lqb;this.a=new Lqb}
+function HRc(){this.b=new tRc;this.a=new hRc}
+function aHb(){$Gb.call(this);this.a=new d7c}
+function Ywb(a){Zwb.call(this,a,(lxb(),hxb))}
+function J_b(a,b,c,d){B_b.call(this,a,b,c,d)}
+function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))}
+function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))}
+function Tod(a,b,c){c=_hd(a,b,11,c);return c}
+function P6c(a,b){a.a+=b.a;a.b+=b.b;return a}
+function c7c(a,b){a.a-=b.a;a.b-=b.b;return a}
+function u7b(a,b){return a.n.a=(uCb(b),b)+10}
+function v7b(a,b){return a.n.a=(uCb(b),b)+10}
+function dLd(a,b){return b==a||pud(UKd(b),a)}
+function PYd(a,b){return Rhb(a.a,b,'')==null}
+function E2b(a,b){x2b();return !f_b(b.d.i,a)}
+function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)}
+function h1d(a,b){var c;c=b.Hh(a.a);return c}
+function Cyd(a,b){qcb.call(this,gve+a+mue+b)}
+function gUd(a,b,c,d){cUd.call(this,a,b,c,d)}
+function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)}
+function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)}
+function n5d(a,b,c,d){i5d.call(this,a,b,c,d)}
+function p5d(a,b,c,d){i5d.call(this,a,b,c,d)}
+function v5d(a,b,c,d){i5d.call(this,a,b,c,d)}
+function t5d(a,b,c,d){p5d.call(this,a,b,c,d)}
+function A5d(a,b,c,d){p5d.call(this,a,b,c,d)}
+function y5d(a,b,c,d){v5d.call(this,a,b,c,d)}
+function D5d(a,b,c,d){A5d.call(this,a,b,c,d)}
+function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)}
+function Vp(a,b,c){this.a=a;qc.call(this,b,c)}
+function tk(a,b,c){this.c=b;this.b=c;this.a=a}
+function ik(a,b,c){return a.d=BD(b.Kb(c),164)}
+function j6d(a,b){return a.Aj().Nh().Kh(a,b)}
+function h6d(a,b){return a.Aj().Nh().Ih(a,b)}
+function Fdb(a,b){return uCb(a),PD(a)===PD(b)}
+function dfb(a,b){return uCb(a),PD(a)===PD(b)}
+function Dxb(a,b){return Vd(Cwb(a.a,b,false))}
+function Exb(a,b){return Vd(Dwb(a.a,b,false))}
+function vBb(a,b){return a.b.sd(new yBb(a,b))}
+function BBb(a,b){return a.b.sd(new EBb(a,b))}
+function HBb(a,b){return a.b.sd(new KBb(a,b))}
+function lfb(a,b,c){return a.lastIndexOf(b,c)}
+function uTb(a,b,c){return Kdb(a[b.b],a[c.b])}
+function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)}
+function fmc(a,b){return beb(b.a.d.p,a.a.d.p)}
+function emc(a,b){return beb(a.a.d.p,b.a.d.p)}
+function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)}
+function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)}
+function Vxd(a){return a<100?null:new Ixd(a)}
+function ecd(a){return a==Zbd||a==_bd||a==$bd}
+function zAd(a,b){return JD(b,15)&&Btd(a.c,b)}
+function vyb(a,b){if(lyb){return}!!b&&(a.d=b)}
+function ujb(a,b){var c;c=b;return !!Awb(a,c)}
+function czd(a,b){this.c=a;Pyd.call(this,a,b)}
+function fBb(a){this.c=a;nvb.call(this,rie,0)}
+function Avb(a,b){Bvb.call(this,a,a.length,b)}
+function aId(a,b,c){return BD(a.c,69).lk(b,c)}
+function bId(a,b,c){return BD(a.c,69).mk(b,c)}
+function O2d(a,b,c){return N2d(a,BD(b,332),c)}
+function Q2d(a,b,c){return P2d(a,BD(b,332),c)}
+function i3d(a,b,c){return h3d(a,BD(b,332),c)}
+function k3d(a,b,c){return j3d(a,BD(b,332),c)}
+function tn(a,b){return b==null?null:Hv(a.b,b)}
+function Kcb(a){return LD(a)?(uCb(a),a):a.ke()}
+function Ldb(a){return !isNaN(a)&&!isFinite(a)}
+function Wn(a){Ql();this.a=(mmb(),new zob(a))}
+function dIc(a){FHc();this.d=a;this.a=new jkb}
+function xqb(a,b,c){this.a=a;this.b=b;this.c=c}
+function Nrb(a,b,c){this.a=a;this.b=b;this.c=c}
+function $sb(a,b,c){this.d=a;this.b=c;this.a=b}
+function Qsb(a){Csb(this);Osb(this);ye(this,a)}
+function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())}
+function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null}
+function iyb(a){this.a=a;Zfb();Cbb(Date.now())}
+function JCb(){JCb=ccb;GCb=new nb;ICb=new nb}
+function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb}
+function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)}
+function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)}
+function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)}
+function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))}
+function pxb(a){lxb();return es((zxb(),yxb),a)}
+function Hyb(a){Fyb();return es((Kyb(),Jyb),a)}
+function OEb(a){MEb();return es((REb(),QEb),a)}
+function WEb(a){UEb();return es((ZEb(),YEb),a)}
+function tFb(a){rFb();return es((wFb(),vFb),a)}
+function iHb(a){gHb();return es((lHb(),kHb),a)}
+function PHb(a){NHb();return es((SHb(),RHb),a)}
+function GIb(a){EIb();return es((JIb(),IIb),a)}
+function vJb(a){qJb();return es((yJb(),xJb),a)}
+function xLb(a){vLb();return es((ALb(),zLb),a)}
+function TMb(a){RMb();return es((WMb(),VMb),a)}
+function TOb(a){ROb();return es((WOb(),VOb),a)}
+function ePb(a){cPb();return es((hPb(),gPb),a)}
+function ZRb(a){XRb();return es((aSb(),_Rb),a)}
+function ATb(a){yTb();return es((DTb(),CTb),a)}
+function sUb(a){qUb();return es((vUb(),uUb),a)}
+function rWb(a){lWb();return es((uWb(),tWb),a)}
+function TXb(a){RXb();return es((WXb(),VXb),a)}
+function Mb(a,b){if(!a){throw vbb(new Wdb(b))}}
+function l0b(a){j0b();return es((o0b(),n0b),a)}
+function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)}
+function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)}
+function mKb(a,b,c){this.b=a;this.c=b;this.a=c}
+function BZb(a,b,c){this.b=a;this.a=b;this.c=c}
+function TNb(a,b,c){this.a=a;this.b=b;this.c=c}
+function uOb(a,b,c){this.a=a;this.b=b;this.c=c}
+function S3b(a,b,c){this.a=a;this.b=b;this.c=c}
+function Z6b(a,b,c){this.a=a;this.b=b;this.c=c}
+function n9b(a,b,c){this.b=a;this.a=b;this.c=c}
+function x$b(a,b,c){this.e=b;this.b=a;this.d=c}
+function $Ab(a,b,c){EAb();a.a.Od(b,c);return b}
+function LGb(a){var b;b=new KGb;b.e=a;return b}
+function iLb(a){var b;b=new fLb;b.b=a;return b}
+function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b}
+function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc}
+function jbc(a){gbc();return es((mbc(),lbc),a)}
+function Cjc(a){Ajc();return es((Fjc(),Ejc),a)}
+function Clc(a){Alc();return es((Flc(),Elc),a)}
+function Cpc(a){Apc();return es((Fpc(),Epc),a)}
+function Kpc(a){Ipc();return es((Npc(),Mpc),a)}
+function Wpc(a){Rpc();return es((Zpc(),Ypc),a)}
+function $jc(a){Xjc();return es((bkc(),akc),a)}
+function Hkc(a){Fkc();return es((Kkc(),Jkc),a)}
+function dqc(a){bqc();return es((gqc(),fqc),a)}
+function rqc(a){mqc();return es((uqc(),tqc),a)}
+function zqc(a){xqc();return es((Cqc(),Bqc),a)}
+function Iqc(a){Gqc();return es((Lqc(),Kqc),a)}
+function Vqc(a){Sqc();return es((Yqc(),Xqc),a)}
+function brc(a){_qc();return es((erc(),drc),a)}
+function nrc(a){lrc();return es((qrc(),prc),a)}
+function Arc(a){yrc();return es((Drc(),Crc),a)}
+function Qrc(a){Orc();return es((Trc(),Src),a)}
+function Zrc(a){Xrc();return es((asc(),_rc),a)}
+function gsc(a){esc();return es((jsc(),isc),a)}
+function osc(a){msc();return es((rsc(),qsc),a)}
+function Etc(a){Ctc();return es((Htc(),Gtc),a)}
+function qzc(a){lzc();return es((tzc(),szc),a)}
+function Azc(a){xzc();return es((Dzc(),Czc),a)}
+function Mzc(a){Izc();return es((Pzc(),Ozc),a)}
+function MAc(a){KAc();return es((PAc(),OAc),a)}
+function mAc(a){kAc();return es((pAc(),oAc),a)}
+function vAc(a){tAc();return es((yAc(),xAc),a)}
+function DAc(a){BAc();return es((GAc(),FAc),a)}
+function VAc(a){TAc();return es((YAc(),XAc),a)}
+function $zc(a){Vzc();return es((bAc(),aAc),a)}
+function bBc(a){_Ac();return es((eBc(),dBc),a)}
+function vBc(a){tBc();return es((yBc(),xBc),a)}
+function EBc(a){CBc();return es((HBc(),GBc),a)}
+function NBc(a){LBc();return es((QBc(),PBc),a)}
+function tGc(a){rGc();return es((wGc(),vGc),a)}
+function WIc(a){UIc();return es((ZIc(),YIc),a)}
+function $Lc(a){YLc();return es((bMc(),aMc),a)}
+function gMc(a){eMc();return es((jMc(),iMc),a)}
+function JOc(a){HOc();return es((MOc(),LOc),a)}
+function HQc(a){FQc();return es((KQc(),JQc),a)}
+function DRc(a){yRc();return es((GRc(),FRc),a)}
+function tSc(a){qSc();return es((wSc(),vSc),a)}
+function UTc(a){STc();return es((XTc(),WTc),a)}
+function UUc(a){PUc();return es((XUc(),WUc),a)}
+function aUc(a){$Tc();return es((dUc(),cUc),a)}
+function wVc(a){tVc();return es((zVc(),yVc),a)}
+function iWc(a){fWc();return es((lWc(),kWc),a)}
+function sWc(a){pWc();return es((vWc(),uWc),a)}
+function lXc(a){iXc();return es((oXc(),nXc),a)}
+function vXc(a){sXc();return es((yXc(),xXc),a)}
+function BYc(a){zYc();return es((EYc(),DYc),a)}
+function m$c(a){k$c();return es((p$c(),o$c),a)}
+function $$c(a){Y$c();return es((b_c(),a_c),a)}
+function n_c(a){i_c();return es((q_c(),p_c),a)}
+function w_c(a){s_c();return es((z_c(),y_c),a)}
+function E_c(a){C_c();return es((H_c(),G_c),a)}
+function P_c(a){N_c();return es((S_c(),R_c),a)}
+function W0c(a){R0c();return es((Z0c(),Y0c),a)}
+function f1c(a){a1c();return es((i1c(),h1c),a)}
+function P5c(a){N5c();return es((S5c(),R5c),a)}
+function b6c(a){_5c();return es((e6c(),d6c),a)}
+function H7c(a){F7c();return es((K7c(),J7c),a)}
+function k8c(a){i8c();return es((n8c(),m8c),a)}
+function V8b(a){S8b();return es((Y8b(),X8b),a)}
+function A5b(a){y5b();return es((D5b(),C5b),a)}
+function jad(a){ead();return es((mad(),lad),a)}
+function sad(a){qad();return es((vad(),uad),a)}
+function Cad(a){Aad();return es((Fad(),Ead),a)}
+function Oad(a){Mad();return es((Rad(),Qad),a)}
+function jbd(a){hbd();return es((mbd(),lbd),a)}
+function ubd(a){rbd();return es((xbd(),wbd),a)}
+function Kbd(a){Hbd();return es((Nbd(),Mbd),a)}
+function Vbd(a){Tbd();return es((Ybd(),Xbd),a)}
+function hcd(a){dcd();return es((kcd(),jcd),a)}
+function vcd(a){rcd();return es((ycd(),xcd),a)}
+function vdd(a){tdd();return es((ydd(),xdd),a)}
+function Kdd(a){Idd();return es((Ndd(),Mdd),a)}
+function $cd(a){Ucd();return es((cdd(),bdd),a)}
+function Fed(a){Ded();return es((Ied(),Hed),a)}
+function rgd(a){pgd();return es((ugd(),tgd),a)}
+function Esd(a){Csd();return es((Hsd(),Gsd),a)}
+function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)}
+function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)}
+function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)}
+function bPc(a,b){this.c=a;this.a=b;this.b=b-a}
+function nYc(a,b,c){this.a=a;this.b=b;this.c=c}
+function L1c(a,b,c){this.a=a;this.b=b;this.c=c}
+function T1c(a,b,c){this.a=a;this.b=b;this.c=c}
+function Rrd(a,b,c){this.a=a;this.b=b;this.c=c}
+function zCd(a,b,c){this.a=a;this.b=b;this.c=c}
+function IVd(a,b,c){this.e=a;this.a=b;this.c=c}
+function kWd(a,b,c){UVd();cWd.call(this,a,b,c)}
+function HXd(a,b,c){UVd();oXd.call(this,a,b,c)}
+function TXd(a,b,c){UVd();oXd.call(this,a,b,c)}
+function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)}
+function JXd(a,b,c){UVd();HXd.call(this,a,b,c)}
+function LXd(a,b,c){UVd();HXd.call(this,a,b,c)}
+function NXd(a,b,c){UVd();LXd.call(this,a,b,c)}
+function VXd(a,b,c){UVd();TXd.call(this,a,b,c)}
+function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)}
+function $j(a,b){Qb(a);Qb(b);return new _j(a,b)}
+function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)}
+function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)}
+function lr(a,b){Qb(a);Qb(b);return new zr(a,b)}
+function BD(a,b){CCb(a==null||AD(a,b));return a}
+function Nu(a){var b;b=new Rkb;fr(b,a);return b}
+function Ex(a){var b;b=new Tqb;fr(b,a);return b}
+function Hx(a){var b;b=new Gxb;Jq(b,a);return b}
+function Ru(a){var b;b=new Psb;Jq(b,a);return b}
+function YEc(a){!a.e&&(a.e=new Rkb);return a.e}
+function SMd(a){!a.c&&(a.c=new xYd);return a.c}
+function Ekb(a,b){a.c[a.c.length]=b;return true}
+function WA(a,b){this.c=a;this.b=b;this.a=false}
+function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)}
+function pzb(){this.a=';,;';this.b='';this.c=''}
+function Bvb(a,b,c){qvb.call(this,b,c);this.a=a}
+function fAb(a,b,c){this.b=a;fvb.call(this,b,c)}
+function lsb(a,b,c){this.c=a;pjb.call(this,b,c)}
+function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)}
+function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e}
+function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}}
+function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e}
+function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b}
+function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c}
+function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))}
+function rlc(a,b){return beb(D0b(a.d),D0b(b.d))}
+function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d}
+function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd}
+function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))}
+function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)}
+function C6c(a){return new f7c(a.c+a.b,a.d+a.a)}
+function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)}
+function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)}
+function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)}
+function rCb(a,b){if(!a){throw vbb(new ucb(b))}}
+function mCb(a,b){if(!a){throw vbb(new Wdb(b))}}
+function dWb(a,b,c){cWb.call(this,a,b);this.b=c}
+function pMd(a,b,c){MLd.call(this,a,b);this.c=c}
+function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a}
+function _Gd(a){$Gd();MGd.call(this);this.th(a)}
+function PNd(a,b,c){this.a=a;nNd.call(this,b,c)}
+function UNd(a,b,c){this.a=a;nNd.call(this,b,c)}
+function k2d(a,b,c){MLd.call(this,a,b);this.c=c}
+function y1d(){T0d();z1d.call(this,(yFd(),xFd))}
+function gFd(a){return a!=null&&!OEd(a,CEd,DEd)}
+function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje}
+function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)}
+function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}}
+function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)}
+function WUd(a,b){var c;c=a.c;VUd(a,b);return c}
+function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a}
+function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a}
+function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e}
+function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true}
+function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}
+function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()}
+function Wq(a,b){this.b=a;this.a=b;ol.call(this)}
+function ar(a,b){this.a=a;this.b=b;ol.call(this)}
+function vvb(a,b){qvb.call(this,b,1040);this.a=a}
+function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1}
+function WPb(a){QPb();return jtd(a)==Xod(ltd(a))}
+function XPb(a){QPb();return ltd(a)==Xod(jtd(a))}
+function iYb(a,b){return hYb(a,new cWb(b.a,b.b))}
+function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c}
+function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a}
+function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a}
+function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c}
+function zfe(a){wfe();++vfe;return new ige(0,a)}
+function o_b(a){if(a.a){return a.a}return JZb(a)}
+function CCb(a){if(!a){throw vbb(new Cdb(null))}}
+function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))}
+function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))}
+function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)}
+function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)}
+function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}
+function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}
+function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))}
+function Bic(a,b){return a.c=b){throw vbb(new rcb)}}
+function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b}
+function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)}
+function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)}
+function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)}
+function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)}
+function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b}
+function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b}
+function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie}
+function gub(a){this.b=new Skb(11);this.a=(ipb(),a)}
+function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)}
+function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)}
+function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)}
+function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)}
+function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)}
+function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)}
+function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)}
+function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)}
+function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d}
+function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d}
+function x0d(a){Wud.call(this,a,false);this.a=false}
+function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b}
+function px(a,b){im();ox.call(this,a,Dm(new amb(b)))}
+function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)}
+function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)}
+function nfb(a,b){return dfb(a.substr(0,b.length),b)}
+function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)}
+function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}}
+function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c}
+function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d}
+function xJc(a){var b;b=a;while(b.f){b=b.f}return b}
+function fkb(a){var b;b=bkb(a);sCb(b!=null);return b}
+function gkb(a){var b;b=ckb(a);sCb(b!=null);return b}
+function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b}
+function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100}
+function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0}
+function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))}
+function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()}
+function Olb(a,b){return avb(b,a.length),new vvb(a,b)}
+function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b}
+function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie}
+function rge(a,b){xfe.call(this,1);this.a=a;this.b=b}
+function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a}
+function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d}
+function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)}
+function Flb(a,b,c){var d;for(d=0;d=a.g}
+function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)}
+function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)}
+function gCb(a,b){var c;c=console[a];c.call(console,b)}
+function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))}
+function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))}
+function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c}
+function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c}
+function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c}
+function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)}
+function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd}
+function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e}
+function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)}
+function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1}
+function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)}
+function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)}
+function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}
+function oAb(a){if(0>=a){return new yAb}return pAb(a-1)}
+function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)}
+function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()}
+function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a}
+function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a}
+function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d}
+function uCb(a){if(a==null){throw vbb(new Geb)}return a}
+function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}}
+function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}}
+function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)}
+function qlc(a,b){return beb(b.j.c.length,a.j.c.length)}
+function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)}
+function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c}
+function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e}
+function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e}
+function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f}
+function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k}
+function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j}
+function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j}
+function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b}
+function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c}
+function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c}
+function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))}
+function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)}
+function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)}
+function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)}
+function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d}
+function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d}
+function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b}
+function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)}
+function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)}
+function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)}
+function vfb(a){return String.fromCharCode.apply(null,a)}
+function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)}
+function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()}
+function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))}
+function ix(a,b){ex();return new gx(new il(a),new Uk(b))}
+function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))}
+function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))}
+function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d}
+function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a}
+function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b}
+function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a}
+function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}
+function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d}
+function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c}
+function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c}
+function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null}
+function JZb(a){var b;b=P2b(a);if(b){return b}return null}
+function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b}
+function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())}
+function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}
+function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}
+function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)}
+function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)}
+function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)}
+function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}
+function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}
+function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d}
+function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d}
+function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}
+function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}
+function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))}
+function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)}
+function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)}
+function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)}
+function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)}
+function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}
+function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}
+function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])}
+function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b}
+function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b}
+function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)}
+function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)}
+function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])}
+function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])}
+function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])}
+function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])}
+function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])}
+function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])}
+function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])}
+function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])}
+function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])}
+function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])}
+function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])}
+function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])}
+function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])}
+function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])}
+function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])}
+function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])}
+function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])}
+function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])}
+function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])}
+function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])}
+function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])}
+function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)}
+function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)}
+function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)}
+function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)}
+function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a}
+function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))}
+function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))}
+function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)}
+function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)}
+function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2}
+function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c}
+function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c}
+function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true}
+function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a}
+function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)}
+function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))}
+function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)}
+function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))}
+function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)}
+function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))}
+function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0}
+function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c}
+function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)}
+function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)}
+function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d}
+function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)}
+function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)}
+function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)}
+function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c}
+function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c}
+function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c}
+function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()}
+function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)}
+function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}}
+function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b}
+function ecb(a){function b(){}
+;b.prototype=a||{};return new b}
+function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false}
+function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)}
+function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]}
+function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)}
+function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)}
+function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)}
+function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)}
+function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)}
+function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)}
+function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)}
+function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)}
+function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()}
+function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a}
+function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b}
+function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0}
+function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0}
+function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)}
+function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)}
+function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)}
+function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)}
+function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)}
+function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)}
+function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)}
+function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)}
+function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)}
+function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)}
+function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))}
+function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c}
+function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)}
+function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)}
+function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)}
+function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a}
+function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a}
+function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f}
+function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f}
+function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)}
+function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)}
+function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)}
+function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)}
+function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}
+function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}
+function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)}
+function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))}
+function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}}
+function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null}
+function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false}
+function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))}
+function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}
+function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}
+function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}
+function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}
+function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}
+function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}
+function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}
+function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))}
+function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)}
+function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a}
+function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)}
+function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)}
+function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)}
+function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b}
+function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)}
+function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)}
+function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)}
+function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)}
+function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))}
+function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}
+function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}
+function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c}
+function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()}
+function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)}
+function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}}
+function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b}
+function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b}
+function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)}
+function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))}
+function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}}
+function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}}
+function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b}
+function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)}
+function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))}
+function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])}
+function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])}
+function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])}
+function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])}
+function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])}
+function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])}
+function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])}
+function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])}
+function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])}
+function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])}
+function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])}
+function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])}
+function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])}
+function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])}
+function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])}
+function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])}
+function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])}
+function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])}
+function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])}
+function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])}
+function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])}
+function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])}
+function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])}
+function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])}
+function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])}
+function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])}
+function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])}
+function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}
+function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c}
+function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)}
+function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)}
+function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)}
+function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)}
+function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje}
+function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje}
+function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a}
+function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d}
+function mlb(a){sCb(a.ad?1:0}
+function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a}
+function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)}
+function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)}
+function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))}
+function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))}
+function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))}
+function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))}
+function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)}
+function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)}
+function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)}
+function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))}
+function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))}
+function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)}
+function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)}
+function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)}
+function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)}
+function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d}
+function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b}
+function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a}
+function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null}
+function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true}
+function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}
+function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a}
+function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}}
+function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a}
+function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}}
+function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}
+function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}
+function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}
+function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false}
+function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)}
+function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b}
+function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b}
+function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b}
+function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array}
+function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))}
+function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))}
+function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)}
+function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)}
+function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)}
+function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))}
+function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))}
+function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d}
+function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d}
+function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d}
+function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d}
+function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b}
+function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}}
+function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()}
+function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1}
+function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1}
+function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c}
+function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c}
+function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)}
+function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))}
+function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))}
+function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))}
+function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))}
+function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))}
+function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])}
+function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])}
+function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])}
+function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])}
+function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])}
+function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])}
+function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)}
+function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])}
+function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))}
+function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)}
+function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}
+function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}
+function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)}
+function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()}
+function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null}
+function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0}
+function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c}
+function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)}
+function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)}
+function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b}
+function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)}
+function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24}
+function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24}
+function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16}
+function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16}
+function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)}
+function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a}
+function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))}
+function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))}
+function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}
+function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}
+function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}
+function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32}
+function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)}
+function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)}
+function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b}
+function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a}
+function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c}
+function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)}
+function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)}
+function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)}
+function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)}
+function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}}
+function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b}
+function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}}
+function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n}
+function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0}
+function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0}
+function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb}
+function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b}
+function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))}
+function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))}
+function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))}
+function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))}
+function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))}
+function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))}
+function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))}
+function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))}
+function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))}
+function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))}
+function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))}
+function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))}
+function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))}
+function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))}
+function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))}
+function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))}
+function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))}
+function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))}
+function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))}
+function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))}
+function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))}
+function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))}
+function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))}
+function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)}
+function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}
+function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}
+function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d}
+function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d}
+function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a}
+function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}}
+function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))}
+function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b}
+function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d}
+function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)}
+function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)}
+function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)}
+function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])}
+function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])}
+function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}}
+function sz(){if(Date.now){return Date.now()}return (new Date).getTime()}
+function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i}
+function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()}
+function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g}
+function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)}
+function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)}
+function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)}
+function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c}
+function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb}
+function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false}
+function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false}
+function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c}
+function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)}
+function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}
+function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}
+function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t}
+function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])}
+function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])}
+function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])}
+function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])}
+function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])}
+function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])}
+function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])}
+function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])}
+function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])}
+function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)}
+function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c}
+function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false}
+function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)}
+function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)}
+function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)}
+function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}}
+function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b}
+function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b}
+function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)}
+function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a}
+function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e}
+function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)}
+function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))}
+function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)}
+function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)}
+function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb}
+function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb}
+function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)}
+function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}
+function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}
+function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}
+function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)}
+function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb}
+function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')}
+function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))}
+function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)}
+function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)}
+function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)}
+function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)}
+function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()}
+function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a}
+function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null}
+function ODc(a,b){if(a.pb.p){return -1}return 0}
+function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')}
+function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))}
+function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))}
+function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))}
+function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))}
+function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))}
+function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))}
+function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))}
+function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))}
+function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))}
+function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))}
+function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))}
+function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))}
+function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))}
+function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))}
+function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))}
+function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))}
+function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))}
+function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))}
+function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))}
+function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))}
+function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))}
+function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))}
+function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))}
+function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))}
+function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))}
+function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))}
+function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))}
+function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])}
+function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)}
+function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d}
+function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a}
+function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b}
+function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c}
+function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)}
+function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))}
+function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)}
+function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)}
+function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)}
+function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b}
+function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true}
+function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)}
+function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)}
+function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)}
+function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)}
+function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)}
+function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0}
+function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}}
+function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]}
+function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}
+function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)}
+function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c}
+function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c}
+function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)}
+function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)}
+function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}
+function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}
+function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)}
+function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b}
+function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)}
+function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)}
+function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb}
+function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))}
+function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))}
+function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))}
+function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))}
+function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))}
+function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))}
+function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))}
+function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))}
+function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))}
+function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))}
+function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))}
+function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))}
+function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))}
+function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))}
+function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))}
+function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)}
+function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)}
+function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}
+function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}
+function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a}
+function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true}
+function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null}
+function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))}
+function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)}
+function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)}
+function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}
+function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}
+function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}
+function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}
+function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)}
+function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}
+function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}
+function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)}
+function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d}
+function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}}
+function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e}
+function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c}
+function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null}
+function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)}
+function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)}
+function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)}
+function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}}
+function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije}
+function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}
+function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b}
+function uA(a,b){while(b[0]=0){++b[0]}}
+function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))}
+function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d}
+function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d}
+function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c}
+function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)}
+function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}}
+function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb}
+function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)}
+function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)}
+function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)}
+function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))}
+function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))}
+function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))}
+function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))}
+function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))}
+function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))}
+function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))}
+function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))}
+function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))}
+function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))}
+function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))}
+function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c}
+function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false}
+function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false}
+function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false}
+function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)}
+function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a}
+function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()}
+function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)}
+function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)}
+function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)}
+function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))}
+function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)}
+function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a}
+function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b}
+function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e}
+function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)}
+function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)}
+function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}}
+function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b}
+function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null}
+function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)}
+function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)}
+function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}}
+function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b}
+function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))}
+function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))}
+function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))}
+function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c}
+function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false}
+function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a}
+function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}}
+function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}}
+function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])}
+function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)}
+function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a}
+function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d}
+function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)}
+function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()}
+function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}
+function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}
+function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)}
+function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}
+function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))}
+function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))}
+function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))}
+function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))}
+function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))}
+function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))}
+function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))}
+function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))}
+function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))}
+function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))}
+function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))}
+function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])}
+function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))}
+function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))}
+function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))}
+function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))}
+function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))}
+function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))}
+function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))}
+function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))}
+function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))}
+function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))}
+function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))}
+function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))}
+function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))}
+function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))}
+function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)}
+function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null}
+function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c}
+function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}
+function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a}
+function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g}
+function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c}
+function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c}
+function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c}
+function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c}
+function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c}
+function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1}
+function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e}
+function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a}
+function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c}
+function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)}
+function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)}
+function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)}
+function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)}
+function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}}
+function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a}
+function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a}
+function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null}
+function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))}
+function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))}
+function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))}
+function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))}
+function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}
+function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}
+function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}
+function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}
+function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))}
+function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))}
+function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))}
+function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}}
+function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)}
+function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)}
+function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}
+function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))}
+function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)}
+function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)}
+function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b}
+function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)}
+function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}}
+function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d}
+function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}}
+function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))}
+function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))}
+function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))}
+function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))}
+function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)}
+function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}}
+function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))}
+function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}}
+function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true}
+function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e}
+function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e}
+function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b}
+function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}}
+function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}}
+function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)}
+function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)}
+function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)}
+function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)}
+function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)}
+function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}}
+function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)}
+function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)}
+function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}
+function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}
+function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)}
+function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b}
+function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}}
+function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false}
+function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()}
+function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true}
+function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a}
+function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)}
+function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)}
+function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0}
+function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))}
+function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)}
+function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a}
+function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a}
+function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c}
+function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c}
+function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}}
+function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}}
+function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b}
+function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c}
+function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d}
+function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}}
+function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c}
+function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d}
+function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f}
+function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}
+function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}
+function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3}
+function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b}
+function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0}
+function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}}
+function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}}
+function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)}
+function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))}
+function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e}
+function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1}
+function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}}
+function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c}
+function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c}
+function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false}
+function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false}
+function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g}
+function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false}
+function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false}
+function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]}
+function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b}
+function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)}
+function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a}
+function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}}
+function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}}
+function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)}
+function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)}
+function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)}
+function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)}
+function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)}
+function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)}
+function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)}
+function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c}
+function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)}
+function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d}
+function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null}
+function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))}
+function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)}
+function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d}
+function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}}
+function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}}
+function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}}
+function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe}
+function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()}
+function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()}
+function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)}
+function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))}
+function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''}
+function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)}
+function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)}
+function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)}
+function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))}
+function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b}
+function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}}
+function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()}
+function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)}
+function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d}
+function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c}
+function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d}
+function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)}
+function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)}
+function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f}
+function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b}
+function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}}
+function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false}
+function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}
+function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}
+function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))}
+function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))}
+function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a}
+function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b}
+function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a}
+function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c}
+function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c}
+function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d}
+function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}
+function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}
+function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c}
+function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d}
+function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()}
+function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a}
+function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}}
+function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}}
+function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0}
+function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a}
+function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c}
+function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))}
+function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}
+function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}
+function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))}
+function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))}
+function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)}
+function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)}
+function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)}
+function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false}
+function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null}
+function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null}
+function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false}
+function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)}
+function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null}
+function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))}
+function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1}
+function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)}
+function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}}
+function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}}
+function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))}
+function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))}
+function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))}
+function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))}
+function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)}
+function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null}
+function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null}
+function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)}
+function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c}
+function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}}
+function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}}
+function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a}
+function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d}
+function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f}
+function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c}
+function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null}
+function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c}
+function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1}
+function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke}
+function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b}
+function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63}
+function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)}
+function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e}
+function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)}
+function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a}
+function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e}
+function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))}
+function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)}
+function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)}
+function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)}
+function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)}
+function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)}
+function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))}
+function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)}
+function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}}
+function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}}
+function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}}
+function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}
+function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}
+function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)}
+function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)}
+function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c}
+function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)}
+function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()}
+function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)}
+function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)}
+function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()}
+function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d}
+function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)}
+function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))}
+function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}}
+function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false}
+function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}}
+function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)}
+function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}
+function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}}
+function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}}
+function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}
+function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb}
+function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b}
+function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true}
+function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false}
+function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}}
+function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1}
+function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)}
+function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d}
+function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}
+function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}
+function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b}
+function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c}
+function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}
+function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}
+function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b}
+function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b}
+function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d}
+function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false}
+function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}}
+function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null}
+function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))}
+function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f}
+function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}}
+function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e}
+function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e}
+function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e}
+function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g}
+function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))}
+function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false}
+function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true}
+function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false}
+function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error}
+function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0}
+function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0}
+function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0}
+function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d}
+function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null}
+function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}}
+function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))}
+function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}
+function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)}
+function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}}
+function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)}
+function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())}
+function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)}
+function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}
+function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}
+function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null}
+function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c}
+function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}}
+function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}}
+function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}}
+function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}}
+function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}}
+function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)}
+function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))}
+function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))}
+function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)}
+function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)}
+function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}}
+function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b}
+function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b}
+function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}}
+function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b}
+function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)}
+function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])}
+function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))}
+function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))}
+function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)}
+function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)}
+function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1}
+function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad}
+function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}}
+function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e}
+function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d}
+function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))}
+function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)}
+function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}}
+function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b}
+function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}
+function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}
+function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb}
+function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}}
+function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}}
+function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}}
+function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}}
+function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)}
+function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}}
+function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}}
+function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true}
+function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true}
+function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)}
+function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false}
+function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false}
+function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a}
+function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)}
+function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)}
+function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}}
+function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}}
+function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}}
+function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e}
+function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)}
+function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}}
+function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)}
+function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b}
+function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)}
+function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}}
+function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}
+function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}
+function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}
+function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f}
+function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f}
+function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i}
+function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b}
+function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}}
+function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null}
+function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0}
+function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a}
+function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)}
+function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)}
+function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}}
+function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false}
+function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}
+function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}
+function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10}
+function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}}
+function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()}
+function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}
+function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}
+function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)}
+function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}}
+function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e}
+function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b}
+function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}}
+function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f}
+function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d}
+function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}
+function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}
+function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}
+function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}}
+function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}}
+function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)}
+function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e}
+function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e}
+function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []}
+function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28}
+function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d}
+function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b}
+function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))}
+function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))}
+function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e}
+function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b}
+function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}}
+function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)}
+function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true}
+function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true}
+function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0}
+function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}}
+function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d}
+function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c}
+function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)}
+function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb}
+function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)}
+function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb}
+function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false}
+function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}}
+function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}}
+function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}}
+function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0}
+function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}}
+function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}
+function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r}
+function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d}
+function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f}
+function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))}
+function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}}
+function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e}
+function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}}
+function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a}
+function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd}
+function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d}
+function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd}
+function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c}
+function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie}
+function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}
+function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}
+function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}
+function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)}
+function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)}
+function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}}
+function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null}
+function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a}
+function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}}
+function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}}
+function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d}
+function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}}
+function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)}
+function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d}
+function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}
+function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)}
+function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)}
+function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)}
+function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}}
+function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)}
+function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}}
+function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c}
+function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}
+function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))}
+function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}
+function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}
+function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0}
+function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}}
+function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}}
+function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false}
+function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c}
+function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b}
+function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f}
+function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))}
+function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)}
+function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)}
+function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss}
+function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)}
+function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b}
+function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))}
+function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b}
+function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)}
+function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d}
+function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}}
+function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false}
+function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}}
+function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)}
+function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f}
+function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e}
+function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0}
+function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a