{"version":3,"names":["CombinedMarker","IMarker","LayerMarker","Marker","AEGutter","__SystemJSRewritingHack","undoSelection","editor","history","getHistory","done","last","ranges","faIcon","name","modifiers","map","m","join","navigationMenuItem","location","fileURL","additionalText","line","start","description","path","file","inThisFile","includes","onSelect","ch","column","end","setSelection","substring","lastIndexOf","openLocationInBrowser","onDeselect","_export","setters","_reactiveJsx","_childElement","childElement","_attributeStringLiteral","attributeStringLiteral","_childExpression","childExpression","_childText","childText","_children","children","_attributeExpression","attributeExpression","_attributes","attributes","_element","element","_srcClientReactiveComponentsBasicAexprDebuggingUtilsJs","navigateToTimeline","navigateToGraph","_srcClientReactiveActiveExpressionAeDebuggingCacheJs","DebuggingCache","_srcClientReactiveActiveExpressionAeRegistryJs","AExprRegistry","_srcClientContextmenuJs","ContextMenu","default","_srcClientDependencyGraphGraphJs","DependencyGraph","_utils","loc","range","pluralize","execute","_recorder_","_src_client_reactive_components_basic_AEGutter_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","constructor","markers","draw","doc","setGutterMarker","drawIcon","combineWith","marker","callback","evt","markerBounds","target","getBoundingClientRect","drawActionList","some","hasError","menuItems","push","type","menu","openIn","document","body","clientX","left","clientY","bottom","undefined","addEventListener","focus","getIcon","layeredFunction","reverse","forEach","layer","dependencies","isAE","entries","ae","errorEvents","isEmpty","keys","next","value","getType","size","aes","accumulateData","accumulatedItems","generateInstanceSubmenu","length","instanceItems","getSymbol","getTypeShort","generateAccumulateSubmenu","cErrorEvents","cDependencies","sorted","sort","aDep","bDep","a","b","accumulated","dep","_","isEqual","shallowClone","assign","events","lastDep","source","submenuItems","timeline","filterToAEs","instanceErrors","errorEvent","error","showEvents","onClick","ilaSubMenuItems","isILA","getLayer","pl","partialLayers","fn","values","layeredProperties","union","iterables","Set","iterable","item","add","validCallback","showAExprDependencyGutter","registerFileForAEDebugging","aeData","allDependenciesByLine","then","depToAE","AEToDep","clearGutter","markerMap","Map","showAExprDependencyGutterMarkers","showLayeredMethods","ILAs","allAsArray","filter","layeredMethods","getOrCreate","layeredMethod","method","lively","warn","showLayeredMethod","addMarker","valid","id","gutters","getOption","setOption","hideAExprDependencyGutter","dependencyMap","aExprs","drawAExprGutter","depsMapInFile","handleDepAEPairing","AELocation","AELine","allEvents","dependencyLoc","dependencySource","dependencyLine","dependencyFile","relatedEvents","event","triggers","relatedValueChangedEvents","relatedErrorEvents","depsAndHooks","meta","hook","dependency","locations","getLocations","identifier","newMarker","has"],"sources":["AEGutter.js"],"sourcesContent":["import { openLocationInBrowser, navigateToTimeline, navigateToGraph } from 'src/client/reactive/components/basic/aexpr-debugging-utils.js';\nimport { DebuggingCache } from 'src/client/reactive/active-expression/ae-debugging-cache.js';\nimport { AExprRegistry } from 'src/client/reactive/active-expression/ae-registry.js';\nimport ContextMenu from 'src/client/contextmenu.js';\nimport { DependencyGraph } from 'src/client/dependency-graph/graph.js';\nimport { loc, range, pluralize } from 'utils';\n\nfunction undoSelection(editor) {\n  const history = editor.getHistory();\n  if (history.done.last.ranges) {\n    editor.undoSelection();\n  }\n}\nfunction faIcon(name, ...modifiers) {\n  return `<i class=\"fa fa-${name} ${modifiers.map(m => 'fa-' + m).join(' ')}\"></i>`;\n}\n\nfunction navigationMenuItem(location, editor, fileURL, name = \"\", additionalText = \"\") {\n  const line = location.start.line;\n  let description = `${line}: ${name}`;\n  let path = location.file;\n  const inThisFile = !path || path.includes(fileURL);\n\n  let onSelect = () => {};\n\n  if (inThisFile) {\n    description = 'line ' + description;\n\n    onSelect = () => {\n      const start = { line: location.start.line - 1, ch: location.start.column };\n      const end = { line: location.end.line - 1, ch: location.end.column };\n      editor.setSelection(start, end);\n    };\n  } else {\n    description = path.substring(path.lastIndexOf(\"/\") + 1) + \":\" + description;\n  }\n\n  return [description, () => {\n    openLocationInBrowser(location);\n  }, additionalText, faIcon(inThisFile ? 'location-arrow' : 'file-code-o'), { onSelect, onDeselect: () => {\n      if (inThisFile) {\n        undoSelection(editor);\n      }\n    } }];\n}\n\nclass CombinedMarker {\n  constructor(line, ...markers) {\n    this.markers = markers;\n    this.line = line;\n  }\n\n  draw(editor) {\n    editor.doc.setGutterMarker(this.line, 'activeExpressionGutter', this.drawIcon(editor));\n  }\n\n  combineWith(marker) {\n    return new CombinedMarker(this.line, ...this.markers);\n  }\n\n  drawIcon(editor) {\n    const callback = async evt => {\n      const markerBounds = evt.target.getBoundingClientRect();\n      this.drawActionList(markerBounds, editor);\n    };\n\n    return <div class={\"activeExpressionGutter-marker-ae\"} click={callback} style={\"color: \" + (this.markers.some(m => m.hasError) ? \"rgba(255,0,0,1)\" : \"rgba(180,40,200,1)\")}>\n      {\"RE\"}\n    </div>;\n  }\n\n  async drawActionList(markerBounds, editor) {\n    const menuItems = [];\n\n    for (const marker of this.markers) {\n      menuItems.push([marker.type(), marker.menuItems(editor)]);\n    }\n\n    const menu = await ContextMenu.openIn(document.body, { clientX: markerBounds.left, clientY: markerBounds.bottom }, undefined, document.body, menuItems);\n    menu.addEventListener(\"DOMNodeRemoved\", () => {\n      editor.focus();\n    });\n  }\n\n}\n\nclass IMarker {\n  constructor(line, fileURL) {\n    this.line = line;\n    this.fileURL = fileURL;\n  }\n\n  type() {\n    return \"Layered Method\";\n  }\n\n  combineWith(marker) {\n    return new CombinedMarker(this.line, this, marker);\n  }\n\n  draw(editor) {\n    editor.doc.setGutterMarker(this.line, 'activeExpressionGutter', this.drawIcon(editor));\n  }\n\n  drawIcon(editor) {\n    const callback = async evt => {\n      const markerBounds = evt.target.getBoundingClientRect();\n      this.drawActionList(markerBounds, editor);\n    };\n\n    return this.getIcon(callback);\n  }\n\n  async drawActionList(markerBounds, editor) {\n    const menuItems = this.menuItems(editor);\n\n    const menu = await ContextMenu.openIn(document.body, { clientX: markerBounds.left, clientY: markerBounds.bottom }, undefined, document.body, menuItems);\n    menu.addEventListener(\"DOMNodeRemoved\", () => {\n      editor.focus();\n    });\n  }\n\n  // Interface\n  getIcon(callback) {}\n  menuItems(editor) {}\n\n}\n\nclass LayerMarker extends IMarker {\n  constructor(line, fileURL, layeredFunction) {\n    super(line, fileURL);\n    this.layeredFunction = layeredFunction;\n  }\n  getIcon(callback) {\n    return <div class=\"activeExpressionGutter-marker-ae\" click={callback}>\n      <i class=\"fa fa-bars\"></i>\n    </div>;\n  }\n  menuItems(editor) {\n    const menuItems = [];\n    \n    [...this.layeredFunction].reverse().forEach(({location, layer}) => {\n      menuItems.push(navigationMenuItem(location, editor, this.fileURL, layer));\n    });\n    \n    return menuItems;\n  }\n}\n\nclass Marker extends IMarker {\n\n  constructor(line, dependencies, isAE, fileURL) {\n    super(line, fileURL);\n    this.dependencies = dependencies;\n    this.isAE = isAE;\n    this.hasError = [...dependencies.entries()].some(([ae, { errorEvents }]) => !errorEvents.isEmpty());\n  }\n\n  type() {\n    return this.isAE ? this.dependencies.keys().next().value.getType() : \"Dependencies\";\n  }\n\n  menuItems(editor) {\n    const menuItems = [];\n\n    if (this.dependencies.size > 1) {\n      const { errorEvents, dependencies, aes } = this.accumulateData();\n      const accumulatedItems = this.generateInstanceSubmenu(errorEvents, dependencies, aes, editor);\n      menuItems.push([\"All\", accumulatedItems, pluralize(dependencies.length, \"dep\")]);\n    }\n\n    this.dependencies.forEach(({ errorEvents, dependencies }, ae) => {\n      const instanceItems = this.generateInstanceSubmenu(errorEvents, dependencies, [ae], editor);\n      menuItems.push([ae.getSymbol() + \" \" + ae.getType(), instanceItems, pluralize(dependencies.length, \"dep\")]);\n    });\n    return menuItems;\n  }\n\n  getIcon(callback) {\n    return <div class={\"activeExpressionGutter-marker\" + (this.isAE ? \"-ae\" : \"-dep\")} click={callback} style={this.hasError ? \"color: rgba(255,0,0,1)\" : \"\"}>\n      {this.isAE ? <b>{this.dependencies.keys().next().value.getTypeShort()}</b> : <i class=\"fa fa-share-alt\"></i>}\n    </div>;\n  }\n\n  generateAccumulateSubmenu(editor) {\n    const { errorEvents, dependencies, aes } = this.accumulateData();\n    return this.generateInstanceSubmenu(errorEvents, dependencies, aes, editor);\n  }\n\n  accumulateData() {\n    const cErrorEvents = [],\n          cDependencies = [],\n          aes = [];\n\n    this.dependencies.forEach(({ errorEvents, dependencies }, ae) => {\n      cErrorEvents.push(...errorEvents);\n      aes.push(ae);\n      cDependencies.push(...dependencies);\n    });\n    const sorted = cDependencies.sort((aDep, bDep) => {\n      const a = aDep.location;\n      const b = bDep.location;\n      if (a.file < b.file) {\n        return -1;\n      } else if (a.file > b.file) {\n        return 1;\n      }\n      if (a.start.line < b.start.line) {\n        return -1;\n      } else if (a.start.line > b.start.line) {\n        return 1;\n      }\n      return a.start.column - b.start.column;\n    });\n    const accumulated = [];\n    sorted.forEach(dep => {\n      //Location might differ due to one object having this file as source and the other not having a source\n      if (accumulated.length === 0 || !_.isEqual(accumulated[accumulated.length - 1].location.start, dep.location.start)) {\n        const shallowClone = Object.assign({}, dep);\n        shallowClone.events = [...shallowClone.events];\n        accumulated.push(shallowClone);\n      } else {\n        const lastDep = accumulated[accumulated.length - 1];\n        lastDep.events.push(...dep.events);\n        if (dep.source && lastDep.source && dep.source.length > lastDep.source.length) {\n          lastDep.source = dep.source;\n        }\n        if (dep.location.end.column > lastDep.location.end.column) {\n          lastDep.location.end = dep.location.end;\n        }\n      }\n    });\n    return { errorEvents: cErrorEvents, dependencies: accumulated, aes };\n  }\n\n  generateInstanceSubmenu(errorEvents, dependencies, aes, editor) {\n    const submenuItems = [];\n\n    // Other views\n    submenuItems.push([\"open timeline\", () => {\n      navigateToTimeline(timeline => timeline.filterToAEs(aes));\n    }, \"\", \"l\"]);\n    submenuItems.push([\"open graph\", () => {\n      navigateToGraph(aes);\n    }, \"\", \"l\"]);\n\n    // Errors\n    let instanceErrors = [];\n    for (const errorEvent of errorEvents) {\n      instanceErrors.push([errorEvent.value.error.name, () => {\n        navigateToTimeline(timeline => timeline.showEvents([errorEvent]));\n      }, \"\", \"o\"]);\n    }\n    if (!instanceErrors.isEmpty()) {\n      submenuItems.push([\"errors\", instanceErrors, \"\", \"l\", { onClick: () => {\n          navigateToTimeline(timeline => timeline.showEvents(errorEvents));\n        } }]);\n    }\n\n    // Navigation\n    dependencies.forEach(dep => {\n      submenuItems.push(navigationMenuItem(dep.location, editor, this.fileURL, dep.source, pluralize(dep.events.length, \"event\")));\n    });\n    // Layers\n    if (this.isAE) {\n      const ilaSubMenuItems = [];\n      for (const ae of aes) {\n        if (ae.isILA()) {\n          const layer = ae.getLayer();\n          for (const pl of layer.partialLayers()) {\n            for (const fn of Object.values(pl.layeredProperties)) {\n              ilaSubMenuItems.push(navigationMenuItem(fn.location, editor, this.fileURL, fn.name));\n            }\n          }\n        }\n      }\n      if (ilaSubMenuItems.length > 0) {\n        submenuItems.push([\"Layered Functions\", ilaSubMenuItems, pluralize(ilaSubMenuItems.length, \"fn\")]);\n      }\n    }\n    return submenuItems;\n  }\n\n  union(...iterables) {\n    const set = new Set();\n\n    for (const iterable of iterables) {\n      for (const item of iterable) {\n        set.add(item);\n      }\n    }\n\n    return set;\n  }\n}\n\nexport default class AEGutter {\n  constructor(editor, fileURL, validCallback) {\n    this.fileURL = fileURL;\n    this.editor = editor;\n    this.validCallback = validCallback;\n\n    this.showAExprDependencyGutter();\n\n    DebuggingCache.registerFileForAEDebugging(this.fileURL, this, aeData => {     \n      this.allDependenciesByLine(aeData).then(async ([depToAE, AEToDep]) => {\n        this.editor.doc.clearGutter('activeExpressionGutter');\n\n        this.markerMap = new Map();\n\n        await this.showAExprDependencyGutterMarkers(depToAE, false);\n        await this.showAExprDependencyGutterMarkers(AEToDep, true);\n        this.showLayeredMethods();\n        for (const marker of this.markerMap.values()) {\n          marker.draw(this.editor);\n        }\n      });\n    });\n\n  }\n\n  showLayeredMethods() {\n    const ILAs = AExprRegistry.allAsArray().filter(ae => ae.isILA());\n    \n    const layeredMethods = new Map();\n    \n    for(const ae of ILAs) {\n      const layer = ae.getLayer();\n      for (const pl of layer.partialLayers()) {\n        for (const fn of Object.values(pl.layeredProperties)) {\n          layeredMethods.getOrCreate(fn.name, () => []).push({location: fn.location, layer: layer.name});\n        }\n      }\n    }\n    \n    layeredMethods.forEach((layeredMethod) => {\n      for (let method of layeredMethod) {\n        const {location}  = method\n        if (!location) {\n          lively.warn(\"no location for layerMethod \" + method)\n          debugger\n          continue\n        }\n        const path = location.file;\n        if (path.includes(this.fileURL)) {\n          this.showLayeredMethod(layeredMethod, location.start.line - 1);\n        }\n      } \n    })\n  }\n\n  showLayeredMethod(layeredMethod, line) {\n    this.addMarker(line, new LayerMarker(line, this.fileURL, layeredMethod));\n  }\n\n  valid() {\n    return this.validCallback();\n  }\n\n  async showAExprDependencyGutter() {\n    const id = \"activeExpressionGutter\";\n    const editor = await this.editor;\n    let gutters = editor.getOption(\"gutters\");\n    if (!gutters.some(marker => marker === id)) {\n      editor.setOption('gutters', [...gutters, id]);\n    }\n  }\n\n  async hideAExprDependencyGutter() {\n    const id = \"activeExpressionGutter\";\n    const editor = await this.editor;\n    let gutters = editor.getOption(\"gutters\");\n    gutters = gutters.filter(marker => marker !== id);\n    editor.setOption('gutters', gutters);\n  }\n\n  async showAExprDependencyGutterMarkers(dependencyMap, isAE) {\n    await this.editor;\n\n    for (const [line, aExprs] of dependencyMap.entries()) {\n      this.drawAExprGutter(line, aExprs, isAE);\n    }\n  }\n\n  async allDependenciesByLine(depsMapInFile) {\n    const depToAE = new Map();\n    const AEToDep = new Map();\n\n    await this.editor;\n\n    const handleDepAEPairing = (ae, AELocation, AELine, allEvents, dependencyLoc, dependencySource) => {\n      const dependencyLine = dependencyLoc.start.line - 1;\n      const dependencyFile = dependencyLoc.file;\n\n      const relatedEvents = allEvents.filter(event => event.value && event.value.triggers && event.value.triggers.some(({ location }) => dependencyFile.includes(location.file) && location.start.line - 1 === dependencyLine));\n      const relatedValueChangedEvents = relatedEvents.filter(event => event.type === \"changed value\");\n      const relatedErrorEvents = relatedEvents.filter(event => event.type === \"evaluation failed\");\n\n      if (dependencyFile.includes(this.fileURL)) {\n        // Dependency is in this file\n        if (!depToAE.get(dependencyLine)) {\n          depToAE.set(dependencyLine, new Map());\n        }\n        if (!depToAE.get(dependencyLine).get(ae)) {\n          depToAE.get(dependencyLine).set(ae, { errorEvents: [], dependencies: [] });\n        }\n        depToAE.get(dependencyLine).get(ae).errorEvents.push(...relatedErrorEvents);\n        // Group by AE to distinguish between mutltiple AE Objects in the same line?\n        depToAE.get(dependencyLine).get(ae).dependencies.push({ location: AELocation, source: ae.getSymbol /*ae.meta().get(\"sourceCode\")*/(), events: relatedValueChangedEvents });\n      }\n\n      if (AELocation.file.includes(this.fileURL)) {\n        AEToDep.get(AELine).get(ae).dependencies.push({ location: dependencyLoc, source: dependencySource, events: relatedValueChangedEvents });\n      }\n    };\n\n    for (const [ae, depsAndHooks] of depsMapInFile) {\n      const AELocation = ae.meta().get(\"location\");\n      const AELine = AELocation.start.line - 1;\n\n      const allEvents = ae.meta().get(\"events\");\n      const errorEvents = allEvents.filter(event => event.type === \"evaluation failed\");\n\n      if (AELocation.file.includes(this.fileURL)) {\n        // AE is in this file\n        if (!AEToDep.get(AELine)) {\n          AEToDep.set(AELine, new Map());\n        }\n        if (!AEToDep.get(AELine).get(ae)) {\n          AEToDep.get(AELine).set(ae, { errorEvents, dependencies: [] });\n        }\n      }\n      for (const { hook, dependency } of depsAndHooks) {\n        const locations = await hook.getLocations();\n        for (const location of locations) {\n          handleDepAEPairing(ae, AELocation, AELine, allEvents, location, dependency.identifier);\n        }\n      }\n    }\n\n    return [depToAE, AEToDep];\n  }\n\n  drawAExprGutter(line, dependencies, isAE) {\n    const newMarker = new Marker(line, dependencies, isAE, this.fileURL);\n    this.addMarker(line, newMarker);\n  }\n\n  /*\n  async dependencyGraph() {\n   return this._deps || (this._deps = new DependencyGraph((await this.astCapabilities(this.editor))));\n  }\n  async showAExprTextMarkers() {\n   const editor = await this.editor;\n   await this.resetAExprTextMarkers();\n   const dependencyGraph = await this.dependencyGraph();\n   dependencyGraph.getAllActiveExpressions().forEach(path => {\n     const r = range(path.node.loc).asCM();\n     const mark = this.editor.markText(r[0], r[1], {\n       css: \"background-color: #3BEDED\"\n     });\n     mark.isAExprTextMarker = true;\n   });\n  }\n  async resetAExprTextMarkers() {\n   const editor = await this.editor;\n   editor.getAllMarks().forEach(mark => {\n     if (mark.isAExprTextMarker) {\n       mark.clear();\n     }\n   });\n  }\n  async resetAExprDependencyTextMarkers() {\n   const editor = await this.editor;\n   editor.getAllMarks().forEach(mark => {\n     if (mark.isAExprDependencyTextMarker) {\n       mark.clear();\n     }\n   });\n  }\n  async showAExprDependencyTextMarkers() {\n   await this.editor;\n   await this.resetAExprDependencyTextMarkers();\n   const cursor = this.editor.getCursor();\n   const dependencyGraph = await this.dependencyGraph();\n   const aexprPath = dependencyGraph.getAexprAtCursor(cursor);\n   if (!aexprPath) return;\n   const deps = dependencyGraph.resolveDependencies(aexprPath.get(\"arguments\")[0]);\n   deps.forEach(path => {\n     const r = range(path.node.loc).asCM();\n     const mark = this.editor.markText(r[0], r[1], {\n       css: \"background-color: orange\"\n     });\n     mark.isAExprDependencyTextMarker = true;\n   });\n   // Searching for dependencies\n   const dependencyGraph = await this.dependencyGraph();\n   dependencyGraph.getAllActiveExpressions().forEach(path => {\n     const dependencies = dependencyGraph.resolveDependencies(path.get(\"arguments\")[0]);\n     const AELine = path.node.loc.start.line - 1;\n     if (!AEToDep.get(AELine)) {\n       AEToDep.set(AELine, []);\n     }\n      dependencies.forEach(statement => {\n       const depLine = statement.node.loc.start.line - 1;\n       if (!depToAE.get(depLine)) {\n         depToAE.set(depLine, []);\n       }\n       depToAE.get(depLine).push({ location: path.node.loc, source: path.get(\"arguments.0.body\").getSource(), events: 0 });\n       AEToDep.get(AELine).push({ location: statement.node.loc, source: statement.getSource(), events: 0 });\n     });\n   });\n  }*/\n\n  addMarker(line, newMarker) {\n    if (this.markerMap.has(line)) {\n      this.markerMap.set(line, this.markerMap.get(line).combineWith(newMarker));\n    } else {\n      this.markerMap.set(line, newMarker);\n    }\n  }\n\n}"],"mappings":";;;oRA8CMA,cAAc,EAwCdC,OAAO,EA0CPC,WAAW,EAqBXC,MAAM,EAmJSC,QAAQ,EAAAC,uBAAA;EAjS7B,SAASC,aAAaA,CAACC,MAAM,EAAE;IAC7B,MAAMC,OAAO,GAAGD,MAAM,CAACE,UAAU,CAAC,CAAC;IACnC,IAAID,OAAO,CAACE,IAAI,CAACC,IAAI,CAACC,MAAM,EAAE;MAC5BL,MAAM,CAACD,aAAa,CAAC,CAAC;IACxB;EACF;EACA,SAASO,MAAMA,CAACC,IAAI,EAAE,GAAGC,SAAS,EAAE;IAClC,OAAQ,mBAAkBD,IAAK,IAAGC,SAAS,CAACC,GAAG,CAACC,CAAC,IAAI,KAAK,GAAGA,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE,QAAO;EACnF;EAEA,SAASC,kBAAkBA,CAACC,QAAQ,EAAEb,MAAM,EAAEc,OAAO,EAAEP,IAAI,GAAG,EAAE,EAAEQ,cAAc,GAAG,EAAE,EAAE;IACrF,MAAMC,IAAI,GAAGH,QAAQ,CAACI,KAAK,CAACD,IAAI;IAChC,IAAIE,WAAW,GAAI,GAAEF,IAAK,KAAIT,IAAK,EAAC;IACpC,IAAIY,IAAI,GAAGN,QAAQ,CAACO,IAAI;IACxB,MAAMC,UAAU,GAAG,CAACF,IAAI,IAAIA,IAAI,CAACG,QAAQ,CAACR,OAAO,CAAC;IAElD,IAAIS,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IAEvB,IAAIF,UAAU,EAAE;MACdH,WAAW,GAAG,OAAO,GAAGA,WAAW;MAEnCK,QAAQ,GAAGA,CAAA,KAAM;QACf,MAAMN,KAAK,GAAG;UAAED,IAAI,EAAEH,QAAQ,CAACI,KAAK,CAACD,IAAI,GAAG,CAAC;UAAEQ,EAAE,EAAEX,QAAQ,CAACI,KAAK,CAACQ;QAAO,CAAC;QAC1E,MAAMC,GAAG,GAAG;UAAEV,IAAI,EAAEH,QAAQ,CAACa,GAAG,CAACV,IAAI,GAAG,CAAC;UAAEQ,EAAE,EAAEX,QAAQ,CAACa,GAAG,CAACD;QAAO,CAAC;QACpEzB,MAAM,CAAC2B,YAAY,CAACV,KAAK,EAAES,GAAG,CAAC;MACjC,CAAC;IACH,CAAC,MAAM;MACLR,WAAW,GAAGC,IAAI,CAACS,SAAS,CAACT,IAAI,CAACU,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGX,WAAW;IAC7E;IAEA,OAAO,CAACA,WAAW,EAAE,MAAM;MACzBY,qBAAqB,CAACjB,QAAQ,CAAC;IACjC,CAAC,EAAEE,cAAc,EAAET,MAAM,CAACe,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAC,EAAE;MAAEE,QAAQ;MAAEQ,UAAU,EAAEA,CAAA,KAAM;QACpG,IAAIV,UAAU,EAAE;UACdtB,aAAa,CAACC,MAAM,CAAC;QACvB;MACF;IAAE,CAAC,CAAC;EACR;EAACgC,OAAA;EAAA;IAAAC,OAAA,aAAAC,YAAA;MAAAC,aAAA,GAAAD,YAAA,CAAAE,YAAA;MAAAC,uBAAA,GAAAH,YAAA,CAAAI,sBAAA;MAAAC,gBAAA,GAAAL,YAAA,CAAAM,eAAA;MAAAC,UAAA,GAAAP,YAAA,CAAAQ,SAAA;MAAAC,SAAA,GAAAT,YAAA,CAAAU,QAAA;MAAAC,oBAAA,GAAAX,YAAA,CAAAY,mBAAA;MAAAC,WAAA,GAAAb,YAAA,CAAAc,UAAA;MAAAC,QAAA,GAAAf,YAAA,CAAAgB,OAAA;IAAA,aAAAC,sDAAA;MA5CQrB,qBAAqB,GAAAqB,sDAAA,CAArBrB,qBAAqB;MAAEsB,kBAAkB,GAAAD,sDAAA,CAAlBC,kBAAkB;MAAEC,eAAe,GAAAF,sDAAA,CAAfE,eAAe;IAAA,aAAAC,oDAAA;MAC1DC,cAAc,GAAAD,oDAAA,CAAdC,cAAc;IAAA,aAAAC,8CAAA;MACdC,aAAa,GAAAD,8CAAA,CAAbC,aAAa;IAAA,aAAAC,uBAAA;MACfC,WAAW,GAAAD,uBAAA,CAAAE,OAAA;IAAA,aAAAC,gCAAA;MACTC,eAAe,GAAAD,gCAAA,CAAfC,eAAe;IAAA,aAAAC,MAAA;MACfC,GAAG,GAAAD,MAAA,CAAHC,GAAG;MAAEC,KAAK,GAAAF,MAAA,CAALE,KAAK;MAAEC,SAAS,GAAAH,MAAA,CAATG,SAAS;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAArE,uBAAA;MAAAsE,UAAA,CAAAC,iDAAA,GAAAD,UAAA,CAAAC,iDAAA;MAAAC,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA5D,kBAAA;QAAA;QAAA6D,IAAAC,8BAAA;UAYrB9D,kBAAA,CAAAA,CAAA,CAAAA,8BAAkB;UAAA;QAAA;QAAA+D,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAlE,MAAA;QAAA;QAAAmE,IAAAC,8BAAA;UAJlBpE,MAAA,CAAAA,CAAA,CAAAA,8BAAM;UAAA;QAAA;QAAAqE,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAzE,aAAA;QAAA;QAAA0E,IAAAC,8BAAA;UANN3E,aAAA,CAAAA,CAAA,CAAAA,8BAAa;UAAA;QAAA;QAAA4E,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAnB,eAAA;QAAA;QAAAoB,IAAAC,8BAAA;UAP8BrB,eAAA,CAAAA,CAAA,CAAAA,8BAAe;UAAA;QAAA;QAAAsB,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAApB,kBAAA;QAAA;QAAAqB,IAAAC,8BAAA;UAAnCtB,kBAAA,CAAAA,CAAA,CAAAA,8BAAkB;UAAA;QAAA;QAAAuB,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA1C,qBAAA;QAAA;QAAA2C,IAAAC,8BAAA;UAAzC5C,qBAAA,CAAAA,CAAA,CAAAA,8BAAqB;UAAA;QAAA;QAAA6C,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAjB,cAAA;QAAA;QAAAkB,IAAAC,8BAAA;UACrBnB,cAAA,CAAAA,CAAA,CAAAA,8BAAc;UAAA;QAAA;QAAAoB,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAf,aAAA;QAAA;QAAAgB,IAAAC,8BAAA;UACdjB,aAAA,CAAAA,CAAA,CAAAA,8BAAa;UAAA;QAAA;QAAAkB,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAb,WAAA;QAAA;QAAAc,IAAAC,8BAAA;UACff,WAAA,CAAAA,CAAA,CAAAA,8BAAW;UAAA;QAAA;QAAAgB,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAV,eAAA;QAAA;QAAAW,IAAAC,8BAAA;UACTZ,eAAA,CAAAA,CAAA,CAAAA,8BAAe;UAAA;QAAA;QAAAa,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAN,SAAA;QAAA;QAAAO,IAAAC,8BAAA;UACHR,SAAA,CAAAA,CAAA,CAAAA,8BAAS;UAAA;QAAA;QAAAS,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAP,KAAA;QAAA;QAAAQ,IAAAC,8BAAA;UAAhBT,KAAA,CAAAA,CAAA,CAAAA,8BAAK;UAAA;QAAA;QAAAU,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAAR,GAAA;QAAA;QAAAS,IAAAC,8BAAA;UAAVV,GAAA,CAAAA,CAAA,CAAAA,8BAAG;UAAA;QAAA;QAAAW,UAAA;QAAAC,YAAA;MAAA;MAyCNnF,cAAc,GAApB,MAAMA,cAAc,CAAC;QACnBoF,WAAWA,CAAC7D,IAAI,EAAE,GAAG8D,OAAO,EAAE;UAC5B,IAAI,CAACA,OAAO,GAAGA,OAAO;UACtB,IAAI,CAAC9D,IAAI,GAAGA,IAAI;QAClB;QAEA+D,IAAIA,CAAC/E,MAAM,EAAE;UACXA,MAAM,CAACgF,GAAG,CAACC,eAAe,CAAC,IAAI,CAACjE,IAAI,EAAE,wBAAwB,EAAE,IAAI,CAACkE,QAAQ,CAAClF,MAAM,CAAC,CAAC;QACxF;QAEAmF,WAAWA,CAACC,MAAM,EAAE;UAClB,OAAO,IAAI3F,cAAc,CAAC,IAAI,CAACuB,IAAI,EAAE,GAAG,IAAI,CAAC8D,OAAO,CAAC;QACvD;QAEAI,QAAQA,CAAClF,MAAM,EAAE;UACf,MAAMqF,QAAQ,GAAG,MAAMC,GAAG,IAAI;YAC5B,MAAMC,YAAY,GAAGD,GAAG,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;YACvD,IAAI,CAACC,cAAc,CAACH,YAAY,EAAEvF,MAAM,CAAC;UAC3C,CAAC;UAED,OAAAiD,QAAA,QAAAF,WAAA,CAAAF,oBAAA,UAAmB,kCAAkC,GAAAA,oBAAA,UAASwC,QAAQ,GAAAxC,oBAAA,UAAS,SAAS,IAAI,IAAI,CAACiC,OAAO,CAACa,IAAI,CAACjF,CAAC,IAAIA,CAAC,CAACkF,QAAQ,CAAC,GAAG,iBAAiB,GAAG,oBAAoB,CAAC,IAAAjD,SAAA,CAAAF,UAAA,cAAAF,gBAAA,CACvK,IAAI,GAAAE,UAAA;YAAArB,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA;QAET;QAEA,MAAM0E,cAAcA,CAACH,YAAY,EAAEvF,MAAM,EAAE;UACzC,MAAM6F,SAAS,GAAG,EAAE;UAEpB,KAAK,MAAMT,MAAM,IAAI,IAAI,CAACN,OAAO,EAAE;YACjCe,SAAS,CAACC,IAAI,CAAC,CAACV,MAAM,CAACW,IAAI,CAAC,CAAC,EAAEX,MAAM,CAACS,SAAS,CAAC7F,MAAM,CAAC,CAAC,CAAC;UAC3D;UAEA,MAAMgG,IAAI,GAAG,MAAMrC,WAAW,CAACsC,MAAM,CAACC,QAAQ,CAACC,IAAI,EAAE;YAAEC,OAAO,EAAEb,YAAY,CAACc,IAAI;YAAEC,OAAO,EAAEf,YAAY,CAACgB;UAAO,CAAC,EAAEC,SAAS,EAAEN,QAAQ,CAACC,IAAI,EAAEN,SAAS,CAAC;UACvJG,IAAI,CAACS,gBAAgB,CAAC,gBAAgB,EAAE,MAAM;YAC5CzG,MAAM,CAAC0G,KAAK,CAAC,CAAC;UAChB,CAAC,CAAC;QACJ;MAEF,CAAC;MAAApC,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA/E,cAAA;QAAA;QAAAgF,IAAAC,8BAAA;UAtCKjF,cAAA,CAAAA,CAAA,CAAAA,8BAAc;UAAA;QAAA;QAAAkF,UAAA;QAAAC,YAAA;MAAA;MAwCdlF,OAAO,GAAb,MAAMA,OAAO,CAAC;QACZmF,WAAWA,CAAC7D,IAAI,EAAEF,OAAO,EAAE;UACzB,IAAI,CAACE,IAAI,GAAGA,IAAI;UAChB,IAAI,CAACF,OAAO,GAAGA,OAAO;QACxB;QAEAiF,IAAIA,CAAA,EAAG;UACL,OAAO,gBAAgB;QACzB;QAEAZ,WAAWA,CAACC,MAAM,EAAE;UAClB,OAAO,IAAI3F,cAAc,CAAC,IAAI,CAACuB,IAAI,EAAE,IAAI,EAAEoE,MAAM,CAAC;QACpD;QAEAL,IAAIA,CAAC/E,MAAM,EAAE;UACXA,MAAM,CAACgF,GAAG,CAACC,eAAe,CAAC,IAAI,CAACjE,IAAI,EAAE,wBAAwB,EAAE,IAAI,CAACkE,QAAQ,CAAClF,MAAM,CAAC,CAAC;QACxF;QAEAkF,QAAQA,CAAClF,MAAM,EAAE;UACf,MAAMqF,QAAQ,GAAG,MAAMC,GAAG,IAAI;YAC5B,MAAMC,YAAY,GAAGD,GAAG,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;YACvD,IAAI,CAACC,cAAc,CAACH,YAAY,EAAEvF,MAAM,CAAC;UAC3C,CAAC;UAED,OAAO,IAAI,CAAC2G,OAAO,CAACtB,QAAQ,CAAC;QAC/B;QAEA,MAAMK,cAAcA,CAACH,YAAY,EAAEvF,MAAM,EAAE;UACzC,MAAM6F,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC7F,MAAM,CAAC;UAExC,MAAMgG,IAAI,GAAG,MAAMrC,WAAW,CAACsC,MAAM,CAACC,QAAQ,CAACC,IAAI,EAAE;YAAEC,OAAO,EAAEb,YAAY,CAACc,IAAI;YAAEC,OAAO,EAAEf,YAAY,CAACgB;UAAO,CAAC,EAAEC,SAAS,EAAEN,QAAQ,CAACC,IAAI,EAAEN,SAAS,CAAC;UACvJG,IAAI,CAACS,gBAAgB,CAAC,gBAAgB,EAAE,MAAM;YAC5CzG,MAAM,CAAC0G,KAAK,CAAC,CAAC;UAChB,CAAC,CAAC;QACJ;;QAEA;QACAC,OAAOA,CAACtB,QAAQ,EAAE,CAAC;QACnBQ,SAASA,CAAC7F,MAAM,EAAE,CAAC;MAErB,CAAC;MAAAsE,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA9E,OAAA;QAAA;QAAA+E,IAAAC,8BAAA;UAxCKhF,OAAA,CAAAA,CAAA,CAAAA,8BAAO;UAAA;QAAA;QAAAiF,UAAA;QAAAC,YAAA;MAAA;MA0CPjF,WAAW,GAAjB,MAAMA,WAAW,SAASD,OAAO,CAAC;QAChCmF,WAAWA,CAAC7D,IAAI,EAAEF,OAAO,EAAE8F,eAAe,EAAE;UAC1C,KAAK,CAAC5F,IAAI,EAAEF,OAAO,CAAC;UACpB,IAAI,CAAC8F,eAAe,GAAGA,eAAe;QACxC;QACAD,OAAOA,CAACtB,QAAQ,EAAE;UAChB,OAAApC,QAAA,QAAAF,WAAA,CAAAV,uBAAA,UAAkB,kCAAkC,GAAAQ,oBAAA,UAAQwC,QAAQ,IAAA1C,SAAA,CAAAF,UAAA,cAAAN,aAAA,CAAAc,QAAA,MAAAF,WAAA,CAAAV,uBAAA,UACzD,YAAY,IAAAM,SAAA;YAAAvB,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA,KAAAyB,UAAA;YAAArB,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA;QAEzB;QACA6E,SAASA,CAAC7F,MAAM,EAAE;UAChB,MAAM6F,SAAS,GAAG,EAAE;UAEpB,CAAC,GAAG,IAAI,CAACe,eAAe,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;YAACjG,QAAQ;YAAEkG;UAAK,CAAC,KAAK;YACjElB,SAAS,CAACC,IAAI,CAAClF,kBAAkB,CAACC,QAAQ,EAAEb,MAAM,EAAE,IAAI,CAACc,OAAO,EAAEiG,KAAK,CAAC,CAAC;UAC3E,CAAC,CAAC;UAEF,OAAOlB,SAAS;QAClB;MACF,CAAC;MAAAvB,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA7E,WAAA;QAAA;QAAA8E,IAAAC,8BAAA;UAnBK/E,WAAA,CAAAA,CAAA,CAAAA,8BAAW;UAAA;QAAA;QAAAgF,UAAA;QAAAC,YAAA;MAAA;MAqBXhF,MAAM,GAAZ,MAAMA,MAAM,SAASF,OAAO,CAAC;QAE3BmF,WAAWA,CAAC7D,IAAI,EAAEgG,YAAY,EAAEC,IAAI,EAAEnG,OAAO,EAAE;UAC7C,KAAK,CAACE,IAAI,EAAEF,OAAO,CAAC;UACpB,IAAI,CAACkG,YAAY,GAAGA,YAAY;UAChC,IAAI,CAACC,IAAI,GAAGA,IAAI;UAChB,IAAI,CAACrB,QAAQ,GAAG,CAAC,GAAGoB,YAAY,CAACE,OAAO,CAAC,CAAC,CAAC,CAACvB,IAAI,CAAC,CAAC,CAACwB,EAAE,EAAE;YAAEC;UAAY,CAAC,CAAC,KAAK,CAACA,WAAW,CAACC,OAAO,CAAC,CAAC,CAAC;QACrG;QAEAtB,IAAIA,CAAA,EAAG;UACL,OAAO,IAAI,CAACkB,IAAI,GAAG,IAAI,CAACD,YAAY,CAACM,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAACC,OAAO,CAAC,CAAC,GAAG,cAAc;QACrF;QAEA5B,SAASA,CAAC7F,MAAM,EAAE;UAChB,MAAM6F,SAAS,GAAG,EAAE;UAEpB,IAAI,IAAI,CAACmB,YAAY,CAACU,IAAI,GAAG,CAAC,EAAE;YAC9B,MAAM;cAAEN,WAAW;cAAEJ,YAAY;cAAEW;YAAI,CAAC,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;YAChE,MAAMC,gBAAgB,GAAG,IAAI,CAACC,uBAAuB,CAACV,WAAW,EAAEJ,YAAY,EAAEW,GAAG,EAAE3H,MAAM,CAAC;YAC7F6F,SAAS,CAACC,IAAI,CAAC,CAAC,KAAK,EAAE+B,gBAAgB,EAAE3D,SAAS,CAAC8C,YAAY,CAACe,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;UAClF;UAEA,IAAI,CAACf,YAAY,CAACF,OAAO,CAAC,CAAC;YAAEM,WAAW;YAAEJ;UAAa,CAAC,EAAEG,EAAE,KAAK;YAC/D,MAAMa,aAAa,GAAG,IAAI,CAACF,uBAAuB,CAACV,WAAW,EAAEJ,YAAY,EAAE,CAACG,EAAE,CAAC,EAAEnH,MAAM,CAAC;YAC3F6F,SAAS,CAACC,IAAI,CAAC,CAACqB,EAAE,CAACc,SAAS,CAAC,CAAC,GAAG,GAAG,GAAGd,EAAE,CAACM,OAAO,CAAC,CAAC,EAAEO,aAAa,EAAE9D,SAAS,CAAC8C,YAAY,CAACe,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;UAC7G,CAAC,CAAC;UACF,OAAOlC,SAAS;QAClB;QAEAc,OAAOA,CAACtB,QAAQ,EAAE;UAChB,OAAApC,QAAA,QAAAF,WAAA,CAAAF,oBAAA,UAAmB,+BAA+B,IAAI,IAAI,CAACoE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,GAAApE,oBAAA,UAASwC,QAAQ,GAAAxC,oBAAA,UAAS,IAAI,CAAC+C,QAAQ,GAAG,wBAAwB,GAAG,EAAE,IAAAjD,SAAA,CAAAF,UAAA,cAAAF,gBAAA,CACrJ,IAAI,CAAC0E,IAAI,GAAAhE,QAAA,MAAAF,WAAA,IAAAJ,SAAA,CAAAJ,gBAAA,CAAO,IAAI,CAACyE,YAAY,CAACM,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAACU,YAAY,CAAC,CAAC;YAAA9G,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA,KAAAiC,QAAA,MAAAF,WAAA,CAAAV,uBAAA,UAAiB,iBAAiB,IAAAM,SAAA;YAAAvB,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA,EAAK,GAAAyB,UAAA;YAAArB,IAAA;YAAAM,GAAA;cAAAD,MAAA;cAAAT,IAAA;YAAA;YAAAC,KAAA;cAAAQ,MAAA;cAAAT,IAAA;YAAA;UAAA;QAEhH;QAEAmH,yBAAyBA,CAACnI,MAAM,EAAE;UAChC,MAAM;YAAEoH,WAAW;YAAEJ,YAAY;YAAEW;UAAI,CAAC,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;UAChE,OAAO,IAAI,CAACE,uBAAuB,CAACV,WAAW,EAAEJ,YAAY,EAAEW,GAAG,EAAE3H,MAAM,CAAC;QAC7E;QAEA4H,cAAcA,CAAA,EAAG;UACf,MAAMQ,YAAY,GAAG,EAAE;YACjBC,aAAa,GAAG,EAAE;YAClBV,GAAG,GAAG,EAAE;UAEd,IAAI,CAACX,YAAY,CAACF,OAAO,CAAC,CAAC;YAAEM,WAAW;YAAEJ;UAAa,CAAC,EAAEG,EAAE,KAAK;YAC/DiB,YAAY,CAACtC,IAAI,CAAC,GAAGsB,WAAW,CAAC;YACjCO,GAAG,CAAC7B,IAAI,CAACqB,EAAE,CAAC;YACZkB,aAAa,CAACvC,IAAI,CAAC,GAAGkB,YAAY,CAAC;UACrC,CAAC,CAAC;UACF,MAAMsB,MAAM,GAAGD,aAAa,CAACE,IAAI,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;YAChD,MAAMC,CAAC,GAAGF,IAAI,CAAC3H,QAAQ;YACvB,MAAM8H,CAAC,GAAGF,IAAI,CAAC5H,QAAQ;YACvB,IAAI6H,CAAC,CAACtH,IAAI,GAAGuH,CAAC,CAACvH,IAAI,EAAE;cACnB,OAAO,CAAC,CAAC;YACX,CAAC,MAAM,IAAIsH,CAAC,CAACtH,IAAI,GAAGuH,CAAC,CAACvH,IAAI,EAAE;cAC1B,OAAO,CAAC;YACV;YACA,IAAIsH,CAAC,CAACzH,KAAK,CAACD,IAAI,GAAG2H,CAAC,CAAC1H,KAAK,CAACD,IAAI,EAAE;cAC/B,OAAO,CAAC,CAAC;YACX,CAAC,MAAM,IAAI0H,CAAC,CAACzH,KAAK,CAACD,IAAI,GAAG2H,CAAC,CAAC1H,KAAK,CAACD,IAAI,EAAE;cACtC,OAAO,CAAC;YACV;YACA,OAAO0H,CAAC,CAACzH,KAAK,CAACQ,MAAM,GAAGkH,CAAC,CAAC1H,KAAK,CAACQ,MAAM;UACxC,CAAC,CAAC;UACF,MAAMmH,WAAW,GAAG,EAAE;UACtBN,MAAM,CAACxB,OAAO,CAAC+B,GAAG,IAAI;YACpB;YACA,IAAID,WAAW,CAACb,MAAM,KAAK,CAAC,IAAI,CAACe,CAAC,CAACC,OAAO,CAACH,WAAW,CAACA,WAAW,CAACb,MAAM,GAAG,CAAC,CAAC,CAAClH,QAAQ,CAACI,KAAK,EAAE4H,GAAG,CAAChI,QAAQ,CAACI,KAAK,CAAC,EAAE;cAClH,MAAM+H,YAAY,GAAG1E,MAAM,CAAC2E,MAAM,CAAC,CAAC,CAAC,EAAEJ,GAAG,CAAC;cAC3CG,YAAY,CAACE,MAAM,GAAG,CAAC,GAAGF,YAAY,CAACE,MAAM,CAAC;cAC9CN,WAAW,CAAC9C,IAAI,CAACkD,YAAY,CAAC;YAChC,CAAC,MAAM;cACL,MAAMG,OAAO,GAAGP,WAAW,CAACA,WAAW,CAACb,MAAM,GAAG,CAAC,CAAC;cACnDoB,OAAO,CAACD,MAAM,CAACpD,IAAI,CAAC,GAAG+C,GAAG,CAACK,MAAM,CAAC;cAClC,IAAIL,GAAG,CAACO,MAAM,IAAID,OAAO,CAACC,MAAM,IAAIP,GAAG,CAACO,MAAM,CAACrB,MAAM,GAAGoB,OAAO,CAACC,MAAM,CAACrB,MAAM,EAAE;gBAC7EoB,OAAO,CAACC,MAAM,GAAGP,GAAG,CAACO,MAAM;cAC7B;cACA,IAAIP,GAAG,CAAChI,QAAQ,CAACa,GAAG,CAACD,MAAM,GAAG0H,OAAO,CAACtI,QAAQ,CAACa,GAAG,CAACD,MAAM,EAAE;gBACzD0H,OAAO,CAACtI,QAAQ,CAACa,GAAG,GAAGmH,GAAG,CAAChI,QAAQ,CAACa,GAAG;cACzC;YACF;UACF,CAAC,CAAC;UACF,OAAO;YAAE0F,WAAW,EAAEgB,YAAY;YAAEpB,YAAY,EAAE4B,WAAW;YAAEjB;UAAI,CAAC;QACtE;QAEAG,uBAAuBA,CAACV,WAAW,EAAEJ,YAAY,EAAEW,GAAG,EAAE3H,MAAM,EAAE;UAC9D,MAAMqJ,YAAY,GAAG,EAAE;;UAEvB;UACAA,YAAY,CAACvD,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM;YACxC1C,kBAAkB,CAACkG,QAAQ,IAAIA,QAAQ,CAACC,WAAW,CAAC5B,GAAG,CAAC,CAAC;UAC3D,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;UACZ0B,YAAY,CAACvD,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM;YACrCzC,eAAe,CAACsE,GAAG,CAAC;UACtB,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;;UAEZ;UACA,IAAI6B,cAAc,GAAG,EAAE;UACvB,KAAK,MAAMC,UAAU,IAAIrC,WAAW,EAAE;YACpCoC,cAAc,CAAC1D,IAAI,CAAC,CAAC2D,UAAU,CAACjC,KAAK,CAACkC,KAAK,CAACnJ,IAAI,EAAE,MAAM;cACtD6C,kBAAkB,CAACkG,QAAQ,IAAIA,QAAQ,CAACK,UAAU,CAAC,CAACF,UAAU,CAAC,CAAC,CAAC;YACnE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;UACd;UACA,IAAI,CAACD,cAAc,CAACnC,OAAO,CAAC,CAAC,EAAE;YAC7BgC,YAAY,CAACvD,IAAI,CAAC,CAAC,QAAQ,EAAE0D,cAAc,EAAE,EAAE,EAAE,GAAG,EAAE;cAAEI,OAAO,EAAEA,CAAA,KAAM;gBACnExG,kBAAkB,CAACkG,QAAQ,IAAIA,QAAQ,CAACK,UAAU,CAACvC,WAAW,CAAC,CAAC;cAClE;YAAE,CAAC,CAAC,CAAC;UACT;;UAEA;UACAJ,YAAY,CAACF,OAAO,CAAC+B,GAAG,IAAI;YAC1BQ,YAAY,CAACvD,IAAI,CAAClF,kBAAkB,CAACiI,GAAG,CAAChI,QAAQ,EAAEb,MAAM,EAAE,IAAI,CAACc,OAAO,EAAE+H,GAAG,CAACO,MAAM,EAAElF,SAAS,CAAC2E,GAAG,CAACK,MAAM,CAACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;UAC9H,CAAC,CAAC;UACF;UACA,IAAI,IAAI,CAACd,IAAI,EAAE;YACb,MAAM4C,eAAe,GAAG,EAAE;YAC1B,KAAK,MAAM1C,EAAE,IAAIQ,GAAG,EAAE;cACpB,IAAIR,EAAE,CAAC2C,KAAK,CAAC,CAAC,EAAE;gBACd,MAAM/C,KAAK,GAAGI,EAAE,CAAC4C,QAAQ,CAAC,CAAC;gBAC3B,KAAK,MAAMC,EAAE,IAAIjD,KAAK,CAACkD,aAAa,CAAC,CAAC,EAAE;kBACtC,KAAK,MAAMC,EAAE,IAAI5F,MAAM,CAAC6F,MAAM,CAACH,EAAE,CAACI,iBAAiB,CAAC,EAAE;oBACpDP,eAAe,CAAC/D,IAAI,CAAClF,kBAAkB,CAACsJ,EAAE,CAACrJ,QAAQ,EAAEb,MAAM,EAAE,IAAI,CAACc,OAAO,EAAEoJ,EAAE,CAAC3J,IAAI,CAAC,CAAC;kBACtF;gBACF;cACF;YACF;YACA,IAAIsJ,eAAe,CAAC9B,MAAM,GAAG,CAAC,EAAE;cAC9BsB,YAAY,CAACvD,IAAI,CAAC,CAAC,mBAAmB,EAAE+D,eAAe,EAAE3F,SAAS,CAAC2F,eAAe,CAAC9B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACpG;UACF;UACA,OAAOsB,YAAY;QACrB;QAEAgB,KAAKA,CAAC,GAAGC,SAAS,EAAE;UAClB,MAAM7F,GAAG,GAAG,IAAI8F,GAAG,CAAC,CAAC;UAErB,KAAK,MAAMC,QAAQ,IAAIF,SAAS,EAAE;YAChC,KAAK,MAAMG,IAAI,IAAID,QAAQ,EAAE;cAC3B/F,GAAG,CAACiG,GAAG,CAACD,IAAI,CAAC;YACf;UACF;UAEA,OAAOhG,GAAG;QACZ;MACF,CAAC;MAAAH,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA5E,MAAA;QAAA;QAAA6E,IAAAC,8BAAA;UAjJK9E,MAAA,CAAAA,CAAA,CAAAA,8BAAM;UAAA;QAAA;QAAA+E,UAAA;QAAAC,YAAA;MAAA;MAAA5C,OAAA,YAmJSnC,QAAQ,GAAd,MAAMA,QAAQ,CAAC;QAC5BgF,WAAWA,CAAC7E,MAAM,EAAEc,OAAO,EAAE6J,aAAa,EAAE;UAC1C,IAAI,CAAC7J,OAAO,GAAGA,OAAO;UACtB,IAAI,CAACd,MAAM,GAAGA,MAAM;UACpB,IAAI,CAAC2K,aAAa,GAAGA,aAAa;UAElC,IAAI,CAACC,yBAAyB,CAAC,CAAC;UAEhCrH,cAAc,CAACsH,0BAA0B,CAAC,IAAI,CAAC/J,OAAO,EAAE,IAAI,EAAEgK,MAAM,IAAI;YACtE,IAAI,CAACC,qBAAqB,CAACD,MAAM,CAAC,CAACE,IAAI,CAAC,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC,KAAK;cACpE,IAAI,CAAClL,MAAM,CAACgF,GAAG,CAACmG,WAAW,CAAC,wBAAwB,CAAC;cAErD,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;cAE1B,MAAM,IAAI,CAACC,gCAAgC,CAACL,OAAO,EAAE,KAAK,CAAC;cAC3D,MAAM,IAAI,CAACK,gCAAgC,CAACJ,OAAO,EAAE,IAAI,CAAC;cAC1D,IAAI,CAACK,kBAAkB,CAAC,CAAC;cACzB,KAAK,MAAMnG,MAAM,IAAI,IAAI,CAACgG,SAAS,CAACjB,MAAM,CAAC,CAAC,EAAE;gBAC5C/E,MAAM,CAACL,IAAI,CAAC,IAAI,CAAC/E,MAAM,CAAC;cAC1B;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;QAEJ;QAEAuL,kBAAkBA,CAAA,EAAG;UACnB,MAAMC,IAAI,GAAG/H,aAAa,CAACgI,UAAU,CAAC,CAAC,CAACC,MAAM,CAACvE,EAAE,IAAIA,EAAE,CAAC2C,KAAK,CAAC,CAAC,CAAC;UAEhE,MAAM6B,cAAc,GAAG,IAAIN,GAAG,CAAC,CAAC;UAEhC,KAAI,MAAMlE,EAAE,IAAIqE,IAAI,EAAE;YACpB,MAAMzE,KAAK,GAAGI,EAAE,CAAC4C,QAAQ,CAAC,CAAC;YAC3B,KAAK,MAAMC,EAAE,IAAIjD,KAAK,CAACkD,aAAa,CAAC,CAAC,EAAE;cACtC,KAAK,MAAMC,EAAE,IAAI5F,MAAM,CAAC6F,MAAM,CAACH,EAAE,CAACI,iBAAiB,CAAC,EAAE;gBACpDuB,cAAc,CAACC,WAAW,CAAC1B,EAAE,CAAC3J,IAAI,EAAE,MAAM,EAAE,CAAC,CAACuF,IAAI,CAAC;kBAACjF,QAAQ,EAAEqJ,EAAE,CAACrJ,QAAQ;kBAAEkG,KAAK,EAAEA,KAAK,CAACxG;gBAAI,CAAC,CAAC;cAChG;YACF;UACF;UAEAoL,cAAc,CAAC7E,OAAO,CAAE+E,aAAa,IAAK;YACxC,KAAK,IAAIC,MAAM,IAAID,aAAa,EAAE;cAChC,MAAM;gBAAChL;cAAQ,CAAC,GAAIiL,MAAM;cAC1B,IAAI,CAACjL,QAAQ,EAAE;gBACbkL,MAAM,CAACC,IAAI,CAAC,8BAA8B,GAAGF,MAAM,CAAC;gBACpD;gBACA;cACF;cACA,MAAM3K,IAAI,GAAGN,QAAQ,CAACO,IAAI;cAC1B,IAAID,IAAI,CAACG,QAAQ,CAAC,IAAI,CAACR,OAAO,CAAC,EAAE;gBAC/B,IAAI,CAACmL,iBAAiB,CAACJ,aAAa,EAAEhL,QAAQ,CAACI,KAAK,CAACD,IAAI,GAAG,CAAC,CAAC;cAChE;YACF;UACF,CAAC,CAAC;QACJ;QAEAiL,iBAAiBA,CAACJ,aAAa,EAAE7K,IAAI,EAAE;UACrC,IAAI,CAACkL,SAAS,CAAClL,IAAI,EAAE,IAAIrB,WAAW,CAACqB,IAAI,EAAE,IAAI,CAACF,OAAO,EAAE+K,aAAa,CAAC,CAAC;QAC1E;QAEAM,KAAKA,CAAA,EAAG;UACN,OAAO,IAAI,CAACxB,aAAa,CAAC,CAAC;QAC7B;QAEA,MAAMC,yBAAyBA,CAAA,EAAG;UAChC,MAAMwB,EAAE,GAAG,wBAAwB;UACnC,MAAMpM,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM;UAChC,IAAIqM,OAAO,GAAGrM,MAAM,CAACsM,SAAS,CAAC,SAAS,CAAC;UACzC,IAAI,CAACD,OAAO,CAAC1G,IAAI,CAACP,MAAM,IAAIA,MAAM,KAAKgH,EAAE,CAAC,EAAE;YAC1CpM,MAAM,CAACuM,SAAS,CAAC,SAAS,EAAE,CAAC,GAAGF,OAAO,EAAED,EAAE,CAAC,CAAC;UAC/C;QACF;QAEA,MAAMI,yBAAyBA,CAAA,EAAG;UAChC,MAAMJ,EAAE,GAAG,wBAAwB;UACnC,MAAMpM,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM;UAChC,IAAIqM,OAAO,GAAGrM,MAAM,CAACsM,SAAS,CAAC,SAAS,CAAC;UACzCD,OAAO,GAAGA,OAAO,CAACX,MAAM,CAACtG,MAAM,IAAIA,MAAM,KAAKgH,EAAE,CAAC;UACjDpM,MAAM,CAACuM,SAAS,CAAC,SAAS,EAAEF,OAAO,CAAC;QACtC;QAEA,MAAMf,gCAAgCA,CAACmB,aAAa,EAAExF,IAAI,EAAE;UAC1D,MAAM,IAAI,CAACjH,MAAM;UAEjB,KAAK,MAAM,CAACgB,IAAI,EAAE0L,MAAM,CAAC,IAAID,aAAa,CAACvF,OAAO,CAAC,CAAC,EAAE;YACpD,IAAI,CAACyF,eAAe,CAAC3L,IAAI,EAAE0L,MAAM,EAAEzF,IAAI,CAAC;UAC1C;QACF;QAEA,MAAM8D,qBAAqBA,CAAC6B,aAAa,EAAE;UACzC,MAAM3B,OAAO,GAAG,IAAII,GAAG,CAAC,CAAC;UACzB,MAAMH,OAAO,GAAG,IAAIG,GAAG,CAAC,CAAC;UAEzB,MAAM,IAAI,CAACrL,MAAM;UAEjB,MAAM6M,kBAAkB,GAAGA,CAAC1F,EAAE,EAAE2F,UAAU,EAAEC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,gBAAgB,KAAK;YACjG,MAAMC,cAAc,GAAGF,aAAa,CAAChM,KAAK,CAACD,IAAI,GAAG,CAAC;YACnD,MAAMoM,cAAc,GAAGH,aAAa,CAAC7L,IAAI;YAEzC,MAAMiM,aAAa,GAAGL,SAAS,CAACtB,MAAM,CAAC4B,KAAK,IAAIA,KAAK,CAAC9F,KAAK,IAAI8F,KAAK,CAAC9F,KAAK,CAAC+F,QAAQ,IAAID,KAAK,CAAC9F,KAAK,CAAC+F,QAAQ,CAAC5H,IAAI,CAAC,CAAC;cAAE9E;YAAS,CAAC,KAAKuM,cAAc,CAAC9L,QAAQ,CAACT,QAAQ,CAACO,IAAI,CAAC,IAAIP,QAAQ,CAACI,KAAK,CAACD,IAAI,GAAG,CAAC,KAAKmM,cAAc,CAAC,CAAC;YACzN,MAAMK,yBAAyB,GAAGH,aAAa,CAAC3B,MAAM,CAAC4B,KAAK,IAAIA,KAAK,CAACvH,IAAI,KAAK,eAAe,CAAC;YAC/F,MAAM0H,kBAAkB,GAAGJ,aAAa,CAAC3B,MAAM,CAAC4B,KAAK,IAAIA,KAAK,CAACvH,IAAI,KAAK,mBAAmB,CAAC;YAE5F,IAAIqH,cAAc,CAAC9L,QAAQ,CAAC,IAAI,CAACR,OAAO,CAAC,EAAE;cACzC;cACA,IAAI,CAACmK,OAAO,CAACzG,GAAG,CAAC2I,cAAc,CAAC,EAAE;gBAChClC,OAAO,CAACxG,GAAG,CAAC0I,cAAc,EAAE,IAAI9B,GAAG,CAAC,CAAC,CAAC;cACxC;cACA,IAAI,CAACJ,OAAO,CAACzG,GAAG,CAAC2I,cAAc,CAAC,CAAC3I,GAAG,CAAC2C,EAAE,CAAC,EAAE;gBACxC8D,OAAO,CAACzG,GAAG,CAAC2I,cAAc,CAAC,CAAC1I,GAAG,CAAC0C,EAAE,EAAE;kBAAEC,WAAW,EAAE,EAAE;kBAAEJ,YAAY,EAAE;gBAAG,CAAC,CAAC;cAC5E;cACAiE,OAAO,CAACzG,GAAG,CAAC2I,cAAc,CAAC,CAAC3I,GAAG,CAAC2C,EAAE,CAAC,CAACC,WAAW,CAACtB,IAAI,CAAC,GAAG2H,kBAAkB,CAAC;cAC3E;cACAxC,OAAO,CAACzG,GAAG,CAAC2I,cAAc,CAAC,CAAC3I,GAAG,CAAC2C,EAAE,CAAC,CAACH,YAAY,CAAClB,IAAI,CAAC;gBAAEjF,QAAQ,EAAEiM,UAAU;gBAAE1D,MAAM,EAAEjC,EAAE,CAACc,SAAS,CAAC,gCAAgC,CAAC;gBAAEiB,MAAM,EAAEsE;cAA0B,CAAC,CAAC;YAC5K;YAEA,IAAIV,UAAU,CAAC1L,IAAI,CAACE,QAAQ,CAAC,IAAI,CAACR,OAAO,CAAC,EAAE;cAC1CoK,OAAO,CAAC1G,GAAG,CAACuI,MAAM,CAAC,CAACvI,GAAG,CAAC2C,EAAE,CAAC,CAACH,YAAY,CAAClB,IAAI,CAAC;gBAAEjF,QAAQ,EAAEoM,aAAa;gBAAE7D,MAAM,EAAE8D,gBAAgB;gBAAEhE,MAAM,EAAEsE;cAA0B,CAAC,CAAC;YACzI;UACF,CAAC;UAED,KAAK,MAAM,CAACrG,EAAE,EAAEuG,YAAY,CAAC,IAAId,aAAa,EAAE;YAC9C,MAAME,UAAU,GAAG3F,EAAE,CAACwG,IAAI,CAAC,CAAC,CAACnJ,GAAG,CAAC,UAAU,CAAC;YAC5C,MAAMuI,MAAM,GAAGD,UAAU,CAAC7L,KAAK,CAACD,IAAI,GAAG,CAAC;YAExC,MAAMgM,SAAS,GAAG7F,EAAE,CAACwG,IAAI,CAAC,CAAC,CAACnJ,GAAG,CAAC,QAAQ,CAAC;YACzC,MAAM4C,WAAW,GAAG4F,SAAS,CAACtB,MAAM,CAAC4B,KAAK,IAAIA,KAAK,CAACvH,IAAI,KAAK,mBAAmB,CAAC;YAEjF,IAAI+G,UAAU,CAAC1L,IAAI,CAACE,QAAQ,CAAC,IAAI,CAACR,OAAO,CAAC,EAAE;cAC1C;cACA,IAAI,CAACoK,OAAO,CAAC1G,GAAG,CAACuI,MAAM,CAAC,EAAE;gBACxB7B,OAAO,CAACzG,GAAG,CAACsI,MAAM,EAAE,IAAI1B,GAAG,CAAC,CAAC,CAAC;cAChC;cACA,IAAI,CAACH,OAAO,CAAC1G,GAAG,CAACuI,MAAM,CAAC,CAACvI,GAAG,CAAC2C,EAAE,CAAC,EAAE;gBAChC+D,OAAO,CAAC1G,GAAG,CAACuI,MAAM,CAAC,CAACtI,GAAG,CAAC0C,EAAE,EAAE;kBAAEC,WAAW;kBAAEJ,YAAY,EAAE;gBAAG,CAAC,CAAC;cAChE;YACF;YACA,KAAK,MAAM;cAAE4G,IAAI;cAAEC;YAAW,CAAC,IAAIH,YAAY,EAAE;cAC/C,MAAMI,SAAS,GAAG,MAAMF,IAAI,CAACG,YAAY,CAAC,CAAC;cAC3C,KAAK,MAAMlN,QAAQ,IAAIiN,SAAS,EAAE;gBAChCjB,kBAAkB,CAAC1F,EAAE,EAAE2F,UAAU,EAAEC,MAAM,EAAEC,SAAS,EAAEnM,QAAQ,EAAEgN,UAAU,CAACG,UAAU,CAAC;cACxF;YACF;UACF;UAEA,OAAO,CAAC/C,OAAO,EAAEC,OAAO,CAAC;QAC3B;QAEAyB,eAAeA,CAAC3L,IAAI,EAAEgG,YAAY,EAAEC,IAAI,EAAE;UACxC,MAAMgH,SAAS,GAAG,IAAIrO,MAAM,CAACoB,IAAI,EAAEgG,YAAY,EAAEC,IAAI,EAAE,IAAI,CAACnG,OAAO,CAAC;UACpE,IAAI,CAACoL,SAAS,CAAClL,IAAI,EAAEiN,SAAS,CAAC;QACjC;;QAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QAEE/B,SAASA,CAAClL,IAAI,EAAEiN,SAAS,EAAE;UACzB,IAAI,IAAI,CAAC7C,SAAS,CAAC8C,GAAG,CAAClN,IAAI,CAAC,EAAE;YAC5B,IAAI,CAACoK,SAAS,CAAC3G,GAAG,CAACzD,IAAI,EAAE,IAAI,CAACoK,SAAS,CAAC5G,GAAG,CAACxD,IAAI,CAAC,CAACmE,WAAW,CAAC8I,SAAS,CAAC,CAAC;UAC3E,CAAC,MAAM;YACL,IAAI,CAAC7C,SAAS,CAAC3G,GAAG,CAACzD,IAAI,EAAEiN,SAAS,CAAC;UACrC;QACF;MAEF,CAAC;MAAA3J,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,iDAAA;QAAAG,IAAA;UAAA,OAAA3E,QAAA;QAAA;QAAA4E,IAAAC,8BAAA;UAAA1C,OAAA,YAlOoBnC,QAAA,CAAAA,CAAA,CAAAA,8BAAQ;UAAA;QAAA;QAAA8E,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;AAAA"}