{"version":3,"file":"webworker.mjs","sources":["../../../packages/constants/lib/index.mjs","../../../packages/settings/lib/adapter.mjs","../../../packages/settings/lib/settings.mjs","../../../packages/settings/lib/external/ismobilejs/esm/isMobile.mjs","../../../packages/settings/lib/utils/isMobile.mjs","../../../packages/utils/lib/settings.mjs","../../../node_modules/eventemitter3/index.js","../../../node_modules/earcut/src/earcut.js","../../../node_modules/url/node_modules/punycode/punycode.js","../../../node_modules/url/util.js","../../../node_modules/querystring/decode.js","../../../node_modules/querystring/encode.js","../../../node_modules/querystring/index.js","../../../node_modules/url/url.js","../../../packages/utils/lib/url.mjs","../../../packages/utils/lib/path.mjs","../../../packages/utils/lib/logging/deprecation.mjs","../../../packages/utils/lib/browser/hello.mjs","../../../packages/utils/lib/browser/isWebGLSupported.mjs","../../../packages/utils/lib/external/css-color-names/css-color-names.mjs","../../../packages/utils/lib/color/hex.mjs","../../../packages/utils/lib/color/premultiply.mjs","../../../packages/utils/lib/const.mjs","../../../packages/utils/lib/data/createIndicesForQuads.mjs","../../../packages/utils/lib/data/getBufferType.mjs","../../../packages/utils/lib/data/interleaveTypedArrays.mjs","../../../packages/utils/lib/data/pow2.mjs","../../../packages/utils/lib/data/removeItems.mjs","../../../packages/utils/lib/data/sign.mjs","../../../packages/utils/lib/data/uid.mjs","../../../packages/utils/lib/media/BoundingBox.mjs","../../../packages/utils/lib/media/caches.mjs","../../../packages/utils/lib/media/CanvasRenderTarget.mjs","../../../packages/utils/lib/media/getCanvasBoundingBox.mjs","../../../packages/utils/lib/media/trimCanvas.mjs","../../../packages/utils/lib/network/decomposeDataUri.mjs","../../../packages/utils/lib/network/determineCrossOrigin.mjs","../../../packages/utils/lib/network/getResolutionOfUrl.mjs","../../../packages/extensions/lib/index.mjs","../../../packages/core/lib/geometry/ViewableBuffer.mjs","../../../packages/core/lib/shader/utils/checkMaxIfStatementsInShader.mjs","../../../packages/core/lib/state/State.mjs","../../../packages/core/lib/textures/resources/autoDetectResource.mjs","../../../packages/runner/lib/Runner.mjs","../../../packages/core/lib/textures/resources/Resource.mjs","../../../packages/core/lib/textures/resources/BufferResource.mjs","../../../packages/core/lib/textures/BaseTexture.mjs","../../../packages/core/lib/batch/BatchDrawCall.mjs","../../../packages/core/lib/geometry/Buffer.mjs","../../../packages/core/lib/geometry/Attribute.mjs","../../../packages/core/lib/geometry/utils/interleaveTypedArrays.mjs","../../../packages/core/lib/geometry/Geometry.mjs","../../../packages/core/lib/batch/BatchGeometry.mjs","../../../packages/math/lib/const.mjs","../../../packages/math/lib/Point.mjs","../../../packages/math/lib/shapes/Rectangle.mjs","../../../packages/math/lib/shapes/Circle.mjs","../../../packages/math/lib/shapes/Ellipse.mjs","../../../packages/math/lib/shapes/Polygon.mjs","../../../packages/math/lib/shapes/RoundedRectangle.mjs","../../../packages/math/lib/Matrix.mjs","../../../packages/math/lib/groupD8.mjs","../../../packages/math/lib/ObservablePoint.mjs","../../../packages/math/lib/Transform.mjs","../../../packages/core/lib/shader/defaultProgram.mjs","../../../packages/core/lib/shader/defaultProgram2.mjs","../../../packages/core/lib/shader/utils/compileShader.mjs","../../../packages/core/lib/shader/utils/defaultValue.mjs","../../../packages/core/lib/shader/utils/uniformParsers.mjs","../../../packages/core/lib/shader/utils/generateUniformsSync.mjs","../../../packages/core/lib/shader/utils/getTestContext.mjs","../../../packages/core/lib/shader/utils/getMaxFragmentPrecision.mjs","../../../packages/core/lib/shader/utils/logProgramError.mjs","../../../packages/core/lib/shader/utils/mapSize.mjs","../../../packages/core/lib/shader/utils/mapType.mjs","../../../packages/core/lib/shader/utils/setPrecision.mjs","../../../packages/core/lib/shader/utils/unsafeEvalSupported.mjs","../../../packages/core/lib/shader/Program.mjs","../../../packages/core/lib/shader/UniformGroup.mjs","../../../packages/core/lib/shader/Shader.mjs","../../../packages/core/lib/batch/BatchShaderGenerator.mjs","../../../packages/core/lib/batch/BatchTextureArray.mjs","../../../packages/core/lib/batch/canUploadSameBuffer.mjs","../../../packages/core/lib/batch/maxRecommendedTextures.mjs","../../../packages/core/lib/batch/ObjectRenderer.mjs","../../../packages/core/lib/batch/texture.mjs","../../../packages/core/lib/batch/texture2.mjs","../../../packages/core/lib/batch/BatchRenderer.mjs","../../../packages/core/lib/filters/defaultFilter.mjs","../../../packages/core/lib/filters/defaultFilter2.mjs","../../../packages/core/lib/filters/Filter.mjs","../../../packages/core/lib/background/BackgroundSystem.mjs","../../../packages/core/lib/batch/BatchSystem.mjs","../../../packages/core/lib/context/ContextSystem.mjs","../../../packages/core/lib/textures/resources/DepthResource.mjs","../../../packages/core/lib/framebuffer/Framebuffer.mjs","../../../packages/core/lib/renderTexture/BaseRenderTexture.mjs","../../../packages/core/lib/textures/resources/BaseImageResource.mjs","../../../packages/core/lib/textures/resources/ImageResource.mjs","../../../packages/core/lib/textures/TextureUvs.mjs","../../../packages/core/lib/textures/Texture.mjs","../../../packages/core/lib/renderTexture/RenderTexture.mjs","../../../packages/core/lib/renderTexture/RenderTexturePool.mjs","../../../packages/core/lib/utils/Quad.mjs","../../../packages/core/lib/utils/QuadUv.mjs","../../../packages/core/lib/filters/FilterState.mjs","../../../packages/core/lib/filters/FilterSystem.mjs","../../../packages/core/lib/framebuffer/GLFramebuffer.mjs","../../../packages/core/lib/framebuffer/FramebufferSystem.mjs","../../../packages/core/lib/geometry/GeometrySystem.mjs","../../../packages/core/lib/textures/TextureMatrix.mjs","../../../packages/core/lib/filters/spriteMask/spriteMaskFilter2.mjs","../../../packages/core/lib/filters/spriteMask/spriteMaskFilter3.mjs","../../../packages/core/lib/filters/spriteMask/SpriteMaskFilter.mjs","../../../packages/core/lib/mask/MaskData.mjs","../../../packages/core/lib/mask/MaskSystem.mjs","../../../packages/core/lib/mask/AbstractMaskSystem.mjs","../../../packages/core/lib/mask/ScissorSystem.mjs","../../../packages/core/lib/mask/StencilSystem.mjs","../../../packages/core/lib/plugin/PluginSystem.mjs","../../../packages/core/lib/projection/ProjectionSystem.mjs","../../../packages/core/lib/renderTexture/GenerateTextureSystem.mjs","../../../packages/core/lib/renderTexture/RenderTextureSystem.mjs","../../../packages/core/lib/shader/GLProgram.mjs","../../../packages/core/lib/shader/utils/getAttributeData.mjs","../../../packages/core/lib/shader/utils/getUniformData.mjs","../../../packages/core/lib/shader/utils/generateProgram.mjs","../../../packages/core/lib/shader/utils/generateUniformBufferSync.mjs","../../../packages/core/lib/shader/ShaderSystem.mjs","../../../packages/core/lib/startup/StartupSystem.mjs","../../../packages/core/lib/state/utils/mapWebGLBlendModesToPixi.mjs","../../../packages/core/lib/state/StateSystem.mjs","../../../packages/core/lib/system/SystemManager.mjs","../../../packages/core/lib/textures/TextureGCSystem.mjs","../../../packages/core/lib/textures/GLTexture.mjs","../../../packages/core/lib/textures/utils/mapTypeAndFormatToInternalFormat.mjs","../../../packages/core/lib/textures/TextureSystem.mjs","../../../packages/core/lib/transformFeedback/TransformFeedbackSystem.mjs","../../../packages/core/lib/view/ViewSystem.mjs","../../../packages/core/lib/settings.mjs","../../../packages/ticker/lib/const.mjs","../../../packages/ticker/lib/TickerListener.mjs","../../../packages/ticker/lib/Ticker.mjs","../../../packages/ticker/lib/settings.mjs","../../../packages/ticker/lib/TickerPlugin.mjs","../../../packages/core/lib/autoDetectRenderer.mjs","../../../packages/core/lib/fragments/default.mjs","../../../packages/core/lib/fragments/defaultFilter.mjs","../../../packages/core/lib/fragments/index.mjs","../../../packages/core/lib/framebuffer/MultisampleSystem.mjs","../../../packages/core/lib/geometry/GLBuffer.mjs","../../../packages/core/lib/geometry/BufferSystem.mjs","../../../packages/core/lib/render/ObjectRendererSystem.mjs","../../../packages/core/lib/Renderer.mjs","../../../packages/core/lib/textures/resources/AbstractMultiResource.mjs","../../../packages/core/lib/textures/resources/ArrayResource.mjs","../../../packages/core/lib/textures/resources/CanvasResource.mjs","../../../packages/core/lib/textures/resources/CubeResource.mjs","../../../packages/core/lib/textures/resources/ImageBitmapResource.mjs","../../../packages/core/lib/textures/resources/SVGResource.mjs","../../../packages/core/lib/textures/resources/VideoResource.mjs","../../../packages/core/lib/textures/resources/index.mjs","../../../packages/core/lib/transformFeedback/TransformFeedback.mjs","../../../packages/core/lib/index.mjs","../../../packages/display/lib/Bounds.mjs","../../../packages/display/lib/DisplayObject.mjs","../../../packages/display/lib/Container.mjs","../../../packages/display/lib/settings.mjs","../../../packages/sprite/lib/Sprite.mjs","../../../packages/mixin-cache-as-bitmap/lib/index.mjs","../../../packages/mixin-get-child-by-name/lib/index.mjs","../../../packages/mixin-get-global-position/lib/index.mjs","../../../packages/filter-alpha/lib/alpha.mjs","../../../packages/filter-alpha/lib/AlphaFilter.mjs","../../../packages/filter-blur/lib/generateBlurFragSource.mjs","../../../packages/filter-blur/lib/generateBlurVertSource.mjs","../../../packages/filter-blur/lib/BlurFilterPass.mjs","../../../packages/filter-blur/lib/BlurFilter.mjs","../../../packages/filter-color-matrix/lib/colorMatrix.mjs","../../../packages/filter-color-matrix/lib/ColorMatrixFilter.mjs","../../../packages/filter-displacement/lib/displacement.mjs","../../../packages/filter-displacement/lib/displacement2.mjs","../../../packages/filter-displacement/lib/DisplacementFilter.mjs","../../../packages/filter-fxaa/lib/fxaa.mjs","../../../packages/filter-fxaa/lib/fxaa2.mjs","../../../packages/filter-fxaa/lib/FXAAFilter.mjs","../../../packages/filter-noise/lib/noise.mjs","../../../packages/filter-noise/lib/NoiseFilter.mjs","../src/filters.ts","../../../packages/app/lib/Application.mjs","../../../packages/app/lib/ResizePlugin.mjs","../../../packages/assets/lib/AssetExtension.mjs","../../../packages/assets/lib/BackgroundLoader.mjs","../../../packages/assets/lib/utils/checkDataUrl.mjs","../../../packages/assets/lib/utils/checkExtension.mjs","../../../packages/assets/lib/utils/convertToList.mjs","../../../packages/assets/lib/utils/copySearchParams.mjs","../../../packages/assets/lib/utils/createStringVariations.mjs","../../../packages/assets/lib/utils/isSingleItem.mjs","../../../packages/assets/lib/cache/Cache.mjs","../../../packages/assets/lib/loader/Loader.mjs","../../../packages/assets/lib/loader/parsers/LoaderParser.mjs","../../../packages/assets/lib/loader/parsers/loadJson.mjs","../../../packages/assets/lib/loader/parsers/loadTxt.mjs","../../../packages/assets/lib/loader/parsers/loadWebFont.mjs","../../../packages/assets/lib/loader/parsers/WorkerManager.mjs","../../../packages/assets/lib/loader/parsers/textures/utils/createTexture.mjs","../../../packages/assets/lib/loader/parsers/textures/loadTextures.mjs","../../../packages/assets/lib/loader/parsers/textures/loadSVG.mjs","../../../packages/assets/lib/resolver/Resolver.mjs","../../../packages/assets/lib/Assets.mjs","../../../packages/assets/lib/cache/parsers/cacheTextureArray.mjs","../../../packages/assets/lib/detections/parsers/detectAvif.mjs","../../../packages/assets/lib/detections/parsers/detectWebp.mjs","../../../packages/assets/lib/detections/parsers/detectDefaults.mjs","../../../packages/assets/lib/resolver/parsers/resolveTextureUrl.mjs","../../../packages/compressed-textures/lib/const.mjs","../../../packages/compressed-textures/lib/loaders/detectCompressedTextures.mjs","../../../packages/compressed-textures/lib/resources/BlobResource.mjs","../../../packages/compressed-textures/lib/resources/CompressedTextureResource.mjs","../../../packages/compressed-textures/lib/parsers/parseDDS.mjs","../../../packages/compressed-textures/lib/parsers/parseKTX.mjs","../../../packages/compressed-textures/lib/loaders/loadDDS.mjs","../../../packages/compressed-textures/lib/loaders/loadKTX.mjs","../../../packages/compressed-textures/lib/loaders/resolveCompressedTextureUrl.mjs","../../../packages/extract/lib/Extract.mjs","../../../packages/graphics/lib/utils/buildCircle.mjs","../../../packages/graphics/lib/utils/buildPoly.mjs","../../../packages/graphics/lib/utils/buildRectangle.mjs","../../../packages/graphics/lib/utils/buildRoundedRectangle.mjs","../../../packages/graphics/lib/const.mjs","../../../packages/graphics/lib/utils/ArcUtils.mjs","../../../packages/graphics/lib/utils/BatchPart.mjs","../../../packages/graphics/lib/utils/BezierUtils.mjs","../../../packages/graphics/lib/utils/buildLine.mjs","../../../packages/graphics/lib/utils/QuadraticUtils.mjs","../../../packages/graphics/lib/utils/index.mjs","../../../packages/graphics/lib/GraphicsData.mjs","../../../packages/graphics/lib/GraphicsGeometry.mjs","../../../packages/graphics/lib/styles/FillStyle.mjs","../../../packages/graphics/lib/styles/LineStyle.mjs","../../../packages/graphics/lib/Graphics.mjs","../../../packages/graphics/lib/index.mjs","../../../packages/mesh/lib/MeshBatchUvs.mjs","../../../packages/mesh/lib/Mesh.mjs","../../../packages/mesh/lib/MeshGeometry.mjs","../../../packages/mesh/lib/shader/mesh.mjs","../../../packages/mesh/lib/shader/mesh2.mjs","../../../packages/mesh/lib/MeshMaterial.mjs","../../../packages/mesh-extras/lib/geometry/PlaneGeometry.mjs","../../../packages/mesh-extras/lib/geometry/RopeGeometry.mjs","../../../packages/mesh-extras/lib/SimplePlane.mjs","../../../packages/mesh-extras/lib/NineSlicePlane.mjs","../../../packages/mesh-extras/lib/SimpleMesh.mjs","../../../packages/mesh-extras/lib/SimpleRope.mjs","../../../packages/particle-container/lib/ParticleContainer.mjs","../../../packages/particle-container/lib/ParticleBuffer.mjs","../../../packages/particle-container/lib/particles.mjs","../../../packages/particle-container/lib/particles2.mjs","../../../packages/particle-container/lib/ParticleRenderer.mjs","../../../packages/text/lib/const.mjs","../../../packages/text/lib/TextMetrics.mjs","../../../packages/text/lib/TextStyle.mjs","../../../packages/text/lib/Text.mjs","../../../packages/prepare/lib/CountLimiter.mjs","../../../packages/prepare/lib/BasePrepare.mjs","../../../packages/prepare/lib/settings.mjs","../../../packages/prepare/lib/Prepare.mjs","../../../packages/prepare/lib/TimeLimiter.mjs","../../../packages/sprite-animated/lib/AnimatedSprite.mjs","../../../packages/sprite-tiling/lib/TilingSprite.mjs","../../../packages/sprite-tiling/lib/sprite-tiling.mjs","../../../packages/sprite-tiling/lib/sprite-tiling2.mjs","../../../packages/sprite-tiling/lib/sprite-tiling-fallback.mjs","../../../packages/sprite-tiling/lib/sprite-tiling-fallback2.mjs","../../../packages/sprite-tiling/lib/sprite-tiling-simple.mjs","../../../packages/sprite-tiling/lib/TilingSpriteRenderer.mjs","../../../packages/spritesheet/lib/Spritesheet.mjs","../../../packages/spritesheet/lib/spritesheetAsset.mjs","../../../packages/text-bitmap/lib/BitmapFontData.mjs","../../../packages/text-bitmap/lib/formats/TextFormat.mjs","../../../packages/text-bitmap/lib/formats/XMLFormat.mjs","../../../packages/text-bitmap/lib/formats/XMLStringFormat.mjs","../../../packages/text-bitmap/lib/formats/index.mjs","../../../packages/text-bitmap/lib/utils/generateFillStyle.mjs","../../../packages/text-bitmap/lib/utils/drawGlyph.mjs","../../../packages/text-bitmap/lib/utils/extractCharCode.mjs","../../../packages/text-bitmap/lib/utils/splitTextToCharacters.mjs","../../../packages/text-bitmap/lib/utils/resolveCharacters.mjs","../../../packages/text-bitmap/lib/BitmapFont.mjs","../../../packages/text-bitmap/lib/shader/msdf.mjs","../../../packages/text-bitmap/lib/shader/msdf2.mjs","../../../packages/text-bitmap/lib/BitmapText.mjs","../../../packages/text-bitmap/lib/loadBitmapFont.mjs","../../../node_modules/@xmldom/xmldom/lib/conventions.js","../../../node_modules/@xmldom/xmldom/lib/dom.js","../../../node_modules/@xmldom/xmldom/lib/entities.js","../../../node_modules/@xmldom/xmldom/lib/sax.js","../../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../../node_modules/@xmldom/xmldom/lib/index.js","../src/adapter.ts"],"sourcesContent":["var ENV = /* @__PURE__ */ ((ENV2) => {\n  ENV2[ENV2[\"WEBGL_LEGACY\"] = 0] = \"WEBGL_LEGACY\";\n  ENV2[ENV2[\"WEBGL\"] = 1] = \"WEBGL\";\n  ENV2[ENV2[\"WEBGL2\"] = 2] = \"WEBGL2\";\n  return ENV2;\n})(ENV || {});\nvar RENDERER_TYPE = /* @__PURE__ */ ((RENDERER_TYPE2) => {\n  RENDERER_TYPE2[RENDERER_TYPE2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  RENDERER_TYPE2[RENDERER_TYPE2[\"WEBGL\"] = 1] = \"WEBGL\";\n  RENDERER_TYPE2[RENDERER_TYPE2[\"CANVAS\"] = 2] = \"CANVAS\";\n  return RENDERER_TYPE2;\n})(RENDERER_TYPE || {});\nvar BUFFER_BITS = /* @__PURE__ */ ((BUFFER_BITS2) => {\n  BUFFER_BITS2[BUFFER_BITS2[\"COLOR\"] = 16384] = \"COLOR\";\n  BUFFER_BITS2[BUFFER_BITS2[\"DEPTH\"] = 256] = \"DEPTH\";\n  BUFFER_BITS2[BUFFER_BITS2[\"STENCIL\"] = 1024] = \"STENCIL\";\n  return BUFFER_BITS2;\n})(BUFFER_BITS || {});\nvar BLEND_MODES = /* @__PURE__ */ ((BLEND_MODES2) => {\n  BLEND_MODES2[BLEND_MODES2[\"NORMAL\"] = 0] = \"NORMAL\";\n  BLEND_MODES2[BLEND_MODES2[\"ADD\"] = 1] = \"ADD\";\n  BLEND_MODES2[BLEND_MODES2[\"MULTIPLY\"] = 2] = \"MULTIPLY\";\n  BLEND_MODES2[BLEND_MODES2[\"SCREEN\"] = 3] = \"SCREEN\";\n  BLEND_MODES2[BLEND_MODES2[\"OVERLAY\"] = 4] = \"OVERLAY\";\n  BLEND_MODES2[BLEND_MODES2[\"DARKEN\"] = 5] = \"DARKEN\";\n  BLEND_MODES2[BLEND_MODES2[\"LIGHTEN\"] = 6] = \"LIGHTEN\";\n  BLEND_MODES2[BLEND_MODES2[\"COLOR_DODGE\"] = 7] = \"COLOR_DODGE\";\n  BLEND_MODES2[BLEND_MODES2[\"COLOR_BURN\"] = 8] = \"COLOR_BURN\";\n  BLEND_MODES2[BLEND_MODES2[\"HARD_LIGHT\"] = 9] = \"HARD_LIGHT\";\n  BLEND_MODES2[BLEND_MODES2[\"SOFT_LIGHT\"] = 10] = \"SOFT_LIGHT\";\n  BLEND_MODES2[BLEND_MODES2[\"DIFFERENCE\"] = 11] = \"DIFFERENCE\";\n  BLEND_MODES2[BLEND_MODES2[\"EXCLUSION\"] = 12] = \"EXCLUSION\";\n  BLEND_MODES2[BLEND_MODES2[\"HUE\"] = 13] = \"HUE\";\n  BLEND_MODES2[BLEND_MODES2[\"SATURATION\"] = 14] = \"SATURATION\";\n  BLEND_MODES2[BLEND_MODES2[\"COLOR\"] = 15] = \"COLOR\";\n  BLEND_MODES2[BLEND_MODES2[\"LUMINOSITY\"] = 16] = \"LUMINOSITY\";\n  BLEND_MODES2[BLEND_MODES2[\"NORMAL_NPM\"] = 17] = \"NORMAL_NPM\";\n  BLEND_MODES2[BLEND_MODES2[\"ADD_NPM\"] = 18] = \"ADD_NPM\";\n  BLEND_MODES2[BLEND_MODES2[\"SCREEN_NPM\"] = 19] = \"SCREEN_NPM\";\n  BLEND_MODES2[BLEND_MODES2[\"NONE\"] = 20] = \"NONE\";\n  BLEND_MODES2[BLEND_MODES2[\"SRC_OVER\"] = 0] = \"SRC_OVER\";\n  BLEND_MODES2[BLEND_MODES2[\"SRC_IN\"] = 21] = \"SRC_IN\";\n  BLEND_MODES2[BLEND_MODES2[\"SRC_OUT\"] = 22] = \"SRC_OUT\";\n  BLEND_MODES2[BLEND_MODES2[\"SRC_ATOP\"] = 23] = \"SRC_ATOP\";\n  BLEND_MODES2[BLEND_MODES2[\"DST_OVER\"] = 24] = \"DST_OVER\";\n  BLEND_MODES2[BLEND_MODES2[\"DST_IN\"] = 25] = \"DST_IN\";\n  BLEND_MODES2[BLEND_MODES2[\"DST_OUT\"] = 26] = \"DST_OUT\";\n  BLEND_MODES2[BLEND_MODES2[\"DST_ATOP\"] = 27] = \"DST_ATOP\";\n  BLEND_MODES2[BLEND_MODES2[\"ERASE\"] = 26] = \"ERASE\";\n  BLEND_MODES2[BLEND_MODES2[\"SUBTRACT\"] = 28] = \"SUBTRACT\";\n  BLEND_MODES2[BLEND_MODES2[\"XOR\"] = 29] = \"XOR\";\n  return BLEND_MODES2;\n})(BLEND_MODES || {});\nvar DRAW_MODES = /* @__PURE__ */ ((DRAW_MODES2) => {\n  DRAW_MODES2[DRAW_MODES2[\"POINTS\"] = 0] = \"POINTS\";\n  DRAW_MODES2[DRAW_MODES2[\"LINES\"] = 1] = \"LINES\";\n  DRAW_MODES2[DRAW_MODES2[\"LINE_LOOP\"] = 2] = \"LINE_LOOP\";\n  DRAW_MODES2[DRAW_MODES2[\"LINE_STRIP\"] = 3] = \"LINE_STRIP\";\n  DRAW_MODES2[DRAW_MODES2[\"TRIANGLES\"] = 4] = \"TRIANGLES\";\n  DRAW_MODES2[DRAW_MODES2[\"TRIANGLE_STRIP\"] = 5] = \"TRIANGLE_STRIP\";\n  DRAW_MODES2[DRAW_MODES2[\"TRIANGLE_FAN\"] = 6] = \"TRIANGLE_FAN\";\n  return DRAW_MODES2;\n})(DRAW_MODES || {});\nvar FORMATS = /* @__PURE__ */ ((FORMATS2) => {\n  FORMATS2[FORMATS2[\"RGBA\"] = 6408] = \"RGBA\";\n  FORMATS2[FORMATS2[\"RGB\"] = 6407] = \"RGB\";\n  FORMATS2[FORMATS2[\"RG\"] = 33319] = \"RG\";\n  FORMATS2[FORMATS2[\"RED\"] = 6403] = \"RED\";\n  FORMATS2[FORMATS2[\"RGBA_INTEGER\"] = 36249] = \"RGBA_INTEGER\";\n  FORMATS2[FORMATS2[\"RGB_INTEGER\"] = 36248] = \"RGB_INTEGER\";\n  FORMATS2[FORMATS2[\"RG_INTEGER\"] = 33320] = \"RG_INTEGER\";\n  FORMATS2[FORMATS2[\"RED_INTEGER\"] = 36244] = \"RED_INTEGER\";\n  FORMATS2[FORMATS2[\"ALPHA\"] = 6406] = \"ALPHA\";\n  FORMATS2[FORMATS2[\"LUMINANCE\"] = 6409] = \"LUMINANCE\";\n  FORMATS2[FORMATS2[\"LUMINANCE_ALPHA\"] = 6410] = \"LUMINANCE_ALPHA\";\n  FORMATS2[FORMATS2[\"DEPTH_COMPONENT\"] = 6402] = \"DEPTH_COMPONENT\";\n  FORMATS2[FORMATS2[\"DEPTH_STENCIL\"] = 34041] = \"DEPTH_STENCIL\";\n  return FORMATS2;\n})(FORMATS || {});\nvar TARGETS = /* @__PURE__ */ ((TARGETS2) => {\n  TARGETS2[TARGETS2[\"TEXTURE_2D\"] = 3553] = \"TEXTURE_2D\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP\"] = 34067] = \"TEXTURE_CUBE_MAP\";\n  TARGETS2[TARGETS2[\"TEXTURE_2D_ARRAY\"] = 35866] = \"TEXTURE_2D_ARRAY\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_X\"] = 34069] = \"TEXTURE_CUBE_MAP_POSITIVE_X\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_X\"] = 34070] = \"TEXTURE_CUBE_MAP_NEGATIVE_X\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Y\"] = 34071] = \"TEXTURE_CUBE_MAP_POSITIVE_Y\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Y\"] = 34072] = \"TEXTURE_CUBE_MAP_NEGATIVE_Y\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Z\"] = 34073] = \"TEXTURE_CUBE_MAP_POSITIVE_Z\";\n  TARGETS2[TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Z\"] = 34074] = \"TEXTURE_CUBE_MAP_NEGATIVE_Z\";\n  return TARGETS2;\n})(TARGETS || {});\nvar TYPES = /* @__PURE__ */ ((TYPES2) => {\n  TYPES2[TYPES2[\"UNSIGNED_BYTE\"] = 5121] = \"UNSIGNED_BYTE\";\n  TYPES2[TYPES2[\"UNSIGNED_SHORT\"] = 5123] = \"UNSIGNED_SHORT\";\n  TYPES2[TYPES2[\"UNSIGNED_SHORT_5_6_5\"] = 33635] = \"UNSIGNED_SHORT_5_6_5\";\n  TYPES2[TYPES2[\"UNSIGNED_SHORT_4_4_4_4\"] = 32819] = \"UNSIGNED_SHORT_4_4_4_4\";\n  TYPES2[TYPES2[\"UNSIGNED_SHORT_5_5_5_1\"] = 32820] = \"UNSIGNED_SHORT_5_5_5_1\";\n  TYPES2[TYPES2[\"UNSIGNED_INT\"] = 5125] = \"UNSIGNED_INT\";\n  TYPES2[TYPES2[\"UNSIGNED_INT_10F_11F_11F_REV\"] = 35899] = \"UNSIGNED_INT_10F_11F_11F_REV\";\n  TYPES2[TYPES2[\"UNSIGNED_INT_2_10_10_10_REV\"] = 33640] = \"UNSIGNED_INT_2_10_10_10_REV\";\n  TYPES2[TYPES2[\"UNSIGNED_INT_24_8\"] = 34042] = \"UNSIGNED_INT_24_8\";\n  TYPES2[TYPES2[\"UNSIGNED_INT_5_9_9_9_REV\"] = 35902] = \"UNSIGNED_INT_5_9_9_9_REV\";\n  TYPES2[TYPES2[\"BYTE\"] = 5120] = \"BYTE\";\n  TYPES2[TYPES2[\"SHORT\"] = 5122] = \"SHORT\";\n  TYPES2[TYPES2[\"INT\"] = 5124] = \"INT\";\n  TYPES2[TYPES2[\"FLOAT\"] = 5126] = \"FLOAT\";\n  TYPES2[TYPES2[\"FLOAT_32_UNSIGNED_INT_24_8_REV\"] = 36269] = \"FLOAT_32_UNSIGNED_INT_24_8_REV\";\n  TYPES2[TYPES2[\"HALF_FLOAT\"] = 36193] = \"HALF_FLOAT\";\n  return TYPES2;\n})(TYPES || {});\nvar SAMPLER_TYPES = /* @__PURE__ */ ((SAMPLER_TYPES2) => {\n  SAMPLER_TYPES2[SAMPLER_TYPES2[\"FLOAT\"] = 0] = \"FLOAT\";\n  SAMPLER_TYPES2[SAMPLER_TYPES2[\"INT\"] = 1] = \"INT\";\n  SAMPLER_TYPES2[SAMPLER_TYPES2[\"UINT\"] = 2] = \"UINT\";\n  return SAMPLER_TYPES2;\n})(SAMPLER_TYPES || {});\nvar SCALE_MODES = /* @__PURE__ */ ((SCALE_MODES2) => {\n  SCALE_MODES2[SCALE_MODES2[\"NEAREST\"] = 0] = \"NEAREST\";\n  SCALE_MODES2[SCALE_MODES2[\"LINEAR\"] = 1] = \"LINEAR\";\n  return SCALE_MODES2;\n})(SCALE_MODES || {});\nvar WRAP_MODES = /* @__PURE__ */ ((WRAP_MODES2) => {\n  WRAP_MODES2[WRAP_MODES2[\"CLAMP\"] = 33071] = \"CLAMP\";\n  WRAP_MODES2[WRAP_MODES2[\"REPEAT\"] = 10497] = \"REPEAT\";\n  WRAP_MODES2[WRAP_MODES2[\"MIRRORED_REPEAT\"] = 33648] = \"MIRRORED_REPEAT\";\n  return WRAP_MODES2;\n})(WRAP_MODES || {});\nvar MIPMAP_MODES = /* @__PURE__ */ ((MIPMAP_MODES2) => {\n  MIPMAP_MODES2[MIPMAP_MODES2[\"OFF\"] = 0] = \"OFF\";\n  MIPMAP_MODES2[MIPMAP_MODES2[\"POW2\"] = 1] = \"POW2\";\n  MIPMAP_MODES2[MIPMAP_MODES2[\"ON\"] = 2] = \"ON\";\n  MIPMAP_MODES2[MIPMAP_MODES2[\"ON_MANUAL\"] = 3] = \"ON_MANUAL\";\n  return MIPMAP_MODES2;\n})(MIPMAP_MODES || {});\nvar ALPHA_MODES = /* @__PURE__ */ ((ALPHA_MODES2) => {\n  ALPHA_MODES2[ALPHA_MODES2[\"NPM\"] = 0] = \"NPM\";\n  ALPHA_MODES2[ALPHA_MODES2[\"UNPACK\"] = 1] = \"UNPACK\";\n  ALPHA_MODES2[ALPHA_MODES2[\"PMA\"] = 2] = \"PMA\";\n  ALPHA_MODES2[ALPHA_MODES2[\"NO_PREMULTIPLIED_ALPHA\"] = 0] = \"NO_PREMULTIPLIED_ALPHA\";\n  ALPHA_MODES2[ALPHA_MODES2[\"PREMULTIPLY_ON_UPLOAD\"] = 1] = \"PREMULTIPLY_ON_UPLOAD\";\n  ALPHA_MODES2[ALPHA_MODES2[\"PREMULTIPLIED_ALPHA\"] = 2] = \"PREMULTIPLIED_ALPHA\";\n  return ALPHA_MODES2;\n})(ALPHA_MODES || {});\nvar CLEAR_MODES = /* @__PURE__ */ ((CLEAR_MODES2) => {\n  CLEAR_MODES2[CLEAR_MODES2[\"NO\"] = 0] = \"NO\";\n  CLEAR_MODES2[CLEAR_MODES2[\"YES\"] = 1] = \"YES\";\n  CLEAR_MODES2[CLEAR_MODES2[\"AUTO\"] = 2] = \"AUTO\";\n  CLEAR_MODES2[CLEAR_MODES2[\"BLEND\"] = 0] = \"BLEND\";\n  CLEAR_MODES2[CLEAR_MODES2[\"CLEAR\"] = 1] = \"CLEAR\";\n  CLEAR_MODES2[CLEAR_MODES2[\"BLIT\"] = 2] = \"BLIT\";\n  return CLEAR_MODES2;\n})(CLEAR_MODES || {});\nvar GC_MODES = /* @__PURE__ */ ((GC_MODES2) => {\n  GC_MODES2[GC_MODES2[\"AUTO\"] = 0] = \"AUTO\";\n  GC_MODES2[GC_MODES2[\"MANUAL\"] = 1] = \"MANUAL\";\n  return GC_MODES2;\n})(GC_MODES || {});\nvar PRECISION = /* @__PURE__ */ ((PRECISION2) => {\n  PRECISION2[\"LOW\"] = \"lowp\";\n  PRECISION2[\"MEDIUM\"] = \"mediump\";\n  PRECISION2[\"HIGH\"] = \"highp\";\n  return PRECISION2;\n})(PRECISION || {});\nvar MASK_TYPES = /* @__PURE__ */ ((MASK_TYPES2) => {\n  MASK_TYPES2[MASK_TYPES2[\"NONE\"] = 0] = \"NONE\";\n  MASK_TYPES2[MASK_TYPES2[\"SCISSOR\"] = 1] = \"SCISSOR\";\n  MASK_TYPES2[MASK_TYPES2[\"STENCIL\"] = 2] = \"STENCIL\";\n  MASK_TYPES2[MASK_TYPES2[\"SPRITE\"] = 3] = \"SPRITE\";\n  MASK_TYPES2[MASK_TYPES2[\"COLOR\"] = 4] = \"COLOR\";\n  return MASK_TYPES2;\n})(MASK_TYPES || {});\nvar COLOR_MASK_BITS = /* @__PURE__ */ ((COLOR_MASK_BITS2) => {\n  COLOR_MASK_BITS2[COLOR_MASK_BITS2[\"RED\"] = 1] = \"RED\";\n  COLOR_MASK_BITS2[COLOR_MASK_BITS2[\"GREEN\"] = 2] = \"GREEN\";\n  COLOR_MASK_BITS2[COLOR_MASK_BITS2[\"BLUE\"] = 4] = \"BLUE\";\n  COLOR_MASK_BITS2[COLOR_MASK_BITS2[\"ALPHA\"] = 8] = \"ALPHA\";\n  return COLOR_MASK_BITS2;\n})(COLOR_MASK_BITS || {});\nvar MSAA_QUALITY = /* @__PURE__ */ ((MSAA_QUALITY2) => {\n  MSAA_QUALITY2[MSAA_QUALITY2[\"NONE\"] = 0] = \"NONE\";\n  MSAA_QUALITY2[MSAA_QUALITY2[\"LOW\"] = 2] = \"LOW\";\n  MSAA_QUALITY2[MSAA_QUALITY2[\"MEDIUM\"] = 4] = \"MEDIUM\";\n  MSAA_QUALITY2[MSAA_QUALITY2[\"HIGH\"] = 8] = \"HIGH\";\n  return MSAA_QUALITY2;\n})(MSAA_QUALITY || {});\nvar BUFFER_TYPE = /* @__PURE__ */ ((BUFFER_TYPE2) => {\n  BUFFER_TYPE2[BUFFER_TYPE2[\"ELEMENT_ARRAY_BUFFER\"] = 34963] = \"ELEMENT_ARRAY_BUFFER\";\n  BUFFER_TYPE2[BUFFER_TYPE2[\"ARRAY_BUFFER\"] = 34962] = \"ARRAY_BUFFER\";\n  BUFFER_TYPE2[BUFFER_TYPE2[\"UNIFORM_BUFFER\"] = 35345] = \"UNIFORM_BUFFER\";\n  return BUFFER_TYPE2;\n})(BUFFER_TYPE || {});\n\nexport { ALPHA_MODES, BLEND_MODES, BUFFER_BITS, BUFFER_TYPE, CLEAR_MODES, COLOR_MASK_BITS, DRAW_MODES, ENV, FORMATS, GC_MODES, MASK_TYPES, MIPMAP_MODES, MSAA_QUALITY, PRECISION, RENDERER_TYPE, SAMPLER_TYPES, SCALE_MODES, TARGETS, TYPES, WRAP_MODES };\n//# sourceMappingURL=index.mjs.map\n","const BrowserAdapter = {\n  createCanvas: (width, height) => {\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = width;\n    canvas.height = height;\n    return canvas;\n  },\n  getCanvasRenderingContext2D: () => CanvasRenderingContext2D,\n  getWebGLRenderingContext: () => WebGLRenderingContext,\n  getNavigator: () => navigator,\n  getBaseUrl: () => document.baseURI ?? window.location.href,\n  getFontFaceSet: () => document.fonts,\n  fetch: (url, options) => fetch(url, options),\n  parseXML: (xml) => {\n    const parser = new DOMParser();\n    return parser.parseFromString(xml, \"text/xml\");\n  }\n};\n\nexport { BrowserAdapter };\n//# sourceMappingURL=adapter.mjs.map\n","import { BrowserAdapter } from './adapter.mjs';\n\nconst settings = {\n  ADAPTER: BrowserAdapter,\n  RESOLUTION: 1,\n  RENDER_OPTIONS: {\n    view: null,\n    width: 800,\n    height: 600,\n    autoDensity: false,\n    backgroundColor: 0,\n    backgroundAlpha: 1,\n    clearBeforeRender: true,\n    antialias: false,\n    premultipliedAlpha: true,\n    preserveDrawingBuffer: false,\n    hello: false\n  },\n  CREATE_IMAGE_BITMAP: false,\n  ROUND_PIXELS: false\n};\n\nexport { settings };\n//# sourceMappingURL=settings.mjs.map\n","var appleIphone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar appleUniversal = /\\biOS-universal(?:.+)Mac\\b/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i;\nvar androidTablet = /Android/i;\nvar amazonPhone = /(?:SD4930UR|\\bSilk(?:.+)Mobile\\b)/i;\nvar amazonTablet = /Silk/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i;\nvar otherBlackBerry = /BlackBerry/i;\nvar otherBlackBerry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i;\nvar isAppleTabletOnIos13 = function (navigator) {\n    return (typeof navigator !== 'undefined' &&\n        navigator.platform === 'MacIntel' &&\n        typeof navigator.maxTouchPoints === 'number' &&\n        navigator.maxTouchPoints > 1 &&\n        typeof MSStream === 'undefined');\n};\nfunction createMatch(userAgent) {\n    return function (regex) { return regex.test(userAgent); };\n}\nfunction isMobile(param) {\n    var nav = {\n        userAgent: '',\n        platform: '',\n        maxTouchPoints: 0\n    };\n    if (!param && typeof navigator !== 'undefined') {\n        nav = {\n            userAgent: navigator.userAgent,\n            platform: navigator.platform,\n            maxTouchPoints: navigator.maxTouchPoints || 0\n        };\n    }\n    else if (typeof param === 'string') {\n        nav.userAgent = param;\n    }\n    else if (param && param.userAgent) {\n        nav = {\n            userAgent: param.userAgent,\n            platform: param.platform,\n            maxTouchPoints: param.maxTouchPoints || 0\n        };\n    }\n    var userAgent = nav.userAgent;\n    var tmp = userAgent.split('[FBAN');\n    if (typeof tmp[1] !== 'undefined') {\n        userAgent = tmp[0];\n    }\n    tmp = userAgent.split('Twitter');\n    if (typeof tmp[1] !== 'undefined') {\n        userAgent = tmp[0];\n    }\n    var match = createMatch(userAgent);\n    var result = {\n        apple: {\n            phone: match(appleIphone) && !match(windowsPhone),\n            ipod: match(appleIpod),\n            tablet: !match(appleIphone) &&\n                (match(appleTablet) || isAppleTabletOnIos13(nav)) &&\n                !match(windowsPhone),\n            universal: match(appleUniversal),\n            device: (match(appleIphone) ||\n                match(appleIpod) ||\n                match(appleTablet) ||\n                match(appleUniversal) ||\n                isAppleTabletOnIos13(nav)) &&\n                !match(windowsPhone)\n        },\n        amazon: {\n            phone: match(amazonPhone),\n            tablet: !match(amazonPhone) && match(amazonTablet),\n            device: match(amazonPhone) || match(amazonTablet)\n        },\n        android: {\n            phone: (!match(windowsPhone) && match(amazonPhone)) ||\n                (!match(windowsPhone) && match(androidPhone)),\n            tablet: !match(windowsPhone) &&\n                !match(amazonPhone) &&\n                !match(androidPhone) &&\n                (match(amazonTablet) || match(androidTablet)),\n            device: (!match(windowsPhone) &&\n                (match(amazonPhone) ||\n                    match(amazonTablet) ||\n                    match(androidPhone) ||\n                    match(androidTablet))) ||\n                match(/\\bokhttp\\b/i)\n        },\n        windows: {\n            phone: match(windowsPhone),\n            tablet: match(windowsTablet),\n            device: match(windowsPhone) || match(windowsTablet)\n        },\n        other: {\n            blackberry: match(otherBlackBerry),\n            blackberry10: match(otherBlackBerry10),\n            opera: match(otherOpera),\n            firefox: match(otherFirefox),\n            chrome: match(otherChrome),\n            device: match(otherBlackBerry) ||\n                match(otherBlackBerry10) ||\n                match(otherOpera) ||\n                match(otherFirefox) ||\n                match(otherChrome)\n        },\n        any: false,\n        phone: false,\n        tablet: false\n    };\n    result.any =\n        result.apple.device ||\n            result.android.device ||\n            result.windows.device ||\n            result.other.device;\n    result.phone =\n        result.apple.phone || result.android.phone || result.windows.phone;\n    result.tablet =\n        result.apple.tablet || result.android.tablet || result.windows.tablet;\n    return result;\n}\n\nexport { isMobile as default };\n//# sourceMappingURL=isMobile.mjs.map\n","import './../external/ismobilejs/esm/index.mjs';\nimport isMobile$1 from './../external/ismobilejs/esm/isMobile.mjs';\n\nconst isMobile = isMobile$1(globalThis.navigator);\n\nexport { isMobile };\n//# sourceMappingURL=isMobile.mjs.map\n","import { settings } from '@pixi/settings';\nexport { settings } from '@pixi/settings';\n\nsettings.RETINA_PREFIX = /@([0-9\\.]+)x/;\nsettings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = false;\n//# sourceMappingURL=settings.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n    dim = dim || 2;\n\n    var hasHoles = holeIndices && holeIndices.length,\n        outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n        outerNode = linkedList(data, 0, outerLen, dim, true),\n        triangles = [];\n\n    if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n    var minX, minY, maxX, maxY, x, y, invSize;\n\n    if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n    // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n    if (data.length > 80 * dim) {\n        minX = maxX = data[0];\n        minY = maxY = data[1];\n\n        for (var i = dim; i < outerLen; i += dim) {\n            x = data[i];\n            y = data[i + 1];\n            if (x < minX) minX = x;\n            if (y < minY) minY = y;\n            if (x > maxX) maxX = x;\n            if (y > maxY) maxY = y;\n        }\n\n        // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n        invSize = Math.max(maxX - minX, maxY - minY);\n        invSize = invSize !== 0 ? 32767 / invSize : 0;\n    }\n\n    earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n\n    return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n    var i, last;\n\n    if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n        for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n    } else {\n        for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n    }\n\n    if (last && equals(last, last.next)) {\n        removeNode(last);\n        last = last.next;\n    }\n\n    return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n    if (!start) return start;\n    if (!end) end = start;\n\n    var p = start,\n        again;\n    do {\n        again = false;\n\n        if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n            removeNode(p);\n            p = end = p.prev;\n            if (p === p.next) break;\n            again = true;\n\n        } else {\n            p = p.next;\n        }\n    } while (again || p !== end);\n\n    return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n    if (!ear) return;\n\n    // interlink polygon nodes in z-order\n    if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n    var stop = ear,\n        prev, next;\n\n    // iterate through ears, slicing them one by one\n    while (ear.prev !== ear.next) {\n        prev = ear.prev;\n        next = ear.next;\n\n        if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n            // cut off the triangle\n            triangles.push(prev.i / dim | 0);\n            triangles.push(ear.i / dim | 0);\n            triangles.push(next.i / dim | 0);\n\n            removeNode(ear);\n\n            // skipping the next vertex leads to less sliver triangles\n            ear = next.next;\n            stop = next.next;\n\n            continue;\n        }\n\n        ear = next;\n\n        // if we looped through the whole remaining polygon and can't find any more ears\n        if (ear === stop) {\n            // try filtering points and slicing again\n            if (!pass) {\n                earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n            // if this didn't work, try curing all small self-intersections locally\n            } else if (pass === 1) {\n                ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n                earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n            // as a last resort, try splitting the remaining polygon into two\n            } else if (pass === 2) {\n                splitEarcut(ear, triangles, dim, minX, minY, invSize);\n            }\n\n            break;\n        }\n    }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n    var a = ear.prev,\n        b = ear,\n        c = ear.next;\n\n    if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n    // now make sure we don't have other points inside the potential ear\n    var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n    // triangle bbox; min & max are calculated like this for speed\n    var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n        y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n        x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n        y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n    var p = c.next;\n    while (p !== a) {\n        if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n            pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) &&\n            area(p.prev, p, p.next) >= 0) return false;\n        p = p.next;\n    }\n\n    return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n    var a = ear.prev,\n        b = ear,\n        c = ear.next;\n\n    if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n    var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n    // triangle bbox; min & max are calculated like this for speed\n    var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n        y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n        x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n        y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n    // z-order range for the current triangle bbox;\n    var minZ = zOrder(x0, y0, minX, minY, invSize),\n        maxZ = zOrder(x1, y1, minX, minY, invSize);\n\n    var p = ear.prevZ,\n        n = ear.nextZ;\n\n    // look for points inside the triangle in both directions\n    while (p && p.z >= minZ && n && n.z <= maxZ) {\n        if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n            pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n        p = p.prevZ;\n\n        if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n            pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n        n = n.nextZ;\n    }\n\n    // look for remaining points in decreasing z-order\n    while (p && p.z >= minZ) {\n        if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n            pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n        p = p.prevZ;\n    }\n\n    // look for remaining points in increasing z-order\n    while (n && n.z <= maxZ) {\n        if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n            pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n        n = n.nextZ;\n    }\n\n    return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n    var p = start;\n    do {\n        var a = p.prev,\n            b = p.next.next;\n\n        if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n            triangles.push(a.i / dim | 0);\n            triangles.push(p.i / dim | 0);\n            triangles.push(b.i / dim | 0);\n\n            // remove two nodes involved\n            removeNode(p);\n            removeNode(p.next);\n\n            p = start = b;\n        }\n        p = p.next;\n    } while (p !== start);\n\n    return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n    // look for a valid diagonal that divides the polygon into two\n    var a = start;\n    do {\n        var b = a.next.next;\n        while (b !== a.prev) {\n            if (a.i !== b.i && isValidDiagonal(a, b)) {\n                // split the polygon in two by the diagonal\n                var c = splitPolygon(a, b);\n\n                // filter colinear points around the cuts\n                a = filterPoints(a, a.next);\n                c = filterPoints(c, c.next);\n\n                // run earcut on each half\n                earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n                earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n                return;\n            }\n            b = b.next;\n        }\n        a = a.next;\n    } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n    var queue = [],\n        i, len, start, end, list;\n\n    for (i = 0, len = holeIndices.length; i < len; i++) {\n        start = holeIndices[i] * dim;\n        end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n        list = linkedList(data, start, end, dim, false);\n        if (list === list.next) list.steiner = true;\n        queue.push(getLeftmost(list));\n    }\n\n    queue.sort(compareX);\n\n    // process holes from left to right\n    for (i = 0; i < queue.length; i++) {\n        outerNode = eliminateHole(queue[i], outerNode);\n    }\n\n    return outerNode;\n}\n\nfunction compareX(a, b) {\n    return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n    var bridge = findHoleBridge(hole, outerNode);\n    if (!bridge) {\n        return outerNode;\n    }\n\n    var bridgeReverse = splitPolygon(bridge, hole);\n\n    // filter collinear points around the cuts\n    filterPoints(bridgeReverse, bridgeReverse.next);\n    return filterPoints(bridge, bridge.next);\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n    var p = outerNode,\n        hx = hole.x,\n        hy = hole.y,\n        qx = -Infinity,\n        m;\n\n    // find a segment intersected by a ray from the hole's leftmost point to the left;\n    // segment's endpoint with lesser x will be potential connection point\n    do {\n        if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n            var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n            if (x <= hx && x > qx) {\n                qx = x;\n                m = p.x < p.next.x ? p : p.next;\n                if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n            }\n        }\n        p = p.next;\n    } while (p !== outerNode);\n\n    if (!m) return null;\n\n    // look for points inside the triangle of hole point, segment intersection and endpoint;\n    // if there are no points found, we have a valid connection;\n    // otherwise choose the point of the minimum angle with the ray as connection point\n\n    var stop = m,\n        mx = m.x,\n        my = m.y,\n        tanMin = Infinity,\n        tan;\n\n    p = m;\n\n    do {\n        if (hx >= p.x && p.x >= mx && hx !== p.x &&\n                pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n            tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n            if (locallyInside(p, hole) &&\n                (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n                m = p;\n                tanMin = tan;\n            }\n        }\n\n        p = p.next;\n    } while (p !== stop);\n\n    return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n    return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n    var p = start;\n    do {\n        if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n        p.prevZ = p.prev;\n        p.nextZ = p.next;\n        p = p.next;\n    } while (p !== start);\n\n    p.prevZ.nextZ = null;\n    p.prevZ = null;\n\n    sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n    var i, p, q, e, tail, numMerges, pSize, qSize,\n        inSize = 1;\n\n    do {\n        p = list;\n        list = null;\n        tail = null;\n        numMerges = 0;\n\n        while (p) {\n            numMerges++;\n            q = p;\n            pSize = 0;\n            for (i = 0; i < inSize; i++) {\n                pSize++;\n                q = q.nextZ;\n                if (!q) break;\n            }\n            qSize = inSize;\n\n            while (pSize > 0 || (qSize > 0 && q)) {\n\n                if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n                    e = p;\n                    p = p.nextZ;\n                    pSize--;\n                } else {\n                    e = q;\n                    q = q.nextZ;\n                    qSize--;\n                }\n\n                if (tail) tail.nextZ = e;\n                else list = e;\n\n                e.prevZ = tail;\n                tail = e;\n            }\n\n            p = q;\n        }\n\n        tail.nextZ = null;\n        inSize *= 2;\n\n    } while (numMerges > 1);\n\n    return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n    // coords are transformed into non-negative 15-bit integer range\n    x = (x - minX) * invSize | 0;\n    y = (y - minY) * invSize | 0;\n\n    x = (x | (x << 8)) & 0x00FF00FF;\n    x = (x | (x << 4)) & 0x0F0F0F0F;\n    x = (x | (x << 2)) & 0x33333333;\n    x = (x | (x << 1)) & 0x55555555;\n\n    y = (y | (y << 8)) & 0x00FF00FF;\n    y = (y | (y << 4)) & 0x0F0F0F0F;\n    y = (y | (y << 2)) & 0x33333333;\n    y = (y | (y << 1)) & 0x55555555;\n\n    return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n    var p = start,\n        leftmost = start;\n    do {\n        if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n        p = p.next;\n    } while (p !== start);\n\n    return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n    return (cx - px) * (ay - py) >= (ax - px) * (cy - py) &&\n           (ax - px) * (by - py) >= (bx - px) * (ay - py) &&\n           (bx - px) * (cy - py) >= (cx - px) * (by - py);\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n    return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n           (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n            (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n            equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n    return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n    return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n    var o1 = sign(area(p1, q1, p2));\n    var o2 = sign(area(p1, q1, q2));\n    var o3 = sign(area(p2, q2, p1));\n    var o4 = sign(area(p2, q2, q1));\n\n    if (o1 !== o2 && o3 !== o4) return true; // general case\n\n    if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n    if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n    if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n    if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n    return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n    return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n    return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n    var p = a;\n    do {\n        if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n                intersects(p, p.next, a, b)) return true;\n        p = p.next;\n    } while (p !== a);\n\n    return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n    return area(a.prev, a, a.next) < 0 ?\n        area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n        area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n    var p = a,\n        inside = false,\n        px = (a.x + b.x) / 2,\n        py = (a.y + b.y) / 2;\n    do {\n        if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n                (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n            inside = !inside;\n        p = p.next;\n    } while (p !== a);\n\n    return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n    var a2 = new Node(a.i, a.x, a.y),\n        b2 = new Node(b.i, b.x, b.y),\n        an = a.next,\n        bp = b.prev;\n\n    a.next = b;\n    b.prev = a;\n\n    a2.next = an;\n    an.prev = a2;\n\n    b2.next = a2;\n    a2.prev = b2;\n\n    bp.next = b2;\n    b2.prev = bp;\n\n    return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n    var p = new Node(i, x, y);\n\n    if (!last) {\n        p.prev = p;\n        p.next = p;\n\n    } else {\n        p.next = last.next;\n        p.prev = last;\n        last.next.prev = p;\n        last.next = p;\n    }\n    return p;\n}\n\nfunction removeNode(p) {\n    p.next.prev = p.prev;\n    p.prev.next = p.next;\n\n    if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n    if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n    // vertex index in coordinates array\n    this.i = i;\n\n    // vertex coordinates\n    this.x = x;\n    this.y = y;\n\n    // previous and next vertex nodes in a polygon ring\n    this.prev = null;\n    this.next = null;\n\n    // z-order curve value\n    this.z = 0;\n\n    // previous and next nodes in z-order\n    this.prevZ = null;\n    this.nextZ = null;\n\n    // indicates whether this is a steiner point\n    this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n    var hasHoles = holeIndices && holeIndices.length;\n    var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n    var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n    if (hasHoles) {\n        for (var i = 0, len = holeIndices.length; i < len; i++) {\n            var start = holeIndices[i] * dim;\n            var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n            polygonArea -= Math.abs(signedArea(data, start, end, dim));\n        }\n    }\n\n    var trianglesArea = 0;\n    for (i = 0; i < triangles.length; i += 3) {\n        var a = triangles[i] * dim;\n        var b = triangles[i + 1] * dim;\n        var c = triangles[i + 2] * dim;\n        trianglesArea += Math.abs(\n            (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n            (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n    }\n\n    return polygonArea === 0 && trianglesArea === 0 ? 0 :\n        Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n    var sum = 0;\n    for (var i = start, j = end - dim; i < end; i += dim) {\n        sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n        j = i;\n    }\n    return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n    var dim = data[0][0].length,\n        result = {vertices: [], holes: [], dimensions: dim},\n        holeIndex = 0;\n\n    for (var i = 0; i < data.length; i++) {\n        for (var j = 0; j < data[i].length; j++) {\n            for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n        }\n        if (i > 0) {\n            holeIndex += data[i - 1].length;\n            result.holes.push(holeIndex);\n        }\n    }\n    return result;\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nmodule.exports = {\n  isString: function(arg) {\n    return typeof(arg) === 'string';\n  },\n  isObject: function(arg) {\n    return typeof(arg) === 'object' && arg !== null;\n  },\n  isNull: function(arg) {\n    return arg === null;\n  },\n  isNullOrUndefined: function(arg) {\n    return arg == null;\n  }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n  sep = sep || '&';\n  eq = eq || '=';\n  var obj = {};\n\n  if (typeof qs !== 'string' || qs.length === 0) {\n    return obj;\n  }\n\n  var regexp = /\\+/g;\n  qs = qs.split(sep);\n\n  var maxKeys = 1000;\n  if (options && typeof options.maxKeys === 'number') {\n    maxKeys = options.maxKeys;\n  }\n\n  var len = qs.length;\n  // maxKeys <= 0 means that we should not limit keys count\n  if (maxKeys > 0 && len > maxKeys) {\n    len = maxKeys;\n  }\n\n  for (var i = 0; i < len; ++i) {\n    var x = qs[i].replace(regexp, '%20'),\n        idx = x.indexOf(eq),\n        kstr, vstr, k, v;\n\n    if (idx >= 0) {\n      kstr = x.substr(0, idx);\n      vstr = x.substr(idx + 1);\n    } else {\n      kstr = x;\n      vstr = '';\n    }\n\n    k = decodeURIComponent(kstr);\n    v = decodeURIComponent(vstr);\n\n    if (!hasOwnProperty(obj, k)) {\n      obj[k] = v;\n    } else if (Array.isArray(obj[k])) {\n      obj[k].push(v);\n    } else {\n      obj[k] = [obj[k], v];\n    }\n  }\n\n  return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n  switch (typeof v) {\n    case 'string':\n      return v;\n\n    case 'boolean':\n      return v ? 'true' : 'false';\n\n    case 'number':\n      return isFinite(v) ? v : '';\n\n    default:\n      return '';\n  }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n  sep = sep || '&';\n  eq = eq || '=';\n  if (obj === null) {\n    obj = undefined;\n  }\n\n  if (typeof obj === 'object') {\n    return Object.keys(obj).map(function(k) {\n      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n      if (Array.isArray(obj[k])) {\n        return obj[k].map(function(v) {\n          return ks + encodeURIComponent(stringifyPrimitive(v));\n        }).join(sep);\n      } else {\n        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n      }\n    }).join(sep);\n\n  }\n\n  if (!name) return '';\n  return encodeURIComponent(stringifyPrimitive(name)) + eq +\n         encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n    portPattern = /:[0-9]*$/,\n\n    // Special case for a simple path URL\n    simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n    // RFC 2396: characters reserved for delimiting URLs.\n    // We actually just auto-escape these.\n    delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n    // RFC 2396: characters not allowed for various reasons.\n    unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n    autoEscape = ['\\''].concat(unwise),\n    // Characters that are never ever allowed in a hostname.\n    // Note that any invalid chars are also handled, but these\n    // are the ones that are *expected* to be seen, so we fast-path\n    // them.\n    nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n    hostEndingChars = ['/', '?', '#'],\n    hostnameMaxLen = 255,\n    hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n    hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n    // protocols that can allow \"unsafe\" and \"unwise\" chars.\n    unsafeProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that never have a hostname.\n    hostlessProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that always contain a // bit.\n    slashedProtocol = {\n      'http': true,\n      'https': true,\n      'ftp': true,\n      'gopher': true,\n      'file': true,\n      'http:': true,\n      'https:': true,\n      'ftp:': true,\n      'gopher:': true,\n      'file:': true\n    },\n    querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && util.isObject(url) && url instanceof Url) return url;\n\n  var u = new Url;\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n  if (!util.isString(url)) {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  // Copy chrome, IE, opera backslash-handling behavior.\n  // Back slashes before the query string get converted to forward slashes\n  // See: https://code.google.com/p/chromium/issues/detail?id=25916\n  var queryIndex = url.indexOf('?'),\n      splitter =\n          (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n      uSplit = url.split(splitter),\n      slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  // trim before proceeding.\n  // This is to support parse stuff like \"  http://foo.com  \\n\"\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  // figure out if it's got a host\n  // user@server is *always* interpreted as a hostname, and url\n  // resolution will treat //foo/bar as host=foo,path=bar because that's\n  // how the browser resolves relative URLs.\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] &&\n      (slashes || (proto && !slashedProtocol[proto]))) {\n\n    // there's a hostname.\n    // the first instance of /, ?, ;, or # ends the host.\n    //\n    // If there is an @ in the hostname, then non-host chars *are* allowed\n    // to the left of the last @ sign, unless some host-ending character\n    // comes *before* the @-sign.\n    // URLs are obnoxious.\n    //\n    // ex:\n    // http://a@b@c/ => user:a@b host:c\n    // http://a@b?@c => user:a host:c path:/?@c\n\n    // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n    // Review our test case against browsers more comprehensively.\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n\n    // at this point, either we have an explicit point where the\n    // auth portion cannot go past, or the last @ char is the decider.\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      // atSign must be in auth portion.\n      // http://a@b/c@d => host:b auth:a path:/c@d\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    // Now we have a portion which is definitely the auth.\n    // Pull that off.\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1)\n      hostEnd = rest.length;\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    // we've indicated that there is a hostname,\n    // so even if it's empty, it has to be present.\n    this.hostname = this.hostname || '';\n\n    // if hostname begins with [ and ends with ]\n    // assume that it's an IPv6 address.\n    var ipv6Hostname = this.hostname[0] === '[' &&\n        this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) continue;\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              // we replace non-ASCII char with a temporary placeholder\n              // we need this to make sure size of hostname is not\n              // broken by replacing non-ASCII by nothing\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      // IDNA Support: Returns a punycoded representation of \"domain\".\n      // It only converts parts of the domain name that\n      // have non-ASCII characters, i.e. it doesn't matter if\n      // you call it with a domain that already is ASCII-only.\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    // strip [ and ] from the hostname\n    // the host field still retains them, though\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  // now rest is set to the post-host stuff.\n  // chop off any delim chars.\n  if (!unsafeProtocol[lowerProto]) {\n\n    // First, make 100% sure that any \"autoEscape\" chars get\n    // escaped, even if encodeURIComponent doesn't think they\n    // need to be.\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1)\n        continue;\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) this.pathname = rest;\n  if (slashedProtocol[lowerProto] &&\n      this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  //to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  // ensure it's an object, and not a string url.\n  // If it's an obj, this is a no-op.\n  // this way, you can call url_format() on strings\n  // to clean up potentially wonky urls.\n  if (util.isString(obj)) obj = urlParse(obj);\n  if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n  return obj.format();\n}\n\nUrl.prototype.format = function() {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n      pathname = this.pathname || '',\n      hash = this.hash || '',\n      host = false,\n      query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ?\n        this.hostname :\n        '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query &&\n      util.isObject(this.query) &&\n      Object.keys(this.query).length) {\n    query = querystring.stringify(this.query);\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n  // only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n  // unless they had them to begin with.\n  if (this.slashes ||\n      (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n  if (search && search.charAt(0) !== '?') search = '?' + search;\n\n  pathname = pathname.replace(/[?#]/g, function(match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) return relative;\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n  if (util.isString(relative)) {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  // hash is always overridden, no matter what.\n  // even href=\"\" will remove it.\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol')\n        result[rkey] = relative[rkey];\n    }\n\n    //urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] &&\n        result.hostname && !result.pathname) {\n      result.path = result.pathname = '/';\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    // if it's a known url protocol, then changing\n    // the protocol does weird things\n    // first, if it's not file:, then we MUST have a host,\n    // and if there was a path\n    // to begin with, then we MUST have a path.\n    // if it is file:, then the host is dropped,\n    // because that's known to be hostless.\n    // anything else is assumed to be absolute.\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift()));\n      if (!relative.host) relative.host = '';\n      if (!relative.hostname) relative.hostname = '';\n      if (relPath[0] !== '') relPath.unshift('');\n      if (relPath.length < 2) relPath.unshift('');\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n      isRelAbs = (\n          relative.host ||\n          relative.pathname && relative.pathname.charAt(0) === '/'\n      ),\n      mustEndAbs = (isRelAbs || isSourceAbs ||\n                    (result.host && relative.pathname)),\n      removeAllDots = mustEndAbs,\n      srcPath = result.pathname && result.pathname.split('/') || [],\n      relPath = relative.pathname && relative.pathname.split('/') || [],\n      psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  // if the url is a non-slashed url, then relative\n  // links like ../.. should be able\n  // to crawl up to the hostname, as well.  This is strange.\n  // result.protocol has already been set by now.\n  // Later on, put the first path part into the host field.\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') srcPath[0] = result.host;\n      else srcPath.unshift(result.host);\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') relPath[0] = relative.host;\n        else relPath.unshift(relative.host);\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = (relative.host || relative.host === '') ?\n                  relative.host : result.host;\n    result.hostname = (relative.hostname || relative.hostname === '') ?\n                      relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    // it's relative\n    // throw away the existing file, and take the new path instead.\n    if (!srcPath) srcPath = [];\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (!util.isNullOrUndefined(relative.search)) {\n    // just pull out the search.\n    // like href='?foo'.\n    // Put this after the other two cases because it simplifies the booleans\n    if (psychotic) {\n      result.hostname = result.host = srcPath.shift();\n      //occationaly the auth can get stuck only in host\n      //this especially happens in cases like\n      //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n      var authInHost = result.host && result.host.indexOf('@') > 0 ?\n                       result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.host = result.hostname = authInHost.shift();\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    //to support http.request\n    if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n      result.path = (result.pathname ? result.pathname : '') +\n                    (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    // no path at all.  easy.\n    // we've already handled the other stuff above.\n    result.pathname = null;\n    //to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  // if a url ENDs in . or .., then it must get a trailing slash.\n  // however, if it ends in anything else non-slashy,\n  // then it must NOT get a trailing slash.\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (\n      (result.host || relative.host || srcPath.length > 1) &&\n      (last === '.' || last === '..') || last === '');\n\n  // strip single dots, resolve double dots to parent dir\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' &&\n      (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' ||\n      (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = result.host = isAbsolute ? '' :\n                                    srcPath.length ? srcPath.shift() : '';\n    //occationaly the auth can get stuck only in host\n    //this especially happens in cases like\n    //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n    var authInHost = result.host && result.host.indexOf('@') > 0 ?\n                     result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.host = result.hostname = authInHost.shift();\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (!srcPath.length) {\n    result.pathname = null;\n    result.path = null;\n  } else {\n    result.pathname = srcPath.join('/');\n  }\n\n  //to support request.http\n  if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n    result.path = (result.pathname ? result.pathname : '') +\n                  (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function() {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) this.hostname = host;\n};\n","import { parse, format, resolve } from 'url';\n\nconst url = {\n  parse: parse,\n  format: format,\n  resolve: resolve\n};\n\nexport { url };\n//# sourceMappingURL=url.mjs.map\n","import { settings } from '@pixi/settings';\n\nfunction assertPath(path2) {\n  if (typeof path2 !== \"string\") {\n    throw new TypeError(`Path must be a string. Received ${JSON.stringify(path2)}`);\n  }\n}\nfunction removeUrlParams(url) {\n  const re = url.split(\"?\")[0];\n  return re.split(\"#\")[0];\n}\nfunction escapeRegExp(string) {\n  return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction replaceAll(str, find, replace) {\n  return str.replace(new RegExp(escapeRegExp(find), \"g\"), replace);\n}\nfunction normalizeStringPosix(path2, allowAboveRoot) {\n  let res = \"\";\n  let lastSegmentLength = 0;\n  let lastSlash = -1;\n  let dots = 0;\n  let code = -1;\n  for (let i = 0; i <= path2.length; ++i) {\n    if (i < path2.length) {\n      code = path2.charCodeAt(i);\n    } else if (code === 47) {\n      break;\n    } else {\n      code = 47;\n    }\n    if (code === 47) {\n      if (lastSlash === i - 1 || dots === 1) {\n      } else if (lastSlash !== i - 1 && dots === 2) {\n        if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n          if (res.length > 2) {\n            const lastSlashIndex = res.lastIndexOf(\"/\");\n            if (lastSlashIndex !== res.length - 1) {\n              if (lastSlashIndex === -1) {\n                res = \"\";\n                lastSegmentLength = 0;\n              } else {\n                res = res.slice(0, lastSlashIndex);\n                lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n              }\n              lastSlash = i;\n              dots = 0;\n              continue;\n            }\n          } else if (res.length === 2 || res.length === 1) {\n            res = \"\";\n            lastSegmentLength = 0;\n            lastSlash = i;\n            dots = 0;\n            continue;\n          }\n        }\n        if (allowAboveRoot) {\n          if (res.length > 0) {\n            res += \"/..\";\n          } else {\n            res = \"..\";\n          }\n          lastSegmentLength = 2;\n        }\n      } else {\n        if (res.length > 0) {\n          res += `/${path2.slice(lastSlash + 1, i)}`;\n        } else {\n          res = path2.slice(lastSlash + 1, i);\n        }\n        lastSegmentLength = i - lastSlash - 1;\n      }\n      lastSlash = i;\n      dots = 0;\n    } else if (code === 46 && dots !== -1) {\n      ++dots;\n    } else {\n      dots = -1;\n    }\n  }\n  return res;\n}\nconst path = {\n  toPosix(path2) {\n    return replaceAll(path2, \"\\\\\", \"/\");\n  },\n  isUrl(path2) {\n    return /^https?:/.test(this.toPosix(path2));\n  },\n  isDataUrl(path2) {\n    return /^data:([a-z]+\\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s<>]*?)$/i.test(path2);\n  },\n  hasProtocol(path2) {\n    return /^[^/:]+:\\//.test(this.toPosix(path2));\n  },\n  getProtocol(path2) {\n    assertPath(path2);\n    path2 = this.toPosix(path2);\n    let protocol = \"\";\n    const isFile = /^file:\\/\\/\\//.exec(path2);\n    const isHttp = /^[^/:]+:\\/\\//.exec(path2);\n    const isWindows = /^[^/:]+:\\//.exec(path2);\n    if (isFile || isHttp || isWindows) {\n      const arr = isFile?.[0] || isHttp?.[0] || isWindows?.[0];\n      protocol = arr;\n      path2 = path2.slice(arr.length);\n    }\n    return protocol;\n  },\n  toAbsolute(url, customBaseUrl, customRootUrl) {\n    if (this.isDataUrl(url))\n      return url;\n    const baseUrl = removeUrlParams(this.toPosix(customBaseUrl ?? settings.ADAPTER.getBaseUrl()));\n    const rootUrl = removeUrlParams(this.toPosix(customRootUrl ?? this.rootname(baseUrl)));\n    assertPath(url);\n    url = this.toPosix(url);\n    if (url.startsWith(\"/\")) {\n      return path.join(rootUrl, url.slice(1));\n    }\n    const absolutePath = this.isAbsolute(url) ? url : this.join(baseUrl, url);\n    return absolutePath;\n  },\n  normalize(path2) {\n    path2 = this.toPosix(path2);\n    assertPath(path2);\n    if (path2.length === 0)\n      return \".\";\n    let protocol = \"\";\n    const isAbsolute = path2.startsWith(\"/\");\n    if (this.hasProtocol(path2)) {\n      protocol = this.rootname(path2);\n      path2 = path2.slice(protocol.length);\n    }\n    const trailingSeparator = path2.endsWith(\"/\");\n    path2 = normalizeStringPosix(path2, false);\n    if (path2.length > 0 && trailingSeparator)\n      path2 += \"/\";\n    if (isAbsolute)\n      return `/${path2}`;\n    return protocol + path2;\n  },\n  isAbsolute(path2) {\n    assertPath(path2);\n    path2 = this.toPosix(path2);\n    if (this.hasProtocol(path2))\n      return true;\n    return path2.startsWith(\"/\");\n  },\n  join(...segments) {\n    if (segments.length === 0) {\n      return \".\";\n    }\n    let joined;\n    for (let i = 0; i < segments.length; ++i) {\n      const arg = segments[i];\n      assertPath(arg);\n      if (arg.length > 0) {\n        if (joined === void 0)\n          joined = arg;\n        else {\n          const prevArg = segments[i - 1] ?? \"\";\n          if (this.extname(prevArg)) {\n            joined += `/../${arg}`;\n          } else {\n            joined += `/${arg}`;\n          }\n        }\n      }\n    }\n    if (joined === void 0) {\n      return \".\";\n    }\n    return this.normalize(joined);\n  },\n  dirname(path2) {\n    assertPath(path2);\n    if (path2.length === 0)\n      return \".\";\n    path2 = this.toPosix(path2);\n    let code = path2.charCodeAt(0);\n    const hasRoot = code === 47;\n    let end = -1;\n    let matchedSlash = true;\n    const proto = this.getProtocol(path2);\n    const origpath = path2;\n    path2 = path2.slice(proto.length);\n    for (let i = path2.length - 1; i >= 1; --i) {\n      code = path2.charCodeAt(i);\n      if (code === 47) {\n        if (!matchedSlash) {\n          end = i;\n          break;\n        }\n      } else {\n        matchedSlash = false;\n      }\n    }\n    if (end === -1)\n      return hasRoot ? \"/\" : this.isUrl(origpath) ? proto + path2 : proto;\n    if (hasRoot && end === 1)\n      return \"//\";\n    return proto + path2.slice(0, end);\n  },\n  rootname(path2) {\n    assertPath(path2);\n    path2 = this.toPosix(path2);\n    let root = \"\";\n    if (path2.startsWith(\"/\"))\n      root = \"/\";\n    else {\n      root = this.getProtocol(path2);\n    }\n    if (this.isUrl(path2)) {\n      const index = path2.indexOf(\"/\", root.length);\n      if (index !== -1) {\n        root = path2.slice(0, index);\n      } else\n        root = path2;\n      if (!root.endsWith(\"/\"))\n        root += \"/\";\n    }\n    return root;\n  },\n  basename(path2, ext) {\n    assertPath(path2);\n    if (ext)\n      assertPath(ext);\n    path2 = removeUrlParams(this.toPosix(path2));\n    let start = 0;\n    let end = -1;\n    let matchedSlash = true;\n    let i;\n    if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n      if (ext.length === path2.length && ext === path2)\n        return \"\";\n      let extIdx = ext.length - 1;\n      let firstNonSlashEnd = -1;\n      for (i = path2.length - 1; i >= 0; --i) {\n        const code = path2.charCodeAt(i);\n        if (code === 47) {\n          if (!matchedSlash) {\n            start = i + 1;\n            break;\n          }\n        } else {\n          if (firstNonSlashEnd === -1) {\n            matchedSlash = false;\n            firstNonSlashEnd = i + 1;\n          }\n          if (extIdx >= 0) {\n            if (code === ext.charCodeAt(extIdx)) {\n              if (--extIdx === -1) {\n                end = i;\n              }\n            } else {\n              extIdx = -1;\n              end = firstNonSlashEnd;\n            }\n          }\n        }\n      }\n      if (start === end)\n        end = firstNonSlashEnd;\n      else if (end === -1)\n        end = path2.length;\n      return path2.slice(start, end);\n    }\n    for (i = path2.length - 1; i >= 0; --i) {\n      if (path2.charCodeAt(i) === 47) {\n        if (!matchedSlash) {\n          start = i + 1;\n          break;\n        }\n      } else if (end === -1) {\n        matchedSlash = false;\n        end = i + 1;\n      }\n    }\n    if (end === -1)\n      return \"\";\n    return path2.slice(start, end);\n  },\n  extname(path2) {\n    assertPath(path2);\n    path2 = removeUrlParams(this.toPosix(path2));\n    let startDot = -1;\n    let startPart = 0;\n    let end = -1;\n    let matchedSlash = true;\n    let preDotState = 0;\n    for (let i = path2.length - 1; i >= 0; --i) {\n      const code = path2.charCodeAt(i);\n      if (code === 47) {\n        if (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n      if (end === -1) {\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46) {\n        if (startDot === -1)\n          startDot = i;\n        else if (preDotState !== 1)\n          preDotState = 1;\n      } else if (startDot !== -1) {\n        preDotState = -1;\n      }\n    }\n    if (startDot === -1 || end === -1 || preDotState === 0 || preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n      return \"\";\n    }\n    return path2.slice(startDot, end);\n  },\n  parse(path2) {\n    assertPath(path2);\n    const ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n    if (path2.length === 0)\n      return ret;\n    path2 = removeUrlParams(this.toPosix(path2));\n    let code = path2.charCodeAt(0);\n    const isAbsolute = this.isAbsolute(path2);\n    let start;\n    const protocol = \"\";\n    ret.root = this.rootname(path2);\n    if (isAbsolute || this.hasProtocol(path2)) {\n      start = 1;\n    } else {\n      start = 0;\n    }\n    let startDot = -1;\n    let startPart = 0;\n    let end = -1;\n    let matchedSlash = true;\n    let i = path2.length - 1;\n    let preDotState = 0;\n    for (; i >= start; --i) {\n      code = path2.charCodeAt(i);\n      if (code === 47) {\n        if (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n      if (end === -1) {\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46) {\n        if (startDot === -1)\n          startDot = i;\n        else if (preDotState !== 1)\n          preDotState = 1;\n      } else if (startDot !== -1) {\n        preDotState = -1;\n      }\n    }\n    if (startDot === -1 || end === -1 || preDotState === 0 || preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n      if (end !== -1) {\n        if (startPart === 0 && isAbsolute)\n          ret.base = ret.name = path2.slice(1, end);\n        else\n          ret.base = ret.name = path2.slice(startPart, end);\n      }\n    } else {\n      if (startPart === 0 && isAbsolute) {\n        ret.name = path2.slice(1, startDot);\n        ret.base = path2.slice(1, end);\n      } else {\n        ret.name = path2.slice(startPart, startDot);\n        ret.base = path2.slice(startPart, end);\n      }\n      ret.ext = path2.slice(startDot, end);\n    }\n    ret.dir = this.dirname(path2);\n    if (protocol)\n      ret.dir = protocol + ret.dir;\n    return ret;\n  },\n  sep: \"/\",\n  delimiter: \":\"\n};\n\nexport { path };\n//# sourceMappingURL=path.mjs.map\n","const warnings = {};\nfunction deprecation(version, message, ignoreDepth = 3) {\n  if (warnings[message]) {\n    return;\n  }\n  let stack = new Error().stack;\n  if (typeof stack === \"undefined\") {\n    console.warn(\"PixiJS Deprecation Warning: \", `${message}\nDeprecated since v${version}`);\n  } else {\n    stack = stack.split(\"\\n\").splice(ignoreDepth).join(\"\\n\");\n    if (console.groupCollapsed) {\n      console.groupCollapsed(\"%cPixiJS Deprecation Warning: %c%s\", \"color:#614108;background:#fffbe6\", \"font-weight:normal;color:#614108;background:#fffbe6\", `${message}\nDeprecated since v${version}`);\n      console.warn(stack);\n      console.groupEnd();\n    } else {\n      console.warn(\"PixiJS Deprecation Warning: \", `${message}\nDeprecated since v${version}`);\n      console.warn(stack);\n    }\n  }\n  warnings[message] = true;\n}\n\nexport { deprecation };\n//# sourceMappingURL=deprecation.mjs.map\n","import { deprecation } from '../logging/deprecation.mjs';\n\nfunction skipHello() {\n  deprecation(\"7.0.0\", \"skipHello is deprecated, please use settings.RENDER_OPTIONS.hello\");\n}\nfunction sayHello() {\n  deprecation(\"7.0.0\", `sayHello is deprecated, please use Renderer's \"hello\" option`);\n}\n\nexport { sayHello, skipHello };\n//# sourceMappingURL=hello.mjs.map\n","import '../settings.mjs';\nimport { settings } from '@pixi/settings';\n\nlet supported;\nfunction isWebGLSupported() {\n  if (typeof supported === \"undefined\") {\n    supported = function supported2() {\n      const contextOptions = {\n        stencil: true,\n        failIfMajorPerformanceCaveat: settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT\n      };\n      try {\n        if (!settings.ADAPTER.getWebGLRenderingContext()) {\n          return false;\n        }\n        const canvas = settings.ADAPTER.createCanvas();\n        let gl = canvas.getContext(\"webgl\", contextOptions) || canvas.getContext(\"experimental-webgl\", contextOptions);\n        const success = !!gl?.getContextAttributes()?.stencil;\n        if (gl) {\n          const loseContext = gl.getExtension(\"WEBGL_lose_context\");\n          if (loseContext) {\n            loseContext.loseContext();\n          }\n        }\n        gl = null;\n        return success;\n      } catch (e) {\n        return false;\n      }\n    }();\n  }\n  return supported;\n}\n\nexport { isWebGLSupported };\n//# sourceMappingURL=isWebGLSupported.mjs.map\n","var aliceblue = \"#f0f8ff\";\nvar antiquewhite = \"#faebd7\";\nvar aqua = \"#00ffff\";\nvar aquamarine = \"#7fffd4\";\nvar azure = \"#f0ffff\";\nvar beige = \"#f5f5dc\";\nvar bisque = \"#ffe4c4\";\nvar black = \"#000000\";\nvar blanchedalmond = \"#ffebcd\";\nvar blue = \"#0000ff\";\nvar blueviolet = \"#8a2be2\";\nvar brown = \"#a52a2a\";\nvar burlywood = \"#deb887\";\nvar cadetblue = \"#5f9ea0\";\nvar chartreuse = \"#7fff00\";\nvar chocolate = \"#d2691e\";\nvar coral = \"#ff7f50\";\nvar cornflowerblue = \"#6495ed\";\nvar cornsilk = \"#fff8dc\";\nvar crimson = \"#dc143c\";\nvar cyan = \"#00ffff\";\nvar darkblue = \"#00008b\";\nvar darkcyan = \"#008b8b\";\nvar darkgoldenrod = \"#b8860b\";\nvar darkgray = \"#a9a9a9\";\nvar darkgreen = \"#006400\";\nvar darkgrey = \"#a9a9a9\";\nvar darkkhaki = \"#bdb76b\";\nvar darkmagenta = \"#8b008b\";\nvar darkolivegreen = \"#556b2f\";\nvar darkorange = \"#ff8c00\";\nvar darkorchid = \"#9932cc\";\nvar darkred = \"#8b0000\";\nvar darksalmon = \"#e9967a\";\nvar darkseagreen = \"#8fbc8f\";\nvar darkslateblue = \"#483d8b\";\nvar darkslategray = \"#2f4f4f\";\nvar darkslategrey = \"#2f4f4f\";\nvar darkturquoise = \"#00ced1\";\nvar darkviolet = \"#9400d3\";\nvar deeppink = \"#ff1493\";\nvar deepskyblue = \"#00bfff\";\nvar dimgray = \"#696969\";\nvar dimgrey = \"#696969\";\nvar dodgerblue = \"#1e90ff\";\nvar firebrick = \"#b22222\";\nvar floralwhite = \"#fffaf0\";\nvar forestgreen = \"#228b22\";\nvar fuchsia = \"#ff00ff\";\nvar gainsboro = \"#dcdcdc\";\nvar ghostwhite = \"#f8f8ff\";\nvar goldenrod = \"#daa520\";\nvar gold = \"#ffd700\";\nvar gray = \"#808080\";\nvar green = \"#008000\";\nvar greenyellow = \"#adff2f\";\nvar grey = \"#808080\";\nvar honeydew = \"#f0fff0\";\nvar hotpink = \"#ff69b4\";\nvar indianred = \"#cd5c5c\";\nvar indigo = \"#4b0082\";\nvar ivory = \"#fffff0\";\nvar khaki = \"#f0e68c\";\nvar lavenderblush = \"#fff0f5\";\nvar lavender = \"#e6e6fa\";\nvar lawngreen = \"#7cfc00\";\nvar lemonchiffon = \"#fffacd\";\nvar lightblue = \"#add8e6\";\nvar lightcoral = \"#f08080\";\nvar lightcyan = \"#e0ffff\";\nvar lightgoldenrodyellow = \"#fafad2\";\nvar lightgray = \"#d3d3d3\";\nvar lightgreen = \"#90ee90\";\nvar lightgrey = \"#d3d3d3\";\nvar lightpink = \"#ffb6c1\";\nvar lightsalmon = \"#ffa07a\";\nvar lightseagreen = \"#20b2aa\";\nvar lightskyblue = \"#87cefa\";\nvar lightslategray = \"#778899\";\nvar lightslategrey = \"#778899\";\nvar lightsteelblue = \"#b0c4de\";\nvar lightyellow = \"#ffffe0\";\nvar lime = \"#00ff00\";\nvar limegreen = \"#32cd32\";\nvar linen = \"#faf0e6\";\nvar magenta = \"#ff00ff\";\nvar maroon = \"#800000\";\nvar mediumaquamarine = \"#66cdaa\";\nvar mediumblue = \"#0000cd\";\nvar mediumorchid = \"#ba55d3\";\nvar mediumpurple = \"#9370db\";\nvar mediumseagreen = \"#3cb371\";\nvar mediumslateblue = \"#7b68ee\";\nvar mediumspringgreen = \"#00fa9a\";\nvar mediumturquoise = \"#48d1cc\";\nvar mediumvioletred = \"#c71585\";\nvar midnightblue = \"#191970\";\nvar mintcream = \"#f5fffa\";\nvar mistyrose = \"#ffe4e1\";\nvar moccasin = \"#ffe4b5\";\nvar navajowhite = \"#ffdead\";\nvar navy = \"#000080\";\nvar oldlace = \"#fdf5e6\";\nvar olive = \"#808000\";\nvar olivedrab = \"#6b8e23\";\nvar orange = \"#ffa500\";\nvar orangered = \"#ff4500\";\nvar orchid = \"#da70d6\";\nvar palegoldenrod = \"#eee8aa\";\nvar palegreen = \"#98fb98\";\nvar paleturquoise = \"#afeeee\";\nvar palevioletred = \"#db7093\";\nvar papayawhip = \"#ffefd5\";\nvar peachpuff = \"#ffdab9\";\nvar peru = \"#cd853f\";\nvar pink = \"#ffc0cb\";\nvar plum = \"#dda0dd\";\nvar powderblue = \"#b0e0e6\";\nvar purple = \"#800080\";\nvar rebeccapurple = \"#663399\";\nvar red = \"#ff0000\";\nvar rosybrown = \"#bc8f8f\";\nvar royalblue = \"#4169e1\";\nvar saddlebrown = \"#8b4513\";\nvar salmon = \"#fa8072\";\nvar sandybrown = \"#f4a460\";\nvar seagreen = \"#2e8b57\";\nvar seashell = \"#fff5ee\";\nvar sienna = \"#a0522d\";\nvar silver = \"#c0c0c0\";\nvar skyblue = \"#87ceeb\";\nvar slateblue = \"#6a5acd\";\nvar slategray = \"#708090\";\nvar slategrey = \"#708090\";\nvar snow = \"#fffafa\";\nvar springgreen = \"#00ff7f\";\nvar steelblue = \"#4682b4\";\nvar tan = \"#d2b48c\";\nvar teal = \"#008080\";\nvar thistle = \"#d8bfd8\";\nvar tomato = \"#ff6347\";\nvar turquoise = \"#40e0d0\";\nvar violet = \"#ee82ee\";\nvar wheat = \"#f5deb3\";\nvar white = \"#ffffff\";\nvar whitesmoke = \"#f5f5f5\";\nvar yellow = \"#ffff00\";\nvar yellowgreen = \"#9acd32\";\nvar cssColorNames = {\n\taliceblue: aliceblue,\n\tantiquewhite: antiquewhite,\n\taqua: aqua,\n\taquamarine: aquamarine,\n\tazure: azure,\n\tbeige: beige,\n\tbisque: bisque,\n\tblack: black,\n\tblanchedalmond: blanchedalmond,\n\tblue: blue,\n\tblueviolet: blueviolet,\n\tbrown: brown,\n\tburlywood: burlywood,\n\tcadetblue: cadetblue,\n\tchartreuse: chartreuse,\n\tchocolate: chocolate,\n\tcoral: coral,\n\tcornflowerblue: cornflowerblue,\n\tcornsilk: cornsilk,\n\tcrimson: crimson,\n\tcyan: cyan,\n\tdarkblue: darkblue,\n\tdarkcyan: darkcyan,\n\tdarkgoldenrod: darkgoldenrod,\n\tdarkgray: darkgray,\n\tdarkgreen: darkgreen,\n\tdarkgrey: darkgrey,\n\tdarkkhaki: darkkhaki,\n\tdarkmagenta: darkmagenta,\n\tdarkolivegreen: darkolivegreen,\n\tdarkorange: darkorange,\n\tdarkorchid: darkorchid,\n\tdarkred: darkred,\n\tdarksalmon: darksalmon,\n\tdarkseagreen: darkseagreen,\n\tdarkslateblue: darkslateblue,\n\tdarkslategray: darkslategray,\n\tdarkslategrey: darkslategrey,\n\tdarkturquoise: darkturquoise,\n\tdarkviolet: darkviolet,\n\tdeeppink: deeppink,\n\tdeepskyblue: deepskyblue,\n\tdimgray: dimgray,\n\tdimgrey: dimgrey,\n\tdodgerblue: dodgerblue,\n\tfirebrick: firebrick,\n\tfloralwhite: floralwhite,\n\tforestgreen: forestgreen,\n\tfuchsia: fuchsia,\n\tgainsboro: gainsboro,\n\tghostwhite: ghostwhite,\n\tgoldenrod: goldenrod,\n\tgold: gold,\n\tgray: gray,\n\tgreen: green,\n\tgreenyellow: greenyellow,\n\tgrey: grey,\n\thoneydew: honeydew,\n\thotpink: hotpink,\n\tindianred: indianred,\n\tindigo: indigo,\n\tivory: ivory,\n\tkhaki: khaki,\n\tlavenderblush: lavenderblush,\n\tlavender: lavender,\n\tlawngreen: lawngreen,\n\tlemonchiffon: lemonchiffon,\n\tlightblue: lightblue,\n\tlightcoral: lightcoral,\n\tlightcyan: lightcyan,\n\tlightgoldenrodyellow: lightgoldenrodyellow,\n\tlightgray: lightgray,\n\tlightgreen: lightgreen,\n\tlightgrey: lightgrey,\n\tlightpink: lightpink,\n\tlightsalmon: lightsalmon,\n\tlightseagreen: lightseagreen,\n\tlightskyblue: lightskyblue,\n\tlightslategray: lightslategray,\n\tlightslategrey: lightslategrey,\n\tlightsteelblue: lightsteelblue,\n\tlightyellow: lightyellow,\n\tlime: lime,\n\tlimegreen: limegreen,\n\tlinen: linen,\n\tmagenta: magenta,\n\tmaroon: maroon,\n\tmediumaquamarine: mediumaquamarine,\n\tmediumblue: mediumblue,\n\tmediumorchid: mediumorchid,\n\tmediumpurple: mediumpurple,\n\tmediumseagreen: mediumseagreen,\n\tmediumslateblue: mediumslateblue,\n\tmediumspringgreen: mediumspringgreen,\n\tmediumturquoise: mediumturquoise,\n\tmediumvioletred: mediumvioletred,\n\tmidnightblue: midnightblue,\n\tmintcream: mintcream,\n\tmistyrose: mistyrose,\n\tmoccasin: moccasin,\n\tnavajowhite: navajowhite,\n\tnavy: navy,\n\toldlace: oldlace,\n\tolive: olive,\n\tolivedrab: olivedrab,\n\torange: orange,\n\torangered: orangered,\n\torchid: orchid,\n\tpalegoldenrod: palegoldenrod,\n\tpalegreen: palegreen,\n\tpaleturquoise: paleturquoise,\n\tpalevioletred: palevioletred,\n\tpapayawhip: papayawhip,\n\tpeachpuff: peachpuff,\n\tperu: peru,\n\tpink: pink,\n\tplum: plum,\n\tpowderblue: powderblue,\n\tpurple: purple,\n\trebeccapurple: rebeccapurple,\n\tred: red,\n\trosybrown: rosybrown,\n\troyalblue: royalblue,\n\tsaddlebrown: saddlebrown,\n\tsalmon: salmon,\n\tsandybrown: sandybrown,\n\tseagreen: seagreen,\n\tseashell: seashell,\n\tsienna: sienna,\n\tsilver: silver,\n\tskyblue: skyblue,\n\tslateblue: slateblue,\n\tslategray: slategray,\n\tslategrey: slategrey,\n\tsnow: snow,\n\tspringgreen: springgreen,\n\tsteelblue: steelblue,\n\ttan: tan,\n\tteal: teal,\n\tthistle: thistle,\n\ttomato: tomato,\n\tturquoise: turquoise,\n\tviolet: violet,\n\twheat: wheat,\n\twhite: white,\n\twhitesmoke: whitesmoke,\n\tyellow: yellow,\n\tyellowgreen: yellowgreen\n};\n\nexport { aliceblue, antiquewhite, aqua, aquamarine, azure, beige, bisque, black, blanchedalmond, blue, blueviolet, brown, burlywood, cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk, crimson, cyan, darkblue, darkcyan, darkgoldenrod, darkgray, darkgreen, darkgrey, darkkhaki, darkmagenta, darkolivegreen, darkorange, darkorchid, darkred, darksalmon, darkseagreen, darkslateblue, darkslategray, darkslategrey, darkturquoise, darkviolet, deeppink, deepskyblue, cssColorNames as default, dimgray, dimgrey, dodgerblue, firebrick, floralwhite, forestgreen, fuchsia, gainsboro, ghostwhite, gold, goldenrod, gray, green, greenyellow, grey, honeydew, hotpink, indianred, indigo, ivory, khaki, lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan, lightgoldenrodyellow, lightgray, lightgreen, lightgrey, lightpink, lightsalmon, lightseagreen, lightskyblue, lightslategray, lightslategrey, lightsteelblue, lightyellow, lime, limegreen, linen, magenta, maroon, mediumaquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen, mediumslateblue, mediumspringgreen, mediumturquoise, mediumvioletred, midnightblue, mintcream, mistyrose, moccasin, navajowhite, navy, oldlace, olive, olivedrab, orange, orangered, orchid, palegoldenrod, palegreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum, powderblue, purple, rebeccapurple, red, rosybrown, royalblue, saddlebrown, salmon, sandybrown, seagreen, seashell, sienna, silver, skyblue, slateblue, slategray, slategrey, snow, springgreen, steelblue, tan, teal, thistle, tomato, turquoise, violet, wheat, white, whitesmoke, yellow, yellowgreen };\n//# sourceMappingURL=css-color-names.mjs.map\n","import cssColorNames from './../external/css-color-names/css-color-names.mjs';\n\nfunction hex2rgb(hex, out = []) {\n  out[0] = (hex >> 16 & 255) / 255;\n  out[1] = (hex >> 8 & 255) / 255;\n  out[2] = (hex & 255) / 255;\n  return out;\n}\nfunction hex2string(hex) {\n  let hexString = hex.toString(16);\n  hexString = \"000000\".substring(0, 6 - hexString.length) + hexString;\n  return `#${hexString}`;\n}\nfunction string2hex(string) {\n  if (typeof string === \"string\") {\n    string = cssColorNames[string.toLowerCase()] || string;\n    if (string[0] === \"#\") {\n      string = string.slice(1);\n    }\n    if (string.length === 3) {\n      const [r, g, b] = string;\n      string = r + r + g + g + b + b;\n    }\n  }\n  return parseInt(string, 16);\n}\nfunction rgb2hex(rgb) {\n  return (rgb[0] * 255 << 16) + (rgb[1] * 255 << 8) + (rgb[2] * 255 | 0);\n}\n\nexport { hex2rgb, hex2string, rgb2hex, string2hex };\n//# sourceMappingURL=hex.mjs.map\n","import { BLEND_MODES } from '@pixi/constants';\n\nfunction mapPremultipliedBlendModes() {\n  const pm = [];\n  const npm = [];\n  for (let i = 0; i < 32; i++) {\n    pm[i] = i;\n    npm[i] = i;\n  }\n  pm[BLEND_MODES.NORMAL_NPM] = BLEND_MODES.NORMAL;\n  pm[BLEND_MODES.ADD_NPM] = BLEND_MODES.ADD;\n  pm[BLEND_MODES.SCREEN_NPM] = BLEND_MODES.SCREEN;\n  npm[BLEND_MODES.NORMAL] = BLEND_MODES.NORMAL_NPM;\n  npm[BLEND_MODES.ADD] = BLEND_MODES.ADD_NPM;\n  npm[BLEND_MODES.SCREEN] = BLEND_MODES.SCREEN_NPM;\n  const array = [];\n  array.push(npm);\n  array.push(pm);\n  return array;\n}\nconst premultiplyBlendMode = mapPremultipliedBlendModes();\nfunction correctBlendMode(blendMode, premultiplied) {\n  return premultiplyBlendMode[premultiplied ? 1 : 0][blendMode];\n}\nfunction premultiplyRgba(rgb, alpha, out, premultiply) {\n  out = out || new Float32Array(4);\n  if (premultiply || premultiply === void 0) {\n    out[0] = rgb[0] * alpha;\n    out[1] = rgb[1] * alpha;\n    out[2] = rgb[2] * alpha;\n  } else {\n    out[0] = rgb[0];\n    out[1] = rgb[1];\n    out[2] = rgb[2];\n  }\n  out[3] = alpha;\n  return out;\n}\nfunction premultiplyTint(tint, alpha) {\n  if (alpha === 1) {\n    return (alpha * 255 << 24) + tint;\n  }\n  if (alpha === 0) {\n    return 0;\n  }\n  let R = tint >> 16 & 255;\n  let G = tint >> 8 & 255;\n  let B = tint & 255;\n  R = R * alpha + 0.5 | 0;\n  G = G * alpha + 0.5 | 0;\n  B = B * alpha + 0.5 | 0;\n  return (alpha * 255 << 24) + (R << 16) + (G << 8) + B;\n}\nfunction premultiplyTintToRgba(tint, alpha, out, premultiply) {\n  out = out || new Float32Array(4);\n  out[0] = (tint >> 16 & 255) / 255;\n  out[1] = (tint >> 8 & 255) / 255;\n  out[2] = (tint & 255) / 255;\n  if (premultiply || premultiply === void 0) {\n    out[0] *= alpha;\n    out[1] *= alpha;\n    out[2] *= alpha;\n  }\n  out[3] = alpha;\n  return out;\n}\n\nexport { correctBlendMode, premultiplyBlendMode, premultiplyRgba, premultiplyTint, premultiplyTintToRgba };\n//# sourceMappingURL=premultiply.mjs.map\n","const DATA_URI = /^\\s*data:(?:([\\w-]+)\\/([\\w+.-]+))?(?:;charset=([\\w-]+))?(?:;(base64))?,(.*)/i;\n\nexport { DATA_URI };\n//# sourceMappingURL=const.mjs.map\n","function createIndicesForQuads(size, outBuffer = null) {\n  const totalIndices = size * 6;\n  outBuffer = outBuffer || new Uint16Array(totalIndices);\n  if (outBuffer.length !== totalIndices) {\n    throw new Error(`Out buffer length is incorrect, got ${outBuffer.length} and expected ${totalIndices}`);\n  }\n  for (let i = 0, j = 0; i < totalIndices; i += 6, j += 4) {\n    outBuffer[i + 0] = j + 0;\n    outBuffer[i + 1] = j + 1;\n    outBuffer[i + 2] = j + 2;\n    outBuffer[i + 3] = j + 0;\n    outBuffer[i + 4] = j + 2;\n    outBuffer[i + 5] = j + 3;\n  }\n  return outBuffer;\n}\n\nexport { createIndicesForQuads };\n//# sourceMappingURL=createIndicesForQuads.mjs.map\n","function getBufferType(array) {\n  if (array.BYTES_PER_ELEMENT === 4) {\n    if (array instanceof Float32Array) {\n      return \"Float32Array\";\n    } else if (array instanceof Uint32Array) {\n      return \"Uint32Array\";\n    }\n    return \"Int32Array\";\n  } else if (array.BYTES_PER_ELEMENT === 2) {\n    if (array instanceof Uint16Array) {\n      return \"Uint16Array\";\n    }\n  } else if (array.BYTES_PER_ELEMENT === 1) {\n    if (array instanceof Uint8Array) {\n      return \"Uint8Array\";\n    }\n  }\n  return null;\n}\n\nexport { getBufferType };\n//# sourceMappingURL=getBufferType.mjs.map\n","import { getBufferType } from './getBufferType.mjs';\n\nconst map = { Float32Array, Uint32Array, Int32Array, Uint8Array };\nfunction interleaveTypedArrays(arrays, sizes) {\n  let outSize = 0;\n  let stride = 0;\n  const views = {};\n  for (let i = 0; i < arrays.length; i++) {\n    stride += sizes[i];\n    outSize += arrays[i].length;\n  }\n  const buffer = new ArrayBuffer(outSize * 4);\n  let out = null;\n  let littleOffset = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const size = sizes[i];\n    const array = arrays[i];\n    const type = getBufferType(array);\n    if (!views[type]) {\n      views[type] = new map[type](buffer);\n    }\n    out = views[type];\n    for (let j = 0; j < array.length; j++) {\n      const indexStart = (j / size | 0) * stride + littleOffset;\n      const index = j % size;\n      out[indexStart + index] = array[j];\n    }\n    littleOffset += size;\n  }\n  return new Float32Array(buffer);\n}\n\nexport { interleaveTypedArrays };\n//# sourceMappingURL=interleaveTypedArrays.mjs.map\n","function nextPow2(v) {\n  v += v === 0 ? 1 : 0;\n  --v;\n  v |= v >>> 1;\n  v |= v >>> 2;\n  v |= v >>> 4;\n  v |= v >>> 8;\n  v |= v >>> 16;\n  return v + 1;\n}\nfunction isPow2(v) {\n  return !(v & v - 1) && !!v;\n}\nfunction log2(v) {\n  let r = (v > 65535 ? 1 : 0) << 4;\n  v >>>= r;\n  let shift = (v > 255 ? 1 : 0) << 3;\n  v >>>= shift;\n  r |= shift;\n  shift = (v > 15 ? 1 : 0) << 2;\n  v >>>= shift;\n  r |= shift;\n  shift = (v > 3 ? 1 : 0) << 1;\n  v >>>= shift;\n  r |= shift;\n  return r | v >> 1;\n}\n\nexport { isPow2, log2, nextPow2 };\n//# sourceMappingURL=pow2.mjs.map\n","function removeItems(arr, startIdx, removeCount) {\n  const length = arr.length;\n  let i;\n  if (startIdx >= length || removeCount === 0) {\n    return;\n  }\n  removeCount = startIdx + removeCount > length ? length - startIdx : removeCount;\n  const len = length - removeCount;\n  for (i = startIdx; i < len; ++i) {\n    arr[i] = arr[i + removeCount];\n  }\n  arr.length = len;\n}\n\nexport { removeItems };\n//# sourceMappingURL=removeItems.mjs.map\n","function sign(n) {\n  if (n === 0)\n    return 0;\n  return n < 0 ? -1 : 1;\n}\n\nexport { sign };\n//# sourceMappingURL=sign.mjs.map\n","let nextUid = 0;\nfunction uid() {\n  return ++nextUid;\n}\n\nexport { uid };\n//# sourceMappingURL=uid.mjs.map\n","const _BoundingBox = class {\n  constructor(left, top, right, bottom) {\n    this.left = left;\n    this.top = top;\n    this.right = right;\n    this.bottom = bottom;\n  }\n  get width() {\n    return this.right - this.left;\n  }\n  get height() {\n    return this.bottom - this.top;\n  }\n  isEmpty() {\n    return this.left === this.right || this.top === this.bottom;\n  }\n};\nlet BoundingBox = _BoundingBox;\nBoundingBox.EMPTY = new _BoundingBox(0, 0, 0, 0);\n\nexport { BoundingBox };\n//# sourceMappingURL=BoundingBox.mjs.map\n","const ProgramCache = {};\nconst TextureCache = /* @__PURE__ */ Object.create(null);\nconst BaseTextureCache = /* @__PURE__ */ Object.create(null);\nfunction destroyTextureCache() {\n  let key;\n  for (key in TextureCache) {\n    TextureCache[key].destroy();\n  }\n  for (key in BaseTextureCache) {\n    BaseTextureCache[key].destroy();\n  }\n}\nfunction clearTextureCache() {\n  let key;\n  for (key in TextureCache) {\n    delete TextureCache[key];\n  }\n  for (key in BaseTextureCache) {\n    delete BaseTextureCache[key];\n  }\n}\n\nexport { BaseTextureCache, ProgramCache, TextureCache, clearTextureCache, destroyTextureCache };\n//# sourceMappingURL=caches.mjs.map\n","import { settings } from '@pixi/settings';\n\nclass CanvasRenderTarget {\n  constructor(width, height, resolution) {\n    this._canvas = settings.ADAPTER.createCanvas();\n    this._context = this._canvas.getContext(\"2d\");\n    this.resolution = resolution || settings.RESOLUTION;\n    this.resize(width, height);\n  }\n  clear() {\n    this._checkDestroyed();\n    this._context.setTransform(1, 0, 0, 1, 0, 0);\n    this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);\n  }\n  resize(desiredWidth, desiredHeight) {\n    this._checkDestroyed();\n    this._canvas.width = Math.round(desiredWidth * this.resolution);\n    this._canvas.height = Math.round(desiredHeight * this.resolution);\n  }\n  destroy() {\n    this._context = null;\n    this._canvas = null;\n  }\n  get width() {\n    this._checkDestroyed();\n    return this._canvas.width;\n  }\n  set width(val) {\n    this._checkDestroyed();\n    this._canvas.width = Math.round(val);\n  }\n  get height() {\n    this._checkDestroyed();\n    return this._canvas.height;\n  }\n  set height(val) {\n    this._checkDestroyed();\n    this._canvas.height = Math.round(val);\n  }\n  get canvas() {\n    this._checkDestroyed();\n    return this._canvas;\n  }\n  get context() {\n    this._checkDestroyed();\n    return this._context;\n  }\n  _checkDestroyed() {\n    if (this._canvas === null) {\n      throw new TypeError(\"The CanvasRenderTarget has already been destroyed\");\n    }\n  }\n}\n\nexport { CanvasRenderTarget };\n//# sourceMappingURL=CanvasRenderTarget.mjs.map\n","import { BoundingBox } from './BoundingBox.mjs';\n\nfunction checkRow(data, width, y) {\n  for (let x = 0, index = 4 * y * width; x < width; ++x, index += 4) {\n    if (data[index + 3] !== 0)\n      return false;\n  }\n  return true;\n}\nfunction checkColumn(data, width, x, top, bottom) {\n  const stride = 4 * width;\n  for (let y = top, index = top * stride + 4 * x; y <= bottom; ++y, index += stride) {\n    if (data[index + 3] !== 0)\n      return false;\n  }\n  return true;\n}\nfunction getCanvasBoundingBox(canvas) {\n  const { width, height } = canvas;\n  const context = canvas.getContext(\"2d\", {\n    willReadFrequently: true\n  });\n  if (context === null) {\n    throw new TypeError(\"Failed to get canvas 2D context\");\n  }\n  const imageData = context.getImageData(0, 0, width, height);\n  const data = imageData.data;\n  let left = 0;\n  let top = 0;\n  let right = width - 1;\n  let bottom = height - 1;\n  while (top < height && checkRow(data, width, top))\n    ++top;\n  if (top === height)\n    return BoundingBox.EMPTY;\n  while (checkRow(data, width, bottom))\n    --bottom;\n  while (checkColumn(data, width, left, top, bottom))\n    ++left;\n  while (checkColumn(data, width, right, top, bottom))\n    --right;\n  ++right;\n  ++bottom;\n  return new BoundingBox(left, top, right, bottom);\n}\n\nexport { getCanvasBoundingBox };\n//# sourceMappingURL=getCanvasBoundingBox.mjs.map\n","import { getCanvasBoundingBox } from './getCanvasBoundingBox.mjs';\n\nfunction trimCanvas(canvas) {\n  const boundingBox = getCanvasBoundingBox(canvas);\n  const { width, height } = boundingBox;\n  let data = null;\n  if (!boundingBox.isEmpty()) {\n    const context = canvas.getContext(\"2d\");\n    if (context === null) {\n      throw new TypeError(\"Failed to get canvas 2D context\");\n    }\n    data = context.getImageData(boundingBox.left, boundingBox.top, width, height);\n  }\n  return { width, height, data };\n}\n\nexport { trimCanvas };\n//# sourceMappingURL=trimCanvas.mjs.map\n","import { DATA_URI } from '../const.mjs';\n\nfunction decomposeDataUri(dataUri) {\n  const dataUriMatch = DATA_URI.exec(dataUri);\n  if (dataUriMatch) {\n    return {\n      mediaType: dataUriMatch[1] ? dataUriMatch[1].toLowerCase() : void 0,\n      subType: dataUriMatch[2] ? dataUriMatch[2].toLowerCase() : void 0,\n      charset: dataUriMatch[3] ? dataUriMatch[3].toLowerCase() : void 0,\n      encoding: dataUriMatch[4] ? dataUriMatch[4].toLowerCase() : void 0,\n      data: dataUriMatch[5]\n    };\n  }\n  return void 0;\n}\n\nexport { decomposeDataUri };\n//# sourceMappingURL=decomposeDataUri.mjs.map\n","import { url } from '../url.mjs';\n\nlet tempAnchor;\nfunction determineCrossOrigin(url$1, loc = globalThis.location) {\n  if (url$1.startsWith(\"data:\")) {\n    return \"\";\n  }\n  loc = loc || globalThis.location;\n  if (!tempAnchor) {\n    tempAnchor = document.createElement(\"a\");\n  }\n  tempAnchor.href = url$1;\n  const parsedUrl = url.parse(tempAnchor.href);\n  const samePort = !parsedUrl.port && loc.port === \"\" || parsedUrl.port === loc.port;\n  if (parsedUrl.hostname !== loc.hostname || !samePort || parsedUrl.protocol !== loc.protocol) {\n    return \"anonymous\";\n  }\n  return \"\";\n}\n\nexport { determineCrossOrigin };\n//# sourceMappingURL=determineCrossOrigin.mjs.map\n","import '../settings.mjs';\nimport { settings } from '@pixi/settings';\n\nfunction getResolutionOfUrl(url, defaultValue = 1) {\n  const resolution = settings.RETINA_PREFIX?.exec(url);\n  if (resolution) {\n    return parseFloat(resolution[1]);\n  }\n  return defaultValue;\n}\n\nexport { getResolutionOfUrl };\n//# sourceMappingURL=getResolutionOfUrl.mjs.map\n","var ExtensionType = /* @__PURE__ */ ((ExtensionType2) => {\n  ExtensionType2[\"Renderer\"] = \"renderer\";\n  ExtensionType2[\"Application\"] = \"application\";\n  ExtensionType2[\"RendererSystem\"] = \"renderer-webgl-system\";\n  ExtensionType2[\"RendererPlugin\"] = \"renderer-webgl-plugin\";\n  ExtensionType2[\"CanvasRendererSystem\"] = \"renderer-canvas-system\";\n  ExtensionType2[\"CanvasRendererPlugin\"] = \"renderer-canvas-plugin\";\n  ExtensionType2[\"Asset\"] = \"asset\";\n  ExtensionType2[\"LoadParser\"] = \"load-parser\";\n  ExtensionType2[\"ResolveParser\"] = \"resolve-parser\";\n  ExtensionType2[\"CacheParser\"] = \"cache-parser\";\n  ExtensionType2[\"DetectionParser\"] = \"detection-parser\";\n  return ExtensionType2;\n})(ExtensionType || {});\nconst normalizeExtension = (ext) => {\n  if (typeof ext === \"function\" || typeof ext === \"object\" && ext.extension) {\n    if (!ext.extension) {\n      throw new Error(\"Extension class must have an extension object\");\n    }\n    const metadata = typeof ext.extension !== \"object\" ? { type: ext.extension } : ext.extension;\n    ext = { ...metadata, ref: ext };\n  }\n  if (typeof ext === \"object\") {\n    ext = { ...ext };\n  } else {\n    throw new Error(\"Invalid extension type\");\n  }\n  if (typeof ext.type === \"string\") {\n    ext.type = [ext.type];\n  }\n  return ext;\n};\nconst normalizePriority = (ext, defaultPriority) => normalizeExtension(ext).priority ?? defaultPriority;\nconst extensions = {\n  _addHandlers: {},\n  _removeHandlers: {},\n  _queue: {},\n  remove(...extensions2) {\n    extensions2.map(normalizeExtension).forEach((ext) => {\n      ext.type.forEach((type) => this._removeHandlers[type]?.(ext));\n    });\n    return this;\n  },\n  add(...extensions2) {\n    extensions2.map(normalizeExtension).forEach((ext) => {\n      ext.type.forEach((type) => {\n        const handlers = this._addHandlers;\n        const queue = this._queue;\n        if (!handlers[type]) {\n          queue[type] = queue[type] || [];\n          queue[type].push(ext);\n        } else {\n          handlers[type](ext);\n        }\n      });\n    });\n    return this;\n  },\n  handle(type, onAdd, onRemove) {\n    const addHandlers = this._addHandlers;\n    const removeHandlers = this._removeHandlers;\n    if (addHandlers[type] || removeHandlers[type]) {\n      throw new Error(`Extension type ${type} already has a handler`);\n    }\n    addHandlers[type] = onAdd;\n    removeHandlers[type] = onRemove;\n    const queue = this._queue;\n    if (queue[type]) {\n      queue[type].forEach((ext) => onAdd(ext));\n      delete queue[type];\n    }\n    return this;\n  },\n  handleByMap(type, map) {\n    return this.handle(type, (extension) => {\n      map[extension.name] = extension.ref;\n    }, (extension) => {\n      delete map[extension.name];\n    });\n  },\n  handleByList(type, list, defaultPriority = -1) {\n    return this.handle(type, (extension) => {\n      if (list.includes(extension.ref)) {\n        return;\n      }\n      list.push(extension.ref);\n      list.sort((a, b) => normalizePriority(b, defaultPriority) - normalizePriority(a, defaultPriority));\n    }, (extension) => {\n      const index = list.indexOf(extension.ref);\n      if (index !== -1) {\n        list.splice(index, 1);\n      }\n    });\n  }\n};\n\nexport { ExtensionType, extensions };\n//# sourceMappingURL=index.mjs.map\n","class ViewableBuffer {\n  constructor(sizeOrBuffer) {\n    if (typeof sizeOrBuffer === \"number\") {\n      this.rawBinaryData = new ArrayBuffer(sizeOrBuffer);\n    } else if (sizeOrBuffer instanceof Uint8Array) {\n      this.rawBinaryData = sizeOrBuffer.buffer;\n    } else {\n      this.rawBinaryData = sizeOrBuffer;\n    }\n    this.uint32View = new Uint32Array(this.rawBinaryData);\n    this.float32View = new Float32Array(this.rawBinaryData);\n  }\n  get int8View() {\n    if (!this._int8View) {\n      this._int8View = new Int8Array(this.rawBinaryData);\n    }\n    return this._int8View;\n  }\n  get uint8View() {\n    if (!this._uint8View) {\n      this._uint8View = new Uint8Array(this.rawBinaryData);\n    }\n    return this._uint8View;\n  }\n  get int16View() {\n    if (!this._int16View) {\n      this._int16View = new Int16Array(this.rawBinaryData);\n    }\n    return this._int16View;\n  }\n  get uint16View() {\n    if (!this._uint16View) {\n      this._uint16View = new Uint16Array(this.rawBinaryData);\n    }\n    return this._uint16View;\n  }\n  get int32View() {\n    if (!this._int32View) {\n      this._int32View = new Int32Array(this.rawBinaryData);\n    }\n    return this._int32View;\n  }\n  view(type) {\n    return this[`${type}View`];\n  }\n  destroy() {\n    this.rawBinaryData = null;\n    this._int8View = null;\n    this._uint8View = null;\n    this._int16View = null;\n    this._uint16View = null;\n    this._int32View = null;\n    this.uint32View = null;\n    this.float32View = null;\n  }\n  static sizeOf(type) {\n    switch (type) {\n      case \"int8\":\n      case \"uint8\":\n        return 1;\n      case \"int16\":\n      case \"uint16\":\n        return 2;\n      case \"int32\":\n      case \"uint32\":\n      case \"float32\":\n        return 4;\n      default:\n        throw new Error(`${type} isn't a valid view type`);\n    }\n  }\n}\n\nexport { ViewableBuffer };\n//# sourceMappingURL=ViewableBuffer.mjs.map\n","const fragTemplate = [\n  \"precision mediump float;\",\n  \"void main(void){\",\n  \"float test = 0.1;\",\n  \"%forloop%\",\n  \"gl_FragColor = vec4(0.0);\",\n  \"}\"\n].join(\"\\n\");\nfunction generateIfTestSrc(maxIfs) {\n  let src = \"\";\n  for (let i = 0; i < maxIfs; ++i) {\n    if (i > 0) {\n      src += \"\\nelse \";\n    }\n    if (i < maxIfs - 1) {\n      src += `if(test == ${i}.0){}`;\n    }\n  }\n  return src;\n}\nfunction checkMaxIfStatementsInShader(maxIfs, gl) {\n  if (maxIfs === 0) {\n    throw new Error(\"Invalid value of `0` passed to `checkMaxIfStatementsInShader`\");\n  }\n  const shader = gl.createShader(gl.FRAGMENT_SHADER);\n  while (true) {\n    const fragmentSrc = fragTemplate.replace(/%forloop%/gi, generateIfTestSrc(maxIfs));\n    gl.shaderSource(shader, fragmentSrc);\n    gl.compileShader(shader);\n    if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n      maxIfs = maxIfs / 2 | 0;\n    } else {\n      break;\n    }\n  }\n  return maxIfs;\n}\n\nexport { checkMaxIfStatementsInShader };\n//# sourceMappingURL=checkMaxIfStatementsInShader.mjs.map\n","import { BLEND_MODES } from '@pixi/constants';\n\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\nclass State {\n  constructor() {\n    this.data = 0;\n    this.blendMode = BLEND_MODES.NORMAL;\n    this.polygonOffset = 0;\n    this.blend = true;\n    this.depthMask = true;\n  }\n  get blend() {\n    return !!(this.data & 1 << BLEND);\n  }\n  set blend(value) {\n    if (!!(this.data & 1 << BLEND) !== value) {\n      this.data ^= 1 << BLEND;\n    }\n  }\n  get offsets() {\n    return !!(this.data & 1 << OFFSET);\n  }\n  set offsets(value) {\n    if (!!(this.data & 1 << OFFSET) !== value) {\n      this.data ^= 1 << OFFSET;\n    }\n  }\n  get culling() {\n    return !!(this.data & 1 << CULLING);\n  }\n  set culling(value) {\n    if (!!(this.data & 1 << CULLING) !== value) {\n      this.data ^= 1 << CULLING;\n    }\n  }\n  get depthTest() {\n    return !!(this.data & 1 << DEPTH_TEST);\n  }\n  set depthTest(value) {\n    if (!!(this.data & 1 << DEPTH_TEST) !== value) {\n      this.data ^= 1 << DEPTH_TEST;\n    }\n  }\n  get depthMask() {\n    return !!(this.data & 1 << DEPTH_MASK);\n  }\n  set depthMask(value) {\n    if (!!(this.data & 1 << DEPTH_MASK) !== value) {\n      this.data ^= 1 << DEPTH_MASK;\n    }\n  }\n  get clockwiseFrontFace() {\n    return !!(this.data & 1 << WINDING);\n  }\n  set clockwiseFrontFace(value) {\n    if (!!(this.data & 1 << WINDING) !== value) {\n      this.data ^= 1 << WINDING;\n    }\n  }\n  get blendMode() {\n    return this._blendMode;\n  }\n  set blendMode(value) {\n    this.blend = value !== BLEND_MODES.NONE;\n    this._blendMode = value;\n  }\n  get polygonOffset() {\n    return this._polygonOffset;\n  }\n  set polygonOffset(value) {\n    this.offsets = !!value;\n    this._polygonOffset = value;\n  }\n  toString() {\n    return `[@pixi/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`;\n  }\n  static for2d() {\n    const state = new State();\n    state.depthTest = false;\n    state.blend = true;\n    return state;\n  }\n}\n\nexport { State };\n//# sourceMappingURL=State.mjs.map\n","const INSTALLED = [];\nfunction autoDetectResource(source, options) {\n  if (!source) {\n    return null;\n  }\n  let extension = \"\";\n  if (typeof source === \"string\") {\n    const result = /\\.(\\w{3,4})(?:$|\\?|#)/i.exec(source);\n    if (result) {\n      extension = result[1].toLowerCase();\n    }\n  }\n  for (let i = INSTALLED.length - 1; i >= 0; --i) {\n    const ResourcePlugin = INSTALLED[i];\n    if (ResourcePlugin.test && ResourcePlugin.test(source, extension)) {\n      return new ResourcePlugin(source, options);\n    }\n  }\n  throw new Error(\"Unrecognized source type to auto-detect Resource\");\n}\n\nexport { INSTALLED, autoDetectResource };\n//# sourceMappingURL=autoDetectResource.mjs.map\n","class Runner {\n  constructor(name) {\n    this.items = [];\n    this._name = name;\n    this._aliasCount = 0;\n  }\n  emit(a0, a1, a2, a3, a4, a5, a6, a7) {\n    if (arguments.length > 8) {\n      throw new Error(\"max arguments reached\");\n    }\n    const { name, items } = this;\n    this._aliasCount++;\n    for (let i = 0, len = items.length; i < len; i++) {\n      items[i][name](a0, a1, a2, a3, a4, a5, a6, a7);\n    }\n    if (items === this.items) {\n      this._aliasCount--;\n    }\n    return this;\n  }\n  ensureNonAliasedItems() {\n    if (this._aliasCount > 0 && this.items.length > 1) {\n      this._aliasCount = 0;\n      this.items = this.items.slice(0);\n    }\n  }\n  add(item) {\n    if (item[this._name]) {\n      this.ensureNonAliasedItems();\n      this.remove(item);\n      this.items.push(item);\n    }\n    return this;\n  }\n  remove(item) {\n    const index = this.items.indexOf(item);\n    if (index !== -1) {\n      this.ensureNonAliasedItems();\n      this.items.splice(index, 1);\n    }\n    return this;\n  }\n  contains(item) {\n    return this.items.includes(item);\n  }\n  removeAll() {\n    this.ensureNonAliasedItems();\n    this.items.length = 0;\n    return this;\n  }\n  destroy() {\n    this.removeAll();\n    this.items = null;\n    this._name = null;\n  }\n  get empty() {\n    return this.items.length === 0;\n  }\n  get name() {\n    return this._name;\n  }\n}\nObject.defineProperties(Runner.prototype, {\n  dispatch: { value: Runner.prototype.emit },\n  run: { value: Runner.prototype.emit }\n});\n\nexport { Runner };\n//# sourceMappingURL=Runner.mjs.map\n","import { Runner } from '@pixi/runner';\n\nclass Resource {\n  constructor(width = 0, height = 0) {\n    this._width = width;\n    this._height = height;\n    this.destroyed = false;\n    this.internal = false;\n    this.onResize = new Runner(\"setRealSize\");\n    this.onUpdate = new Runner(\"update\");\n    this.onError = new Runner(\"onError\");\n  }\n  bind(baseTexture) {\n    this.onResize.add(baseTexture);\n    this.onUpdate.add(baseTexture);\n    this.onError.add(baseTexture);\n    if (this._width || this._height) {\n      this.onResize.emit(this._width, this._height);\n    }\n  }\n  unbind(baseTexture) {\n    this.onResize.remove(baseTexture);\n    this.onUpdate.remove(baseTexture);\n    this.onError.remove(baseTexture);\n  }\n  resize(width, height) {\n    if (width !== this._width || height !== this._height) {\n      this._width = width;\n      this._height = height;\n      this.onResize.emit(width, height);\n    }\n  }\n  get valid() {\n    return !!this._width && !!this._height;\n  }\n  update() {\n    if (!this.destroyed) {\n      this.onUpdate.emit();\n    }\n  }\n  load() {\n    return Promise.resolve(this);\n  }\n  get width() {\n    return this._width;\n  }\n  get height() {\n    return this._height;\n  }\n  style(_renderer, _baseTexture, _glTexture) {\n    return false;\n  }\n  dispose() {\n  }\n  destroy() {\n    if (!this.destroyed) {\n      this.destroyed = true;\n      this.dispose();\n      this.onError.removeAll();\n      this.onError = null;\n      this.onResize.removeAll();\n      this.onResize = null;\n      this.onUpdate.removeAll();\n      this.onUpdate = null;\n    }\n  }\n  static test(_source, _extension) {\n    return false;\n  }\n}\n\nexport { Resource };\n//# sourceMappingURL=Resource.mjs.map\n","import { ALPHA_MODES } from '@pixi/constants';\nimport { Resource } from './Resource.mjs';\n\nclass BufferResource extends Resource {\n  constructor(source, options) {\n    const { width, height } = options || {};\n    if (!width || !height) {\n      throw new Error(\"BufferResource width or height invalid\");\n    }\n    super(width, height);\n    this.data = source;\n  }\n  upload(renderer, baseTexture, glTexture) {\n    const gl = renderer.gl;\n    gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.alphaMode === ALPHA_MODES.UNPACK);\n    const width = baseTexture.realWidth;\n    const height = baseTexture.realHeight;\n    if (glTexture.width === width && glTexture.height === height) {\n      gl.texSubImage2D(baseTexture.target, 0, 0, 0, width, height, baseTexture.format, glTexture.type, this.data);\n    } else {\n      glTexture.width = width;\n      glTexture.height = height;\n      gl.texImage2D(baseTexture.target, 0, glTexture.internalFormat, width, height, 0, baseTexture.format, glTexture.type, this.data);\n    }\n    return true;\n  }\n  dispose() {\n    this.data = null;\n  }\n  static test(source) {\n    return source instanceof Float32Array || source instanceof Uint8Array || source instanceof Uint32Array;\n  }\n}\n\nexport { BufferResource };\n//# sourceMappingURL=BufferResource.mjs.map\n","import { SCALE_MODES, FORMATS, ALPHA_MODES, TYPES, MIPMAP_MODES, WRAP_MODES, TARGETS } from '@pixi/constants';\nimport { settings } from '@pixi/settings';\nimport { EventEmitter, uid, isPow2, BaseTextureCache, TextureCache } from '@pixi/utils';\nimport { autoDetectResource } from './resources/autoDetectResource.mjs';\nimport { BufferResource } from './resources/BufferResource.mjs';\nimport { Resource } from './resources/Resource.mjs';\n\nconst defaultBufferOptions = {\n  scaleMode: SCALE_MODES.NEAREST,\n  format: FORMATS.RGBA,\n  alphaMode: ALPHA_MODES.NPM\n};\nconst _BaseTexture = class extends EventEmitter {\n  constructor(resource = null, options = null) {\n    super();\n    options = Object.assign({}, _BaseTexture.defaultOptions, options);\n    const {\n      alphaMode,\n      mipmap,\n      anisotropicLevel,\n      scaleMode,\n      width,\n      height,\n      wrapMode,\n      format,\n      type,\n      target,\n      resolution,\n      resourceOptions\n    } = options;\n    if (resource && !(resource instanceof Resource)) {\n      resource = autoDetectResource(resource, resourceOptions);\n      resource.internal = true;\n    }\n    this.resolution = resolution || settings.RESOLUTION;\n    this.width = Math.round((width || 0) * this.resolution) / this.resolution;\n    this.height = Math.round((height || 0) * this.resolution) / this.resolution;\n    this._mipmap = mipmap;\n    this.anisotropicLevel = anisotropicLevel;\n    this._wrapMode = wrapMode;\n    this._scaleMode = scaleMode;\n    this.format = format;\n    this.type = type;\n    this.target = target;\n    this.alphaMode = alphaMode;\n    this.uid = uid();\n    this.touched = 0;\n    this.isPowerOfTwo = false;\n    this._refreshPOT();\n    this._glTextures = {};\n    this.dirtyId = 0;\n    this.dirtyStyleId = 0;\n    this.cacheId = null;\n    this.valid = width > 0 && height > 0;\n    this.textureCacheIds = [];\n    this.destroyed = false;\n    this.resource = null;\n    this._batchEnabled = 0;\n    this._batchLocation = 0;\n    this.parentTextureArray = null;\n    this.setResource(resource);\n  }\n  get realWidth() {\n    return Math.round(this.width * this.resolution);\n  }\n  get realHeight() {\n    return Math.round(this.height * this.resolution);\n  }\n  get mipmap() {\n    return this._mipmap;\n  }\n  set mipmap(value) {\n    if (this._mipmap !== value) {\n      this._mipmap = value;\n      this.dirtyStyleId++;\n    }\n  }\n  get scaleMode() {\n    return this._scaleMode;\n  }\n  set scaleMode(value) {\n    if (this._scaleMode !== value) {\n      this._scaleMode = value;\n      this.dirtyStyleId++;\n    }\n  }\n  get wrapMode() {\n    return this._wrapMode;\n  }\n  set wrapMode(value) {\n    if (this._wrapMode !== value) {\n      this._wrapMode = value;\n      this.dirtyStyleId++;\n    }\n  }\n  setStyle(scaleMode, mipmap) {\n    let dirty;\n    if (scaleMode !== void 0 && scaleMode !== this.scaleMode) {\n      this.scaleMode = scaleMode;\n      dirty = true;\n    }\n    if (mipmap !== void 0 && mipmap !== this.mipmap) {\n      this.mipmap = mipmap;\n      dirty = true;\n    }\n    if (dirty) {\n      this.dirtyStyleId++;\n    }\n    return this;\n  }\n  setSize(desiredWidth, desiredHeight, resolution) {\n    resolution = resolution || this.resolution;\n    return this.setRealSize(desiredWidth * resolution, desiredHeight * resolution, resolution);\n  }\n  setRealSize(realWidth, realHeight, resolution) {\n    this.resolution = resolution || this.resolution;\n    this.width = Math.round(realWidth) / this.resolution;\n    this.height = Math.round(realHeight) / this.resolution;\n    this._refreshPOT();\n    this.update();\n    return this;\n  }\n  _refreshPOT() {\n    this.isPowerOfTwo = isPow2(this.realWidth) && isPow2(this.realHeight);\n  }\n  setResolution(resolution) {\n    const oldResolution = this.resolution;\n    if (oldResolution === resolution) {\n      return this;\n    }\n    this.resolution = resolution;\n    if (this.valid) {\n      this.width = Math.round(this.width * oldResolution) / resolution;\n      this.height = Math.round(this.height * oldResolution) / resolution;\n      this.emit(\"update\", this);\n    }\n    this._refreshPOT();\n    return this;\n  }\n  setResource(resource) {\n    if (this.resource === resource) {\n      return this;\n    }\n    if (this.resource) {\n      throw new Error(\"Resource can be set only once\");\n    }\n    resource.bind(this);\n    this.resource = resource;\n    return this;\n  }\n  update() {\n    if (!this.valid) {\n      if (this.width > 0 && this.height > 0) {\n        this.valid = true;\n        this.emit(\"loaded\", this);\n        this.emit(\"update\", this);\n      }\n    } else {\n      this.dirtyId++;\n      this.dirtyStyleId++;\n      this.emit(\"update\", this);\n    }\n  }\n  onError(event) {\n    this.emit(\"error\", this, event);\n  }\n  destroy() {\n    if (this.resource) {\n      this.resource.unbind(this);\n      if (this.resource.internal) {\n        this.resource.destroy();\n      }\n      this.resource = null;\n    }\n    if (this.cacheId) {\n      delete BaseTextureCache[this.cacheId];\n      delete TextureCache[this.cacheId];\n      this.cacheId = null;\n    }\n    this.dispose();\n    _BaseTexture.removeFromCache(this);\n    this.textureCacheIds = null;\n    this.destroyed = true;\n  }\n  dispose() {\n    this.emit(\"dispose\", this);\n  }\n  castToBaseTexture() {\n    return this;\n  }\n  static from(source, options, strict = settings.STRICT_TEXTURE_CACHE) {\n    const isFrame = typeof source === \"string\";\n    let cacheId = null;\n    if (isFrame) {\n      cacheId = source;\n    } else {\n      if (!source._pixiId) {\n        const prefix = options?.pixiIdPrefix || \"pixiid\";\n        source._pixiId = `${prefix}_${uid()}`;\n      }\n      cacheId = source._pixiId;\n    }\n    let baseTexture = BaseTextureCache[cacheId];\n    if (isFrame && strict && !baseTexture) {\n      throw new Error(`The cacheId \"${cacheId}\" does not exist in BaseTextureCache.`);\n    }\n    if (!baseTexture) {\n      baseTexture = new _BaseTexture(source, options);\n      baseTexture.cacheId = cacheId;\n      _BaseTexture.addToCache(baseTexture, cacheId);\n    }\n    return baseTexture;\n  }\n  static fromBuffer(buffer, width, height, options) {\n    buffer = buffer || new Float32Array(width * height * 4);\n    const resource = new BufferResource(buffer, { width, height });\n    const type = buffer instanceof Float32Array ? TYPES.FLOAT : TYPES.UNSIGNED_BYTE;\n    return new _BaseTexture(resource, Object.assign({}, defaultBufferOptions, options || { width, height, type }));\n  }\n  static addToCache(baseTexture, id) {\n    if (id) {\n      if (!baseTexture.textureCacheIds.includes(id)) {\n        baseTexture.textureCacheIds.push(id);\n      }\n      if (BaseTextureCache[id] && BaseTextureCache[id] !== baseTexture) {\n        console.warn(`BaseTexture added to the cache with an id [${id}] that already had an entry`);\n      }\n      BaseTextureCache[id] = baseTexture;\n    }\n  }\n  static removeFromCache(baseTexture) {\n    if (typeof baseTexture === \"string\") {\n      const baseTextureFromCache = BaseTextureCache[baseTexture];\n      if (baseTextureFromCache) {\n        const index = baseTextureFromCache.textureCacheIds.indexOf(baseTexture);\n        if (index > -1) {\n          baseTextureFromCache.textureCacheIds.splice(index, 1);\n        }\n        delete BaseTextureCache[baseTexture];\n        return baseTextureFromCache;\n      }\n    } else if (baseTexture?.textureCacheIds) {\n      for (let i = 0; i < baseTexture.textureCacheIds.length; ++i) {\n        delete BaseTextureCache[baseTexture.textureCacheIds[i]];\n      }\n      baseTexture.textureCacheIds.length = 0;\n      return baseTexture;\n    }\n    return null;\n  }\n};\nlet BaseTexture = _BaseTexture;\nBaseTexture.defaultOptions = {\n  mipmap: MIPMAP_MODES.POW2,\n  anisotropicLevel: 0,\n  scaleMode: SCALE_MODES.LINEAR,\n  wrapMode: WRAP_MODES.CLAMP,\n  alphaMode: ALPHA_MODES.UNPACK,\n  target: TARGETS.TEXTURE_2D,\n  format: FORMATS.RGBA,\n  type: TYPES.UNSIGNED_BYTE\n};\nBaseTexture._globalBatch = 0;\n\nexport { BaseTexture };\n//# sourceMappingURL=BaseTexture.mjs.map\n","import { DRAW_MODES } from '@pixi/constants';\n\nclass BatchDrawCall {\n  constructor() {\n    this.texArray = null;\n    this.blend = 0;\n    this.type = DRAW_MODES.TRIANGLES;\n    this.start = 0;\n    this.size = 0;\n    this.data = null;\n  }\n}\n\nexport { BatchDrawCall };\n//# sourceMappingURL=BatchDrawCall.mjs.map\n","import { BUFFER_TYPE } from '@pixi/constants';\nimport { Runner } from '@pixi/runner';\n\nlet UID = 0;\nclass Buffer {\n  constructor(data, _static = true, index = false) {\n    this.data = data || new Float32Array(1);\n    this._glBuffers = {};\n    this._updateID = 0;\n    this.index = index;\n    this.static = _static;\n    this.id = UID++;\n    this.disposeRunner = new Runner(\"disposeBuffer\");\n  }\n  update(data) {\n    if (data instanceof Array) {\n      data = new Float32Array(data);\n    }\n    this.data = data || this.data;\n    this._updateID++;\n  }\n  dispose() {\n    this.disposeRunner.emit(this, false);\n  }\n  destroy() {\n    this.dispose();\n    this.data = null;\n  }\n  set index(value) {\n    this.type = value ? BUFFER_TYPE.ELEMENT_ARRAY_BUFFER : BUFFER_TYPE.ARRAY_BUFFER;\n  }\n  get index() {\n    return this.type === BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n  }\n  static from(data) {\n    if (data instanceof Array) {\n      data = new Float32Array(data);\n    }\n    return new Buffer(data);\n  }\n}\n\nexport { Buffer };\n//# sourceMappingURL=Buffer.mjs.map\n","import { TYPES } from '@pixi/constants';\n\nclass Attribute {\n  constructor(buffer, size = 0, normalized = false, type = TYPES.FLOAT, stride, start, instance, divisor = 1) {\n    this.buffer = buffer;\n    this.size = size;\n    this.normalized = normalized;\n    this.type = type;\n    this.stride = stride;\n    this.start = start;\n    this.instance = instance;\n    this.divisor = divisor;\n  }\n  destroy() {\n    this.buffer = null;\n  }\n  static from(buffer, size, normalized, type, stride) {\n    return new Attribute(buffer, size, normalized, type, stride);\n  }\n}\n\nexport { Attribute };\n//# sourceMappingURL=Attribute.mjs.map\n","import { getBufferType } from '@pixi/utils';\n\nconst map = {\n  Float32Array,\n  Uint32Array,\n  Int32Array,\n  Uint8Array\n};\nfunction interleaveTypedArrays(arrays, sizes) {\n  let outSize = 0;\n  let stride = 0;\n  const views = {};\n  for (let i = 0; i < arrays.length; i++) {\n    stride += sizes[i];\n    outSize += arrays[i].length;\n  }\n  const buffer = new ArrayBuffer(outSize * 4);\n  let out = null;\n  let littleOffset = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const size = sizes[i];\n    const array = arrays[i];\n    const type = getBufferType(array);\n    if (!views[type]) {\n      views[type] = new map[type](buffer);\n    }\n    out = views[type];\n    for (let j = 0; j < array.length; j++) {\n      const indexStart = (j / size | 0) * stride + littleOffset;\n      const index = j % size;\n      out[indexStart + index] = array[j];\n    }\n    littleOffset += size;\n  }\n  return new Float32Array(buffer);\n}\n\nexport { interleaveTypedArrays };\n//# sourceMappingURL=interleaveTypedArrays.mjs.map\n","import { BUFFER_TYPE } from '@pixi/constants';\nimport { Runner } from '@pixi/runner';\nimport { getBufferType } from '@pixi/utils';\nimport { Attribute } from './Attribute.mjs';\nimport { Buffer } from './Buffer.mjs';\nimport { interleaveTypedArrays } from './utils/interleaveTypedArrays.mjs';\n\nconst byteSizeMap = { 5126: 4, 5123: 2, 5121: 1 };\nlet UID = 0;\nconst map = {\n  Float32Array,\n  Uint32Array,\n  Int32Array,\n  Uint8Array,\n  Uint16Array\n};\nclass Geometry {\n  constructor(buffers = [], attributes = {}) {\n    this.buffers = buffers;\n    this.indexBuffer = null;\n    this.attributes = attributes;\n    this.glVertexArrayObjects = {};\n    this.id = UID++;\n    this.instanced = false;\n    this.instanceCount = 1;\n    this.disposeRunner = new Runner(\"disposeGeometry\");\n    this.refCount = 0;\n  }\n  addAttribute(id, buffer, size = 0, normalized = false, type, stride, start, instance = false) {\n    if (!buffer) {\n      throw new Error(\"You must pass a buffer when creating an attribute\");\n    }\n    if (!(buffer instanceof Buffer)) {\n      if (buffer instanceof Array) {\n        buffer = new Float32Array(buffer);\n      }\n      buffer = new Buffer(buffer);\n    }\n    const ids = id.split(\"|\");\n    if (ids.length > 1) {\n      for (let i = 0; i < ids.length; i++) {\n        this.addAttribute(ids[i], buffer, size, normalized, type);\n      }\n      return this;\n    }\n    let bufferIndex = this.buffers.indexOf(buffer);\n    if (bufferIndex === -1) {\n      this.buffers.push(buffer);\n      bufferIndex = this.buffers.length - 1;\n    }\n    this.attributes[id] = new Attribute(bufferIndex, size, normalized, type, stride, start, instance);\n    this.instanced = this.instanced || instance;\n    return this;\n  }\n  getAttribute(id) {\n    return this.attributes[id];\n  }\n  getBuffer(id) {\n    return this.buffers[this.getAttribute(id).buffer];\n  }\n  addIndex(buffer) {\n    if (!(buffer instanceof Buffer)) {\n      if (buffer instanceof Array) {\n        buffer = new Uint16Array(buffer);\n      }\n      buffer = new Buffer(buffer);\n    }\n    buffer.type = BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n    this.indexBuffer = buffer;\n    if (!this.buffers.includes(buffer)) {\n      this.buffers.push(buffer);\n    }\n    return this;\n  }\n  getIndex() {\n    return this.indexBuffer;\n  }\n  interleave() {\n    if (this.buffers.length === 1 || this.buffers.length === 2 && this.indexBuffer)\n      return this;\n    const arrays = [];\n    const sizes = [];\n    const interleavedBuffer = new Buffer();\n    let i;\n    for (i in this.attributes) {\n      const attribute = this.attributes[i];\n      const buffer = this.buffers[attribute.buffer];\n      arrays.push(buffer.data);\n      sizes.push(attribute.size * byteSizeMap[attribute.type] / 4);\n      attribute.buffer = 0;\n    }\n    interleavedBuffer.data = interleaveTypedArrays(arrays, sizes);\n    for (i = 0; i < this.buffers.length; i++) {\n      if (this.buffers[i] !== this.indexBuffer) {\n        this.buffers[i].destroy();\n      }\n    }\n    this.buffers = [interleavedBuffer];\n    if (this.indexBuffer) {\n      this.buffers.push(this.indexBuffer);\n    }\n    return this;\n  }\n  getSize() {\n    for (const i in this.attributes) {\n      const attribute = this.attributes[i];\n      const buffer = this.buffers[attribute.buffer];\n      return buffer.data.length / (attribute.stride / 4 || attribute.size);\n    }\n    return 0;\n  }\n  dispose() {\n    this.disposeRunner.emit(this, false);\n  }\n  destroy() {\n    this.dispose();\n    this.buffers = null;\n    this.indexBuffer = null;\n    this.attributes = null;\n  }\n  clone() {\n    const geometry = new Geometry();\n    for (let i = 0; i < this.buffers.length; i++) {\n      geometry.buffers[i] = new Buffer(this.buffers[i].data.slice(0));\n    }\n    for (const i in this.attributes) {\n      const attrib = this.attributes[i];\n      geometry.attributes[i] = new Attribute(attrib.buffer, attrib.size, attrib.normalized, attrib.type, attrib.stride, attrib.start, attrib.instance);\n    }\n    if (this.indexBuffer) {\n      geometry.indexBuffer = geometry.buffers[this.buffers.indexOf(this.indexBuffer)];\n      geometry.indexBuffer.type = BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n    }\n    return geometry;\n  }\n  static merge(geometries) {\n    const geometryOut = new Geometry();\n    const arrays = [];\n    const sizes = [];\n    const offsets = [];\n    let geometry;\n    for (let i = 0; i < geometries.length; i++) {\n      geometry = geometries[i];\n      for (let j = 0; j < geometry.buffers.length; j++) {\n        sizes[j] = sizes[j] || 0;\n        sizes[j] += geometry.buffers[j].data.length;\n        offsets[j] = 0;\n      }\n    }\n    for (let i = 0; i < geometry.buffers.length; i++) {\n      arrays[i] = new map[getBufferType(geometry.buffers[i].data)](sizes[i]);\n      geometryOut.buffers[i] = new Buffer(arrays[i]);\n    }\n    for (let i = 0; i < geometries.length; i++) {\n      geometry = geometries[i];\n      for (let j = 0; j < geometry.buffers.length; j++) {\n        arrays[j].set(geometry.buffers[j].data, offsets[j]);\n        offsets[j] += geometry.buffers[j].data.length;\n      }\n    }\n    geometryOut.attributes = geometry.attributes;\n    if (geometry.indexBuffer) {\n      geometryOut.indexBuffer = geometryOut.buffers[geometry.buffers.indexOf(geometry.indexBuffer)];\n      geometryOut.indexBuffer.type = BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n      let offset = 0;\n      let stride = 0;\n      let offset2 = 0;\n      let bufferIndexToCount = 0;\n      for (let i = 0; i < geometry.buffers.length; i++) {\n        if (geometry.buffers[i] !== geometry.indexBuffer) {\n          bufferIndexToCount = i;\n          break;\n        }\n      }\n      for (const i in geometry.attributes) {\n        const attribute = geometry.attributes[i];\n        if ((attribute.buffer | 0) === bufferIndexToCount) {\n          stride += attribute.size * byteSizeMap[attribute.type] / 4;\n        }\n      }\n      for (let i = 0; i < geometries.length; i++) {\n        const indexBufferData = geometries[i].indexBuffer.data;\n        for (let j = 0; j < indexBufferData.length; j++) {\n          geometryOut.indexBuffer.data[j + offset2] += offset;\n        }\n        offset += geometries[i].buffers[bufferIndexToCount].data.length / stride;\n        offset2 += indexBufferData.length;\n      }\n    }\n    return geometryOut;\n  }\n}\n\nexport { Geometry };\n//# sourceMappingURL=Geometry.mjs.map\n","import { TYPES } from '@pixi/constants';\nimport { Buffer } from '../geometry/Buffer.mjs';\nimport { Geometry } from '../geometry/Geometry.mjs';\n\nclass BatchGeometry extends Geometry {\n  constructor(_static = false) {\n    super();\n    this._buffer = new Buffer(null, _static, false);\n    this._indexBuffer = new Buffer(null, _static, true);\n    this.addAttribute(\"aVertexPosition\", this._buffer, 2, false, TYPES.FLOAT).addAttribute(\"aTextureCoord\", this._buffer, 2, false, TYPES.FLOAT).addAttribute(\"aColor\", this._buffer, 4, true, TYPES.UNSIGNED_BYTE).addAttribute(\"aTextureId\", this._buffer, 1, true, TYPES.FLOAT).addIndex(this._indexBuffer);\n  }\n}\n\nexport { BatchGeometry };\n//# sourceMappingURL=BatchGeometry.mjs.map\n","const PI_2 = Math.PI * 2;\nconst RAD_TO_DEG = 180 / Math.PI;\nconst DEG_TO_RAD = Math.PI / 180;\nvar SHAPES = /* @__PURE__ */ ((SHAPES2) => {\n  SHAPES2[SHAPES2[\"POLY\"] = 0] = \"POLY\";\n  SHAPES2[SHAPES2[\"RECT\"] = 1] = \"RECT\";\n  SHAPES2[SHAPES2[\"CIRC\"] = 2] = \"CIRC\";\n  SHAPES2[SHAPES2[\"ELIP\"] = 3] = \"ELIP\";\n  SHAPES2[SHAPES2[\"RREC\"] = 4] = \"RREC\";\n  return SHAPES2;\n})(SHAPES || {});\n\nexport { DEG_TO_RAD, PI_2, RAD_TO_DEG, SHAPES };\n//# sourceMappingURL=const.mjs.map\n","class Point {\n  constructor(x = 0, y = 0) {\n    this.x = 0;\n    this.y = 0;\n    this.x = x;\n    this.y = y;\n  }\n  clone() {\n    return new Point(this.x, this.y);\n  }\n  copyFrom(p) {\n    this.set(p.x, p.y);\n    return this;\n  }\n  copyTo(p) {\n    p.set(this.x, this.y);\n    return p;\n  }\n  equals(p) {\n    return p.x === this.x && p.y === this.y;\n  }\n  set(x = 0, y = x) {\n    this.x = x;\n    this.y = y;\n    return this;\n  }\n  toString() {\n    return `[@pixi/math:Point x=${this.x} y=${this.y}]`;\n  }\n}\n\nexport { Point };\n//# sourceMappingURL=Point.mjs.map\n","import { SHAPES } from '../const.mjs';\nimport { Point } from '../Point.mjs';\n\nconst tempPoints = [new Point(), new Point(), new Point(), new Point()];\nclass Rectangle {\n  constructor(x = 0, y = 0, width = 0, height = 0) {\n    this.x = Number(x);\n    this.y = Number(y);\n    this.width = Number(width);\n    this.height = Number(height);\n    this.type = SHAPES.RECT;\n  }\n  get left() {\n    return this.x;\n  }\n  get right() {\n    return this.x + this.width;\n  }\n  get top() {\n    return this.y;\n  }\n  get bottom() {\n    return this.y + this.height;\n  }\n  static get EMPTY() {\n    return new Rectangle(0, 0, 0, 0);\n  }\n  clone() {\n    return new Rectangle(this.x, this.y, this.width, this.height);\n  }\n  copyFrom(rectangle) {\n    this.x = rectangle.x;\n    this.y = rectangle.y;\n    this.width = rectangle.width;\n    this.height = rectangle.height;\n    return this;\n  }\n  copyTo(rectangle) {\n    rectangle.x = this.x;\n    rectangle.y = this.y;\n    rectangle.width = this.width;\n    rectangle.height = this.height;\n    return rectangle;\n  }\n  contains(x, y) {\n    if (this.width <= 0 || this.height <= 0) {\n      return false;\n    }\n    if (x >= this.x && x < this.x + this.width) {\n      if (y >= this.y && y < this.y + this.height) {\n        return true;\n      }\n    }\n    return false;\n  }\n  intersects(other, transform) {\n    if (!transform) {\n      const x02 = this.x < other.x ? other.x : this.x;\n      const x12 = this.right > other.right ? other.right : this.right;\n      if (x12 <= x02) {\n        return false;\n      }\n      const y02 = this.y < other.y ? other.y : this.y;\n      const y12 = this.bottom > other.bottom ? other.bottom : this.bottom;\n      return y12 > y02;\n    }\n    const x0 = this.left;\n    const x1 = this.right;\n    const y0 = this.top;\n    const y1 = this.bottom;\n    if (x1 <= x0 || y1 <= y0) {\n      return false;\n    }\n    const lt = tempPoints[0].set(other.left, other.top);\n    const lb = tempPoints[1].set(other.left, other.bottom);\n    const rt = tempPoints[2].set(other.right, other.top);\n    const rb = tempPoints[3].set(other.right, other.bottom);\n    if (rt.x <= lt.x || lb.y <= lt.y) {\n      return false;\n    }\n    const s = Math.sign(transform.a * transform.d - transform.b * transform.c);\n    if (s === 0) {\n      return false;\n    }\n    transform.apply(lt, lt);\n    transform.apply(lb, lb);\n    transform.apply(rt, rt);\n    transform.apply(rb, rb);\n    if (Math.max(lt.x, lb.x, rt.x, rb.x) <= x0 || Math.min(lt.x, lb.x, rt.x, rb.x) >= x1 || Math.max(lt.y, lb.y, rt.y, rb.y) <= y0 || Math.min(lt.y, lb.y, rt.y, rb.y) >= y1) {\n      return false;\n    }\n    const nx = s * (lb.y - lt.y);\n    const ny = s * (lt.x - lb.x);\n    const n00 = nx * x0 + ny * y0;\n    const n10 = nx * x1 + ny * y0;\n    const n01 = nx * x0 + ny * y1;\n    const n11 = nx * x1 + ny * y1;\n    if (Math.max(n00, n10, n01, n11) <= nx * lt.x + ny * lt.y || Math.min(n00, n10, n01, n11) >= nx * rb.x + ny * rb.y) {\n      return false;\n    }\n    const mx = s * (lt.y - rt.y);\n    const my = s * (rt.x - lt.x);\n    const m00 = mx * x0 + my * y0;\n    const m10 = mx * x1 + my * y0;\n    const m01 = mx * x0 + my * y1;\n    const m11 = mx * x1 + my * y1;\n    if (Math.max(m00, m10, m01, m11) <= mx * lt.x + my * lt.y || Math.min(m00, m10, m01, m11) >= mx * rb.x + my * rb.y) {\n      return false;\n    }\n    return true;\n  }\n  pad(paddingX = 0, paddingY = paddingX) {\n    this.x -= paddingX;\n    this.y -= paddingY;\n    this.width += paddingX * 2;\n    this.height += paddingY * 2;\n    return this;\n  }\n  fit(rectangle) {\n    const x1 = Math.max(this.x, rectangle.x);\n    const x2 = Math.min(this.x + this.width, rectangle.x + rectangle.width);\n    const y1 = Math.max(this.y, rectangle.y);\n    const y2 = Math.min(this.y + this.height, rectangle.y + rectangle.height);\n    this.x = x1;\n    this.width = Math.max(x2 - x1, 0);\n    this.y = y1;\n    this.height = Math.max(y2 - y1, 0);\n    return this;\n  }\n  ceil(resolution = 1, eps = 1e-3) {\n    const x2 = Math.ceil((this.x + this.width - eps) * resolution) / resolution;\n    const y2 = Math.ceil((this.y + this.height - eps) * resolution) / resolution;\n    this.x = Math.floor((this.x + eps) * resolution) / resolution;\n    this.y = Math.floor((this.y + eps) * resolution) / resolution;\n    this.width = x2 - this.x;\n    this.height = y2 - this.y;\n    return this;\n  }\n  enlarge(rectangle) {\n    const x1 = Math.min(this.x, rectangle.x);\n    const x2 = Math.max(this.x + this.width, rectangle.x + rectangle.width);\n    const y1 = Math.min(this.y, rectangle.y);\n    const y2 = Math.max(this.y + this.height, rectangle.y + rectangle.height);\n    this.x = x1;\n    this.width = x2 - x1;\n    this.y = y1;\n    this.height = y2 - y1;\n    return this;\n  }\n  toString() {\n    return `[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`;\n  }\n}\n\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.mjs.map\n","import { SHAPES } from '../const.mjs';\nimport { Rectangle } from './Rectangle.mjs';\n\nclass Circle {\n  constructor(x = 0, y = 0, radius = 0) {\n    this.x = x;\n    this.y = y;\n    this.radius = radius;\n    this.type = SHAPES.CIRC;\n  }\n  clone() {\n    return new Circle(this.x, this.y, this.radius);\n  }\n  contains(x, y) {\n    if (this.radius <= 0) {\n      return false;\n    }\n    const r2 = this.radius * this.radius;\n    let dx = this.x - x;\n    let dy = this.y - y;\n    dx *= dx;\n    dy *= dy;\n    return dx + dy <= r2;\n  }\n  getBounds() {\n    return new Rectangle(this.x - this.radius, this.y - this.radius, this.radius * 2, this.radius * 2);\n  }\n  toString() {\n    return `[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`;\n  }\n}\n\nexport { Circle };\n//# sourceMappingURL=Circle.mjs.map\n","import { SHAPES } from '../const.mjs';\nimport { Rectangle } from './Rectangle.mjs';\n\nclass Ellipse {\n  constructor(x = 0, y = 0, halfWidth = 0, halfHeight = 0) {\n    this.x = x;\n    this.y = y;\n    this.width = halfWidth;\n    this.height = halfHeight;\n    this.type = SHAPES.ELIP;\n  }\n  clone() {\n    return new Ellipse(this.x, this.y, this.width, this.height);\n  }\n  contains(x, y) {\n    if (this.width <= 0 || this.height <= 0) {\n      return false;\n    }\n    let normx = (x - this.x) / this.width;\n    let normy = (y - this.y) / this.height;\n    normx *= normx;\n    normy *= normy;\n    return normx + normy <= 1;\n  }\n  getBounds() {\n    return new Rectangle(this.x - this.width, this.y - this.height, this.width, this.height);\n  }\n  toString() {\n    return `[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`;\n  }\n}\n\nexport { Ellipse };\n//# sourceMappingURL=Ellipse.mjs.map\n","import { SHAPES } from '../const.mjs';\n\nclass Polygon {\n  constructor(...points) {\n    let flat = Array.isArray(points[0]) ? points[0] : points;\n    if (typeof flat[0] !== \"number\") {\n      const p = [];\n      for (let i = 0, il = flat.length; i < il; i++) {\n        p.push(flat[i].x, flat[i].y);\n      }\n      flat = p;\n    }\n    this.points = flat;\n    this.type = SHAPES.POLY;\n    this.closeStroke = true;\n  }\n  clone() {\n    const points = this.points.slice();\n    const polygon = new Polygon(points);\n    polygon.closeStroke = this.closeStroke;\n    return polygon;\n  }\n  contains(x, y) {\n    let inside = false;\n    const length = this.points.length / 2;\n    for (let i = 0, j = length - 1; i < length; j = i++) {\n      const xi = this.points[i * 2];\n      const yi = this.points[i * 2 + 1];\n      const xj = this.points[j * 2];\n      const yj = this.points[j * 2 + 1];\n      const intersect = yi > y !== yj > y && x < (xj - xi) * ((y - yi) / (yj - yi)) + xi;\n      if (intersect) {\n        inside = !inside;\n      }\n    }\n    return inside;\n  }\n  toString() {\n    return `[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((pointsDesc, currentPoint) => `${pointsDesc}, ${currentPoint}`, \"\")}]`;\n  }\n}\n\nexport { Polygon };\n//# sourceMappingURL=Polygon.mjs.map\n","import { SHAPES } from '../const.mjs';\n\nclass RoundedRectangle {\n  constructor(x = 0, y = 0, width = 0, height = 0, radius = 20) {\n    this.x = x;\n    this.y = y;\n    this.width = width;\n    this.height = height;\n    this.radius = radius;\n    this.type = SHAPES.RREC;\n  }\n  clone() {\n    return new RoundedRectangle(this.x, this.y, this.width, this.height, this.radius);\n  }\n  contains(x, y) {\n    if (this.width <= 0 || this.height <= 0) {\n      return false;\n    }\n    if (x >= this.x && x <= this.x + this.width) {\n      if (y >= this.y && y <= this.y + this.height) {\n        const radius = Math.max(0, Math.min(this.radius, Math.min(this.width, this.height) / 2));\n        if (y >= this.y + radius && y <= this.y + this.height - radius || x >= this.x + radius && x <= this.x + this.width - radius) {\n          return true;\n        }\n        let dx = x - (this.x + radius);\n        let dy = y - (this.y + radius);\n        const radius2 = radius * radius;\n        if (dx * dx + dy * dy <= radius2) {\n          return true;\n        }\n        dx = x - (this.x + this.width - radius);\n        if (dx * dx + dy * dy <= radius2) {\n          return true;\n        }\n        dy = y - (this.y + this.height - radius);\n        if (dx * dx + dy * dy <= radius2) {\n          return true;\n        }\n        dx = x - (this.x + radius);\n        if (dx * dx + dy * dy <= radius2) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  toString() {\n    return `[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`;\n  }\n}\n\nexport { RoundedRectangle };\n//# sourceMappingURL=RoundedRectangle.mjs.map\n","import { PI_2 } from './const.mjs';\nimport { Point } from './Point.mjs';\n\nclass Matrix {\n  constructor(a = 1, b = 0, c = 0, d = 1, tx = 0, ty = 0) {\n    this.array = null;\n    this.a = a;\n    this.b = b;\n    this.c = c;\n    this.d = d;\n    this.tx = tx;\n    this.ty = ty;\n  }\n  fromArray(array) {\n    this.a = array[0];\n    this.b = array[1];\n    this.c = array[3];\n    this.d = array[4];\n    this.tx = array[2];\n    this.ty = array[5];\n  }\n  set(a, b, c, d, tx, ty) {\n    this.a = a;\n    this.b = b;\n    this.c = c;\n    this.d = d;\n    this.tx = tx;\n    this.ty = ty;\n    return this;\n  }\n  toArray(transpose, out) {\n    if (!this.array) {\n      this.array = new Float32Array(9);\n    }\n    const array = out || this.array;\n    if (transpose) {\n      array[0] = this.a;\n      array[1] = this.b;\n      array[2] = 0;\n      array[3] = this.c;\n      array[4] = this.d;\n      array[5] = 0;\n      array[6] = this.tx;\n      array[7] = this.ty;\n      array[8] = 1;\n    } else {\n      array[0] = this.a;\n      array[1] = this.c;\n      array[2] = this.tx;\n      array[3] = this.b;\n      array[4] = this.d;\n      array[5] = this.ty;\n      array[6] = 0;\n      array[7] = 0;\n      array[8] = 1;\n    }\n    return array;\n  }\n  apply(pos, newPos) {\n    newPos = newPos || new Point();\n    const x = pos.x;\n    const y = pos.y;\n    newPos.x = this.a * x + this.c * y + this.tx;\n    newPos.y = this.b * x + this.d * y + this.ty;\n    return newPos;\n  }\n  applyInverse(pos, newPos) {\n    newPos = newPos || new Point();\n    const id = 1 / (this.a * this.d + this.c * -this.b);\n    const x = pos.x;\n    const y = pos.y;\n    newPos.x = this.d * id * x + -this.c * id * y + (this.ty * this.c - this.tx * this.d) * id;\n    newPos.y = this.a * id * y + -this.b * id * x + (-this.ty * this.a + this.tx * this.b) * id;\n    return newPos;\n  }\n  translate(x, y) {\n    this.tx += x;\n    this.ty += y;\n    return this;\n  }\n  scale(x, y) {\n    this.a *= x;\n    this.d *= y;\n    this.c *= x;\n    this.b *= y;\n    this.tx *= x;\n    this.ty *= y;\n    return this;\n  }\n  rotate(angle) {\n    const cos = Math.cos(angle);\n    const sin = Math.sin(angle);\n    const a1 = this.a;\n    const c1 = this.c;\n    const tx1 = this.tx;\n    this.a = a1 * cos - this.b * sin;\n    this.b = a1 * sin + this.b * cos;\n    this.c = c1 * cos - this.d * sin;\n    this.d = c1 * sin + this.d * cos;\n    this.tx = tx1 * cos - this.ty * sin;\n    this.ty = tx1 * sin + this.ty * cos;\n    return this;\n  }\n  append(matrix) {\n    const a1 = this.a;\n    const b1 = this.b;\n    const c1 = this.c;\n    const d1 = this.d;\n    this.a = matrix.a * a1 + matrix.b * c1;\n    this.b = matrix.a * b1 + matrix.b * d1;\n    this.c = matrix.c * a1 + matrix.d * c1;\n    this.d = matrix.c * b1 + matrix.d * d1;\n    this.tx = matrix.tx * a1 + matrix.ty * c1 + this.tx;\n    this.ty = matrix.tx * b1 + matrix.ty * d1 + this.ty;\n    return this;\n  }\n  setTransform(x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) {\n    this.a = Math.cos(rotation + skewY) * scaleX;\n    this.b = Math.sin(rotation + skewY) * scaleX;\n    this.c = -Math.sin(rotation - skewX) * scaleY;\n    this.d = Math.cos(rotation - skewX) * scaleY;\n    this.tx = x - (pivotX * this.a + pivotY * this.c);\n    this.ty = y - (pivotX * this.b + pivotY * this.d);\n    return this;\n  }\n  prepend(matrix) {\n    const tx1 = this.tx;\n    if (matrix.a !== 1 || matrix.b !== 0 || matrix.c !== 0 || matrix.d !== 1) {\n      const a1 = this.a;\n      const c1 = this.c;\n      this.a = a1 * matrix.a + this.b * matrix.c;\n      this.b = a1 * matrix.b + this.b * matrix.d;\n      this.c = c1 * matrix.a + this.d * matrix.c;\n      this.d = c1 * matrix.b + this.d * matrix.d;\n    }\n    this.tx = tx1 * matrix.a + this.ty * matrix.c + matrix.tx;\n    this.ty = tx1 * matrix.b + this.ty * matrix.d + matrix.ty;\n    return this;\n  }\n  decompose(transform) {\n    const a = this.a;\n    const b = this.b;\n    const c = this.c;\n    const d = this.d;\n    const pivot = transform.pivot;\n    const skewX = -Math.atan2(-c, d);\n    const skewY = Math.atan2(b, a);\n    const delta = Math.abs(skewX + skewY);\n    if (delta < 1e-5 || Math.abs(PI_2 - delta) < 1e-5) {\n      transform.rotation = skewY;\n      transform.skew.x = transform.skew.y = 0;\n    } else {\n      transform.rotation = 0;\n      transform.skew.x = skewX;\n      transform.skew.y = skewY;\n    }\n    transform.scale.x = Math.sqrt(a * a + b * b);\n    transform.scale.y = Math.sqrt(c * c + d * d);\n    transform.position.x = this.tx + (pivot.x * a + pivot.y * c);\n    transform.position.y = this.ty + (pivot.x * b + pivot.y * d);\n    return transform;\n  }\n  invert() {\n    const a1 = this.a;\n    const b1 = this.b;\n    const c1 = this.c;\n    const d1 = this.d;\n    const tx1 = this.tx;\n    const n = a1 * d1 - b1 * c1;\n    this.a = d1 / n;\n    this.b = -b1 / n;\n    this.c = -c1 / n;\n    this.d = a1 / n;\n    this.tx = (c1 * this.ty - d1 * tx1) / n;\n    this.ty = -(a1 * this.ty - b1 * tx1) / n;\n    return this;\n  }\n  identity() {\n    this.a = 1;\n    this.b = 0;\n    this.c = 0;\n    this.d = 1;\n    this.tx = 0;\n    this.ty = 0;\n    return this;\n  }\n  clone() {\n    const matrix = new Matrix();\n    matrix.a = this.a;\n    matrix.b = this.b;\n    matrix.c = this.c;\n    matrix.d = this.d;\n    matrix.tx = this.tx;\n    matrix.ty = this.ty;\n    return matrix;\n  }\n  copyTo(matrix) {\n    matrix.a = this.a;\n    matrix.b = this.b;\n    matrix.c = this.c;\n    matrix.d = this.d;\n    matrix.tx = this.tx;\n    matrix.ty = this.ty;\n    return matrix;\n  }\n  copyFrom(matrix) {\n    this.a = matrix.a;\n    this.b = matrix.b;\n    this.c = matrix.c;\n    this.d = matrix.d;\n    this.tx = matrix.tx;\n    this.ty = matrix.ty;\n    return this;\n  }\n  toString() {\n    return `[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`;\n  }\n  static get IDENTITY() {\n    return new Matrix();\n  }\n  static get TEMP_MATRIX() {\n    return new Matrix();\n  }\n}\n\nexport { Matrix };\n//# sourceMappingURL=Matrix.mjs.map\n","import { Matrix } from './Matrix.mjs';\n\nconst ux = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1];\nconst uy = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1];\nconst vx = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1];\nconst vy = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1];\nconst rotationCayley = [];\nconst rotationMatrices = [];\nconst signum = Math.sign;\nfunction init() {\n  for (let i = 0; i < 16; i++) {\n    const row = [];\n    rotationCayley.push(row);\n    for (let j = 0; j < 16; j++) {\n      const _ux = signum(ux[i] * ux[j] + vx[i] * uy[j]);\n      const _uy = signum(uy[i] * ux[j] + vy[i] * uy[j]);\n      const _vx = signum(ux[i] * vx[j] + vx[i] * vy[j]);\n      const _vy = signum(uy[i] * vx[j] + vy[i] * vy[j]);\n      for (let k = 0; k < 16; k++) {\n        if (ux[k] === _ux && uy[k] === _uy && vx[k] === _vx && vy[k] === _vy) {\n          row.push(k);\n          break;\n        }\n      }\n    }\n  }\n  for (let i = 0; i < 16; i++) {\n    const mat = new Matrix();\n    mat.set(ux[i], uy[i], vx[i], vy[i], 0, 0);\n    rotationMatrices.push(mat);\n  }\n}\ninit();\nconst groupD8 = {\n  E: 0,\n  SE: 1,\n  S: 2,\n  SW: 3,\n  W: 4,\n  NW: 5,\n  N: 6,\n  NE: 7,\n  MIRROR_VERTICAL: 8,\n  MAIN_DIAGONAL: 10,\n  MIRROR_HORIZONTAL: 12,\n  REVERSE_DIAGONAL: 14,\n  uX: (ind) => ux[ind],\n  uY: (ind) => uy[ind],\n  vX: (ind) => vx[ind],\n  vY: (ind) => vy[ind],\n  inv: (rotation) => {\n    if (rotation & 8) {\n      return rotation & 15;\n    }\n    return -rotation & 7;\n  },\n  add: (rotationSecond, rotationFirst) => rotationCayley[rotationSecond][rotationFirst],\n  sub: (rotationSecond, rotationFirst) => rotationCayley[rotationSecond][groupD8.inv(rotationFirst)],\n  rotate180: (rotation) => rotation ^ 4,\n  isVertical: (rotation) => (rotation & 3) === 2,\n  byDirection: (dx, dy) => {\n    if (Math.abs(dx) * 2 <= Math.abs(dy)) {\n      if (dy >= 0) {\n        return groupD8.S;\n      }\n      return groupD8.N;\n    } else if (Math.abs(dy) * 2 <= Math.abs(dx)) {\n      if (dx > 0) {\n        return groupD8.E;\n      }\n      return groupD8.W;\n    } else if (dy > 0) {\n      if (dx > 0) {\n        return groupD8.SE;\n      }\n      return groupD8.SW;\n    } else if (dx > 0) {\n      return groupD8.NE;\n    }\n    return groupD8.NW;\n  },\n  matrixAppendRotationInv: (matrix, rotation, tx = 0, ty = 0) => {\n    const mat = rotationMatrices[groupD8.inv(rotation)];\n    mat.tx = tx;\n    mat.ty = ty;\n    matrix.append(mat);\n  }\n};\n\nexport { groupD8 };\n//# sourceMappingURL=groupD8.mjs.map\n","class ObservablePoint {\n  constructor(cb, scope, x = 0, y = 0) {\n    this._x = x;\n    this._y = y;\n    this.cb = cb;\n    this.scope = scope;\n  }\n  clone(cb = this.cb, scope = this.scope) {\n    return new ObservablePoint(cb, scope, this._x, this._y);\n  }\n  set(x = 0, y = x) {\n    if (this._x !== x || this._y !== y) {\n      this._x = x;\n      this._y = y;\n      this.cb.call(this.scope);\n    }\n    return this;\n  }\n  copyFrom(p) {\n    if (this._x !== p.x || this._y !== p.y) {\n      this._x = p.x;\n      this._y = p.y;\n      this.cb.call(this.scope);\n    }\n    return this;\n  }\n  copyTo(p) {\n    p.set(this._x, this._y);\n    return p;\n  }\n  equals(p) {\n    return p.x === this._x && p.y === this._y;\n  }\n  toString() {\n    return `[@pixi/math:ObservablePoint x=${0} y=${0} scope=${this.scope}]`;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(value) {\n    if (this._x !== value) {\n      this._x = value;\n      this.cb.call(this.scope);\n    }\n  }\n  get y() {\n    return this._y;\n  }\n  set y(value) {\n    if (this._y !== value) {\n      this._y = value;\n      this.cb.call(this.scope);\n    }\n  }\n}\n\nexport { ObservablePoint };\n//# sourceMappingURL=ObservablePoint.mjs.map\n","import { Matrix } from './Matrix.mjs';\nimport { ObservablePoint } from './ObservablePoint.mjs';\n\nconst _Transform = class {\n  constructor() {\n    this.worldTransform = new Matrix();\n    this.localTransform = new Matrix();\n    this.position = new ObservablePoint(this.onChange, this, 0, 0);\n    this.scale = new ObservablePoint(this.onChange, this, 1, 1);\n    this.pivot = new ObservablePoint(this.onChange, this, 0, 0);\n    this.skew = new ObservablePoint(this.updateSkew, this, 0, 0);\n    this._rotation = 0;\n    this._cx = 1;\n    this._sx = 0;\n    this._cy = 0;\n    this._sy = 1;\n    this._localID = 0;\n    this._currentLocalID = 0;\n    this._worldID = 0;\n    this._parentID = 0;\n  }\n  onChange() {\n    this._localID++;\n  }\n  updateSkew() {\n    this._cx = Math.cos(this._rotation + this.skew.y);\n    this._sx = Math.sin(this._rotation + this.skew.y);\n    this._cy = -Math.sin(this._rotation - this.skew.x);\n    this._sy = Math.cos(this._rotation - this.skew.x);\n    this._localID++;\n  }\n  toString() {\n    return `[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`;\n  }\n  updateLocalTransform() {\n    const lt = this.localTransform;\n    if (this._localID !== this._currentLocalID) {\n      lt.a = this._cx * this.scale.x;\n      lt.b = this._sx * this.scale.x;\n      lt.c = this._cy * this.scale.y;\n      lt.d = this._sy * this.scale.y;\n      lt.tx = this.position.x - (this.pivot.x * lt.a + this.pivot.y * lt.c);\n      lt.ty = this.position.y - (this.pivot.x * lt.b + this.pivot.y * lt.d);\n      this._currentLocalID = this._localID;\n      this._parentID = -1;\n    }\n  }\n  updateTransform(parentTransform) {\n    const lt = this.localTransform;\n    if (this._localID !== this._currentLocalID) {\n      lt.a = this._cx * this.scale.x;\n      lt.b = this._sx * this.scale.x;\n      lt.c = this._cy * this.scale.y;\n      lt.d = this._sy * this.scale.y;\n      lt.tx = this.position.x - (this.pivot.x * lt.a + this.pivot.y * lt.c);\n      lt.ty = this.position.y - (this.pivot.x * lt.b + this.pivot.y * lt.d);\n      this._currentLocalID = this._localID;\n      this._parentID = -1;\n    }\n    if (this._parentID !== parentTransform._worldID) {\n      const pt = parentTransform.worldTransform;\n      const wt = this.worldTransform;\n      wt.a = lt.a * pt.a + lt.b * pt.c;\n      wt.b = lt.a * pt.b + lt.b * pt.d;\n      wt.c = lt.c * pt.a + lt.d * pt.c;\n      wt.d = lt.c * pt.b + lt.d * pt.d;\n      wt.tx = lt.tx * pt.a + lt.ty * pt.c + pt.tx;\n      wt.ty = lt.tx * pt.b + lt.ty * pt.d + pt.ty;\n      this._parentID = parentTransform._worldID;\n      this._worldID++;\n    }\n  }\n  setFromMatrix(matrix) {\n    matrix.decompose(this);\n    this._localID++;\n  }\n  get rotation() {\n    return this._rotation;\n  }\n  set rotation(value) {\n    if (this._rotation !== value) {\n      this._rotation = value;\n      this.updateSkew();\n    }\n  }\n};\nlet Transform = _Transform;\nTransform.IDENTITY = new _Transform();\n\nexport { Transform };\n//# sourceMappingURL=Transform.mjs.map\n","var defaultFragment = \"varying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\n\\nvoid main(void){\\n   gl_FragColor *= texture2D(uSampler, vTextureCoord);\\n}\";\n\nexport { defaultFragment as default };\n//# sourceMappingURL=defaultProgram.mjs.map\n","var defaultVertex = \"attribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\n\\nvarying vec2 vTextureCoord;\\n\\nvoid main(void){\\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n   vTextureCoord = aTextureCoord;\\n}\\n\";\n\nexport { defaultVertex as default };\n//# sourceMappingURL=defaultProgram2.mjs.map\n","function compileShader(gl, type, src) {\n  const shader = gl.createShader(type);\n  gl.shaderSource(shader, src);\n  gl.compileShader(shader);\n  return shader;\n}\n\nexport { compileShader };\n//# sourceMappingURL=compileShader.mjs.map\n","function booleanArray(size) {\n  const array = new Array(size);\n  for (let i = 0; i < array.length; i++) {\n    array[i] = false;\n  }\n  return array;\n}\nfunction defaultValue(type, size) {\n  switch (type) {\n    case \"float\":\n      return 0;\n    case \"vec2\":\n      return new Float32Array(2 * size);\n    case \"vec3\":\n      return new Float32Array(3 * size);\n    case \"vec4\":\n      return new Float32Array(4 * size);\n    case \"int\":\n    case \"uint\":\n    case \"sampler2D\":\n    case \"sampler2DArray\":\n      return 0;\n    case \"ivec2\":\n      return new Int32Array(2 * size);\n    case \"ivec3\":\n      return new Int32Array(3 * size);\n    case \"ivec4\":\n      return new Int32Array(4 * size);\n    case \"uvec2\":\n      return new Uint32Array(2 * size);\n    case \"uvec3\":\n      return new Uint32Array(3 * size);\n    case \"uvec4\":\n      return new Uint32Array(4 * size);\n    case \"bool\":\n      return false;\n    case \"bvec2\":\n      return booleanArray(2 * size);\n    case \"bvec3\":\n      return booleanArray(3 * size);\n    case \"bvec4\":\n      return booleanArray(4 * size);\n    case \"mat2\":\n      return new Float32Array([\n        1,\n        0,\n        0,\n        1\n      ]);\n    case \"mat3\":\n      return new Float32Array([\n        1,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        1\n      ]);\n    case \"mat4\":\n      return new Float32Array([\n        1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        0,\n        1\n      ]);\n  }\n  return null;\n}\n\nexport { defaultValue };\n//# sourceMappingURL=defaultValue.mjs.map\n","const uniformParsers = [\n  {\n    test: (data) => data.type === \"float\" && data.size === 1 && !data.isArray,\n    code: (name) => `\n            if(uv[\"${name}\"] !== ud[\"${name}\"].value)\n            {\n                ud[\"${name}\"].value = uv[\"${name}\"]\n                gl.uniform1f(ud[\"${name}\"].location, uv[\"${name}\"])\n            }\n            `\n  },\n  {\n    test: (data, uniform) => (data.type === \"sampler2D\" || data.type === \"samplerCube\" || data.type === \"sampler2DArray\") && data.size === 1 && !data.isArray && (uniform == null || uniform.castToBaseTexture !== void 0),\n    code: (name) => `t = syncData.textureCount++;\n\n            renderer.texture.bind(uv[\"${name}\"], t);\n\n            if(ud[\"${name}\"].value !== t)\n            {\n                ud[\"${name}\"].value = t;\n                gl.uniform1i(ud[\"${name}\"].location, t);\n; // eslint-disable-line max-len\n            }`\n  },\n  {\n    test: (data, uniform) => data.type === \"mat3\" && data.size === 1 && !data.isArray && uniform.a !== void 0,\n    code: (name) => `\n            gl.uniformMatrix3fv(ud[\"${name}\"].location, false, uv[\"${name}\"].toArray(true));\n            `,\n    codeUbo: (name) => `\n                var ${name}_matrix = uv.${name}.toArray(true);\n\n                data[offset] = ${name}_matrix[0];\n                data[offset+1] = ${name}_matrix[1];\n                data[offset+2] = ${name}_matrix[2];\n        \n                data[offset + 4] = ${name}_matrix[3];\n                data[offset + 5] = ${name}_matrix[4];\n                data[offset + 6] = ${name}_matrix[5];\n        \n                data[offset + 8] = ${name}_matrix[6];\n                data[offset + 9] = ${name}_matrix[7];\n                data[offset + 10] = ${name}_matrix[8];\n            `\n  },\n  {\n    test: (data, uniform) => data.type === \"vec2\" && data.size === 1 && !data.isArray && uniform.x !== void 0,\n    code: (name) => `\n                cv = ud[\"${name}\"].value;\n                v = uv[\"${name}\"];\n\n                if(cv[0] !== v.x || cv[1] !== v.y)\n                {\n                    cv[0] = v.x;\n                    cv[1] = v.y;\n                    gl.uniform2f(ud[\"${name}\"].location, v.x, v.y);\n                }`,\n    codeUbo: (name) => `\n                v = uv.${name};\n\n                data[offset] = v.x;\n                data[offset+1] = v.y;\n            `\n  },\n  {\n    test: (data) => data.type === \"vec2\" && data.size === 1 && !data.isArray,\n    code: (name) => `\n                cv = ud[\"${name}\"].value;\n                v = uv[\"${name}\"];\n\n                if(cv[0] !== v[0] || cv[1] !== v[1])\n                {\n                    cv[0] = v[0];\n                    cv[1] = v[1];\n                    gl.uniform2f(ud[\"${name}\"].location, v[0], v[1]);\n                }\n            `\n  },\n  {\n    test: (data, uniform) => data.type === \"vec4\" && data.size === 1 && !data.isArray && uniform.width !== void 0,\n    code: (name) => `\n                cv = ud[\"${name}\"].value;\n                v = uv[\"${name}\"];\n\n                if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n                {\n                    cv[0] = v.x;\n                    cv[1] = v.y;\n                    cv[2] = v.width;\n                    cv[3] = v.height;\n                    gl.uniform4f(ud[\"${name}\"].location, v.x, v.y, v.width, v.height)\n                }`,\n    codeUbo: (name) => `\n                    v = uv.${name};\n\n                    data[offset] = v.x;\n                    data[offset+1] = v.y;\n                    data[offset+2] = v.width;\n                    data[offset+3] = v.height;\n                `\n  },\n  {\n    test: (data) => data.type === \"vec4\" && data.size === 1 && !data.isArray,\n    code: (name) => `\n                cv = ud[\"${name}\"].value;\n                v = uv[\"${name}\"];\n\n                if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n                {\n                    cv[0] = v[0];\n                    cv[1] = v[1];\n                    cv[2] = v[2];\n                    cv[3] = v[3];\n\n                    gl.uniform4f(ud[\"${name}\"].location, v[0], v[1], v[2], v[3])\n                }`\n  }\n];\n\nexport { uniformParsers };\n//# sourceMappingURL=uniformParsers.mjs.map\n","import { uniformParsers } from './uniformParsers.mjs';\n\nconst GLSL_TO_SINGLE_SETTERS_CACHED = {\n  float: `\n    if (cv !== v)\n    {\n        cu.value = v;\n        gl.uniform1f(location, v);\n    }`,\n  vec2: `\n    if (cv[0] !== v[0] || cv[1] !== v[1])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n\n        gl.uniform2f(location, v[0], v[1])\n    }`,\n  vec3: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n\n        gl.uniform3f(location, v[0], v[1], v[2])\n    }`,\n  vec4: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n        cv[3] = v[3];\n\n        gl.uniform4f(location, v[0], v[1], v[2], v[3]);\n    }`,\n  int: `\n    if (cv !== v)\n    {\n        cu.value = v;\n\n        gl.uniform1i(location, v);\n    }`,\n  ivec2: `\n    if (cv[0] !== v[0] || cv[1] !== v[1])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n\n        gl.uniform2i(location, v[0], v[1]);\n    }`,\n  ivec3: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n\n        gl.uniform3i(location, v[0], v[1], v[2]);\n    }`,\n  ivec4: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n        cv[3] = v[3];\n\n        gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n    }`,\n  uint: `\n    if (cv !== v)\n    {\n        cu.value = v;\n\n        gl.uniform1ui(location, v);\n    }`,\n  uvec2: `\n    if (cv[0] !== v[0] || cv[1] !== v[1])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n\n        gl.uniform2ui(location, v[0], v[1]);\n    }`,\n  uvec3: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n\n        gl.uniform3ui(location, v[0], v[1], v[2]);\n    }`,\n  uvec4: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n        cv[3] = v[3];\n\n        gl.uniform4ui(location, v[0], v[1], v[2], v[3]);\n    }`,\n  bool: `\n    if (cv !== v)\n    {\n        cu.value = v;\n        gl.uniform1i(location, v);\n    }`,\n  bvec2: `\n    if (cv[0] != v[0] || cv[1] != v[1])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n\n        gl.uniform2i(location, v[0], v[1]);\n    }`,\n  bvec3: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n\n        gl.uniform3i(location, v[0], v[1], v[2]);\n    }`,\n  bvec4: `\n    if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n        cv[3] = v[3];\n\n        gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n    }`,\n  mat2: \"gl.uniformMatrix2fv(location, false, v)\",\n  mat3: \"gl.uniformMatrix3fv(location, false, v)\",\n  mat4: \"gl.uniformMatrix4fv(location, false, v)\",\n  sampler2D: `\n    if (cv !== v)\n    {\n        cu.value = v;\n\n        gl.uniform1i(location, v);\n    }`,\n  samplerCube: `\n    if (cv !== v)\n    {\n        cu.value = v;\n\n        gl.uniform1i(location, v);\n    }`,\n  sampler2DArray: `\n    if (cv !== v)\n    {\n        cu.value = v;\n\n        gl.uniform1i(location, v);\n    }`\n};\nconst GLSL_TO_ARRAY_SETTERS = {\n  float: `gl.uniform1fv(location, v)`,\n  vec2: `gl.uniform2fv(location, v)`,\n  vec3: `gl.uniform3fv(location, v)`,\n  vec4: \"gl.uniform4fv(location, v)\",\n  mat4: \"gl.uniformMatrix4fv(location, false, v)\",\n  mat3: \"gl.uniformMatrix3fv(location, false, v)\",\n  mat2: \"gl.uniformMatrix2fv(location, false, v)\",\n  int: \"gl.uniform1iv(location, v)\",\n  ivec2: \"gl.uniform2iv(location, v)\",\n  ivec3: \"gl.uniform3iv(location, v)\",\n  ivec4: \"gl.uniform4iv(location, v)\",\n  uint: \"gl.uniform1uiv(location, v)\",\n  uvec2: \"gl.uniform2uiv(location, v)\",\n  uvec3: \"gl.uniform3uiv(location, v)\",\n  uvec4: \"gl.uniform4uiv(location, v)\",\n  bool: \"gl.uniform1iv(location, v)\",\n  bvec2: \"gl.uniform2iv(location, v)\",\n  bvec3: \"gl.uniform3iv(location, v)\",\n  bvec4: \"gl.uniform4iv(location, v)\",\n  sampler2D: \"gl.uniform1iv(location, v)\",\n  samplerCube: \"gl.uniform1iv(location, v)\",\n  sampler2DArray: \"gl.uniform1iv(location, v)\"\n};\nfunction generateUniformsSync(group, uniformData) {\n  const funcFragments = [`\n        var v = null;\n        var cv = null;\n        var cu = null;\n        var t = 0;\n        var gl = renderer.gl;\n    `];\n  for (const i in group.uniforms) {\n    const data = uniformData[i];\n    if (!data) {\n      if (group.uniforms[i]?.group) {\n        if (group.uniforms[i].ubo) {\n          funcFragments.push(`\n                        renderer.shader.syncUniformBufferGroup(uv.${i}, '${i}');\n                    `);\n        } else {\n          funcFragments.push(`\n                        renderer.shader.syncUniformGroup(uv.${i}, syncData);\n                    `);\n        }\n      }\n      continue;\n    }\n    const uniform = group.uniforms[i];\n    let parsed = false;\n    for (let j = 0; j < uniformParsers.length; j++) {\n      if (uniformParsers[j].test(data, uniform)) {\n        funcFragments.push(uniformParsers[j].code(i, uniform));\n        parsed = true;\n        break;\n      }\n    }\n    if (!parsed) {\n      const templateType = data.size === 1 && !data.isArray ? GLSL_TO_SINGLE_SETTERS_CACHED : GLSL_TO_ARRAY_SETTERS;\n      const template = templateType[data.type].replace(\"location\", `ud[\"${i}\"].location`);\n      funcFragments.push(`\n            cu = ud[\"${i}\"];\n            cv = cu.value;\n            v = uv[\"${i}\"];\n            ${template};`);\n    }\n  }\n  return new Function(\"ud\", \"uv\", \"renderer\", \"syncData\", funcFragments.join(\"\\n\"));\n}\n\nexport { generateUniformsSync };\n//# sourceMappingURL=generateUniformsSync.mjs.map\n","import { ENV } from '@pixi/constants';\nimport { settings } from '@pixi/settings';\n\nconst unknownContext = {};\nlet context = unknownContext;\nfunction getTestContext() {\n  if (context === unknownContext || context?.isContextLost()) {\n    const canvas = settings.ADAPTER.createCanvas();\n    let gl;\n    if (settings.PREFER_ENV >= ENV.WEBGL2) {\n      gl = canvas.getContext(\"webgl2\", {});\n    }\n    if (!gl) {\n      gl = canvas.getContext(\"webgl\", {}) || canvas.getContext(\"experimental-webgl\", {});\n      if (!gl) {\n        gl = null;\n      } else {\n        gl.getExtension(\"WEBGL_draw_buffers\");\n      }\n    }\n    context = gl;\n  }\n  return context;\n}\n\nexport { getTestContext };\n//# sourceMappingURL=getTestContext.mjs.map\n","import { PRECISION } from '@pixi/constants';\nimport { getTestContext } from './getTestContext.mjs';\n\nlet maxFragmentPrecision;\nfunction getMaxFragmentPrecision() {\n  if (!maxFragmentPrecision) {\n    maxFragmentPrecision = PRECISION.MEDIUM;\n    const gl = getTestContext();\n    if (gl) {\n      if (gl.getShaderPrecisionFormat) {\n        const shaderFragment = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);\n        maxFragmentPrecision = shaderFragment.precision ? PRECISION.HIGH : PRECISION.MEDIUM;\n      }\n    }\n  }\n  return maxFragmentPrecision;\n}\n\nexport { getMaxFragmentPrecision };\n//# sourceMappingURL=getMaxFragmentPrecision.mjs.map\n","function logPrettyShaderError(gl, shader) {\n  const shaderSrc = gl.getShaderSource(shader).split(\"\\n\").map((line, index) => `${index}: ${line}`);\n  const shaderLog = gl.getShaderInfoLog(shader);\n  const splitShader = shaderLog.split(\"\\n\");\n  const dedupe = {};\n  const lineNumbers = splitShader.map((line) => parseFloat(line.replace(/^ERROR\\: 0\\:([\\d]+)\\:.*$/, \"$1\"))).filter((n) => {\n    if (n && !dedupe[n]) {\n      dedupe[n] = true;\n      return true;\n    }\n    return false;\n  });\n  const logArgs = [\"\"];\n  lineNumbers.forEach((number) => {\n    shaderSrc[number - 1] = `%c${shaderSrc[number - 1]}%c`;\n    logArgs.push(\"background: #FF0000; color:#FFFFFF; font-size: 10px\", \"font-size: 10px\");\n  });\n  const fragmentSourceToLog = shaderSrc.join(\"\\n\");\n  logArgs[0] = fragmentSourceToLog;\n  console.error(shaderLog);\n  console.groupCollapsed(\"click to view full shader code\");\n  console.warn(...logArgs);\n  console.groupEnd();\n}\nfunction logProgramError(gl, program, vertexShader, fragmentShader) {\n  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n    if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n      logPrettyShaderError(gl, vertexShader);\n    }\n    if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n      logPrettyShaderError(gl, fragmentShader);\n    }\n    console.error(\"PixiJS Error: Could not initialize shader.\");\n    if (gl.getProgramInfoLog(program) !== \"\") {\n      console.warn(\"PixiJS Warning: gl.getProgramInfoLog()\", gl.getProgramInfoLog(program));\n    }\n  }\n}\n\nexport { logProgramError };\n//# sourceMappingURL=logProgramError.mjs.map\n","const GLSL_TO_SIZE = {\n  float: 1,\n  vec2: 2,\n  vec3: 3,\n  vec4: 4,\n  int: 1,\n  ivec2: 2,\n  ivec3: 3,\n  ivec4: 4,\n  uint: 1,\n  uvec2: 2,\n  uvec3: 3,\n  uvec4: 4,\n  bool: 1,\n  bvec2: 2,\n  bvec3: 3,\n  bvec4: 4,\n  mat2: 4,\n  mat3: 9,\n  mat4: 16,\n  sampler2D: 1\n};\nfunction mapSize(type) {\n  return GLSL_TO_SIZE[type];\n}\n\nexport { mapSize };\n//# sourceMappingURL=mapSize.mjs.map\n","let GL_TABLE = null;\nconst GL_TO_GLSL_TYPES = {\n  FLOAT: \"float\",\n  FLOAT_VEC2: \"vec2\",\n  FLOAT_VEC3: \"vec3\",\n  FLOAT_VEC4: \"vec4\",\n  INT: \"int\",\n  INT_VEC2: \"ivec2\",\n  INT_VEC3: \"ivec3\",\n  INT_VEC4: \"ivec4\",\n  UNSIGNED_INT: \"uint\",\n  UNSIGNED_INT_VEC2: \"uvec2\",\n  UNSIGNED_INT_VEC3: \"uvec3\",\n  UNSIGNED_INT_VEC4: \"uvec4\",\n  BOOL: \"bool\",\n  BOOL_VEC2: \"bvec2\",\n  BOOL_VEC3: \"bvec3\",\n  BOOL_VEC4: \"bvec4\",\n  FLOAT_MAT2: \"mat2\",\n  FLOAT_MAT3: \"mat3\",\n  FLOAT_MAT4: \"mat4\",\n  SAMPLER_2D: \"sampler2D\",\n  INT_SAMPLER_2D: \"sampler2D\",\n  UNSIGNED_INT_SAMPLER_2D: \"sampler2D\",\n  SAMPLER_CUBE: \"samplerCube\",\n  INT_SAMPLER_CUBE: \"samplerCube\",\n  UNSIGNED_INT_SAMPLER_CUBE: \"samplerCube\",\n  SAMPLER_2D_ARRAY: \"sampler2DArray\",\n  INT_SAMPLER_2D_ARRAY: \"sampler2DArray\",\n  UNSIGNED_INT_SAMPLER_2D_ARRAY: \"sampler2DArray\"\n};\nfunction mapType(gl, type) {\n  if (!GL_TABLE) {\n    const typeNames = Object.keys(GL_TO_GLSL_TYPES);\n    GL_TABLE = {};\n    for (let i = 0; i < typeNames.length; ++i) {\n      const tn = typeNames[i];\n      GL_TABLE[gl[tn]] = GL_TO_GLSL_TYPES[tn];\n    }\n  }\n  return GL_TABLE[type];\n}\n\nexport { mapType };\n//# sourceMappingURL=mapType.mjs.map\n","import { PRECISION } from '@pixi/constants';\n\nfunction setPrecision(src, requestedPrecision, maxSupportedPrecision) {\n  if (src.substring(0, 9) !== \"precision\") {\n    let precision = requestedPrecision;\n    if (requestedPrecision === PRECISION.HIGH && maxSupportedPrecision !== PRECISION.HIGH) {\n      precision = PRECISION.MEDIUM;\n    }\n    return `precision ${precision} float;\n${src}`;\n  } else if (maxSupportedPrecision !== PRECISION.HIGH && src.substring(0, 15) === \"precision highp\") {\n    return src.replace(\"precision highp\", \"precision mediump\");\n  }\n  return src;\n}\n\nexport { setPrecision };\n//# sourceMappingURL=setPrecision.mjs.map\n","let unsafeEval;\nfunction unsafeEvalSupported() {\n  if (typeof unsafeEval === \"boolean\") {\n    return unsafeEval;\n  }\n  try {\n    const func = new Function(\"param1\", \"param2\", \"param3\", \"return param1[param2] === param3;\");\n    unsafeEval = func({ a: \"b\" }, \"a\", \"b\") === true;\n  } catch (e) {\n    unsafeEval = false;\n  }\n  return unsafeEval;\n}\n\nexport { unsafeEvalSupported };\n//# sourceMappingURL=unsafeEvalSupported.mjs.map\n","import { PRECISION } from '@pixi/constants';\nimport { ProgramCache, isMobile } from '@pixi/utils';\nimport defaultFragment from './defaultProgram.mjs';\nimport defaultVertex from './defaultProgram2.mjs';\nimport './utils/index.mjs';\nimport { setPrecision } from './utils/setPrecision.mjs';\nimport { getMaxFragmentPrecision } from './utils/getMaxFragmentPrecision.mjs';\n\nlet UID = 0;\nconst nameCache = {};\nconst _Program = class {\n  constructor(vertexSrc, fragmentSrc, name = \"pixi-shader\", extra = {}) {\n    this.extra = {};\n    this.id = UID++;\n    this.vertexSrc = vertexSrc || _Program.defaultVertexSrc;\n    this.fragmentSrc = fragmentSrc || _Program.defaultFragmentSrc;\n    this.vertexSrc = this.vertexSrc.trim();\n    this.fragmentSrc = this.fragmentSrc.trim();\n    this.extra = extra;\n    if (this.vertexSrc.substring(0, 8) !== \"#version\") {\n      name = name.replace(/\\s+/g, \"-\");\n      if (nameCache[name]) {\n        nameCache[name]++;\n        name += `-${nameCache[name]}`;\n      } else {\n        nameCache[name] = 1;\n      }\n      this.vertexSrc = `#define SHADER_NAME ${name}\n${this.vertexSrc}`;\n      this.fragmentSrc = `#define SHADER_NAME ${name}\n${this.fragmentSrc}`;\n      this.vertexSrc = setPrecision(this.vertexSrc, _Program.defaultVertexPrecision, PRECISION.HIGH);\n      this.fragmentSrc = setPrecision(this.fragmentSrc, _Program.defaultFragmentPrecision, getMaxFragmentPrecision());\n    }\n    this.glPrograms = {};\n    this.syncUniforms = null;\n  }\n  static get defaultVertexSrc() {\n    return defaultVertex;\n  }\n  static get defaultFragmentSrc() {\n    return defaultFragment;\n  }\n  static from(vertexSrc, fragmentSrc, name) {\n    const key = vertexSrc + fragmentSrc;\n    let program = ProgramCache[key];\n    if (!program) {\n      ProgramCache[key] = program = new _Program(vertexSrc, fragmentSrc, name);\n    }\n    return program;\n  }\n};\nlet Program = _Program;\nProgram.defaultVertexPrecision = PRECISION.HIGH;\nProgram.defaultFragmentPrecision = isMobile.apple.device ? PRECISION.HIGH : PRECISION.MEDIUM;\n\nexport { Program };\n//# sourceMappingURL=Program.mjs.map\n","import { BUFFER_TYPE } from '@pixi/constants';\nimport { Buffer } from '../geometry/Buffer.mjs';\n\nlet UID = 0;\nclass UniformGroup {\n  constructor(uniforms, isStatic, isUbo) {\n    this.group = true;\n    this.syncUniforms = {};\n    this.dirtyId = 0;\n    this.id = UID++;\n    this.static = !!isStatic;\n    this.ubo = !!isUbo;\n    if (uniforms instanceof Buffer) {\n      this.buffer = uniforms;\n      this.buffer.type = BUFFER_TYPE.UNIFORM_BUFFER;\n      this.autoManage = false;\n      this.ubo = true;\n    } else {\n      this.uniforms = uniforms;\n      if (this.ubo) {\n        this.buffer = new Buffer(new Float32Array(1));\n        this.buffer.type = BUFFER_TYPE.UNIFORM_BUFFER;\n        this.autoManage = true;\n      }\n    }\n  }\n  update() {\n    this.dirtyId++;\n    if (!this.autoManage && this.buffer) {\n      this.buffer.update();\n    }\n  }\n  add(name, uniforms, _static) {\n    if (!this.ubo) {\n      this.uniforms[name] = new UniformGroup(uniforms, _static);\n    } else {\n      throw new Error(\"[UniformGroup] uniform groups in ubo mode cannot be modified, or have uniform groups nested in them\");\n    }\n  }\n  static from(uniforms, _static, _ubo) {\n    return new UniformGroup(uniforms, _static, _ubo);\n  }\n  static uboFrom(uniforms, _static) {\n    return new UniformGroup(uniforms, _static ?? true, true);\n  }\n}\n\nexport { UniformGroup };\n//# sourceMappingURL=UniformGroup.mjs.map\n","import { Runner } from '@pixi/runner';\nimport { Program } from './Program.mjs';\nimport { UniformGroup } from './UniformGroup.mjs';\n\nclass Shader {\n  constructor(program, uniforms) {\n    this.uniformBindCount = 0;\n    this.program = program;\n    if (uniforms) {\n      if (uniforms instanceof UniformGroup) {\n        this.uniformGroup = uniforms;\n      } else {\n        this.uniformGroup = new UniformGroup(uniforms);\n      }\n    } else {\n      this.uniformGroup = new UniformGroup({});\n    }\n    this.disposeRunner = new Runner(\"disposeShader\");\n  }\n  checkUniformExists(name, group) {\n    if (group.uniforms[name]) {\n      return true;\n    }\n    for (const i in group.uniforms) {\n      const uniform = group.uniforms[i];\n      if (uniform.group) {\n        if (this.checkUniformExists(name, uniform)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  destroy() {\n    this.uniformGroup = null;\n    this.disposeRunner.emit(this);\n    this.disposeRunner.destroy();\n  }\n  get uniforms() {\n    return this.uniformGroup.uniforms;\n  }\n  static from(vertexSrc, fragmentSrc, uniforms) {\n    const program = Program.from(vertexSrc, fragmentSrc);\n    return new Shader(program, uniforms);\n  }\n}\n\nexport { Shader };\n//# sourceMappingURL=Shader.mjs.map\n","import { Matrix } from '@pixi/math';\nimport { Program } from '../shader/Program.mjs';\nimport { Shader } from '../shader/Shader.mjs';\nimport { UniformGroup } from '../shader/UniformGroup.mjs';\n\nclass BatchShaderGenerator {\n  constructor(vertexSrc, fragTemplate) {\n    this.vertexSrc = vertexSrc;\n    this.fragTemplate = fragTemplate;\n    this.programCache = {};\n    this.defaultGroupCache = {};\n    if (!fragTemplate.includes(\"%count%\")) {\n      throw new Error('Fragment template must contain \"%count%\".');\n    }\n    if (!fragTemplate.includes(\"%forloop%\")) {\n      throw new Error('Fragment template must contain \"%forloop%\".');\n    }\n  }\n  generateShader(maxTextures) {\n    if (!this.programCache[maxTextures]) {\n      const sampleValues = new Int32Array(maxTextures);\n      for (let i = 0; i < maxTextures; i++) {\n        sampleValues[i] = i;\n      }\n      this.defaultGroupCache[maxTextures] = UniformGroup.from({ uSamplers: sampleValues }, true);\n      let fragmentSrc = this.fragTemplate;\n      fragmentSrc = fragmentSrc.replace(/%count%/gi, `${maxTextures}`);\n      fragmentSrc = fragmentSrc.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));\n      this.programCache[maxTextures] = new Program(this.vertexSrc, fragmentSrc);\n    }\n    const uniforms = {\n      tint: new Float32Array([1, 1, 1, 1]),\n      translationMatrix: new Matrix(),\n      default: this.defaultGroupCache[maxTextures]\n    };\n    return new Shader(this.programCache[maxTextures], uniforms);\n  }\n  generateSampleSrc(maxTextures) {\n    let src = \"\";\n    src += \"\\n\";\n    src += \"\\n\";\n    for (let i = 0; i < maxTextures; i++) {\n      if (i > 0) {\n        src += \"\\nelse \";\n      }\n      if (i < maxTextures - 1) {\n        src += `if(vTextureId < ${i}.5)`;\n      }\n      src += \"\\n{\";\n      src += `\n\tcolor = texture2D(uSamplers[${i}], vTextureCoord);`;\n      src += \"\\n}\";\n    }\n    src += \"\\n\";\n    src += \"\\n\";\n    return src;\n  }\n}\n\nexport { BatchShaderGenerator };\n//# sourceMappingURL=BatchShaderGenerator.mjs.map\n","class BatchTextureArray {\n  constructor() {\n    this.elements = [];\n    this.ids = [];\n    this.count = 0;\n  }\n  clear() {\n    for (let i = 0; i < this.count; i++) {\n      this.elements[i] = null;\n    }\n    this.count = 0;\n  }\n}\n\nexport { BatchTextureArray };\n//# sourceMappingURL=BatchTextureArray.mjs.map\n","import { isMobile } from '@pixi/settings';\n\nfunction canUploadSameBuffer() {\n  return !isMobile.apple.device;\n}\n\nexport { canUploadSameBuffer };\n//# sourceMappingURL=canUploadSameBuffer.mjs.map\n","import { settings, isMobile } from '@pixi/settings';\n\nfunction maxRecommendedTextures(max) {\n  let allowMax = true;\n  const navigator = settings.ADAPTER.getNavigator();\n  if (isMobile.tablet || isMobile.phone) {\n    if (isMobile.apple.device) {\n      const match = navigator.userAgent.match(/OS (\\d+)_(\\d+)?/);\n      if (match) {\n        const majorVersion = parseInt(match[1], 10);\n        if (majorVersion < 11) {\n          allowMax = false;\n        }\n      }\n    }\n    if (isMobile.android.device) {\n      const match = navigator.userAgent.match(/Android\\s([0-9.]*)/);\n      if (match) {\n        const majorVersion = parseInt(match[1], 10);\n        if (majorVersion < 7) {\n          allowMax = false;\n        }\n      }\n    }\n  }\n  return allowMax ? max : 4;\n}\n\nexport { maxRecommendedTextures };\n//# sourceMappingURL=maxRecommendedTextures.mjs.map\n","class ObjectRenderer {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  flush() {\n  }\n  destroy() {\n    this.renderer = null;\n  }\n  start() {\n  }\n  stop() {\n    this.flush();\n  }\n  render(_object) {\n  }\n}\n\nexport { ObjectRenderer };\n//# sourceMappingURL=ObjectRenderer.mjs.map\n","var defaultFragment = \"varying vec2 vTextureCoord;\\nvarying vec4 vColor;\\nvarying float vTextureId;\\nuniform sampler2D uSamplers[%count%];\\n\\nvoid main(void){\\n    vec4 color;\\n    %forloop%\\n    gl_FragColor = color * vColor;\\n}\\n\";\n\nexport { defaultFragment as default };\n//# sourceMappingURL=texture.mjs.map\n","var defaultVertex = \"precision highp float;\\nattribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\nattribute vec4 aColor;\\nattribute float aTextureId;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 translationMatrix;\\nuniform vec4 tint;\\n\\nvarying vec2 vTextureCoord;\\nvarying vec4 vColor;\\nvarying float vTextureId;\\n\\nvoid main(void){\\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = aTextureCoord;\\n    vTextureId = aTextureId;\\n    vColor = aColor * tint;\\n}\\n\";\n\nexport { defaultVertex as default };\n//# sourceMappingURL=texture2.mjs.map\n","import { ENV } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { settings } from '@pixi/settings';\nimport { deprecation, premultiplyBlendMode, nextPow2, log2, premultiplyTint } from '@pixi/utils';\nimport { ViewableBuffer } from '../geometry/ViewableBuffer.mjs';\nimport { checkMaxIfStatementsInShader } from '../shader/utils/checkMaxIfStatementsInShader.mjs';\nimport { State } from '../state/State.mjs';\nimport { BaseTexture } from '../textures/BaseTexture.mjs';\nimport { BatchDrawCall } from './BatchDrawCall.mjs';\nimport { BatchGeometry } from './BatchGeometry.mjs';\nimport { BatchShaderGenerator } from './BatchShaderGenerator.mjs';\nimport { BatchTextureArray } from './BatchTextureArray.mjs';\nimport { canUploadSameBuffer } from './canUploadSameBuffer.mjs';\nimport { maxRecommendedTextures } from './maxRecommendedTextures.mjs';\nimport { ObjectRenderer } from './ObjectRenderer.mjs';\nimport defaultFragment from './texture.mjs';\nimport defaultVertex from './texture2.mjs';\n\nconst _BatchRenderer = class extends ObjectRenderer {\n  constructor(renderer) {\n    super(renderer);\n    this.setShaderGenerator();\n    this.geometryClass = BatchGeometry;\n    this.vertexSize = 6;\n    this.state = State.for2d();\n    this.size = _BatchRenderer.defaultBatchSize * 4;\n    this._vertexCount = 0;\n    this._indexCount = 0;\n    this._bufferedElements = [];\n    this._bufferedTextures = [];\n    this._bufferSize = 0;\n    this._shader = null;\n    this._packedGeometries = [];\n    this._packedGeometryPoolSize = 2;\n    this._flushId = 0;\n    this._aBuffers = {};\n    this._iBuffers = {};\n    this.maxTextures = 1;\n    this.renderer.on(\"prerender\", this.onPrerender, this);\n    renderer.runners.contextChange.add(this);\n    this._dcIndex = 0;\n    this._aIndex = 0;\n    this._iIndex = 0;\n    this._attributeBuffer = null;\n    this._indexBuffer = null;\n    this._tempBoundTextures = [];\n  }\n  static get defaultMaxTextures() {\n    this._defaultMaxTextures = this._defaultMaxTextures ?? maxRecommendedTextures(32);\n    return this._defaultMaxTextures;\n  }\n  static set defaultMaxTextures(value) {\n    this._defaultMaxTextures = value;\n  }\n  static get canUploadSameBuffer() {\n    this._canUploadSameBuffer = this._canUploadSameBuffer ?? canUploadSameBuffer();\n    return this._canUploadSameBuffer;\n  }\n  static set canUploadSameBuffer(value) {\n    this._canUploadSameBuffer = value;\n  }\n  get MAX_TEXTURES() {\n    deprecation(\"7.1.0\", \"BatchRenderer#MAX_TEXTURES renamed to BatchRenderer#maxTextures\");\n    return this.maxTextures;\n  }\n  static get defaultVertexSrc() {\n    return defaultVertex;\n  }\n  static get defaultFragmentTemplate() {\n    return defaultFragment;\n  }\n  setShaderGenerator({\n    vertex = _BatchRenderer.defaultVertexSrc,\n    fragment = _BatchRenderer.defaultFragmentTemplate\n  } = {}) {\n    this.shaderGenerator = new BatchShaderGenerator(vertex, fragment);\n  }\n  contextChange() {\n    const gl = this.renderer.gl;\n    if (settings.PREFER_ENV === ENV.WEBGL_LEGACY) {\n      this.maxTextures = 1;\n    } else {\n      this.maxTextures = Math.min(gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS), _BatchRenderer.defaultMaxTextures);\n      this.maxTextures = checkMaxIfStatementsInShader(this.maxTextures, gl);\n    }\n    this._shader = this.shaderGenerator.generateShader(this.maxTextures);\n    for (let i = 0; i < this._packedGeometryPoolSize; i++) {\n      this._packedGeometries[i] = new this.geometryClass();\n    }\n    this.initFlushBuffers();\n  }\n  initFlushBuffers() {\n    const {\n      _drawCallPool,\n      _textureArrayPool\n    } = _BatchRenderer;\n    const MAX_SPRITES = this.size / 4;\n    const MAX_TA = Math.floor(MAX_SPRITES / this.maxTextures) + 1;\n    while (_drawCallPool.length < MAX_SPRITES) {\n      _drawCallPool.push(new BatchDrawCall());\n    }\n    while (_textureArrayPool.length < MAX_TA) {\n      _textureArrayPool.push(new BatchTextureArray());\n    }\n    for (let i = 0; i < this.maxTextures; i++) {\n      this._tempBoundTextures[i] = null;\n    }\n  }\n  onPrerender() {\n    this._flushId = 0;\n  }\n  render(element) {\n    if (!element._texture.valid) {\n      return;\n    }\n    if (this._vertexCount + element.vertexData.length / 2 > this.size) {\n      this.flush();\n    }\n    this._vertexCount += element.vertexData.length / 2;\n    this._indexCount += element.indices.length;\n    this._bufferedTextures[this._bufferSize] = element._texture.baseTexture;\n    this._bufferedElements[this._bufferSize++] = element;\n  }\n  buildTexturesAndDrawCalls() {\n    const {\n      _bufferedTextures: textures,\n      maxTextures\n    } = this;\n    const textureArrays = _BatchRenderer._textureArrayPool;\n    const batch = this.renderer.batch;\n    const boundTextures = this._tempBoundTextures;\n    const touch = this.renderer.textureGC.count;\n    let TICK = ++BaseTexture._globalBatch;\n    let countTexArrays = 0;\n    let texArray = textureArrays[0];\n    let start = 0;\n    batch.copyBoundTextures(boundTextures, maxTextures);\n    for (let i = 0; i < this._bufferSize; ++i) {\n      const tex = textures[i];\n      textures[i] = null;\n      if (tex._batchEnabled === TICK) {\n        continue;\n      }\n      if (texArray.count >= maxTextures) {\n        batch.boundArray(texArray, boundTextures, TICK, maxTextures);\n        this.buildDrawCalls(texArray, start, i);\n        start = i;\n        texArray = textureArrays[++countTexArrays];\n        ++TICK;\n      }\n      tex._batchEnabled = TICK;\n      tex.touched = touch;\n      texArray.elements[texArray.count++] = tex;\n    }\n    if (texArray.count > 0) {\n      batch.boundArray(texArray, boundTextures, TICK, maxTextures);\n      this.buildDrawCalls(texArray, start, this._bufferSize);\n      ++countTexArrays;\n      ++TICK;\n    }\n    for (let i = 0; i < boundTextures.length; i++) {\n      boundTextures[i] = null;\n    }\n    BaseTexture._globalBatch = TICK;\n  }\n  buildDrawCalls(texArray, start, finish) {\n    const {\n      _bufferedElements: elements,\n      _attributeBuffer,\n      _indexBuffer,\n      vertexSize\n    } = this;\n    const drawCalls = _BatchRenderer._drawCallPool;\n    let dcIndex = this._dcIndex;\n    let aIndex = this._aIndex;\n    let iIndex = this._iIndex;\n    let drawCall = drawCalls[dcIndex];\n    drawCall.start = this._iIndex;\n    drawCall.texArray = texArray;\n    for (let i = start; i < finish; ++i) {\n      const sprite = elements[i];\n      const tex = sprite._texture.baseTexture;\n      const spriteBlendMode = premultiplyBlendMode[tex.alphaMode ? 1 : 0][sprite.blendMode];\n      elements[i] = null;\n      if (start < i && drawCall.blend !== spriteBlendMode) {\n        drawCall.size = iIndex - drawCall.start;\n        start = i;\n        drawCall = drawCalls[++dcIndex];\n        drawCall.texArray = texArray;\n        drawCall.start = iIndex;\n      }\n      this.packInterleavedGeometry(sprite, _attributeBuffer, _indexBuffer, aIndex, iIndex);\n      aIndex += sprite.vertexData.length / 2 * vertexSize;\n      iIndex += sprite.indices.length;\n      drawCall.blend = spriteBlendMode;\n    }\n    if (start < finish) {\n      drawCall.size = iIndex - drawCall.start;\n      ++dcIndex;\n    }\n    this._dcIndex = dcIndex;\n    this._aIndex = aIndex;\n    this._iIndex = iIndex;\n  }\n  bindAndClearTexArray(texArray) {\n    const textureSystem = this.renderer.texture;\n    for (let j = 0; j < texArray.count; j++) {\n      textureSystem.bind(texArray.elements[j], texArray.ids[j]);\n      texArray.elements[j] = null;\n    }\n    texArray.count = 0;\n  }\n  updateGeometry() {\n    const {\n      _packedGeometries: packedGeometries,\n      _attributeBuffer: attributeBuffer,\n      _indexBuffer: indexBuffer\n    } = this;\n    if (!_BatchRenderer.canUploadSameBuffer) {\n      if (this._packedGeometryPoolSize <= this._flushId) {\n        this._packedGeometryPoolSize++;\n        packedGeometries[this._flushId] = new this.geometryClass();\n      }\n      packedGeometries[this._flushId]._buffer.update(attributeBuffer.rawBinaryData);\n      packedGeometries[this._flushId]._indexBuffer.update(indexBuffer);\n      this.renderer.geometry.bind(packedGeometries[this._flushId]);\n      this.renderer.geometry.updateBuffers();\n      this._flushId++;\n    } else {\n      packedGeometries[this._flushId]._buffer.update(attributeBuffer.rawBinaryData);\n      packedGeometries[this._flushId]._indexBuffer.update(indexBuffer);\n      this.renderer.geometry.updateBuffers();\n    }\n  }\n  drawBatches() {\n    const dcCount = this._dcIndex;\n    const { gl, state: stateSystem } = this.renderer;\n    const drawCalls = _BatchRenderer._drawCallPool;\n    let curTexArray = null;\n    for (let i = 0; i < dcCount; i++) {\n      const { texArray, type, size, start, blend } = drawCalls[i];\n      if (curTexArray !== texArray) {\n        curTexArray = texArray;\n        this.bindAndClearTexArray(texArray);\n      }\n      this.state.blendMode = blend;\n      stateSystem.set(this.state);\n      gl.drawElements(type, size, gl.UNSIGNED_SHORT, start * 2);\n    }\n  }\n  flush() {\n    if (this._vertexCount === 0) {\n      return;\n    }\n    this._attributeBuffer = this.getAttributeBuffer(this._vertexCount);\n    this._indexBuffer = this.getIndexBuffer(this._indexCount);\n    this._aIndex = 0;\n    this._iIndex = 0;\n    this._dcIndex = 0;\n    this.buildTexturesAndDrawCalls();\n    this.updateGeometry();\n    this.drawBatches();\n    this._bufferSize = 0;\n    this._vertexCount = 0;\n    this._indexCount = 0;\n  }\n  start() {\n    this.renderer.state.set(this.state);\n    this.renderer.texture.ensureSamplerType(this.maxTextures);\n    this.renderer.shader.bind(this._shader);\n    if (_BatchRenderer.canUploadSameBuffer) {\n      this.renderer.geometry.bind(this._packedGeometries[this._flushId]);\n    }\n  }\n  stop() {\n    this.flush();\n  }\n  destroy() {\n    for (let i = 0; i < this._packedGeometryPoolSize; i++) {\n      if (this._packedGeometries[i]) {\n        this._packedGeometries[i].destroy();\n      }\n    }\n    this.renderer.off(\"prerender\", this.onPrerender, this);\n    this._aBuffers = null;\n    this._iBuffers = null;\n    this._packedGeometries = null;\n    this._attributeBuffer = null;\n    this._indexBuffer = null;\n    if (this._shader) {\n      this._shader.destroy();\n      this._shader = null;\n    }\n    super.destroy();\n  }\n  getAttributeBuffer(size) {\n    const roundedP2 = nextPow2(Math.ceil(size / 8));\n    const roundedSizeIndex = log2(roundedP2);\n    const roundedSize = roundedP2 * 8;\n    if (this._aBuffers.length <= roundedSizeIndex) {\n      this._iBuffers.length = roundedSizeIndex + 1;\n    }\n    let buffer = this._aBuffers[roundedSize];\n    if (!buffer) {\n      this._aBuffers[roundedSize] = buffer = new ViewableBuffer(roundedSize * this.vertexSize * 4);\n    }\n    return buffer;\n  }\n  getIndexBuffer(size) {\n    const roundedP2 = nextPow2(Math.ceil(size / 12));\n    const roundedSizeIndex = log2(roundedP2);\n    const roundedSize = roundedP2 * 12;\n    if (this._iBuffers.length <= roundedSizeIndex) {\n      this._iBuffers.length = roundedSizeIndex + 1;\n    }\n    let buffer = this._iBuffers[roundedSizeIndex];\n    if (!buffer) {\n      this._iBuffers[roundedSizeIndex] = buffer = new Uint16Array(roundedSize);\n    }\n    return buffer;\n  }\n  packInterleavedGeometry(element, attributeBuffer, indexBuffer, aIndex, iIndex) {\n    const {\n      uint32View,\n      float32View\n    } = attributeBuffer;\n    const packedVertices = aIndex / this.vertexSize;\n    const uvs = element.uvs;\n    const indicies = element.indices;\n    const vertexData = element.vertexData;\n    const textureId = element._texture.baseTexture._batchLocation;\n    const alpha = Math.min(element.worldAlpha, 1);\n    const argb = alpha < 1 && element._texture.baseTexture.alphaMode ? premultiplyTint(element._tintRGB, alpha) : element._tintRGB + (alpha * 255 << 24);\n    for (let i = 0; i < vertexData.length; i += 2) {\n      float32View[aIndex++] = vertexData[i];\n      float32View[aIndex++] = vertexData[i + 1];\n      float32View[aIndex++] = uvs[i];\n      float32View[aIndex++] = uvs[i + 1];\n      uint32View[aIndex++] = argb;\n      float32View[aIndex++] = textureId;\n    }\n    for (let i = 0; i < indicies.length; i++) {\n      indexBuffer[iIndex++] = packedVertices + indicies[i];\n    }\n  }\n};\nlet BatchRenderer = _BatchRenderer;\nBatchRenderer.defaultBatchSize = 4096;\nBatchRenderer.extension = {\n  name: \"batch\",\n  type: ExtensionType.RendererPlugin\n};\nBatchRenderer._drawCallPool = [];\nBatchRenderer._textureArrayPool = [];\nextensions.add(BatchRenderer);\n\nexport { BatchRenderer };\n//# sourceMappingURL=BatchRenderer.mjs.map\n","var defaultFragment = \"varying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\n\\nvoid main(void){\\n   gl_FragColor = texture2D(uSampler, vTextureCoord);\\n}\\n\";\n\nexport { defaultFragment as default };\n//# sourceMappingURL=defaultFilter.mjs.map\n","var defaultVertex = \"attribute vec2 aVertexPosition;\\n\\nuniform mat3 projectionMatrix;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform vec4 inputSize;\\nuniform vec4 outputFrame;\\n\\nvec4 filterVertexPosition( void )\\n{\\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\\n\\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\\n}\\n\\nvec2 filterTextureCoord( void )\\n{\\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\\n}\\n\\nvoid main(void)\\n{\\n    gl_Position = filterVertexPosition();\\n    vTextureCoord = filterTextureCoord();\\n}\\n\";\n\nexport { defaultVertex as default };\n//# sourceMappingURL=defaultFilter2.mjs.map\n","import { MSAA_QUALITY } from '@pixi/constants';\nimport { Program } from '../shader/Program.mjs';\nimport { Shader } from '../shader/Shader.mjs';\nimport { State } from '../state/State.mjs';\nimport defaultFragment from './defaultFilter.mjs';\nimport defaultVertex from './defaultFilter2.mjs';\n\nconst _Filter = class extends Shader {\n  constructor(vertexSrc, fragmentSrc, uniforms) {\n    const program = Program.from(vertexSrc || _Filter.defaultVertexSrc, fragmentSrc || _Filter.defaultFragmentSrc);\n    super(program, uniforms);\n    this.padding = 0;\n    this.resolution = _Filter.defaultResolution;\n    this.multisample = _Filter.defaultMultisample;\n    this.enabled = true;\n    this.autoFit = true;\n    this.state = new State();\n  }\n  apply(filterManager, input, output, clearMode, _currentState) {\n    filterManager.applyFilter(this, input, output, clearMode);\n  }\n  get blendMode() {\n    return this.state.blendMode;\n  }\n  set blendMode(value) {\n    this.state.blendMode = value;\n  }\n  get resolution() {\n    return this._resolution;\n  }\n  set resolution(value) {\n    this._resolution = value;\n  }\n  static get defaultVertexSrc() {\n    return defaultVertex;\n  }\n  static get defaultFragmentSrc() {\n    return defaultFragment;\n  }\n};\nlet Filter = _Filter;\nFilter.defaultResolution = 1;\nFilter.defaultMultisample = MSAA_QUALITY.NONE;\n\nexport { Filter };\n//# sourceMappingURL=Filter.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { string2hex, hex2string, hex2rgb } from '@pixi/utils';\n\nclass BackgroundSystem {\n  constructor() {\n    this.clearBeforeRender = true;\n    this._backgroundColor = 0;\n    this._backgroundColorRgba = [0, 0, 0, 1];\n    this._backgroundColorString = \"#000000\";\n    this.color = this._backgroundColor;\n    this.alpha = 1;\n  }\n  init(options) {\n    this.clearBeforeRender = options.clearBeforeRender;\n    if (options.color) {\n      this.color = typeof options.color === \"string\" ? string2hex(options.color) : options.color;\n    }\n    this.alpha = options.alpha;\n  }\n  get color() {\n    return this._backgroundColor;\n  }\n  set color(value) {\n    this._backgroundColor = value;\n    this._backgroundColorString = hex2string(value);\n    hex2rgb(value, this._backgroundColorRgba);\n  }\n  get alpha() {\n    return this._backgroundColorRgba[3];\n  }\n  set alpha(value) {\n    this._backgroundColorRgba[3] = value;\n  }\n  get colorRgba() {\n    return this._backgroundColorRgba;\n  }\n  get colorString() {\n    return this._backgroundColorString;\n  }\n  destroy() {\n  }\n}\nBackgroundSystem.extension = {\n  type: [\n    ExtensionType.RendererSystem,\n    ExtensionType.CanvasRendererSystem\n  ],\n  name: \"background\"\n};\nextensions.add(BackgroundSystem);\n\nexport { BackgroundSystem };\n//# sourceMappingURL=BackgroundSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { ObjectRenderer } from './ObjectRenderer.mjs';\n\nclass BatchSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.emptyRenderer = new ObjectRenderer(renderer);\n    this.currentRenderer = this.emptyRenderer;\n  }\n  setObjectRenderer(objectRenderer) {\n    if (this.currentRenderer === objectRenderer) {\n      return;\n    }\n    this.currentRenderer.stop();\n    this.currentRenderer = objectRenderer;\n    this.currentRenderer.start();\n  }\n  flush() {\n    this.setObjectRenderer(this.emptyRenderer);\n  }\n  reset() {\n    this.setObjectRenderer(this.emptyRenderer);\n  }\n  copyBoundTextures(arr, maxTextures) {\n    const { boundTextures } = this.renderer.texture;\n    for (let i = maxTextures - 1; i >= 0; --i) {\n      arr[i] = boundTextures[i] || null;\n      if (arr[i]) {\n        arr[i]._batchLocation = i;\n      }\n    }\n  }\n  boundArray(texArray, boundTextures, batchId, maxTextures) {\n    const { elements, ids, count } = texArray;\n    let j = 0;\n    for (let i = 0; i < count; i++) {\n      const tex = elements[i];\n      const loc = tex._batchLocation;\n      if (loc >= 0 && loc < maxTextures && boundTextures[loc] === tex) {\n        ids[i] = loc;\n        continue;\n      }\n      while (j < maxTextures) {\n        const bound = boundTextures[j];\n        if (bound && bound._batchEnabled === batchId && bound._batchLocation === j) {\n          j++;\n          continue;\n        }\n        ids[i] = j;\n        tex._batchLocation = j;\n        boundTextures[j] = tex;\n        break;\n      }\n    }\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nBatchSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"batch\"\n};\nextensions.add(BatchSystem);\n\nexport { BatchSystem };\n//# sourceMappingURL=BatchSystem.mjs.map\n","import { ENV } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { settings } from '@pixi/settings';\n\nlet CONTEXT_UID_COUNTER = 0;\nclass ContextSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.webGLVersion = 1;\n    this.extensions = {};\n    this.supports = {\n      uint32Indices: false\n    };\n    this.handleContextLost = this.handleContextLost.bind(this);\n    this.handleContextRestored = this.handleContextRestored.bind(this);\n  }\n  get isLost() {\n    return !this.gl || this.gl.isContextLost();\n  }\n  contextChange(gl) {\n    this.gl = gl;\n    this.renderer.gl = gl;\n    this.renderer.CONTEXT_UID = CONTEXT_UID_COUNTER++;\n  }\n  init(options) {\n    if (options.context) {\n      this.initFromContext(options.context);\n    } else {\n      const alpha = this.renderer.background.alpha < 1;\n      const premultipliedAlpha = options.premultipliedAlpha;\n      this.preserveDrawingBuffer = options.preserveDrawingBuffer;\n      this.useContextAlpha = options.useContextAlpha;\n      this.powerPreference = options.powerPreference;\n      this.initFromOptions({\n        alpha,\n        premultipliedAlpha,\n        antialias: options.antialias,\n        stencil: true,\n        preserveDrawingBuffer: options.preserveDrawingBuffer,\n        powerPreference: options.powerPreference\n      });\n    }\n  }\n  initFromContext(gl) {\n    this.gl = gl;\n    this.validateContext(gl);\n    this.renderer.gl = gl;\n    this.renderer.CONTEXT_UID = CONTEXT_UID_COUNTER++;\n    this.renderer.runners.contextChange.emit(gl);\n    const view = this.renderer.view;\n    if (view.addEventListener !== void 0) {\n      view.addEventListener(\"webglcontextlost\", this.handleContextLost, false);\n      view.addEventListener(\"webglcontextrestored\", this.handleContextRestored, false);\n    }\n  }\n  initFromOptions(options) {\n    const gl = this.createContext(this.renderer.view, options);\n    this.initFromContext(gl);\n  }\n  createContext(canvas, options) {\n    let gl;\n    if (settings.PREFER_ENV >= ENV.WEBGL2) {\n      gl = canvas.getContext(\"webgl2\", options);\n    }\n    if (gl) {\n      this.webGLVersion = 2;\n    } else {\n      this.webGLVersion = 1;\n      gl = canvas.getContext(\"webgl\", options) || canvas.getContext(\"experimental-webgl\", options);\n      if (!gl) {\n        throw new Error(\"This browser does not support WebGL. Try using the canvas renderer\");\n      }\n    }\n    this.gl = gl;\n    this.getExtensions();\n    return this.gl;\n  }\n  getExtensions() {\n    const { gl } = this;\n    const common = {\n      loseContext: gl.getExtension(\"WEBGL_lose_context\"),\n      anisotropicFiltering: gl.getExtension(\"EXT_texture_filter_anisotropic\"),\n      floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n      s3tc: gl.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n      s3tc_sRGB: gl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n      etc: gl.getExtension(\"WEBGL_compressed_texture_etc\"),\n      etc1: gl.getExtension(\"WEBGL_compressed_texture_etc1\"),\n      pvrtc: gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n      atc: gl.getExtension(\"WEBGL_compressed_texture_atc\"),\n      astc: gl.getExtension(\"WEBGL_compressed_texture_astc\")\n    };\n    if (this.webGLVersion === 1) {\n      Object.assign(this.extensions, common, {\n        drawBuffers: gl.getExtension(\"WEBGL_draw_buffers\"),\n        depthTexture: gl.getExtension(\"WEBGL_depth_texture\"),\n        vertexArrayObject: gl.getExtension(\"OES_vertex_array_object\") || gl.getExtension(\"MOZ_OES_vertex_array_object\") || gl.getExtension(\"WEBKIT_OES_vertex_array_object\"),\n        uint32ElementIndex: gl.getExtension(\"OES_element_index_uint\"),\n        floatTexture: gl.getExtension(\"OES_texture_float\"),\n        floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n        textureHalfFloat: gl.getExtension(\"OES_texture_half_float\"),\n        textureHalfFloatLinear: gl.getExtension(\"OES_texture_half_float_linear\")\n      });\n    } else if (this.webGLVersion === 2) {\n      Object.assign(this.extensions, common, {\n        colorBufferFloat: gl.getExtension(\"EXT_color_buffer_float\")\n      });\n    }\n  }\n  handleContextLost(event) {\n    event.preventDefault();\n    setTimeout(() => {\n      if (this.gl.isContextLost() && this.extensions.loseContext) {\n        this.extensions.loseContext.restoreContext();\n      }\n    }, 0);\n  }\n  handleContextRestored() {\n    this.renderer.runners.contextChange.emit(this.gl);\n  }\n  destroy() {\n    const view = this.renderer.view;\n    this.renderer = null;\n    if (view.removeEventListener !== void 0) {\n      view.removeEventListener(\"webglcontextlost\", this.handleContextLost);\n      view.removeEventListener(\"webglcontextrestored\", this.handleContextRestored);\n    }\n    this.gl.useProgram(null);\n    if (this.extensions.loseContext) {\n      this.extensions.loseContext.loseContext();\n    }\n  }\n  postrender() {\n    if (this.renderer.objectRenderer.renderingToScreen) {\n      this.gl.flush();\n    }\n  }\n  validateContext(gl) {\n    const attributes = gl.getContextAttributes();\n    const isWebGl2 = \"WebGL2RenderingContext\" in globalThis && gl instanceof globalThis.WebGL2RenderingContext;\n    if (isWebGl2) {\n      this.webGLVersion = 2;\n    }\n    if (attributes && !attributes.stencil) {\n      console.warn(\"Provided WebGL context does not have a stencil buffer, masks may not render correctly\");\n    }\n    const hasuint32 = isWebGl2 || !!gl.getExtension(\"OES_element_index_uint\");\n    this.supports.uint32Indices = hasuint32;\n    if (!hasuint32) {\n      console.warn(\"Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly\");\n    }\n  }\n}\nContextSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"context\"\n};\nextensions.add(ContextSystem);\n\nexport { ContextSystem };\n//# sourceMappingURL=ContextSystem.mjs.map\n","import { ALPHA_MODES } from '@pixi/constants';\nimport { BufferResource } from './BufferResource.mjs';\n\nclass DepthResource extends BufferResource {\n  upload(renderer, baseTexture, glTexture) {\n    const gl = renderer.gl;\n    gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.alphaMode === ALPHA_MODES.UNPACK);\n    const width = baseTexture.realWidth;\n    const height = baseTexture.realHeight;\n    if (glTexture.width === width && glTexture.height === height) {\n      gl.texSubImage2D(baseTexture.target, 0, 0, 0, width, height, baseTexture.format, glTexture.type, this.data);\n    } else {\n      glTexture.width = width;\n      glTexture.height = height;\n      gl.texImage2D(baseTexture.target, 0, glTexture.internalFormat, width, height, 0, baseTexture.format, glTexture.type, this.data);\n    }\n    return true;\n  }\n}\n\nexport { DepthResource };\n//# sourceMappingURL=DepthResource.mjs.map\n","import { MSAA_QUALITY, SCALE_MODES, MIPMAP_MODES, FORMATS, TYPES } from '@pixi/constants';\nimport { Runner } from '@pixi/runner';\nimport { BaseTexture } from '../textures/BaseTexture.mjs';\nimport { DepthResource } from '../textures/resources/DepthResource.mjs';\n\nclass Framebuffer {\n  constructor(width, height) {\n    this.width = Math.round(width || 100);\n    this.height = Math.round(height || 100);\n    this.stencil = false;\n    this.depth = false;\n    this.dirtyId = 0;\n    this.dirtyFormat = 0;\n    this.dirtySize = 0;\n    this.depthTexture = null;\n    this.colorTextures = [];\n    this.glFramebuffers = {};\n    this.disposeRunner = new Runner(\"disposeFramebuffer\");\n    this.multisample = MSAA_QUALITY.NONE;\n  }\n  get colorTexture() {\n    return this.colorTextures[0];\n  }\n  addColorTexture(index = 0, texture) {\n    this.colorTextures[index] = texture || new BaseTexture(null, {\n      scaleMode: SCALE_MODES.NEAREST,\n      resolution: 1,\n      mipmap: MIPMAP_MODES.OFF,\n      width: this.width,\n      height: this.height\n    });\n    this.dirtyId++;\n    this.dirtyFormat++;\n    return this;\n  }\n  addDepthTexture(texture) {\n    this.depthTexture = texture || new BaseTexture(new DepthResource(null, { width: this.width, height: this.height }), {\n      scaleMode: SCALE_MODES.NEAREST,\n      resolution: 1,\n      width: this.width,\n      height: this.height,\n      mipmap: MIPMAP_MODES.OFF,\n      format: FORMATS.DEPTH_COMPONENT,\n      type: TYPES.UNSIGNED_SHORT\n    });\n    this.dirtyId++;\n    this.dirtyFormat++;\n    return this;\n  }\n  enableDepth() {\n    this.depth = true;\n    this.dirtyId++;\n    this.dirtyFormat++;\n    return this;\n  }\n  enableStencil() {\n    this.stencil = true;\n    this.dirtyId++;\n    this.dirtyFormat++;\n    return this;\n  }\n  resize(width, height) {\n    width = Math.round(width);\n    height = Math.round(height);\n    if (width === this.width && height === this.height)\n      return;\n    this.width = width;\n    this.height = height;\n    this.dirtyId++;\n    this.dirtySize++;\n    for (let i = 0; i < this.colorTextures.length; i++) {\n      const texture = this.colorTextures[i];\n      const resolution = texture.resolution;\n      texture.setSize(width / resolution, height / resolution);\n    }\n    if (this.depthTexture) {\n      const resolution = this.depthTexture.resolution;\n      this.depthTexture.setSize(width / resolution, height / resolution);\n    }\n  }\n  dispose() {\n    this.disposeRunner.emit(this, false);\n  }\n  destroyDepthTexture() {\n    if (this.depthTexture) {\n      this.depthTexture.destroy();\n      this.depthTexture = null;\n      ++this.dirtyId;\n      ++this.dirtyFormat;\n    }\n  }\n}\n\nexport { Framebuffer };\n//# sourceMappingURL=Framebuffer.mjs.map\n","import { MSAA_QUALITY, MIPMAP_MODES } from '@pixi/constants';\nimport { Framebuffer } from '../framebuffer/Framebuffer.mjs';\nimport { BaseTexture } from '../textures/BaseTexture.mjs';\n\nclass BaseRenderTexture extends BaseTexture {\n  constructor(options = {}) {\n    if (typeof options === \"number\") {\n      const width = arguments[0];\n      const height = arguments[1];\n      const scaleMode = arguments[2];\n      const resolution = arguments[3];\n      options = { width, height, scaleMode, resolution };\n    }\n    options.width = options.width || 100;\n    options.height = options.height || 100;\n    options.multisample ?? (options.multisample = MSAA_QUALITY.NONE);\n    super(null, options);\n    this.mipmap = MIPMAP_MODES.OFF;\n    this.valid = true;\n    this.clearColor = [0, 0, 0, 0];\n    this.framebuffer = new Framebuffer(this.realWidth, this.realHeight).addColorTexture(0, this);\n    this.framebuffer.multisample = options.multisample;\n    this.maskStack = [];\n    this.filterStack = [{}];\n  }\n  resize(desiredWidth, desiredHeight) {\n    this.framebuffer.resize(desiredWidth * this.resolution, desiredHeight * this.resolution);\n    this.setRealSize(this.framebuffer.width, this.framebuffer.height);\n  }\n  dispose() {\n    this.framebuffer.dispose();\n    super.dispose();\n  }\n  destroy() {\n    super.destroy();\n    this.framebuffer.destroyDepthTexture();\n    this.framebuffer = null;\n  }\n}\n\nexport { BaseRenderTexture };\n//# sourceMappingURL=BaseRenderTexture.mjs.map\n","import { ALPHA_MODES } from '@pixi/constants';\nimport { determineCrossOrigin } from '@pixi/utils';\nimport { Resource } from './Resource.mjs';\n\nclass BaseImageResource extends Resource {\n  constructor(source) {\n    const sourceAny = source;\n    const width = sourceAny.naturalWidth || sourceAny.videoWidth || sourceAny.width;\n    const height = sourceAny.naturalHeight || sourceAny.videoHeight || sourceAny.height;\n    super(width, height);\n    this.source = source;\n    this.noSubImage = false;\n  }\n  static crossOrigin(element, url, crossorigin) {\n    if (crossorigin === void 0 && !url.startsWith(\"data:\")) {\n      element.crossOrigin = determineCrossOrigin(url);\n    } else if (crossorigin !== false) {\n      element.crossOrigin = typeof crossorigin === \"string\" ? crossorigin : \"anonymous\";\n    }\n  }\n  upload(renderer, baseTexture, glTexture, source) {\n    const gl = renderer.gl;\n    const width = baseTexture.realWidth;\n    const height = baseTexture.realHeight;\n    source = source || this.source;\n    if (typeof HTMLImageElement !== \"undefined\" && source instanceof HTMLImageElement) {\n      if (!source.complete || source.naturalWidth === 0) {\n        return false;\n      }\n    } else if (typeof HTMLVideoElement !== \"undefined\" && source instanceof HTMLVideoElement) {\n      if (source.readyState <= 1 && source.buffered.length === 0) {\n        return false;\n      }\n    }\n    gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.alphaMode === ALPHA_MODES.UNPACK);\n    if (!this.noSubImage && baseTexture.target === gl.TEXTURE_2D && glTexture.width === width && glTexture.height === height) {\n      gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, baseTexture.format, glTexture.type, source);\n    } else {\n      glTexture.width = width;\n      glTexture.height = height;\n      gl.texImage2D(baseTexture.target, 0, glTexture.internalFormat, baseTexture.format, glTexture.type, source);\n    }\n    return true;\n  }\n  update() {\n    if (this.destroyed) {\n      return;\n    }\n    const source = this.source;\n    const width = source.naturalWidth || source.videoWidth || source.width;\n    const height = source.naturalHeight || source.videoHeight || source.height;\n    this.resize(width, height);\n    super.update();\n  }\n  dispose() {\n    this.source = null;\n  }\n}\n\nexport { BaseImageResource };\n//# sourceMappingURL=BaseImageResource.mjs.map\n","import { ALPHA_MODES } from '@pixi/constants';\nimport { settings } from '@pixi/settings';\nimport { BaseImageResource } from './BaseImageResource.mjs';\n\nclass ImageResource extends BaseImageResource {\n  constructor(source, options) {\n    options = options || {};\n    if (typeof source === \"string\") {\n      const imageElement = new Image();\n      BaseImageResource.crossOrigin(imageElement, source, options.crossorigin);\n      imageElement.src = source;\n      source = imageElement;\n    }\n    super(source);\n    if (!source.complete && !!this._width && !!this._height) {\n      this._width = 0;\n      this._height = 0;\n    }\n    this.url = source.src;\n    this._process = null;\n    this.preserveBitmap = false;\n    this.createBitmap = (options.createBitmap ?? settings.CREATE_IMAGE_BITMAP) && !!globalThis.createImageBitmap;\n    this.alphaMode = typeof options.alphaMode === \"number\" ? options.alphaMode : null;\n    this.bitmap = null;\n    this._load = null;\n    if (options.autoLoad !== false) {\n      this.load();\n    }\n  }\n  load(createBitmap) {\n    if (this._load) {\n      return this._load;\n    }\n    if (createBitmap !== void 0) {\n      this.createBitmap = createBitmap;\n    }\n    this._load = new Promise((resolve, reject) => {\n      const source = this.source;\n      this.url = source.src;\n      const completed = () => {\n        if (this.destroyed) {\n          return;\n        }\n        source.onload = null;\n        source.onerror = null;\n        this.resize(source.width, source.height);\n        this._load = null;\n        if (this.createBitmap) {\n          resolve(this.process());\n        } else {\n          resolve(this);\n        }\n      };\n      if (source.complete && source.src) {\n        completed();\n      } else {\n        source.onload = completed;\n        source.onerror = (event) => {\n          reject(event);\n          this.onError.emit(event);\n        };\n      }\n    });\n    return this._load;\n  }\n  process() {\n    const source = this.source;\n    if (this._process !== null) {\n      return this._process;\n    }\n    if (this.bitmap !== null || !globalThis.createImageBitmap) {\n      return Promise.resolve(this);\n    }\n    const createImageBitmap = globalThis.createImageBitmap;\n    const cors = !source.crossOrigin || source.crossOrigin === \"anonymous\";\n    this._process = fetch(source.src, {\n      mode: cors ? \"cors\" : \"no-cors\"\n    }).then((r) => r.blob()).then((blob) => createImageBitmap(blob, 0, 0, source.width, source.height, {\n      premultiplyAlpha: this.alphaMode === null || this.alphaMode === ALPHA_MODES.UNPACK ? \"premultiply\" : \"none\"\n    })).then((bitmap) => {\n      if (this.destroyed) {\n        return Promise.reject();\n      }\n      this.bitmap = bitmap;\n      this.update();\n      this._process = null;\n      return Promise.resolve(this);\n    });\n    return this._process;\n  }\n  upload(renderer, baseTexture, glTexture) {\n    if (typeof this.alphaMode === \"number\") {\n      baseTexture.alphaMode = this.alphaMode;\n    }\n    if (!this.createBitmap) {\n      return super.upload(renderer, baseTexture, glTexture);\n    }\n    if (!this.bitmap) {\n      this.process();\n      if (!this.bitmap) {\n        return false;\n      }\n    }\n    super.upload(renderer, baseTexture, glTexture, this.bitmap);\n    if (!this.preserveBitmap) {\n      let flag = true;\n      const glTextures = baseTexture._glTextures;\n      for (const key in glTextures) {\n        const otherTex = glTextures[key];\n        if (otherTex !== glTexture && otherTex.dirtyId !== baseTexture.dirtyId) {\n          flag = false;\n          break;\n        }\n      }\n      if (flag) {\n        if (this.bitmap.close) {\n          this.bitmap.close();\n        }\n        this.bitmap = null;\n      }\n    }\n    return true;\n  }\n  dispose() {\n    this.source.onload = null;\n    this.source.onerror = null;\n    super.dispose();\n    if (this.bitmap) {\n      this.bitmap.close();\n      this.bitmap = null;\n    }\n    this._process = null;\n    this._load = null;\n  }\n  static test(source) {\n    return typeof HTMLImageElement !== \"undefined\" && (typeof source === \"string\" || source instanceof HTMLImageElement);\n  }\n}\n\nexport { ImageResource };\n//# sourceMappingURL=ImageResource.mjs.map\n","import { groupD8 } from '@pixi/math';\n\nclass TextureUvs {\n  constructor() {\n    this.x0 = 0;\n    this.y0 = 0;\n    this.x1 = 1;\n    this.y1 = 0;\n    this.x2 = 1;\n    this.y2 = 1;\n    this.x3 = 0;\n    this.y3 = 1;\n    this.uvsFloat32 = new Float32Array(8);\n  }\n  set(frame, baseFrame, rotate) {\n    const tw = baseFrame.width;\n    const th = baseFrame.height;\n    if (rotate) {\n      const w2 = frame.width / 2 / tw;\n      const h2 = frame.height / 2 / th;\n      const cX = frame.x / tw + w2;\n      const cY = frame.y / th + h2;\n      rotate = groupD8.add(rotate, groupD8.NW);\n      this.x0 = cX + w2 * groupD8.uX(rotate);\n      this.y0 = cY + h2 * groupD8.uY(rotate);\n      rotate = groupD8.add(rotate, 2);\n      this.x1 = cX + w2 * groupD8.uX(rotate);\n      this.y1 = cY + h2 * groupD8.uY(rotate);\n      rotate = groupD8.add(rotate, 2);\n      this.x2 = cX + w2 * groupD8.uX(rotate);\n      this.y2 = cY + h2 * groupD8.uY(rotate);\n      rotate = groupD8.add(rotate, 2);\n      this.x3 = cX + w2 * groupD8.uX(rotate);\n      this.y3 = cY + h2 * groupD8.uY(rotate);\n    } else {\n      this.x0 = frame.x / tw;\n      this.y0 = frame.y / th;\n      this.x1 = (frame.x + frame.width) / tw;\n      this.y1 = frame.y / th;\n      this.x2 = (frame.x + frame.width) / tw;\n      this.y2 = (frame.y + frame.height) / th;\n      this.x3 = frame.x / tw;\n      this.y3 = (frame.y + frame.height) / th;\n    }\n    this.uvsFloat32[0] = this.x0;\n    this.uvsFloat32[1] = this.y0;\n    this.uvsFloat32[2] = this.x1;\n    this.uvsFloat32[3] = this.y1;\n    this.uvsFloat32[4] = this.x2;\n    this.uvsFloat32[5] = this.y2;\n    this.uvsFloat32[6] = this.x3;\n    this.uvsFloat32[7] = this.y3;\n  }\n  toString() {\n    return `[@pixi/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`;\n  }\n}\n\nexport { TextureUvs };\n//# sourceMappingURL=TextureUvs.mjs.map\n","import { Rectangle, Point } from '@pixi/math';\nimport { settings } from '@pixi/settings';\nimport { EventEmitter, TextureCache, uid, getResolutionOfUrl } from '@pixi/utils';\nimport { BaseTexture } from './BaseTexture.mjs';\nimport { ImageResource } from './resources/ImageResource.mjs';\nimport { TextureUvs } from './TextureUvs.mjs';\n\nconst DEFAULT_UVS = new TextureUvs();\nfunction removeAllHandlers(tex) {\n  tex.destroy = function _emptyDestroy() {\n  };\n  tex.on = function _emptyOn() {\n  };\n  tex.once = function _emptyOnce() {\n  };\n  tex.emit = function _emptyEmit() {\n  };\n}\nclass Texture extends EventEmitter {\n  constructor(baseTexture, frame, orig, trim, rotate, anchor) {\n    super();\n    this.noFrame = false;\n    if (!frame) {\n      this.noFrame = true;\n      frame = new Rectangle(0, 0, 1, 1);\n    }\n    if (baseTexture instanceof Texture) {\n      baseTexture = baseTexture.baseTexture;\n    }\n    this.baseTexture = baseTexture;\n    this._frame = frame;\n    this.trim = trim;\n    this.valid = false;\n    this._uvs = DEFAULT_UVS;\n    this.uvMatrix = null;\n    this.orig = orig || frame;\n    this._rotate = Number(rotate || 0);\n    if (rotate === true) {\n      this._rotate = 2;\n    } else if (this._rotate % 2 !== 0) {\n      throw new Error(\"attempt to use diamond-shaped UVs. If you are sure, set rotation manually\");\n    }\n    this.defaultAnchor = anchor ? new Point(anchor.x, anchor.y) : new Point(0, 0);\n    this._updateID = 0;\n    this.textureCacheIds = [];\n    if (!baseTexture.valid) {\n      baseTexture.once(\"loaded\", this.onBaseTextureUpdated, this);\n    } else if (this.noFrame) {\n      if (baseTexture.valid) {\n        this.onBaseTextureUpdated(baseTexture);\n      }\n    } else {\n      this.frame = frame;\n    }\n    if (this.noFrame) {\n      baseTexture.on(\"update\", this.onBaseTextureUpdated, this);\n    }\n  }\n  update() {\n    if (this.baseTexture.resource) {\n      this.baseTexture.resource.update();\n    }\n  }\n  onBaseTextureUpdated(baseTexture) {\n    if (this.noFrame) {\n      if (!this.baseTexture.valid) {\n        return;\n      }\n      this._frame.width = baseTexture.width;\n      this._frame.height = baseTexture.height;\n      this.valid = true;\n      this.updateUvs();\n    } else {\n      this.frame = this._frame;\n    }\n    this.emit(\"update\", this);\n  }\n  destroy(destroyBase) {\n    if (this.baseTexture) {\n      if (destroyBase) {\n        const { resource } = this.baseTexture;\n        if (resource?.url && TextureCache[resource.url]) {\n          Texture.removeFromCache(resource.url);\n        }\n        this.baseTexture.destroy();\n      }\n      this.baseTexture.off(\"loaded\", this.onBaseTextureUpdated, this);\n      this.baseTexture.off(\"update\", this.onBaseTextureUpdated, this);\n      this.baseTexture = null;\n    }\n    this._frame = null;\n    this._uvs = null;\n    this.trim = null;\n    this.orig = null;\n    this.valid = false;\n    Texture.removeFromCache(this);\n    this.textureCacheIds = null;\n  }\n  clone() {\n    const clonedFrame = this._frame.clone();\n    const clonedOrig = this._frame === this.orig ? clonedFrame : this.orig.clone();\n    const clonedTexture = new Texture(this.baseTexture, !this.noFrame && clonedFrame, clonedOrig, this.trim?.clone(), this.rotate, this.defaultAnchor);\n    if (this.noFrame) {\n      clonedTexture._frame = clonedFrame;\n    }\n    return clonedTexture;\n  }\n  updateUvs() {\n    if (this._uvs === DEFAULT_UVS) {\n      this._uvs = new TextureUvs();\n    }\n    this._uvs.set(this._frame, this.baseTexture, this.rotate);\n    this._updateID++;\n  }\n  static from(source, options = {}, strict = settings.STRICT_TEXTURE_CACHE) {\n    const isFrame = typeof source === \"string\";\n    let cacheId = null;\n    if (isFrame) {\n      cacheId = source;\n    } else if (source instanceof BaseTexture) {\n      if (!source.cacheId) {\n        const prefix = options?.pixiIdPrefix || \"pixiid\";\n        source.cacheId = `${prefix}-${uid()}`;\n        BaseTexture.addToCache(source, source.cacheId);\n      }\n      cacheId = source.cacheId;\n    } else {\n      if (!source._pixiId) {\n        const prefix = options?.pixiIdPrefix || \"pixiid\";\n        source._pixiId = `${prefix}_${uid()}`;\n      }\n      cacheId = source._pixiId;\n    }\n    let texture = TextureCache[cacheId];\n    if (isFrame && strict && !texture) {\n      throw new Error(`The cacheId \"${cacheId}\" does not exist in TextureCache.`);\n    }\n    if (!texture && !(source instanceof BaseTexture)) {\n      if (!options.resolution) {\n        options.resolution = getResolutionOfUrl(source);\n      }\n      texture = new Texture(new BaseTexture(source, options));\n      texture.baseTexture.cacheId = cacheId;\n      BaseTexture.addToCache(texture.baseTexture, cacheId);\n      Texture.addToCache(texture, cacheId);\n    } else if (!texture && source instanceof BaseTexture) {\n      texture = new Texture(source);\n      Texture.addToCache(texture, cacheId);\n    }\n    return texture;\n  }\n  static fromURL(url, options) {\n    const resourceOptions = Object.assign({ autoLoad: false }, options?.resourceOptions);\n    const texture = Texture.from(url, Object.assign({ resourceOptions }, options), false);\n    const resource = texture.baseTexture.resource;\n    if (texture.baseTexture.valid) {\n      return Promise.resolve(texture);\n    }\n    return resource.load().then(() => Promise.resolve(texture));\n  }\n  static fromBuffer(buffer, width, height, options) {\n    return new Texture(BaseTexture.fromBuffer(buffer, width, height, options));\n  }\n  static fromLoader(source, imageUrl, name, options) {\n    const baseTexture = new BaseTexture(source, Object.assign({\n      scaleMode: BaseTexture.defaultOptions.scaleMode,\n      resolution: getResolutionOfUrl(imageUrl)\n    }, options));\n    const { resource } = baseTexture;\n    if (resource instanceof ImageResource) {\n      resource.url = imageUrl;\n    }\n    const texture = new Texture(baseTexture);\n    if (!name) {\n      name = imageUrl;\n    }\n    BaseTexture.addToCache(texture.baseTexture, name);\n    Texture.addToCache(texture, name);\n    if (name !== imageUrl) {\n      BaseTexture.addToCache(texture.baseTexture, imageUrl);\n      Texture.addToCache(texture, imageUrl);\n    }\n    if (texture.baseTexture.valid) {\n      return Promise.resolve(texture);\n    }\n    return new Promise((resolve) => {\n      texture.baseTexture.once(\"loaded\", () => resolve(texture));\n    });\n  }\n  static addToCache(texture, id) {\n    if (id) {\n      if (!texture.textureCacheIds.includes(id)) {\n        texture.textureCacheIds.push(id);\n      }\n      if (TextureCache[id] && TextureCache[id] !== texture) {\n        console.warn(`Texture added to the cache with an id [${id}] that already had an entry`);\n      }\n      TextureCache[id] = texture;\n    }\n  }\n  static removeFromCache(texture) {\n    if (typeof texture === \"string\") {\n      const textureFromCache = TextureCache[texture];\n      if (textureFromCache) {\n        const index = textureFromCache.textureCacheIds.indexOf(texture);\n        if (index > -1) {\n          textureFromCache.textureCacheIds.splice(index, 1);\n        }\n        delete TextureCache[texture];\n        return textureFromCache;\n      }\n    } else if (texture?.textureCacheIds) {\n      for (let i = 0; i < texture.textureCacheIds.length; ++i) {\n        if (TextureCache[texture.textureCacheIds[i]] === texture) {\n          delete TextureCache[texture.textureCacheIds[i]];\n        }\n      }\n      texture.textureCacheIds.length = 0;\n      return texture;\n    }\n    return null;\n  }\n  get resolution() {\n    return this.baseTexture.resolution;\n  }\n  get frame() {\n    return this._frame;\n  }\n  set frame(frame) {\n    this._frame = frame;\n    this.noFrame = false;\n    const { x, y, width, height } = frame;\n    const xNotFit = x + width > this.baseTexture.width;\n    const yNotFit = y + height > this.baseTexture.height;\n    if (xNotFit || yNotFit) {\n      const relationship = xNotFit && yNotFit ? \"and\" : \"or\";\n      const errorX = `X: ${x} + ${width} = ${x + width} > ${this.baseTexture.width}`;\n      const errorY = `Y: ${y} + ${height} = ${y + height} > ${this.baseTexture.height}`;\n      throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${errorX} ${relationship} ${errorY}`);\n    }\n    this.valid = width && height && this.baseTexture.valid;\n    if (!this.trim && !this.rotate) {\n      this.orig = frame;\n    }\n    if (this.valid) {\n      this.updateUvs();\n    }\n  }\n  get rotate() {\n    return this._rotate;\n  }\n  set rotate(rotate) {\n    this._rotate = rotate;\n    if (this.valid) {\n      this.updateUvs();\n    }\n  }\n  get width() {\n    return this.orig.width;\n  }\n  get height() {\n    return this.orig.height;\n  }\n  castToBaseTexture() {\n    return this.baseTexture;\n  }\n  static get EMPTY() {\n    if (!Texture._EMPTY) {\n      Texture._EMPTY = new Texture(new BaseTexture());\n      removeAllHandlers(Texture._EMPTY);\n      removeAllHandlers(Texture._EMPTY.baseTexture);\n    }\n    return Texture._EMPTY;\n  }\n  static get WHITE() {\n    if (!Texture._WHITE) {\n      const canvas = settings.ADAPTER.createCanvas(16, 16);\n      const context = canvas.getContext(\"2d\");\n      canvas.width = 16;\n      canvas.height = 16;\n      context.fillStyle = \"white\";\n      context.fillRect(0, 0, 16, 16);\n      Texture._WHITE = new Texture(BaseTexture.from(canvas));\n      removeAllHandlers(Texture._WHITE);\n      removeAllHandlers(Texture._WHITE.baseTexture);\n    }\n    return Texture._WHITE;\n  }\n}\n\nexport { Texture };\n//# sourceMappingURL=Texture.mjs.map\n","import { Texture } from '../textures/Texture.mjs';\nimport { BaseRenderTexture } from './BaseRenderTexture.mjs';\n\nclass RenderTexture extends Texture {\n  constructor(baseRenderTexture, frame) {\n    super(baseRenderTexture, frame);\n    this.valid = true;\n    this.filterFrame = null;\n    this.filterPoolKey = null;\n    this.updateUvs();\n  }\n  get framebuffer() {\n    return this.baseTexture.framebuffer;\n  }\n  get multisample() {\n    return this.framebuffer.multisample;\n  }\n  set multisample(value) {\n    this.framebuffer.multisample = value;\n  }\n  resize(desiredWidth, desiredHeight, resizeBaseTexture = true) {\n    const resolution = this.baseTexture.resolution;\n    const width = Math.round(desiredWidth * resolution) / resolution;\n    const height = Math.round(desiredHeight * resolution) / resolution;\n    this.valid = width > 0 && height > 0;\n    this._frame.width = this.orig.width = width;\n    this._frame.height = this.orig.height = height;\n    if (resizeBaseTexture) {\n      this.baseTexture.resize(width, height);\n    }\n    this.updateUvs();\n  }\n  setResolution(resolution) {\n    const { baseTexture } = this;\n    if (baseTexture.resolution === resolution) {\n      return;\n    }\n    baseTexture.setResolution(resolution);\n    this.resize(baseTexture.width, baseTexture.height, false);\n  }\n  static create(options) {\n    return new RenderTexture(new BaseRenderTexture(options));\n  }\n}\n\nexport { RenderTexture };\n//# sourceMappingURL=RenderTexture.mjs.map\n","import { MSAA_QUALITY } from '@pixi/constants';\nimport { nextPow2 } from '@pixi/utils';\nimport { BaseRenderTexture } from './BaseRenderTexture.mjs';\nimport { RenderTexture } from './RenderTexture.mjs';\n\nclass RenderTexturePool {\n  constructor(textureOptions) {\n    this.texturePool = {};\n    this.textureOptions = textureOptions || {};\n    this.enableFullScreen = false;\n    this._pixelsWidth = 0;\n    this._pixelsHeight = 0;\n  }\n  createTexture(realWidth, realHeight, multisample = MSAA_QUALITY.NONE) {\n    const baseRenderTexture = new BaseRenderTexture(Object.assign({\n      width: realWidth,\n      height: realHeight,\n      resolution: 1,\n      multisample\n    }, this.textureOptions));\n    return new RenderTexture(baseRenderTexture);\n  }\n  getOptimalTexture(minWidth, minHeight, resolution = 1, multisample = MSAA_QUALITY.NONE) {\n    let key;\n    minWidth = Math.ceil(minWidth * resolution - 1e-6);\n    minHeight = Math.ceil(minHeight * resolution - 1e-6);\n    if (!this.enableFullScreen || minWidth !== this._pixelsWidth || minHeight !== this._pixelsHeight) {\n      minWidth = nextPow2(minWidth);\n      minHeight = nextPow2(minHeight);\n      key = ((minWidth & 65535) << 16 | minHeight & 65535) >>> 0;\n      if (multisample > 1) {\n        key += multisample * 4294967296;\n      }\n    } else {\n      key = multisample > 1 ? -multisample : -1;\n    }\n    if (!this.texturePool[key]) {\n      this.texturePool[key] = [];\n    }\n    let renderTexture = this.texturePool[key].pop();\n    if (!renderTexture) {\n      renderTexture = this.createTexture(minWidth, minHeight, multisample);\n    }\n    renderTexture.filterPoolKey = key;\n    renderTexture.setResolution(resolution);\n    return renderTexture;\n  }\n  getFilterTexture(input, resolution, multisample) {\n    const filterTexture = this.getOptimalTexture(input.width, input.height, resolution || input.resolution, multisample || MSAA_QUALITY.NONE);\n    filterTexture.filterFrame = input.filterFrame;\n    return filterTexture;\n  }\n  returnTexture(renderTexture) {\n    const key = renderTexture.filterPoolKey;\n    renderTexture.filterFrame = null;\n    this.texturePool[key].push(renderTexture);\n  }\n  returnFilterTexture(renderTexture) {\n    this.returnTexture(renderTexture);\n  }\n  clear(destroyTextures) {\n    destroyTextures = destroyTextures !== false;\n    if (destroyTextures) {\n      for (const i in this.texturePool) {\n        const textures = this.texturePool[i];\n        if (textures) {\n          for (let j = 0; j < textures.length; j++) {\n            textures[j].destroy(true);\n          }\n        }\n      }\n    }\n    this.texturePool = {};\n  }\n  setScreenSize(size) {\n    if (size.width === this._pixelsWidth && size.height === this._pixelsHeight) {\n      return;\n    }\n    this.enableFullScreen = size.width > 0 && size.height > 0;\n    for (const i in this.texturePool) {\n      if (!(Number(i) < 0)) {\n        continue;\n      }\n      const textures = this.texturePool[i];\n      if (textures) {\n        for (let j = 0; j < textures.length; j++) {\n          textures[j].destroy(true);\n        }\n      }\n      this.texturePool[i] = [];\n    }\n    this._pixelsWidth = size.width;\n    this._pixelsHeight = size.height;\n  }\n}\nRenderTexturePool.SCREEN_KEY = -1;\n\nexport { RenderTexturePool };\n//# sourceMappingURL=RenderTexturePool.mjs.map\n","import { Geometry } from '../geometry/Geometry.mjs';\n\nclass Quad extends Geometry {\n  constructor() {\n    super();\n    this.addAttribute(\"aVertexPosition\", new Float32Array([\n      0,\n      0,\n      1,\n      0,\n      1,\n      1,\n      0,\n      1\n    ])).addIndex([0, 1, 3, 2]);\n  }\n}\n\nexport { Quad };\n//# sourceMappingURL=Quad.mjs.map\n","import { Buffer } from '../geometry/Buffer.mjs';\nimport { Geometry } from '../geometry/Geometry.mjs';\n\nclass QuadUv extends Geometry {\n  constructor() {\n    super();\n    this.vertices = new Float32Array([\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      1,\n      -1,\n      1\n    ]);\n    this.uvs = new Float32Array([\n      0,\n      0,\n      1,\n      0,\n      1,\n      1,\n      0,\n      1\n    ]);\n    this.vertexBuffer = new Buffer(this.vertices);\n    this.uvBuffer = new Buffer(this.uvs);\n    this.addAttribute(\"aVertexPosition\", this.vertexBuffer).addAttribute(\"aTextureCoord\", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]);\n  }\n  map(targetTextureFrame, destinationFrame) {\n    let x = 0;\n    let y = 0;\n    this.uvs[0] = x;\n    this.uvs[1] = y;\n    this.uvs[2] = x + destinationFrame.width / targetTextureFrame.width;\n    this.uvs[3] = y;\n    this.uvs[4] = x + destinationFrame.width / targetTextureFrame.width;\n    this.uvs[5] = y + destinationFrame.height / targetTextureFrame.height;\n    this.uvs[6] = x;\n    this.uvs[7] = y + destinationFrame.height / targetTextureFrame.height;\n    x = destinationFrame.x;\n    y = destinationFrame.y;\n    this.vertices[0] = x;\n    this.vertices[1] = y;\n    this.vertices[2] = x + destinationFrame.width;\n    this.vertices[3] = y;\n    this.vertices[4] = x + destinationFrame.width;\n    this.vertices[5] = y + destinationFrame.height;\n    this.vertices[6] = x;\n    this.vertices[7] = y + destinationFrame.height;\n    this.invalidate();\n    return this;\n  }\n  invalidate() {\n    this.vertexBuffer._updateID++;\n    this.uvBuffer._updateID++;\n    return this;\n  }\n}\n\nexport { QuadUv };\n//# sourceMappingURL=QuadUv.mjs.map\n","import { MSAA_QUALITY } from '@pixi/constants';\nimport { Rectangle } from '@pixi/math';\n\nclass FilterState {\n  constructor() {\n    this.renderTexture = null;\n    this.target = null;\n    this.legacy = false;\n    this.resolution = 1;\n    this.multisample = MSAA_QUALITY.NONE;\n    this.sourceFrame = new Rectangle();\n    this.destinationFrame = new Rectangle();\n    this.bindingSourceFrame = new Rectangle();\n    this.bindingDestinationFrame = new Rectangle();\n    this.filters = [];\n    this.transform = null;\n  }\n  clear() {\n    this.target = null;\n    this.filters = null;\n    this.renderTexture = null;\n  }\n}\n\nexport { FilterState };\n//# sourceMappingURL=FilterState.mjs.map\n","import { CLEAR_MODES, DRAW_MODES, MSAA_QUALITY } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { Point, Matrix, Rectangle } from '@pixi/math';\nimport { RenderTexturePool } from '../renderTexture/RenderTexturePool.mjs';\nimport { UniformGroup } from '../shader/UniformGroup.mjs';\nimport { Quad } from '../utils/Quad.mjs';\nimport { QuadUv } from '../utils/QuadUv.mjs';\nimport { FilterState } from './FilterState.mjs';\n\nconst tempPoints = [new Point(), new Point(), new Point(), new Point()];\nconst tempMatrix = new Matrix();\nclass FilterSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.defaultFilterStack = [{}];\n    this.texturePool = new RenderTexturePool();\n    this.statePool = [];\n    this.quad = new Quad();\n    this.quadUv = new QuadUv();\n    this.tempRect = new Rectangle();\n    this.activeState = {};\n    this.globalUniforms = new UniformGroup({\n      outputFrame: new Rectangle(),\n      inputSize: new Float32Array(4),\n      inputPixel: new Float32Array(4),\n      inputClamp: new Float32Array(4),\n      resolution: 1,\n      filterArea: new Float32Array(4),\n      filterClamp: new Float32Array(4)\n    }, true);\n    this.forceClear = false;\n    this.useMaxPadding = false;\n  }\n  init() {\n    this.texturePool.setScreenSize(this.renderer.view);\n  }\n  push(target, filters) {\n    const renderer = this.renderer;\n    const filterStack = this.defaultFilterStack;\n    const state = this.statePool.pop() || new FilterState();\n    const renderTextureSystem = this.renderer.renderTexture;\n    let resolution = filters[0].resolution;\n    let multisample = filters[0].multisample;\n    let padding = filters[0].padding;\n    let autoFit = filters[0].autoFit;\n    let legacy = filters[0].legacy ?? true;\n    for (let i = 1; i < filters.length; i++) {\n      const filter = filters[i];\n      resolution = Math.min(resolution, filter.resolution);\n      multisample = Math.min(multisample, filter.multisample);\n      padding = this.useMaxPadding ? Math.max(padding, filter.padding) : padding + filter.padding;\n      autoFit = autoFit && filter.autoFit;\n      legacy = legacy || (filter.legacy ?? true);\n    }\n    if (filterStack.length === 1) {\n      this.defaultFilterStack[0].renderTexture = renderTextureSystem.current;\n    }\n    filterStack.push(state);\n    state.resolution = resolution;\n    state.multisample = multisample;\n    state.legacy = legacy;\n    state.target = target;\n    state.sourceFrame.copyFrom(target.filterArea || target.getBounds(true));\n    state.sourceFrame.pad(padding);\n    const sourceFrameProjected = this.tempRect.copyFrom(renderTextureSystem.sourceFrame);\n    if (renderer.projection.transform) {\n      this.transformAABB(tempMatrix.copyFrom(renderer.projection.transform).invert(), sourceFrameProjected);\n    }\n    if (autoFit) {\n      state.sourceFrame.fit(sourceFrameProjected);\n      if (state.sourceFrame.width <= 0 || state.sourceFrame.height <= 0) {\n        state.sourceFrame.width = 0;\n        state.sourceFrame.height = 0;\n      }\n    } else if (!state.sourceFrame.intersects(sourceFrameProjected)) {\n      state.sourceFrame.width = 0;\n      state.sourceFrame.height = 0;\n    }\n    this.roundFrame(state.sourceFrame, renderTextureSystem.current ? renderTextureSystem.current.resolution : renderer.resolution, renderTextureSystem.sourceFrame, renderTextureSystem.destinationFrame, renderer.projection.transform);\n    state.renderTexture = this.getOptimalFilterTexture(state.sourceFrame.width, state.sourceFrame.height, resolution, multisample);\n    state.filters = filters;\n    state.destinationFrame.width = state.renderTexture.width;\n    state.destinationFrame.height = state.renderTexture.height;\n    const destinationFrame = this.tempRect;\n    destinationFrame.x = 0;\n    destinationFrame.y = 0;\n    destinationFrame.width = state.sourceFrame.width;\n    destinationFrame.height = state.sourceFrame.height;\n    state.renderTexture.filterFrame = state.sourceFrame;\n    state.bindingSourceFrame.copyFrom(renderTextureSystem.sourceFrame);\n    state.bindingDestinationFrame.copyFrom(renderTextureSystem.destinationFrame);\n    state.transform = renderer.projection.transform;\n    renderer.projection.transform = null;\n    renderTextureSystem.bind(state.renderTexture, state.sourceFrame, destinationFrame);\n    renderer.framebuffer.clear(0, 0, 0, 0);\n  }\n  pop() {\n    const filterStack = this.defaultFilterStack;\n    const state = filterStack.pop();\n    const filters = state.filters;\n    this.activeState = state;\n    const globalUniforms = this.globalUniforms.uniforms;\n    globalUniforms.outputFrame = state.sourceFrame;\n    globalUniforms.resolution = state.resolution;\n    const inputSize = globalUniforms.inputSize;\n    const inputPixel = globalUniforms.inputPixel;\n    const inputClamp = globalUniforms.inputClamp;\n    inputSize[0] = state.destinationFrame.width;\n    inputSize[1] = state.destinationFrame.height;\n    inputSize[2] = 1 / inputSize[0];\n    inputSize[3] = 1 / inputSize[1];\n    inputPixel[0] = Math.round(inputSize[0] * state.resolution);\n    inputPixel[1] = Math.round(inputSize[1] * state.resolution);\n    inputPixel[2] = 1 / inputPixel[0];\n    inputPixel[3] = 1 / inputPixel[1];\n    inputClamp[0] = 0.5 * inputPixel[2];\n    inputClamp[1] = 0.5 * inputPixel[3];\n    inputClamp[2] = state.sourceFrame.width * inputSize[2] - 0.5 * inputPixel[2];\n    inputClamp[3] = state.sourceFrame.height * inputSize[3] - 0.5 * inputPixel[3];\n    if (state.legacy) {\n      const filterArea = globalUniforms.filterArea;\n      filterArea[0] = state.destinationFrame.width;\n      filterArea[1] = state.destinationFrame.height;\n      filterArea[2] = state.sourceFrame.x;\n      filterArea[3] = state.sourceFrame.y;\n      globalUniforms.filterClamp = globalUniforms.inputClamp;\n    }\n    this.globalUniforms.update();\n    const lastState = filterStack[filterStack.length - 1];\n    this.renderer.framebuffer.blit();\n    if (filters.length === 1) {\n      filters[0].apply(this, state.renderTexture, lastState.renderTexture, CLEAR_MODES.BLEND, state);\n      this.returnFilterTexture(state.renderTexture);\n    } else {\n      let flip = state.renderTexture;\n      let flop = this.getOptimalFilterTexture(flip.width, flip.height, state.resolution);\n      flop.filterFrame = flip.filterFrame;\n      let i = 0;\n      for (i = 0; i < filters.length - 1; ++i) {\n        if (i === 1 && state.multisample > 1) {\n          flop = this.getOptimalFilterTexture(flip.width, flip.height, state.resolution);\n          flop.filterFrame = flip.filterFrame;\n        }\n        filters[i].apply(this, flip, flop, CLEAR_MODES.CLEAR, state);\n        const t = flip;\n        flip = flop;\n        flop = t;\n      }\n      filters[i].apply(this, flip, lastState.renderTexture, CLEAR_MODES.BLEND, state);\n      if (i > 1 && state.multisample > 1) {\n        this.returnFilterTexture(state.renderTexture);\n      }\n      this.returnFilterTexture(flip);\n      this.returnFilterTexture(flop);\n    }\n    state.clear();\n    this.statePool.push(state);\n  }\n  bindAndClear(filterTexture, clearMode = CLEAR_MODES.CLEAR) {\n    const {\n      renderTexture: renderTextureSystem,\n      state: stateSystem\n    } = this.renderer;\n    if (filterTexture === this.defaultFilterStack[this.defaultFilterStack.length - 1].renderTexture) {\n      this.renderer.projection.transform = this.activeState.transform;\n    } else {\n      this.renderer.projection.transform = null;\n    }\n    if (filterTexture?.filterFrame) {\n      const destinationFrame = this.tempRect;\n      destinationFrame.x = 0;\n      destinationFrame.y = 0;\n      destinationFrame.width = filterTexture.filterFrame.width;\n      destinationFrame.height = filterTexture.filterFrame.height;\n      renderTextureSystem.bind(filterTexture, filterTexture.filterFrame, destinationFrame);\n    } else if (filterTexture !== this.defaultFilterStack[this.defaultFilterStack.length - 1].renderTexture) {\n      renderTextureSystem.bind(filterTexture);\n    } else {\n      this.renderer.renderTexture.bind(filterTexture, this.activeState.bindingSourceFrame, this.activeState.bindingDestinationFrame);\n    }\n    const autoClear = stateSystem.stateId & 1 || this.forceClear;\n    if (clearMode === CLEAR_MODES.CLEAR || clearMode === CLEAR_MODES.BLIT && autoClear) {\n      this.renderer.framebuffer.clear(0, 0, 0, 0);\n    }\n  }\n  applyFilter(filter, input, output, clearMode) {\n    const renderer = this.renderer;\n    renderer.state.set(filter.state);\n    this.bindAndClear(output, clearMode);\n    filter.uniforms.uSampler = input;\n    filter.uniforms.filterGlobals = this.globalUniforms;\n    renderer.shader.bind(filter);\n    filter.legacy = !!filter.program.attributeData.aTextureCoord;\n    if (filter.legacy) {\n      this.quadUv.map(input._frame, input.filterFrame);\n      renderer.geometry.bind(this.quadUv);\n      renderer.geometry.draw(DRAW_MODES.TRIANGLES);\n    } else {\n      renderer.geometry.bind(this.quad);\n      renderer.geometry.draw(DRAW_MODES.TRIANGLE_STRIP);\n    }\n  }\n  calculateSpriteMatrix(outputMatrix, sprite) {\n    const { sourceFrame, destinationFrame } = this.activeState;\n    const { orig } = sprite._texture;\n    const mappedMatrix = outputMatrix.set(destinationFrame.width, 0, 0, destinationFrame.height, sourceFrame.x, sourceFrame.y);\n    const worldTransform = sprite.worldTransform.copyTo(Matrix.TEMP_MATRIX);\n    worldTransform.invert();\n    mappedMatrix.prepend(worldTransform);\n    mappedMatrix.scale(1 / orig.width, 1 / orig.height);\n    mappedMatrix.translate(sprite.anchor.x, sprite.anchor.y);\n    return mappedMatrix;\n  }\n  destroy() {\n    this.renderer = null;\n    this.texturePool.clear(false);\n  }\n  getOptimalFilterTexture(minWidth, minHeight, resolution = 1, multisample = MSAA_QUALITY.NONE) {\n    return this.texturePool.getOptimalTexture(minWidth, minHeight, resolution, multisample);\n  }\n  getFilterTexture(input, resolution, multisample) {\n    if (typeof input === \"number\") {\n      const swap = input;\n      input = resolution;\n      resolution = swap;\n    }\n    input = input || this.activeState.renderTexture;\n    const filterTexture = this.texturePool.getOptimalTexture(input.width, input.height, resolution || input.resolution, multisample || MSAA_QUALITY.NONE);\n    filterTexture.filterFrame = input.filterFrame;\n    return filterTexture;\n  }\n  returnFilterTexture(renderTexture) {\n    this.texturePool.returnTexture(renderTexture);\n  }\n  emptyPool() {\n    this.texturePool.clear(true);\n  }\n  resize() {\n    this.texturePool.setScreenSize(this.renderer.view);\n  }\n  transformAABB(matrix, rect) {\n    const lt = tempPoints[0];\n    const lb = tempPoints[1];\n    const rt = tempPoints[2];\n    const rb = tempPoints[3];\n    lt.set(rect.left, rect.top);\n    lb.set(rect.left, rect.bottom);\n    rt.set(rect.right, rect.top);\n    rb.set(rect.right, rect.bottom);\n    matrix.apply(lt, lt);\n    matrix.apply(lb, lb);\n    matrix.apply(rt, rt);\n    matrix.apply(rb, rb);\n    const x0 = Math.min(lt.x, lb.x, rt.x, rb.x);\n    const y0 = Math.min(lt.y, lb.y, rt.y, rb.y);\n    const x1 = Math.max(lt.x, lb.x, rt.x, rb.x);\n    const y1 = Math.max(lt.y, lb.y, rt.y, rb.y);\n    rect.x = x0;\n    rect.y = y0;\n    rect.width = x1 - x0;\n    rect.height = y1 - y0;\n  }\n  roundFrame(frame, resolution, bindingSourceFrame, bindingDestinationFrame, transform) {\n    if (frame.width <= 0 || frame.height <= 0 || bindingSourceFrame.width <= 0 || bindingSourceFrame.height <= 0) {\n      return;\n    }\n    if (transform) {\n      const { a, b, c, d } = transform;\n      if ((Math.abs(b) > 1e-4 || Math.abs(c) > 1e-4) && (Math.abs(a) > 1e-4 || Math.abs(d) > 1e-4)) {\n        return;\n      }\n    }\n    transform = transform ? tempMatrix.copyFrom(transform) : tempMatrix.identity();\n    transform.translate(-bindingSourceFrame.x, -bindingSourceFrame.y).scale(bindingDestinationFrame.width / bindingSourceFrame.width, bindingDestinationFrame.height / bindingSourceFrame.height).translate(bindingDestinationFrame.x, bindingDestinationFrame.y);\n    this.transformAABB(transform, frame);\n    frame.ceil(resolution);\n    this.transformAABB(transform.invert(), frame);\n  }\n}\nFilterSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"filter\"\n};\nextensions.add(FilterSystem);\n\nexport { FilterSystem };\n//# sourceMappingURL=FilterSystem.mjs.map\n","import { MSAA_QUALITY } from '@pixi/constants';\n\nclass GLFramebuffer {\n  constructor(framebuffer) {\n    this.framebuffer = framebuffer;\n    this.stencil = null;\n    this.dirtyId = -1;\n    this.dirtyFormat = -1;\n    this.dirtySize = -1;\n    this.multisample = MSAA_QUALITY.NONE;\n    this.msaaBuffer = null;\n    this.blitFramebuffer = null;\n    this.mipLevel = 0;\n  }\n}\n\nexport { GLFramebuffer };\n//# sourceMappingURL=GLFramebuffer.mjs.map\n","import { ENV, BUFFER_BITS, MSAA_QUALITY } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { Rectangle } from '@pixi/math';\nimport { settings } from '@pixi/settings';\nimport { Framebuffer } from './Framebuffer.mjs';\nimport { GLFramebuffer } from './GLFramebuffer.mjs';\n\nconst tempRectangle = new Rectangle();\nclass FramebufferSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.managedFramebuffers = [];\n    this.unknownFramebuffer = new Framebuffer(10, 10);\n    this.msaaSamples = null;\n  }\n  contextChange() {\n    this.disposeAll(true);\n    const gl = this.gl = this.renderer.gl;\n    this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n    this.current = this.unknownFramebuffer;\n    this.viewport = new Rectangle();\n    this.hasMRT = true;\n    this.writeDepthTexture = true;\n    if (this.renderer.context.webGLVersion === 1) {\n      let nativeDrawBuffersExtension = this.renderer.context.extensions.drawBuffers;\n      let nativeDepthTextureExtension = this.renderer.context.extensions.depthTexture;\n      if (settings.PREFER_ENV === ENV.WEBGL_LEGACY) {\n        nativeDrawBuffersExtension = null;\n        nativeDepthTextureExtension = null;\n      }\n      if (nativeDrawBuffersExtension) {\n        gl.drawBuffers = (activeTextures) => nativeDrawBuffersExtension.drawBuffersWEBGL(activeTextures);\n      } else {\n        this.hasMRT = false;\n        gl.drawBuffers = () => {\n        };\n      }\n      if (!nativeDepthTextureExtension) {\n        this.writeDepthTexture = false;\n      }\n    } else {\n      this.msaaSamples = gl.getInternalformatParameter(gl.RENDERBUFFER, gl.RGBA8, gl.SAMPLES);\n    }\n  }\n  bind(framebuffer, frame, mipLevel = 0) {\n    const { gl } = this;\n    if (framebuffer) {\n      const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(framebuffer);\n      if (this.current !== framebuffer) {\n        this.current = framebuffer;\n        gl.bindFramebuffer(gl.FRAMEBUFFER, fbo.framebuffer);\n      }\n      if (fbo.mipLevel !== mipLevel) {\n        framebuffer.dirtyId++;\n        framebuffer.dirtyFormat++;\n        fbo.mipLevel = mipLevel;\n      }\n      if (fbo.dirtyId !== framebuffer.dirtyId) {\n        fbo.dirtyId = framebuffer.dirtyId;\n        if (fbo.dirtyFormat !== framebuffer.dirtyFormat) {\n          fbo.dirtyFormat = framebuffer.dirtyFormat;\n          fbo.dirtySize = framebuffer.dirtySize;\n          this.updateFramebuffer(framebuffer, mipLevel);\n        } else if (fbo.dirtySize !== framebuffer.dirtySize) {\n          fbo.dirtySize = framebuffer.dirtySize;\n          this.resizeFramebuffer(framebuffer);\n        }\n      }\n      for (let i = 0; i < framebuffer.colorTextures.length; i++) {\n        const tex = framebuffer.colorTextures[i];\n        this.renderer.texture.unbind(tex.parentTextureArray || tex);\n      }\n      if (framebuffer.depthTexture) {\n        this.renderer.texture.unbind(framebuffer.depthTexture);\n      }\n      if (frame) {\n        const mipWidth = frame.width >> mipLevel;\n        const mipHeight = frame.height >> mipLevel;\n        const scale = mipWidth / frame.width;\n        this.setViewport(frame.x * scale, frame.y * scale, mipWidth, mipHeight);\n      } else {\n        const mipWidth = framebuffer.width >> mipLevel;\n        const mipHeight = framebuffer.height >> mipLevel;\n        this.setViewport(0, 0, mipWidth, mipHeight);\n      }\n    } else {\n      if (this.current) {\n        this.current = null;\n        gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n      }\n      if (frame) {\n        this.setViewport(frame.x, frame.y, frame.width, frame.height);\n      } else {\n        this.setViewport(0, 0, this.renderer.width, this.renderer.height);\n      }\n    }\n  }\n  setViewport(x, y, width, height) {\n    const v = this.viewport;\n    x = Math.round(x);\n    y = Math.round(y);\n    width = Math.round(width);\n    height = Math.round(height);\n    if (v.width !== width || v.height !== height || v.x !== x || v.y !== y) {\n      v.x = x;\n      v.y = y;\n      v.width = width;\n      v.height = height;\n      this.gl.viewport(x, y, width, height);\n    }\n  }\n  get size() {\n    if (this.current) {\n      return { x: 0, y: 0, width: this.current.width, height: this.current.height };\n    }\n    return { x: 0, y: 0, width: this.renderer.width, height: this.renderer.height };\n  }\n  clear(r, g, b, a, mask = BUFFER_BITS.COLOR | BUFFER_BITS.DEPTH) {\n    const { gl } = this;\n    gl.clearColor(r, g, b, a);\n    gl.clear(mask);\n  }\n  initFramebuffer(framebuffer) {\n    const { gl } = this;\n    const fbo = new GLFramebuffer(gl.createFramebuffer());\n    fbo.multisample = this.detectSamples(framebuffer.multisample);\n    framebuffer.glFramebuffers[this.CONTEXT_UID] = fbo;\n    this.managedFramebuffers.push(framebuffer);\n    framebuffer.disposeRunner.add(this);\n    return fbo;\n  }\n  resizeFramebuffer(framebuffer) {\n    const { gl } = this;\n    const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID];\n    if (fbo.stencil) {\n      gl.bindRenderbuffer(gl.RENDERBUFFER, fbo.stencil);\n      if (fbo.msaaBuffer) {\n        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, fbo.multisample, gl.DEPTH24_STENCIL8, framebuffer.width, framebuffer.height);\n      } else {\n        gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, framebuffer.width, framebuffer.height);\n      }\n    }\n    const colorTextures = framebuffer.colorTextures;\n    let count = colorTextures.length;\n    if (!gl.drawBuffers) {\n      count = Math.min(count, 1);\n    }\n    for (let i = 0; i < count; i++) {\n      const texture = colorTextures[i];\n      const parentTexture = texture.parentTextureArray || texture;\n      this.renderer.texture.bind(parentTexture, 0);\n      if (i === 0 && fbo.msaaBuffer) {\n        gl.bindRenderbuffer(gl.RENDERBUFFER, fbo.msaaBuffer);\n        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, fbo.multisample, parentTexture._glTextures[this.CONTEXT_UID].internalFormat, framebuffer.width, framebuffer.height);\n      }\n    }\n    if (framebuffer.depthTexture && this.writeDepthTexture) {\n      this.renderer.texture.bind(framebuffer.depthTexture, 0);\n    }\n  }\n  updateFramebuffer(framebuffer, mipLevel) {\n    const { gl } = this;\n    const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID];\n    const colorTextures = framebuffer.colorTextures;\n    let count = colorTextures.length;\n    if (!gl.drawBuffers) {\n      count = Math.min(count, 1);\n    }\n    if (fbo.multisample > 1 && this.canMultisampleFramebuffer(framebuffer)) {\n      fbo.msaaBuffer = fbo.msaaBuffer || gl.createRenderbuffer();\n    } else if (fbo.msaaBuffer) {\n      gl.deleteRenderbuffer(fbo.msaaBuffer);\n      fbo.msaaBuffer = null;\n      if (fbo.blitFramebuffer) {\n        fbo.blitFramebuffer.dispose();\n        fbo.blitFramebuffer = null;\n      }\n    }\n    const activeTextures = [];\n    for (let i = 0; i < count; i++) {\n      const texture = colorTextures[i];\n      const parentTexture = texture.parentTextureArray || texture;\n      this.renderer.texture.bind(parentTexture, 0);\n      if (i === 0 && fbo.msaaBuffer) {\n        gl.bindRenderbuffer(gl.RENDERBUFFER, fbo.msaaBuffer);\n        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, fbo.multisample, parentTexture._glTextures[this.CONTEXT_UID].internalFormat, framebuffer.width, framebuffer.height);\n        gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, fbo.msaaBuffer);\n      } else {\n        gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + i, texture.target, parentTexture._glTextures[this.CONTEXT_UID].texture, mipLevel);\n        activeTextures.push(gl.COLOR_ATTACHMENT0 + i);\n      }\n    }\n    if (activeTextures.length > 1) {\n      gl.drawBuffers(activeTextures);\n    }\n    if (framebuffer.depthTexture) {\n      const writeDepthTexture = this.writeDepthTexture;\n      if (writeDepthTexture) {\n        const depthTexture = framebuffer.depthTexture;\n        this.renderer.texture.bind(depthTexture, 0);\n        gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, depthTexture._glTextures[this.CONTEXT_UID].texture, mipLevel);\n      }\n    }\n    if ((framebuffer.stencil || framebuffer.depth) && !(framebuffer.depthTexture && this.writeDepthTexture)) {\n      fbo.stencil = fbo.stencil || gl.createRenderbuffer();\n      gl.bindRenderbuffer(gl.RENDERBUFFER, fbo.stencil);\n      if (fbo.msaaBuffer) {\n        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, fbo.multisample, gl.DEPTH24_STENCIL8, framebuffer.width, framebuffer.height);\n      } else {\n        gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, framebuffer.width, framebuffer.height);\n      }\n      gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, fbo.stencil);\n    } else if (fbo.stencil) {\n      gl.deleteRenderbuffer(fbo.stencil);\n      fbo.stencil = null;\n    }\n  }\n  canMultisampleFramebuffer(framebuffer) {\n    return this.renderer.context.webGLVersion !== 1 && framebuffer.colorTextures.length <= 1 && !framebuffer.depthTexture;\n  }\n  detectSamples(samples) {\n    const { msaaSamples } = this;\n    let res = MSAA_QUALITY.NONE;\n    if (samples <= 1 || msaaSamples === null) {\n      return res;\n    }\n    for (let i = 0; i < msaaSamples.length; i++) {\n      if (msaaSamples[i] <= samples) {\n        res = msaaSamples[i];\n        break;\n      }\n    }\n    if (res === 1) {\n      res = MSAA_QUALITY.NONE;\n    }\n    return res;\n  }\n  blit(framebuffer, sourcePixels, destPixels) {\n    const { current, renderer, gl, CONTEXT_UID } = this;\n    if (renderer.context.webGLVersion !== 2) {\n      return;\n    }\n    if (!current) {\n      return;\n    }\n    const fbo = current.glFramebuffers[CONTEXT_UID];\n    if (!fbo) {\n      return;\n    }\n    if (!framebuffer) {\n      if (!fbo.msaaBuffer) {\n        return;\n      }\n      const colorTexture = current.colorTextures[0];\n      if (!colorTexture) {\n        return;\n      }\n      if (!fbo.blitFramebuffer) {\n        fbo.blitFramebuffer = new Framebuffer(current.width, current.height);\n        fbo.blitFramebuffer.addColorTexture(0, colorTexture);\n      }\n      framebuffer = fbo.blitFramebuffer;\n      if (framebuffer.colorTextures[0] !== colorTexture) {\n        framebuffer.colorTextures[0] = colorTexture;\n        framebuffer.dirtyId++;\n        framebuffer.dirtyFormat++;\n      }\n      if (framebuffer.width !== current.width || framebuffer.height !== current.height) {\n        framebuffer.width = current.width;\n        framebuffer.height = current.height;\n        framebuffer.dirtyId++;\n        framebuffer.dirtySize++;\n      }\n    }\n    if (!sourcePixels) {\n      sourcePixels = tempRectangle;\n      sourcePixels.width = current.width;\n      sourcePixels.height = current.height;\n    }\n    if (!destPixels) {\n      destPixels = sourcePixels;\n    }\n    const sameSize = sourcePixels.width === destPixels.width && sourcePixels.height === destPixels.height;\n    this.bind(framebuffer);\n    gl.bindFramebuffer(gl.READ_FRAMEBUFFER, fbo.framebuffer);\n    gl.blitFramebuffer(sourcePixels.left, sourcePixels.top, sourcePixels.right, sourcePixels.bottom, destPixels.left, destPixels.top, destPixels.right, destPixels.bottom, gl.COLOR_BUFFER_BIT, sameSize ? gl.NEAREST : gl.LINEAR);\n  }\n  disposeFramebuffer(framebuffer, contextLost) {\n    const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID];\n    const gl = this.gl;\n    if (!fbo) {\n      return;\n    }\n    delete framebuffer.glFramebuffers[this.CONTEXT_UID];\n    const index = this.managedFramebuffers.indexOf(framebuffer);\n    if (index >= 0) {\n      this.managedFramebuffers.splice(index, 1);\n    }\n    framebuffer.disposeRunner.remove(this);\n    if (!contextLost) {\n      gl.deleteFramebuffer(fbo.framebuffer);\n      if (fbo.msaaBuffer) {\n        gl.deleteRenderbuffer(fbo.msaaBuffer);\n      }\n      if (fbo.stencil) {\n        gl.deleteRenderbuffer(fbo.stencil);\n      }\n    }\n    if (fbo.blitFramebuffer) {\n      fbo.blitFramebuffer.dispose();\n    }\n  }\n  disposeAll(contextLost) {\n    const list = this.managedFramebuffers;\n    this.managedFramebuffers = [];\n    for (let i = 0; i < list.length; i++) {\n      this.disposeFramebuffer(list[i], contextLost);\n    }\n  }\n  forceStencil() {\n    const framebuffer = this.current;\n    if (!framebuffer) {\n      return;\n    }\n    const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID];\n    if (!fbo || fbo.stencil) {\n      return;\n    }\n    framebuffer.stencil = true;\n    const w = framebuffer.width;\n    const h = framebuffer.height;\n    const gl = this.gl;\n    const stencil = gl.createRenderbuffer();\n    gl.bindRenderbuffer(gl.RENDERBUFFER, stencil);\n    if (fbo.msaaBuffer) {\n      gl.renderbufferStorageMultisample(gl.RENDERBUFFER, fbo.multisample, gl.DEPTH24_STENCIL8, w, h);\n    } else {\n      gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, w, h);\n    }\n    fbo.stencil = stencil;\n    gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, stencil);\n  }\n  reset() {\n    this.current = this.unknownFramebuffer;\n    this.viewport = new Rectangle();\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nFramebufferSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"framebuffer\"\n};\nextensions.add(FramebufferSystem);\n\nexport { FramebufferSystem };\n//# sourceMappingURL=FramebufferSystem.mjs.map\n","import { ENV, BUFFER_TYPE } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { settings } from '@pixi/settings';\n\nconst byteSizeMap = { 5126: 4, 5123: 2, 5121: 1 };\nclass GeometrySystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this._activeGeometry = null;\n    this._activeVao = null;\n    this.hasVao = true;\n    this.hasInstance = true;\n    this.canUseUInt32ElementIndex = false;\n    this.managedGeometries = {};\n  }\n  contextChange() {\n    this.disposeAll(true);\n    const gl = this.gl = this.renderer.gl;\n    const context = this.renderer.context;\n    this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n    if (context.webGLVersion !== 2) {\n      let nativeVaoExtension = this.renderer.context.extensions.vertexArrayObject;\n      if (settings.PREFER_ENV === ENV.WEBGL_LEGACY) {\n        nativeVaoExtension = null;\n      }\n      if (nativeVaoExtension) {\n        gl.createVertexArray = () => nativeVaoExtension.createVertexArrayOES();\n        gl.bindVertexArray = (vao) => nativeVaoExtension.bindVertexArrayOES(vao);\n        gl.deleteVertexArray = (vao) => nativeVaoExtension.deleteVertexArrayOES(vao);\n      } else {\n        this.hasVao = false;\n        gl.createVertexArray = () => null;\n        gl.bindVertexArray = () => null;\n        gl.deleteVertexArray = () => null;\n      }\n    }\n    if (context.webGLVersion !== 2) {\n      const instanceExt = gl.getExtension(\"ANGLE_instanced_arrays\");\n      if (instanceExt) {\n        gl.vertexAttribDivisor = (a, b) => instanceExt.vertexAttribDivisorANGLE(a, b);\n        gl.drawElementsInstanced = (a, b, c, d, e) => instanceExt.drawElementsInstancedANGLE(a, b, c, d, e);\n        gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d);\n      } else {\n        this.hasInstance = false;\n      }\n    }\n    this.canUseUInt32ElementIndex = context.webGLVersion === 2 || !!context.extensions.uint32ElementIndex;\n  }\n  bind(geometry, shader) {\n    shader = shader || this.renderer.shader.shader;\n    const { gl } = this;\n    let vaos = geometry.glVertexArrayObjects[this.CONTEXT_UID];\n    let incRefCount = false;\n    if (!vaos) {\n      this.managedGeometries[geometry.id] = geometry;\n      geometry.disposeRunner.add(this);\n      geometry.glVertexArrayObjects[this.CONTEXT_UID] = vaos = {};\n      incRefCount = true;\n    }\n    const vao = vaos[shader.program.id] || this.initGeometryVao(geometry, shader, incRefCount);\n    this._activeGeometry = geometry;\n    if (this._activeVao !== vao) {\n      this._activeVao = vao;\n      if (this.hasVao) {\n        gl.bindVertexArray(vao);\n      } else {\n        this.activateVao(geometry, shader.program);\n      }\n    }\n    this.updateBuffers();\n  }\n  reset() {\n    this.unbind();\n  }\n  updateBuffers() {\n    const geometry = this._activeGeometry;\n    const bufferSystem = this.renderer.buffer;\n    for (let i = 0; i < geometry.buffers.length; i++) {\n      const buffer = geometry.buffers[i];\n      bufferSystem.update(buffer);\n    }\n  }\n  checkCompatibility(geometry, program) {\n    const geometryAttributes = geometry.attributes;\n    const shaderAttributes = program.attributeData;\n    for (const j in shaderAttributes) {\n      if (!geometryAttributes[j]) {\n        throw new Error(`shader and geometry incompatible, geometry missing the \"${j}\" attribute`);\n      }\n    }\n  }\n  getSignature(geometry, program) {\n    const attribs = geometry.attributes;\n    const shaderAttributes = program.attributeData;\n    const strings = [\"g\", geometry.id];\n    for (const i in attribs) {\n      if (shaderAttributes[i]) {\n        strings.push(i, shaderAttributes[i].location);\n      }\n    }\n    return strings.join(\"-\");\n  }\n  initGeometryVao(geometry, shader, incRefCount = true) {\n    const gl = this.gl;\n    const CONTEXT_UID = this.CONTEXT_UID;\n    const bufferSystem = this.renderer.buffer;\n    const program = shader.program;\n    if (!program.glPrograms[CONTEXT_UID]) {\n      this.renderer.shader.generateProgram(shader);\n    }\n    this.checkCompatibility(geometry, program);\n    const signature = this.getSignature(geometry, program);\n    const vaoObjectHash = geometry.glVertexArrayObjects[this.CONTEXT_UID];\n    let vao = vaoObjectHash[signature];\n    if (vao) {\n      vaoObjectHash[program.id] = vao;\n      return vao;\n    }\n    const buffers = geometry.buffers;\n    const attributes = geometry.attributes;\n    const tempStride = {};\n    const tempStart = {};\n    for (const j in buffers) {\n      tempStride[j] = 0;\n      tempStart[j] = 0;\n    }\n    for (const j in attributes) {\n      if (!attributes[j].size && program.attributeData[j]) {\n        attributes[j].size = program.attributeData[j].size;\n      } else if (!attributes[j].size) {\n        console.warn(`PIXI Geometry attribute '${j}' size cannot be determined (likely the bound shader does not have the attribute)`);\n      }\n      tempStride[attributes[j].buffer] += attributes[j].size * byteSizeMap[attributes[j].type];\n    }\n    for (const j in attributes) {\n      const attribute = attributes[j];\n      const attribSize = attribute.size;\n      if (attribute.stride === void 0) {\n        if (tempStride[attribute.buffer] === attribSize * byteSizeMap[attribute.type]) {\n          attribute.stride = 0;\n        } else {\n          attribute.stride = tempStride[attribute.buffer];\n        }\n      }\n      if (attribute.start === void 0) {\n        attribute.start = tempStart[attribute.buffer];\n        tempStart[attribute.buffer] += attribSize * byteSizeMap[attribute.type];\n      }\n    }\n    vao = gl.createVertexArray();\n    gl.bindVertexArray(vao);\n    for (let i = 0; i < buffers.length; i++) {\n      const buffer = buffers[i];\n      bufferSystem.bind(buffer);\n      if (incRefCount) {\n        buffer._glBuffers[CONTEXT_UID].refCount++;\n      }\n    }\n    this.activateVao(geometry, program);\n    vaoObjectHash[program.id] = vao;\n    vaoObjectHash[signature] = vao;\n    gl.bindVertexArray(null);\n    bufferSystem.unbind(BUFFER_TYPE.ARRAY_BUFFER);\n    return vao;\n  }\n  disposeGeometry(geometry, contextLost) {\n    if (!this.managedGeometries[geometry.id]) {\n      return;\n    }\n    delete this.managedGeometries[geometry.id];\n    const vaos = geometry.glVertexArrayObjects[this.CONTEXT_UID];\n    const gl = this.gl;\n    const buffers = geometry.buffers;\n    const bufferSystem = this.renderer?.buffer;\n    geometry.disposeRunner.remove(this);\n    if (!vaos) {\n      return;\n    }\n    if (bufferSystem) {\n      for (let i = 0; i < buffers.length; i++) {\n        const buf = buffers[i]._glBuffers[this.CONTEXT_UID];\n        if (buf) {\n          buf.refCount--;\n          if (buf.refCount === 0 && !contextLost) {\n            bufferSystem.dispose(buffers[i], contextLost);\n          }\n        }\n      }\n    }\n    if (!contextLost) {\n      for (const vaoId in vaos) {\n        if (vaoId[0] === \"g\") {\n          const vao = vaos[vaoId];\n          if (this._activeVao === vao) {\n            this.unbind();\n          }\n          gl.deleteVertexArray(vao);\n        }\n      }\n    }\n    delete geometry.glVertexArrayObjects[this.CONTEXT_UID];\n  }\n  disposeAll(contextLost) {\n    const all = Object.keys(this.managedGeometries);\n    for (let i = 0; i < all.length; i++) {\n      this.disposeGeometry(this.managedGeometries[all[i]], contextLost);\n    }\n  }\n  activateVao(geometry, program) {\n    const gl = this.gl;\n    const CONTEXT_UID = this.CONTEXT_UID;\n    const bufferSystem = this.renderer.buffer;\n    const buffers = geometry.buffers;\n    const attributes = geometry.attributes;\n    if (geometry.indexBuffer) {\n      bufferSystem.bind(geometry.indexBuffer);\n    }\n    let lastBuffer = null;\n    for (const j in attributes) {\n      const attribute = attributes[j];\n      const buffer = buffers[attribute.buffer];\n      const glBuffer = buffer._glBuffers[CONTEXT_UID];\n      if (program.attributeData[j]) {\n        if (lastBuffer !== glBuffer) {\n          bufferSystem.bind(buffer);\n          lastBuffer = glBuffer;\n        }\n        const location = program.attributeData[j].location;\n        gl.enableVertexAttribArray(location);\n        gl.vertexAttribPointer(location, attribute.size, attribute.type || gl.FLOAT, attribute.normalized, attribute.stride, attribute.start);\n        if (attribute.instance) {\n          if (this.hasInstance) {\n            gl.vertexAttribDivisor(location, attribute.divisor);\n          } else {\n            throw new Error(\"geometry error, GPU Instancing is not supported on this device\");\n          }\n        }\n      }\n    }\n  }\n  draw(type, size, start, instanceCount) {\n    const { gl } = this;\n    const geometry = this._activeGeometry;\n    if (geometry.indexBuffer) {\n      const byteSize = geometry.indexBuffer.data.BYTES_PER_ELEMENT;\n      const glType = byteSize === 2 ? gl.UNSIGNED_SHORT : gl.UNSIGNED_INT;\n      if (byteSize === 2 || byteSize === 4 && this.canUseUInt32ElementIndex) {\n        if (geometry.instanced) {\n          gl.drawElementsInstanced(type, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize, instanceCount || 1);\n        } else {\n          gl.drawElements(type, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize);\n        }\n      } else {\n        console.warn(\"unsupported index buffer type: uint32\");\n      }\n    } else if (geometry.instanced) {\n      gl.drawArraysInstanced(type, start, size || geometry.getSize(), instanceCount || 1);\n    } else {\n      gl.drawArrays(type, start, size || geometry.getSize());\n    }\n    return this;\n  }\n  unbind() {\n    this.gl.bindVertexArray(null);\n    this._activeVao = null;\n    this._activeGeometry = null;\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nGeometrySystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"geometry\"\n};\nextensions.add(GeometrySystem);\n\nexport { GeometrySystem };\n//# sourceMappingURL=GeometrySystem.mjs.map\n","import { Matrix } from '@pixi/math';\n\nconst tempMat = new Matrix();\nclass TextureMatrix {\n  constructor(texture, clampMargin) {\n    this._texture = texture;\n    this.mapCoord = new Matrix();\n    this.uClampFrame = new Float32Array(4);\n    this.uClampOffset = new Float32Array(2);\n    this._textureID = -1;\n    this._updateID = 0;\n    this.clampOffset = 0;\n    this.clampMargin = typeof clampMargin === \"undefined\" ? 0.5 : clampMargin;\n    this.isSimple = false;\n  }\n  get texture() {\n    return this._texture;\n  }\n  set texture(value) {\n    this._texture = value;\n    this._textureID = -1;\n  }\n  multiplyUvs(uvs, out) {\n    if (out === void 0) {\n      out = uvs;\n    }\n    const mat = this.mapCoord;\n    for (let i = 0; i < uvs.length; i += 2) {\n      const x = uvs[i];\n      const y = uvs[i + 1];\n      out[i] = x * mat.a + y * mat.c + mat.tx;\n      out[i + 1] = x * mat.b + y * mat.d + mat.ty;\n    }\n    return out;\n  }\n  update(forceUpdate) {\n    const tex = this._texture;\n    if (!tex || !tex.valid) {\n      return false;\n    }\n    if (!forceUpdate && this._textureID === tex._updateID) {\n      return false;\n    }\n    this._textureID = tex._updateID;\n    this._updateID++;\n    const uvs = tex._uvs;\n    this.mapCoord.set(uvs.x1 - uvs.x0, uvs.y1 - uvs.y0, uvs.x3 - uvs.x0, uvs.y3 - uvs.y0, uvs.x0, uvs.y0);\n    const orig = tex.orig;\n    const trim = tex.trim;\n    if (trim) {\n      tempMat.set(orig.width / trim.width, 0, 0, orig.height / trim.height, -trim.x / trim.width, -trim.y / trim.height);\n      this.mapCoord.append(tempMat);\n    }\n    const texBase = tex.baseTexture;\n    const frame = this.uClampFrame;\n    const margin = this.clampMargin / texBase.resolution;\n    const offset = this.clampOffset;\n    frame[0] = (tex._frame.x + margin + offset) / texBase.width;\n    frame[1] = (tex._frame.y + margin + offset) / texBase.height;\n    frame[2] = (tex._frame.x + tex._frame.width - margin + offset) / texBase.width;\n    frame[3] = (tex._frame.y + tex._frame.height - margin + offset) / texBase.height;\n    this.uClampOffset[0] = offset / texBase.realWidth;\n    this.uClampOffset[1] = offset / texBase.realHeight;\n    this.isSimple = tex._frame.width === texBase.width && tex._frame.height === texBase.height && tex.rotate === 0;\n    return true;\n  }\n}\n\nexport { TextureMatrix };\n//# sourceMappingURL=TextureMatrix.mjs.map\n","var fragment = \"varying vec2 vMaskCoord;\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform sampler2D mask;\\nuniform float alpha;\\nuniform float npmAlpha;\\nuniform vec4 maskClamp;\\n\\nvoid main(void)\\n{\\n    float clip = step(3.5,\\n        step(maskClamp.x, vMaskCoord.x) +\\n        step(maskClamp.y, vMaskCoord.y) +\\n        step(vMaskCoord.x, maskClamp.z) +\\n        step(vMaskCoord.y, maskClamp.w));\\n\\n    vec4 original = texture2D(uSampler, vTextureCoord);\\n    vec4 masky = texture2D(mask, vMaskCoord);\\n    float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\\n\\n    original *= (alphaMul * masky.r * alpha * clip);\\n\\n    gl_FragColor = original;\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=spriteMaskFilter2.mjs.map\n","var vertex = \"attribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 otherMatrix;\\n\\nvarying vec2 vMaskCoord;\\nvarying vec2 vTextureCoord;\\n\\nvoid main(void)\\n{\\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = aTextureCoord;\\n    vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;\\n}\\n\";\n\nexport { vertex as default };\n//# sourceMappingURL=spriteMaskFilter3.mjs.map\n","import { Matrix } from '@pixi/math';\nimport { TextureMatrix } from '../../textures/TextureMatrix.mjs';\nimport { Filter } from '../Filter.mjs';\nimport fragment from './spriteMaskFilter2.mjs';\nimport vertex from './spriteMaskFilter3.mjs';\n\nclass SpriteMaskFilter extends Filter {\n  constructor(vertexSrc, fragmentSrc, uniforms) {\n    let sprite = null;\n    if (typeof vertexSrc !== \"string\" && fragmentSrc === void 0 && uniforms === void 0) {\n      sprite = vertexSrc;\n      vertexSrc = void 0;\n      fragmentSrc = void 0;\n      uniforms = void 0;\n    }\n    super(vertexSrc || vertex, fragmentSrc || fragment, uniforms);\n    this.maskSprite = sprite;\n    this.maskMatrix = new Matrix();\n  }\n  get maskSprite() {\n    return this._maskSprite;\n  }\n  set maskSprite(value) {\n    this._maskSprite = value;\n    if (this._maskSprite) {\n      this._maskSprite.renderable = false;\n    }\n  }\n  apply(filterManager, input, output, clearMode) {\n    const maskSprite = this._maskSprite;\n    const tex = maskSprite._texture;\n    if (!tex.valid) {\n      return;\n    }\n    if (!tex.uvMatrix) {\n      tex.uvMatrix = new TextureMatrix(tex, 0);\n    }\n    tex.uvMatrix.update();\n    this.uniforms.npmAlpha = tex.baseTexture.alphaMode ? 0 : 1;\n    this.uniforms.mask = tex;\n    this.uniforms.otherMatrix = filterManager.calculateSpriteMatrix(this.maskMatrix, maskSprite).prepend(tex.uvMatrix.mapCoord);\n    this.uniforms.alpha = maskSprite.worldAlpha;\n    this.uniforms.maskClamp = tex.uvMatrix.uClampFrame;\n    filterManager.applyFilter(this, input, output, clearMode);\n  }\n}\n\nexport { SpriteMaskFilter };\n//# sourceMappingURL=SpriteMaskFilter.mjs.map\n","import { MASK_TYPES } from '@pixi/constants';\nimport { Filter } from '../filters/Filter.mjs';\n\nclass MaskData {\n  constructor(maskObject = null) {\n    this.type = MASK_TYPES.NONE;\n    this.autoDetect = true;\n    this.maskObject = maskObject || null;\n    this.pooled = false;\n    this.isMaskData = true;\n    this.resolution = null;\n    this.multisample = Filter.defaultMultisample;\n    this.enabled = true;\n    this.colorMask = 15;\n    this._filters = null;\n    this._stencilCounter = 0;\n    this._scissorCounter = 0;\n    this._scissorRect = null;\n    this._scissorRectLocal = null;\n    this._colorMask = 15;\n    this._target = null;\n  }\n  get filter() {\n    return this._filters ? this._filters[0] : null;\n  }\n  set filter(value) {\n    if (value) {\n      if (this._filters) {\n        this._filters[0] = value;\n      } else {\n        this._filters = [value];\n      }\n    } else {\n      this._filters = null;\n    }\n  }\n  reset() {\n    if (this.pooled) {\n      this.maskObject = null;\n      this.type = MASK_TYPES.NONE;\n      this.autoDetect = true;\n    }\n    this._target = null;\n    this._scissorRectLocal = null;\n  }\n  copyCountersOrReset(maskAbove) {\n    if (maskAbove) {\n      this._stencilCounter = maskAbove._stencilCounter;\n      this._scissorCounter = maskAbove._scissorCounter;\n      this._scissorRect = maskAbove._scissorRect;\n    } else {\n      this._stencilCounter = 0;\n      this._scissorCounter = 0;\n      this._scissorRect = null;\n    }\n  }\n}\n\nexport { MaskData };\n//# sourceMappingURL=MaskData.mjs.map\n","import { MASK_TYPES } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { SpriteMaskFilter } from '../filters/spriteMask/SpriteMaskFilter.mjs';\nimport { MaskData } from './MaskData.mjs';\n\nclass MaskSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.enableScissor = true;\n    this.alphaMaskPool = [];\n    this.maskDataPool = [];\n    this.maskStack = [];\n    this.alphaMaskIndex = 0;\n  }\n  setMaskStack(maskStack) {\n    this.maskStack = maskStack;\n    this.renderer.scissor.setMaskStack(maskStack);\n    this.renderer.stencil.setMaskStack(maskStack);\n  }\n  push(target, maskDataOrTarget) {\n    let maskData = maskDataOrTarget;\n    if (!maskData.isMaskData) {\n      const d = this.maskDataPool.pop() || new MaskData();\n      d.pooled = true;\n      d.maskObject = maskDataOrTarget;\n      maskData = d;\n    }\n    const maskAbove = this.maskStack.length !== 0 ? this.maskStack[this.maskStack.length - 1] : null;\n    maskData.copyCountersOrReset(maskAbove);\n    maskData._colorMask = maskAbove ? maskAbove._colorMask : 15;\n    if (maskData.autoDetect) {\n      this.detect(maskData);\n    }\n    maskData._target = target;\n    if (maskData.type !== MASK_TYPES.SPRITE) {\n      this.maskStack.push(maskData);\n    }\n    if (maskData.enabled) {\n      switch (maskData.type) {\n        case MASK_TYPES.SCISSOR:\n          this.renderer.scissor.push(maskData);\n          break;\n        case MASK_TYPES.STENCIL:\n          this.renderer.stencil.push(maskData);\n          break;\n        case MASK_TYPES.SPRITE:\n          maskData.copyCountersOrReset(null);\n          this.pushSpriteMask(maskData);\n          break;\n        case MASK_TYPES.COLOR:\n          this.pushColorMask(maskData);\n          break;\n        default:\n          break;\n      }\n    }\n    if (maskData.type === MASK_TYPES.SPRITE) {\n      this.maskStack.push(maskData);\n    }\n  }\n  pop(target) {\n    const maskData = this.maskStack.pop();\n    if (!maskData || maskData._target !== target) {\n      return;\n    }\n    if (maskData.enabled) {\n      switch (maskData.type) {\n        case MASK_TYPES.SCISSOR:\n          this.renderer.scissor.pop(maskData);\n          break;\n        case MASK_TYPES.STENCIL:\n          this.renderer.stencil.pop(maskData.maskObject);\n          break;\n        case MASK_TYPES.SPRITE:\n          this.popSpriteMask(maskData);\n          break;\n        case MASK_TYPES.COLOR:\n          this.popColorMask(maskData);\n          break;\n        default:\n          break;\n      }\n    }\n    maskData.reset();\n    if (maskData.pooled) {\n      this.maskDataPool.push(maskData);\n    }\n    if (this.maskStack.length !== 0) {\n      const maskCurrent = this.maskStack[this.maskStack.length - 1];\n      if (maskCurrent.type === MASK_TYPES.SPRITE && maskCurrent._filters) {\n        maskCurrent._filters[0].maskSprite = maskCurrent.maskObject;\n      }\n    }\n  }\n  detect(maskData) {\n    const maskObject = maskData.maskObject;\n    if (!maskObject) {\n      maskData.type = MASK_TYPES.COLOR;\n    } else if (maskObject.isSprite) {\n      maskData.type = MASK_TYPES.SPRITE;\n    } else if (this.enableScissor && this.renderer.scissor.testScissor(maskData)) {\n      maskData.type = MASK_TYPES.SCISSOR;\n    } else {\n      maskData.type = MASK_TYPES.STENCIL;\n    }\n  }\n  pushSpriteMask(maskData) {\n    const { maskObject } = maskData;\n    const target = maskData._target;\n    let alphaMaskFilter = maskData._filters;\n    if (!alphaMaskFilter) {\n      alphaMaskFilter = this.alphaMaskPool[this.alphaMaskIndex];\n      if (!alphaMaskFilter) {\n        alphaMaskFilter = this.alphaMaskPool[this.alphaMaskIndex] = [new SpriteMaskFilter()];\n      }\n    }\n    const renderer = this.renderer;\n    const renderTextureSystem = renderer.renderTexture;\n    let resolution;\n    let multisample;\n    if (renderTextureSystem.current) {\n      const renderTexture = renderTextureSystem.current;\n      resolution = maskData.resolution || renderTexture.resolution;\n      multisample = maskData.multisample ?? renderTexture.multisample;\n    } else {\n      resolution = maskData.resolution || renderer.resolution;\n      multisample = maskData.multisample ?? renderer.multisample;\n    }\n    alphaMaskFilter[0].resolution = resolution;\n    alphaMaskFilter[0].multisample = multisample;\n    alphaMaskFilter[0].maskSprite = maskObject;\n    const stashFilterArea = target.filterArea;\n    target.filterArea = maskObject.getBounds(true);\n    renderer.filter.push(target, alphaMaskFilter);\n    target.filterArea = stashFilterArea;\n    if (!maskData._filters) {\n      this.alphaMaskIndex++;\n    }\n  }\n  popSpriteMask(maskData) {\n    this.renderer.filter.pop();\n    if (maskData._filters) {\n      maskData._filters[0].maskSprite = null;\n    } else {\n      this.alphaMaskIndex--;\n      this.alphaMaskPool[this.alphaMaskIndex][0].maskSprite = null;\n    }\n  }\n  pushColorMask(maskData) {\n    const currColorMask = maskData._colorMask;\n    const nextColorMask = maskData._colorMask = currColorMask & maskData.colorMask;\n    if (nextColorMask !== currColorMask) {\n      this.renderer.gl.colorMask((nextColorMask & 1) !== 0, (nextColorMask & 2) !== 0, (nextColorMask & 4) !== 0, (nextColorMask & 8) !== 0);\n    }\n  }\n  popColorMask(maskData) {\n    const currColorMask = maskData._colorMask;\n    const nextColorMask = this.maskStack.length > 0 ? this.maskStack[this.maskStack.length - 1]._colorMask : 15;\n    if (nextColorMask !== currColorMask) {\n      this.renderer.gl.colorMask((nextColorMask & 1) !== 0, (nextColorMask & 2) !== 0, (nextColorMask & 4) !== 0, (nextColorMask & 8) !== 0);\n    }\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nMaskSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"mask\"\n};\nextensions.add(MaskSystem);\n\nexport { MaskSystem };\n//# sourceMappingURL=MaskSystem.mjs.map\n","class AbstractMaskSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.maskStack = [];\n    this.glConst = 0;\n  }\n  getStackLength() {\n    return this.maskStack.length;\n  }\n  setMaskStack(maskStack) {\n    const { gl } = this.renderer;\n    const curStackLen = this.getStackLength();\n    this.maskStack = maskStack;\n    const newStackLen = this.getStackLength();\n    if (newStackLen !== curStackLen) {\n      if (newStackLen === 0) {\n        gl.disable(this.glConst);\n      } else {\n        gl.enable(this.glConst);\n        this._useCurrent();\n      }\n    }\n  }\n  _useCurrent() {\n  }\n  destroy() {\n    this.renderer = null;\n    this.maskStack = null;\n  }\n}\n\nexport { AbstractMaskSystem };\n//# sourceMappingURL=AbstractMaskSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { Matrix, Rectangle } from '@pixi/math';\nimport { settings } from '@pixi/settings';\nimport { AbstractMaskSystem } from './AbstractMaskSystem.mjs';\n\nconst tempMatrix = new Matrix();\nconst rectPool = [];\nconst _ScissorSystem = class extends AbstractMaskSystem {\n  constructor(renderer) {\n    super(renderer);\n    this.glConst = settings.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST;\n  }\n  getStackLength() {\n    const maskData = this.maskStack[this.maskStack.length - 1];\n    if (maskData) {\n      return maskData._scissorCounter;\n    }\n    return 0;\n  }\n  calcScissorRect(maskData) {\n    if (maskData._scissorRectLocal) {\n      return;\n    }\n    const prevData = maskData._scissorRect;\n    const { maskObject } = maskData;\n    const { renderer } = this;\n    const renderTextureSystem = renderer.renderTexture;\n    const rect = maskObject.getBounds(true, rectPool.pop() ?? new Rectangle());\n    this.roundFrameToPixels(rect, renderTextureSystem.current ? renderTextureSystem.current.resolution : renderer.resolution, renderTextureSystem.sourceFrame, renderTextureSystem.destinationFrame, renderer.projection.transform);\n    if (prevData) {\n      rect.fit(prevData);\n    }\n    maskData._scissorRectLocal = rect;\n  }\n  static isMatrixRotated(matrix) {\n    if (!matrix) {\n      return false;\n    }\n    const { a, b, c, d } = matrix;\n    return (Math.abs(b) > 1e-4 || Math.abs(c) > 1e-4) && (Math.abs(a) > 1e-4 || Math.abs(d) > 1e-4);\n  }\n  testScissor(maskData) {\n    const { maskObject } = maskData;\n    if (!maskObject.isFastRect || !maskObject.isFastRect()) {\n      return false;\n    }\n    if (_ScissorSystem.isMatrixRotated(maskObject.worldTransform)) {\n      return false;\n    }\n    if (_ScissorSystem.isMatrixRotated(this.renderer.projection.transform)) {\n      return false;\n    }\n    this.calcScissorRect(maskData);\n    const rect = maskData._scissorRectLocal;\n    return rect.width > 0 && rect.height > 0;\n  }\n  roundFrameToPixels(frame, resolution, bindingSourceFrame, bindingDestinationFrame, transform) {\n    if (_ScissorSystem.isMatrixRotated(transform)) {\n      return;\n    }\n    transform = transform ? tempMatrix.copyFrom(transform) : tempMatrix.identity();\n    transform.translate(-bindingSourceFrame.x, -bindingSourceFrame.y).scale(bindingDestinationFrame.width / bindingSourceFrame.width, bindingDestinationFrame.height / bindingSourceFrame.height).translate(bindingDestinationFrame.x, bindingDestinationFrame.y);\n    this.renderer.filter.transformAABB(transform, frame);\n    frame.fit(bindingDestinationFrame);\n    frame.x = Math.round(frame.x * resolution);\n    frame.y = Math.round(frame.y * resolution);\n    frame.width = Math.round(frame.width * resolution);\n    frame.height = Math.round(frame.height * resolution);\n  }\n  push(maskData) {\n    if (!maskData._scissorRectLocal) {\n      this.calcScissorRect(maskData);\n    }\n    const { gl } = this.renderer;\n    if (!maskData._scissorRect) {\n      gl.enable(gl.SCISSOR_TEST);\n    }\n    maskData._scissorCounter++;\n    maskData._scissorRect = maskData._scissorRectLocal;\n    this._useCurrent();\n  }\n  pop(maskData) {\n    const { gl } = this.renderer;\n    if (maskData) {\n      rectPool.push(maskData._scissorRectLocal);\n    }\n    if (this.getStackLength() > 0) {\n      this._useCurrent();\n    } else {\n      gl.disable(gl.SCISSOR_TEST);\n    }\n  }\n  _useCurrent() {\n    const rect = this.maskStack[this.maskStack.length - 1]._scissorRect;\n    let y;\n    if (this.renderer.renderTexture.current) {\n      y = rect.y;\n    } else {\n      y = this.renderer.height - rect.height - rect.y;\n    }\n    this.renderer.gl.scissor(rect.x, y, rect.width, rect.height);\n  }\n};\nlet ScissorSystem = _ScissorSystem;\nScissorSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"scissor\"\n};\nextensions.add(ScissorSystem);\n\nexport { ScissorSystem };\n//# sourceMappingURL=ScissorSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { settings } from '@pixi/settings';\nimport { AbstractMaskSystem } from './AbstractMaskSystem.mjs';\n\nclass StencilSystem extends AbstractMaskSystem {\n  constructor(renderer) {\n    super(renderer);\n    this.glConst = settings.ADAPTER.getWebGLRenderingContext().STENCIL_TEST;\n  }\n  getStackLength() {\n    const maskData = this.maskStack[this.maskStack.length - 1];\n    if (maskData) {\n      return maskData._stencilCounter;\n    }\n    return 0;\n  }\n  push(maskData) {\n    const maskObject = maskData.maskObject;\n    const { gl } = this.renderer;\n    const prevMaskCount = maskData._stencilCounter;\n    if (prevMaskCount === 0) {\n      this.renderer.framebuffer.forceStencil();\n      gl.clearStencil(0);\n      gl.clear(gl.STENCIL_BUFFER_BIT);\n      gl.enable(gl.STENCIL_TEST);\n    }\n    maskData._stencilCounter++;\n    const colorMask = maskData._colorMask;\n    if (colorMask !== 0) {\n      maskData._colorMask = 0;\n      gl.colorMask(false, false, false, false);\n    }\n    gl.stencilFunc(gl.EQUAL, prevMaskCount, 4294967295);\n    gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);\n    maskObject.renderable = true;\n    maskObject.render(this.renderer);\n    this.renderer.batch.flush();\n    maskObject.renderable = false;\n    if (colorMask !== 0) {\n      maskData._colorMask = colorMask;\n      gl.colorMask((colorMask & 1) !== 0, (colorMask & 2) !== 0, (colorMask & 4) !== 0, (colorMask & 8) !== 0);\n    }\n    this._useCurrent();\n  }\n  pop(maskObject) {\n    const gl = this.renderer.gl;\n    if (this.getStackLength() === 0) {\n      gl.disable(gl.STENCIL_TEST);\n    } else {\n      const maskData = this.maskStack.length !== 0 ? this.maskStack[this.maskStack.length - 1] : null;\n      const colorMask = maskData ? maskData._colorMask : 15;\n      if (colorMask !== 0) {\n        maskData._colorMask = 0;\n        gl.colorMask(false, false, false, false);\n      }\n      gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);\n      maskObject.renderable = true;\n      maskObject.render(this.renderer);\n      this.renderer.batch.flush();\n      maskObject.renderable = false;\n      if (colorMask !== 0) {\n        maskData._colorMask = colorMask;\n        gl.colorMask((colorMask & 1) !== 0, (colorMask & 2) !== 0, (colorMask & 4) !== 0, (colorMask & 8) !== 0);\n      }\n      this._useCurrent();\n    }\n  }\n  _useCurrent() {\n    const gl = this.renderer.gl;\n    gl.stencilFunc(gl.EQUAL, this.getStackLength(), 4294967295);\n    gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n  }\n}\nStencilSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"stencil\"\n};\nextensions.add(StencilSystem);\n\nexport { StencilSystem };\n//# sourceMappingURL=StencilSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { deprecation } from '@pixi/utils';\n\nclass PluginSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.plugins = {};\n    Object.defineProperties(this.plugins, {\n      extract: {\n        enumerable: false,\n        get() {\n          deprecation(\"7.0.0\", \"renderer.plugins.extract has moved to renderer.extract\");\n          return renderer.extract;\n        }\n      },\n      prepare: {\n        enumerable: false,\n        get() {\n          deprecation(\"7.0.0\", \"renderer.plugins.prepare has moved to renderer.prepare\");\n          return renderer.prepare;\n        }\n      },\n      interaction: {\n        enumerable: false,\n        get() {\n          deprecation(\"7.0.0\", \"renderer.plugins.interaction has been deprecated, use renderer.events\");\n          return renderer.events;\n        }\n      }\n    });\n  }\n  init(staticMap) {\n    for (const o in staticMap) {\n      this.plugins[o] = new staticMap[o](this.renderer);\n    }\n  }\n  destroy() {\n    for (const o in this.plugins) {\n      this.plugins[o].destroy();\n      this.plugins[o] = null;\n    }\n  }\n}\nPluginSystem.extension = {\n  type: [\n    ExtensionType.RendererSystem,\n    ExtensionType.CanvasRendererSystem\n  ],\n  name: \"_plugin\"\n};\nextensions.add(PluginSystem);\n\nexport { PluginSystem };\n//# sourceMappingURL=PluginSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { Matrix } from '@pixi/math';\n\nclass ProjectionSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.destinationFrame = null;\n    this.sourceFrame = null;\n    this.defaultFrame = null;\n    this.projectionMatrix = new Matrix();\n    this.transform = null;\n  }\n  update(destinationFrame, sourceFrame, resolution, root) {\n    this.destinationFrame = destinationFrame || this.destinationFrame || this.defaultFrame;\n    this.sourceFrame = sourceFrame || this.sourceFrame || destinationFrame;\n    this.calculateProjection(this.destinationFrame, this.sourceFrame, resolution, root);\n    if (this.transform) {\n      this.projectionMatrix.append(this.transform);\n    }\n    const renderer = this.renderer;\n    renderer.globalUniforms.uniforms.projectionMatrix = this.projectionMatrix;\n    renderer.globalUniforms.update();\n    if (renderer.shader.shader) {\n      renderer.shader.syncUniformGroup(renderer.shader.shader.uniforms.globals);\n    }\n  }\n  calculateProjection(_destinationFrame, sourceFrame, _resolution, root) {\n    const pm = this.projectionMatrix;\n    const sign = !root ? 1 : -1;\n    pm.identity();\n    pm.a = 1 / sourceFrame.width * 2;\n    pm.d = sign * (1 / sourceFrame.height * 2);\n    pm.tx = -1 - sourceFrame.x * pm.a;\n    pm.ty = -sign - sourceFrame.y * pm.d;\n  }\n  setTransform(_matrix) {\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nProjectionSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"projection\"\n};\nextensions.add(ProjectionSystem);\n\nexport { ProjectionSystem };\n//# sourceMappingURL=ProjectionSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { Transform, Matrix } from '@pixi/math';\nimport { RenderTexture } from './RenderTexture.mjs';\n\nconst tempTransform = new Transform();\nclass GenerateTextureSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this._tempMatrix = new Matrix();\n  }\n  generateTexture(displayObject, options) {\n    const { region: manualRegion, ...textureOptions } = options || {};\n    const region = manualRegion || displayObject.getLocalBounds(null, true);\n    if (region.width === 0)\n      region.width = 1;\n    if (region.height === 0)\n      region.height = 1;\n    const renderTexture = RenderTexture.create({\n      width: region.width,\n      height: region.height,\n      ...textureOptions\n    });\n    this._tempMatrix.tx = -region.x;\n    this._tempMatrix.ty = -region.y;\n    const transform = displayObject.transform;\n    displayObject.transform = tempTransform;\n    this.renderer.render(displayObject, {\n      renderTexture,\n      transform: this._tempMatrix,\n      skipUpdateTransform: !!displayObject.parent,\n      blit: true\n    });\n    displayObject.transform = transform;\n    return renderTexture;\n  }\n  destroy() {\n  }\n}\nGenerateTextureSystem.extension = {\n  type: [\n    ExtensionType.RendererSystem,\n    ExtensionType.CanvasRendererSystem\n  ],\n  name: \"textureGenerator\"\n};\nextensions.add(GenerateTextureSystem);\n\nexport { GenerateTextureSystem };\n//# sourceMappingURL=GenerateTextureSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { Rectangle } from '@pixi/math';\n\nconst tempRect = new Rectangle();\nconst tempRect2 = new Rectangle();\nclass RenderTextureSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.defaultMaskStack = [];\n    this.current = null;\n    this.sourceFrame = new Rectangle();\n    this.destinationFrame = new Rectangle();\n    this.viewportFrame = new Rectangle();\n  }\n  bind(renderTexture = null, sourceFrame, destinationFrame) {\n    const renderer = this.renderer;\n    this.current = renderTexture;\n    let baseTexture;\n    let framebuffer;\n    let resolution;\n    if (renderTexture) {\n      baseTexture = renderTexture.baseTexture;\n      resolution = baseTexture.resolution;\n      if (!sourceFrame) {\n        tempRect.width = renderTexture.frame.width;\n        tempRect.height = renderTexture.frame.height;\n        sourceFrame = tempRect;\n      }\n      if (!destinationFrame) {\n        tempRect2.x = renderTexture.frame.x;\n        tempRect2.y = renderTexture.frame.y;\n        tempRect2.width = sourceFrame.width;\n        tempRect2.height = sourceFrame.height;\n        destinationFrame = tempRect2;\n      }\n      framebuffer = baseTexture.framebuffer;\n    } else {\n      resolution = renderer.resolution;\n      if (!sourceFrame) {\n        tempRect.width = renderer._view.screen.width;\n        tempRect.height = renderer._view.screen.height;\n        sourceFrame = tempRect;\n      }\n      if (!destinationFrame) {\n        destinationFrame = tempRect;\n        destinationFrame.width = sourceFrame.width;\n        destinationFrame.height = sourceFrame.height;\n      }\n    }\n    const viewportFrame = this.viewportFrame;\n    viewportFrame.x = destinationFrame.x * resolution;\n    viewportFrame.y = destinationFrame.y * resolution;\n    viewportFrame.width = destinationFrame.width * resolution;\n    viewportFrame.height = destinationFrame.height * resolution;\n    if (!renderTexture) {\n      viewportFrame.y = renderer.view.height - (viewportFrame.y + viewportFrame.height);\n    }\n    viewportFrame.ceil();\n    this.renderer.framebuffer.bind(framebuffer, viewportFrame);\n    this.renderer.projection.update(destinationFrame, sourceFrame, resolution, !framebuffer);\n    if (renderTexture) {\n      this.renderer.mask.setMaskStack(baseTexture.maskStack);\n    } else {\n      this.renderer.mask.setMaskStack(this.defaultMaskStack);\n    }\n    this.sourceFrame.copyFrom(sourceFrame);\n    this.destinationFrame.copyFrom(destinationFrame);\n  }\n  clear(clearColor, mask) {\n    if (this.current) {\n      clearColor = clearColor || this.current.baseTexture.clearColor;\n    } else {\n      clearColor = clearColor || this.renderer.background.colorRgba;\n    }\n    const destinationFrame = this.destinationFrame;\n    const baseFrame = this.current ? this.current.baseTexture : this.renderer._view.screen;\n    const clearMask = destinationFrame.width !== baseFrame.width || destinationFrame.height !== baseFrame.height;\n    if (clearMask) {\n      let { x, y, width, height } = this.viewportFrame;\n      x = Math.round(x);\n      y = Math.round(y);\n      width = Math.round(width);\n      height = Math.round(height);\n      this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST);\n      this.renderer.gl.scissor(x, y, width, height);\n    }\n    this.renderer.framebuffer.clear(clearColor[0], clearColor[1], clearColor[2], clearColor[3], mask);\n    if (clearMask) {\n      this.renderer.scissor.pop();\n    }\n  }\n  resize() {\n    this.bind(null);\n  }\n  reset() {\n    this.bind(null);\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nRenderTextureSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"renderTexture\"\n};\nextensions.add(RenderTextureSystem);\n\nexport { RenderTextureSystem };\n//# sourceMappingURL=RenderTextureSystem.mjs.map\n","class IGLUniformData {\n}\nclass GLProgram {\n  constructor(program, uniformData) {\n    this.program = program;\n    this.uniformData = uniformData;\n    this.uniformGroups = {};\n    this.uniformDirtyGroups = {};\n    this.uniformBufferBindings = {};\n  }\n  destroy() {\n    this.uniformData = null;\n    this.uniformGroups = null;\n    this.uniformDirtyGroups = null;\n    this.uniformBufferBindings = null;\n    this.program = null;\n  }\n}\n\nexport { GLProgram, IGLUniformData };\n//# sourceMappingURL=GLProgram.mjs.map\n","import { mapSize } from './mapSize.mjs';\nimport { mapType } from './mapType.mjs';\n\nfunction getAttributeData(program, gl) {\n  const attributes = {};\n  const totalAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n  for (let i = 0; i < totalAttributes; i++) {\n    const attribData = gl.getActiveAttrib(program, i);\n    if (attribData.name.startsWith(\"gl_\")) {\n      continue;\n    }\n    const type = mapType(gl, attribData.type);\n    const data = {\n      type,\n      name: attribData.name,\n      size: mapSize(type),\n      location: gl.getAttribLocation(program, attribData.name)\n    };\n    attributes[attribData.name] = data;\n  }\n  return attributes;\n}\n\nexport { getAttributeData };\n//# sourceMappingURL=getAttributeData.mjs.map\n","import { defaultValue } from './defaultValue.mjs';\nimport { mapType } from './mapType.mjs';\n\nfunction getUniformData(program, gl) {\n  const uniforms = {};\n  const totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n  for (let i = 0; i < totalUniforms; i++) {\n    const uniformData = gl.getActiveUniform(program, i);\n    const name = uniformData.name.replace(/\\[.*?\\]$/, \"\");\n    const isArray = !!uniformData.name.match(/\\[.*?\\]$/);\n    const type = mapType(gl, uniformData.type);\n    uniforms[name] = {\n      name,\n      index: i,\n      type,\n      size: uniformData.size,\n      isArray,\n      value: defaultValue(type, uniformData.size)\n    };\n  }\n  return uniforms;\n}\n\nexport { getUniformData };\n//# sourceMappingURL=getUniformData.mjs.map\n","import { GLProgram } from '../GLProgram.mjs';\nimport { compileShader } from './compileShader.mjs';\nimport { defaultValue } from './defaultValue.mjs';\nimport { getAttributeData } from './getAttributeData.mjs';\nimport { getUniformData } from './getUniformData.mjs';\nimport { logProgramError } from './logProgramError.mjs';\n\nfunction generateProgram(gl, program) {\n  const glVertShader = compileShader(gl, gl.VERTEX_SHADER, program.vertexSrc);\n  const glFragShader = compileShader(gl, gl.FRAGMENT_SHADER, program.fragmentSrc);\n  const webGLProgram = gl.createProgram();\n  gl.attachShader(webGLProgram, glVertShader);\n  gl.attachShader(webGLProgram, glFragShader);\n  const transformFeedbackVaryings = program.extra?.transformFeedbackVaryings;\n  if (transformFeedbackVaryings) {\n    if (typeof gl.transformFeedbackVaryings !== \"function\") {\n      console.warn(`TransformFeedback is not supported but TransformFeedbackVaryings are given.`);\n    } else {\n      gl.transformFeedbackVaryings(webGLProgram, transformFeedbackVaryings.names, transformFeedbackVaryings.bufferMode === \"separate\" ? gl.SEPARATE_ATTRIBS : gl.INTERLEAVED_ATTRIBS);\n    }\n  }\n  gl.linkProgram(webGLProgram);\n  if (!gl.getProgramParameter(webGLProgram, gl.LINK_STATUS)) {\n    logProgramError(gl, webGLProgram, glVertShader, glFragShader);\n  }\n  program.attributeData = getAttributeData(webGLProgram, gl);\n  program.uniformData = getUniformData(webGLProgram, gl);\n  if (!/^[ \\t]*#[ \\t]*version[ \\t]+300[ \\t]+es[ \\t]*$/m.test(program.vertexSrc)) {\n    const keys = Object.keys(program.attributeData);\n    keys.sort((a, b) => a > b ? 1 : -1);\n    for (let i = 0; i < keys.length; i++) {\n      program.attributeData[keys[i]].location = i;\n      gl.bindAttribLocation(webGLProgram, i, keys[i]);\n    }\n    gl.linkProgram(webGLProgram);\n  }\n  gl.deleteShader(glVertShader);\n  gl.deleteShader(glFragShader);\n  const uniformData = {};\n  for (const i in program.uniformData) {\n    const data = program.uniformData[i];\n    uniformData[i] = {\n      location: gl.getUniformLocation(webGLProgram, i),\n      value: defaultValue(data.type, data.size)\n    };\n  }\n  const glProgram = new GLProgram(webGLProgram, uniformData);\n  return glProgram;\n}\n\nexport { generateProgram };\n//# sourceMappingURL=generateProgram.mjs.map\n","import './index.mjs';\nimport { uniformParsers } from './uniformParsers.mjs';\nimport { mapSize } from './mapSize.mjs';\n\nfunction uboUpdate(_ud, _uv, _renderer, _syncData, buffer) {\n  _renderer.buffer.update(buffer);\n}\nconst UBO_TO_SINGLE_SETTERS = {\n  float: `\n        data[offset] = v;\n    `,\n  vec2: `\n        data[offset] = v[0];\n        data[offset+1] = v[1];\n    `,\n  vec3: `\n        data[offset] = v[0];\n        data[offset+1] = v[1];\n        data[offset+2] = v[2];\n\n    `,\n  vec4: `\n        data[offset] = v[0];\n        data[offset+1] = v[1];\n        data[offset+2] = v[2];\n        data[offset+3] = v[3];\n    `,\n  mat2: `\n        data[offset] = v[0];\n        data[offset+1] = v[1];\n\n        data[offset+4] = v[2];\n        data[offset+5] = v[3];\n    `,\n  mat3: `\n        data[offset] = v[0];\n        data[offset+1] = v[1];\n        data[offset+2] = v[2];\n\n        data[offset + 4] = v[3];\n        data[offset + 5] = v[4];\n        data[offset + 6] = v[5];\n\n        data[offset + 8] = v[6];\n        data[offset + 9] = v[7];\n        data[offset + 10] = v[8];\n    `,\n  mat4: `\n        for(var i = 0; i < 16; i++)\n        {\n            data[offset + i] = v[i];\n        }\n    `\n};\nconst GLSL_TO_STD40_SIZE = {\n  float: 4,\n  vec2: 8,\n  vec3: 12,\n  vec4: 16,\n  int: 4,\n  ivec2: 8,\n  ivec3: 12,\n  ivec4: 16,\n  uint: 4,\n  uvec2: 8,\n  uvec3: 12,\n  uvec4: 16,\n  bool: 4,\n  bvec2: 8,\n  bvec3: 12,\n  bvec4: 16,\n  mat2: 16 * 2,\n  mat3: 16 * 3,\n  mat4: 16 * 4\n};\nfunction createUBOElements(uniformData) {\n  const uboElements = uniformData.map((data) => ({\n    data,\n    offset: 0,\n    dataLen: 0,\n    dirty: 0\n  }));\n  let size = 0;\n  let chunkSize = 0;\n  let offset = 0;\n  for (let i = 0; i < uboElements.length; i++) {\n    const uboElement = uboElements[i];\n    size = GLSL_TO_STD40_SIZE[uboElement.data.type];\n    if (uboElement.data.size > 1) {\n      size = Math.max(size, 16) * uboElement.data.size;\n    }\n    uboElement.dataLen = size;\n    if (chunkSize % size !== 0 && chunkSize < 16) {\n      const lineUpValue = chunkSize % size % 16;\n      chunkSize += lineUpValue;\n      offset += lineUpValue;\n    }\n    if (chunkSize + size > 16) {\n      offset = Math.ceil(offset / 16) * 16;\n      uboElement.offset = offset;\n      offset += size;\n      chunkSize = size;\n    } else {\n      uboElement.offset = offset;\n      chunkSize += size;\n      offset += size;\n    }\n  }\n  offset = Math.ceil(offset / 16) * 16;\n  return { uboElements, size: offset };\n}\nfunction getUBOData(uniforms, uniformData) {\n  const usedUniformDatas = [];\n  for (const i in uniforms) {\n    if (uniformData[i]) {\n      usedUniformDatas.push(uniformData[i]);\n    }\n  }\n  usedUniformDatas.sort((a, b) => a.index - b.index);\n  return usedUniformDatas;\n}\nfunction generateUniformBufferSync(group, uniformData) {\n  if (!group.autoManage) {\n    return { size: 0, syncFunc: uboUpdate };\n  }\n  const usedUniformDatas = getUBOData(group.uniforms, uniformData);\n  const { uboElements, size } = createUBOElements(usedUniformDatas);\n  const funcFragments = [`\n    var v = null;\n    var v2 = null;\n    var cv = null;\n    var t = 0;\n    var gl = renderer.gl\n    var index = 0;\n    var data = buffer.data;\n    `];\n  for (let i = 0; i < uboElements.length; i++) {\n    const uboElement = uboElements[i];\n    const uniform = group.uniforms[uboElement.data.name];\n    const name = uboElement.data.name;\n    let parsed = false;\n    for (let j = 0; j < uniformParsers.length; j++) {\n      const uniformParser = uniformParsers[j];\n      if (uniformParser.codeUbo && uniformParser.test(uboElement.data, uniform)) {\n        funcFragments.push(`offset = ${uboElement.offset / 4};`, uniformParsers[j].codeUbo(uboElement.data.name, uniform));\n        parsed = true;\n        break;\n      }\n    }\n    if (!parsed) {\n      if (uboElement.data.size > 1) {\n        const size2 = mapSize(uboElement.data.type);\n        const rowSize = Math.max(GLSL_TO_STD40_SIZE[uboElement.data.type] / 16, 1);\n        const elementSize = size2 / rowSize;\n        const remainder = (4 - elementSize % 4) % 4;\n        funcFragments.push(`\n                cv = ud.${name}.value;\n                v = uv.${name};\n                offset = ${uboElement.offset / 4};\n\n                t = 0;\n\n                for(var i=0; i < ${uboElement.data.size * rowSize}; i++)\n                {\n                    for(var j = 0; j < ${elementSize}; j++)\n                    {\n                        data[offset++] = v[t++];\n                    }\n                    offset += ${remainder};\n                }\n\n                `);\n      } else {\n        const template = UBO_TO_SINGLE_SETTERS[uboElement.data.type];\n        funcFragments.push(`\n                cv = ud.${name}.value;\n                v = uv.${name};\n                offset = ${uboElement.offset / 4};\n                ${template};\n                `);\n      }\n    }\n  }\n  funcFragments.push(`\n       renderer.buffer.update(buffer);\n    `);\n  return {\n    size,\n    syncFunc: new Function(\"ud\", \"uv\", \"renderer\", \"syncData\", \"buffer\", funcFragments.join(\"\\n\"))\n  };\n}\n\nexport { createUBOElements, generateUniformBufferSync, getUBOData };\n//# sourceMappingURL=generateUniformBufferSync.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport './utils/index.mjs';\nimport { generateProgram } from './utils/generateProgram.mjs';\nimport { generateUniformBufferSync } from './utils/generateUniformBufferSync.mjs';\nimport { unsafeEvalSupported } from './utils/unsafeEvalSupported.mjs';\nimport { generateUniformsSync } from './utils/generateUniformsSync.mjs';\n\nlet UID = 0;\nconst defaultSyncData = { textureCount: 0, uboCount: 0 };\nclass ShaderSystem {\n  constructor(renderer) {\n    this.destroyed = false;\n    this.renderer = renderer;\n    this.systemCheck();\n    this.gl = null;\n    this.shader = null;\n    this.program = null;\n    this.cache = {};\n    this._uboCache = {};\n    this.id = UID++;\n  }\n  systemCheck() {\n    if (!unsafeEvalSupported()) {\n      throw new Error(\"Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.\");\n    }\n  }\n  contextChange(gl) {\n    this.gl = gl;\n    this.reset();\n  }\n  bind(shader, dontSync) {\n    shader.disposeRunner.add(this);\n    shader.uniforms.globals = this.renderer.globalUniforms;\n    const program = shader.program;\n    const glProgram = program.glPrograms[this.renderer.CONTEXT_UID] || this.generateProgram(shader);\n    this.shader = shader;\n    if (this.program !== program) {\n      this.program = program;\n      this.gl.useProgram(glProgram.program);\n    }\n    if (!dontSync) {\n      defaultSyncData.textureCount = 0;\n      defaultSyncData.uboCount = 0;\n      this.syncUniformGroup(shader.uniformGroup, defaultSyncData);\n    }\n    return glProgram;\n  }\n  setUniforms(uniforms) {\n    const shader = this.shader.program;\n    const glProgram = shader.glPrograms[this.renderer.CONTEXT_UID];\n    shader.syncUniforms(glProgram.uniformData, uniforms, this.renderer);\n  }\n  syncUniformGroup(group, syncData) {\n    const glProgram = this.getGlProgram();\n    if (!group.static || group.dirtyId !== glProgram.uniformDirtyGroups[group.id]) {\n      glProgram.uniformDirtyGroups[group.id] = group.dirtyId;\n      this.syncUniforms(group, glProgram, syncData);\n    }\n  }\n  syncUniforms(group, glProgram, syncData) {\n    const syncFunc = group.syncUniforms[this.shader.program.id] || this.createSyncGroups(group);\n    syncFunc(glProgram.uniformData, group.uniforms, this.renderer, syncData);\n  }\n  createSyncGroups(group) {\n    const id = this.getSignature(group, this.shader.program.uniformData, \"u\");\n    if (!this.cache[id]) {\n      this.cache[id] = generateUniformsSync(group, this.shader.program.uniformData);\n    }\n    group.syncUniforms[this.shader.program.id] = this.cache[id];\n    return group.syncUniforms[this.shader.program.id];\n  }\n  syncUniformBufferGroup(group, name) {\n    const glProgram = this.getGlProgram();\n    if (!group.static || group.dirtyId !== 0 || !glProgram.uniformGroups[group.id]) {\n      group.dirtyId = 0;\n      const syncFunc = glProgram.uniformGroups[group.id] || this.createSyncBufferGroup(group, glProgram, name);\n      group.buffer.update();\n      syncFunc(glProgram.uniformData, group.uniforms, this.renderer, defaultSyncData, group.buffer);\n    }\n    this.renderer.buffer.bindBufferBase(group.buffer, glProgram.uniformBufferBindings[name]);\n  }\n  createSyncBufferGroup(group, glProgram, name) {\n    const { gl } = this.renderer;\n    this.renderer.buffer.bind(group.buffer);\n    const uniformBlockIndex = this.gl.getUniformBlockIndex(glProgram.program, name);\n    glProgram.uniformBufferBindings[name] = this.shader.uniformBindCount;\n    gl.uniformBlockBinding(glProgram.program, uniformBlockIndex, this.shader.uniformBindCount);\n    this.shader.uniformBindCount++;\n    const id = this.getSignature(group, this.shader.program.uniformData, \"ubo\");\n    let uboData = this._uboCache[id];\n    if (!uboData) {\n      uboData = this._uboCache[id] = generateUniformBufferSync(group, this.shader.program.uniformData);\n    }\n    if (group.autoManage) {\n      const data = new Float32Array(uboData.size / 4);\n      group.buffer.update(data);\n    }\n    glProgram.uniformGroups[group.id] = uboData.syncFunc;\n    return glProgram.uniformGroups[group.id];\n  }\n  getSignature(group, uniformData, preFix) {\n    const uniforms = group.uniforms;\n    const strings = [`${preFix}-`];\n    for (const i in uniforms) {\n      strings.push(i);\n      if (uniformData[i]) {\n        strings.push(uniformData[i].type);\n      }\n    }\n    return strings.join(\"-\");\n  }\n  getGlProgram() {\n    if (this.shader) {\n      return this.shader.program.glPrograms[this.renderer.CONTEXT_UID];\n    }\n    return null;\n  }\n  generateProgram(shader) {\n    const gl = this.gl;\n    const program = shader.program;\n    const glProgram = generateProgram(gl, program);\n    program.glPrograms[this.renderer.CONTEXT_UID] = glProgram;\n    return glProgram;\n  }\n  reset() {\n    this.program = null;\n    this.shader = null;\n  }\n  disposeShader(shader) {\n    if (this.shader === shader) {\n      this.shader = null;\n    }\n  }\n  destroy() {\n    this.renderer = null;\n    this.destroyed = true;\n  }\n}\nShaderSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"shader\"\n};\nextensions.add(ShaderSystem);\n\nexport { ShaderSystem };\n//# sourceMappingURL=ShaderSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\n\nclass StartupSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  run(options) {\n    const renderer = this.renderer;\n    renderer.emitWithCustomOptions(renderer.runners.init, options);\n    if (options.hello) {\n      console.log(`PixiJS ${\"7.1.4\"} - ${renderer.rendererLogId} - https://pixijs.com`);\n    }\n    renderer.resize(this.renderer.screen.width, this.renderer.screen.height);\n  }\n  destroy() {\n  }\n}\nStartupSystem.extension = {\n  type: [\n    ExtensionType.RendererSystem,\n    ExtensionType.CanvasRendererSystem\n  ],\n  name: \"startup\"\n};\nextensions.add(StartupSystem);\n\nexport { StartupSystem };\n//# sourceMappingURL=StartupSystem.mjs.map\n","import { BLEND_MODES } from '@pixi/constants';\n\nfunction mapWebGLBlendModesToPixi(gl, array = []) {\n  array[BLEND_MODES.NORMAL] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.ADD] = [gl.ONE, gl.ONE];\n  array[BLEND_MODES.MULTIPLY] = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.SCREEN] = [gl.ONE, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.OVERLAY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.DARKEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.LIGHTEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.COLOR_DODGE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.COLOR_BURN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.HARD_LIGHT] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.SOFT_LIGHT] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.DIFFERENCE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.EXCLUSION] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.HUE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.SATURATION] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.COLOR] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.LUMINOSITY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.NONE] = [0, 0];\n  array[BLEND_MODES.NORMAL_NPM] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.ADD_NPM] = [gl.SRC_ALPHA, gl.ONE, gl.ONE, gl.ONE];\n  array[BLEND_MODES.SCREEN_NPM] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.SRC_IN] = [gl.DST_ALPHA, gl.ZERO];\n  array[BLEND_MODES.SRC_OUT] = [gl.ONE_MINUS_DST_ALPHA, gl.ZERO];\n  array[BLEND_MODES.SRC_ATOP] = [gl.DST_ALPHA, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.DST_OVER] = [gl.ONE_MINUS_DST_ALPHA, gl.ONE];\n  array[BLEND_MODES.DST_IN] = [gl.ZERO, gl.SRC_ALPHA];\n  array[BLEND_MODES.DST_OUT] = [gl.ZERO, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.DST_ATOP] = [gl.ONE_MINUS_DST_ALPHA, gl.SRC_ALPHA];\n  array[BLEND_MODES.XOR] = [gl.ONE_MINUS_DST_ALPHA, gl.ONE_MINUS_SRC_ALPHA];\n  array[BLEND_MODES.SUBTRACT] = [gl.ONE, gl.ONE, gl.ONE, gl.ONE, gl.FUNC_REVERSE_SUBTRACT, gl.FUNC_ADD];\n  return array;\n}\n\nexport { mapWebGLBlendModesToPixi };\n//# sourceMappingURL=mapWebGLBlendModesToPixi.mjs.map\n","import { BLEND_MODES } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { State } from './State.mjs';\nimport { mapWebGLBlendModesToPixi } from './utils/mapWebGLBlendModesToPixi.mjs';\n\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\nconst _StateSystem = class {\n  constructor() {\n    this.gl = null;\n    this.stateId = 0;\n    this.polygonOffset = 0;\n    this.blendMode = BLEND_MODES.NONE;\n    this._blendEq = false;\n    this.map = [];\n    this.map[BLEND] = this.setBlend;\n    this.map[OFFSET] = this.setOffset;\n    this.map[CULLING] = this.setCullFace;\n    this.map[DEPTH_TEST] = this.setDepthTest;\n    this.map[WINDING] = this.setFrontFace;\n    this.map[DEPTH_MASK] = this.setDepthMask;\n    this.checks = [];\n    this.defaultState = new State();\n    this.defaultState.blend = true;\n  }\n  contextChange(gl) {\n    this.gl = gl;\n    this.blendModes = mapWebGLBlendModesToPixi(gl);\n    this.set(this.defaultState);\n    this.reset();\n  }\n  set(state) {\n    state = state || this.defaultState;\n    if (this.stateId !== state.data) {\n      let diff = this.stateId ^ state.data;\n      let i = 0;\n      while (diff) {\n        if (diff & 1) {\n          this.map[i].call(this, !!(state.data & 1 << i));\n        }\n        diff = diff >> 1;\n        i++;\n      }\n      this.stateId = state.data;\n    }\n    for (let i = 0; i < this.checks.length; i++) {\n      this.checks[i](this, state);\n    }\n  }\n  forceState(state) {\n    state = state || this.defaultState;\n    for (let i = 0; i < this.map.length; i++) {\n      this.map[i].call(this, !!(state.data & 1 << i));\n    }\n    for (let i = 0; i < this.checks.length; i++) {\n      this.checks[i](this, state);\n    }\n    this.stateId = state.data;\n  }\n  setBlend(value) {\n    this.updateCheck(_StateSystem.checkBlendMode, value);\n    this.gl[value ? \"enable\" : \"disable\"](this.gl.BLEND);\n  }\n  setOffset(value) {\n    this.updateCheck(_StateSystem.checkPolygonOffset, value);\n    this.gl[value ? \"enable\" : \"disable\"](this.gl.POLYGON_OFFSET_FILL);\n  }\n  setDepthTest(value) {\n    this.gl[value ? \"enable\" : \"disable\"](this.gl.DEPTH_TEST);\n  }\n  setDepthMask(value) {\n    this.gl.depthMask(value);\n  }\n  setCullFace(value) {\n    this.gl[value ? \"enable\" : \"disable\"](this.gl.CULL_FACE);\n  }\n  setFrontFace(value) {\n    this.gl.frontFace(this.gl[value ? \"CW\" : \"CCW\"]);\n  }\n  setBlendMode(value) {\n    if (value === this.blendMode) {\n      return;\n    }\n    this.blendMode = value;\n    const mode = this.blendModes[value];\n    const gl = this.gl;\n    if (mode.length === 2) {\n      gl.blendFunc(mode[0], mode[1]);\n    } else {\n      gl.blendFuncSeparate(mode[0], mode[1], mode[2], mode[3]);\n    }\n    if (mode.length === 6) {\n      this._blendEq = true;\n      gl.blendEquationSeparate(mode[4], mode[5]);\n    } else if (this._blendEq) {\n      this._blendEq = false;\n      gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD);\n    }\n  }\n  setPolygonOffset(value, scale) {\n    this.gl.polygonOffset(value, scale);\n  }\n  reset() {\n    this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, false);\n    this.forceState(this.defaultState);\n    this._blendEq = true;\n    this.blendMode = -1;\n    this.setBlendMode(0);\n  }\n  updateCheck(func, value) {\n    const index = this.checks.indexOf(func);\n    if (value && index === -1) {\n      this.checks.push(func);\n    } else if (!value && index !== -1) {\n      this.checks.splice(index, 1);\n    }\n  }\n  static checkBlendMode(system, state) {\n    system.setBlendMode(state.blendMode);\n  }\n  static checkPolygonOffset(system, state) {\n    system.setPolygonOffset(1, state.polygonOffset);\n  }\n  destroy() {\n    this.gl = null;\n  }\n};\nlet StateSystem = _StateSystem;\nStateSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"state\"\n};\nextensions.add(StateSystem);\n\nexport { StateSystem };\n//# sourceMappingURL=StateSystem.mjs.map\n","import { Runner } from '@pixi/runner';\nimport { EventEmitter } from '@pixi/utils';\n\nclass SystemManager extends EventEmitter {\n  constructor() {\n    super(...arguments);\n    this.runners = {};\n    this._systemsHash = {};\n  }\n  setup(config) {\n    this.addRunners(...config.runners);\n    const priority = (config.priority ?? []).filter((key) => config.systems[key]);\n    const orderByPriority = [\n      ...priority,\n      ...Object.keys(config.systems).filter((key) => !priority.includes(key))\n    ];\n    for (const i of orderByPriority) {\n      this.addSystem(config.systems[i], i);\n    }\n  }\n  addRunners(...runnerIds) {\n    runnerIds.forEach((runnerId) => {\n      this.runners[runnerId] = new Runner(runnerId);\n    });\n  }\n  addSystem(ClassRef, name) {\n    const system = new ClassRef(this);\n    if (this[name]) {\n      throw new Error(`Whoops! The name \"${name}\" is already in use`);\n    }\n    this[name] = system;\n    this._systemsHash[name] = system;\n    for (const i in this.runners) {\n      this.runners[i].add(system);\n    }\n    return this;\n  }\n  emitWithCustomOptions(runner, options) {\n    const systemHashKeys = Object.keys(this._systemsHash);\n    runner.items.forEach((system) => {\n      const systemName = systemHashKeys.find((systemId) => this._systemsHash[systemId] === system);\n      system[runner.name](options[systemName]);\n    });\n  }\n  destroy() {\n    Object.values(this.runners).forEach((runner) => {\n      runner.destroy();\n    });\n    this._systemsHash = {};\n  }\n}\n\nexport { SystemManager };\n//# sourceMappingURL=SystemManager.mjs.map\n","import { GC_MODES } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\n\nconst _TextureGCSystem = class {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.count = 0;\n    this.checkCount = 0;\n    this.maxIdle = _TextureGCSystem.defaultMaxIdle;\n    this.checkCountMax = _TextureGCSystem.defaultCheckCountMax;\n    this.mode = _TextureGCSystem.defaultMode;\n  }\n  postrender() {\n    if (!this.renderer.objectRenderer.renderingToScreen) {\n      return;\n    }\n    this.count++;\n    if (this.mode === GC_MODES.MANUAL) {\n      return;\n    }\n    this.checkCount++;\n    if (this.checkCount > this.checkCountMax) {\n      this.checkCount = 0;\n      this.run();\n    }\n  }\n  run() {\n    const tm = this.renderer.texture;\n    const managedTextures = tm.managedTextures;\n    let wasRemoved = false;\n    for (let i = 0; i < managedTextures.length; i++) {\n      const texture = managedTextures[i];\n      if (!texture.framebuffer && this.count - texture.touched > this.maxIdle) {\n        tm.destroyTexture(texture, true);\n        managedTextures[i] = null;\n        wasRemoved = true;\n      }\n    }\n    if (wasRemoved) {\n      let j = 0;\n      for (let i = 0; i < managedTextures.length; i++) {\n        if (managedTextures[i] !== null) {\n          managedTextures[j++] = managedTextures[i];\n        }\n      }\n      managedTextures.length = j;\n    }\n  }\n  unload(displayObject) {\n    const tm = this.renderer.texture;\n    const texture = displayObject._texture;\n    if (texture && !texture.framebuffer) {\n      tm.destroyTexture(texture);\n    }\n    for (let i = displayObject.children.length - 1; i >= 0; i--) {\n      this.unload(displayObject.children[i]);\n    }\n  }\n  destroy() {\n    this.renderer = null;\n  }\n};\nlet TextureGCSystem = _TextureGCSystem;\nTextureGCSystem.defaultMode = GC_MODES.AUTO;\nTextureGCSystem.defaultMaxIdle = 60 * 60;\nTextureGCSystem.defaultCheckCountMax = 60 * 10;\nTextureGCSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"textureGC\"\n};\nextensions.add(TextureGCSystem);\n\nexport { TextureGCSystem };\n//# sourceMappingURL=TextureGCSystem.mjs.map\n","import { TYPES, FORMATS } from '@pixi/constants';\n\nclass GLTexture {\n  constructor(texture) {\n    this.texture = texture;\n    this.width = -1;\n    this.height = -1;\n    this.dirtyId = -1;\n    this.dirtyStyleId = -1;\n    this.mipmap = false;\n    this.wrapMode = 33071;\n    this.type = TYPES.UNSIGNED_BYTE;\n    this.internalFormat = FORMATS.RGBA;\n    this.samplerType = 0;\n  }\n}\n\nexport { GLTexture };\n//# sourceMappingURL=GLTexture.mjs.map\n","import { TYPES, FORMATS } from '@pixi/constants';\n\nfunction mapTypeAndFormatToInternalFormat(gl) {\n  let table;\n  if (\"WebGL2RenderingContext\" in globalThis && gl instanceof globalThis.WebGL2RenderingContext) {\n    table = {\n      [TYPES.UNSIGNED_BYTE]: {\n        [FORMATS.RGBA]: gl.RGBA8,\n        [FORMATS.RGB]: gl.RGB8,\n        [FORMATS.RG]: gl.RG8,\n        [FORMATS.RED]: gl.R8,\n        [FORMATS.RGBA_INTEGER]: gl.RGBA8UI,\n        [FORMATS.RGB_INTEGER]: gl.RGB8UI,\n        [FORMATS.RG_INTEGER]: gl.RG8UI,\n        [FORMATS.RED_INTEGER]: gl.R8UI,\n        [FORMATS.ALPHA]: gl.ALPHA,\n        [FORMATS.LUMINANCE]: gl.LUMINANCE,\n        [FORMATS.LUMINANCE_ALPHA]: gl.LUMINANCE_ALPHA\n      },\n      [TYPES.BYTE]: {\n        [FORMATS.RGBA]: gl.RGBA8_SNORM,\n        [FORMATS.RGB]: gl.RGB8_SNORM,\n        [FORMATS.RG]: gl.RG8_SNORM,\n        [FORMATS.RED]: gl.R8_SNORM,\n        [FORMATS.RGBA_INTEGER]: gl.RGBA8I,\n        [FORMATS.RGB_INTEGER]: gl.RGB8I,\n        [FORMATS.RG_INTEGER]: gl.RG8I,\n        [FORMATS.RED_INTEGER]: gl.R8I\n      },\n      [TYPES.UNSIGNED_SHORT]: {\n        [FORMATS.RGBA_INTEGER]: gl.RGBA16UI,\n        [FORMATS.RGB_INTEGER]: gl.RGB16UI,\n        [FORMATS.RG_INTEGER]: gl.RG16UI,\n        [FORMATS.RED_INTEGER]: gl.R16UI,\n        [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT16\n      },\n      [TYPES.SHORT]: {\n        [FORMATS.RGBA_INTEGER]: gl.RGBA16I,\n        [FORMATS.RGB_INTEGER]: gl.RGB16I,\n        [FORMATS.RG_INTEGER]: gl.RG16I,\n        [FORMATS.RED_INTEGER]: gl.R16I\n      },\n      [TYPES.UNSIGNED_INT]: {\n        [FORMATS.RGBA_INTEGER]: gl.RGBA32UI,\n        [FORMATS.RGB_INTEGER]: gl.RGB32UI,\n        [FORMATS.RG_INTEGER]: gl.RG32UI,\n        [FORMATS.RED_INTEGER]: gl.R32UI,\n        [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT24\n      },\n      [TYPES.INT]: {\n        [FORMATS.RGBA_INTEGER]: gl.RGBA32I,\n        [FORMATS.RGB_INTEGER]: gl.RGB32I,\n        [FORMATS.RG_INTEGER]: gl.RG32I,\n        [FORMATS.RED_INTEGER]: gl.R32I\n      },\n      [TYPES.FLOAT]: {\n        [FORMATS.RGBA]: gl.RGBA32F,\n        [FORMATS.RGB]: gl.RGB32F,\n        [FORMATS.RG]: gl.RG32F,\n        [FORMATS.RED]: gl.R32F,\n        [FORMATS.DEPTH_COMPONENT]: gl.DEPTH_COMPONENT32F\n      },\n      [TYPES.HALF_FLOAT]: {\n        [FORMATS.RGBA]: gl.RGBA16F,\n        [FORMATS.RGB]: gl.RGB16F,\n        [FORMATS.RG]: gl.RG16F,\n        [FORMATS.RED]: gl.R16F\n      },\n      [TYPES.UNSIGNED_SHORT_5_6_5]: {\n        [FORMATS.RGB]: gl.RGB565\n      },\n      [TYPES.UNSIGNED_SHORT_4_4_4_4]: {\n        [FORMATS.RGBA]: gl.RGBA4\n      },\n      [TYPES.UNSIGNED_SHORT_5_5_5_1]: {\n        [FORMATS.RGBA]: gl.RGB5_A1\n      },\n      [TYPES.UNSIGNED_INT_2_10_10_10_REV]: {\n        [FORMATS.RGBA]: gl.RGB10_A2,\n        [FORMATS.RGBA_INTEGER]: gl.RGB10_A2UI\n      },\n      [TYPES.UNSIGNED_INT_10F_11F_11F_REV]: {\n        [FORMATS.RGB]: gl.R11F_G11F_B10F\n      },\n      [TYPES.UNSIGNED_INT_5_9_9_9_REV]: {\n        [FORMATS.RGB]: gl.RGB9_E5\n      },\n      [TYPES.UNSIGNED_INT_24_8]: {\n        [FORMATS.DEPTH_STENCIL]: gl.DEPTH24_STENCIL8\n      },\n      [TYPES.FLOAT_32_UNSIGNED_INT_24_8_REV]: {\n        [FORMATS.DEPTH_STENCIL]: gl.DEPTH32F_STENCIL8\n      }\n    };\n  } else {\n    table = {\n      [TYPES.UNSIGNED_BYTE]: {\n        [FORMATS.RGBA]: gl.RGBA,\n        [FORMATS.RGB]: gl.RGB,\n        [FORMATS.ALPHA]: gl.ALPHA,\n        [FORMATS.LUMINANCE]: gl.LUMINANCE,\n        [FORMATS.LUMINANCE_ALPHA]: gl.LUMINANCE_ALPHA\n      },\n      [TYPES.UNSIGNED_SHORT_5_6_5]: {\n        [FORMATS.RGB]: gl.RGB\n      },\n      [TYPES.UNSIGNED_SHORT_4_4_4_4]: {\n        [FORMATS.RGBA]: gl.RGBA\n      },\n      [TYPES.UNSIGNED_SHORT_5_5_5_1]: {\n        [FORMATS.RGBA]: gl.RGBA\n      }\n    };\n  }\n  return table;\n}\n\nexport { mapTypeAndFormatToInternalFormat };\n//# sourceMappingURL=mapTypeAndFormatToInternalFormat.mjs.map\n","import { SAMPLER_TYPES, TYPES, MIPMAP_MODES, WRAP_MODES, SCALE_MODES } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { removeItems } from '@pixi/utils';\nimport { BaseTexture } from './BaseTexture.mjs';\nimport { GLTexture } from './GLTexture.mjs';\nimport { mapTypeAndFormatToInternalFormat } from './utils/mapTypeAndFormatToInternalFormat.mjs';\n\nclass TextureSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.boundTextures = [];\n    this.currentLocation = -1;\n    this.managedTextures = [];\n    this._unknownBoundTextures = false;\n    this.unknownTexture = new BaseTexture();\n    this.hasIntegerTextures = false;\n  }\n  contextChange() {\n    const gl = this.gl = this.renderer.gl;\n    this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n    this.webGLVersion = this.renderer.context.webGLVersion;\n    this.internalFormats = mapTypeAndFormatToInternalFormat(gl);\n    const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n    this.boundTextures.length = maxTextures;\n    for (let i = 0; i < maxTextures; i++) {\n      this.boundTextures[i] = null;\n    }\n    this.emptyTextures = {};\n    const emptyTexture2D = new GLTexture(gl.createTexture());\n    gl.bindTexture(gl.TEXTURE_2D, emptyTexture2D.texture);\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4));\n    this.emptyTextures[gl.TEXTURE_2D] = emptyTexture2D;\n    this.emptyTextures[gl.TEXTURE_CUBE_MAP] = new GLTexture(gl.createTexture());\n    gl.bindTexture(gl.TEXTURE_CUBE_MAP, this.emptyTextures[gl.TEXTURE_CUBE_MAP].texture);\n    for (let i = 0; i < 6; i++) {\n      gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n    }\n    gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n    gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n    for (let i = 0; i < this.boundTextures.length; i++) {\n      this.bind(null, i);\n    }\n  }\n  bind(texture, location = 0) {\n    const { gl } = this;\n    texture = texture?.castToBaseTexture();\n    if (texture?.valid && !texture.parentTextureArray) {\n      texture.touched = this.renderer.textureGC.count;\n      const glTexture = texture._glTextures[this.CONTEXT_UID] || this.initTexture(texture);\n      if (this.boundTextures[location] !== texture) {\n        if (this.currentLocation !== location) {\n          this.currentLocation = location;\n          gl.activeTexture(gl.TEXTURE0 + location);\n        }\n        gl.bindTexture(texture.target, glTexture.texture);\n      }\n      if (glTexture.dirtyId !== texture.dirtyId) {\n        if (this.currentLocation !== location) {\n          this.currentLocation = location;\n          gl.activeTexture(gl.TEXTURE0 + location);\n        }\n        this.updateTexture(texture);\n      } else if (glTexture.dirtyStyleId !== texture.dirtyStyleId) {\n        this.updateTextureStyle(texture);\n      }\n      this.boundTextures[location] = texture;\n    } else {\n      if (this.currentLocation !== location) {\n        this.currentLocation = location;\n        gl.activeTexture(gl.TEXTURE0 + location);\n      }\n      gl.bindTexture(gl.TEXTURE_2D, this.emptyTextures[gl.TEXTURE_2D].texture);\n      this.boundTextures[location] = null;\n    }\n  }\n  reset() {\n    this._unknownBoundTextures = true;\n    this.hasIntegerTextures = false;\n    this.currentLocation = -1;\n    for (let i = 0; i < this.boundTextures.length; i++) {\n      this.boundTextures[i] = this.unknownTexture;\n    }\n  }\n  unbind(texture) {\n    const { gl, boundTextures } = this;\n    if (this._unknownBoundTextures) {\n      this._unknownBoundTextures = false;\n      for (let i = 0; i < boundTextures.length; i++) {\n        if (boundTextures[i] === this.unknownTexture) {\n          this.bind(null, i);\n        }\n      }\n    }\n    for (let i = 0; i < boundTextures.length; i++) {\n      if (boundTextures[i] === texture) {\n        if (this.currentLocation !== i) {\n          gl.activeTexture(gl.TEXTURE0 + i);\n          this.currentLocation = i;\n        }\n        gl.bindTexture(texture.target, this.emptyTextures[texture.target].texture);\n        boundTextures[i] = null;\n      }\n    }\n  }\n  ensureSamplerType(maxTextures) {\n    const { boundTextures, hasIntegerTextures, CONTEXT_UID } = this;\n    if (!hasIntegerTextures) {\n      return;\n    }\n    for (let i = maxTextures - 1; i >= 0; --i) {\n      const tex = boundTextures[i];\n      if (tex) {\n        const glTexture = tex._glTextures[CONTEXT_UID];\n        if (glTexture.samplerType !== SAMPLER_TYPES.FLOAT) {\n          this.renderer.texture.unbind(tex);\n        }\n      }\n    }\n  }\n  initTexture(texture) {\n    const glTexture = new GLTexture(this.gl.createTexture());\n    glTexture.dirtyId = -1;\n    texture._glTextures[this.CONTEXT_UID] = glTexture;\n    this.managedTextures.push(texture);\n    texture.on(\"dispose\", this.destroyTexture, this);\n    return glTexture;\n  }\n  initTextureType(texture, glTexture) {\n    glTexture.internalFormat = this.internalFormats[texture.type]?.[texture.format] ?? texture.format;\n    if (this.webGLVersion === 2 && texture.type === TYPES.HALF_FLOAT) {\n      glTexture.type = this.gl.HALF_FLOAT;\n    } else {\n      glTexture.type = texture.type;\n    }\n  }\n  updateTexture(texture) {\n    const glTexture = texture._glTextures[this.CONTEXT_UID];\n    if (!glTexture) {\n      return;\n    }\n    const renderer = this.renderer;\n    this.initTextureType(texture, glTexture);\n    if (texture.resource?.upload(renderer, texture, glTexture)) {\n      if (glTexture.samplerType !== SAMPLER_TYPES.FLOAT) {\n        this.hasIntegerTextures = true;\n      }\n    } else {\n      const width = texture.realWidth;\n      const height = texture.realHeight;\n      const gl = renderer.gl;\n      if (glTexture.width !== width || glTexture.height !== height || glTexture.dirtyId < 0) {\n        glTexture.width = width;\n        glTexture.height = height;\n        gl.texImage2D(texture.target, 0, glTexture.internalFormat, width, height, 0, texture.format, glTexture.type, null);\n      }\n    }\n    if (texture.dirtyStyleId !== glTexture.dirtyStyleId) {\n      this.updateTextureStyle(texture);\n    }\n    glTexture.dirtyId = texture.dirtyId;\n  }\n  destroyTexture(texture, skipRemove) {\n    const { gl } = this;\n    texture = texture.castToBaseTexture();\n    if (texture._glTextures[this.CONTEXT_UID]) {\n      this.unbind(texture);\n      gl.deleteTexture(texture._glTextures[this.CONTEXT_UID].texture);\n      texture.off(\"dispose\", this.destroyTexture, this);\n      delete texture._glTextures[this.CONTEXT_UID];\n      if (!skipRemove) {\n        const i = this.managedTextures.indexOf(texture);\n        if (i !== -1) {\n          removeItems(this.managedTextures, i, 1);\n        }\n      }\n    }\n  }\n  updateTextureStyle(texture) {\n    const glTexture = texture._glTextures[this.CONTEXT_UID];\n    if (!glTexture) {\n      return;\n    }\n    if ((texture.mipmap === MIPMAP_MODES.POW2 || this.webGLVersion !== 2) && !texture.isPowerOfTwo) {\n      glTexture.mipmap = false;\n    } else {\n      glTexture.mipmap = texture.mipmap >= 1;\n    }\n    if (this.webGLVersion !== 2 && !texture.isPowerOfTwo) {\n      glTexture.wrapMode = WRAP_MODES.CLAMP;\n    } else {\n      glTexture.wrapMode = texture.wrapMode;\n    }\n    if (texture.resource?.style(this.renderer, texture, glTexture)) {\n    } else {\n      this.setStyle(texture, glTexture);\n    }\n    glTexture.dirtyStyleId = texture.dirtyStyleId;\n  }\n  setStyle(texture, glTexture) {\n    const gl = this.gl;\n    if (glTexture.mipmap && texture.mipmap !== MIPMAP_MODES.ON_MANUAL) {\n      gl.generateMipmap(texture.target);\n    }\n    gl.texParameteri(texture.target, gl.TEXTURE_WRAP_S, glTexture.wrapMode);\n    gl.texParameteri(texture.target, gl.TEXTURE_WRAP_T, glTexture.wrapMode);\n    if (glTexture.mipmap) {\n      gl.texParameteri(texture.target, gl.TEXTURE_MIN_FILTER, texture.scaleMode === SCALE_MODES.LINEAR ? gl.LINEAR_MIPMAP_LINEAR : gl.NEAREST_MIPMAP_NEAREST);\n      const anisotropicExt = this.renderer.context.extensions.anisotropicFiltering;\n      if (anisotropicExt && texture.anisotropicLevel > 0 && texture.scaleMode === SCALE_MODES.LINEAR) {\n        const level = Math.min(texture.anisotropicLevel, gl.getParameter(anisotropicExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT));\n        gl.texParameterf(texture.target, anisotropicExt.TEXTURE_MAX_ANISOTROPY_EXT, level);\n      }\n    } else {\n      gl.texParameteri(texture.target, gl.TEXTURE_MIN_FILTER, texture.scaleMode === SCALE_MODES.LINEAR ? gl.LINEAR : gl.NEAREST);\n    }\n    gl.texParameteri(texture.target, gl.TEXTURE_MAG_FILTER, texture.scaleMode === SCALE_MODES.LINEAR ? gl.LINEAR : gl.NEAREST);\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nTextureSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"texture\"\n};\nextensions.add(TextureSystem);\n\nexport { TextureSystem };\n//# sourceMappingURL=TextureSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\n\nclass TransformFeedbackSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  contextChange() {\n    this.gl = this.renderer.gl;\n    this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n  }\n  bind(transformFeedback) {\n    const { gl, CONTEXT_UID } = this;\n    const glTransformFeedback = transformFeedback._glTransformFeedbacks[CONTEXT_UID] || this.createGLTransformFeedback(transformFeedback);\n    gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, glTransformFeedback);\n  }\n  unbind() {\n    const { gl } = this;\n    gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null);\n  }\n  beginTransformFeedback(drawMode, shader) {\n    const { gl, renderer } = this;\n    if (shader) {\n      renderer.shader.bind(shader);\n    }\n    gl.beginTransformFeedback(drawMode);\n  }\n  endTransformFeedback() {\n    const { gl } = this;\n    gl.endTransformFeedback();\n  }\n  createGLTransformFeedback(tf) {\n    const { gl, renderer, CONTEXT_UID } = this;\n    const glTransformFeedback = gl.createTransformFeedback();\n    tf._glTransformFeedbacks[CONTEXT_UID] = glTransformFeedback;\n    gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, glTransformFeedback);\n    for (let i = 0; i < tf.buffers.length; i++) {\n      const buffer = tf.buffers[i];\n      if (!buffer)\n        continue;\n      renderer.buffer.update(buffer);\n      buffer._glBuffers[CONTEXT_UID].refCount++;\n      gl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, i, buffer._glBuffers[CONTEXT_UID].buffer || null);\n    }\n    gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null);\n    tf.disposeRunner.add(this);\n    return glTransformFeedback;\n  }\n  disposeTransformFeedback(tf, contextLost) {\n    const glTF = tf._glTransformFeedbacks[this.CONTEXT_UID];\n    const gl = this.gl;\n    tf.disposeRunner.remove(this);\n    const bufferSystem = this.renderer.buffer;\n    if (bufferSystem) {\n      for (let i = 0; i < tf.buffers.length; i++) {\n        const buffer = tf.buffers[i];\n        if (!buffer)\n          continue;\n        const buf = buffer._glBuffers[this.CONTEXT_UID];\n        if (buf) {\n          buf.refCount--;\n          if (buf.refCount === 0 && !contextLost) {\n            bufferSystem.dispose(buffer, contextLost);\n          }\n        }\n      }\n    }\n    if (!glTF) {\n      return;\n    }\n    if (!contextLost) {\n      gl.deleteTransformFeedback(glTF);\n    }\n    delete tf._glTransformFeedbacks[this.CONTEXT_UID];\n  }\n  destroy() {\n    this.renderer = null;\n  }\n}\nTransformFeedbackSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"transformFeedback\"\n};\nextensions.add(TransformFeedbackSystem);\n\nexport { TransformFeedbackSystem };\n//# sourceMappingURL=TransformFeedbackSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { Rectangle } from '@pixi/math';\nimport { settings } from '@pixi/settings';\n\nclass ViewSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  init(options) {\n    this.screen = new Rectangle(0, 0, options.width, options.height);\n    this.element = options.view || settings.ADAPTER.createCanvas();\n    this.resolution = options.resolution || settings.RESOLUTION;\n    this.autoDensity = !!options.autoDensity;\n  }\n  resizeView(desiredScreenWidth, desiredScreenHeight) {\n    this.element.width = Math.round(desiredScreenWidth * this.resolution);\n    this.element.height = Math.round(desiredScreenHeight * this.resolution);\n    const screenWidth = this.element.width / this.resolution;\n    const screenHeight = this.element.height / this.resolution;\n    this.screen.width = screenWidth;\n    this.screen.height = screenHeight;\n    if (this.autoDensity) {\n      this.element.style.width = `${screenWidth}px`;\n      this.element.style.height = `${screenHeight}px`;\n    }\n    this.renderer.emit(\"resize\", screenWidth, screenHeight);\n    this.renderer.runners.resize.emit(this.screen.width, this.screen.height);\n  }\n  destroy(removeView) {\n    if (removeView) {\n      this.element.parentNode?.removeChild(this.element);\n    }\n    this.renderer = null;\n    this.element = null;\n    this.screen = null;\n  }\n}\nViewSystem.extension = {\n  type: [\n    ExtensionType.RendererSystem,\n    ExtensionType.CanvasRendererSystem\n  ],\n  name: \"_view\"\n};\nextensions.add(ViewSystem);\n\nexport { ViewSystem };\n//# sourceMappingURL=ViewSystem.mjs.map\n","import { ENV } from '@pixi/constants';\nimport { settings } from '@pixi/settings';\nimport { deprecation } from '@pixi/utils';\nimport { BatchRenderer } from './batch/BatchRenderer.mjs';\nimport { Filter } from './filters/Filter.mjs';\nimport { Program } from './shader/Program.mjs';\nimport './systems.mjs';\nimport { BaseTexture } from './textures/BaseTexture.mjs';\nimport { TextureGCSystem } from './textures/TextureGCSystem.mjs';\n\nsettings.PREFER_ENV = ENV.WEBGL2;\nsettings.STRICT_TEXTURE_CACHE = false;\nObject.defineProperties(settings, {\n  WRAP_MODE: {\n    get() {\n      return BaseTexture.defaultOptions.wrapMode;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode\");\n      BaseTexture.defaultOptions.wrapMode = value;\n    }\n  },\n  SCALE_MODE: {\n    get() {\n      return BaseTexture.defaultOptions.scaleMode;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode\");\n      BaseTexture.defaultOptions.scaleMode = value;\n    }\n  },\n  MIPMAP_TEXTURES: {\n    get() {\n      return BaseTexture.defaultOptions.mipmap;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap\");\n      BaseTexture.defaultOptions.mipmap = value;\n    }\n  },\n  ANISOTROPIC_LEVEL: {\n    get() {\n      return BaseTexture.defaultOptions.anisotropicLevel;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel\");\n      BaseTexture.defaultOptions.anisotropicLevel = value;\n    }\n  },\n  FILTER_RESOLUTION: {\n    get() {\n      deprecation(\"7.1.0\", \"settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution\");\n      return Filter.defaultResolution;\n    },\n    set(value) {\n      Filter.defaultResolution = value;\n    }\n  },\n  FILTER_MULTISAMPLE: {\n    get() {\n      deprecation(\"7.1.0\", \"settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample\");\n      return Filter.defaultMultisample;\n    },\n    set(value) {\n      Filter.defaultMultisample = value;\n    }\n  },\n  SPRITE_MAX_TEXTURES: {\n    get() {\n      return BatchRenderer.defaultMaxTextures;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures\");\n      BatchRenderer.defaultMaxTextures = value;\n    }\n  },\n  SPRITE_BATCH_SIZE: {\n    get() {\n      return BatchRenderer.defaultBatchSize;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize\");\n      BatchRenderer.defaultBatchSize = value;\n    }\n  },\n  CAN_UPLOAD_SAME_BUFFER: {\n    get() {\n      return BatchRenderer.canUploadSameBuffer;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer\");\n      BatchRenderer.canUploadSameBuffer = value;\n    }\n  },\n  GC_MODE: {\n    get() {\n      return TextureGCSystem.defaultMode;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode\");\n      TextureGCSystem.defaultMode = value;\n    }\n  },\n  GC_MAX_IDLE: {\n    get() {\n      return TextureGCSystem.defaultMaxIdle;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle\");\n      TextureGCSystem.defaultMaxIdle = value;\n    }\n  },\n  GC_MAX_CHECK_COUNT: {\n    get() {\n      return TextureGCSystem.defaultCheckCountMax;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax\");\n      TextureGCSystem.defaultCheckCountMax = value;\n    }\n  },\n  PRECISION_VERTEX: {\n    get() {\n      return Program.defaultVertexPrecision;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision\");\n      Program.defaultVertexPrecision = value;\n    }\n  },\n  PRECISION_FRAGMENT: {\n    get() {\n      return Program.defaultFragmentPrecision;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision\");\n      Program.defaultFragmentPrecision = value;\n    }\n  }\n});\n//# sourceMappingURL=settings.mjs.map\n","var UPDATE_PRIORITY = /* @__PURE__ */ ((UPDATE_PRIORITY2) => {\n  UPDATE_PRIORITY2[UPDATE_PRIORITY2[\"HIGH\"] = 25] = \"HIGH\";\n  UPDATE_PRIORITY2[UPDATE_PRIORITY2[\"NORMAL\"] = 0] = \"NORMAL\";\n  UPDATE_PRIORITY2[UPDATE_PRIORITY2[\"LOW\"] = -25] = \"LOW\";\n  UPDATE_PRIORITY2[UPDATE_PRIORITY2[\"UTILITY\"] = -50] = \"UTILITY\";\n  return UPDATE_PRIORITY2;\n})(UPDATE_PRIORITY || {});\n\nexport { UPDATE_PRIORITY };\n//# sourceMappingURL=const.mjs.map\n","class TickerListener {\n  constructor(fn, context = null, priority = 0, once = false) {\n    this.next = null;\n    this.previous = null;\n    this._destroyed = false;\n    this.fn = fn;\n    this.context = context;\n    this.priority = priority;\n    this.once = once;\n  }\n  match(fn, context = null) {\n    return this.fn === fn && this.context === context;\n  }\n  emit(deltaTime) {\n    if (this.fn) {\n      if (this.context) {\n        this.fn.call(this.context, deltaTime);\n      } else {\n        this.fn(deltaTime);\n      }\n    }\n    const redirect = this.next;\n    if (this.once) {\n      this.destroy(true);\n    }\n    if (this._destroyed) {\n      this.next = null;\n    }\n    return redirect;\n  }\n  connect(previous) {\n    this.previous = previous;\n    if (previous.next) {\n      previous.next.previous = this;\n    }\n    this.next = previous.next;\n    previous.next = this;\n  }\n  destroy(hard = false) {\n    this._destroyed = true;\n    this.fn = null;\n    this.context = null;\n    if (this.previous) {\n      this.previous.next = this.next;\n    }\n    if (this.next) {\n      this.next.previous = this.previous;\n    }\n    const redirect = this.next;\n    this.next = hard ? null : redirect;\n    this.previous = null;\n    return redirect;\n  }\n}\n\nexport { TickerListener };\n//# sourceMappingURL=TickerListener.mjs.map\n","import { UPDATE_PRIORITY } from './const.mjs';\nimport { TickerListener } from './TickerListener.mjs';\n\nconst _Ticker = class {\n  constructor() {\n    this.autoStart = false;\n    this.deltaTime = 1;\n    this.lastTime = -1;\n    this.speed = 1;\n    this.started = false;\n    this._requestId = null;\n    this._maxElapsedMS = 100;\n    this._minElapsedMS = 0;\n    this._protected = false;\n    this._lastFrame = -1;\n    this._head = new TickerListener(null, null, Infinity);\n    this.deltaMS = 1 / _Ticker.targetFPMS;\n    this.elapsedMS = 1 / _Ticker.targetFPMS;\n    this._tick = (time) => {\n      this._requestId = null;\n      if (this.started) {\n        this.update(time);\n        if (this.started && this._requestId === null && this._head.next) {\n          this._requestId = requestAnimationFrame(this._tick);\n        }\n      }\n    };\n  }\n  _requestIfNeeded() {\n    if (this._requestId === null && this._head.next) {\n      this.lastTime = performance.now();\n      this._lastFrame = this.lastTime;\n      this._requestId = requestAnimationFrame(this._tick);\n    }\n  }\n  _cancelIfNeeded() {\n    if (this._requestId !== null) {\n      cancelAnimationFrame(this._requestId);\n      this._requestId = null;\n    }\n  }\n  _startIfPossible() {\n    if (this.started) {\n      this._requestIfNeeded();\n    } else if (this.autoStart) {\n      this.start();\n    }\n  }\n  add(fn, context, priority = UPDATE_PRIORITY.NORMAL) {\n    return this._addListener(new TickerListener(fn, context, priority));\n  }\n  addOnce(fn, context, priority = UPDATE_PRIORITY.NORMAL) {\n    return this._addListener(new TickerListener(fn, context, priority, true));\n  }\n  _addListener(listener) {\n    let current = this._head.next;\n    let previous = this._head;\n    if (!current) {\n      listener.connect(previous);\n    } else {\n      while (current) {\n        if (listener.priority > current.priority) {\n          listener.connect(previous);\n          break;\n        }\n        previous = current;\n        current = current.next;\n      }\n      if (!listener.previous) {\n        listener.connect(previous);\n      }\n    }\n    this._startIfPossible();\n    return this;\n  }\n  remove(fn, context) {\n    let listener = this._head.next;\n    while (listener) {\n      if (listener.match(fn, context)) {\n        listener = listener.destroy();\n      } else {\n        listener = listener.next;\n      }\n    }\n    if (!this._head.next) {\n      this._cancelIfNeeded();\n    }\n    return this;\n  }\n  get count() {\n    if (!this._head) {\n      return 0;\n    }\n    let count = 0;\n    let current = this._head;\n    while (current = current.next) {\n      count++;\n    }\n    return count;\n  }\n  start() {\n    if (!this.started) {\n      this.started = true;\n      this._requestIfNeeded();\n    }\n  }\n  stop() {\n    if (this.started) {\n      this.started = false;\n      this._cancelIfNeeded();\n    }\n  }\n  destroy() {\n    if (!this._protected) {\n      this.stop();\n      let listener = this._head.next;\n      while (listener) {\n        listener = listener.destroy(true);\n      }\n      this._head.destroy();\n      this._head = null;\n    }\n  }\n  update(currentTime = performance.now()) {\n    let elapsedMS;\n    if (currentTime > this.lastTime) {\n      elapsedMS = this.elapsedMS = currentTime - this.lastTime;\n      if (elapsedMS > this._maxElapsedMS) {\n        elapsedMS = this._maxElapsedMS;\n      }\n      elapsedMS *= this.speed;\n      if (this._minElapsedMS) {\n        const delta = currentTime - this._lastFrame | 0;\n        if (delta < this._minElapsedMS) {\n          return;\n        }\n        this._lastFrame = currentTime - delta % this._minElapsedMS;\n      }\n      this.deltaMS = elapsedMS;\n      this.deltaTime = this.deltaMS * _Ticker.targetFPMS;\n      const head = this._head;\n      let listener = head.next;\n      while (listener) {\n        listener = listener.emit(this.deltaTime);\n      }\n      if (!head.next) {\n        this._cancelIfNeeded();\n      }\n    } else {\n      this.deltaTime = this.deltaMS = this.elapsedMS = 0;\n    }\n    this.lastTime = currentTime;\n  }\n  get FPS() {\n    return 1e3 / this.elapsedMS;\n  }\n  get minFPS() {\n    return 1e3 / this._maxElapsedMS;\n  }\n  set minFPS(fps) {\n    const minFPS = Math.min(this.maxFPS, fps);\n    const minFPMS = Math.min(Math.max(0, minFPS) / 1e3, _Ticker.targetFPMS);\n    this._maxElapsedMS = 1 / minFPMS;\n  }\n  get maxFPS() {\n    if (this._minElapsedMS) {\n      return Math.round(1e3 / this._minElapsedMS);\n    }\n    return 0;\n  }\n  set maxFPS(fps) {\n    if (fps === 0) {\n      this._minElapsedMS = 0;\n    } else {\n      const maxFPS = Math.max(this.minFPS, fps);\n      this._minElapsedMS = 1 / (maxFPS / 1e3);\n    }\n  }\n  static get shared() {\n    if (!_Ticker._shared) {\n      const shared = _Ticker._shared = new _Ticker();\n      shared.autoStart = true;\n      shared._protected = true;\n    }\n    return _Ticker._shared;\n  }\n  static get system() {\n    if (!_Ticker._system) {\n      const system = _Ticker._system = new _Ticker();\n      system.autoStart = true;\n      system._protected = true;\n    }\n    return _Ticker._system;\n  }\n};\nlet Ticker = _Ticker;\nTicker.targetFPMS = 0.06;\n\nexport { Ticker };\n//# sourceMappingURL=Ticker.mjs.map\n","import { settings } from '@pixi/settings';\nexport { settings } from '@pixi/settings';\nimport { deprecation } from '@pixi/utils';\nimport { Ticker } from './Ticker.mjs';\n\nObject.defineProperties(settings, {\n  TARGET_FPMS: {\n    get() {\n      return Ticker.targetFPMS;\n    },\n    set(value) {\n      deprecation(\"7.1.0\", \"settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS\");\n      Ticker.targetFPMS = value;\n    }\n  }\n});\n//# sourceMappingURL=settings.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { UPDATE_PRIORITY } from './const.mjs';\nimport { Ticker } from './Ticker.mjs';\n\nclass TickerPlugin {\n  static init(options) {\n    options = Object.assign({\n      autoStart: true,\n      sharedTicker: false\n    }, options);\n    Object.defineProperty(this, \"ticker\", {\n      set(ticker) {\n        if (this._ticker) {\n          this._ticker.remove(this.render, this);\n        }\n        this._ticker = ticker;\n        if (ticker) {\n          ticker.add(this.render, this, UPDATE_PRIORITY.LOW);\n        }\n      },\n      get() {\n        return this._ticker;\n      }\n    });\n    this.stop = () => {\n      this._ticker.stop();\n    };\n    this.start = () => {\n      this._ticker.start();\n    };\n    this._ticker = null;\n    this.ticker = options.sharedTicker ? Ticker.shared : new Ticker();\n    if (options.autoStart) {\n      this.start();\n    }\n  }\n  static destroy() {\n    if (this._ticker) {\n      const oldTicker = this._ticker;\n      this.ticker = null;\n      oldTicker.destroy();\n    }\n  }\n}\nTickerPlugin.extension = ExtensionType.Application;\nextensions.add(TickerPlugin);\n\nexport { TickerPlugin };\n//# sourceMappingURL=TickerPlugin.mjs.map\n","import { extensions, ExtensionType } from '@pixi/extensions';\n\nconst renderers = [];\nextensions.handleByList(ExtensionType.Renderer, renderers);\nfunction autoDetectRenderer(options) {\n  for (const RendererType of renderers) {\n    if (RendererType.test(options)) {\n      return new RendererType(options);\n    }\n  }\n  throw new Error(\"Unable to auto-detect a suitable renderer.\");\n}\n\nexport { autoDetectRenderer };\n//# sourceMappingURL=autoDetectRenderer.mjs.map\n","var $defaultVertex = \"attribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\n\\nvarying vec2 vTextureCoord;\\n\\nvoid main(void)\\n{\\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n    vTextureCoord = aTextureCoord;\\n}\";\n\nexport { $defaultVertex as default };\n//# sourceMappingURL=default.mjs.map\n","var $defaultFilterVertex = \"attribute vec2 aVertexPosition;\\n\\nuniform mat3 projectionMatrix;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform vec4 inputSize;\\nuniform vec4 outputFrame;\\n\\nvec4 filterVertexPosition( void )\\n{\\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\\n\\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\\n}\\n\\nvec2 filterTextureCoord( void )\\n{\\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\\n}\\n\\nvoid main(void)\\n{\\n    gl_Position = filterVertexPosition();\\n    vTextureCoord = filterTextureCoord();\\n}\\n\";\n\nexport { $defaultFilterVertex as default };\n//# sourceMappingURL=defaultFilter.mjs.map\n","import $defaultVertex from './default.mjs';\nimport $defaultFilterVertex from './defaultFilter.mjs';\n\nconst defaultVertex = $defaultVertex;\nconst defaultFilterVertex = $defaultFilterVertex;\n\nexport { defaultFilterVertex, defaultVertex };\n//# sourceMappingURL=index.mjs.map\n","import { MSAA_QUALITY } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\n\nclass MultisampleSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  contextChange(gl) {\n    let samples;\n    if (this.renderer.context.webGLVersion === 1) {\n      const framebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);\n      gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n      samples = gl.getParameter(gl.SAMPLES);\n      gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n    } else {\n      const framebuffer = gl.getParameter(gl.DRAW_FRAMEBUFFER_BINDING);\n      gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\n      samples = gl.getParameter(gl.SAMPLES);\n      gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, framebuffer);\n    }\n    if (samples >= MSAA_QUALITY.HIGH) {\n      this.multisample = MSAA_QUALITY.HIGH;\n    } else if (samples >= MSAA_QUALITY.MEDIUM) {\n      this.multisample = MSAA_QUALITY.MEDIUM;\n    } else if (samples >= MSAA_QUALITY.LOW) {\n      this.multisample = MSAA_QUALITY.LOW;\n    } else {\n      this.multisample = MSAA_QUALITY.NONE;\n    }\n  }\n  destroy() {\n  }\n}\nMultisampleSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"_multisample\"\n};\nextensions.add(MultisampleSystem);\n\nexport { MultisampleSystem };\n//# sourceMappingURL=MultisampleSystem.mjs.map\n","class GLBuffer {\n  constructor(buffer) {\n    this.buffer = buffer || null;\n    this.updateID = -1;\n    this.byteLength = -1;\n    this.refCount = 0;\n  }\n}\n\nexport { GLBuffer };\n//# sourceMappingURL=GLBuffer.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\nimport { GLBuffer } from './GLBuffer.mjs';\n\nclass BufferSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n    this.managedBuffers = {};\n    this.boundBufferBases = {};\n  }\n  destroy() {\n    this.renderer = null;\n  }\n  contextChange() {\n    this.disposeAll(true);\n    this.gl = this.renderer.gl;\n    this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n  }\n  bind(buffer) {\n    const { gl, CONTEXT_UID } = this;\n    const glBuffer = buffer._glBuffers[CONTEXT_UID] || this.createGLBuffer(buffer);\n    gl.bindBuffer(buffer.type, glBuffer.buffer);\n  }\n  unbind(type) {\n    const { gl } = this;\n    gl.bindBuffer(type, null);\n  }\n  bindBufferBase(buffer, index) {\n    const { gl, CONTEXT_UID } = this;\n    if (this.boundBufferBases[index] !== buffer) {\n      const glBuffer = buffer._glBuffers[CONTEXT_UID] || this.createGLBuffer(buffer);\n      this.boundBufferBases[index] = buffer;\n      gl.bindBufferBase(gl.UNIFORM_BUFFER, index, glBuffer.buffer);\n    }\n  }\n  bindBufferRange(buffer, index, offset) {\n    const { gl, CONTEXT_UID } = this;\n    offset = offset || 0;\n    const glBuffer = buffer._glBuffers[CONTEXT_UID] || this.createGLBuffer(buffer);\n    gl.bindBufferRange(gl.UNIFORM_BUFFER, index || 0, glBuffer.buffer, offset * 256, 256);\n  }\n  update(buffer) {\n    const { gl, CONTEXT_UID } = this;\n    const glBuffer = buffer._glBuffers[CONTEXT_UID] || this.createGLBuffer(buffer);\n    if (buffer._updateID === glBuffer.updateID) {\n      return;\n    }\n    glBuffer.updateID = buffer._updateID;\n    gl.bindBuffer(buffer.type, glBuffer.buffer);\n    if (glBuffer.byteLength >= buffer.data.byteLength) {\n      gl.bufferSubData(buffer.type, 0, buffer.data);\n    } else {\n      const drawType = buffer.static ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW;\n      glBuffer.byteLength = buffer.data.byteLength;\n      gl.bufferData(buffer.type, buffer.data, drawType);\n    }\n  }\n  dispose(buffer, contextLost) {\n    if (!this.managedBuffers[buffer.id]) {\n      return;\n    }\n    delete this.managedBuffers[buffer.id];\n    const glBuffer = buffer._glBuffers[this.CONTEXT_UID];\n    const gl = this.gl;\n    buffer.disposeRunner.remove(this);\n    if (!glBuffer) {\n      return;\n    }\n    if (!contextLost) {\n      gl.deleteBuffer(glBuffer.buffer);\n    }\n    delete buffer._glBuffers[this.CONTEXT_UID];\n  }\n  disposeAll(contextLost) {\n    const all = Object.keys(this.managedBuffers);\n    for (let i = 0; i < all.length; i++) {\n      this.dispose(this.managedBuffers[all[i]], contextLost);\n    }\n  }\n  createGLBuffer(buffer) {\n    const { CONTEXT_UID, gl } = this;\n    buffer._glBuffers[CONTEXT_UID] = new GLBuffer(gl.createBuffer());\n    this.managedBuffers[buffer.id] = buffer;\n    buffer.disposeRunner.add(this);\n    return buffer._glBuffers[CONTEXT_UID];\n  }\n}\nBufferSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"buffer\"\n};\nextensions.add(BufferSystem);\n\nexport { BufferSystem };\n//# sourceMappingURL=BufferSystem.mjs.map\n","import { ExtensionType, extensions } from '@pixi/extensions';\n\nclass ObjectRendererSystem {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  render(displayObject, options) {\n    const renderer = this.renderer;\n    let renderTexture;\n    let clear;\n    let transform;\n    let skipUpdateTransform;\n    if (options) {\n      renderTexture = options.renderTexture;\n      clear = options.clear;\n      transform = options.transform;\n      skipUpdateTransform = options.skipUpdateTransform;\n    }\n    this.renderingToScreen = !renderTexture;\n    renderer.runners.prerender.emit();\n    renderer.emit(\"prerender\");\n    renderer.projection.transform = transform;\n    if (renderer.context.isLost) {\n      return;\n    }\n    if (!renderTexture) {\n      this.lastObjectRendered = displayObject;\n    }\n    if (!skipUpdateTransform) {\n      const cacheParent = displayObject.enableTempParent();\n      displayObject.updateTransform();\n      displayObject.disableTempParent(cacheParent);\n    }\n    renderer.renderTexture.bind(renderTexture);\n    renderer.batch.currentRenderer.start();\n    if (clear ?? renderer.background.clearBeforeRender) {\n      renderer.renderTexture.clear();\n    }\n    displayObject.render(renderer);\n    renderer.batch.currentRenderer.flush();\n    if (renderTexture) {\n      if (options.blit) {\n        renderer.framebuffer.blit();\n      }\n      renderTexture.baseTexture.update();\n    }\n    renderer.runners.postrender.emit();\n    renderer.projection.transform = null;\n    renderer.emit(\"postrender\");\n  }\n  destroy() {\n    this.renderer = null;\n    this.lastObjectRendered = null;\n  }\n}\nObjectRendererSystem.extension = {\n  type: ExtensionType.RendererSystem,\n  name: \"objectRenderer\"\n};\nextensions.add(ObjectRendererSystem);\n\nexport { ObjectRendererSystem };\n//# sourceMappingURL=ObjectRendererSystem.mjs.map\n","import { RENDERER_TYPE } from '@pixi/constants';\nimport { ExtensionType, extensions } from '@pixi/extensions';\nimport { Matrix } from '@pixi/math';\nimport { settings } from '@pixi/settings';\nimport { deprecation, isWebGLSupported } from '@pixi/utils';\nimport { UniformGroup } from './shader/UniformGroup.mjs';\nimport { SystemManager } from './system/SystemManager.mjs';\n\nconst _Renderer = class extends SystemManager {\n  constructor(options) {\n    super();\n    this.type = RENDERER_TYPE.WEBGL;\n    options = Object.assign({}, settings.RENDER_OPTIONS, options);\n    this.gl = null;\n    this.CONTEXT_UID = 0;\n    this.globalUniforms = new UniformGroup({\n      projectionMatrix: new Matrix()\n    }, true);\n    const systemConfig = {\n      runners: [\n        \"init\",\n        \"destroy\",\n        \"contextChange\",\n        \"resolutionChange\",\n        \"reset\",\n        \"update\",\n        \"postrender\",\n        \"prerender\",\n        \"resize\"\n      ],\n      systems: _Renderer.__systems,\n      priority: [\n        \"_view\",\n        \"textureGenerator\",\n        \"background\",\n        \"_plugin\",\n        \"startup\",\n        \"context\",\n        \"state\",\n        \"texture\",\n        \"buffer\",\n        \"geometry\",\n        \"framebuffer\",\n        \"transformFeedback\",\n        \"mask\",\n        \"scissor\",\n        \"stencil\",\n        \"projection\",\n        \"textureGC\",\n        \"filter\",\n        \"renderTexture\",\n        \"batch\",\n        \"objectRenderer\",\n        \"_multisample\"\n      ]\n    };\n    this.setup(systemConfig);\n    if (\"useContextAlpha\" in options) {\n      deprecation(\"7.0.0\", \"options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead\");\n      options.premultipliedAlpha = options.useContextAlpha && options.useContextAlpha !== \"notMultiplied\";\n      options.backgroundAlpha = options.useContextAlpha === false ? 1 : options.backgroundAlpha;\n    }\n    const startupOptions = {\n      hello: options.hello,\n      _plugin: _Renderer.__plugins,\n      background: {\n        alpha: options.backgroundAlpha,\n        color: options.background ?? options.backgroundColor,\n        clearBeforeRender: options.clearBeforeRender\n      },\n      _view: {\n        height: options.height,\n        width: options.width,\n        autoDensity: options.autoDensity,\n        resolution: options.resolution,\n        view: options.view\n      },\n      context: {\n        antialias: options.antialias,\n        context: options.context,\n        powerPreference: options.powerPreference,\n        premultipliedAlpha: options.premultipliedAlpha,\n        preserveDrawingBuffer: options.preserveDrawingBuffer\n      }\n    };\n    this.options = options;\n    this.startup.run(startupOptions);\n  }\n  static test(options) {\n    if (options?.forceCanvas) {\n      return false;\n    }\n    return isWebGLSupported();\n  }\n  render(displayObject, options) {\n    this.objectRenderer.render(displayObject, options);\n  }\n  resize(desiredScreenWidth, desiredScreenHeight) {\n    this._view.resizeView(desiredScreenWidth, desiredScreenHeight);\n  }\n  reset() {\n    this.runners.reset.emit();\n    return this;\n  }\n  clear() {\n    this.renderTexture.bind();\n    this.renderTexture.clear();\n  }\n  destroy(removeView = false) {\n    this.runners.destroy.items.reverse();\n    this.emitWithCustomOptions(this.runners.destroy, {\n      _view: removeView\n    });\n    super.destroy();\n  }\n  get plugins() {\n    return this._plugin.plugins;\n  }\n  get multisample() {\n    return this._multisample.multisample;\n  }\n  get width() {\n    return this._view.element.width;\n  }\n  get height() {\n    return this._view.element.height;\n  }\n  get resolution() {\n    return this._view.resolution;\n  }\n  set resolution(value) {\n    this._view.resolution = value;\n    this.runners.resolutionChange.emit(value);\n  }\n  get autoDensity() {\n    return this._view.autoDensity;\n  }\n  get view() {\n    return this._view.element;\n  }\n  get screen() {\n    return this._view.screen;\n  }\n  get lastObjectRendered() {\n    return this.objectRenderer.lastObjectRendered;\n  }\n  get renderingToScreen() {\n    return this.objectRenderer.renderingToScreen;\n  }\n  get rendererLogId() {\n    return `WebGL ${this.context.webGLVersion}`;\n  }\n  get clearBeforeRender() {\n    deprecation(\"7.0.0\", \"renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead.\");\n    return this.background.clearBeforeRender;\n  }\n  get useContextAlpha() {\n    deprecation(\"7.0.0\", \"renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead.\");\n    return this.context.useContextAlpha;\n  }\n  get preserveDrawingBuffer() {\n    deprecation(\"7.0.0\", \"renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context\");\n    return this.context.preserveDrawingBuffer;\n  }\n  get backgroundColor() {\n    deprecation(\"7.0.0\", \"renderer.backgroundColor has been deprecated, use renderer.background.color instead.\");\n    return this.background.color;\n  }\n  set backgroundColor(value) {\n    deprecation(\"7.0.0\", \"renderer.backgroundColor has been deprecated, use renderer.background.color instead.\");\n    this.background.color = value;\n  }\n  get backgroundAlpha() {\n    deprecation(\"7.0.0\", \"renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.\");\n    return this.background.color;\n  }\n  set backgroundAlpha(value) {\n    deprecation(\"7.0.0\", \"renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.\");\n    this.background.alpha = value;\n  }\n  get powerPreference() {\n    deprecation(\"7.0.0\", \"renderer.powerPreference has been deprecated, we can only know this if pixi creates the context\");\n    return this.context.powerPreference;\n  }\n  generateTexture(displayObject, options) {\n    return this.textureGenerator.generateTexture(displayObject, options);\n  }\n};\nlet Renderer = _Renderer;\nRenderer.extension = {\n  type: ExtensionType.Renderer,\n  priority: 1\n};\nRenderer.__plugins = {};\nRenderer.__systems = {};\nextensions.handleByMap(ExtensionType.RendererPlugin, Renderer.__plugins);\nextensions.handleByMap(ExtensionType.RendererSystem, Renderer.__systems);\nextensions.add(Renderer);\n\nexport { Renderer };\n//# sourceMappingURL=Renderer.mjs.map\n","import { BaseTexture } from '../BaseTexture.mjs';\nimport { autoDetectResource } from './autoDetectResource.mjs';\nimport { Resource } from './Resource.mjs';\n\nclass AbstractMultiResource extends Resource {\n  constructor(length, options) {\n    const { width, height } = options || {};\n    super(width, height);\n    this.items = [];\n    this.itemDirtyIds = [];\n    for (let i = 0; i < length; i++) {\n      const partTexture = new BaseTexture();\n      this.items.push(partTexture);\n      this.itemDirtyIds.push(-2);\n    }\n    this.length = length;\n    this._load = null;\n    this.baseTexture = null;\n  }\n  initFromArray(resources, options) {\n    for (let i = 0; i < this.length; i++) {\n      if (!resources[i]) {\n        continue;\n      }\n      if (resources[i].castToBaseTexture) {\n        this.addBaseTextureAt(resources[i].castToBaseTexture(), i);\n      } else if (resources[i] instanceof Resource) {\n        this.addResourceAt(resources[i], i);\n      } else {\n        this.addResourceAt(autoDetectResource(resources[i], options), i);\n      }\n    }\n  }\n  dispose() {\n    for (let i = 0, len = this.length; i < len; i++) {\n      this.items[i].destroy();\n    }\n    this.items = null;\n    this.itemDirtyIds = null;\n    this._load = null;\n  }\n  addResourceAt(resource, index) {\n    if (!this.items[index]) {\n      throw new Error(`Index ${index} is out of bounds`);\n    }\n    if (resource.valid && !this.valid) {\n      this.resize(resource.width, resource.height);\n    }\n    this.items[index].setResource(resource);\n    return this;\n  }\n  bind(baseTexture) {\n    if (this.baseTexture !== null) {\n      throw new Error(\"Only one base texture per TextureArray is allowed\");\n    }\n    super.bind(baseTexture);\n    for (let i = 0; i < this.length; i++) {\n      this.items[i].parentTextureArray = baseTexture;\n      this.items[i].on(\"update\", baseTexture.update, baseTexture);\n    }\n  }\n  unbind(baseTexture) {\n    super.unbind(baseTexture);\n    for (let i = 0; i < this.length; i++) {\n      this.items[i].parentTextureArray = null;\n      this.items[i].off(\"update\", baseTexture.update, baseTexture);\n    }\n  }\n  load() {\n    if (this._load) {\n      return this._load;\n    }\n    const resources = this.items.map((item) => item.resource).filter((item) => item);\n    const promises = resources.map((item) => item.load());\n    this._load = Promise.all(promises).then(() => {\n      const { realWidth, realHeight } = this.items[0];\n      this.resize(realWidth, realHeight);\n      return Promise.resolve(this);\n    });\n    return this._load;\n  }\n}\n\nexport { AbstractMultiResource };\n//# sourceMappingURL=AbstractMultiResource.mjs.map\n","import { TARGETS } from '@pixi/constants';\nimport { AbstractMultiResource } from './AbstractMultiResource.mjs';\n\nclass ArrayResource extends AbstractMultiResource {\n  constructor(source, options) {\n    const { width, height } = options || {};\n    let urls;\n    let length;\n    if (Array.isArray(source)) {\n      urls = source;\n      length = source.length;\n    } else {\n      length = source;\n    }\n    super(length, { width, height });\n    if (urls) {\n      this.initFromArray(urls, options);\n    }\n  }\n  addBaseTextureAt(baseTexture, index) {\n    if (baseTexture.resource) {\n      this.addResourceAt(baseTexture.resource, index);\n    } else {\n      throw new Error(\"ArrayResource does not support RenderTexture\");\n    }\n    return this;\n  }\n  bind(baseTexture) {\n    super.bind(baseTexture);\n    baseTexture.target = TARGETS.TEXTURE_2D_ARRAY;\n  }\n  upload(renderer, texture, glTexture) {\n    const { length, itemDirtyIds, items } = this;\n    const { gl } = renderer;\n    if (glTexture.dirtyId < 0) {\n      gl.texImage3D(gl.TEXTURE_2D_ARRAY, 0, glTexture.internalFormat, this._width, this._height, length, 0, texture.format, glTexture.type, null);\n    }\n    for (let i = 0; i < length; i++) {\n      const item = items[i];\n      if (itemDirtyIds[i] < item.dirtyId) {\n        itemDirtyIds[i] = item.dirtyId;\n        if (item.valid) {\n          gl.texSubImage3D(gl.TEXTURE_2D_ARRAY, 0, 0, 0, i, item.resource.width, item.resource.height, 1, texture.format, glTexture.type, item.resource.source);\n        }\n      }\n    }\n    return true;\n  }\n}\n\nexport { ArrayResource };\n//# sourceMappingURL=ArrayResource.mjs.map\n","import { BaseImageResource } from './BaseImageResource.mjs';\n\nclass CanvasResource extends BaseImageResource {\n  constructor(source) {\n    super(source);\n  }\n  static test(source) {\n    const { OffscreenCanvas } = globalThis;\n    if (OffscreenCanvas && source instanceof OffscreenCanvas) {\n      return true;\n    }\n    return globalThis.HTMLCanvasElement && source instanceof HTMLCanvasElement;\n  }\n}\n\nexport { CanvasResource };\n//# sourceMappingURL=CanvasResource.mjs.map\n","import { TARGETS } from '@pixi/constants';\nimport { AbstractMultiResource } from './AbstractMultiResource.mjs';\n\nconst _CubeResource = class extends AbstractMultiResource {\n  constructor(source, options) {\n    const { width, height, autoLoad, linkBaseTexture } = options || {};\n    if (source && source.length !== _CubeResource.SIDES) {\n      throw new Error(`Invalid length. Got ${source.length}, expected 6`);\n    }\n    super(6, { width, height });\n    for (let i = 0; i < _CubeResource.SIDES; i++) {\n      this.items[i].target = TARGETS.TEXTURE_CUBE_MAP_POSITIVE_X + i;\n    }\n    this.linkBaseTexture = linkBaseTexture !== false;\n    if (source) {\n      this.initFromArray(source, options);\n    }\n    if (autoLoad !== false) {\n      this.load();\n    }\n  }\n  bind(baseTexture) {\n    super.bind(baseTexture);\n    baseTexture.target = TARGETS.TEXTURE_CUBE_MAP;\n  }\n  addBaseTextureAt(baseTexture, index, linkBaseTexture) {\n    if (linkBaseTexture === void 0) {\n      linkBaseTexture = this.linkBaseTexture;\n    }\n    if (!this.items[index]) {\n      throw new Error(`Index ${index} is out of bounds`);\n    }\n    if (!this.linkBaseTexture || baseTexture.parentTextureArray || Object.keys(baseTexture._glTextures).length > 0) {\n      if (baseTexture.resource) {\n        this.addResourceAt(baseTexture.resource, index);\n      } else {\n        throw new Error(`CubeResource does not support copying of renderTexture.`);\n      }\n    } else {\n      baseTexture.target = TARGETS.TEXTURE_CUBE_MAP_POSITIVE_X + index;\n      baseTexture.parentTextureArray = this.baseTexture;\n      this.items[index] = baseTexture;\n    }\n    if (baseTexture.valid && !this.valid) {\n      this.resize(baseTexture.realWidth, baseTexture.realHeight);\n    }\n    this.items[index] = baseTexture;\n    return this;\n  }\n  upload(renderer, _baseTexture, glTexture) {\n    const dirty = this.itemDirtyIds;\n    for (let i = 0; i < _CubeResource.SIDES; i++) {\n      const side = this.items[i];\n      if (dirty[i] < side.dirtyId || glTexture.dirtyId < _baseTexture.dirtyId) {\n        if (side.valid && side.resource) {\n          side.resource.upload(renderer, side, glTexture);\n          dirty[i] = side.dirtyId;\n        } else if (dirty[i] < -1) {\n          renderer.gl.texImage2D(side.target, 0, glTexture.internalFormat, _baseTexture.realWidth, _baseTexture.realHeight, 0, _baseTexture.format, glTexture.type, null);\n          dirty[i] = -1;\n        }\n      }\n    }\n    return true;\n  }\n  static test(source) {\n    return Array.isArray(source) && source.length === _CubeResource.SIDES;\n  }\n};\nlet CubeResource = _CubeResource;\nCubeResource.SIDES = 6;\n\nexport { CubeResource };\n//# sourceMappingURL=CubeResource.mjs.map\n","import { ALPHA_MODES } from '@pixi/constants';\nimport { settings } from '@pixi/settings';\nimport { BaseImageResource } from './BaseImageResource.mjs';\n\nclass ImageBitmapResource extends BaseImageResource {\n  constructor(source, options) {\n    options = options || {};\n    let baseSource;\n    let url;\n    if (typeof source === \"string\") {\n      baseSource = ImageBitmapResource.EMPTY;\n      url = source;\n    } else {\n      baseSource = source;\n      url = null;\n    }\n    super(baseSource);\n    this.url = url;\n    this.crossOrigin = options.crossOrigin ?? true;\n    this.alphaMode = typeof options.alphaMode === \"number\" ? options.alphaMode : null;\n    this._load = null;\n    if (options.autoLoad !== false) {\n      this.load();\n    }\n  }\n  load() {\n    if (this._load) {\n      return this._load;\n    }\n    this._load = new Promise(async (resolve, reject) => {\n      if (this.url === null) {\n        resolve(this);\n        return;\n      }\n      try {\n        const response = await settings.ADAPTER.fetch(this.url, {\n          mode: this.crossOrigin ? \"cors\" : \"no-cors\"\n        });\n        if (this.destroyed)\n          return;\n        const imageBlob = await response.blob();\n        if (this.destroyed)\n          return;\n        const imageBitmap = await createImageBitmap(imageBlob, {\n          premultiplyAlpha: this.alphaMode === null || this.alphaMode === ALPHA_MODES.UNPACK ? \"premultiply\" : \"none\"\n        });\n        if (this.destroyed)\n          return;\n        this.source = imageBitmap;\n        this.update();\n        resolve(this);\n      } catch (e) {\n        if (this.destroyed)\n          return;\n        reject(e);\n        this.onError.emit(e);\n      }\n    });\n    return this._load;\n  }\n  upload(renderer, baseTexture, glTexture) {\n    if (!(this.source instanceof ImageBitmap)) {\n      this.load();\n      return false;\n    }\n    if (typeof this.alphaMode === \"number\") {\n      baseTexture.alphaMode = this.alphaMode;\n    }\n    return super.upload(renderer, baseTexture, glTexture);\n  }\n  dispose() {\n    if (this.source instanceof ImageBitmap) {\n      this.source.close();\n    }\n    super.dispose();\n    this._load = null;\n  }\n  static test(source) {\n    return !!globalThis.createImageBitmap && typeof ImageBitmap !== \"undefined\" && (typeof source === \"string\" || source instanceof ImageBitmap);\n  }\n  static get EMPTY() {\n    ImageBitmapResource._EMPTY = ImageBitmapResource._EMPTY ?? settings.ADAPTER.createCanvas(0, 0);\n    return ImageBitmapResource._EMPTY;\n  }\n}\n\nexport { ImageBitmapResource };\n//# sourceMappingURL=ImageBitmapResource.mjs.map\n","import { settings } from '@pixi/settings';\nimport { uid } from '@pixi/utils';\nimport { BaseImageResource } from './BaseImageResource.mjs';\n\nconst _SVGResource = class extends BaseImageResource {\n  constructor(sourceBase64, options) {\n    options = options || {};\n    super(settings.ADAPTER.createCanvas());\n    this._width = 0;\n    this._height = 0;\n    this.svg = sourceBase64;\n    this.scale = options.scale || 1;\n    this._overrideWidth = options.width;\n    this._overrideHeight = options.height;\n    this._resolve = null;\n    this._crossorigin = options.crossorigin;\n    this._load = null;\n    if (options.autoLoad !== false) {\n      this.load();\n    }\n  }\n  load() {\n    if (this._load) {\n      return this._load;\n    }\n    this._load = new Promise((resolve) => {\n      this._resolve = () => {\n        this.resize(this.source.width, this.source.height);\n        resolve(this);\n      };\n      if (_SVGResource.SVG_XML.test(this.svg.trim())) {\n        if (!btoa) {\n          throw new Error(\"Your browser doesn't support base64 conversions.\");\n        }\n        this.svg = `data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`;\n      }\n      this._loadSvg();\n    });\n    return this._load;\n  }\n  _loadSvg() {\n    const tempImage = new Image();\n    BaseImageResource.crossOrigin(tempImage, this.svg, this._crossorigin);\n    tempImage.src = this.svg;\n    tempImage.onerror = (event) => {\n      if (!this._resolve) {\n        return;\n      }\n      tempImage.onerror = null;\n      this.onError.emit(event);\n    };\n    tempImage.onload = () => {\n      if (!this._resolve) {\n        return;\n      }\n      const svgWidth = tempImage.width;\n      const svgHeight = tempImage.height;\n      if (!svgWidth || !svgHeight) {\n        throw new Error(\"The SVG image must have width and height defined (in pixels), canvas API needs them.\");\n      }\n      let width = svgWidth * this.scale;\n      let height = svgHeight * this.scale;\n      if (this._overrideWidth || this._overrideHeight) {\n        width = this._overrideWidth || this._overrideHeight / svgHeight * svgWidth;\n        height = this._overrideHeight || this._overrideWidth / svgWidth * svgHeight;\n      }\n      width = Math.round(width);\n      height = Math.round(height);\n      const canvas = this.source;\n      canvas.width = width;\n      canvas.height = height;\n      canvas._pixiId = `canvas_${uid()}`;\n      canvas.getContext(\"2d\").drawImage(tempImage, 0, 0, svgWidth, svgHeight, 0, 0, width, height);\n      this._resolve();\n      this._resolve = null;\n    };\n  }\n  static getSize(svgString) {\n    const sizeMatch = _SVGResource.SVG_SIZE.exec(svgString);\n    const size = {};\n    if (sizeMatch) {\n      size[sizeMatch[1]] = Math.round(parseFloat(sizeMatch[3]));\n      size[sizeMatch[5]] = Math.round(parseFloat(sizeMatch[7]));\n    }\n    return size;\n  }\n  dispose() {\n    super.dispose();\n    this._resolve = null;\n    this._crossorigin = null;\n  }\n  static test(source, extension) {\n    return extension === \"svg\" || typeof source === \"string\" && source.startsWith(\"data:image/svg+xml\") || typeof source === \"string\" && _SVGResource.SVG_XML.test(source);\n  }\n};\nlet SVGResource = _SVGResource;\nSVGResource.SVG_XML = /^(<\\?xml[^?]+\\?>)?\\s*(<!--[^(-->)]*-->)?\\s*\\<svg/m;\nSVGResource.SVG_SIZE = /<svg[^>]*(?:\\s(width|height)=('|\")(\\d*(?:\\.\\d+)?)(?:px)?('|\"))[^>]*(?:\\s(width|height)=('|\")(\\d*(?:\\.\\d+)?)(?:px)?('|\"))[^>]*>/i;\n\nexport { SVGResource };\n//# sourceMappingURL=SVGResource.mjs.map\n","import { Ticker } from '@pixi/ticker';\nimport { BaseImageResource } from './BaseImageResource.mjs';\n\nconst _VideoResource = class extends BaseImageResource {\n  constructor(source, options) {\n    options = options || {};\n    if (!(source instanceof HTMLVideoElement)) {\n      const videoElement = document.createElement(\"video\");\n      videoElement.setAttribute(\"preload\", \"auto\");\n      videoElement.setAttribute(\"webkit-playsinline\", \"\");\n      videoElement.setAttribute(\"playsinline\", \"\");\n      if (typeof source === \"string\") {\n        source = [source];\n      }\n      const firstSrc = source[0].src || source[0];\n      BaseImageResource.crossOrigin(videoElement, firstSrc, options.crossorigin);\n      for (let i = 0; i < source.length; ++i) {\n        const sourceElement = document.createElement(\"source\");\n        let { src, mime } = source[i];\n        src = src || source[i];\n        const baseSrc = src.split(\"?\").shift().toLowerCase();\n        const ext = baseSrc.slice(baseSrc.lastIndexOf(\".\") + 1);\n        mime = mime || _VideoResource.MIME_TYPES[ext] || `video/${ext}`;\n        sourceElement.src = src;\n        sourceElement.type = mime;\n        videoElement.appendChild(sourceElement);\n      }\n      source = videoElement;\n    }\n    super(source);\n    this.noSubImage = true;\n    this._autoUpdate = true;\n    this._isConnectedToTicker = false;\n    this._updateFPS = options.updateFPS || 0;\n    this._msToNextUpdate = 0;\n    this.autoPlay = options.autoPlay !== false;\n    this._load = null;\n    this._resolve = null;\n    this._onCanPlay = this._onCanPlay.bind(this);\n    this._onError = this._onError.bind(this);\n    if (options.autoLoad !== false) {\n      this.load();\n    }\n  }\n  update(_deltaTime = 0) {\n    if (!this.destroyed) {\n      const elapsedMS = Ticker.shared.elapsedMS * this.source.playbackRate;\n      this._msToNextUpdate = Math.floor(this._msToNextUpdate - elapsedMS);\n      if (!this._updateFPS || this._msToNextUpdate <= 0) {\n        super.update();\n        this._msToNextUpdate = this._updateFPS ? Math.floor(1e3 / this._updateFPS) : 0;\n      }\n    }\n  }\n  load() {\n    if (this._load) {\n      return this._load;\n    }\n    const source = this.source;\n    if ((source.readyState === source.HAVE_ENOUGH_DATA || source.readyState === source.HAVE_FUTURE_DATA) && source.width && source.height) {\n      source.complete = true;\n    }\n    source.addEventListener(\"play\", this._onPlayStart.bind(this));\n    source.addEventListener(\"pause\", this._onPlayStop.bind(this));\n    if (!this._isSourceReady()) {\n      source.addEventListener(\"canplay\", this._onCanPlay);\n      source.addEventListener(\"canplaythrough\", this._onCanPlay);\n      source.addEventListener(\"error\", this._onError, true);\n    } else {\n      this._onCanPlay();\n    }\n    this._load = new Promise((resolve) => {\n      if (this.valid) {\n        resolve(this);\n      } else {\n        this._resolve = resolve;\n        source.load();\n      }\n    });\n    return this._load;\n  }\n  _onError(event) {\n    this.source.removeEventListener(\"error\", this._onError, true);\n    this.onError.emit(event);\n  }\n  _isSourcePlaying() {\n    const source = this.source;\n    return !source.paused && !source.ended && this._isSourceReady();\n  }\n  _isSourceReady() {\n    const source = this.source;\n    return source.readyState > 2;\n  }\n  _onPlayStart() {\n    if (!this.valid) {\n      this._onCanPlay();\n    }\n    if (this.autoUpdate && !this._isConnectedToTicker) {\n      Ticker.shared.add(this.update, this);\n      this._isConnectedToTicker = true;\n    }\n  }\n  _onPlayStop() {\n    if (this._isConnectedToTicker) {\n      Ticker.shared.remove(this.update, this);\n      this._isConnectedToTicker = false;\n    }\n  }\n  _onCanPlay() {\n    const source = this.source;\n    source.removeEventListener(\"canplay\", this._onCanPlay);\n    source.removeEventListener(\"canplaythrough\", this._onCanPlay);\n    const valid = this.valid;\n    this.resize(source.videoWidth, source.videoHeight);\n    if (!valid && this._resolve) {\n      this._resolve(this);\n      this._resolve = null;\n    }\n    if (this._isSourcePlaying()) {\n      this._onPlayStart();\n    } else if (this.autoPlay) {\n      source.play();\n    }\n  }\n  dispose() {\n    if (this._isConnectedToTicker) {\n      Ticker.shared.remove(this.update, this);\n      this._isConnectedToTicker = false;\n    }\n    const source = this.source;\n    if (source) {\n      source.removeEventListener(\"error\", this._onError, true);\n      source.pause();\n      source.src = \"\";\n      source.load();\n    }\n    super.dispose();\n  }\n  get autoUpdate() {\n    return this._autoUpdate;\n  }\n  set autoUpdate(value) {\n    if (value !== this._autoUpdate) {\n      this._autoUpdate = value;\n      if (!this._autoUpdate && this._isConnectedToTicker) {\n        Ticker.shared.remove(this.update, this);\n        this._isConnectedToTicker = false;\n      } else if (this._autoUpdate && !this._isConnectedToTicker && this._isSourcePlaying()) {\n        Ticker.shared.add(this.update, this);\n        this._isConnectedToTicker = true;\n      }\n    }\n  }\n  get updateFPS() {\n    return this._updateFPS;\n  }\n  set updateFPS(value) {\n    if (value !== this._updateFPS) {\n      this._updateFPS = value;\n    }\n  }\n  static test(source, extension) {\n    return globalThis.HTMLVideoElement && source instanceof HTMLVideoElement || _VideoResource.TYPES.includes(extension);\n  }\n};\nlet VideoResource = _VideoResource;\nVideoResource.TYPES = [\"mp4\", \"m4v\", \"webm\", \"ogg\", \"ogv\", \"h264\", \"avi\", \"mov\"];\nVideoResource.MIME_TYPES = {\n  ogv: \"video/ogg\",\n  mov: \"video/quicktime\",\n  m4v: \"video/mp4\"\n};\n\nexport { VideoResource };\n//# sourceMappingURL=VideoResource.mjs.map\n","import { ArrayResource } from './ArrayResource.mjs';\nexport { ArrayResource } from './ArrayResource.mjs';\nimport { INSTALLED } from './autoDetectResource.mjs';\nexport { INSTALLED, autoDetectResource } from './autoDetectResource.mjs';\nimport { BufferResource } from './BufferResource.mjs';\nexport { BufferResource } from './BufferResource.mjs';\nimport { CanvasResource } from './CanvasResource.mjs';\nexport { CanvasResource } from './CanvasResource.mjs';\nimport { CubeResource } from './CubeResource.mjs';\nexport { CubeResource } from './CubeResource.mjs';\nimport { ImageBitmapResource } from './ImageBitmapResource.mjs';\nexport { ImageBitmapResource } from './ImageBitmapResource.mjs';\nimport { ImageResource } from './ImageResource.mjs';\nexport { ImageResource } from './ImageResource.mjs';\nimport { SVGResource } from './SVGResource.mjs';\nexport { SVGResource } from './SVGResource.mjs';\nimport { VideoResource } from './VideoResource.mjs';\nexport { VideoResource } from './VideoResource.mjs';\nexport { BaseImageResource } from './BaseImageResource.mjs';\nexport { Resource } from './Resource.mjs';\nexport { AbstractMultiResource } from './AbstractMultiResource.mjs';\n\nINSTALLED.push(ImageBitmapResource, ImageResource, CanvasResource, VideoResource, SVGResource, BufferResource, CubeResource, ArrayResource);\n//# sourceMappingURL=index.mjs.map\n","import { Runner } from '@pixi/runner';\n\nclass TransformFeedback {\n  constructor() {\n    this._glTransformFeedbacks = {};\n    this.buffers = [];\n    this.disposeRunner = new Runner(\"disposeTransformFeedback\");\n  }\n  bindBuffer(index, buffer) {\n    this.buffers[index] = buffer;\n  }\n  destroy() {\n    this.disposeRunner.emit(this, false);\n  }\n}\n\nexport { TransformFeedback };\n//# sourceMappingURL=TransformFeedback.mjs.map\n","import './settings.mjs';\nexport * from '@pixi/constants';\nexport * from '@pixi/extensions';\nexport * from '@pixi/math';\nexport * from '@pixi/runner';\nexport * from '@pixi/settings';\nexport * from '@pixi/ticker';\nimport * as utils$1 from '@pixi/utils';\nexport { utils$1 as utils };\nexport { autoDetectRenderer } from './autoDetectRenderer.mjs';\nexport { BackgroundSystem } from './background/BackgroundSystem.mjs';\nexport { BatchDrawCall } from './batch/BatchDrawCall.mjs';\nexport { BatchGeometry } from './batch/BatchGeometry.mjs';\nexport { BatchRenderer } from './batch/BatchRenderer.mjs';\nexport { BatchShaderGenerator } from './batch/BatchShaderGenerator.mjs';\nexport { BatchSystem } from './batch/BatchSystem.mjs';\nexport { BatchTextureArray } from './batch/BatchTextureArray.mjs';\nexport { ObjectRenderer } from './batch/ObjectRenderer.mjs';\nexport { ContextSystem } from './context/ContextSystem.mjs';\nexport { Filter } from './filters/Filter.mjs';\nexport { FilterState } from './filters/FilterState.mjs';\nexport { FilterSystem } from './filters/FilterSystem.mjs';\nimport './filters/IFilterTarget.mjs';\nexport { SpriteMaskFilter } from './filters/spriteMask/SpriteMaskFilter.mjs';\nexport { defaultFilterVertex, defaultVertex } from './fragments/index.mjs';\nexport { Framebuffer } from './framebuffer/Framebuffer.mjs';\nexport { FramebufferSystem } from './framebuffer/FramebufferSystem.mjs';\nexport { GLFramebuffer } from './framebuffer/GLFramebuffer.mjs';\nexport { MultisampleSystem } from './framebuffer/MultisampleSystem.mjs';\nexport { Attribute } from './geometry/Attribute.mjs';\nexport { Buffer } from './geometry/Buffer.mjs';\nexport { BufferSystem } from './geometry/BufferSystem.mjs';\nexport { Geometry } from './geometry/Geometry.mjs';\nexport { GeometrySystem } from './geometry/GeometrySystem.mjs';\nexport { ViewableBuffer } from './geometry/ViewableBuffer.mjs';\nimport './IRenderer.mjs';\nexport { MaskData } from './mask/MaskData.mjs';\nexport { MaskSystem } from './mask/MaskSystem.mjs';\nexport { ScissorSystem } from './mask/ScissorSystem.mjs';\nexport { StencilSystem } from './mask/StencilSystem.mjs';\nexport { PluginSystem } from './plugin/PluginSystem.mjs';\nexport { ProjectionSystem } from './projection/ProjectionSystem.mjs';\nexport { ObjectRendererSystem } from './render/ObjectRendererSystem.mjs';\nexport { Renderer } from './Renderer.mjs';\nexport { BaseRenderTexture } from './renderTexture/BaseRenderTexture.mjs';\nexport { GenerateTextureSystem } from './renderTexture/GenerateTextureSystem.mjs';\nexport { RenderTexture } from './renderTexture/RenderTexture.mjs';\nexport { RenderTexturePool } from './renderTexture/RenderTexturePool.mjs';\nexport { RenderTextureSystem } from './renderTexture/RenderTextureSystem.mjs';\nexport { GLProgram, IGLUniformData } from './shader/GLProgram.mjs';\nexport { Program } from './shader/Program.mjs';\nexport { Shader } from './shader/Shader.mjs';\nexport { ShaderSystem } from './shader/ShaderSystem.mjs';\nexport { UniformGroup } from './shader/UniformGroup.mjs';\nexport { checkMaxIfStatementsInShader } from './shader/utils/checkMaxIfStatementsInShader.mjs';\nexport { generateProgram } from './shader/utils/generateProgram.mjs';\nexport { createUBOElements, generateUniformBufferSync, getUBOData } from './shader/utils/generateUniformBufferSync.mjs';\nexport { getTestContext } from './shader/utils/getTestContext.mjs';\nexport { uniformParsers } from './shader/utils/uniformParsers.mjs';\nexport { unsafeEvalSupported } from './shader/utils/unsafeEvalSupported.mjs';\nexport { StartupSystem } from './startup/StartupSystem.mjs';\nexport { State } from './state/State.mjs';\nexport { StateSystem } from './state/StateSystem.mjs';\nimport './system/ISystem.mjs';\nimport './systems.mjs';\nexport { BaseTexture } from './textures/BaseTexture.mjs';\nexport { GLTexture } from './textures/GLTexture.mjs';\nimport './textures/resources/index.mjs';\nexport { Texture } from './textures/Texture.mjs';\nexport { TextureGCSystem } from './textures/TextureGCSystem.mjs';\nexport { TextureMatrix } from './textures/TextureMatrix.mjs';\nexport { TextureSystem } from './textures/TextureSystem.mjs';\nexport { TextureUvs } from './textures/TextureUvs.mjs';\nexport { TransformFeedback } from './transformFeedback/TransformFeedback.mjs';\nexport { TransformFeedbackSystem } from './transformFeedback/TransformFeedbackSystem.mjs';\nexport { Quad } from './utils/Quad.mjs';\nexport { QuadUv } from './utils/QuadUv.mjs';\nexport { ViewSystem } from './view/ViewSystem.mjs';\nexport { SystemManager } from './system/SystemManager.mjs';\nexport { BaseImageResource } from './textures/resources/BaseImageResource.mjs';\nexport { Resource } from './textures/resources/Resource.mjs';\nexport { AbstractMultiResource } from './textures/resources/AbstractMultiResource.mjs';\nexport { ArrayResource } from './textures/resources/ArrayResource.mjs';\nexport { INSTALLED, autoDetectResource } from './textures/resources/autoDetectResource.mjs';\nexport { BufferResource } from './textures/resources/BufferResource.mjs';\nexport { CanvasResource } from './textures/resources/CanvasResource.mjs';\nexport { CubeResource } from './textures/resources/CubeResource.mjs';\nexport { ImageBitmapResource } from './textures/resources/ImageBitmapResource.mjs';\nexport { ImageResource } from './textures/resources/ImageResource.mjs';\nexport { SVGResource } from './textures/resources/SVGResource.mjs';\nexport { VideoResource } from './textures/resources/VideoResource.mjs';\n\nconst VERSION = \"7.1.4\";\n\nexport { VERSION };\n//# sourceMappingURL=index.mjs.map\n","import { Rectangle } from '@pixi/core';\n\nclass Bounds {\n  constructor() {\n    this.minX = Infinity;\n    this.minY = Infinity;\n    this.maxX = -Infinity;\n    this.maxY = -Infinity;\n    this.rect = null;\n    this.updateID = -1;\n  }\n  isEmpty() {\n    return this.minX > this.maxX || this.minY > this.maxY;\n  }\n  clear() {\n    this.minX = Infinity;\n    this.minY = Infinity;\n    this.maxX = -Infinity;\n    this.maxY = -Infinity;\n  }\n  getRectangle(rect) {\n    if (this.minX > this.maxX || this.minY > this.maxY) {\n      return Rectangle.EMPTY;\n    }\n    rect = rect || new Rectangle(0, 0, 1, 1);\n    rect.x = this.minX;\n    rect.y = this.minY;\n    rect.width = this.maxX - this.minX;\n    rect.height = this.maxY - this.minY;\n    return rect;\n  }\n  addPoint(point) {\n    this.minX = Math.min(this.minX, point.x);\n    this.maxX = Math.max(this.maxX, point.x);\n    this.minY = Math.min(this.minY, point.y);\n    this.maxY = Math.max(this.maxY, point.y);\n  }\n  addPointMatrix(matrix, point) {\n    const { a, b, c, d, tx, ty } = matrix;\n    const x = a * point.x + c * point.y + tx;\n    const y = b * point.x + d * point.y + ty;\n    this.minX = Math.min(this.minX, x);\n    this.maxX = Math.max(this.maxX, x);\n    this.minY = Math.min(this.minY, y);\n    this.maxY = Math.max(this.maxY, y);\n  }\n  addQuad(vertices) {\n    let minX = this.minX;\n    let minY = this.minY;\n    let maxX = this.maxX;\n    let maxY = this.maxY;\n    let x = vertices[0];\n    let y = vertices[1];\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = vertices[2];\n    y = vertices[3];\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = vertices[4];\n    y = vertices[5];\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = vertices[6];\n    y = vertices[7];\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    this.minX = minX;\n    this.minY = minY;\n    this.maxX = maxX;\n    this.maxY = maxY;\n  }\n  addFrame(transform, x0, y0, x1, y1) {\n    this.addFrameMatrix(transform.worldTransform, x0, y0, x1, y1);\n  }\n  addFrameMatrix(matrix, x0, y0, x1, y1) {\n    const a = matrix.a;\n    const b = matrix.b;\n    const c = matrix.c;\n    const d = matrix.d;\n    const tx = matrix.tx;\n    const ty = matrix.ty;\n    let minX = this.minX;\n    let minY = this.minY;\n    let maxX = this.maxX;\n    let maxY = this.maxY;\n    let x = a * x0 + c * y0 + tx;\n    let y = b * x0 + d * y0 + ty;\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = a * x1 + c * y0 + tx;\n    y = b * x1 + d * y0 + ty;\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = a * x0 + c * y1 + tx;\n    y = b * x0 + d * y1 + ty;\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    x = a * x1 + c * y1 + tx;\n    y = b * x1 + d * y1 + ty;\n    minX = x < minX ? x : minX;\n    minY = y < minY ? y : minY;\n    maxX = x > maxX ? x : maxX;\n    maxY = y > maxY ? y : maxY;\n    this.minX = minX;\n    this.minY = minY;\n    this.maxX = maxX;\n    this.maxY = maxY;\n  }\n  addVertexData(vertexData, beginOffset, endOffset) {\n    let minX = this.minX;\n    let minY = this.minY;\n    let maxX = this.maxX;\n    let maxY = this.maxY;\n    for (let i = beginOffset; i < endOffset; i += 2) {\n      const x = vertexData[i];\n      const y = vertexData[i + 1];\n      minX = x < minX ? x : minX;\n      minY = y < minY ? y : minY;\n      maxX = x > maxX ? x : maxX;\n      maxY = y > maxY ? y : maxY;\n    }\n    this.minX = minX;\n    this.minY = minY;\n    this.maxX = maxX;\n    this.maxY = maxY;\n  }\n  addVertices(transform, vertices, beginOffset, endOffset) {\n    this.addVerticesMatrix(transform.worldTransform, vertices, beginOffset, endOffset);\n  }\n  addVerticesMatrix(matrix, vertices, beginOffset, endOffset, padX = 0, padY = padX) {\n    const a = matrix.a;\n    const b = matrix.b;\n    const c = matrix.c;\n    const d = matrix.d;\n    const tx = matrix.tx;\n    const ty = matrix.ty;\n    let minX = this.minX;\n    let minY = this.minY;\n    let maxX = this.maxX;\n    let maxY = this.maxY;\n    for (let i = beginOffset; i < endOffset; i += 2) {\n      const rawX = vertices[i];\n      const rawY = vertices[i + 1];\n      const x = a * rawX + c * rawY + tx;\n      const y = d * rawY + b * rawX + ty;\n      minX = Math.min(minX, x - padX);\n      maxX = Math.max(maxX, x + padX);\n      minY = Math.min(minY, y - padY);\n      maxY = Math.max(maxY, y + padY);\n    }\n    this.minX = minX;\n    this.minY = minY;\n    this.maxX = maxX;\n    this.maxY = maxY;\n  }\n  addBounds(bounds) {\n    const minX = this.minX;\n    const minY = this.minY;\n    const maxX = this.maxX;\n    const maxY = this.maxY;\n    this.minX = bounds.minX < minX ? bounds.minX : minX;\n    this.minY = bounds.minY < minY ? bounds.minY : minY;\n    this.maxX = bounds.maxX > maxX ? bounds.maxX : maxX;\n    this.maxY = bounds.maxY > maxY ? bounds.maxY : maxY;\n  }\n  addBoundsMask(bounds, mask) {\n    const _minX = bounds.minX > mask.minX ? bounds.minX : mask.minX;\n    const _minY = bounds.minY > mask.minY ? bounds.minY : mask.minY;\n    const _maxX = bounds.maxX < mask.maxX ? bounds.maxX : mask.maxX;\n    const _maxY = bounds.maxY < mask.maxY ? bounds.maxY : mask.maxY;\n    if (_minX <= _maxX && _minY <= _maxY) {\n      const minX = this.minX;\n      const minY = this.minY;\n      const maxX = this.maxX;\n      const maxY = this.maxY;\n      this.minX = _minX < minX ? _minX : minX;\n      this.minY = _minY < minY ? _minY : minY;\n      this.maxX = _maxX > maxX ? _maxX : maxX;\n      this.maxY = _maxY > maxY ? _maxY : maxY;\n    }\n  }\n  addBoundsMatrix(bounds, matrix) {\n    this.addFrameMatrix(matrix, bounds.minX, bounds.minY, bounds.maxX, bounds.maxY);\n  }\n  addBoundsArea(bounds, area) {\n    const _minX = bounds.minX > area.x ? bounds.minX : area.x;\n    const _minY = bounds.minY > area.y ? bounds.minY : area.y;\n    const _maxX = bounds.maxX < area.x + area.width ? bounds.maxX : area.x + area.width;\n    const _maxY = bounds.maxY < area.y + area.height ? bounds.maxY : area.y + area.height;\n    if (_minX <= _maxX && _minY <= _maxY) {\n      const minX = this.minX;\n      const minY = this.minY;\n      const maxX = this.maxX;\n      const maxY = this.maxY;\n      this.minX = _minX < minX ? _minX : minX;\n      this.minY = _minY < minY ? _minY : minY;\n      this.maxX = _maxX > maxX ? _maxX : maxX;\n      this.maxY = _maxY > maxY ? _maxY : maxY;\n    }\n  }\n  pad(paddingX = 0, paddingY = paddingX) {\n    if (!this.isEmpty()) {\n      this.minX -= paddingX;\n      this.maxX += paddingX;\n      this.minY -= paddingY;\n      this.maxY += paddingY;\n    }\n  }\n  addFramePad(x0, y0, x1, y1, padX, padY) {\n    x0 -= padX;\n    y0 -= padY;\n    x1 += padX;\n    y1 += padY;\n    this.minX = this.minX < x0 ? this.minX : x0;\n    this.maxX = this.maxX > x1 ? this.maxX : x1;\n    this.minY = this.minY < y0 ? this.minY : y0;\n    this.maxY = this.maxY > y1 ? this.maxY : y1;\n  }\n}\n\nexport { Bounds };\n//# sourceMappingURL=Bounds.mjs.map\n","import { utils, Transform, Rectangle, RAD_TO_DEG, DEG_TO_RAD } from '@pixi/core';\nimport { Bounds } from './Bounds.mjs';\n\nclass DisplayObject extends utils.EventEmitter {\n  constructor() {\n    super();\n    this.tempDisplayObjectParent = null;\n    this.transform = new Transform();\n    this.alpha = 1;\n    this.visible = true;\n    this.renderable = true;\n    this.cullable = false;\n    this.cullArea = null;\n    this.parent = null;\n    this.worldAlpha = 1;\n    this._lastSortedIndex = 0;\n    this._zIndex = 0;\n    this.filterArea = null;\n    this.filters = null;\n    this._enabledFilters = null;\n    this._bounds = new Bounds();\n    this._localBounds = null;\n    this._boundsID = 0;\n    this._boundsRect = null;\n    this._localBoundsRect = null;\n    this._mask = null;\n    this._maskRefCount = 0;\n    this._destroyed = false;\n    this.isSprite = false;\n    this.isMask = false;\n  }\n  static mixin(source) {\n    const keys = Object.keys(source);\n    for (let i = 0; i < keys.length; ++i) {\n      const propertyName = keys[i];\n      Object.defineProperty(DisplayObject.prototype, propertyName, Object.getOwnPropertyDescriptor(source, propertyName));\n    }\n  }\n  get destroyed() {\n    return this._destroyed;\n  }\n  _recursivePostUpdateTransform() {\n    if (this.parent) {\n      this.parent._recursivePostUpdateTransform();\n      this.transform.updateTransform(this.parent.transform);\n    } else {\n      this.transform.updateTransform(this._tempDisplayObjectParent.transform);\n    }\n  }\n  updateTransform() {\n    this._boundsID++;\n    this.transform.updateTransform(this.parent.transform);\n    this.worldAlpha = this.alpha * this.parent.worldAlpha;\n  }\n  getBounds(skipUpdate, rect) {\n    if (!skipUpdate) {\n      if (!this.parent) {\n        this.parent = this._tempDisplayObjectParent;\n        this.updateTransform();\n        this.parent = null;\n      } else {\n        this._recursivePostUpdateTransform();\n        this.updateTransform();\n      }\n    }\n    if (this._bounds.updateID !== this._boundsID) {\n      this.calculateBounds();\n      this._bounds.updateID = this._boundsID;\n    }\n    if (!rect) {\n      if (!this._boundsRect) {\n        this._boundsRect = new Rectangle();\n      }\n      rect = this._boundsRect;\n    }\n    return this._bounds.getRectangle(rect);\n  }\n  getLocalBounds(rect) {\n    if (!rect) {\n      if (!this._localBoundsRect) {\n        this._localBoundsRect = new Rectangle();\n      }\n      rect = this._localBoundsRect;\n    }\n    if (!this._localBounds) {\n      this._localBounds = new Bounds();\n    }\n    const transformRef = this.transform;\n    const parentRef = this.parent;\n    this.parent = null;\n    this.transform = this._tempDisplayObjectParent.transform;\n    const worldBounds = this._bounds;\n    const worldBoundsID = this._boundsID;\n    this._bounds = this._localBounds;\n    const bounds = this.getBounds(false, rect);\n    this.parent = parentRef;\n    this.transform = transformRef;\n    this._bounds = worldBounds;\n    this._bounds.updateID += this._boundsID - worldBoundsID;\n    return bounds;\n  }\n  toGlobal(position, point, skipUpdate = false) {\n    if (!skipUpdate) {\n      this._recursivePostUpdateTransform();\n      if (!this.parent) {\n        this.parent = this._tempDisplayObjectParent;\n        this.displayObjectUpdateTransform();\n        this.parent = null;\n      } else {\n        this.displayObjectUpdateTransform();\n      }\n    }\n    return this.worldTransform.apply(position, point);\n  }\n  toLocal(position, from, point, skipUpdate) {\n    if (from) {\n      position = from.toGlobal(position, point, skipUpdate);\n    }\n    if (!skipUpdate) {\n      this._recursivePostUpdateTransform();\n      if (!this.parent) {\n        this.parent = this._tempDisplayObjectParent;\n        this.displayObjectUpdateTransform();\n        this.parent = null;\n      } else {\n        this.displayObjectUpdateTransform();\n      }\n    }\n    return this.worldTransform.applyInverse(position, point);\n  }\n  setParent(container) {\n    if (!container || !container.addChild) {\n      throw new Error(\"setParent: Argument must be a Container\");\n    }\n    container.addChild(this);\n    return container;\n  }\n  removeFromParent() {\n    this.parent?.removeChild(this);\n  }\n  setTransform(x = 0, y = 0, scaleX = 1, scaleY = 1, rotation = 0, skewX = 0, skewY = 0, pivotX = 0, pivotY = 0) {\n    this.position.x = x;\n    this.position.y = y;\n    this.scale.x = !scaleX ? 1 : scaleX;\n    this.scale.y = !scaleY ? 1 : scaleY;\n    this.rotation = rotation;\n    this.skew.x = skewX;\n    this.skew.y = skewY;\n    this.pivot.x = pivotX;\n    this.pivot.y = pivotY;\n    return this;\n  }\n  destroy(_options) {\n    this.removeFromParent();\n    this._destroyed = true;\n    this.transform = null;\n    this.parent = null;\n    this._bounds = null;\n    this.mask = null;\n    this.cullArea = null;\n    this.filters = null;\n    this.filterArea = null;\n    this.hitArea = null;\n    this.interactive = false;\n    this.interactiveChildren = false;\n    this.emit(\"destroyed\");\n    this.removeAllListeners();\n  }\n  get _tempDisplayObjectParent() {\n    if (this.tempDisplayObjectParent === null) {\n      this.tempDisplayObjectParent = new TemporaryDisplayObject();\n    }\n    return this.tempDisplayObjectParent;\n  }\n  enableTempParent() {\n    const myParent = this.parent;\n    this.parent = this._tempDisplayObjectParent;\n    return myParent;\n  }\n  disableTempParent(cacheParent) {\n    this.parent = cacheParent;\n  }\n  get x() {\n    return this.position.x;\n  }\n  set x(value) {\n    this.transform.position.x = value;\n  }\n  get y() {\n    return this.position.y;\n  }\n  set y(value) {\n    this.transform.position.y = value;\n  }\n  get worldTransform() {\n    return this.transform.worldTransform;\n  }\n  get localTransform() {\n    return this.transform.localTransform;\n  }\n  get position() {\n    return this.transform.position;\n  }\n  set position(value) {\n    this.transform.position.copyFrom(value);\n  }\n  get scale() {\n    return this.transform.scale;\n  }\n  set scale(value) {\n    this.transform.scale.copyFrom(value);\n  }\n  get pivot() {\n    return this.transform.pivot;\n  }\n  set pivot(value) {\n    this.transform.pivot.copyFrom(value);\n  }\n  get skew() {\n    return this.transform.skew;\n  }\n  set skew(value) {\n    this.transform.skew.copyFrom(value);\n  }\n  get rotation() {\n    return this.transform.rotation;\n  }\n  set rotation(value) {\n    this.transform.rotation = value;\n  }\n  get angle() {\n    return this.transform.rotation * RAD_TO_DEG;\n  }\n  set angle(value) {\n    this.transform.rotation = value * DEG_TO_RAD;\n  }\n  get zIndex() {\n    return this._zIndex;\n  }\n  set zIndex(value) {\n    this._zIndex = value;\n    if (this.parent) {\n      this.parent.sortDirty = true;\n    }\n  }\n  get worldVisible() {\n    let item = this;\n    do {\n      if (!item.visible) {\n        return false;\n      }\n      item = item.parent;\n    } while (item);\n    return true;\n  }\n  get mask() {\n    return this._mask;\n  }\n  set mask(value) {\n    if (this._mask === value) {\n      return;\n    }\n    if (this._mask) {\n      const maskObject = this._mask.isMaskData ? this._mask.maskObject : this._mask;\n      if (maskObject) {\n        maskObject._maskRefCount--;\n        if (maskObject._maskRefCount === 0) {\n          maskObject.renderable = true;\n          maskObject.isMask = false;\n        }\n      }\n    }\n    this._mask = value;\n    if (this._mask) {\n      const maskObject = this._mask.isMaskData ? this._mask.maskObject : this._mask;\n      if (maskObject) {\n        if (maskObject._maskRefCount === 0) {\n          maskObject.renderable = false;\n          maskObject.isMask = true;\n        }\n        maskObject._maskRefCount++;\n      }\n    }\n  }\n}\nclass TemporaryDisplayObject extends DisplayObject {\n  constructor() {\n    super(...arguments);\n    this.sortDirty = null;\n  }\n}\nDisplayObject.prototype.displayObjectUpdateTransform = DisplayObject.prototype.updateTransform;\n\nexport { DisplayObject, TemporaryDisplayObject };\n//# sourceMappingURL=DisplayObject.mjs.map\n","import { Matrix, utils, MASK_TYPES } from '@pixi/core';\nimport { DisplayObject } from './DisplayObject.mjs';\n\nconst tempMatrix = new Matrix();\nfunction sortChildren(a, b) {\n  if (a.zIndex === b.zIndex) {\n    return a._lastSortedIndex - b._lastSortedIndex;\n  }\n  return a.zIndex - b.zIndex;\n}\nconst _Container = class extends DisplayObject {\n  constructor() {\n    super();\n    this.children = [];\n    this.sortableChildren = _Container.defaultSortableChildren;\n    this.sortDirty = false;\n  }\n  onChildrenChange(_length) {\n  }\n  addChild(...children) {\n    if (children.length > 1) {\n      for (let i = 0; i < children.length; i++) {\n        this.addChild(children[i]);\n      }\n    } else {\n      const child = children[0];\n      if (child.parent) {\n        child.parent.removeChild(child);\n      }\n      child.parent = this;\n      this.sortDirty = true;\n      child.transform._parentID = -1;\n      this.children.push(child);\n      this._boundsID++;\n      this.onChildrenChange(this.children.length - 1);\n      this.emit(\"childAdded\", child, this, this.children.length - 1);\n      child.emit(\"added\", this);\n    }\n    return children[0];\n  }\n  addChildAt(child, index) {\n    if (index < 0 || index > this.children.length) {\n      throw new Error(`${child}addChildAt: The index ${index} supplied is out of bounds ${this.children.length}`);\n    }\n    if (child.parent) {\n      child.parent.removeChild(child);\n    }\n    child.parent = this;\n    this.sortDirty = true;\n    child.transform._parentID = -1;\n    this.children.splice(index, 0, child);\n    this._boundsID++;\n    this.onChildrenChange(index);\n    child.emit(\"added\", this);\n    this.emit(\"childAdded\", child, this, index);\n    return child;\n  }\n  swapChildren(child, child2) {\n    if (child === child2) {\n      return;\n    }\n    const index1 = this.getChildIndex(child);\n    const index2 = this.getChildIndex(child2);\n    this.children[index1] = child2;\n    this.children[index2] = child;\n    this.onChildrenChange(index1 < index2 ? index1 : index2);\n  }\n  getChildIndex(child) {\n    const index = this.children.indexOf(child);\n    if (index === -1) {\n      throw new Error(\"The supplied DisplayObject must be a child of the caller\");\n    }\n    return index;\n  }\n  setChildIndex(child, index) {\n    if (index < 0 || index >= this.children.length) {\n      throw new Error(`The index ${index} supplied is out of bounds ${this.children.length}`);\n    }\n    const currentIndex = this.getChildIndex(child);\n    utils.removeItems(this.children, currentIndex, 1);\n    this.children.splice(index, 0, child);\n    this.onChildrenChange(index);\n  }\n  getChildAt(index) {\n    if (index < 0 || index >= this.children.length) {\n      throw new Error(`getChildAt: Index (${index}) does not exist.`);\n    }\n    return this.children[index];\n  }\n  removeChild(...children) {\n    if (children.length > 1) {\n      for (let i = 0; i < children.length; i++) {\n        this.removeChild(children[i]);\n      }\n    } else {\n      const child = children[0];\n      const index = this.children.indexOf(child);\n      if (index === -1)\n        return null;\n      child.parent = null;\n      child.transform._parentID = -1;\n      utils.removeItems(this.children, index, 1);\n      this._boundsID++;\n      this.onChildrenChange(index);\n      child.emit(\"removed\", this);\n      this.emit(\"childRemoved\", child, this, index);\n    }\n    return children[0];\n  }\n  removeChildAt(index) {\n    const child = this.getChildAt(index);\n    child.parent = null;\n    child.transform._parentID = -1;\n    utils.removeItems(this.children, index, 1);\n    this._boundsID++;\n    this.onChildrenChange(index);\n    child.emit(\"removed\", this);\n    this.emit(\"childRemoved\", child, this, index);\n    return child;\n  }\n  removeChildren(beginIndex = 0, endIndex = this.children.length) {\n    const begin = beginIndex;\n    const end = endIndex;\n    const range = end - begin;\n    let removed;\n    if (range > 0 && range <= end) {\n      removed = this.children.splice(begin, range);\n      for (let i = 0; i < removed.length; ++i) {\n        removed[i].parent = null;\n        if (removed[i].transform) {\n          removed[i].transform._parentID = -1;\n        }\n      }\n      this._boundsID++;\n      this.onChildrenChange(beginIndex);\n      for (let i = 0; i < removed.length; ++i) {\n        removed[i].emit(\"removed\", this);\n        this.emit(\"childRemoved\", removed[i], this, i);\n      }\n      return removed;\n    } else if (range === 0 && this.children.length === 0) {\n      return [];\n    }\n    throw new RangeError(\"removeChildren: numeric values are outside the acceptable range.\");\n  }\n  sortChildren() {\n    let sortRequired = false;\n    for (let i = 0, j = this.children.length; i < j; ++i) {\n      const child = this.children[i];\n      child._lastSortedIndex = i;\n      if (!sortRequired && child.zIndex !== 0) {\n        sortRequired = true;\n      }\n    }\n    if (sortRequired && this.children.length > 1) {\n      this.children.sort(sortChildren);\n    }\n    this.sortDirty = false;\n  }\n  updateTransform() {\n    if (this.sortableChildren && this.sortDirty) {\n      this.sortChildren();\n    }\n    this._boundsID++;\n    this.transform.updateTransform(this.parent.transform);\n    this.worldAlpha = this.alpha * this.parent.worldAlpha;\n    for (let i = 0, j = this.children.length; i < j; ++i) {\n      const child = this.children[i];\n      if (child.visible) {\n        child.updateTransform();\n      }\n    }\n  }\n  calculateBounds() {\n    this._bounds.clear();\n    this._calculateBounds();\n    for (let i = 0; i < this.children.length; i++) {\n      const child = this.children[i];\n      if (!child.visible || !child.renderable) {\n        continue;\n      }\n      child.calculateBounds();\n      if (child._mask) {\n        const maskObject = child._mask.isMaskData ? child._mask.maskObject : child._mask;\n        if (maskObject) {\n          maskObject.calculateBounds();\n          this._bounds.addBoundsMask(child._bounds, maskObject._bounds);\n        } else {\n          this._bounds.addBounds(child._bounds);\n        }\n      } else if (child.filterArea) {\n        this._bounds.addBoundsArea(child._bounds, child.filterArea);\n      } else {\n        this._bounds.addBounds(child._bounds);\n      }\n    }\n    this._bounds.updateID = this._boundsID;\n  }\n  getLocalBounds(rect, skipChildrenUpdate = false) {\n    const result = super.getLocalBounds(rect);\n    if (!skipChildrenUpdate) {\n      for (let i = 0, j = this.children.length; i < j; ++i) {\n        const child = this.children[i];\n        if (child.visible) {\n          child.updateTransform();\n        }\n      }\n    }\n    return result;\n  }\n  _calculateBounds() {\n  }\n  _renderWithCulling(renderer) {\n    const sourceFrame = renderer.renderTexture.sourceFrame;\n    if (!(sourceFrame.width > 0 && sourceFrame.height > 0)) {\n      return;\n    }\n    let bounds;\n    let transform;\n    if (this.cullArea) {\n      bounds = this.cullArea;\n      transform = this.worldTransform;\n    } else if (this._render !== _Container.prototype._render) {\n      bounds = this.getBounds(true);\n    }\n    const projectionTransform = renderer.projection.transform;\n    if (projectionTransform) {\n      if (transform) {\n        transform = tempMatrix.copyFrom(transform);\n        transform.prepend(projectionTransform);\n      } else {\n        transform = projectionTransform;\n      }\n    }\n    if (bounds && sourceFrame.intersects(bounds, transform)) {\n      this._render(renderer);\n    } else if (this.cullArea) {\n      return;\n    }\n    for (let i = 0, j = this.children.length; i < j; ++i) {\n      const child = this.children[i];\n      const childCullable = child.cullable;\n      child.cullable = childCullable || !this.cullArea;\n      child.render(renderer);\n      child.cullable = childCullable;\n    }\n  }\n  render(renderer) {\n    if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {\n      return;\n    }\n    if (this._mask || this.filters?.length) {\n      this.renderAdvanced(renderer);\n    } else if (this.cullable) {\n      this._renderWithCulling(renderer);\n    } else {\n      this._render(renderer);\n      for (let i = 0, j = this.children.length; i < j; ++i) {\n        this.children[i].render(renderer);\n      }\n    }\n  }\n  renderAdvanced(renderer) {\n    const filters = this.filters;\n    const mask = this._mask;\n    if (filters) {\n      if (!this._enabledFilters) {\n        this._enabledFilters = [];\n      }\n      this._enabledFilters.length = 0;\n      for (let i = 0; i < filters.length; i++) {\n        if (filters[i].enabled) {\n          this._enabledFilters.push(filters[i]);\n        }\n      }\n    }\n    const flush = filters && this._enabledFilters?.length || mask && (!mask.isMaskData || mask.enabled && (mask.autoDetect || mask.type !== MASK_TYPES.NONE));\n    if (flush) {\n      renderer.batch.flush();\n    }\n    if (filters && this._enabledFilters?.length) {\n      renderer.filter.push(this, this._enabledFilters);\n    }\n    if (mask) {\n      renderer.mask.push(this, this._mask);\n    }\n    if (this.cullable) {\n      this._renderWithCulling(renderer);\n    } else {\n      this._render(renderer);\n      for (let i = 0, j = this.children.length; i < j; ++i) {\n        this.children[i].render(renderer);\n      }\n    }\n    if (flush) {\n      renderer.batch.flush();\n    }\n    if (mask) {\n      renderer.mask.pop(this);\n    }\n    if (filters && this._enabledFilters?.length) {\n      renderer.filter.pop();\n    }\n  }\n  _render(_renderer) {\n  }\n  destroy(options) {\n    super.destroy();\n    this.sortDirty = false;\n    const destroyChildren = typeof options === \"boolean\" ? options : options?.children;\n    const oldChildren = this.removeChildren(0, this.children.length);\n    if (destroyChildren) {\n      for (let i = 0; i < oldChildren.length; ++i) {\n        oldChildren[i].destroy(options);\n      }\n    }\n  }\n  get width() {\n    return this.scale.x * this.getLocalBounds().width;\n  }\n  set width(value) {\n    const width = this.getLocalBounds().width;\n    if (width !== 0) {\n      this.scale.x = value / width;\n    } else {\n      this.scale.x = 1;\n    }\n    this._width = value;\n  }\n  get height() {\n    return this.scale.y * this.getLocalBounds().height;\n  }\n  set height(value) {\n    const height = this.getLocalBounds().height;\n    if (height !== 0) {\n      this.scale.y = value / height;\n    } else {\n      this.scale.y = 1;\n    }\n    this._height = value;\n  }\n};\nlet Container = _Container;\nContainer.defaultSortableChildren = false;\nContainer.prototype.containerUpdateTransform = Container.prototype.updateTransform;\n\nexport { Container };\n//# sourceMappingURL=Container.mjs.map\n","import { settings, utils } from '@pixi/core';\nexport { settings } from '@pixi/core';\nimport { Container } from './Container.mjs';\n\nObject.defineProperties(settings, {\n  SORTABLE_CHILDREN: {\n    get() {\n      return Container.defaultSortableChildren;\n    },\n    set(value) {\n      utils.deprecation(\"7.1.0\", \"settings.SORTABLE_CHILDREN is deprecated, use Container.defaultSortableChildren\");\n      Container.defaultSortableChildren = value;\n    }\n  }\n});\n//# sourceMappingURL=settings.mjs.map\n","import { Point, ObservablePoint, BLEND_MODES, Texture, settings, utils, Rectangle } from '@pixi/core';\nimport { Container, Bounds } from '@pixi/display';\n\nconst tempPoint = new Point();\nconst indices = new Uint16Array([0, 1, 2, 0, 2, 3]);\nclass Sprite extends Container {\n  constructor(texture) {\n    super();\n    this._anchor = new ObservablePoint(this._onAnchorUpdate, this, texture ? texture.defaultAnchor.x : 0, texture ? texture.defaultAnchor.y : 0);\n    this._texture = null;\n    this._width = 0;\n    this._height = 0;\n    this._tint = null;\n    this._tintRGB = null;\n    this.tint = 16777215;\n    this.blendMode = BLEND_MODES.NORMAL;\n    this._cachedTint = 16777215;\n    this.uvs = null;\n    this.texture = texture || Texture.EMPTY;\n    this.vertexData = new Float32Array(8);\n    this.vertexTrimmedData = null;\n    this._transformID = -1;\n    this._textureID = -1;\n    this._transformTrimmedID = -1;\n    this._textureTrimmedID = -1;\n    this.indices = indices;\n    this.pluginName = \"batch\";\n    this.isSprite = true;\n    this._roundPixels = settings.ROUND_PIXELS;\n  }\n  _onTextureUpdate() {\n    this._textureID = -1;\n    this._textureTrimmedID = -1;\n    this._cachedTint = 16777215;\n    if (this._width) {\n      this.scale.x = utils.sign(this.scale.x) * this._width / this._texture.orig.width;\n    }\n    if (this._height) {\n      this.scale.y = utils.sign(this.scale.y) * this._height / this._texture.orig.height;\n    }\n  }\n  _onAnchorUpdate() {\n    this._transformID = -1;\n    this._transformTrimmedID = -1;\n  }\n  calculateVertices() {\n    const texture = this._texture;\n    if (this._transformID === this.transform._worldID && this._textureID === texture._updateID) {\n      return;\n    }\n    if (this._textureID !== texture._updateID) {\n      this.uvs = this._texture._uvs.uvsFloat32;\n    }\n    this._transformID = this.transform._worldID;\n    this._textureID = texture._updateID;\n    const wt = this.transform.worldTransform;\n    const a = wt.a;\n    const b = wt.b;\n    const c = wt.c;\n    const d = wt.d;\n    const tx = wt.tx;\n    const ty = wt.ty;\n    const vertexData = this.vertexData;\n    const trim = texture.trim;\n    const orig = texture.orig;\n    const anchor = this._anchor;\n    let w0 = 0;\n    let w1 = 0;\n    let h0 = 0;\n    let h1 = 0;\n    if (trim) {\n      w1 = trim.x - anchor._x * orig.width;\n      w0 = w1 + trim.width;\n      h1 = trim.y - anchor._y * orig.height;\n      h0 = h1 + trim.height;\n    } else {\n      w1 = -anchor._x * orig.width;\n      w0 = w1 + orig.width;\n      h1 = -anchor._y * orig.height;\n      h0 = h1 + orig.height;\n    }\n    vertexData[0] = a * w1 + c * h1 + tx;\n    vertexData[1] = d * h1 + b * w1 + ty;\n    vertexData[2] = a * w0 + c * h1 + tx;\n    vertexData[3] = d * h1 + b * w0 + ty;\n    vertexData[4] = a * w0 + c * h0 + tx;\n    vertexData[5] = d * h0 + b * w0 + ty;\n    vertexData[6] = a * w1 + c * h0 + tx;\n    vertexData[7] = d * h0 + b * w1 + ty;\n    if (this._roundPixels) {\n      const resolution = settings.RESOLUTION;\n      for (let i = 0; i < vertexData.length; ++i) {\n        vertexData[i] = Math.round(vertexData[i] * resolution) / resolution;\n      }\n    }\n  }\n  calculateTrimmedVertices() {\n    if (!this.vertexTrimmedData) {\n      this.vertexTrimmedData = new Float32Array(8);\n    } else if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) {\n      return;\n    }\n    this._transformTrimmedID = this.transform._worldID;\n    this._textureTrimmedID = this._texture._updateID;\n    const texture = this._texture;\n    const vertexData = this.vertexTrimmedData;\n    const orig = texture.orig;\n    const anchor = this._anchor;\n    const wt = this.transform.worldTransform;\n    const a = wt.a;\n    const b = wt.b;\n    const c = wt.c;\n    const d = wt.d;\n    const tx = wt.tx;\n    const ty = wt.ty;\n    const w1 = -anchor._x * orig.width;\n    const w0 = w1 + orig.width;\n    const h1 = -anchor._y * orig.height;\n    const h0 = h1 + orig.height;\n    vertexData[0] = a * w1 + c * h1 + tx;\n    vertexData[1] = d * h1 + b * w1 + ty;\n    vertexData[2] = a * w0 + c * h1 + tx;\n    vertexData[3] = d * h1 + b * w0 + ty;\n    vertexData[4] = a * w0 + c * h0 + tx;\n    vertexData[5] = d * h0 + b * w0 + ty;\n    vertexData[6] = a * w1 + c * h0 + tx;\n    vertexData[7] = d * h0 + b * w1 + ty;\n  }\n  _render(renderer) {\n    this.calculateVertices();\n    renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]);\n    renderer.plugins[this.pluginName].render(this);\n  }\n  _calculateBounds() {\n    const trim = this._texture.trim;\n    const orig = this._texture.orig;\n    if (!trim || trim.width === orig.width && trim.height === orig.height) {\n      this.calculateVertices();\n      this._bounds.addQuad(this.vertexData);\n    } else {\n      this.calculateTrimmedVertices();\n      this._bounds.addQuad(this.vertexTrimmedData);\n    }\n  }\n  getLocalBounds(rect) {\n    if (this.children.length === 0) {\n      if (!this._localBounds) {\n        this._localBounds = new Bounds();\n      }\n      this._localBounds.minX = this._texture.orig.width * -this._anchor._x;\n      this._localBounds.minY = this._texture.orig.height * -this._anchor._y;\n      this._localBounds.maxX = this._texture.orig.width * (1 - this._anchor._x);\n      this._localBounds.maxY = this._texture.orig.height * (1 - this._anchor._y);\n      if (!rect) {\n        if (!this._localBoundsRect) {\n          this._localBoundsRect = new Rectangle();\n        }\n        rect = this._localBoundsRect;\n      }\n      return this._localBounds.getRectangle(rect);\n    }\n    return super.getLocalBounds.call(this, rect);\n  }\n  containsPoint(point) {\n    this.worldTransform.applyInverse(point, tempPoint);\n    const width = this._texture.orig.width;\n    const height = this._texture.orig.height;\n    const x1 = -width * this.anchor.x;\n    let y1 = 0;\n    if (tempPoint.x >= x1 && tempPoint.x < x1 + width) {\n      y1 = -height * this.anchor.y;\n      if (tempPoint.y >= y1 && tempPoint.y < y1 + height) {\n        return true;\n      }\n    }\n    return false;\n  }\n  destroy(options) {\n    super.destroy(options);\n    this._texture.off(\"update\", this._onTextureUpdate, this);\n    this._anchor = null;\n    const destroyTexture = typeof options === \"boolean\" ? options : options?.texture;\n    if (destroyTexture) {\n      const destroyBaseTexture = typeof options === \"boolean\" ? options : options?.baseTexture;\n      this._texture.destroy(!!destroyBaseTexture);\n    }\n    this._texture = null;\n  }\n  static from(source, options) {\n    const texture = source instanceof Texture ? source : Texture.from(source, options);\n    return new Sprite(texture);\n  }\n  set roundPixels(value) {\n    if (this._roundPixels !== value) {\n      this._transformID = -1;\n    }\n    this._roundPixels = value;\n  }\n  get roundPixels() {\n    return this._roundPixels;\n  }\n  get width() {\n    return Math.abs(this.scale.x) * this._texture.orig.width;\n  }\n  set width(value) {\n    const s = utils.sign(this.scale.x) || 1;\n    this.scale.x = s * value / this._texture.orig.width;\n    this._width = value;\n  }\n  get height() {\n    return Math.abs(this.scale.y) * this._texture.orig.height;\n  }\n  set height(value) {\n    const s = utils.sign(this.scale.y) || 1;\n    this.scale.y = s * value / this._texture.orig.height;\n    this._height = value;\n  }\n  get anchor() {\n    return this._anchor;\n  }\n  set anchor(value) {\n    this._anchor.copyFrom(value);\n  }\n  get tint() {\n    return this._tint;\n  }\n  set tint(value) {\n    this._tint = value;\n    this._tintRGB = (value >> 16) + (value & 65280) + ((value & 255) << 16);\n  }\n  get texture() {\n    return this._texture;\n  }\n  set texture(value) {\n    if (this._texture === value) {\n      return;\n    }\n    if (this._texture) {\n      this._texture.off(\"update\", this._onTextureUpdate, this);\n    }\n    this._texture = value || Texture.EMPTY;\n    this._cachedTint = 16777215;\n    this._textureID = -1;\n    this._textureTrimmedID = -1;\n    if (value) {\n      if (value.baseTexture.valid) {\n        this._onTextureUpdate();\n      } else {\n        value.once(\"update\", this._onTextureUpdate, this);\n      }\n    }\n  }\n}\n\nexport { Sprite };\n//# sourceMappingURL=Sprite.mjs.map\n","import { Matrix, settings, RenderTexture, utils, BaseTexture, Texture } from '@pixi/core';\nimport { DisplayObject } from '@pixi/display';\nimport { Sprite } from '@pixi/sprite';\n\nconst _tempMatrix = new Matrix();\nDisplayObject.prototype._cacheAsBitmap = false;\nDisplayObject.prototype._cacheData = null;\nDisplayObject.prototype._cacheAsBitmapResolution = null;\nDisplayObject.prototype._cacheAsBitmapMultisample = null;\nclass CacheData {\n  constructor() {\n    this.textureCacheId = null;\n    this.originalRender = null;\n    this.originalRenderCanvas = null;\n    this.originalCalculateBounds = null;\n    this.originalGetLocalBounds = null;\n    this.originalUpdateTransform = null;\n    this.originalDestroy = null;\n    this.originalMask = null;\n    this.originalFilterArea = null;\n    this.originalContainsPoint = null;\n    this.sprite = null;\n  }\n}\nObject.defineProperties(DisplayObject.prototype, {\n  cacheAsBitmapResolution: {\n    get() {\n      return this._cacheAsBitmapResolution;\n    },\n    set(resolution) {\n      if (resolution === this._cacheAsBitmapResolution) {\n        return;\n      }\n      this._cacheAsBitmapResolution = resolution;\n      if (this.cacheAsBitmap) {\n        this.cacheAsBitmap = false;\n        this.cacheAsBitmap = true;\n      }\n    }\n  },\n  cacheAsBitmapMultisample: {\n    get() {\n      return this._cacheAsBitmapMultisample;\n    },\n    set(multisample) {\n      if (multisample === this._cacheAsBitmapMultisample) {\n        return;\n      }\n      this._cacheAsBitmapMultisample = multisample;\n      if (this.cacheAsBitmap) {\n        this.cacheAsBitmap = false;\n        this.cacheAsBitmap = true;\n      }\n    }\n  },\n  cacheAsBitmap: {\n    get() {\n      return this._cacheAsBitmap;\n    },\n    set(value) {\n      if (this._cacheAsBitmap === value) {\n        return;\n      }\n      this._cacheAsBitmap = value;\n      let data;\n      if (value) {\n        if (!this._cacheData) {\n          this._cacheData = new CacheData();\n        }\n        data = this._cacheData;\n        data.originalRender = this.render;\n        data.originalRenderCanvas = this.renderCanvas;\n        data.originalUpdateTransform = this.updateTransform;\n        data.originalCalculateBounds = this.calculateBounds;\n        data.originalGetLocalBounds = this.getLocalBounds;\n        data.originalDestroy = this.destroy;\n        data.originalContainsPoint = this.containsPoint;\n        data.originalMask = this._mask;\n        data.originalFilterArea = this.filterArea;\n        this.render = this._renderCached;\n        this.renderCanvas = this._renderCachedCanvas;\n        this.destroy = this._cacheAsBitmapDestroy;\n      } else {\n        data = this._cacheData;\n        if (data.sprite) {\n          this._destroyCachedDisplayObject();\n        }\n        this.render = data.originalRender;\n        this.renderCanvas = data.originalRenderCanvas;\n        this.calculateBounds = data.originalCalculateBounds;\n        this.getLocalBounds = data.originalGetLocalBounds;\n        this.destroy = data.originalDestroy;\n        this.updateTransform = data.originalUpdateTransform;\n        this.containsPoint = data.originalContainsPoint;\n        this._mask = data.originalMask;\n        this.filterArea = data.originalFilterArea;\n      }\n    }\n  }\n});\nDisplayObject.prototype._renderCached = function _renderCached(renderer) {\n  if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {\n    return;\n  }\n  this._initCachedDisplayObject(renderer);\n  this._cacheData.sprite.transform._worldID = this.transform._worldID;\n  this._cacheData.sprite.worldAlpha = this.worldAlpha;\n  this._cacheData.sprite._render(renderer);\n};\nDisplayObject.prototype._initCachedDisplayObject = function _initCachedDisplayObject(renderer) {\n  if (this._cacheData?.sprite) {\n    return;\n  }\n  const cacheAlpha = this.alpha;\n  this.alpha = 1;\n  renderer.batch.flush();\n  const bounds = this.getLocalBounds(null, true).clone();\n  if (this.filters?.length) {\n    const padding = this.filters[0].padding;\n    bounds.pad(padding);\n  }\n  bounds.ceil(settings.RESOLUTION);\n  const cachedRenderTexture = renderer.renderTexture.current;\n  const cachedSourceFrame = renderer.renderTexture.sourceFrame.clone();\n  const cachedDestinationFrame = renderer.renderTexture.destinationFrame.clone();\n  const cachedProjectionTransform = renderer.projection.transform;\n  const renderTexture = RenderTexture.create({\n    width: bounds.width,\n    height: bounds.height,\n    resolution: this.cacheAsBitmapResolution || renderer.resolution,\n    multisample: this.cacheAsBitmapMultisample ?? renderer.multisample\n  });\n  const textureCacheId = `cacheAsBitmap_${utils.uid()}`;\n  this._cacheData.textureCacheId = textureCacheId;\n  BaseTexture.addToCache(renderTexture.baseTexture, textureCacheId);\n  Texture.addToCache(renderTexture, textureCacheId);\n  const m = this.transform.localTransform.copyTo(_tempMatrix).invert().translate(-bounds.x, -bounds.y);\n  this.render = this._cacheData.originalRender;\n  renderer.render(this, { renderTexture, clear: true, transform: m, skipUpdateTransform: false });\n  renderer.framebuffer.blit();\n  renderer.projection.transform = cachedProjectionTransform;\n  renderer.renderTexture.bind(cachedRenderTexture, cachedSourceFrame, cachedDestinationFrame);\n  this.render = this._renderCached;\n  this.updateTransform = this.displayObjectUpdateTransform;\n  this.calculateBounds = this._calculateCachedBounds;\n  this.getLocalBounds = this._getCachedLocalBounds;\n  this._mask = null;\n  this.filterArea = null;\n  this.alpha = cacheAlpha;\n  const cachedSprite = new Sprite(renderTexture);\n  cachedSprite.transform.worldTransform = this.transform.worldTransform;\n  cachedSprite.anchor.x = -(bounds.x / bounds.width);\n  cachedSprite.anchor.y = -(bounds.y / bounds.height);\n  cachedSprite.alpha = cacheAlpha;\n  cachedSprite._bounds = this._bounds;\n  this._cacheData.sprite = cachedSprite;\n  this.transform._parentID = -1;\n  if (!this.parent) {\n    this.enableTempParent();\n    this.updateTransform();\n    this.disableTempParent(null);\n  } else {\n    this.updateTransform();\n  }\n  this.containsPoint = cachedSprite.containsPoint.bind(cachedSprite);\n};\nDisplayObject.prototype._renderCachedCanvas = function _renderCachedCanvas(renderer) {\n  if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {\n    return;\n  }\n  this._initCachedDisplayObjectCanvas(renderer);\n  this._cacheData.sprite.worldAlpha = this.worldAlpha;\n  this._cacheData.sprite._renderCanvas(renderer);\n};\nDisplayObject.prototype._initCachedDisplayObjectCanvas = function _initCachedDisplayObjectCanvas(renderer) {\n  if (this._cacheData?.sprite) {\n    return;\n  }\n  const bounds = this.getLocalBounds(null, true);\n  const cacheAlpha = this.alpha;\n  this.alpha = 1;\n  const cachedRenderTarget = renderer.canvasContext.activeContext;\n  const cachedProjectionTransform = renderer._projTransform;\n  bounds.ceil(settings.RESOLUTION);\n  const renderTexture = RenderTexture.create({ width: bounds.width, height: bounds.height });\n  const textureCacheId = `cacheAsBitmap_${utils.uid()}`;\n  this._cacheData.textureCacheId = textureCacheId;\n  BaseTexture.addToCache(renderTexture.baseTexture, textureCacheId);\n  Texture.addToCache(renderTexture, textureCacheId);\n  const m = _tempMatrix;\n  this.transform.localTransform.copyTo(m);\n  m.invert();\n  m.tx -= bounds.x;\n  m.ty -= bounds.y;\n  this.renderCanvas = this._cacheData.originalRenderCanvas;\n  renderer.render(this, { renderTexture, clear: true, transform: m, skipUpdateTransform: false });\n  renderer.canvasContext.activeContext = cachedRenderTarget;\n  renderer._projTransform = cachedProjectionTransform;\n  this.renderCanvas = this._renderCachedCanvas;\n  this.updateTransform = this.displayObjectUpdateTransform;\n  this.calculateBounds = this._calculateCachedBounds;\n  this.getLocalBounds = this._getCachedLocalBounds;\n  this._mask = null;\n  this.filterArea = null;\n  this.alpha = cacheAlpha;\n  const cachedSprite = new Sprite(renderTexture);\n  cachedSprite.transform.worldTransform = this.transform.worldTransform;\n  cachedSprite.anchor.x = -(bounds.x / bounds.width);\n  cachedSprite.anchor.y = -(bounds.y / bounds.height);\n  cachedSprite.alpha = cacheAlpha;\n  cachedSprite._bounds = this._bounds;\n  this._cacheData.sprite = cachedSprite;\n  this.transform._parentID = -1;\n  if (!this.parent) {\n    this.parent = renderer._tempDisplayObjectParent;\n    this.updateTransform();\n    this.parent = null;\n  } else {\n    this.updateTransform();\n  }\n  this.containsPoint = cachedSprite.containsPoint.bind(cachedSprite);\n};\nDisplayObject.prototype._calculateCachedBounds = function _calculateCachedBounds() {\n  this._bounds.clear();\n  this._cacheData.sprite.transform._worldID = this.transform._worldID;\n  this._cacheData.sprite._calculateBounds();\n  this._bounds.updateID = this._boundsID;\n};\nDisplayObject.prototype._getCachedLocalBounds = function _getCachedLocalBounds() {\n  return this._cacheData.sprite.getLocalBounds(null);\n};\nDisplayObject.prototype._destroyCachedDisplayObject = function _destroyCachedDisplayObject() {\n  this._cacheData.sprite._texture.destroy(true);\n  this._cacheData.sprite = null;\n  BaseTexture.removeFromCache(this._cacheData.textureCacheId);\n  Texture.removeFromCache(this._cacheData.textureCacheId);\n  this._cacheData.textureCacheId = null;\n};\nDisplayObject.prototype._cacheAsBitmapDestroy = function _cacheAsBitmapDestroy(options) {\n  this.cacheAsBitmap = false;\n  this.destroy(options);\n};\n\nexport { CacheData };\n//# sourceMappingURL=index.mjs.map\n","import { DisplayObject, Container } from '@pixi/display';\n\nDisplayObject.prototype.name = null;\nContainer.prototype.getChildByName = function getChildByName(name, deep) {\n  for (let i = 0, j = this.children.length; i < j; i++) {\n    if (this.children[i].name === name) {\n      return this.children[i];\n    }\n  }\n  if (deep) {\n    for (let i = 0, j = this.children.length; i < j; i++) {\n      const child = this.children[i];\n      if (!child.getChildByName) {\n        continue;\n      }\n      const target = child.getChildByName(name, true);\n      if (target) {\n        return target;\n      }\n    }\n  }\n  return null;\n};\n//# sourceMappingURL=index.mjs.map\n","import { Point } from '@pixi/core';\nimport { DisplayObject } from '@pixi/display';\n\nDisplayObject.prototype.getGlobalPosition = function getGlobalPosition(point = new Point(), skipUpdate = false) {\n  if (this.parent) {\n    this.parent.toGlobal(this.position, point, skipUpdate);\n  } else {\n    point.x = this.position.x;\n    point.y = this.position.y;\n  }\n  return point;\n};\n//# sourceMappingURL=index.mjs.map\n","var fragment = \"varying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform float uAlpha;\\n\\nvoid main(void)\\n{\\n   gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=alpha.mjs.map\n","import { Filter, defaultVertex } from '@pixi/core';\nimport fragment from './alpha.mjs';\n\nclass AlphaFilter extends Filter {\n  constructor(alpha = 1) {\n    super(defaultVertex, fragment, { uAlpha: 1 });\n    this.alpha = alpha;\n  }\n  get alpha() {\n    return this.uniforms.uAlpha;\n  }\n  set alpha(value) {\n    this.uniforms.uAlpha = value;\n  }\n}\n\nexport { AlphaFilter };\n//# sourceMappingURL=AlphaFilter.mjs.map\n","const GAUSSIAN_VALUES = {\n  5: [0.153388, 0.221461, 0.250301],\n  7: [0.071303, 0.131514, 0.189879, 0.214607],\n  9: [0.028532, 0.067234, 0.124009, 0.179044, 0.20236],\n  11: [93e-4, 0.028002, 0.065984, 0.121703, 0.175713, 0.198596],\n  13: [2406e-6, 9255e-6, 0.027867, 0.065666, 0.121117, 0.174868, 0.197641],\n  15: [489e-6, 2403e-6, 9246e-6, 0.02784, 0.065602, 0.120999, 0.174697, 0.197448]\n};\nconst fragTemplate = [\n  \"varying vec2 vBlurTexCoords[%size%];\",\n  \"uniform sampler2D uSampler;\",\n  \"void main(void)\",\n  \"{\",\n  \"    gl_FragColor = vec4(0.0);\",\n  \"    %blur%\",\n  \"}\"\n].join(\"\\n\");\nfunction generateBlurFragSource(kernelSize) {\n  const kernel = GAUSSIAN_VALUES[kernelSize];\n  const halfLength = kernel.length;\n  let fragSource = fragTemplate;\n  let blurLoop = \"\";\n  const template = \"gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;\";\n  let value;\n  for (let i = 0; i < kernelSize; i++) {\n    let blur = template.replace(\"%index%\", i.toString());\n    value = i;\n    if (i >= halfLength) {\n      value = kernelSize - i - 1;\n    }\n    blur = blur.replace(\"%value%\", kernel[value].toString());\n    blurLoop += blur;\n    blurLoop += \"\\n\";\n  }\n  fragSource = fragSource.replace(\"%blur%\", blurLoop);\n  fragSource = fragSource.replace(\"%size%\", kernelSize.toString());\n  return fragSource;\n}\n\nexport { generateBlurFragSource };\n//# sourceMappingURL=generateBlurFragSource.mjs.map\n","const vertTemplate = `\n    attribute vec2 aVertexPosition;\n\n    uniform mat3 projectionMatrix;\n\n    uniform float strength;\n\n    varying vec2 vBlurTexCoords[%size%];\n\n    uniform vec4 inputSize;\n    uniform vec4 outputFrame;\n\n    vec4 filterVertexPosition( void )\n    {\n        vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n        return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n    }\n\n    vec2 filterTextureCoord( void )\n    {\n        return aVertexPosition * (outputFrame.zw * inputSize.zw);\n    }\n\n    void main(void)\n    {\n        gl_Position = filterVertexPosition();\n\n        vec2 textureCoord = filterTextureCoord();\n        %blur%\n    }`;\nfunction generateBlurVertSource(kernelSize, x) {\n  const halfLength = Math.ceil(kernelSize / 2);\n  let vertSource = vertTemplate;\n  let blurLoop = \"\";\n  let template;\n  if (x) {\n    template = \"vBlurTexCoords[%index%] =  textureCoord + vec2(%sampleIndex% * strength, 0.0);\";\n  } else {\n    template = \"vBlurTexCoords[%index%] =  textureCoord + vec2(0.0, %sampleIndex% * strength);\";\n  }\n  for (let i = 0; i < kernelSize; i++) {\n    let blur = template.replace(\"%index%\", i.toString());\n    blur = blur.replace(\"%sampleIndex%\", `${i - (halfLength - 1)}.0`);\n    blurLoop += blur;\n    blurLoop += \"\\n\";\n  }\n  vertSource = vertSource.replace(\"%blur%\", blurLoop);\n  vertSource = vertSource.replace(\"%size%\", kernelSize.toString());\n  return vertSource;\n}\n\nexport { generateBlurVertSource };\n//# sourceMappingURL=generateBlurVertSource.mjs.map\n","import { Filter, CLEAR_MODES } from '@pixi/core';\nimport { generateBlurFragSource } from './generateBlurFragSource.mjs';\nimport { generateBlurVertSource } from './generateBlurVertSource.mjs';\n\nclass BlurFilterPass extends Filter {\n  constructor(horizontal, strength = 8, quality = 4, resolution = Filter.defaultResolution, kernelSize = 5) {\n    const vertSrc = generateBlurVertSource(kernelSize, horizontal);\n    const fragSrc = generateBlurFragSource(kernelSize);\n    super(vertSrc, fragSrc);\n    this.horizontal = horizontal;\n    this.resolution = resolution;\n    this._quality = 0;\n    this.quality = quality;\n    this.blur = strength;\n  }\n  apply(filterManager, input, output, clearMode) {\n    if (output) {\n      if (this.horizontal) {\n        this.uniforms.strength = 1 / output.width * (output.width / input.width);\n      } else {\n        this.uniforms.strength = 1 / output.height * (output.height / input.height);\n      }\n    } else {\n      if (this.horizontal) {\n        this.uniforms.strength = 1 / filterManager.renderer.width * (filterManager.renderer.width / input.width);\n      } else {\n        this.uniforms.strength = 1 / filterManager.renderer.height * (filterManager.renderer.height / input.height);\n      }\n    }\n    this.uniforms.strength *= this.strength;\n    this.uniforms.strength /= this.passes;\n    if (this.passes === 1) {\n      filterManager.applyFilter(this, input, output, clearMode);\n    } else {\n      const renderTarget = filterManager.getFilterTexture();\n      const renderer = filterManager.renderer;\n      let flip = input;\n      let flop = renderTarget;\n      this.state.blend = false;\n      filterManager.applyFilter(this, flip, flop, CLEAR_MODES.CLEAR);\n      for (let i = 1; i < this.passes - 1; i++) {\n        filterManager.bindAndClear(flip, CLEAR_MODES.BLIT);\n        this.uniforms.uSampler = flop;\n        const temp = flop;\n        flop = flip;\n        flip = temp;\n        renderer.shader.bind(this);\n        renderer.geometry.draw(5);\n      }\n      this.state.blend = true;\n      filterManager.applyFilter(this, flop, output, clearMode);\n      filterManager.returnFilterTexture(renderTarget);\n    }\n  }\n  get blur() {\n    return this.strength;\n  }\n  set blur(value) {\n    this.padding = 1 + Math.abs(value) * 2;\n    this.strength = value;\n  }\n  get quality() {\n    return this._quality;\n  }\n  set quality(value) {\n    this._quality = value;\n    this.passes = value;\n  }\n}\n\nexport { BlurFilterPass };\n//# sourceMappingURL=BlurFilterPass.mjs.map\n","import { Filter, CLEAR_MODES } from '@pixi/core';\nimport { BlurFilterPass } from './BlurFilterPass.mjs';\n\nclass BlurFilter extends Filter {\n  constructor(strength = 8, quality = 4, resolution = Filter.defaultResolution, kernelSize = 5) {\n    super();\n    this.blurXFilter = new BlurFilterPass(true, strength, quality, resolution, kernelSize);\n    this.blurYFilter = new BlurFilterPass(false, strength, quality, resolution, kernelSize);\n    this.resolution = resolution;\n    this.quality = quality;\n    this.blur = strength;\n    this.repeatEdgePixels = false;\n  }\n  apply(filterManager, input, output, clearMode) {\n    const xStrength = Math.abs(this.blurXFilter.strength);\n    const yStrength = Math.abs(this.blurYFilter.strength);\n    if (xStrength && yStrength) {\n      const renderTarget = filterManager.getFilterTexture();\n      this.blurXFilter.apply(filterManager, input, renderTarget, CLEAR_MODES.CLEAR);\n      this.blurYFilter.apply(filterManager, renderTarget, output, clearMode);\n      filterManager.returnFilterTexture(renderTarget);\n    } else if (yStrength) {\n      this.blurYFilter.apply(filterManager, input, output, clearMode);\n    } else {\n      this.blurXFilter.apply(filterManager, input, output, clearMode);\n    }\n  }\n  updatePadding() {\n    if (this._repeatEdgePixels) {\n      this.padding = 0;\n    } else {\n      this.padding = Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength)) * 2;\n    }\n  }\n  get blur() {\n    return this.blurXFilter.blur;\n  }\n  set blur(value) {\n    this.blurXFilter.blur = this.blurYFilter.blur = value;\n    this.updatePadding();\n  }\n  get quality() {\n    return this.blurXFilter.quality;\n  }\n  set quality(value) {\n    this.blurXFilter.quality = this.blurYFilter.quality = value;\n  }\n  get blurX() {\n    return this.blurXFilter.blur;\n  }\n  set blurX(value) {\n    this.blurXFilter.blur = value;\n    this.updatePadding();\n  }\n  get blurY() {\n    return this.blurYFilter.blur;\n  }\n  set blurY(value) {\n    this.blurYFilter.blur = value;\n    this.updatePadding();\n  }\n  get blendMode() {\n    return this.blurYFilter.blendMode;\n  }\n  set blendMode(value) {\n    this.blurYFilter.blendMode = value;\n  }\n  get repeatEdgePixels() {\n    return this._repeatEdgePixels;\n  }\n  set repeatEdgePixels(value) {\n    this._repeatEdgePixels = value;\n    this.updatePadding();\n  }\n}\n\nexport { BlurFilter };\n//# sourceMappingURL=BlurFilter.mjs.map\n","var fragment = \"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform float m[20];\\nuniform float uAlpha;\\n\\nvoid main(void)\\n{\\n    vec4 c = texture2D(uSampler, vTextureCoord);\\n\\n    if (uAlpha == 0.0) {\\n        gl_FragColor = c;\\n        return;\\n    }\\n\\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\\n    if (c.a > 0.0) {\\n      c.rgb /= c.a;\\n    }\\n\\n    vec4 result;\\n\\n    result.r = (m[0] * c.r);\\n        result.r += (m[1] * c.g);\\n        result.r += (m[2] * c.b);\\n        result.r += (m[3] * c.a);\\n        result.r += m[4];\\n\\n    result.g = (m[5] * c.r);\\n        result.g += (m[6] * c.g);\\n        result.g += (m[7] * c.b);\\n        result.g += (m[8] * c.a);\\n        result.g += m[9];\\n\\n    result.b = (m[10] * c.r);\\n       result.b += (m[11] * c.g);\\n       result.b += (m[12] * c.b);\\n       result.b += (m[13] * c.a);\\n       result.b += m[14];\\n\\n    result.a = (m[15] * c.r);\\n       result.a += (m[16] * c.g);\\n       result.a += (m[17] * c.b);\\n       result.a += (m[18] * c.a);\\n       result.a += m[19];\\n\\n    vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\\n\\n    // Premultiply alpha again.\\n    rgb *= result.a;\\n\\n    gl_FragColor = vec4(rgb, result.a);\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=colorMatrix.mjs.map\n","import { Filter, defaultFilterVertex } from '@pixi/core';\nimport fragment from './colorMatrix.mjs';\n\nclass ColorMatrixFilter extends Filter {\n  constructor() {\n    const uniforms = {\n      m: new Float32Array([\n        1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0\n      ]),\n      uAlpha: 1\n    };\n    super(defaultFilterVertex, fragment, uniforms);\n    this.alpha = 1;\n  }\n  _loadMatrix(matrix, multiply = false) {\n    let newMatrix = matrix;\n    if (multiply) {\n      this._multiply(newMatrix, this.uniforms.m, matrix);\n      newMatrix = this._colorMatrix(newMatrix);\n    }\n    this.uniforms.m = newMatrix;\n  }\n  _multiply(out, a, b) {\n    out[0] = a[0] * b[0] + a[1] * b[5] + a[2] * b[10] + a[3] * b[15];\n    out[1] = a[0] * b[1] + a[1] * b[6] + a[2] * b[11] + a[3] * b[16];\n    out[2] = a[0] * b[2] + a[1] * b[7] + a[2] * b[12] + a[3] * b[17];\n    out[3] = a[0] * b[3] + a[1] * b[8] + a[2] * b[13] + a[3] * b[18];\n    out[4] = a[0] * b[4] + a[1] * b[9] + a[2] * b[14] + a[3] * b[19] + a[4];\n    out[5] = a[5] * b[0] + a[6] * b[5] + a[7] * b[10] + a[8] * b[15];\n    out[6] = a[5] * b[1] + a[6] * b[6] + a[7] * b[11] + a[8] * b[16];\n    out[7] = a[5] * b[2] + a[6] * b[7] + a[7] * b[12] + a[8] * b[17];\n    out[8] = a[5] * b[3] + a[6] * b[8] + a[7] * b[13] + a[8] * b[18];\n    out[9] = a[5] * b[4] + a[6] * b[9] + a[7] * b[14] + a[8] * b[19] + a[9];\n    out[10] = a[10] * b[0] + a[11] * b[5] + a[12] * b[10] + a[13] * b[15];\n    out[11] = a[10] * b[1] + a[11] * b[6] + a[12] * b[11] + a[13] * b[16];\n    out[12] = a[10] * b[2] + a[11] * b[7] + a[12] * b[12] + a[13] * b[17];\n    out[13] = a[10] * b[3] + a[11] * b[8] + a[12] * b[13] + a[13] * b[18];\n    out[14] = a[10] * b[4] + a[11] * b[9] + a[12] * b[14] + a[13] * b[19] + a[14];\n    out[15] = a[15] * b[0] + a[16] * b[5] + a[17] * b[10] + a[18] * b[15];\n    out[16] = a[15] * b[1] + a[16] * b[6] + a[17] * b[11] + a[18] * b[16];\n    out[17] = a[15] * b[2] + a[16] * b[7] + a[17] * b[12] + a[18] * b[17];\n    out[18] = a[15] * b[3] + a[16] * b[8] + a[17] * b[13] + a[18] * b[18];\n    out[19] = a[15] * b[4] + a[16] * b[9] + a[17] * b[14] + a[18] * b[19] + a[19];\n    return out;\n  }\n  _colorMatrix(matrix) {\n    const m = new Float32Array(matrix);\n    m[4] /= 255;\n    m[9] /= 255;\n    m[14] /= 255;\n    m[19] /= 255;\n    return m;\n  }\n  brightness(b, multiply) {\n    const matrix = [\n      b,\n      0,\n      0,\n      0,\n      0,\n      0,\n      b,\n      0,\n      0,\n      0,\n      0,\n      0,\n      b,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  tint(color, multiply) {\n    const r = color >> 16 & 255;\n    const g = color >> 8 & 255;\n    const b = color & 255;\n    const matrix = [\n      r / 255,\n      0,\n      0,\n      0,\n      0,\n      0,\n      g / 255,\n      0,\n      0,\n      0,\n      0,\n      0,\n      b / 255,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  greyscale(scale, multiply) {\n    const matrix = [\n      scale,\n      scale,\n      scale,\n      0,\n      0,\n      scale,\n      scale,\n      scale,\n      0,\n      0,\n      scale,\n      scale,\n      scale,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  blackAndWhite(multiply) {\n    const matrix = [\n      0.3,\n      0.6,\n      0.1,\n      0,\n      0,\n      0.3,\n      0.6,\n      0.1,\n      0,\n      0,\n      0.3,\n      0.6,\n      0.1,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  hue(rotation, multiply) {\n    rotation = (rotation || 0) / 180 * Math.PI;\n    const cosR = Math.cos(rotation);\n    const sinR = Math.sin(rotation);\n    const sqrt = Math.sqrt;\n    const w = 1 / 3;\n    const sqrW = sqrt(w);\n    const a00 = cosR + (1 - cosR) * w;\n    const a01 = w * (1 - cosR) - sqrW * sinR;\n    const a02 = w * (1 - cosR) + sqrW * sinR;\n    const a10 = w * (1 - cosR) + sqrW * sinR;\n    const a11 = cosR + w * (1 - cosR);\n    const a12 = w * (1 - cosR) - sqrW * sinR;\n    const a20 = w * (1 - cosR) - sqrW * sinR;\n    const a21 = w * (1 - cosR) + sqrW * sinR;\n    const a22 = cosR + w * (1 - cosR);\n    const matrix = [\n      a00,\n      a01,\n      a02,\n      0,\n      0,\n      a10,\n      a11,\n      a12,\n      0,\n      0,\n      a20,\n      a21,\n      a22,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  contrast(amount, multiply) {\n    const v = (amount || 0) + 1;\n    const o = -0.5 * (v - 1);\n    const matrix = [\n      v,\n      0,\n      0,\n      0,\n      o,\n      0,\n      v,\n      0,\n      0,\n      o,\n      0,\n      0,\n      v,\n      0,\n      o,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  saturate(amount = 0, multiply) {\n    const x = amount * 2 / 3 + 1;\n    const y = (x - 1) * -0.5;\n    const matrix = [\n      x,\n      y,\n      y,\n      0,\n      0,\n      y,\n      x,\n      y,\n      0,\n      0,\n      y,\n      y,\n      x,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  desaturate() {\n    this.saturate(-1);\n  }\n  negative(multiply) {\n    const matrix = [\n      -1,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -1,\n      0,\n      1,\n      0,\n      0,\n      0,\n      -1,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  sepia(multiply) {\n    const matrix = [\n      0.393,\n      0.7689999,\n      0.18899999,\n      0,\n      0,\n      0.349,\n      0.6859999,\n      0.16799999,\n      0,\n      0,\n      0.272,\n      0.5339999,\n      0.13099999,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  technicolor(multiply) {\n    const matrix = [\n      1.9125277891456083,\n      -0.8545344976951645,\n      -0.09155508482755585,\n      0,\n      11.793603434377337,\n      -0.3087833385928097,\n      1.7658908555458428,\n      -0.10601743074722245,\n      0,\n      -70.35205161461398,\n      -0.231103377548616,\n      -0.7501899197440212,\n      1.847597816108189,\n      0,\n      30.950940869491138,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  polaroid(multiply) {\n    const matrix = [\n      1.438,\n      -0.062,\n      -0.062,\n      0,\n      0,\n      -0.122,\n      1.378,\n      -0.122,\n      0,\n      0,\n      -0.016,\n      -0.016,\n      1.483,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  toBGR(multiply) {\n    const matrix = [\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  kodachrome(multiply) {\n    const matrix = [\n      1.1285582396593525,\n      -0.3967382283601348,\n      -0.03992559172921793,\n      0,\n      63.72958762196502,\n      -0.16404339962244616,\n      1.0835251566291304,\n      -0.05498805115633132,\n      0,\n      24.732407896706203,\n      -0.16786010706155763,\n      -0.5603416277695248,\n      1.6014850761964943,\n      0,\n      35.62982807460946,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  browni(multiply) {\n    const matrix = [\n      0.5997023498159715,\n      0.34553243048391263,\n      -0.2708298674538042,\n      0,\n      47.43192855600873,\n      -0.037703249837783157,\n      0.8609577587992641,\n      0.15059552388459913,\n      0,\n      -36.96841498319127,\n      0.24113635128153335,\n      -0.07441037908422492,\n      0.44972182064877153,\n      0,\n      -7.562075277591283,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  vintage(multiply) {\n    const matrix = [\n      0.6279345635605994,\n      0.3202183420819367,\n      -0.03965408211312453,\n      0,\n      9.651285835294123,\n      0.02578397704808868,\n      0.6441188644374771,\n      0.03259127616149294,\n      0,\n      7.462829176470591,\n      0.0466055556782719,\n      -0.0851232987247891,\n      0.5241648018700465,\n      0,\n      5.159190588235296,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  colorTone(desaturation, toned, lightColor, darkColor, multiply) {\n    desaturation = desaturation || 0.2;\n    toned = toned || 0.15;\n    lightColor = lightColor || 16770432;\n    darkColor = darkColor || 3375104;\n    const lR = (lightColor >> 16 & 255) / 255;\n    const lG = (lightColor >> 8 & 255) / 255;\n    const lB = (lightColor & 255) / 255;\n    const dR = (darkColor >> 16 & 255) / 255;\n    const dG = (darkColor >> 8 & 255) / 255;\n    const dB = (darkColor & 255) / 255;\n    const matrix = [\n      0.3,\n      0.59,\n      0.11,\n      0,\n      0,\n      lR,\n      lG,\n      lB,\n      desaturation,\n      0,\n      dR,\n      dG,\n      dB,\n      toned,\n      0,\n      lR - dR,\n      lG - dG,\n      lB - dB,\n      0,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  night(intensity, multiply) {\n    intensity = intensity || 0.1;\n    const matrix = [\n      intensity * -2,\n      -intensity,\n      0,\n      0,\n      0,\n      -intensity,\n      0,\n      intensity,\n      0,\n      0,\n      0,\n      intensity,\n      intensity * 2,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  predator(amount, multiply) {\n    const matrix = [\n      11.224130630493164 * amount,\n      -4.794486999511719 * amount,\n      -2.8746118545532227 * amount,\n      0 * amount,\n      0.40342438220977783 * amount,\n      -3.6330697536468506 * amount,\n      9.193157196044922 * amount,\n      -2.951810836791992 * amount,\n      0 * amount,\n      -1.316135048866272 * amount,\n      -3.2184197902679443 * amount,\n      -4.2375030517578125 * amount,\n      7.476448059082031 * amount,\n      0 * amount,\n      0.8044459223747253 * amount,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  lsd(multiply) {\n    const matrix = [\n      2,\n      -0.4,\n      0.5,\n      0,\n      0,\n      -0.5,\n      2,\n      -0.4,\n      0,\n      0,\n      -0.4,\n      -0.5,\n      3,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, multiply);\n  }\n  reset() {\n    const matrix = [\n      1,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0\n    ];\n    this._loadMatrix(matrix, false);\n  }\n  get matrix() {\n    return this.uniforms.m;\n  }\n  set matrix(value) {\n    this.uniforms.m = value;\n  }\n  get alpha() {\n    return this.uniforms.uAlpha;\n  }\n  set alpha(value) {\n    this.uniforms.uAlpha = value;\n  }\n}\nColorMatrixFilter.prototype.grayscale = ColorMatrixFilter.prototype.greyscale;\n\nexport { ColorMatrixFilter };\n//# sourceMappingURL=ColorMatrixFilter.mjs.map\n","var fragment = \"varying vec2 vFilterCoord;\\nvarying vec2 vTextureCoord;\\n\\nuniform vec2 scale;\\nuniform mat2 rotation;\\nuniform sampler2D uSampler;\\nuniform sampler2D mapSampler;\\n\\nuniform highp vec4 inputSize;\\nuniform vec4 inputClamp;\\n\\nvoid main(void)\\n{\\n  vec4 map =  texture2D(mapSampler, vFilterCoord);\\n\\n  map -= 0.5;\\n  map.xy = scale * inputSize.zw * (rotation * map.xy);\\n\\n  gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw));\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=displacement.mjs.map\n","var vertex = \"attribute vec2 aVertexPosition;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 filterMatrix;\\n\\nvarying vec2 vTextureCoord;\\nvarying vec2 vFilterCoord;\\n\\nuniform vec4 inputSize;\\nuniform vec4 outputFrame;\\n\\nvec4 filterVertexPosition( void )\\n{\\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\\n\\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\\n}\\n\\nvec2 filterTextureCoord( void )\\n{\\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\\n}\\n\\nvoid main(void)\\n{\\n\\tgl_Position = filterVertexPosition();\\n\\tvTextureCoord = filterTextureCoord();\\n\\tvFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0)  ).xy;\\n}\\n\";\n\nexport { vertex as default };\n//# sourceMappingURL=displacement2.mjs.map\n","import { Filter, Matrix, Point } from '@pixi/core';\nimport fragment from './displacement.mjs';\nimport vertex from './displacement2.mjs';\n\nclass DisplacementFilter extends Filter {\n  constructor(sprite, scale) {\n    const maskMatrix = new Matrix();\n    sprite.renderable = false;\n    super(vertex, fragment, {\n      mapSampler: sprite._texture,\n      filterMatrix: maskMatrix,\n      scale: { x: 1, y: 1 },\n      rotation: new Float32Array([1, 0, 0, 1])\n    });\n    this.maskSprite = sprite;\n    this.maskMatrix = maskMatrix;\n    if (scale === null || scale === void 0) {\n      scale = 20;\n    }\n    this.scale = new Point(scale, scale);\n  }\n  apply(filterManager, input, output, clearMode) {\n    this.uniforms.filterMatrix = filterManager.calculateSpriteMatrix(this.maskMatrix, this.maskSprite);\n    this.uniforms.scale.x = this.scale.x;\n    this.uniforms.scale.y = this.scale.y;\n    const wt = this.maskSprite.worldTransform;\n    const lenX = Math.sqrt(wt.a * wt.a + wt.b * wt.b);\n    const lenY = Math.sqrt(wt.c * wt.c + wt.d * wt.d);\n    if (lenX !== 0 && lenY !== 0) {\n      this.uniforms.rotation[0] = wt.a / lenX;\n      this.uniforms.rotation[1] = wt.b / lenX;\n      this.uniforms.rotation[2] = wt.c / lenY;\n      this.uniforms.rotation[3] = wt.d / lenY;\n    }\n    filterManager.applyFilter(this, input, output, clearMode);\n  }\n  get map() {\n    return this.uniforms.mapSampler;\n  }\n  set map(value) {\n    this.uniforms.mapSampler = value;\n  }\n}\n\nexport { DisplacementFilter };\n//# sourceMappingURL=DisplacementFilter.mjs.map\n","var fragment = \"varying vec2 v_rgbNW;\\nvarying vec2 v_rgbNE;\\nvarying vec2 v_rgbSW;\\nvarying vec2 v_rgbSE;\\nvarying vec2 v_rgbM;\\n\\nvarying vec2 vFragCoord;\\nuniform sampler2D uSampler;\\nuniform highp vec4 inputSize;\\n\\n\\n/**\\n Basic FXAA implementation based on the code on geeks3d.com with the\\n modification that the texture2DLod stuff was removed since it's\\n unsupported by WebGL.\\n\\n --\\n\\n From:\\n https://github.com/mitsuhiko/webgl-meincraft\\n\\n Copyright (c) 2011 by Armin Ronacher.\\n\\n Some rights reserved.\\n\\n Redistribution and use in source and binary forms, with or without\\n modification, are permitted provided that the following conditions are\\n met:\\n\\n * Redistributions of source code must retain the above copyright\\n notice, this list of conditions and the following disclaimer.\\n\\n * Redistributions in binary form must reproduce the above\\n copyright notice, this list of conditions and the following\\n disclaimer in the documentation and/or other materials provided\\n with the distribution.\\n\\n * The names of the contributors may not be used to endorse or\\n promote products derived from this software without specific\\n prior written permission.\\n\\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\\n \\\"AS IS\\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n\\n#ifndef FXAA_REDUCE_MIN\\n#define FXAA_REDUCE_MIN   (1.0/ 128.0)\\n#endif\\n#ifndef FXAA_REDUCE_MUL\\n#define FXAA_REDUCE_MUL   (1.0 / 8.0)\\n#endif\\n#ifndef FXAA_SPAN_MAX\\n#define FXAA_SPAN_MAX     8.0\\n#endif\\n\\n//optimized version for mobile, where dependent\\n//texture reads can be a bottleneck\\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 inverseVP,\\n          vec2 v_rgbNW, vec2 v_rgbNE,\\n          vec2 v_rgbSW, vec2 v_rgbSE,\\n          vec2 v_rgbM) {\\n    vec4 color;\\n    vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\\n    vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\\n    vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\\n    vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\\n    vec4 texColor = texture2D(tex, v_rgbM);\\n    vec3 rgbM  = texColor.xyz;\\n    vec3 luma = vec3(0.299, 0.587, 0.114);\\n    float lumaNW = dot(rgbNW, luma);\\n    float lumaNE = dot(rgbNE, luma);\\n    float lumaSW = dot(rgbSW, luma);\\n    float lumaSE = dot(rgbSE, luma);\\n    float lumaM  = dot(rgbM,  luma);\\n    float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\\n    float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\\n\\n    mediump vec2 dir;\\n    dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\\n    dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));\\n\\n    float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\\n                          (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\\n\\n    float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\\n    dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\\n              max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\\n                  dir * rcpDirMin)) * inverseVP;\\n\\n    vec3 rgbA = 0.5 * (\\n                       texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\\n                       texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\\n    vec3 rgbB = rgbA * 0.5 + 0.25 * (\\n                                     texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\\n                                     texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\\n\\n    float lumaB = dot(rgbB, luma);\\n    if ((lumaB < lumaMin) || (lumaB > lumaMax))\\n        color = vec4(rgbA, texColor.a);\\n    else\\n        color = vec4(rgbB, texColor.a);\\n    return color;\\n}\\n\\nvoid main() {\\n\\n      vec4 color;\\n\\n      color = fxaa(uSampler, vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\\n\\n      gl_FragColor = color;\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=fxaa.mjs.map\n","var vertex = \"\\nattribute vec2 aVertexPosition;\\n\\nuniform mat3 projectionMatrix;\\n\\nvarying vec2 v_rgbNW;\\nvarying vec2 v_rgbNE;\\nvarying vec2 v_rgbSW;\\nvarying vec2 v_rgbSE;\\nvarying vec2 v_rgbM;\\n\\nvarying vec2 vFragCoord;\\n\\nuniform vec4 inputSize;\\nuniform vec4 outputFrame;\\n\\nvec4 filterVertexPosition( void )\\n{\\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\\n\\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\\n}\\n\\nvoid texcoords(vec2 fragCoord, vec2 inverseVP,\\n               out vec2 v_rgbNW, out vec2 v_rgbNE,\\n               out vec2 v_rgbSW, out vec2 v_rgbSE,\\n               out vec2 v_rgbM) {\\n    v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\\n    v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\\n    v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\\n    v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\\n    v_rgbM = vec2(fragCoord * inverseVP);\\n}\\n\\nvoid main(void) {\\n\\n   gl_Position = filterVertexPosition();\\n\\n   vFragCoord = aVertexPosition * outputFrame.zw;\\n\\n   texcoords(vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\\n}\\n\";\n\nexport { vertex as default };\n//# sourceMappingURL=fxaa2.mjs.map\n","import { Filter } from '@pixi/core';\nimport fragment from './fxaa.mjs';\nimport vertex from './fxaa2.mjs';\n\nclass FXAAFilter extends Filter {\n  constructor() {\n    super(vertex, fragment);\n  }\n}\n\nexport { FXAAFilter };\n//# sourceMappingURL=FXAAFilter.mjs.map\n","var fragment = \"precision highp float;\\n\\nvarying vec2 vTextureCoord;\\nvarying vec4 vColor;\\n\\nuniform float uNoise;\\nuniform float uSeed;\\nuniform sampler2D uSampler;\\n\\nfloat rand(vec2 co)\\n{\\n    return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n}\\n\\nvoid main()\\n{\\n    vec4 color = texture2D(uSampler, vTextureCoord);\\n    float randomValue = rand(gl_FragCoord.xy * uSeed);\\n    float diff = (randomValue - 0.5) * uNoise;\\n\\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\\n    if (color.a > 0.0) {\\n        color.rgb /= color.a;\\n    }\\n\\n    color.r += diff;\\n    color.g += diff;\\n    color.b += diff;\\n\\n    // Premultiply alpha again.\\n    color.rgb *= color.a;\\n\\n    gl_FragColor = color;\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=noise.mjs.map\n","import { Filter, defaultFilterVertex } from '@pixi/core';\nimport fragment from './noise.mjs';\n\nclass NoiseFilter extends Filter {\n  constructor(noise = 0.5, seed = Math.random()) {\n    super(defaultFilterVertex, fragment, {\n      uNoise: 0,\n      uSeed: 0\n    });\n    this.noise = noise;\n    this.seed = seed;\n  }\n  get noise() {\n    return this.uniforms.uNoise;\n  }\n  set noise(value) {\n    this.uniforms.uNoise = value;\n  }\n  get seed() {\n    return this.uniforms.uSeed;\n  }\n  set seed(value) {\n    this.uniforms.uSeed = value;\n  }\n}\n\nexport { NoiseFilter };\n//# sourceMappingURL=NoiseFilter.mjs.map\n","import { utils } from '@pixi/core';\nimport { AlphaFilter } from '@pixi/filter-alpha';\nimport { BlurFilter, BlurFilterPass } from '@pixi/filter-blur';\nimport { ColorMatrixFilter } from '@pixi/filter-color-matrix';\nimport { DisplacementFilter } from '@pixi/filter-displacement';\nimport { FXAAFilter } from '@pixi/filter-fxaa';\nimport { NoiseFilter } from '@pixi/filter-noise';\n\n/** @deprecated */\nconst filters = {\n    /** @deprecated */\n    AlphaFilter,\n    /** @deprecated */\n    BlurFilter,\n    /** @deprecated */\n    BlurFilterPass,\n    /** @deprecated */\n    ColorMatrixFilter,\n    /** @deprecated */\n    DisplacementFilter,\n    /** @deprecated */\n    FXAAFilter,\n    /** @deprecated */\n    NoiseFilter,\n};\n\nObject.entries(filters).forEach(([key, FilterClass]) =>\n{\n    Object.defineProperty(filters, key, {\n        get()\n        {\n            // #if _DEBUG\n            utils.deprecation('7.1.0', `filters.${key} has moved to ${key}`);\n            // #endif\n\n            return FilterClass;\n        },\n    });\n});\n\nexport { filters };\n","import { autoDetectRenderer, extensions, ExtensionType } from '@pixi/core';\nimport { Container } from '@pixi/display';\n\nconst _Application = class {\n  constructor(options) {\n    this.stage = new Container();\n    options = Object.assign({\n      forceCanvas: false\n    }, options);\n    this.renderer = autoDetectRenderer(options);\n    _Application._plugins.forEach((plugin) => {\n      plugin.init.call(this, options);\n    });\n  }\n  render() {\n    this.renderer.render(this.stage);\n  }\n  get view() {\n    return this.renderer.view;\n  }\n  get screen() {\n    return this.renderer.screen;\n  }\n  destroy(removeView, stageOptions) {\n    const plugins = _Application._plugins.slice(0);\n    plugins.reverse();\n    plugins.forEach((plugin) => {\n      plugin.destroy.call(this);\n    });\n    this.stage.destroy(stageOptions);\n    this.stage = null;\n    this.renderer.destroy(removeView);\n    this.renderer = null;\n  }\n};\nlet Application = _Application;\nApplication._plugins = [];\nextensions.handleByList(ExtensionType.Application, Application._plugins);\n\nexport { Application };\n//# sourceMappingURL=Application.mjs.map\n","import { ExtensionType, extensions } from '@pixi/core';\n\nclass ResizePlugin {\n  static init(options) {\n    Object.defineProperty(this, \"resizeTo\", {\n      set(dom) {\n        globalThis.removeEventListener(\"resize\", this.queueResize);\n        this._resizeTo = dom;\n        if (dom) {\n          globalThis.addEventListener(\"resize\", this.queueResize);\n          this.resize();\n        }\n      },\n      get() {\n        return this._resizeTo;\n      }\n    });\n    this.queueResize = () => {\n      if (!this._resizeTo) {\n        return;\n      }\n      this.cancelResize();\n      this._resizeId = requestAnimationFrame(() => this.resize());\n    };\n    this.cancelResize = () => {\n      if (this._resizeId) {\n        cancelAnimationFrame(this._resizeId);\n        this._resizeId = null;\n      }\n    };\n    this.resize = () => {\n      if (!this._resizeTo) {\n        return;\n      }\n      this.cancelResize();\n      let width;\n      let height;\n      if (this._resizeTo === globalThis.window) {\n        width = globalThis.innerWidth;\n        height = globalThis.innerHeight;\n      } else {\n        const { clientWidth, clientHeight } = this._resizeTo;\n        width = clientWidth;\n        height = clientHeight;\n      }\n      this.renderer.resize(width, height);\n      this.render();\n    };\n    this._resizeId = null;\n    this._resizeTo = null;\n    this.resizeTo = options.resizeTo || null;\n  }\n  static destroy() {\n    globalThis.removeEventListener(\"resize\", this.queueResize);\n    this.cancelResize();\n    this.cancelResize = null;\n    this.queueResize = null;\n    this.resizeTo = null;\n    this.resize = null;\n  }\n}\nResizePlugin.extension = ExtensionType.Application;\nextensions.add(ResizePlugin);\n\nexport { ResizePlugin };\n//# sourceMappingURL=ResizePlugin.mjs.map\n","import { ExtensionType, extensions } from '@pixi/core';\n\nconst assetKeyMap = {\n  loader: ExtensionType.LoadParser,\n  resolver: ExtensionType.ResolveParser,\n  cache: ExtensionType.CacheParser,\n  detection: ExtensionType.DetectionParser\n};\nextensions.handle(ExtensionType.Asset, (extension) => {\n  const ref = extension.ref;\n  Object.entries(assetKeyMap).filter(([key]) => !!ref[key]).forEach(([key, type]) => extensions.add(Object.assign(ref[key], { extension: ref[key].extension ?? type })));\n}, (extension) => {\n  const ref = extension.ref;\n  Object.keys(assetKeyMap).filter((key) => !!ref[key]).forEach((key) => extensions.remove(ref[key]));\n});\n//# sourceMappingURL=AssetExtension.mjs.map\n","class BackgroundLoader {\n  constructor(loader, verbose = false) {\n    this._loader = loader;\n    this._assetList = [];\n    this._isLoading = false;\n    this._maxConcurrent = 1;\n    this.verbose = verbose;\n  }\n  add(assetUrls) {\n    assetUrls.forEach((a) => {\n      this._assetList.push(a);\n    });\n    if (this.verbose)\n      console.log(\"[BackgroundLoader] assets: \", this._assetList);\n    if (this._isActive && !this._isLoading) {\n      this._next();\n    }\n  }\n  async _next() {\n    if (this._assetList.length && this._isActive) {\n      this._isLoading = true;\n      const toLoad = [];\n      const toLoadAmount = Math.min(this._assetList.length, this._maxConcurrent);\n      for (let i = 0; i < toLoadAmount; i++) {\n        toLoad.push(this._assetList.pop());\n      }\n      await this._loader.load(toLoad);\n      this._isLoading = false;\n      this._next();\n    }\n  }\n  get active() {\n    return this._isActive;\n  }\n  set active(value) {\n    if (this._isActive === value)\n      return;\n    this._isActive = value;\n    if (value && !this._isLoading) {\n      this._next();\n    }\n  }\n}\n\nexport { BackgroundLoader };\n//# sourceMappingURL=BackgroundLoader.mjs.map\n","function checkDataUrl(url, mimes) {\n  if (Array.isArray(mimes)) {\n    for (const mime of mimes) {\n      if (url.startsWith(`data:${mime}`))\n        return true;\n    }\n    return false;\n  }\n  return url.startsWith(`data:${mimes}`);\n}\n\nexport { checkDataUrl };\n//# sourceMappingURL=checkDataUrl.mjs.map\n","import { utils } from '@pixi/core';\n\nfunction checkExtension(url, extension) {\n  const tempURL = url.split(\"?\")[0];\n  const ext = utils.path.extname(tempURL).toLowerCase();\n  if (Array.isArray(extension)) {\n    return extension.includes(ext);\n  }\n  return ext === extension;\n}\n\nexport { checkExtension };\n//# sourceMappingURL=checkExtension.mjs.map\n","const convertToList = (input, transform) => {\n  if (!Array.isArray(input)) {\n    input = [input];\n  }\n  if (!transform) {\n    return input;\n  }\n  return input.map((item) => {\n    if (typeof item === \"string\") {\n      return transform(item);\n    }\n    return item;\n  });\n};\n\nexport { convertToList };\n//# sourceMappingURL=convertToList.mjs.map\n","const copySearchParams = (targetUrl, sourceUrl) => {\n  const searchParams = sourceUrl.split(\"?\")[1];\n  if (searchParams) {\n    targetUrl += `?${searchParams}`;\n  }\n  return targetUrl;\n};\n\nexport { copySearchParams };\n//# sourceMappingURL=copySearchParams.mjs.map\n","function processX(base, ids, depth, result, tags) {\n  const id = ids[depth];\n  for (let i = 0; i < id.length; i++) {\n    const value = id[i];\n    if (depth < ids.length - 1) {\n      processX(base.replace(result[depth], value), ids, depth + 1, result, tags);\n    } else {\n      tags.push(base.replace(result[depth], value));\n    }\n  }\n}\nfunction createStringVariations(string) {\n  const regex = /\\{(.*?)\\}/g;\n  const result = string.match(regex);\n  const tags = [];\n  if (result) {\n    const ids = [];\n    result.forEach((vars) => {\n      const split = vars.substring(1, vars.length - 1).split(\",\");\n      ids.push(split);\n    });\n    processX(string, ids, 0, result, tags);\n  } else {\n    tags.push(string);\n  }\n  return tags;\n}\n\nexport { createStringVariations };\n//# sourceMappingURL=createStringVariations.mjs.map\n","const isSingleItem = (item) => !Array.isArray(item);\n\nexport { isSingleItem };\n//# sourceMappingURL=isSingleItem.mjs.map\n","import { Texture, BaseTexture } from '@pixi/core';\nimport '../utils/index.mjs';\nimport { convertToList } from '../utils/convertToList.mjs';\n\nclass CacheClass {\n  constructor() {\n    this._parsers = [];\n    this._cache = /* @__PURE__ */ new Map();\n    this._cacheMap = /* @__PURE__ */ new Map();\n  }\n  reset() {\n    this._cacheMap.clear();\n    this._cache.clear();\n  }\n  has(key) {\n    return this._cache.has(key);\n  }\n  get(key) {\n    const result = this._cache.get(key);\n    if (!result) {\n      console.warn(`[Assets] Asset id ${key} was not found in the Cache`);\n    }\n    return result;\n  }\n  set(key, value) {\n    const keys = convertToList(key);\n    let cacheableAssets;\n    for (let i = 0; i < this.parsers.length; i++) {\n      const parser = this.parsers[i];\n      if (parser.test(value)) {\n        cacheableAssets = parser.getCacheableAssets(keys, value);\n        break;\n      }\n    }\n    if (!cacheableAssets) {\n      cacheableAssets = {};\n      keys.forEach((key2) => {\n        cacheableAssets[key2] = value;\n      });\n    }\n    const cacheKeys = Object.keys(cacheableAssets);\n    const cachedAssets = {\n      cacheKeys,\n      keys\n    };\n    keys.forEach((key2) => {\n      this._cacheMap.set(key2, cachedAssets);\n    });\n    cacheKeys.forEach((key2) => {\n      if (this._cache.has(key2) && this._cache.get(key2) !== value) {\n        console.warn(\"[Cache] already has key:\", key2);\n      }\n      this._cache.set(key2, cacheableAssets[key2]);\n    });\n    if (value instanceof Texture) {\n      const texture = value;\n      keys.forEach((key2) => {\n        if (texture.baseTexture !== Texture.EMPTY.baseTexture) {\n          BaseTexture.addToCache(texture.baseTexture, key2);\n        }\n        Texture.addToCache(texture, key2);\n      });\n    }\n  }\n  remove(key) {\n    this._cacheMap.get(key);\n    if (!this._cacheMap.has(key)) {\n      console.warn(`[Assets] Asset id ${key} was not found in the Cache`);\n      return;\n    }\n    const cacheMap = this._cacheMap.get(key);\n    const cacheKeys = cacheMap.cacheKeys;\n    cacheKeys.forEach((key2) => {\n      this._cache.delete(key2);\n    });\n    cacheMap.keys.forEach((key2) => {\n      this._cacheMap.delete(key2);\n    });\n  }\n  get parsers() {\n    return this._parsers;\n  }\n}\nconst Cache = new CacheClass();\n\nexport { Cache };\n//# sourceMappingURL=Cache.mjs.map\n","import { utils } from '@pixi/core';\nimport '../utils/index.mjs';\nimport { isSingleItem } from '../utils/isSingleItem.mjs';\nimport { convertToList } from '../utils/convertToList.mjs';\n\nclass Loader {\n  constructor() {\n    this._parsers = [];\n    this.promiseCache = {};\n  }\n  reset() {\n    this.promiseCache = {};\n  }\n  _getLoadPromiseAndParser(url, data) {\n    const result = {\n      promise: null,\n      parser: null\n    };\n    result.promise = (async () => {\n      let asset = null;\n      for (let i = 0; i < this.parsers.length; i++) {\n        const parser = this.parsers[i];\n        if (parser.load && parser.test?.(url, data, this)) {\n          asset = await parser.load(url, data, this);\n          result.parser = parser;\n          break;\n        }\n      }\n      if (!result.parser) {\n        console.warn(`[Assets] ${url} could not be loaded as we don't know how to parse it, ensure the correct parser has being added`);\n        return null;\n      }\n      for (let i = 0; i < this.parsers.length; i++) {\n        const parser = this.parsers[i];\n        if (parser.parse) {\n          if (parser.parse && await parser.testParse?.(asset, data, this)) {\n            asset = await parser.parse(asset, data, this) || asset;\n            result.parser = parser;\n          }\n        }\n      }\n      return asset;\n    })();\n    return result;\n  }\n  async load(assetsToLoadIn, onProgress) {\n    let count = 0;\n    const assets = {};\n    const singleAsset = isSingleItem(assetsToLoadIn);\n    const assetsToLoad = convertToList(assetsToLoadIn, (item) => ({\n      src: item\n    }));\n    const total = assetsToLoad.length;\n    const promises = assetsToLoad.map(async (asset) => {\n      const url = utils.path.toAbsolute(asset.src);\n      if (!assets[asset.src]) {\n        try {\n          if (!this.promiseCache[url]) {\n            this.promiseCache[url] = this._getLoadPromiseAndParser(url, asset);\n          }\n          assets[asset.src] = await this.promiseCache[url].promise;\n          if (onProgress)\n            onProgress(++count / total);\n        } catch (e) {\n          delete this.promiseCache[url];\n          delete assets[asset.src];\n          throw new Error(`[Loader.load] Failed to load ${url}.\n${e}`);\n        }\n      }\n    });\n    await Promise.all(promises);\n    return singleAsset ? assets[assetsToLoad[0].src] : assets;\n  }\n  async unload(assetsToUnloadIn) {\n    const assetsToUnload = convertToList(assetsToUnloadIn, (item) => ({\n      src: item\n    }));\n    const promises = assetsToUnload.map(async (asset) => {\n      const url = utils.path.toAbsolute(asset.src);\n      const loadPromise = this.promiseCache[url];\n      if (loadPromise) {\n        const loadedAsset = await loadPromise.promise;\n        loadPromise.parser?.unload?.(loadedAsset, asset, this);\n        delete this.promiseCache[url];\n      }\n    });\n    await Promise.all(promises);\n  }\n  get parsers() {\n    return this._parsers;\n  }\n}\n\nexport { Loader };\n//# sourceMappingURL=Loader.mjs.map\n","var LoaderParserPriority = /* @__PURE__ */ ((LoaderParserPriority2) => {\n  LoaderParserPriority2[LoaderParserPriority2[\"Low\"] = 0] = \"Low\";\n  LoaderParserPriority2[LoaderParserPriority2[\"Normal\"] = 1] = \"Normal\";\n  LoaderParserPriority2[LoaderParserPriority2[\"High\"] = 2] = \"High\";\n  return LoaderParserPriority2;\n})(LoaderParserPriority || {});\n\nexport { LoaderParserPriority };\n//# sourceMappingURL=LoaderParser.mjs.map\n","import { ExtensionType, utils, settings, extensions } from '@pixi/core';\nimport { LoaderParserPriority } from './LoaderParser.mjs';\n\nconst loadJson = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.Low\n  },\n  test(url) {\n    return utils.path.extname(url).toLowerCase() === \".json\";\n  },\n  async load(url) {\n    const response = await settings.ADAPTER.fetch(url);\n    const json = await response.json();\n    return json;\n  }\n};\nextensions.add(loadJson);\n\nexport { loadJson };\n//# sourceMappingURL=loadJson.mjs.map\n","import { ExtensionType, utils, settings, extensions } from '@pixi/core';\nimport { LoaderParserPriority } from './LoaderParser.mjs';\n\nconst loadTxt = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.Low\n  },\n  test(url) {\n    return utils.path.extname(url).toLowerCase() === \".txt\";\n  },\n  async load(url) {\n    const response = await settings.ADAPTER.fetch(url);\n    const txt = await response.text();\n    return txt;\n  }\n};\nextensions.add(loadTxt);\n\nexport { loadTxt };\n//# sourceMappingURL=loadTxt.mjs.map\n","import { utils, ExtensionType, settings, extensions } from '@pixi/core';\nimport { checkDataUrl } from '../../utils/checkDataUrl.mjs';\nimport { checkExtension } from '../../utils/checkExtension.mjs';\nimport { LoaderParserPriority } from './LoaderParser.mjs';\n\nconst validWeights = [\n  \"normal\",\n  \"bold\",\n  \"100\",\n  \"200\",\n  \"300\",\n  \"400\",\n  \"500\",\n  \"600\",\n  \"700\",\n  \"800\",\n  \"900\"\n];\nconst validFontExtensions = [\".ttf\", \".otf\", \".woff\", \".woff2\"];\nconst validFontMIMEs = [\n  \"font/ttf\",\n  \"font/otf\",\n  \"font/woff\",\n  \"font/woff2\"\n];\nfunction getFontFamilyName(url) {\n  const ext = utils.path.extname(url);\n  const name = utils.path.basename(url, ext);\n  const nameWithSpaces = name.replace(/(-|_)/g, \" \");\n  const nameTitleCase = nameWithSpaces.toLowerCase().split(\" \").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(\" \");\n  return nameTitleCase;\n}\nconst loadWebFont = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.Low\n  },\n  test(url) {\n    return checkDataUrl(url, validFontMIMEs) || checkExtension(url, validFontExtensions);\n  },\n  async load(url, options) {\n    const fonts = settings.ADAPTER.getFontFaceSet();\n    if (fonts) {\n      const fontFaces = [];\n      const name = options.data?.family ?? getFontFamilyName(url);\n      const weights = options.data?.weights?.filter((weight) => validWeights.includes(weight)) ?? [\"normal\"];\n      const data = options.data ?? {};\n      for (let i = 0; i < weights.length; i++) {\n        const weight = weights[i];\n        const font = new FontFace(name, `url(${encodeURI(url)})`, {\n          ...data,\n          weight\n        });\n        await font.load();\n        fonts.add(font);\n        fontFaces.push(font);\n      }\n      return fontFaces.length === 1 ? fontFaces[0] : fontFaces;\n    }\n    console.warn(\"[loadWebFont] FontFace API is not supported. Skipping loading font\");\n    return null;\n  },\n  unload(font) {\n    (Array.isArray(font) ? font : [font]).forEach((t) => settings.ADAPTER.getFontFaceSet().delete(t));\n  }\n};\nextensions.add(loadWebFont);\n\nexport { getFontFamilyName, loadWebFont };\n//# sourceMappingURL=loadWebFont.mjs.map\n","let UUID = 0;\nlet MAX_WORKERS;\nconst WHITE_PNG = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=\";\nconst checkImageBitmapCode = {\n  id: \"checkImageBitmap\",\n  code: `\n    async function checkImageBitmap()\n    {\n        try\n        {\n            if (typeof createImageBitmap !== 'function') return false;\n\n            const response = await fetch('${WHITE_PNG}');\n            const imageBlob =  await response.blob();\n            const imageBitmap = await createImageBitmap(imageBlob);\n\n            return imageBitmap.width === 1 && imageBitmap.height === 1;\n        }\n        catch (e)\n        {\n            return false;\n        }\n    }\n    checkImageBitmap().then((result) => { self.postMessage(result); });\n    `\n};\nconst workerCode = {\n  id: \"loadImageBitmap\",\n  code: `\n    async function loadImageBitmap(url)\n    {\n        const response = await fetch(url);\n\n        if (!response.ok)\n        {\n            throw new Error(\\`[WorkerManager.loadImageBitmap] Failed to fetch \\${url}: \\`\n                + \\`\\${response.status} \\${response.statusText}\\`);\n        }\n\n        const imageBlob =  await response.blob();\n        const imageBitmap = await createImageBitmap(imageBlob);\n\n        return imageBitmap;\n    }\n    self.onmessage = async (event) =>\n    {\n        try\n        {\n            const imageBitmap = await loadImageBitmap(event.data.data[0]);\n\n            self.postMessage({\n                data: imageBitmap,\n                uuid: event.data.uuid,\n                id: event.data.id,\n            }, [imageBitmap]);\n        }\n        catch(e)\n        {\n            self.postMessage({\n                error: e,\n                uuid: event.data.uuid,\n                id: event.data.id,\n            });\n        }\n    };`\n};\nlet workerURL;\nclass WorkerManagerClass {\n  constructor() {\n    this._initialized = false;\n    this._createdWorkers = 0;\n    this.workerPool = [];\n    this.queue = [];\n    this.resolveHash = {};\n  }\n  isImageBitmapSupported() {\n    if (this._isImageBitmapSupported !== void 0)\n      return this._isImageBitmapSupported;\n    this._isImageBitmapSupported = new Promise((resolve) => {\n      const workerURL2 = URL.createObjectURL(new Blob([checkImageBitmapCode.code], { type: \"application/javascript\" }));\n      const worker = new Worker(workerURL2);\n      worker.addEventListener(\"message\", (event) => {\n        worker.terminate();\n        URL.revokeObjectURL(workerURL2);\n        resolve(event.data);\n      });\n    });\n    return this._isImageBitmapSupported;\n  }\n  loadImageBitmap(src) {\n    return this._run(\"loadImageBitmap\", [src]);\n  }\n  async _initWorkers() {\n    if (this._initialized)\n      return;\n    this._initialized = true;\n  }\n  getWorker() {\n    if (MAX_WORKERS === void 0) {\n      MAX_WORKERS = navigator.hardwareConcurrency || 4;\n    }\n    let worker = this.workerPool.pop();\n    if (!worker && this._createdWorkers < MAX_WORKERS) {\n      if (!workerURL) {\n        workerURL = URL.createObjectURL(new Blob([workerCode.code], { type: \"application/javascript\" }));\n      }\n      this._createdWorkers++;\n      worker = new Worker(workerURL);\n      worker.addEventListener(\"message\", (event) => {\n        this.complete(event.data);\n        this.returnWorker(event.target);\n        this.next();\n      });\n    }\n    return worker;\n  }\n  returnWorker(worker) {\n    this.workerPool.push(worker);\n  }\n  complete(data) {\n    if (data.error !== void 0) {\n      this.resolveHash[data.uuid].reject(data.error);\n    } else {\n      this.resolveHash[data.uuid].resolve(data.data);\n    }\n    this.resolveHash[data.uuid] = null;\n  }\n  async _run(id, args) {\n    await this._initWorkers();\n    const promise = new Promise((resolve, reject) => {\n      this.queue.push({ id, arguments: args, resolve, reject });\n    });\n    this.next();\n    return promise;\n  }\n  next() {\n    if (!this.queue.length)\n      return;\n    const worker = this.getWorker();\n    if (!worker) {\n      return;\n    }\n    const toDo = this.queue.pop();\n    const id = toDo.id;\n    this.resolveHash[UUID] = { resolve: toDo.resolve, reject: toDo.reject };\n    worker.postMessage({\n      data: toDo.arguments,\n      uuid: UUID++,\n      id\n    });\n  }\n}\nconst WorkerManager = new WorkerManagerClass();\n\nexport { WorkerManager };\n//# sourceMappingURL=WorkerManager.mjs.map\n","import { Texture } from '@pixi/core';\n\nfunction createTexture(base, loader, url) {\n  const texture = new Texture(base);\n  texture.baseTexture.on(\"dispose\", () => {\n    delete loader.promiseCache[url];\n  });\n  return texture;\n}\n\nexport { createTexture };\n//# sourceMappingURL=createTexture.mjs.map\n","import { settings, ExtensionType, BaseTexture, utils, extensions } from '@pixi/core';\nimport { checkDataUrl } from '../../../utils/checkDataUrl.mjs';\nimport { checkExtension } from '../../../utils/checkExtension.mjs';\nimport { LoaderParserPriority } from '../LoaderParser.mjs';\nimport { WorkerManager } from '../WorkerManager.mjs';\nimport { createTexture } from './utils/createTexture.mjs';\n\nconst validImageExtensions = [\".jpeg\", \".jpg\", \".png\", \".webp\", \".avif\"];\nconst validImageMIMEs = [\n  \"image/jpeg\",\n  \"image/png\",\n  \"image/webp\",\n  \"image/avif\"\n];\nasync function loadImageBitmap(url) {\n  const response = await settings.ADAPTER.fetch(url);\n  if (!response.ok) {\n    throw new Error(`[loadImageBitmap] Failed to fetch ${url}: ${response.status} ${response.statusText}`);\n  }\n  const imageBlob = await response.blob();\n  const imageBitmap = await createImageBitmap(imageBlob);\n  return imageBitmap;\n}\nconst loadTextures = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.High\n  },\n  config: {\n    preferWorkers: true\n  },\n  test(url) {\n    return checkDataUrl(url, validImageMIMEs) || checkExtension(url, validImageExtensions);\n  },\n  async load(url, asset, loader) {\n    let src = null;\n    if (globalThis.createImageBitmap) {\n      if (this.config.preferWorkers && await WorkerManager.isImageBitmapSupported()) {\n        src = await WorkerManager.loadImageBitmap(url);\n      } else {\n        src = await loadImageBitmap(url);\n      }\n    } else {\n      src = await new Promise((resolve) => {\n        src = new Image();\n        src.crossOrigin = \"anonymous\";\n        src.src = url;\n        if (src.complete) {\n          resolve(src);\n        } else {\n          src.onload = () => {\n            resolve(src);\n          };\n        }\n      });\n    }\n    const base = new BaseTexture(src, {\n      resolution: utils.getResolutionOfUrl(url),\n      ...asset.data\n    });\n    base.resource.src = url;\n    return createTexture(base, loader, url);\n  },\n  unload(texture) {\n    texture.destroy(true);\n  }\n};\nextensions.add(loadTextures);\n\nexport { loadImageBitmap, loadTextures };\n//# sourceMappingURL=loadTextures.mjs.map\n","import { ExtensionType, utils, SVGResource, BaseTexture, settings, extensions } from '@pixi/core';\nimport { LoaderParserPriority } from '../LoaderParser.mjs';\nimport { loadTextures } from './loadTextures.mjs';\nimport { createTexture } from './utils/createTexture.mjs';\n\nconst loadSVG = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.High\n  },\n  test(url) {\n    return utils.path.extname(url).toLowerCase() === \".svg\";\n  },\n  async testParse(data) {\n    return SVGResource.test(data);\n  },\n  async parse(asset, data, loader) {\n    const src = new SVGResource(asset, data?.data?.resourceOptions);\n    const base = new BaseTexture(src, {\n      resolution: utils.getResolutionOfUrl(asset),\n      ...data?.data\n    });\n    base.resource.src = asset;\n    const texture = createTexture(base, loader, asset);\n    if (!data?.data?.resourceOptions?.autoLoad) {\n      await src.load();\n    }\n    return texture;\n  },\n  async load(url, _options) {\n    const response = await settings.ADAPTER.fetch(url);\n    return response.text();\n  },\n  unload: loadTextures.unload\n};\nextensions.add(loadSVG);\n\nexport { loadSVG };\n//# sourceMappingURL=loadSVG.mjs.map\n","import { utils } from '@pixi/core';\nimport { convertToList } from '../utils/convertToList.mjs';\nimport { createStringVariations } from '../utils/createStringVariations.mjs';\nimport { isSingleItem } from '../utils/isSingleItem.mjs';\n\nclass Resolver {\n  constructor() {\n    this._defaultBundleIdentifierOptions = {\n      connector: \"-\",\n      createBundleAssetId: (bundleId, assetId) => `${bundleId}${this._bundleIdConnector}${assetId}`,\n      extractAssetIdFromBundle: (bundleId, assetBundleId) => assetBundleId.replace(`${bundleId}${this._bundleIdConnector}`, \"\")\n    };\n    this._bundleIdConnector = this._defaultBundleIdentifierOptions.connector;\n    this._createBundleAssetId = this._defaultBundleIdentifierOptions.createBundleAssetId;\n    this._extractAssetIdFromBundle = this._defaultBundleIdentifierOptions.extractAssetIdFromBundle;\n    this._assetMap = {};\n    this._preferredOrder = [];\n    this._parsers = [];\n    this._resolverHash = {};\n    this._bundles = {};\n  }\n  setBundleIdentifier(bundleIdentifier) {\n    this._bundleIdConnector = bundleIdentifier.connector ?? this._bundleIdConnector;\n    this._createBundleAssetId = bundleIdentifier.createBundleAssetId ?? this._createBundleAssetId;\n    this._extractAssetIdFromBundle = bundleIdentifier.extractAssetIdFromBundle ?? this._extractAssetIdFromBundle;\n    if (this._extractAssetIdFromBundle(\"foo\", this._createBundleAssetId(\"foo\", \"bar\")) !== \"bar\") {\n      throw new Error(\"[Resolver] GenerateBundleAssetId are not working correctly\");\n    }\n  }\n  prefer(...preferOrders) {\n    preferOrders.forEach((prefer) => {\n      this._preferredOrder.push(prefer);\n      if (!prefer.priority) {\n        prefer.priority = Object.keys(prefer.params);\n      }\n    });\n    this._resolverHash = {};\n  }\n  set basePath(basePath) {\n    this._basePath = basePath;\n  }\n  get basePath() {\n    return this._basePath;\n  }\n  set rootPath(rootPath) {\n    this._rootPath = rootPath;\n  }\n  get rootPath() {\n    return this._rootPath;\n  }\n  get parsers() {\n    return this._parsers;\n  }\n  reset() {\n    this.setBundleIdentifier(this._defaultBundleIdentifierOptions);\n    this._assetMap = {};\n    this._preferredOrder = [];\n    this._resolverHash = {};\n    this._rootPath = null;\n    this._basePath = null;\n    this._manifest = null;\n    this._bundles = {};\n    this._defaultSearchParams = null;\n  }\n  setDefaultSearchParams(searchParams) {\n    if (typeof searchParams === \"string\") {\n      this._defaultSearchParams = searchParams;\n    } else {\n      const queryValues = searchParams;\n      this._defaultSearchParams = Object.keys(queryValues).map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(queryValues[key])}`).join(\"&\");\n    }\n  }\n  addManifest(manifest) {\n    if (this._manifest) {\n      console.warn(\"[Resolver] Manifest already exists, this will be overwritten\");\n    }\n    this._manifest = manifest;\n    manifest.bundles.forEach((bundle) => {\n      this.addBundle(bundle.name, bundle.assets);\n    });\n  }\n  addBundle(bundleId, assets) {\n    const assetNames = [];\n    if (Array.isArray(assets)) {\n      assets.forEach((asset) => {\n        if (typeof asset.name === \"string\") {\n          const bundleAssetId = this._createBundleAssetId(bundleId, asset.name);\n          assetNames.push(bundleAssetId);\n          this.add([asset.name, bundleAssetId], asset.srcs, asset.data);\n        } else {\n          const bundleIds = asset.name.map((name) => this._createBundleAssetId(bundleId, name));\n          bundleIds.forEach((bundleId2) => {\n            assetNames.push(bundleId2);\n          });\n          this.add([...asset.name, ...bundleIds], asset.srcs);\n        }\n      });\n    } else {\n      Object.keys(assets).forEach((key) => {\n        assetNames.push(this._createBundleAssetId(bundleId, key));\n        this.add([key, this._createBundleAssetId(bundleId, key)], assets[key]);\n      });\n    }\n    this._bundles[bundleId] = assetNames;\n  }\n  add(keysIn, assetsIn, data) {\n    const keys = convertToList(keysIn);\n    keys.forEach((key) => {\n      if (this.hasKey(key)) {\n        console.warn(`[Resolver] already has key: ${key} overwriting`);\n      }\n    });\n    if (!Array.isArray(assetsIn)) {\n      if (typeof assetsIn === \"string\") {\n        assetsIn = createStringVariations(assetsIn);\n      } else {\n        assetsIn = [assetsIn];\n      }\n    }\n    const assetMap = assetsIn.map((asset) => {\n      let formattedAsset = asset;\n      if (typeof asset === \"string\") {\n        let parsed = false;\n        for (let i = 0; i < this._parsers.length; i++) {\n          const parser = this._parsers[i];\n          if (parser.test(asset)) {\n            formattedAsset = parser.parse(asset);\n            parsed = true;\n            break;\n          }\n        }\n        if (!parsed) {\n          formattedAsset = {\n            src: asset\n          };\n        }\n      }\n      if (!formattedAsset.format) {\n        formattedAsset.format = formattedAsset.src.split(\".\").pop();\n      }\n      if (!formattedAsset.alias) {\n        formattedAsset.alias = keys;\n      }\n      if (this._basePath || this._rootPath) {\n        formattedAsset.src = utils.path.toAbsolute(formattedAsset.src, this._basePath, this._rootPath);\n      }\n      formattedAsset.src = this._appendDefaultSearchParams(formattedAsset.src);\n      formattedAsset.data = formattedAsset.data ?? data;\n      return formattedAsset;\n    });\n    keys.forEach((key) => {\n      this._assetMap[key] = assetMap;\n    });\n  }\n  resolveBundle(bundleIds) {\n    const singleAsset = isSingleItem(bundleIds);\n    bundleIds = convertToList(bundleIds);\n    const out = {};\n    bundleIds.forEach((bundleId) => {\n      const assetNames = this._bundles[bundleId];\n      if (assetNames) {\n        const results = this.resolve(assetNames);\n        const assets = {};\n        for (const key in results) {\n          const asset = results[key];\n          assets[this._extractAssetIdFromBundle(bundleId, key)] = asset;\n        }\n        out[bundleId] = assets;\n      }\n    });\n    return singleAsset ? out[bundleIds[0]] : out;\n  }\n  resolveUrl(key) {\n    const result = this.resolve(key);\n    if (typeof key !== \"string\") {\n      const out = {};\n      for (const i in result) {\n        out[i] = result[i].src;\n      }\n      return out;\n    }\n    return result.src;\n  }\n  resolve(keys) {\n    const singleAsset = isSingleItem(keys);\n    keys = convertToList(keys);\n    const result = {};\n    keys.forEach((key) => {\n      if (!this._resolverHash[key]) {\n        if (this._assetMap[key]) {\n          let assets = this._assetMap[key];\n          const preferredOrder = this._getPreferredOrder(assets);\n          const bestAsset = assets[0];\n          preferredOrder?.priority.forEach((priorityKey) => {\n            preferredOrder.params[priorityKey].forEach((value) => {\n              const filteredAssets = assets.filter((asset) => {\n                if (asset[priorityKey]) {\n                  return asset[priorityKey] === value;\n                }\n                return false;\n              });\n              if (filteredAssets.length) {\n                assets = filteredAssets;\n              }\n            });\n          });\n          this._resolverHash[key] = assets[0] ?? bestAsset;\n        } else {\n          let src = key;\n          if (this._basePath || this._rootPath) {\n            src = utils.path.toAbsolute(src, this._basePath, this._rootPath);\n          }\n          src = this._appendDefaultSearchParams(src);\n          this._resolverHash[key] = {\n            src\n          };\n        }\n      }\n      result[key] = this._resolverHash[key];\n    });\n    return singleAsset ? result[keys[0]] : result;\n  }\n  hasKey(key) {\n    return !!this._assetMap[key];\n  }\n  hasBundle(key) {\n    return !!this._bundles[key];\n  }\n  _getPreferredOrder(assets) {\n    for (let i = 0; i < assets.length; i++) {\n      const asset = assets[0];\n      const preferred = this._preferredOrder.find((preference) => preference.params.format.includes(asset.format));\n      if (preferred) {\n        return preferred;\n      }\n    }\n    return this._preferredOrder[0];\n  }\n  _appendDefaultSearchParams(url) {\n    if (!this._defaultSearchParams)\n      return url;\n    const paramConnector = /\\?/.test(url) ? \"&\" : \"?\";\n    return `${url}${paramConnector}${this._defaultSearchParams}`;\n  }\n}\n\nexport { Resolver };\n//# sourceMappingURL=Resolver.mjs.map\n","import { extensions, ExtensionType } from '@pixi/core';\nimport { BackgroundLoader } from './BackgroundLoader.mjs';\nimport { Cache } from './cache/Cache.mjs';\nimport { Loader } from './loader/Loader.mjs';\nimport './loader/parsers/index.mjs';\nimport { Resolver } from './resolver/Resolver.mjs';\nimport { convertToList } from './utils/convertToList.mjs';\nimport { isSingleItem } from './utils/isSingleItem.mjs';\nimport { loadTextures } from './loader/parsers/textures/loadTextures.mjs';\n\nclass AssetsClass {\n  constructor() {\n    this._detections = [];\n    this._initialized = false;\n    this.resolver = new Resolver();\n    this.loader = new Loader();\n    this.cache = Cache;\n    this._backgroundLoader = new BackgroundLoader(this.loader);\n    this._backgroundLoader.active = true;\n    this.reset();\n  }\n  async init(options = {}) {\n    if (this._initialized) {\n      console.warn(\"[Assets]AssetManager already initialized, did you load before calling this Asset.init()?\");\n      return;\n    }\n    this._initialized = true;\n    if (options.defaultSearchParams) {\n      this.resolver.setDefaultSearchParams(options.defaultSearchParams);\n    }\n    if (options.basePath) {\n      this.resolver.basePath = options.basePath;\n    }\n    if (options.bundleIdentifier) {\n      this.resolver.setBundleIdentifier(options.bundleIdentifier);\n    }\n    if (options.manifest) {\n      let manifest = options.manifest;\n      if (typeof manifest === \"string\") {\n        manifest = await this.load(manifest);\n      }\n      this.resolver.addManifest(manifest);\n    }\n    const resolutionPref = options.texturePreference?.resolution ?? 1;\n    const resolution = typeof resolutionPref === \"number\" ? [resolutionPref] : resolutionPref;\n    let formats = [];\n    if (options.texturePreference?.format) {\n      const formatPref = options.texturePreference?.format;\n      formats = typeof formatPref === \"string\" ? [formatPref] : formatPref;\n      for (const detection of this._detections) {\n        if (!await detection.test()) {\n          formats = await detection.remove(formats);\n        }\n      }\n    } else {\n      for (const detection of this._detections) {\n        if (await detection.test()) {\n          formats = await detection.add(formats);\n        }\n      }\n    }\n    this.resolver.prefer({\n      params: {\n        format: formats,\n        resolution\n      }\n    });\n  }\n  add(keysIn, assetsIn, data) {\n    this.resolver.add(keysIn, assetsIn, data);\n  }\n  async load(urls, onProgress) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    const singleAsset = isSingleItem(urls);\n    const urlArray = convertToList(urls).map((url) => {\n      if (typeof url !== \"string\") {\n        this.resolver.add(url.src, url);\n        return url.src;\n      }\n      if (!this.resolver.hasKey(url)) {\n        this.resolver.add(url, url);\n      }\n      return url;\n    });\n    const resolveResults = this.resolver.resolve(urlArray);\n    const out = await this._mapLoadToResolve(resolveResults, onProgress);\n    return singleAsset ? out[urlArray[0]] : out;\n  }\n  addBundle(bundleId, assets) {\n    this.resolver.addBundle(bundleId, assets);\n  }\n  async loadBundle(bundleIds, onProgress) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    let singleAsset = false;\n    if (typeof bundleIds === \"string\") {\n      singleAsset = true;\n      bundleIds = [bundleIds];\n    }\n    const resolveResults = this.resolver.resolveBundle(bundleIds);\n    const out = {};\n    const keys = Object.keys(resolveResults);\n    let count = 0;\n    let total = 0;\n    const _onProgress = () => {\n      onProgress?.(++count / total);\n    };\n    const promises = keys.map((bundleId) => {\n      const resolveResult = resolveResults[bundleId];\n      total += Object.keys(resolveResult).length;\n      return this._mapLoadToResolve(resolveResult, _onProgress).then((resolveResult2) => {\n        out[bundleId] = resolveResult2;\n      });\n    });\n    await Promise.all(promises);\n    return singleAsset ? out[bundleIds[0]] : out;\n  }\n  async backgroundLoad(urls) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    if (typeof urls === \"string\") {\n      urls = [urls];\n    }\n    const resolveResults = this.resolver.resolve(urls);\n    this._backgroundLoader.add(Object.values(resolveResults));\n  }\n  async backgroundLoadBundle(bundleIds) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    if (typeof bundleIds === \"string\") {\n      bundleIds = [bundleIds];\n    }\n    const resolveResults = this.resolver.resolveBundle(bundleIds);\n    Object.values(resolveResults).forEach((resolveResult) => {\n      this._backgroundLoader.add(Object.values(resolveResult));\n    });\n  }\n  reset() {\n    this.resolver.reset();\n    this.loader.reset();\n    this.cache.reset();\n    this._initialized = false;\n  }\n  get(keys) {\n    if (typeof keys === \"string\") {\n      return Cache.get(keys);\n    }\n    const assets = {};\n    for (let i = 0; i < keys.length; i++) {\n      assets[i] = Cache.get(keys[i]);\n    }\n    return assets;\n  }\n  async _mapLoadToResolve(resolveResults, onProgress) {\n    const resolveArray = Object.values(resolveResults);\n    const resolveKeys = Object.keys(resolveResults);\n    this._backgroundLoader.active = false;\n    const loadedAssets = await this.loader.load(resolveArray, onProgress);\n    this._backgroundLoader.active = true;\n    const out = {};\n    resolveArray.forEach((resolveResult, i) => {\n      const asset = loadedAssets[resolveResult.src];\n      const keys = [resolveResult.src];\n      if (resolveResult.alias) {\n        keys.push(...resolveResult.alias);\n      }\n      out[resolveKeys[i]] = asset;\n      Cache.set(keys, asset);\n    });\n    return out;\n  }\n  async unload(urls) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    const urlArray = convertToList(urls).map((url) => typeof url !== \"string\" ? url.src : url);\n    const resolveResults = this.resolver.resolve(urlArray);\n    await this._unloadFromResolved(resolveResults);\n  }\n  async unloadBundle(bundleIds) {\n    if (!this._initialized) {\n      await this.init();\n    }\n    bundleIds = convertToList(bundleIds);\n    const resolveResults = this.resolver.resolveBundle(bundleIds);\n    const promises = Object.keys(resolveResults).map((bundleId) => this._unloadFromResolved(resolveResults[bundleId]));\n    await Promise.all(promises);\n  }\n  async _unloadFromResolved(resolveResult) {\n    const resolveArray = Object.values(resolveResult);\n    resolveArray.forEach((resolveResult2) => {\n      Cache.remove(resolveResult2.src);\n    });\n    await this.loader.unload(resolveArray);\n  }\n  get detections() {\n    return this._detections;\n  }\n  get preferWorkers() {\n    return loadTextures.config.preferWorkers;\n  }\n  set preferWorkers(value) {\n    loadTextures.config.preferWorkers = value;\n  }\n}\nconst Assets = new AssetsClass();\nextensions.handleByList(ExtensionType.LoadParser, Assets.loader.parsers).handleByList(ExtensionType.ResolveParser, Assets.resolver.parsers).handleByList(ExtensionType.CacheParser, Assets.cache.parsers).handleByList(ExtensionType.DetectionParser, Assets.detections);\n\nexport { Assets, AssetsClass };\n//# sourceMappingURL=Assets.mjs.map\n","import { ExtensionType, Texture, extensions } from '@pixi/core';\n\nconst cacheTextureArray = {\n  extension: ExtensionType.CacheParser,\n  test: (asset) => Array.isArray(asset) && asset.every((t) => t instanceof Texture),\n  getCacheableAssets: (keys, asset) => {\n    const out = {};\n    keys.forEach((key) => {\n      asset.forEach((item, i) => {\n        out[key + (i === 0 ? \"\" : i + 1)] = item;\n      });\n    });\n    return out;\n  }\n};\nextensions.add(cacheTextureArray);\n\nexport { cacheTextureArray };\n//# sourceMappingURL=cacheTextureArray.mjs.map\n","import { ExtensionType, settings, extensions } from '@pixi/core';\n\nconst detectAvif = {\n  extension: {\n    type: ExtensionType.DetectionParser,\n    priority: 1\n  },\n  test: async () => {\n    if (!globalThis.createImageBitmap)\n      return false;\n    const avifData = \"data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=\";\n    const blob = await settings.ADAPTER.fetch(avifData).then((r) => r.blob());\n    return createImageBitmap(blob).then(() => true, () => false);\n  },\n  add: async (formats) => [...formats, \"avif\"],\n  remove: async (formats) => formats.filter((f) => f !== \"avif\")\n};\nextensions.add(detectAvif);\n\nexport { detectAvif };\n//# sourceMappingURL=detectAvif.mjs.map\n","import { ExtensionType, settings, extensions } from '@pixi/core';\n\nconst detectWebp = {\n  extension: {\n    type: ExtensionType.DetectionParser,\n    priority: 0\n  },\n  test: async () => {\n    if (!globalThis.createImageBitmap)\n      return false;\n    const webpData = \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=\";\n    const blob = await settings.ADAPTER.fetch(webpData).then((r) => r.blob());\n    return createImageBitmap(blob).then(() => true, () => false);\n  },\n  add: async (formats) => [...formats, \"webp\"],\n  remove: async (formats) => formats.filter((f) => f !== \"webp\")\n};\nextensions.add(detectWebp);\n\nexport { detectWebp };\n//# sourceMappingURL=detectWebp.mjs.map\n","import { ExtensionType, extensions } from '@pixi/core';\n\nconst imageFormats = [\"png\", \"jpg\", \"jpeg\"];\nconst detectDefaults = {\n  extension: {\n    type: ExtensionType.DetectionParser,\n    priority: -1\n  },\n  test: () => Promise.resolve(true),\n  add: async (formats) => [...formats, ...imageFormats],\n  remove: async (formats) => formats.filter((f) => !imageFormats.includes(f))\n};\nextensions.add(detectDefaults);\n\nexport { detectDefaults };\n//# sourceMappingURL=detectDefaults.mjs.map\n","import { ExtensionType, settings, extensions } from '@pixi/core';\nimport '../../loader/index.mjs';\nimport { loadTextures } from '../../loader/parsers/textures/loadTextures.mjs';\n\nconst resolveTextureUrl = {\n  extension: ExtensionType.ResolveParser,\n  test: loadTextures.test,\n  parse: (value) => ({\n    resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? \"1\"),\n    format: value.split(\".\").pop(),\n    src: value\n  })\n};\nextensions.add(resolveTextureUrl);\n\nexport { resolveTextureUrl };\n//# sourceMappingURL=resolveTextureUrl.mjs.map\n","var INTERNAL_FORMATS = /* @__PURE__ */ ((INTERNAL_FORMATS2) => {\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB_S3TC_DXT1_EXT\"] = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_S3TC_DXT1_EXT\"] = 33777] = \"COMPRESSED_RGBA_S3TC_DXT1_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_S3TC_DXT3_EXT\"] = 33778] = \"COMPRESSED_RGBA_S3TC_DXT3_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_S3TC_DXT5_EXT\"] = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT\"] = 35917] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT\"] = 35918] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\"] = 35919] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB_S3TC_DXT1_EXT\"] = 35916] = \"COMPRESSED_SRGB_S3TC_DXT1_EXT\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_R11_EAC\"] = 37488] = \"COMPRESSED_R11_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SIGNED_R11_EAC\"] = 37489] = \"COMPRESSED_SIGNED_R11_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RG11_EAC\"] = 37490] = \"COMPRESSED_RG11_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SIGNED_RG11_EAC\"] = 37491] = \"COMPRESSED_SIGNED_RG11_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB8_ETC2\"] = 37492] = \"COMPRESSED_RGB8_ETC2\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA8_ETC2_EAC\"] = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB8_ETC2\"] = 37493] = \"COMPRESSED_SRGB8_ETC2\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\"] = 37497] = \"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\"] = 37494] = \"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\"] = 37495] = \"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\"] = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\"] = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB_PVRTC_2BPPV1_IMG\"] = 35841] = \"COMPRESSED_RGB_PVRTC_2BPPV1_IMG\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\"] = 35843] = \"COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB_ETC1_WEBGL\"] = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGB_ATC_WEBGL\"] = 35986] = \"COMPRESSED_RGB_ATC_WEBGL\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL\"] = 35986] = \"COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\"] = 34798] = \"COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\";\n  INTERNAL_FORMATS2[INTERNAL_FORMATS2[\"COMPRESSED_RGBA_ASTC_4x4_KHR\"] = 37808] = \"COMPRESSED_RGBA_ASTC_4x4_KHR\";\n  return INTERNAL_FORMATS2;\n})(INTERNAL_FORMATS || {});\nconst INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = {\n  [33776 /* COMPRESSED_RGB_S3TC_DXT1_EXT */]: 0.5,\n  [33777 /* COMPRESSED_RGBA_S3TC_DXT1_EXT */]: 0.5,\n  [33778 /* COMPRESSED_RGBA_S3TC_DXT3_EXT */]: 1,\n  [33779 /* COMPRESSED_RGBA_S3TC_DXT5_EXT */]: 1,\n  [35916 /* COMPRESSED_SRGB_S3TC_DXT1_EXT */]: 0.5,\n  [35917 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */]: 0.5,\n  [35918 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */]: 1,\n  [35919 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */]: 1,\n  [37488 /* COMPRESSED_R11_EAC */]: 0.5,\n  [37489 /* COMPRESSED_SIGNED_R11_EAC */]: 0.5,\n  [37490 /* COMPRESSED_RG11_EAC */]: 1,\n  [37491 /* COMPRESSED_SIGNED_RG11_EAC */]: 1,\n  [37492 /* COMPRESSED_RGB8_ETC2 */]: 0.5,\n  [37496 /* COMPRESSED_RGBA8_ETC2_EAC */]: 1,\n  [37493 /* COMPRESSED_SRGB8_ETC2 */]: 0.5,\n  [37497 /* COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */]: 1,\n  [37494 /* COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,\n  [37495 /* COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,\n  [35840 /* COMPRESSED_RGB_PVRTC_4BPPV1_IMG */]: 0.5,\n  [35842 /* COMPRESSED_RGBA_PVRTC_4BPPV1_IMG */]: 0.5,\n  [35841 /* COMPRESSED_RGB_PVRTC_2BPPV1_IMG */]: 0.25,\n  [35843 /* COMPRESSED_RGBA_PVRTC_2BPPV1_IMG */]: 0.25,\n  [36196 /* COMPRESSED_RGB_ETC1_WEBGL */]: 0.5,\n  [35986 /* COMPRESSED_RGB_ATC_WEBGL */]: 0.5,\n  [35986 /* COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL */]: 1,\n  [34798 /* COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL */]: 1,\n  [37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: 1\n};\n\nexport { INTERNAL_FORMATS, INTERNAL_FORMAT_TO_BYTES_PER_PIXEL };\n//# sourceMappingURL=const.mjs.map\n","import { ExtensionType, settings, extensions as extensions$1 } from '@pixi/core';\n\nlet storedGl;\nlet extensions;\nfunction getCompressedTextureExtensions() {\n  extensions = {\n    s3tc: storedGl.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n    s3tc_sRGB: storedGl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n    etc: storedGl.getExtension(\"WEBGL_compressed_texture_etc\"),\n    etc1: storedGl.getExtension(\"WEBGL_compressed_texture_etc1\"),\n    pvrtc: storedGl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || storedGl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n    atc: storedGl.getExtension(\"WEBGL_compressed_texture_atc\"),\n    astc: storedGl.getExtension(\"WEBGL_compressed_texture_astc\")\n  };\n}\nconst detectCompressedTextures = {\n  extension: {\n    type: ExtensionType.DetectionParser,\n    priority: 2\n  },\n  test: async () => {\n    const canvas = settings.ADAPTER.createCanvas();\n    const gl = canvas.getContext(\"webgl\");\n    if (!gl) {\n      console.warn(\"WebGL not available for compressed textures.\");\n      return false;\n    }\n    storedGl = gl;\n    return true;\n  },\n  add: async (formats) => {\n    if (!extensions)\n      getCompressedTextureExtensions();\n    const textureFormats = [];\n    for (const extensionName in extensions) {\n      const extension = extensions[extensionName];\n      if (!extension) {\n        continue;\n      }\n      textureFormats.push(extensionName);\n    }\n    return [...textureFormats, ...formats];\n  },\n  remove: async (formats) => {\n    if (!extensions)\n      getCompressedTextureExtensions();\n    return formats.filter((f) => !(f in extensions));\n  }\n};\nextensions$1.add(detectCompressedTextures);\n\nexport { detectCompressedTextures };\n//# sourceMappingURL=detectCompressedTextures.mjs.map\n","import { BufferResource, ViewableBuffer } from '@pixi/core';\n\nclass BlobResource extends BufferResource {\n  constructor(source, options = { width: 1, height: 1, autoLoad: true }) {\n    let origin;\n    let data;\n    if (typeof source === \"string\") {\n      origin = source;\n      data = new Uint8Array();\n    } else {\n      origin = null;\n      data = source;\n    }\n    super(data, options);\n    this.origin = origin;\n    this.buffer = data ? new ViewableBuffer(data) : null;\n    if (this.origin && options.autoLoad !== false) {\n      this.load();\n    }\n    if (data?.length) {\n      this.loaded = true;\n      this.onBlobLoaded(this.buffer.rawBinaryData);\n    }\n  }\n  onBlobLoaded(_data) {\n  }\n  async load() {\n    const response = await fetch(this.origin);\n    const blob = await response.blob();\n    const arrayBuffer = await blob.arrayBuffer();\n    this.data = new Uint32Array(arrayBuffer);\n    this.buffer = new ViewableBuffer(arrayBuffer);\n    this.loaded = true;\n    this.onBlobLoaded(arrayBuffer);\n    this.update();\n    return this;\n  }\n}\n\nexport { BlobResource };\n//# sourceMappingURL=BlobResource.mjs.map\n","import { INTERNAL_FORMAT_TO_BYTES_PER_PIXEL } from '../const.mjs';\nimport { BlobResource } from './BlobResource.mjs';\n\nclass CompressedTextureResource extends BlobResource {\n  constructor(source, options) {\n    super(source, options);\n    this.format = options.format;\n    this.levels = options.levels || 1;\n    this._width = options.width;\n    this._height = options.height;\n    this._extension = CompressedTextureResource._formatToExtension(this.format);\n    if (options.levelBuffers || this.buffer) {\n      this._levelBuffers = options.levelBuffers || CompressedTextureResource._createLevelBuffers(source instanceof Uint8Array ? source : this.buffer.uint8View, this.format, this.levels, 4, 4, this.width, this.height);\n    }\n  }\n  upload(renderer, _texture, _glTexture) {\n    const gl = renderer.gl;\n    const extension = renderer.context.extensions[this._extension];\n    if (!extension) {\n      throw new Error(`${this._extension} textures are not supported on the current machine`);\n    }\n    if (!this._levelBuffers) {\n      return false;\n    }\n    for (let i = 0, j = this.levels; i < j; i++) {\n      const { levelID, levelWidth, levelHeight, levelBuffer } = this._levelBuffers[i];\n      gl.compressedTexImage2D(gl.TEXTURE_2D, levelID, this.format, levelWidth, levelHeight, 0, levelBuffer);\n    }\n    return true;\n  }\n  onBlobLoaded() {\n    this._levelBuffers = CompressedTextureResource._createLevelBuffers(this.buffer.uint8View, this.format, this.levels, 4, 4, this.width, this.height);\n  }\n  static _formatToExtension(format) {\n    if (format >= 33776 && format <= 33779) {\n      return \"s3tc\";\n    } else if (format >= 37488 && format <= 37497) {\n      return \"etc\";\n    } else if (format >= 35840 && format <= 35843) {\n      return \"pvrtc\";\n    } else if (format >= 36196) {\n      return \"etc1\";\n    } else if (format >= 35986 && format <= 34798) {\n      return \"atc\";\n    }\n    throw new Error(\"Invalid (compressed) texture format given!\");\n  }\n  static _createLevelBuffers(buffer, format, levels, blockWidth, blockHeight, imageWidth, imageHeight) {\n    const buffers = new Array(levels);\n    let offset = buffer.byteOffset;\n    let levelWidth = imageWidth;\n    let levelHeight = imageHeight;\n    let alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1);\n    let alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1);\n    let levelSize = alignedLevelWidth * alignedLevelHeight * INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];\n    for (let i = 0; i < levels; i++) {\n      buffers[i] = {\n        levelID: i,\n        levelWidth: levels > 1 ? levelWidth : alignedLevelWidth,\n        levelHeight: levels > 1 ? levelHeight : alignedLevelHeight,\n        levelBuffer: new Uint8Array(buffer.buffer, offset, levelSize)\n      };\n      offset += levelSize;\n      levelWidth = levelWidth >> 1 || 1;\n      levelHeight = levelHeight >> 1 || 1;\n      alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1);\n      alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1);\n      levelSize = alignedLevelWidth * alignedLevelHeight * INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];\n    }\n    return buffers;\n  }\n}\n\nexport { CompressedTextureResource };\n//# sourceMappingURL=CompressedTextureResource.mjs.map\n","import { INTERNAL_FORMATS, INTERNAL_FORMAT_TO_BYTES_PER_PIXEL } from '../const.mjs';\nimport '../resources/index.mjs';\nimport { CompressedTextureResource } from '../resources/CompressedTextureResource.mjs';\n\nconst DDS_MAGIC_SIZE = 4;\nconst DDS_HEADER_SIZE = 124;\nconst DDS_HEADER_PF_SIZE = 32;\nconst DDS_HEADER_DX10_SIZE = 20;\nconst DDS_MAGIC = 542327876;\nconst DDS_FIELDS = {\n  SIZE: 1,\n  FLAGS: 2,\n  HEIGHT: 3,\n  WIDTH: 4,\n  MIPMAP_COUNT: 7,\n  PIXEL_FORMAT: 19\n};\nconst DDS_PF_FIELDS = {\n  SIZE: 0,\n  FLAGS: 1,\n  FOURCC: 2,\n  RGB_BITCOUNT: 3,\n  R_BIT_MASK: 4,\n  G_BIT_MASK: 5,\n  B_BIT_MASK: 6,\n  A_BIT_MASK: 7\n};\nconst DDS_DX10_FIELDS = {\n  DXGI_FORMAT: 0,\n  RESOURCE_DIMENSION: 1,\n  MISC_FLAG: 2,\n  ARRAY_SIZE: 3,\n  MISC_FLAGS2: 4\n};\nvar DXGI_FORMAT = /* @__PURE__ */ ((DXGI_FORMAT2) => {\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_UNKNOWN\"] = 0] = \"DXGI_FORMAT_UNKNOWN\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32A32_TYPELESS\"] = 1] = \"DXGI_FORMAT_R32G32B32A32_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32A32_FLOAT\"] = 2] = \"DXGI_FORMAT_R32G32B32A32_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32A32_UINT\"] = 3] = \"DXGI_FORMAT_R32G32B32A32_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32A32_SINT\"] = 4] = \"DXGI_FORMAT_R32G32B32A32_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32_TYPELESS\"] = 5] = \"DXGI_FORMAT_R32G32B32_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32_FLOAT\"] = 6] = \"DXGI_FORMAT_R32G32B32_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32_UINT\"] = 7] = \"DXGI_FORMAT_R32G32B32_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32B32_SINT\"] = 8] = \"DXGI_FORMAT_R32G32B32_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_TYPELESS\"] = 9] = \"DXGI_FORMAT_R16G16B16A16_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_FLOAT\"] = 10] = \"DXGI_FORMAT_R16G16B16A16_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_UNORM\"] = 11] = \"DXGI_FORMAT_R16G16B16A16_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_UINT\"] = 12] = \"DXGI_FORMAT_R16G16B16A16_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_SNORM\"] = 13] = \"DXGI_FORMAT_R16G16B16A16_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16B16A16_SINT\"] = 14] = \"DXGI_FORMAT_R16G16B16A16_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32_TYPELESS\"] = 15] = \"DXGI_FORMAT_R32G32_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32_FLOAT\"] = 16] = \"DXGI_FORMAT_R32G32_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32_UINT\"] = 17] = \"DXGI_FORMAT_R32G32_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G32_SINT\"] = 18] = \"DXGI_FORMAT_R32G32_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32G8X24_TYPELESS\"] = 19] = \"DXGI_FORMAT_R32G8X24_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_D32_FLOAT_S8X24_UINT\"] = 20] = \"DXGI_FORMAT_D32_FLOAT_S8X24_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS\"] = 21] = \"DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_X32_TYPELESS_G8X24_UINT\"] = 22] = \"DXGI_FORMAT_X32_TYPELESS_G8X24_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R10G10B10A2_TYPELESS\"] = 23] = \"DXGI_FORMAT_R10G10B10A2_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R10G10B10A2_UNORM\"] = 24] = \"DXGI_FORMAT_R10G10B10A2_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R10G10B10A2_UINT\"] = 25] = \"DXGI_FORMAT_R10G10B10A2_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R11G11B10_FLOAT\"] = 26] = \"DXGI_FORMAT_R11G11B10_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_TYPELESS\"] = 27] = \"DXGI_FORMAT_R8G8B8A8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_UNORM\"] = 28] = \"DXGI_FORMAT_R8G8B8A8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_UNORM_SRGB\"] = 29] = \"DXGI_FORMAT_R8G8B8A8_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_UINT\"] = 30] = \"DXGI_FORMAT_R8G8B8A8_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_SNORM\"] = 31] = \"DXGI_FORMAT_R8G8B8A8_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8B8A8_SINT\"] = 32] = \"DXGI_FORMAT_R8G8B8A8_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_TYPELESS\"] = 33] = \"DXGI_FORMAT_R16G16_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_FLOAT\"] = 34] = \"DXGI_FORMAT_R16G16_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_UNORM\"] = 35] = \"DXGI_FORMAT_R16G16_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_UINT\"] = 36] = \"DXGI_FORMAT_R16G16_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_SNORM\"] = 37] = \"DXGI_FORMAT_R16G16_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16G16_SINT\"] = 38] = \"DXGI_FORMAT_R16G16_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32_TYPELESS\"] = 39] = \"DXGI_FORMAT_R32_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_D32_FLOAT\"] = 40] = \"DXGI_FORMAT_D32_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32_FLOAT\"] = 41] = \"DXGI_FORMAT_R32_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32_UINT\"] = 42] = \"DXGI_FORMAT_R32_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R32_SINT\"] = 43] = \"DXGI_FORMAT_R32_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R24G8_TYPELESS\"] = 44] = \"DXGI_FORMAT_R24G8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_D24_UNORM_S8_UINT\"] = 45] = \"DXGI_FORMAT_D24_UNORM_S8_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R24_UNORM_X8_TYPELESS\"] = 46] = \"DXGI_FORMAT_R24_UNORM_X8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_X24_TYPELESS_G8_UINT\"] = 47] = \"DXGI_FORMAT_X24_TYPELESS_G8_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_TYPELESS\"] = 48] = \"DXGI_FORMAT_R8G8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_UNORM\"] = 49] = \"DXGI_FORMAT_R8G8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_UINT\"] = 50] = \"DXGI_FORMAT_R8G8_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_SNORM\"] = 51] = \"DXGI_FORMAT_R8G8_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_SINT\"] = 52] = \"DXGI_FORMAT_R8G8_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_TYPELESS\"] = 53] = \"DXGI_FORMAT_R16_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_FLOAT\"] = 54] = \"DXGI_FORMAT_R16_FLOAT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_D16_UNORM\"] = 55] = \"DXGI_FORMAT_D16_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_UNORM\"] = 56] = \"DXGI_FORMAT_R16_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_UINT\"] = 57] = \"DXGI_FORMAT_R16_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_SNORM\"] = 58] = \"DXGI_FORMAT_R16_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R16_SINT\"] = 59] = \"DXGI_FORMAT_R16_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8_TYPELESS\"] = 60] = \"DXGI_FORMAT_R8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8_UNORM\"] = 61] = \"DXGI_FORMAT_R8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8_UINT\"] = 62] = \"DXGI_FORMAT_R8_UINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8_SNORM\"] = 63] = \"DXGI_FORMAT_R8_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8_SINT\"] = 64] = \"DXGI_FORMAT_R8_SINT\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_A8_UNORM\"] = 65] = \"DXGI_FORMAT_A8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R1_UNORM\"] = 66] = \"DXGI_FORMAT_R1_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R9G9B9E5_SHAREDEXP\"] = 67] = \"DXGI_FORMAT_R9G9B9E5_SHAREDEXP\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R8G8_B8G8_UNORM\"] = 68] = \"DXGI_FORMAT_R8G8_B8G8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_G8R8_G8B8_UNORM\"] = 69] = \"DXGI_FORMAT_G8R8_G8B8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC1_TYPELESS\"] = 70] = \"DXGI_FORMAT_BC1_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC1_UNORM\"] = 71] = \"DXGI_FORMAT_BC1_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC1_UNORM_SRGB\"] = 72] = \"DXGI_FORMAT_BC1_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC2_TYPELESS\"] = 73] = \"DXGI_FORMAT_BC2_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC2_UNORM\"] = 74] = \"DXGI_FORMAT_BC2_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC2_UNORM_SRGB\"] = 75] = \"DXGI_FORMAT_BC2_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC3_TYPELESS\"] = 76] = \"DXGI_FORMAT_BC3_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC3_UNORM\"] = 77] = \"DXGI_FORMAT_BC3_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC3_UNORM_SRGB\"] = 78] = \"DXGI_FORMAT_BC3_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC4_TYPELESS\"] = 79] = \"DXGI_FORMAT_BC4_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC4_UNORM\"] = 80] = \"DXGI_FORMAT_BC4_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC4_SNORM\"] = 81] = \"DXGI_FORMAT_BC4_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC5_TYPELESS\"] = 82] = \"DXGI_FORMAT_BC5_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC5_UNORM\"] = 83] = \"DXGI_FORMAT_BC5_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC5_SNORM\"] = 84] = \"DXGI_FORMAT_BC5_SNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B5G6R5_UNORM\"] = 85] = \"DXGI_FORMAT_B5G6R5_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B5G5R5A1_UNORM\"] = 86] = \"DXGI_FORMAT_B5G5R5A1_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8A8_UNORM\"] = 87] = \"DXGI_FORMAT_B8G8R8A8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8X8_UNORM\"] = 88] = \"DXGI_FORMAT_B8G8R8X8_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM\"] = 89] = \"DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8A8_TYPELESS\"] = 90] = \"DXGI_FORMAT_B8G8R8A8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8A8_UNORM_SRGB\"] = 91] = \"DXGI_FORMAT_B8G8R8A8_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8X8_TYPELESS\"] = 92] = \"DXGI_FORMAT_B8G8R8X8_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B8G8R8X8_UNORM_SRGB\"] = 93] = \"DXGI_FORMAT_B8G8R8X8_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC6H_TYPELESS\"] = 94] = \"DXGI_FORMAT_BC6H_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC6H_UF16\"] = 95] = \"DXGI_FORMAT_BC6H_UF16\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC6H_SF16\"] = 96] = \"DXGI_FORMAT_BC6H_SF16\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC7_TYPELESS\"] = 97] = \"DXGI_FORMAT_BC7_TYPELESS\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC7_UNORM\"] = 98] = \"DXGI_FORMAT_BC7_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_BC7_UNORM_SRGB\"] = 99] = \"DXGI_FORMAT_BC7_UNORM_SRGB\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_AYUV\"] = 100] = \"DXGI_FORMAT_AYUV\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_Y410\"] = 101] = \"DXGI_FORMAT_Y410\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_Y416\"] = 102] = \"DXGI_FORMAT_Y416\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_NV12\"] = 103] = \"DXGI_FORMAT_NV12\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_P010\"] = 104] = \"DXGI_FORMAT_P010\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_P016\"] = 105] = \"DXGI_FORMAT_P016\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_420_OPAQUE\"] = 106] = \"DXGI_FORMAT_420_OPAQUE\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_YUY2\"] = 107] = \"DXGI_FORMAT_YUY2\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_Y210\"] = 108] = \"DXGI_FORMAT_Y210\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_Y216\"] = 109] = \"DXGI_FORMAT_Y216\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_NV11\"] = 110] = \"DXGI_FORMAT_NV11\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_AI44\"] = 111] = \"DXGI_FORMAT_AI44\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_IA44\"] = 112] = \"DXGI_FORMAT_IA44\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_P8\"] = 113] = \"DXGI_FORMAT_P8\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_A8P8\"] = 114] = \"DXGI_FORMAT_A8P8\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_B4G4R4A4_UNORM\"] = 115] = \"DXGI_FORMAT_B4G4R4A4_UNORM\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_P208\"] = 116] = \"DXGI_FORMAT_P208\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_V208\"] = 117] = \"DXGI_FORMAT_V208\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_V408\"] = 118] = \"DXGI_FORMAT_V408\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE\"] = 119] = \"DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE\"] = 120] = \"DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE\";\n  DXGI_FORMAT2[DXGI_FORMAT2[\"DXGI_FORMAT_FORCE_UINT\"] = 121] = \"DXGI_FORMAT_FORCE_UINT\";\n  return DXGI_FORMAT2;\n})(DXGI_FORMAT || {});\nvar D3D10_RESOURCE_DIMENSION = /* @__PURE__ */ ((D3D10_RESOURCE_DIMENSION2) => {\n  D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2[\"DDS_DIMENSION_TEXTURE1D\"] = 2] = \"DDS_DIMENSION_TEXTURE1D\";\n  D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2[\"DDS_DIMENSION_TEXTURE2D\"] = 3] = \"DDS_DIMENSION_TEXTURE2D\";\n  D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2[\"DDS_DIMENSION_TEXTURE3D\"] = 6] = \"DDS_DIMENSION_TEXTURE3D\";\n  return D3D10_RESOURCE_DIMENSION2;\n})(D3D10_RESOURCE_DIMENSION || {});\nconst PF_FLAGS = 1;\nconst DDPF_ALPHA = 2;\nconst DDPF_FOURCC = 4;\nconst DDPF_RGB = 64;\nconst DDPF_YUV = 512;\nconst DDPF_LUMINANCE = 131072;\nconst FOURCC_DXT1 = 827611204;\nconst FOURCC_DXT3 = 861165636;\nconst FOURCC_DXT5 = 894720068;\nconst FOURCC_DX10 = 808540228;\nconst DDS_RESOURCE_MISC_TEXTURECUBE = 4;\nconst FOURCC_TO_FORMAT = {\n  [FOURCC_DXT1]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n  [FOURCC_DXT3]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n  [FOURCC_DXT5]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n};\nconst DXGI_TO_FORMAT = {\n  [70 /* DXGI_FORMAT_BC1_TYPELESS */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n  [71 /* DXGI_FORMAT_BC1_UNORM */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n  [73 /* DXGI_FORMAT_BC2_TYPELESS */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n  [74 /* DXGI_FORMAT_BC2_UNORM */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n  [76 /* DXGI_FORMAT_BC3_TYPELESS */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n  [77 /* DXGI_FORMAT_BC3_UNORM */]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n  [72 /* DXGI_FORMAT_BC1_UNORM_SRGB */]: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n  [75 /* DXGI_FORMAT_BC2_UNORM_SRGB */]: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n  [78 /* DXGI_FORMAT_BC3_UNORM_SRGB */]: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\n};\nfunction parseDDS(arrayBuffer) {\n  const data = new Uint32Array(arrayBuffer);\n  const magicWord = data[0];\n  if (magicWord !== DDS_MAGIC) {\n    throw new Error(\"Invalid DDS file magic word\");\n  }\n  const header = new Uint32Array(arrayBuffer, 0, DDS_HEADER_SIZE / Uint32Array.BYTES_PER_ELEMENT);\n  const height = header[DDS_FIELDS.HEIGHT];\n  const width = header[DDS_FIELDS.WIDTH];\n  const mipmapCount = header[DDS_FIELDS.MIPMAP_COUNT];\n  const pixelFormat = new Uint32Array(arrayBuffer, DDS_FIELDS.PIXEL_FORMAT * Uint32Array.BYTES_PER_ELEMENT, DDS_HEADER_PF_SIZE / Uint32Array.BYTES_PER_ELEMENT);\n  const formatFlags = pixelFormat[PF_FLAGS];\n  if (formatFlags & DDPF_FOURCC) {\n    const fourCC = pixelFormat[DDS_PF_FIELDS.FOURCC];\n    if (fourCC !== FOURCC_DX10) {\n      const internalFormat2 = FOURCC_TO_FORMAT[fourCC];\n      const dataOffset2 = DDS_MAGIC_SIZE + DDS_HEADER_SIZE;\n      const texData = new Uint8Array(arrayBuffer, dataOffset2);\n      const resource = new CompressedTextureResource(texData, {\n        format: internalFormat2,\n        width,\n        height,\n        levels: mipmapCount\n      });\n      return [resource];\n    }\n    const dx10Offset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE;\n    const dx10Header = new Uint32Array(data.buffer, dx10Offset, DDS_HEADER_DX10_SIZE / Uint32Array.BYTES_PER_ELEMENT);\n    const dxgiFormat = dx10Header[DDS_DX10_FIELDS.DXGI_FORMAT];\n    const resourceDimension = dx10Header[DDS_DX10_FIELDS.RESOURCE_DIMENSION];\n    const miscFlag = dx10Header[DDS_DX10_FIELDS.MISC_FLAG];\n    const arraySize = dx10Header[DDS_DX10_FIELDS.ARRAY_SIZE];\n    const internalFormat = DXGI_TO_FORMAT[dxgiFormat];\n    if (internalFormat === void 0) {\n      throw new Error(`DDSParser cannot parse texture data with DXGI format ${dxgiFormat}`);\n    }\n    if (miscFlag === DDS_RESOURCE_MISC_TEXTURECUBE) {\n      throw new Error(\"DDSParser does not support cubemap textures\");\n    }\n    if (resourceDimension === 6 /* DDS_DIMENSION_TEXTURE3D */) {\n      throw new Error(\"DDSParser does not supported 3D texture data\");\n    }\n    const imageBuffers = new Array();\n    const dataOffset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE + DDS_HEADER_DX10_SIZE;\n    if (arraySize === 1) {\n      imageBuffers.push(new Uint8Array(arrayBuffer, dataOffset));\n    } else {\n      const pixelSize = INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[internalFormat];\n      let imageSize = 0;\n      let levelWidth = width;\n      let levelHeight = height;\n      for (let i = 0; i < mipmapCount; i++) {\n        const alignedLevelWidth = Math.max(1, levelWidth + 3 & ~3);\n        const alignedLevelHeight = Math.max(1, levelHeight + 3 & ~3);\n        const levelSize = alignedLevelWidth * alignedLevelHeight * pixelSize;\n        imageSize += levelSize;\n        levelWidth = levelWidth >>> 1;\n        levelHeight = levelHeight >>> 1;\n      }\n      let imageOffset = dataOffset;\n      for (let i = 0; i < arraySize; i++) {\n        imageBuffers.push(new Uint8Array(arrayBuffer, imageOffset, imageSize));\n        imageOffset += imageSize;\n      }\n    }\n    return imageBuffers.map((buffer) => new CompressedTextureResource(buffer, {\n      format: internalFormat,\n      width,\n      height,\n      levels: mipmapCount\n    }));\n  }\n  if (formatFlags & DDPF_RGB) {\n    throw new Error(\"DDSParser does not support uncompressed texture data.\");\n  }\n  if (formatFlags & DDPF_YUV) {\n    throw new Error(\"DDSParser does not supported YUV uncompressed texture data.\");\n  }\n  if (formatFlags & DDPF_LUMINANCE) {\n    throw new Error(\"DDSParser does not support single-channel (lumninance) texture data!\");\n  }\n  if (formatFlags & DDPF_ALPHA) {\n    throw new Error(\"DDSParser does not support single-channel (alpha) texture data!\");\n  }\n  throw new Error(\"DDSParser failed to load a texture file due to an unknown reason!\");\n}\n\nexport { parseDDS };\n//# sourceMappingURL=parseDDS.mjs.map\n","import { TYPES, FORMATS, BufferResource } from '@pixi/core';\nimport { INTERNAL_FORMAT_TO_BYTES_PER_PIXEL } from '../const.mjs';\nimport '../resources/index.mjs';\nimport { CompressedTextureResource } from '../resources/CompressedTextureResource.mjs';\n\nconst FILE_IDENTIFIER = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10];\nconst ENDIANNESS = 67305985;\nconst KTX_FIELDS = {\n  FILE_IDENTIFIER: 0,\n  ENDIANNESS: 12,\n  GL_TYPE: 16,\n  GL_TYPE_SIZE: 20,\n  GL_FORMAT: 24,\n  GL_INTERNAL_FORMAT: 28,\n  GL_BASE_INTERNAL_FORMAT: 32,\n  PIXEL_WIDTH: 36,\n  PIXEL_HEIGHT: 40,\n  PIXEL_DEPTH: 44,\n  NUMBER_OF_ARRAY_ELEMENTS: 48,\n  NUMBER_OF_FACES: 52,\n  NUMBER_OF_MIPMAP_LEVELS: 56,\n  BYTES_OF_KEY_VALUE_DATA: 60\n};\nconst FILE_HEADER_SIZE = 64;\nconst TYPES_TO_BYTES_PER_COMPONENT = {\n  [TYPES.UNSIGNED_BYTE]: 1,\n  [TYPES.UNSIGNED_SHORT]: 2,\n  [TYPES.INT]: 4,\n  [TYPES.UNSIGNED_INT]: 4,\n  [TYPES.FLOAT]: 4,\n  [TYPES.HALF_FLOAT]: 8\n};\nconst FORMATS_TO_COMPONENTS = {\n  [FORMATS.RGBA]: 4,\n  [FORMATS.RGB]: 3,\n  [FORMATS.RG]: 2,\n  [FORMATS.RED]: 1,\n  [FORMATS.LUMINANCE]: 1,\n  [FORMATS.LUMINANCE_ALPHA]: 2,\n  [FORMATS.ALPHA]: 1\n};\nconst TYPES_TO_BYTES_PER_PIXEL = {\n  [TYPES.UNSIGNED_SHORT_4_4_4_4]: 2,\n  [TYPES.UNSIGNED_SHORT_5_5_5_1]: 2,\n  [TYPES.UNSIGNED_SHORT_5_6_5]: 2\n};\nfunction parseKTX(url, arrayBuffer, loadKeyValueData = false) {\n  const dataView = new DataView(arrayBuffer);\n  if (!validate(url, dataView)) {\n    return null;\n  }\n  const littleEndian = dataView.getUint32(KTX_FIELDS.ENDIANNESS, true) === ENDIANNESS;\n  const glType = dataView.getUint32(KTX_FIELDS.GL_TYPE, littleEndian);\n  const glFormat = dataView.getUint32(KTX_FIELDS.GL_FORMAT, littleEndian);\n  const glInternalFormat = dataView.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT, littleEndian);\n  const pixelWidth = dataView.getUint32(KTX_FIELDS.PIXEL_WIDTH, littleEndian);\n  const pixelHeight = dataView.getUint32(KTX_FIELDS.PIXEL_HEIGHT, littleEndian) || 1;\n  const pixelDepth = dataView.getUint32(KTX_FIELDS.PIXEL_DEPTH, littleEndian) || 1;\n  const numberOfArrayElements = dataView.getUint32(KTX_FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1;\n  const numberOfFaces = dataView.getUint32(KTX_FIELDS.NUMBER_OF_FACES, littleEndian);\n  const numberOfMipmapLevels = dataView.getUint32(KTX_FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian);\n  const bytesOfKeyValueData = dataView.getUint32(KTX_FIELDS.BYTES_OF_KEY_VALUE_DATA, littleEndian);\n  if (pixelHeight === 0 || pixelDepth !== 1) {\n    throw new Error(\"Only 2D textures are supported\");\n  }\n  if (numberOfFaces !== 1) {\n    throw new Error(\"CubeTextures are not supported by KTXLoader yet!\");\n  }\n  if (numberOfArrayElements !== 1) {\n    throw new Error(\"WebGL does not support array textures\");\n  }\n  const blockWidth = 4;\n  const blockHeight = 4;\n  const alignedWidth = pixelWidth + 3 & ~3;\n  const alignedHeight = pixelHeight + 3 & ~3;\n  const imageBuffers = new Array(numberOfArrayElements);\n  let imagePixels = pixelWidth * pixelHeight;\n  if (glType === 0) {\n    imagePixels = alignedWidth * alignedHeight;\n  }\n  let imagePixelByteSize;\n  if (glType !== 0) {\n    if (TYPES_TO_BYTES_PER_COMPONENT[glType]) {\n      imagePixelByteSize = TYPES_TO_BYTES_PER_COMPONENT[glType] * FORMATS_TO_COMPONENTS[glFormat];\n    } else {\n      imagePixelByteSize = TYPES_TO_BYTES_PER_PIXEL[glType];\n    }\n  } else {\n    imagePixelByteSize = INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat];\n  }\n  if (imagePixelByteSize === void 0) {\n    throw new Error(\"Unable to resolve the pixel format stored in the *.ktx file!\");\n  }\n  const kvData = loadKeyValueData ? parseKvData(dataView, bytesOfKeyValueData, littleEndian) : null;\n  const imageByteSize = imagePixels * imagePixelByteSize;\n  let mipByteSize = imageByteSize;\n  let mipWidth = pixelWidth;\n  let mipHeight = pixelHeight;\n  let alignedMipWidth = alignedWidth;\n  let alignedMipHeight = alignedHeight;\n  let imageOffset = FILE_HEADER_SIZE + bytesOfKeyValueData;\n  for (let mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {\n    const imageSize = dataView.getUint32(imageOffset, littleEndian);\n    let elementOffset = imageOffset + 4;\n    for (let arrayElement = 0; arrayElement < numberOfArrayElements; arrayElement++) {\n      let mips = imageBuffers[arrayElement];\n      if (!mips) {\n        mips = imageBuffers[arrayElement] = new Array(numberOfMipmapLevels);\n      }\n      mips[mipmapLevel] = {\n        levelID: mipmapLevel,\n        levelWidth: numberOfMipmapLevels > 1 || glType !== 0 ? mipWidth : alignedMipWidth,\n        levelHeight: numberOfMipmapLevels > 1 || glType !== 0 ? mipHeight : alignedMipHeight,\n        levelBuffer: new Uint8Array(arrayBuffer, elementOffset, mipByteSize)\n      };\n      elementOffset += mipByteSize;\n    }\n    imageOffset += imageSize + 4;\n    imageOffset = imageOffset % 4 !== 0 ? imageOffset + 4 - imageOffset % 4 : imageOffset;\n    mipWidth = mipWidth >> 1 || 1;\n    mipHeight = mipHeight >> 1 || 1;\n    alignedMipWidth = mipWidth + blockWidth - 1 & ~(blockWidth - 1);\n    alignedMipHeight = mipHeight + blockHeight - 1 & ~(blockHeight - 1);\n    mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;\n  }\n  if (glType !== 0) {\n    return {\n      uncompressed: imageBuffers.map((levelBuffers) => {\n        let buffer = levelBuffers[0].levelBuffer;\n        let convertToInt = false;\n        if (glType === TYPES.FLOAT) {\n          buffer = new Float32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);\n        } else if (glType === TYPES.UNSIGNED_INT) {\n          convertToInt = true;\n          buffer = new Uint32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);\n        } else if (glType === TYPES.INT) {\n          convertToInt = true;\n          buffer = new Int32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);\n        }\n        return {\n          resource: new BufferResource(buffer, {\n            width: levelBuffers[0].levelWidth,\n            height: levelBuffers[0].levelHeight\n          }),\n          type: glType,\n          format: convertToInt ? convertFormatToInteger(glFormat) : glFormat\n        };\n      }),\n      kvData\n    };\n  }\n  return {\n    compressed: imageBuffers.map((levelBuffers) => new CompressedTextureResource(null, {\n      format: glInternalFormat,\n      width: pixelWidth,\n      height: pixelHeight,\n      levels: numberOfMipmapLevels,\n      levelBuffers\n    })),\n    kvData\n  };\n}\nfunction validate(url, dataView) {\n  for (let i = 0; i < FILE_IDENTIFIER.length; i++) {\n    if (dataView.getUint8(i) !== FILE_IDENTIFIER[i]) {\n      console.error(`${url} is not a valid *.ktx file!`);\n      return false;\n    }\n  }\n  return true;\n}\nfunction convertFormatToInteger(format) {\n  switch (format) {\n    case FORMATS.RGBA:\n      return FORMATS.RGBA_INTEGER;\n    case FORMATS.RGB:\n      return FORMATS.RGB_INTEGER;\n    case FORMATS.RG:\n      return FORMATS.RG_INTEGER;\n    case FORMATS.RED:\n      return FORMATS.RED_INTEGER;\n    default:\n      return format;\n  }\n}\nfunction parseKvData(dataView, bytesOfKeyValueData, littleEndian) {\n  const kvData = /* @__PURE__ */ new Map();\n  let bytesIntoKeyValueData = 0;\n  while (bytesIntoKeyValueData < bytesOfKeyValueData) {\n    const keyAndValueByteSize = dataView.getUint32(FILE_HEADER_SIZE + bytesIntoKeyValueData, littleEndian);\n    const keyAndValueByteOffset = FILE_HEADER_SIZE + bytesIntoKeyValueData + 4;\n    const valuePadding = 3 - (keyAndValueByteSize + 3) % 4;\n    if (keyAndValueByteSize === 0 || keyAndValueByteSize > bytesOfKeyValueData - bytesIntoKeyValueData) {\n      console.error(\"KTXLoader: keyAndValueByteSize out of bounds\");\n      break;\n    }\n    let keyNulByte = 0;\n    for (; keyNulByte < keyAndValueByteSize; keyNulByte++) {\n      if (dataView.getUint8(keyAndValueByteOffset + keyNulByte) === 0) {\n        break;\n      }\n    }\n    if (keyNulByte === -1) {\n      console.error(\"KTXLoader: Failed to find null byte terminating kvData key\");\n      break;\n    }\n    const key = new TextDecoder().decode(new Uint8Array(dataView.buffer, keyAndValueByteOffset, keyNulByte));\n    const value = new DataView(dataView.buffer, keyAndValueByteOffset + keyNulByte + 1, keyAndValueByteSize - keyNulByte - 1);\n    kvData.set(key, value);\n    bytesIntoKeyValueData += 4 + keyAndValueByteSize + valuePadding;\n  }\n  return kvData;\n}\n\nexport { FORMATS_TO_COMPONENTS, TYPES_TO_BYTES_PER_COMPONENT, TYPES_TO_BYTES_PER_PIXEL, parseKTX };\n//# sourceMappingURL=parseKTX.mjs.map\n","import { LoaderParserPriority, checkExtension, createTexture } from '@pixi/assets';\nimport { ExtensionType, settings, BaseTexture, MIPMAP_MODES, ALPHA_MODES, utils, extensions } from '@pixi/core';\nimport '../parsers/index.mjs';\nimport { parseDDS } from '../parsers/parseDDS.mjs';\n\nconst loadDDS = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.High\n  },\n  test(url) {\n    return checkExtension(url, \".dds\");\n  },\n  async load(url, asset, loader) {\n    const response = await settings.ADAPTER.fetch(url);\n    const arrayBuffer = await response.arrayBuffer();\n    const resources = parseDDS(arrayBuffer);\n    const textures = resources.map((resource) => {\n      const base = new BaseTexture(resource, {\n        mipmap: MIPMAP_MODES.OFF,\n        alphaMode: ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,\n        resolution: utils.getResolutionOfUrl(url),\n        ...asset.data\n      });\n      return createTexture(base, loader, url);\n    });\n    return textures.length === 1 ? textures[0] : textures;\n  },\n  unload(texture) {\n    if (Array.isArray(texture)) {\n      texture.forEach((t) => t.destroy(true));\n    } else {\n      texture.destroy(true);\n    }\n  }\n};\nextensions.add(loadDDS);\n\nexport { loadDDS };\n//# sourceMappingURL=loadDDS.mjs.map\n","import { LoaderParserPriority, checkExtension, createTexture } from '@pixi/assets';\nimport { ExtensionType, settings, MIPMAP_MODES, ALPHA_MODES, utils, BaseTexture, extensions } from '@pixi/core';\nimport '../parsers/index.mjs';\nimport { parseKTX } from '../parsers/parseKTX.mjs';\n\nconst loadKTX = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.High\n  },\n  test(url) {\n    return checkExtension(url, \".ktx\");\n  },\n  async load(url, asset, loader) {\n    const response = await settings.ADAPTER.fetch(url);\n    const arrayBuffer = await response.arrayBuffer();\n    const { compressed, uncompressed, kvData } = parseKTX(url, arrayBuffer);\n    const resources = compressed ?? uncompressed;\n    const options = {\n      mipmap: MIPMAP_MODES.OFF,\n      alphaMode: ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,\n      resolution: utils.getResolutionOfUrl(url),\n      ...asset.data\n    };\n    const textures = resources.map((resource) => {\n      if (resources === uncompressed) {\n        Object.assign(options, {\n          type: resource.type,\n          format: resource.format\n        });\n      }\n      const base = new BaseTexture(resource, options);\n      base.ktxKeyValueData = kvData;\n      return createTexture(base, loader, url);\n    });\n    return textures.length === 1 ? textures[0] : textures;\n  },\n  unload(texture) {\n    if (Array.isArray(texture)) {\n      texture.forEach((t) => t.destroy(true));\n    } else {\n      texture.destroy(true);\n    }\n  }\n};\nextensions.add(loadKTX);\n\nexport { loadKTX };\n//# sourceMappingURL=loadKTX.mjs.map\n","import { ExtensionType, settings, extensions } from '@pixi/core';\n\nconst resolveCompressedTextureUrl = {\n  extension: ExtensionType.ResolveParser,\n  test: (value) => {\n    const temp = value.split(\"?\")[0];\n    const extension = temp.split(\".\").pop();\n    return [\"basis\", \"ktx\", \"dds\"].includes(extension);\n  },\n  parse: (value) => {\n    const temp = value.split(\"?\")[0];\n    const extension = temp.split(\".\").pop();\n    if (extension === \"ktx\") {\n      const extensions2 = [\n        \".s3tc.ktx\",\n        \".s3tc_sRGB.ktx\",\n        \".etc.ktx\",\n        \".etc1.ktx\",\n        \".pvrt.ktx\",\n        \".atc.ktx\",\n        \".astc.ktx\"\n      ];\n      if (extensions2.some((ext) => value.endsWith(ext))) {\n        return {\n          resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? \"1\"),\n          format: extensions2.find((ext) => value.endsWith(ext)),\n          src: value\n        };\n      }\n    }\n    return {\n      resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? \"1\"),\n      format: value.split(\".\").pop(),\n      src: value\n    };\n  }\n};\nextensions.add(resolveCompressedTextureUrl);\n\nexport { resolveCompressedTextureUrl };\n//# sourceMappingURL=resolveCompressedTextureUrl.mjs.map\n","import { Rectangle, utils, RenderTexture, MSAA_QUALITY, ExtensionType, extensions } from '@pixi/core';\n\nconst TEMP_RECT = new Rectangle();\nconst BYTES_PER_PIXEL = 4;\nconst _Extract = class {\n  constructor(renderer) {\n    this.renderer = renderer;\n  }\n  async image(target, format, quality) {\n    const image = new Image();\n    image.src = await this.base64(target, format, quality);\n    return image;\n  }\n  async base64(target, format, quality) {\n    const canvas = this.canvas(target);\n    if (canvas.toDataURL !== void 0) {\n      return canvas.toDataURL(format, quality);\n    }\n    if (canvas.convertToBlob !== void 0) {\n      const blob = await canvas.convertToBlob({ type: format, quality });\n      return await new Promise((resolve) => {\n        const reader = new FileReader();\n        reader.onload = () => resolve(reader.result);\n        reader.readAsDataURL(blob);\n      });\n    }\n    throw new Error(\"Extract.base64() requires ICanvas.toDataURL or ICanvas.convertToBlob to be implemented\");\n  }\n  canvas(target, frame) {\n    const { pixels, width, height, flipY } = this._rawPixels(target, frame);\n    let canvasBuffer = new utils.CanvasRenderTarget(width, height, 1);\n    const canvasData = canvasBuffer.context.getImageData(0, 0, width, height);\n    _Extract.arrayPostDivide(pixels, canvasData.data);\n    canvasBuffer.context.putImageData(canvasData, 0, 0);\n    if (flipY) {\n      const target2 = new utils.CanvasRenderTarget(canvasBuffer.width, canvasBuffer.height, 1);\n      target2.context.scale(1, -1);\n      target2.context.drawImage(canvasBuffer.canvas, 0, -height);\n      canvasBuffer.destroy();\n      canvasBuffer = target2;\n    }\n    return canvasBuffer.canvas;\n  }\n  pixels(target, frame) {\n    const { pixels } = this._rawPixels(target, frame);\n    _Extract.arrayPostDivide(pixels, pixels);\n    return pixels;\n  }\n  _rawPixels(target, frame) {\n    const renderer = this.renderer;\n    let resolution;\n    let flipY = false;\n    let renderTexture;\n    let generated = false;\n    if (target) {\n      if (target instanceof RenderTexture) {\n        renderTexture = target;\n      } else {\n        const multisample = renderer.context.webGLVersion >= 2 ? renderer.multisample : MSAA_QUALITY.NONE;\n        renderTexture = this.renderer.generateTexture(target, { multisample });\n        if (multisample !== MSAA_QUALITY.NONE) {\n          const resolvedTexture = RenderTexture.create({\n            width: renderTexture.width,\n            height: renderTexture.height\n          });\n          renderer.framebuffer.bind(renderTexture.framebuffer);\n          renderer.framebuffer.blit(resolvedTexture.framebuffer);\n          renderer.framebuffer.bind(null);\n          renderTexture.destroy(true);\n          renderTexture = resolvedTexture;\n        }\n        generated = true;\n      }\n    }\n    if (renderTexture) {\n      resolution = renderTexture.baseTexture.resolution;\n      frame = frame ?? renderTexture.frame;\n      flipY = false;\n      renderer.renderTexture.bind(renderTexture);\n    } else {\n      resolution = renderer.resolution;\n      if (!frame) {\n        frame = TEMP_RECT;\n        frame.width = renderer.width;\n        frame.height = renderer.height;\n      }\n      flipY = true;\n      renderer.renderTexture.bind(null);\n    }\n    const width = Math.round(frame.width * resolution);\n    const height = Math.round(frame.height * resolution);\n    const pixels = new Uint8Array(BYTES_PER_PIXEL * width * height);\n    const gl = renderer.gl;\n    gl.readPixels(Math.round(frame.x * resolution), Math.round(frame.y * resolution), width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\n    if (generated) {\n      renderTexture.destroy(true);\n    }\n    return { pixels, width, height, flipY };\n  }\n  destroy() {\n    this.renderer = null;\n  }\n  static arrayPostDivide(pixels, out) {\n    for (let i = 0; i < pixels.length; i += 4) {\n      const alpha = out[i + 3] = pixels[i + 3];\n      if (alpha !== 0) {\n        out[i] = Math.round(Math.min(pixels[i] * 255 / alpha, 255));\n        out[i + 1] = Math.round(Math.min(pixels[i + 1] * 255 / alpha, 255));\n        out[i + 2] = Math.round(Math.min(pixels[i + 2] * 255 / alpha, 255));\n      } else {\n        out[i] = pixels[i];\n        out[i + 1] = pixels[i + 1];\n        out[i + 2] = pixels[i + 2];\n      }\n    }\n  }\n};\nlet Extract = _Extract;\nExtract.extension = {\n  name: \"extract\",\n  type: ExtensionType.RendererSystem\n};\nextensions.add(Extract);\n\nexport { Extract };\n//# sourceMappingURL=Extract.mjs.map\n","import { SHAPES } from '@pixi/core';\n\nconst buildCircle = {\n  build(graphicsData) {\n    const points = graphicsData.points;\n    let x;\n    let y;\n    let dx;\n    let dy;\n    let rx;\n    let ry;\n    if (graphicsData.type === SHAPES.CIRC) {\n      const circle = graphicsData.shape;\n      x = circle.x;\n      y = circle.y;\n      rx = ry = circle.radius;\n      dx = dy = 0;\n    } else if (graphicsData.type === SHAPES.ELIP) {\n      const ellipse = graphicsData.shape;\n      x = ellipse.x;\n      y = ellipse.y;\n      rx = ellipse.width;\n      ry = ellipse.height;\n      dx = dy = 0;\n    } else {\n      const roundedRect = graphicsData.shape;\n      const halfWidth = roundedRect.width / 2;\n      const halfHeight = roundedRect.height / 2;\n      x = roundedRect.x + halfWidth;\n      y = roundedRect.y + halfHeight;\n      rx = ry = Math.max(0, Math.min(roundedRect.radius, Math.min(halfWidth, halfHeight)));\n      dx = halfWidth - rx;\n      dy = halfHeight - ry;\n    }\n    if (!(rx >= 0 && ry >= 0 && dx >= 0 && dy >= 0)) {\n      points.length = 0;\n      return;\n    }\n    const n = Math.ceil(2.3 * Math.sqrt(rx + ry));\n    const m = n * 8 + (dx ? 4 : 0) + (dy ? 4 : 0);\n    points.length = m;\n    if (m === 0) {\n      return;\n    }\n    if (n === 0) {\n      points.length = 8;\n      points[0] = points[6] = x + dx;\n      points[1] = points[3] = y + dy;\n      points[2] = points[4] = x - dx;\n      points[5] = points[7] = y - dy;\n      return;\n    }\n    let j1 = 0;\n    let j2 = n * 4 + (dx ? 2 : 0) + 2;\n    let j3 = j2;\n    let j4 = m;\n    {\n      const x0 = dx + rx;\n      const y0 = dy;\n      const x1 = x + x0;\n      const x2 = x - x0;\n      const y1 = y + y0;\n      points[j1++] = x1;\n      points[j1++] = y1;\n      points[--j2] = y1;\n      points[--j2] = x2;\n      if (dy) {\n        const y2 = y - y0;\n        points[j3++] = x2;\n        points[j3++] = y2;\n        points[--j4] = y2;\n        points[--j4] = x1;\n      }\n    }\n    for (let i = 1; i < n; i++) {\n      const a = Math.PI / 2 * (i / n);\n      const x0 = dx + Math.cos(a) * rx;\n      const y0 = dy + Math.sin(a) * ry;\n      const x1 = x + x0;\n      const x2 = x - x0;\n      const y1 = y + y0;\n      const y2 = y - y0;\n      points[j1++] = x1;\n      points[j1++] = y1;\n      points[--j2] = y1;\n      points[--j2] = x2;\n      points[j3++] = x2;\n      points[j3++] = y2;\n      points[--j4] = y2;\n      points[--j4] = x1;\n    }\n    {\n      const x0 = dx;\n      const y0 = dy + ry;\n      const x1 = x + x0;\n      const x2 = x - x0;\n      const y1 = y + y0;\n      const y2 = y - y0;\n      points[j1++] = x1;\n      points[j1++] = y1;\n      points[--j4] = y2;\n      points[--j4] = x1;\n      if (dx) {\n        points[j1++] = x2;\n        points[j1++] = y1;\n        points[--j4] = y2;\n        points[--j4] = x2;\n      }\n    }\n  },\n  triangulate(graphicsData, graphicsGeometry) {\n    const points = graphicsData.points;\n    const verts = graphicsGeometry.points;\n    const indices = graphicsGeometry.indices;\n    if (points.length === 0) {\n      return;\n    }\n    let vertPos = verts.length / 2;\n    const center = vertPos;\n    let x;\n    let y;\n    if (graphicsData.type !== SHAPES.RREC) {\n      const circle = graphicsData.shape;\n      x = circle.x;\n      y = circle.y;\n    } else {\n      const roundedRect = graphicsData.shape;\n      x = roundedRect.x + roundedRect.width / 2;\n      y = roundedRect.y + roundedRect.height / 2;\n    }\n    const matrix = graphicsData.matrix;\n    verts.push(graphicsData.matrix ? matrix.a * x + matrix.c * y + matrix.tx : x, graphicsData.matrix ? matrix.b * x + matrix.d * y + matrix.ty : y);\n    vertPos++;\n    verts.push(points[0], points[1]);\n    for (let i = 2; i < points.length; i += 2) {\n      verts.push(points[i], points[i + 1]);\n      indices.push(vertPos++, center, vertPos);\n    }\n    indices.push(center + 1, center, vertPos);\n  }\n};\n\nexport { buildCircle };\n//# sourceMappingURL=buildCircle.mjs.map\n","import { utils } from '@pixi/core';\n\nfunction fixOrientation(points, hole = false) {\n  const m = points.length;\n  if (m < 6) {\n    return;\n  }\n  let area = 0;\n  for (let i = 0, x1 = points[m - 2], y1 = points[m - 1]; i < m; i += 2) {\n    const x2 = points[i];\n    const y2 = points[i + 1];\n    area += (x2 - x1) * (y2 + y1);\n    x1 = x2;\n    y1 = y2;\n  }\n  if (!hole && area > 0 || hole && area <= 0) {\n    const n = m / 2;\n    for (let i = n + n % 2; i < m; i += 2) {\n      const i1 = m - i - 2;\n      const i2 = m - i - 1;\n      const i3 = i;\n      const i4 = i + 1;\n      [points[i1], points[i3]] = [points[i3], points[i1]];\n      [points[i2], points[i4]] = [points[i4], points[i2]];\n    }\n  }\n}\nconst buildPoly = {\n  build(graphicsData) {\n    graphicsData.points = graphicsData.shape.points.slice();\n  },\n  triangulate(graphicsData, graphicsGeometry) {\n    let points = graphicsData.points;\n    const holes = graphicsData.holes;\n    const verts = graphicsGeometry.points;\n    const indices = graphicsGeometry.indices;\n    if (points.length >= 6) {\n      fixOrientation(points, false);\n      const holeArray = [];\n      for (let i = 0; i < holes.length; i++) {\n        const hole = holes[i];\n        fixOrientation(hole.points, true);\n        holeArray.push(points.length / 2);\n        points = points.concat(hole.points);\n      }\n      const triangles = utils.earcut(points, holeArray, 2);\n      if (!triangles) {\n        return;\n      }\n      const vertPos = verts.length / 2;\n      for (let i = 0; i < triangles.length; i += 3) {\n        indices.push(triangles[i] + vertPos);\n        indices.push(triangles[i + 1] + vertPos);\n        indices.push(triangles[i + 2] + vertPos);\n      }\n      for (let i = 0; i < points.length; i++) {\n        verts.push(points[i]);\n      }\n    }\n  }\n};\n\nexport { buildPoly };\n//# sourceMappingURL=buildPoly.mjs.map\n","const buildRectangle = {\n  build(graphicsData) {\n    const rectData = graphicsData.shape;\n    const x = rectData.x;\n    const y = rectData.y;\n    const width = rectData.width;\n    const height = rectData.height;\n    const points = graphicsData.points;\n    points.length = 0;\n    if (!(width >= 0 && height >= 0)) {\n      return;\n    }\n    points.push(x, y, x + width, y, x + width, y + height, x, y + height);\n  },\n  triangulate(graphicsData, graphicsGeometry) {\n    const points = graphicsData.points;\n    const verts = graphicsGeometry.points;\n    if (points.length === 0) {\n      return;\n    }\n    const vertPos = verts.length / 2;\n    verts.push(points[0], points[1], points[2], points[3], points[6], points[7], points[4], points[5]);\n    graphicsGeometry.indices.push(vertPos, vertPos + 1, vertPos + 2, vertPos + 1, vertPos + 2, vertPos + 3);\n  }\n};\n\nexport { buildRectangle };\n//# sourceMappingURL=buildRectangle.mjs.map\n","import { buildCircle } from './buildCircle.mjs';\n\nconst buildRoundedRectangle = {\n  build(graphicsData) {\n    buildCircle.build(graphicsData);\n  },\n  triangulate(graphicsData, graphicsGeometry) {\n    buildCircle.triangulate(graphicsData, graphicsGeometry);\n  }\n};\n\nexport { buildRoundedRectangle };\n//# sourceMappingURL=buildRoundedRectangle.mjs.map\n","var LINE_JOIN = /* @__PURE__ */ ((LINE_JOIN2) => {\n  LINE_JOIN2[\"MITER\"] = \"miter\";\n  LINE_JOIN2[\"BEVEL\"] = \"bevel\";\n  LINE_JOIN2[\"ROUND\"] = \"round\";\n  return LINE_JOIN2;\n})(LINE_JOIN || {});\nvar LINE_CAP = /* @__PURE__ */ ((LINE_CAP2) => {\n  LINE_CAP2[\"BUTT\"] = \"butt\";\n  LINE_CAP2[\"ROUND\"] = \"round\";\n  LINE_CAP2[\"SQUARE\"] = \"square\";\n  return LINE_CAP2;\n})(LINE_CAP || {});\nconst curves = {\n  adaptive: true,\n  maxLength: 10,\n  minSegments: 8,\n  maxSegments: 2048,\n  epsilon: 1e-4,\n  _segmentsCount(length, defaultSegments = 20) {\n    if (!this.adaptive || !length || isNaN(length)) {\n      return defaultSegments;\n    }\n    let result = Math.ceil(length / this.maxLength);\n    if (result < this.minSegments) {\n      result = this.minSegments;\n    } else if (result > this.maxSegments) {\n      result = this.maxSegments;\n    }\n    return result;\n  }\n};\nconst GRAPHICS_CURVES = curves;\n\nexport { GRAPHICS_CURVES, LINE_CAP, LINE_JOIN, curves };\n//# sourceMappingURL=const.mjs.map\n","import { PI_2 } from '@pixi/core';\nimport { curves } from '../const.mjs';\n\nclass ArcUtils {\n  static curveTo(x1, y1, x2, y2, radius, points) {\n    const fromX = points[points.length - 2];\n    const fromY = points[points.length - 1];\n    const a1 = fromY - y1;\n    const b1 = fromX - x1;\n    const a2 = y2 - y1;\n    const b2 = x2 - x1;\n    const mm = Math.abs(a1 * b2 - b1 * a2);\n    if (mm < 1e-8 || radius === 0) {\n      if (points[points.length - 2] !== x1 || points[points.length - 1] !== y1) {\n        points.push(x1, y1);\n      }\n      return null;\n    }\n    const dd = a1 * a1 + b1 * b1;\n    const cc = a2 * a2 + b2 * b2;\n    const tt = a1 * a2 + b1 * b2;\n    const k1 = radius * Math.sqrt(dd) / mm;\n    const k2 = radius * Math.sqrt(cc) / mm;\n    const j1 = k1 * tt / dd;\n    const j2 = k2 * tt / cc;\n    const cx = k1 * b2 + k2 * b1;\n    const cy = k1 * a2 + k2 * a1;\n    const px = b1 * (k2 + j1);\n    const py = a1 * (k2 + j1);\n    const qx = b2 * (k1 + j2);\n    const qy = a2 * (k1 + j2);\n    const startAngle = Math.atan2(py - cy, px - cx);\n    const endAngle = Math.atan2(qy - cy, qx - cx);\n    return {\n      cx: cx + x1,\n      cy: cy + y1,\n      radius,\n      startAngle,\n      endAngle,\n      anticlockwise: b1 * a2 > b2 * a1\n    };\n  }\n  static arc(_startX, _startY, cx, cy, radius, startAngle, endAngle, _anticlockwise, points) {\n    const sweep = endAngle - startAngle;\n    const n = curves._segmentsCount(Math.abs(sweep) * radius, Math.ceil(Math.abs(sweep) / PI_2) * 40);\n    const theta = sweep / (n * 2);\n    const theta2 = theta * 2;\n    const cTheta = Math.cos(theta);\n    const sTheta = Math.sin(theta);\n    const segMinus = n - 1;\n    const remainder = segMinus % 1 / segMinus;\n    for (let i = 0; i <= segMinus; ++i) {\n      const real = i + remainder * i;\n      const angle = theta + startAngle + theta2 * real;\n      const c = Math.cos(angle);\n      const s = -Math.sin(angle);\n      points.push((cTheta * c + sTheta * s) * radius + cx, (cTheta * -s + sTheta * c) * radius + cy);\n    }\n  }\n}\n\nexport { ArcUtils };\n//# sourceMappingURL=ArcUtils.mjs.map\n","class BatchPart {\n  constructor() {\n    this.reset();\n  }\n  begin(style, startIndex, attribStart) {\n    this.reset();\n    this.style = style;\n    this.start = startIndex;\n    this.attribStart = attribStart;\n  }\n  end(endIndex, endAttrib) {\n    this.attribSize = endAttrib - this.attribStart;\n    this.size = endIndex - this.start;\n  }\n  reset() {\n    this.style = null;\n    this.size = 0;\n    this.start = 0;\n    this.attribStart = 0;\n    this.attribSize = 0;\n  }\n}\n\nexport { BatchPart };\n//# sourceMappingURL=BatchPart.mjs.map\n","import { curves } from '../const.mjs';\n\nclass BezierUtils {\n  static curveLength(fromX, fromY, cpX, cpY, cpX2, cpY2, toX, toY) {\n    const n = 10;\n    let result = 0;\n    let t = 0;\n    let t2 = 0;\n    let t3 = 0;\n    let nt = 0;\n    let nt2 = 0;\n    let nt3 = 0;\n    let x = 0;\n    let y = 0;\n    let dx = 0;\n    let dy = 0;\n    let prevX = fromX;\n    let prevY = fromY;\n    for (let i = 1; i <= n; ++i) {\n      t = i / n;\n      t2 = t * t;\n      t3 = t2 * t;\n      nt = 1 - t;\n      nt2 = nt * nt;\n      nt3 = nt2 * nt;\n      x = nt3 * fromX + 3 * nt2 * t * cpX + 3 * nt * t2 * cpX2 + t3 * toX;\n      y = nt3 * fromY + 3 * nt2 * t * cpY + 3 * nt * t2 * cpY2 + t3 * toY;\n      dx = prevX - x;\n      dy = prevY - y;\n      prevX = x;\n      prevY = y;\n      result += Math.sqrt(dx * dx + dy * dy);\n    }\n    return result;\n  }\n  static curveTo(cpX, cpY, cpX2, cpY2, toX, toY, points) {\n    const fromX = points[points.length - 2];\n    const fromY = points[points.length - 1];\n    points.length -= 2;\n    const n = curves._segmentsCount(BezierUtils.curveLength(fromX, fromY, cpX, cpY, cpX2, cpY2, toX, toY));\n    let dt = 0;\n    let dt2 = 0;\n    let dt3 = 0;\n    let t2 = 0;\n    let t3 = 0;\n    points.push(fromX, fromY);\n    for (let i = 1, j = 0; i <= n; ++i) {\n      j = i / n;\n      dt = 1 - j;\n      dt2 = dt * dt;\n      dt3 = dt2 * dt;\n      t2 = j * j;\n      t3 = t2 * j;\n      points.push(dt3 * fromX + 3 * dt2 * j * cpX + 3 * dt * t2 * cpX2 + t3 * toX, dt3 * fromY + 3 * dt2 * j * cpY + 3 * dt * t2 * cpY2 + t3 * toY);\n    }\n  }\n}\n\nexport { BezierUtils };\n//# sourceMappingURL=BezierUtils.mjs.map\n","import { Point, SHAPES } from '@pixi/core';\nimport { LINE_CAP, LINE_JOIN, curves } from '../const.mjs';\n\nfunction square(x, y, nx, ny, innerWeight, outerWeight, clockwise, verts) {\n  const ix = x - nx * innerWeight;\n  const iy = y - ny * innerWeight;\n  const ox = x + nx * outerWeight;\n  const oy = y + ny * outerWeight;\n  let exx;\n  let eyy;\n  if (clockwise) {\n    exx = ny;\n    eyy = -nx;\n  } else {\n    exx = -ny;\n    eyy = nx;\n  }\n  const eix = ix + exx;\n  const eiy = iy + eyy;\n  const eox = ox + exx;\n  const eoy = oy + eyy;\n  verts.push(eix, eiy, eox, eoy);\n  return 2;\n}\nfunction round(cx, cy, sx, sy, ex, ey, verts, clockwise) {\n  const cx2p0x = sx - cx;\n  const cy2p0y = sy - cy;\n  let angle0 = Math.atan2(cx2p0x, cy2p0y);\n  let angle1 = Math.atan2(ex - cx, ey - cy);\n  if (clockwise && angle0 < angle1) {\n    angle0 += Math.PI * 2;\n  } else if (!clockwise && angle0 > angle1) {\n    angle1 += Math.PI * 2;\n  }\n  let startAngle = angle0;\n  const angleDiff = angle1 - angle0;\n  const absAngleDiff = Math.abs(angleDiff);\n  const radius = Math.sqrt(cx2p0x * cx2p0x + cy2p0y * cy2p0y);\n  const segCount = (15 * absAngleDiff * Math.sqrt(radius) / Math.PI >> 0) + 1;\n  const angleInc = angleDiff / segCount;\n  startAngle += angleInc;\n  if (clockwise) {\n    verts.push(cx, cy, sx, sy);\n    for (let i = 1, angle = startAngle; i < segCount; i++, angle += angleInc) {\n      verts.push(cx, cy, cx + Math.sin(angle) * radius, cy + Math.cos(angle) * radius);\n    }\n    verts.push(cx, cy, ex, ey);\n  } else {\n    verts.push(sx, sy, cx, cy);\n    for (let i = 1, angle = startAngle; i < segCount; i++, angle += angleInc) {\n      verts.push(cx + Math.sin(angle) * radius, cy + Math.cos(angle) * radius, cx, cy);\n    }\n    verts.push(ex, ey, cx, cy);\n  }\n  return segCount * 2;\n}\nfunction buildNonNativeLine(graphicsData, graphicsGeometry) {\n  const shape = graphicsData.shape;\n  let points = graphicsData.points || shape.points.slice();\n  const eps = graphicsGeometry.closePointEps;\n  if (points.length === 0) {\n    return;\n  }\n  const style = graphicsData.lineStyle;\n  const firstPoint = new Point(points[0], points[1]);\n  const lastPoint = new Point(points[points.length - 2], points[points.length - 1]);\n  const closedShape = shape.type !== SHAPES.POLY || shape.closeStroke;\n  const closedPath = Math.abs(firstPoint.x - lastPoint.x) < eps && Math.abs(firstPoint.y - lastPoint.y) < eps;\n  if (closedShape) {\n    points = points.slice();\n    if (closedPath) {\n      points.pop();\n      points.pop();\n      lastPoint.set(points[points.length - 2], points[points.length - 1]);\n    }\n    const midPointX = (firstPoint.x + lastPoint.x) * 0.5;\n    const midPointY = (lastPoint.y + firstPoint.y) * 0.5;\n    points.unshift(midPointX, midPointY);\n    points.push(midPointX, midPointY);\n  }\n  const verts = graphicsGeometry.points;\n  const length = points.length / 2;\n  let indexCount = points.length;\n  const indexStart = verts.length / 2;\n  const width = style.width / 2;\n  const widthSquared = width * width;\n  const miterLimitSquared = style.miterLimit * style.miterLimit;\n  let x0 = points[0];\n  let y0 = points[1];\n  let x1 = points[2];\n  let y1 = points[3];\n  let x2 = 0;\n  let y2 = 0;\n  let perpx = -(y0 - y1);\n  let perpy = x0 - x1;\n  let perp1x = 0;\n  let perp1y = 0;\n  let dist = Math.sqrt(perpx * perpx + perpy * perpy);\n  perpx /= dist;\n  perpy /= dist;\n  perpx *= width;\n  perpy *= width;\n  const ratio = style.alignment;\n  const innerWeight = (1 - ratio) * 2;\n  const outerWeight = ratio * 2;\n  if (!closedShape) {\n    if (style.cap === LINE_CAP.ROUND) {\n      indexCount += round(x0 - perpx * (innerWeight - outerWeight) * 0.5, y0 - perpy * (innerWeight - outerWeight) * 0.5, x0 - perpx * innerWeight, y0 - perpy * innerWeight, x0 + perpx * outerWeight, y0 + perpy * outerWeight, verts, true) + 2;\n    } else if (style.cap === LINE_CAP.SQUARE) {\n      indexCount += square(x0, y0, perpx, perpy, innerWeight, outerWeight, true, verts);\n    }\n  }\n  verts.push(x0 - perpx * innerWeight, y0 - perpy * innerWeight, x0 + perpx * outerWeight, y0 + perpy * outerWeight);\n  for (let i = 1; i < length - 1; ++i) {\n    x0 = points[(i - 1) * 2];\n    y0 = points[(i - 1) * 2 + 1];\n    x1 = points[i * 2];\n    y1 = points[i * 2 + 1];\n    x2 = points[(i + 1) * 2];\n    y2 = points[(i + 1) * 2 + 1];\n    perpx = -(y0 - y1);\n    perpy = x0 - x1;\n    dist = Math.sqrt(perpx * perpx + perpy * perpy);\n    perpx /= dist;\n    perpy /= dist;\n    perpx *= width;\n    perpy *= width;\n    perp1x = -(y1 - y2);\n    perp1y = x1 - x2;\n    dist = Math.sqrt(perp1x * perp1x + perp1y * perp1y);\n    perp1x /= dist;\n    perp1y /= dist;\n    perp1x *= width;\n    perp1y *= width;\n    const dx0 = x1 - x0;\n    const dy0 = y0 - y1;\n    const dx1 = x1 - x2;\n    const dy1 = y2 - y1;\n    const dot = dx0 * dx1 + dy0 * dy1;\n    const cross = dy0 * dx1 - dy1 * dx0;\n    const clockwise = cross < 0;\n    if (Math.abs(cross) < 1e-3 * Math.abs(dot)) {\n      verts.push(x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 + perpx * outerWeight, y1 + perpy * outerWeight);\n      if (dot >= 0) {\n        if (style.join === LINE_JOIN.ROUND) {\n          indexCount += round(x1, y1, x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, verts, false) + 4;\n        } else {\n          indexCount += 2;\n        }\n        verts.push(x1 - perp1x * outerWeight, y1 - perp1y * outerWeight, x1 + perp1x * innerWeight, y1 + perp1y * innerWeight);\n      }\n      continue;\n    }\n    const c1 = (-perpx + x0) * (-perpy + y1) - (-perpx + x1) * (-perpy + y0);\n    const c2 = (-perp1x + x2) * (-perp1y + y1) - (-perp1x + x1) * (-perp1y + y2);\n    const px = (dx0 * c2 - dx1 * c1) / cross;\n    const py = (dy1 * c1 - dy0 * c2) / cross;\n    const pdist = (px - x1) * (px - x1) + (py - y1) * (py - y1);\n    const imx = x1 + (px - x1) * innerWeight;\n    const imy = y1 + (py - y1) * innerWeight;\n    const omx = x1 - (px - x1) * outerWeight;\n    const omy = y1 - (py - y1) * outerWeight;\n    const smallerInsideSegmentSq = Math.min(dx0 * dx0 + dy0 * dy0, dx1 * dx1 + dy1 * dy1);\n    const insideWeight = clockwise ? innerWeight : outerWeight;\n    const smallerInsideDiagonalSq = smallerInsideSegmentSq + insideWeight * insideWeight * widthSquared;\n    const insideMiterOk = pdist <= smallerInsideDiagonalSq;\n    let join = style.join;\n    if (join === LINE_JOIN.MITER && pdist / widthSquared > miterLimitSquared) {\n      join = LINE_JOIN.BEVEL;\n    }\n    if (insideMiterOk) {\n      switch (join) {\n        case LINE_JOIN.MITER: {\n          verts.push(imx, imy, omx, omy);\n          break;\n        }\n        case LINE_JOIN.BEVEL: {\n          if (clockwise) {\n            verts.push(imx, imy, x1 + perpx * outerWeight, y1 + perpy * outerWeight, imx, imy, x1 + perp1x * outerWeight, y1 + perp1y * outerWeight);\n          } else {\n            verts.push(x1 - perpx * innerWeight, y1 - perpy * innerWeight, omx, omy, x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, omx, omy);\n          }\n          indexCount += 2;\n          break;\n        }\n        case LINE_JOIN.ROUND: {\n          if (clockwise) {\n            verts.push(imx, imy, x1 + perpx * outerWeight, y1 + perpy * outerWeight);\n            indexCount += round(x1, y1, x1 + perpx * outerWeight, y1 + perpy * outerWeight, x1 + perp1x * outerWeight, y1 + perp1y * outerWeight, verts, true) + 4;\n            verts.push(imx, imy, x1 + perp1x * outerWeight, y1 + perp1y * outerWeight);\n          } else {\n            verts.push(x1 - perpx * innerWeight, y1 - perpy * innerWeight, omx, omy);\n            indexCount += round(x1, y1, x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, verts, false) + 4;\n            verts.push(x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, omx, omy);\n          }\n          break;\n        }\n      }\n    } else {\n      verts.push(x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 + perpx * outerWeight, y1 + perpy * outerWeight);\n      switch (join) {\n        case LINE_JOIN.MITER: {\n          if (clockwise) {\n            verts.push(omx, omy, omx, omy);\n          } else {\n            verts.push(imx, imy, imx, imy);\n          }\n          indexCount += 2;\n          break;\n        }\n        case LINE_JOIN.ROUND: {\n          if (clockwise) {\n            indexCount += round(x1, y1, x1 + perpx * outerWeight, y1 + perpy * outerWeight, x1 + perp1x * outerWeight, y1 + perp1y * outerWeight, verts, true) + 2;\n          } else {\n            indexCount += round(x1, y1, x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, verts, false) + 2;\n          }\n          break;\n        }\n      }\n      verts.push(x1 - perp1x * innerWeight, y1 - perp1y * innerWeight, x1 + perp1x * outerWeight, y1 + perp1y * outerWeight);\n      indexCount += 2;\n    }\n  }\n  x0 = points[(length - 2) * 2];\n  y0 = points[(length - 2) * 2 + 1];\n  x1 = points[(length - 1) * 2];\n  y1 = points[(length - 1) * 2 + 1];\n  perpx = -(y0 - y1);\n  perpy = x0 - x1;\n  dist = Math.sqrt(perpx * perpx + perpy * perpy);\n  perpx /= dist;\n  perpy /= dist;\n  perpx *= width;\n  perpy *= width;\n  verts.push(x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 + perpx * outerWeight, y1 + perpy * outerWeight);\n  if (!closedShape) {\n    if (style.cap === LINE_CAP.ROUND) {\n      indexCount += round(x1 - perpx * (innerWeight - outerWeight) * 0.5, y1 - perpy * (innerWeight - outerWeight) * 0.5, x1 - perpx * innerWeight, y1 - perpy * innerWeight, x1 + perpx * outerWeight, y1 + perpy * outerWeight, verts, false) + 2;\n    } else if (style.cap === LINE_CAP.SQUARE) {\n      indexCount += square(x1, y1, perpx, perpy, innerWeight, outerWeight, false, verts);\n    }\n  }\n  const indices = graphicsGeometry.indices;\n  const eps2 = curves.epsilon * curves.epsilon;\n  for (let i = indexStart; i < indexCount + indexStart - 2; ++i) {\n    x0 = verts[i * 2];\n    y0 = verts[i * 2 + 1];\n    x1 = verts[(i + 1) * 2];\n    y1 = verts[(i + 1) * 2 + 1];\n    x2 = verts[(i + 2) * 2];\n    y2 = verts[(i + 2) * 2 + 1];\n    if (Math.abs(x0 * (y1 - y2) + x1 * (y2 - y0) + x2 * (y0 - y1)) < eps2) {\n      continue;\n    }\n    indices.push(i, i + 1, i + 2);\n  }\n}\nfunction buildNativeLine(graphicsData, graphicsGeometry) {\n  let i = 0;\n  const shape = graphicsData.shape;\n  const points = graphicsData.points || shape.points;\n  const closedShape = shape.type !== SHAPES.POLY || shape.closeStroke;\n  if (points.length === 0)\n    return;\n  const verts = graphicsGeometry.points;\n  const indices = graphicsGeometry.indices;\n  const length = points.length / 2;\n  const startIndex = verts.length / 2;\n  let currentIndex = startIndex;\n  verts.push(points[0], points[1]);\n  for (i = 1; i < length; i++) {\n    verts.push(points[i * 2], points[i * 2 + 1]);\n    indices.push(currentIndex, currentIndex + 1);\n    currentIndex++;\n  }\n  if (closedShape) {\n    indices.push(currentIndex, startIndex);\n  }\n}\nfunction buildLine(graphicsData, graphicsGeometry) {\n  if (graphicsData.lineStyle.native) {\n    buildNativeLine(graphicsData, graphicsGeometry);\n  } else {\n    buildNonNativeLine(graphicsData, graphicsGeometry);\n  }\n}\n\nexport { buildLine };\n//# sourceMappingURL=buildLine.mjs.map\n","import { curves } from '../const.mjs';\n\nclass QuadraticUtils {\n  static curveLength(fromX, fromY, cpX, cpY, toX, toY) {\n    const ax = fromX - 2 * cpX + toX;\n    const ay = fromY - 2 * cpY + toY;\n    const bx = 2 * cpX - 2 * fromX;\n    const by = 2 * cpY - 2 * fromY;\n    const a = 4 * (ax * ax + ay * ay);\n    const b = 4 * (ax * bx + ay * by);\n    const c = bx * bx + by * by;\n    const s = 2 * Math.sqrt(a + b + c);\n    const a2 = Math.sqrt(a);\n    const a32 = 2 * a * a2;\n    const c2 = 2 * Math.sqrt(c);\n    const ba = b / a2;\n    return (a32 * s + a2 * b * (s - c2) + (4 * c * a - b * b) * Math.log((2 * a2 + ba + s) / (ba + c2))) / (4 * a32);\n  }\n  static curveTo(cpX, cpY, toX, toY, points) {\n    const fromX = points[points.length - 2];\n    const fromY = points[points.length - 1];\n    const n = curves._segmentsCount(QuadraticUtils.curveLength(fromX, fromY, cpX, cpY, toX, toY));\n    let xa = 0;\n    let ya = 0;\n    for (let i = 1; i <= n; ++i) {\n      const j = i / n;\n      xa = fromX + (cpX - fromX) * j;\n      ya = fromY + (cpY - fromY) * j;\n      points.push(xa + (cpX + (toX - cpX) * j - xa) * j, ya + (cpY + (toY - cpY) * j - ya) * j);\n    }\n  }\n}\n\nexport { QuadraticUtils };\n//# sourceMappingURL=QuadraticUtils.mjs.map\n","import { SHAPES } from '@pixi/core';\nimport { buildCircle } from './buildCircle.mjs';\nexport { buildCircle } from './buildCircle.mjs';\nimport { buildPoly } from './buildPoly.mjs';\nexport { buildPoly } from './buildPoly.mjs';\nimport { buildRectangle } from './buildRectangle.mjs';\nexport { buildRectangle } from './buildRectangle.mjs';\nimport { buildRoundedRectangle } from './buildRoundedRectangle.mjs';\nexport { buildRoundedRectangle } from './buildRoundedRectangle.mjs';\nexport { ArcUtils } from './ArcUtils.mjs';\nexport { BatchPart } from './BatchPart.mjs';\nexport { BezierUtils } from './BezierUtils.mjs';\nexport { buildLine } from './buildLine.mjs';\nexport { QuadraticUtils } from './QuadraticUtils.mjs';\n\nconst FILL_COMMANDS = {\n  [SHAPES.POLY]: buildPoly,\n  [SHAPES.CIRC]: buildCircle,\n  [SHAPES.ELIP]: buildCircle,\n  [SHAPES.RECT]: buildRectangle,\n  [SHAPES.RREC]: buildRoundedRectangle\n};\nconst BATCH_POOL = [];\nconst DRAW_CALL_POOL = [];\n\nexport { BATCH_POOL, DRAW_CALL_POOL, FILL_COMMANDS };\n//# sourceMappingURL=index.mjs.map\n","class GraphicsData {\n  constructor(shape, fillStyle = null, lineStyle = null, matrix = null) {\n    this.points = [];\n    this.holes = [];\n    this.shape = shape;\n    this.lineStyle = lineStyle;\n    this.fillStyle = fillStyle;\n    this.matrix = matrix;\n    this.type = shape.type;\n  }\n  clone() {\n    return new GraphicsData(this.shape, this.fillStyle, this.lineStyle, this.matrix);\n  }\n  destroy() {\n    this.shape = null;\n    this.holes.length = 0;\n    this.holes = null;\n    this.points.length = 0;\n    this.points = null;\n    this.lineStyle = null;\n    this.fillStyle = null;\n  }\n}\n\nexport { GraphicsData };\n//# sourceMappingURL=GraphicsData.mjs.map\n","import { Point, BatchGeometry, WRAP_MODES, BaseTexture, BatchDrawCall, BatchTextureArray, DRAW_MODES, utils } from '@pixi/core';\nimport { Bounds } from '@pixi/display';\nimport { GraphicsData } from './GraphicsData.mjs';\nimport { DRAW_CALL_POOL, BATCH_POOL, FILL_COMMANDS } from './utils/index.mjs';\nimport { BatchPart } from './utils/BatchPart.mjs';\nimport { buildPoly } from './utils/buildPoly.mjs';\nimport { buildLine } from './utils/buildLine.mjs';\n\nconst tmpPoint = new Point();\nconst _GraphicsGeometry = class extends BatchGeometry {\n  constructor() {\n    super();\n    this.closePointEps = 1e-4;\n    this.boundsPadding = 0;\n    this.uvsFloat32 = null;\n    this.indicesUint16 = null;\n    this.batchable = false;\n    this.points = [];\n    this.colors = [];\n    this.uvs = [];\n    this.indices = [];\n    this.textureIds = [];\n    this.graphicsData = [];\n    this.drawCalls = [];\n    this.batchDirty = -1;\n    this.batches = [];\n    this.dirty = 0;\n    this.cacheDirty = -1;\n    this.clearDirty = 0;\n    this.shapeIndex = 0;\n    this._bounds = new Bounds();\n    this.boundsDirty = -1;\n  }\n  get bounds() {\n    this.updateBatches();\n    if (this.boundsDirty !== this.dirty) {\n      this.boundsDirty = this.dirty;\n      this.calculateBounds();\n    }\n    return this._bounds;\n  }\n  invalidate() {\n    this.boundsDirty = -1;\n    this.dirty++;\n    this.batchDirty++;\n    this.shapeIndex = 0;\n    this.points.length = 0;\n    this.colors.length = 0;\n    this.uvs.length = 0;\n    this.indices.length = 0;\n    this.textureIds.length = 0;\n    for (let i = 0; i < this.drawCalls.length; i++) {\n      this.drawCalls[i].texArray.clear();\n      DRAW_CALL_POOL.push(this.drawCalls[i]);\n    }\n    this.drawCalls.length = 0;\n    for (let i = 0; i < this.batches.length; i++) {\n      const batchPart = this.batches[i];\n      batchPart.reset();\n      BATCH_POOL.push(batchPart);\n    }\n    this.batches.length = 0;\n  }\n  clear() {\n    if (this.graphicsData.length > 0) {\n      this.invalidate();\n      this.clearDirty++;\n      this.graphicsData.length = 0;\n    }\n    return this;\n  }\n  drawShape(shape, fillStyle = null, lineStyle = null, matrix = null) {\n    const data = new GraphicsData(shape, fillStyle, lineStyle, matrix);\n    this.graphicsData.push(data);\n    this.dirty++;\n    return this;\n  }\n  drawHole(shape, matrix = null) {\n    if (!this.graphicsData.length) {\n      return null;\n    }\n    const data = new GraphicsData(shape, null, null, matrix);\n    const lastShape = this.graphicsData[this.graphicsData.length - 1];\n    data.lineStyle = lastShape.lineStyle;\n    lastShape.holes.push(data);\n    this.dirty++;\n    return this;\n  }\n  destroy() {\n    super.destroy();\n    for (let i = 0; i < this.graphicsData.length; ++i) {\n      this.graphicsData[i].destroy();\n    }\n    this.points.length = 0;\n    this.points = null;\n    this.colors.length = 0;\n    this.colors = null;\n    this.uvs.length = 0;\n    this.uvs = null;\n    this.indices.length = 0;\n    this.indices = null;\n    this.indexBuffer.destroy();\n    this.indexBuffer = null;\n    this.graphicsData.length = 0;\n    this.graphicsData = null;\n    this.drawCalls.length = 0;\n    this.drawCalls = null;\n    this.batches.length = 0;\n    this.batches = null;\n    this._bounds = null;\n  }\n  containsPoint(point) {\n    const graphicsData = this.graphicsData;\n    for (let i = 0; i < graphicsData.length; ++i) {\n      const data = graphicsData[i];\n      if (!data.fillStyle.visible) {\n        continue;\n      }\n      if (data.shape) {\n        if (data.matrix) {\n          data.matrix.applyInverse(point, tmpPoint);\n        } else {\n          tmpPoint.copyFrom(point);\n        }\n        if (data.shape.contains(tmpPoint.x, tmpPoint.y)) {\n          let hitHole = false;\n          if (data.holes) {\n            for (let i2 = 0; i2 < data.holes.length; i2++) {\n              const hole = data.holes[i2];\n              if (hole.shape.contains(tmpPoint.x, tmpPoint.y)) {\n                hitHole = true;\n                break;\n              }\n            }\n          }\n          if (!hitHole) {\n            return true;\n          }\n        }\n      }\n    }\n    return false;\n  }\n  updateBatches() {\n    if (!this.graphicsData.length) {\n      this.batchable = true;\n      return;\n    }\n    if (!this.validateBatching()) {\n      return;\n    }\n    this.cacheDirty = this.dirty;\n    const uvs = this.uvs;\n    const graphicsData = this.graphicsData;\n    let batchPart = null;\n    let currentStyle = null;\n    if (this.batches.length > 0) {\n      batchPart = this.batches[this.batches.length - 1];\n      currentStyle = batchPart.style;\n    }\n    for (let i = this.shapeIndex; i < graphicsData.length; i++) {\n      this.shapeIndex++;\n      const data = graphicsData[i];\n      const fillStyle = data.fillStyle;\n      const lineStyle = data.lineStyle;\n      const command = FILL_COMMANDS[data.type];\n      command.build(data);\n      if (data.matrix) {\n        this.transformPoints(data.points, data.matrix);\n      }\n      if (fillStyle.visible || lineStyle.visible) {\n        this.processHoles(data.holes);\n      }\n      for (let j = 0; j < 2; j++) {\n        const style = j === 0 ? fillStyle : lineStyle;\n        if (!style.visible)\n          continue;\n        const nextTexture = style.texture.baseTexture;\n        const index2 = this.indices.length;\n        const attribIndex = this.points.length / 2;\n        nextTexture.wrapMode = WRAP_MODES.REPEAT;\n        if (j === 0) {\n          this.processFill(data);\n        } else {\n          this.processLine(data);\n        }\n        const size = this.points.length / 2 - attribIndex;\n        if (size === 0)\n          continue;\n        if (batchPart && !this._compareStyles(currentStyle, style)) {\n          batchPart.end(index2, attribIndex);\n          batchPart = null;\n        }\n        if (!batchPart) {\n          batchPart = BATCH_POOL.pop() || new BatchPart();\n          batchPart.begin(style, index2, attribIndex);\n          this.batches.push(batchPart);\n          currentStyle = style;\n        }\n        this.addUvs(this.points, uvs, style.texture, attribIndex, size, style.matrix);\n      }\n    }\n    const index = this.indices.length;\n    const attrib = this.points.length / 2;\n    if (batchPart) {\n      batchPart.end(index, attrib);\n    }\n    if (this.batches.length === 0) {\n      this.batchable = true;\n      return;\n    }\n    const need32 = attrib > 65535;\n    if (this.indicesUint16 && this.indices.length === this.indicesUint16.length && need32 === this.indicesUint16.BYTES_PER_ELEMENT > 2) {\n      this.indicesUint16.set(this.indices);\n    } else {\n      this.indicesUint16 = need32 ? new Uint32Array(this.indices) : new Uint16Array(this.indices);\n    }\n    this.batchable = this.isBatchable();\n    if (this.batchable) {\n      this.packBatches();\n    } else {\n      this.buildDrawCalls();\n    }\n  }\n  _compareStyles(styleA, styleB) {\n    if (!styleA || !styleB) {\n      return false;\n    }\n    if (styleA.texture.baseTexture !== styleB.texture.baseTexture) {\n      return false;\n    }\n    if (styleA.color + styleA.alpha !== styleB.color + styleB.alpha) {\n      return false;\n    }\n    if (!!styleA.native !== !!styleB.native) {\n      return false;\n    }\n    return true;\n  }\n  validateBatching() {\n    if (this.dirty === this.cacheDirty || !this.graphicsData.length) {\n      return false;\n    }\n    for (let i = 0, l = this.graphicsData.length; i < l; i++) {\n      const data = this.graphicsData[i];\n      const fill = data.fillStyle;\n      const line = data.lineStyle;\n      if (fill && !fill.texture.baseTexture.valid)\n        return false;\n      if (line && !line.texture.baseTexture.valid)\n        return false;\n    }\n    return true;\n  }\n  packBatches() {\n    this.batchDirty++;\n    this.uvsFloat32 = new Float32Array(this.uvs);\n    const batches = this.batches;\n    for (let i = 0, l = batches.length; i < l; i++) {\n      const batch = batches[i];\n      for (let j = 0; j < batch.size; j++) {\n        const index = batch.start + j;\n        this.indicesUint16[index] = this.indicesUint16[index] - batch.attribStart;\n      }\n    }\n  }\n  isBatchable() {\n    if (this.points.length > 65535 * 2) {\n      return false;\n    }\n    const batches = this.batches;\n    for (let i = 0; i < batches.length; i++) {\n      if (batches[i].style.native) {\n        return false;\n      }\n    }\n    return this.points.length < _GraphicsGeometry.BATCHABLE_SIZE * 2;\n  }\n  buildDrawCalls() {\n    let TICK = ++BaseTexture._globalBatch;\n    for (let i = 0; i < this.drawCalls.length; i++) {\n      this.drawCalls[i].texArray.clear();\n      DRAW_CALL_POOL.push(this.drawCalls[i]);\n    }\n    this.drawCalls.length = 0;\n    const colors = this.colors;\n    const textureIds = this.textureIds;\n    let currentGroup = DRAW_CALL_POOL.pop();\n    if (!currentGroup) {\n      currentGroup = new BatchDrawCall();\n      currentGroup.texArray = new BatchTextureArray();\n    }\n    currentGroup.texArray.count = 0;\n    currentGroup.start = 0;\n    currentGroup.size = 0;\n    currentGroup.type = DRAW_MODES.TRIANGLES;\n    let textureCount = 0;\n    let currentTexture = null;\n    let textureId = 0;\n    let native = false;\n    let drawMode = DRAW_MODES.TRIANGLES;\n    let index = 0;\n    this.drawCalls.push(currentGroup);\n    for (let i = 0; i < this.batches.length; i++) {\n      const data = this.batches[i];\n      const maxTextures = 8;\n      const style = data.style;\n      const nextTexture = style.texture.baseTexture;\n      if (native !== !!style.native) {\n        native = !!style.native;\n        drawMode = native ? DRAW_MODES.LINES : DRAW_MODES.TRIANGLES;\n        currentTexture = null;\n        textureCount = maxTextures;\n        TICK++;\n      }\n      if (currentTexture !== nextTexture) {\n        currentTexture = nextTexture;\n        if (nextTexture._batchEnabled !== TICK) {\n          if (textureCount === maxTextures) {\n            TICK++;\n            textureCount = 0;\n            if (currentGroup.size > 0) {\n              currentGroup = DRAW_CALL_POOL.pop();\n              if (!currentGroup) {\n                currentGroup = new BatchDrawCall();\n                currentGroup.texArray = new BatchTextureArray();\n              }\n              this.drawCalls.push(currentGroup);\n            }\n            currentGroup.start = index;\n            currentGroup.size = 0;\n            currentGroup.texArray.count = 0;\n            currentGroup.type = drawMode;\n          }\n          nextTexture.touched = 1;\n          nextTexture._batchEnabled = TICK;\n          nextTexture._batchLocation = textureCount;\n          nextTexture.wrapMode = WRAP_MODES.REPEAT;\n          currentGroup.texArray.elements[currentGroup.texArray.count++] = nextTexture;\n          textureCount++;\n        }\n      }\n      currentGroup.size += data.size;\n      index += data.size;\n      textureId = nextTexture._batchLocation;\n      this.addColors(colors, style.color, style.alpha, data.attribSize, data.attribStart);\n      this.addTextureIds(textureIds, textureId, data.attribSize, data.attribStart);\n    }\n    BaseTexture._globalBatch = TICK;\n    this.packAttributes();\n  }\n  packAttributes() {\n    const verts = this.points;\n    const uvs = this.uvs;\n    const colors = this.colors;\n    const textureIds = this.textureIds;\n    const glPoints = new ArrayBuffer(verts.length * 3 * 4);\n    const f32 = new Float32Array(glPoints);\n    const u32 = new Uint32Array(glPoints);\n    let p = 0;\n    for (let i = 0; i < verts.length / 2; i++) {\n      f32[p++] = verts[i * 2];\n      f32[p++] = verts[i * 2 + 1];\n      f32[p++] = uvs[i * 2];\n      f32[p++] = uvs[i * 2 + 1];\n      u32[p++] = colors[i];\n      f32[p++] = textureIds[i];\n    }\n    this._buffer.update(glPoints);\n    this._indexBuffer.update(this.indicesUint16);\n  }\n  processFill(data) {\n    if (data.holes.length) {\n      buildPoly.triangulate(data, this);\n    } else {\n      const command = FILL_COMMANDS[data.type];\n      command.triangulate(data, this);\n    }\n  }\n  processLine(data) {\n    buildLine(data, this);\n    for (let i = 0; i < data.holes.length; i++) {\n      buildLine(data.holes[i], this);\n    }\n  }\n  processHoles(holes) {\n    for (let i = 0; i < holes.length; i++) {\n      const hole = holes[i];\n      const command = FILL_COMMANDS[hole.type];\n      command.build(hole);\n      if (hole.matrix) {\n        this.transformPoints(hole.points, hole.matrix);\n      }\n    }\n  }\n  calculateBounds() {\n    const bounds = this._bounds;\n    bounds.clear();\n    bounds.addVertexData(this.points, 0, this.points.length);\n    bounds.pad(this.boundsPadding, this.boundsPadding);\n  }\n  transformPoints(points, matrix) {\n    for (let i = 0; i < points.length / 2; i++) {\n      const x = points[i * 2];\n      const y = points[i * 2 + 1];\n      points[i * 2] = matrix.a * x + matrix.c * y + matrix.tx;\n      points[i * 2 + 1] = matrix.b * x + matrix.d * y + matrix.ty;\n    }\n  }\n  addColors(colors, color, alpha, size, offset = 0) {\n    const rgb = (color >> 16) + (color & 65280) + ((color & 255) << 16);\n    const rgba = utils.premultiplyTint(rgb, alpha);\n    colors.length = Math.max(colors.length, offset + size);\n    for (let i = 0; i < size; i++) {\n      colors[offset + i] = rgba;\n    }\n  }\n  addTextureIds(textureIds, id, size, offset = 0) {\n    textureIds.length = Math.max(textureIds.length, offset + size);\n    for (let i = 0; i < size; i++) {\n      textureIds[offset + i] = id;\n    }\n  }\n  addUvs(verts, uvs, texture, start, size, matrix = null) {\n    let index = 0;\n    const uvsStart = uvs.length;\n    const frame = texture.frame;\n    while (index < size) {\n      let x = verts[(start + index) * 2];\n      let y = verts[(start + index) * 2 + 1];\n      if (matrix) {\n        const nx = matrix.a * x + matrix.c * y + matrix.tx;\n        y = matrix.b * x + matrix.d * y + matrix.ty;\n        x = nx;\n      }\n      index++;\n      uvs.push(x / frame.width, y / frame.height);\n    }\n    const baseTexture = texture.baseTexture;\n    if (frame.width < baseTexture.width || frame.height < baseTexture.height) {\n      this.adjustUvs(uvs, texture, uvsStart, size);\n    }\n  }\n  adjustUvs(uvs, texture, start, size) {\n    const baseTexture = texture.baseTexture;\n    const eps = 1e-6;\n    const finish = start + size * 2;\n    const frame = texture.frame;\n    const scaleX = frame.width / baseTexture.width;\n    const scaleY = frame.height / baseTexture.height;\n    let offsetX = frame.x / frame.width;\n    let offsetY = frame.y / frame.height;\n    let minX = Math.floor(uvs[start] + eps);\n    let minY = Math.floor(uvs[start + 1] + eps);\n    for (let i = start + 2; i < finish; i += 2) {\n      minX = Math.min(minX, Math.floor(uvs[i] + eps));\n      minY = Math.min(minY, Math.floor(uvs[i + 1] + eps));\n    }\n    offsetX -= minX;\n    offsetY -= minY;\n    for (let i = start; i < finish; i += 2) {\n      uvs[i] = (uvs[i] + offsetX) * scaleX;\n      uvs[i + 1] = (uvs[i + 1] + offsetY) * scaleY;\n    }\n  }\n};\nlet GraphicsGeometry = _GraphicsGeometry;\nGraphicsGeometry.BATCHABLE_SIZE = 100;\n\nexport { GraphicsGeometry };\n//# sourceMappingURL=GraphicsGeometry.mjs.map\n","import { Texture } from '@pixi/core';\n\nclass FillStyle {\n  constructor() {\n    this.color = 16777215;\n    this.alpha = 1;\n    this.texture = Texture.WHITE;\n    this.matrix = null;\n    this.visible = false;\n    this.reset();\n  }\n  clone() {\n    const obj = new FillStyle();\n    obj.color = this.color;\n    obj.alpha = this.alpha;\n    obj.texture = this.texture;\n    obj.matrix = this.matrix;\n    obj.visible = this.visible;\n    return obj;\n  }\n  reset() {\n    this.color = 16777215;\n    this.alpha = 1;\n    this.texture = Texture.WHITE;\n    this.matrix = null;\n    this.visible = false;\n  }\n  destroy() {\n    this.texture = null;\n    this.matrix = null;\n  }\n}\n\nexport { FillStyle };\n//# sourceMappingURL=FillStyle.mjs.map\n","import { LINE_CAP, LINE_JOIN } from '../const.mjs';\nimport { FillStyle } from './FillStyle.mjs';\n\nclass LineStyle extends FillStyle {\n  constructor() {\n    super(...arguments);\n    this.width = 0;\n    this.alignment = 0.5;\n    this.native = false;\n    this.cap = LINE_CAP.BUTT;\n    this.join = LINE_JOIN.MITER;\n    this.miterLimit = 10;\n  }\n  clone() {\n    const obj = new LineStyle();\n    obj.color = this.color;\n    obj.alpha = this.alpha;\n    obj.texture = this.texture;\n    obj.matrix = this.matrix;\n    obj.visible = this.visible;\n    obj.width = this.width;\n    obj.alignment = this.alignment;\n    obj.native = this.native;\n    obj.cap = this.cap;\n    obj.join = this.join;\n    obj.miterLimit = this.miterLimit;\n    return obj;\n  }\n  reset() {\n    super.reset();\n    this.color = 0;\n    this.alignment = 0.5;\n    this.width = 0;\n    this.native = false;\n  }\n}\n\nexport { LineStyle };\n//# sourceMappingURL=LineStyle.mjs.map\n","import { State, BLEND_MODES, Texture, Polygon, PI_2, Rectangle, RoundedRectangle, Circle, Ellipse, SHAPES, utils, Matrix, UniformGroup, Shader, Point } from '@pixi/core';\nimport { Container } from '@pixi/display';\nimport { LINE_CAP, LINE_JOIN, curves } from './const.mjs';\nimport { GraphicsGeometry } from './GraphicsGeometry.mjs';\nimport { FillStyle } from './styles/FillStyle.mjs';\nimport { LineStyle } from './styles/LineStyle.mjs';\nimport './utils/index.mjs';\nimport { QuadraticUtils } from './utils/QuadraticUtils.mjs';\nimport { BezierUtils } from './utils/BezierUtils.mjs';\nimport { ArcUtils } from './utils/ArcUtils.mjs';\n\nconst temp = new Float32Array(3);\nconst DEFAULT_SHADERS = {};\nconst _Graphics = class extends Container {\n  constructor(geometry = null) {\n    super();\n    this.shader = null;\n    this.pluginName = \"batch\";\n    this.currentPath = null;\n    this.batches = [];\n    this.batchTint = -1;\n    this.batchDirty = -1;\n    this.vertexData = null;\n    this._fillStyle = new FillStyle();\n    this._lineStyle = new LineStyle();\n    this._matrix = null;\n    this._holeMode = false;\n    this.state = State.for2d();\n    this._geometry = geometry || new GraphicsGeometry();\n    this._geometry.refCount++;\n    this._transformID = -1;\n    this.tint = 16777215;\n    this.blendMode = BLEND_MODES.NORMAL;\n  }\n  get geometry() {\n    return this._geometry;\n  }\n  clone() {\n    this.finishPoly();\n    return new _Graphics(this._geometry);\n  }\n  set blendMode(value) {\n    this.state.blendMode = value;\n  }\n  get blendMode() {\n    return this.state.blendMode;\n  }\n  get tint() {\n    return this._tint;\n  }\n  set tint(value) {\n    this._tint = value;\n  }\n  get fill() {\n    return this._fillStyle;\n  }\n  get line() {\n    return this._lineStyle;\n  }\n  lineStyle(options = null, color = 0, alpha = 1, alignment = 0.5, native = false) {\n    if (typeof options === \"number\") {\n      options = { width: options, color, alpha, alignment, native };\n    }\n    return this.lineTextureStyle(options);\n  }\n  lineTextureStyle(options) {\n    options = Object.assign({\n      width: 0,\n      texture: Texture.WHITE,\n      color: options?.texture ? 16777215 : 0,\n      alpha: 1,\n      matrix: null,\n      alignment: 0.5,\n      native: false,\n      cap: LINE_CAP.BUTT,\n      join: LINE_JOIN.MITER,\n      miterLimit: 10\n    }, options);\n    if (this.currentPath) {\n      this.startPoly();\n    }\n    const visible = options.width > 0 && options.alpha > 0;\n    if (!visible) {\n      this._lineStyle.reset();\n    } else {\n      if (options.matrix) {\n        options.matrix = options.matrix.clone();\n        options.matrix.invert();\n      }\n      Object.assign(this._lineStyle, { visible }, options);\n    }\n    return this;\n  }\n  startPoly() {\n    if (this.currentPath) {\n      const points = this.currentPath.points;\n      const len = this.currentPath.points.length;\n      if (len > 2) {\n        this.drawShape(this.currentPath);\n        this.currentPath = new Polygon();\n        this.currentPath.closeStroke = false;\n        this.currentPath.points.push(points[len - 2], points[len - 1]);\n      }\n    } else {\n      this.currentPath = new Polygon();\n      this.currentPath.closeStroke = false;\n    }\n  }\n  finishPoly() {\n    if (this.currentPath) {\n      if (this.currentPath.points.length > 2) {\n        this.drawShape(this.currentPath);\n        this.currentPath = null;\n      } else {\n        this.currentPath.points.length = 0;\n      }\n    }\n  }\n  moveTo(x, y) {\n    this.startPoly();\n    this.currentPath.points[0] = x;\n    this.currentPath.points[1] = y;\n    return this;\n  }\n  lineTo(x, y) {\n    if (!this.currentPath) {\n      this.moveTo(0, 0);\n    }\n    const points = this.currentPath.points;\n    const fromX = points[points.length - 2];\n    const fromY = points[points.length - 1];\n    if (fromX !== x || fromY !== y) {\n      points.push(x, y);\n    }\n    return this;\n  }\n  _initCurve(x = 0, y = 0) {\n    if (this.currentPath) {\n      if (this.currentPath.points.length === 0) {\n        this.currentPath.points = [x, y];\n      }\n    } else {\n      this.moveTo(x, y);\n    }\n  }\n  quadraticCurveTo(cpX, cpY, toX, toY) {\n    this._initCurve();\n    const points = this.currentPath.points;\n    if (points.length === 0) {\n      this.moveTo(0, 0);\n    }\n    QuadraticUtils.curveTo(cpX, cpY, toX, toY, points);\n    return this;\n  }\n  bezierCurveTo(cpX, cpY, cpX2, cpY2, toX, toY) {\n    this._initCurve();\n    BezierUtils.curveTo(cpX, cpY, cpX2, cpY2, toX, toY, this.currentPath.points);\n    return this;\n  }\n  arcTo(x1, y1, x2, y2, radius) {\n    this._initCurve(x1, y1);\n    const points = this.currentPath.points;\n    const result = ArcUtils.curveTo(x1, y1, x2, y2, radius, points);\n    if (result) {\n      const { cx, cy, radius: radius2, startAngle, endAngle, anticlockwise } = result;\n      this.arc(cx, cy, radius2, startAngle, endAngle, anticlockwise);\n    }\n    return this;\n  }\n  arc(cx, cy, radius, startAngle, endAngle, anticlockwise = false) {\n    if (startAngle === endAngle) {\n      return this;\n    }\n    if (!anticlockwise && endAngle <= startAngle) {\n      endAngle += PI_2;\n    } else if (anticlockwise && startAngle <= endAngle) {\n      startAngle += PI_2;\n    }\n    const sweep = endAngle - startAngle;\n    if (sweep === 0) {\n      return this;\n    }\n    const startX = cx + Math.cos(startAngle) * radius;\n    const startY = cy + Math.sin(startAngle) * radius;\n    const eps = this._geometry.closePointEps;\n    let points = this.currentPath ? this.currentPath.points : null;\n    if (points) {\n      const xDiff = Math.abs(points[points.length - 2] - startX);\n      const yDiff = Math.abs(points[points.length - 1] - startY);\n      if (xDiff < eps && yDiff < eps) {\n      } else {\n        points.push(startX, startY);\n      }\n    } else {\n      this.moveTo(startX, startY);\n      points = this.currentPath.points;\n    }\n    ArcUtils.arc(startX, startY, cx, cy, radius, startAngle, endAngle, anticlockwise, points);\n    return this;\n  }\n  beginFill(color = 0, alpha = 1) {\n    return this.beginTextureFill({ texture: Texture.WHITE, color, alpha });\n  }\n  beginTextureFill(options) {\n    options = Object.assign({\n      texture: Texture.WHITE,\n      color: 16777215,\n      alpha: 1,\n      matrix: null\n    }, options);\n    if (this.currentPath) {\n      this.startPoly();\n    }\n    const visible = options.alpha > 0;\n    if (!visible) {\n      this._fillStyle.reset();\n    } else {\n      if (options.matrix) {\n        options.matrix = options.matrix.clone();\n        options.matrix.invert();\n      }\n      Object.assign(this._fillStyle, { visible }, options);\n    }\n    return this;\n  }\n  endFill() {\n    this.finishPoly();\n    this._fillStyle.reset();\n    return this;\n  }\n  drawRect(x, y, width, height) {\n    return this.drawShape(new Rectangle(x, y, width, height));\n  }\n  drawRoundedRect(x, y, width, height, radius) {\n    return this.drawShape(new RoundedRectangle(x, y, width, height, radius));\n  }\n  drawCircle(x, y, radius) {\n    return this.drawShape(new Circle(x, y, radius));\n  }\n  drawEllipse(x, y, width, height) {\n    return this.drawShape(new Ellipse(x, y, width, height));\n  }\n  drawPolygon(...path) {\n    let points;\n    let closeStroke = true;\n    const poly = path[0];\n    if (poly.points) {\n      closeStroke = poly.closeStroke;\n      points = poly.points;\n    } else if (Array.isArray(path[0])) {\n      points = path[0];\n    } else {\n      points = path;\n    }\n    const shape = new Polygon(points);\n    shape.closeStroke = closeStroke;\n    this.drawShape(shape);\n    return this;\n  }\n  drawShape(shape) {\n    if (!this._holeMode) {\n      this._geometry.drawShape(shape, this._fillStyle.clone(), this._lineStyle.clone(), this._matrix);\n    } else {\n      this._geometry.drawHole(shape, this._matrix);\n    }\n    return this;\n  }\n  clear() {\n    this._geometry.clear();\n    this._lineStyle.reset();\n    this._fillStyle.reset();\n    this._boundsID++;\n    this._matrix = null;\n    this._holeMode = false;\n    this.currentPath = null;\n    return this;\n  }\n  isFastRect() {\n    const data = this._geometry.graphicsData;\n    return data.length === 1 && data[0].shape.type === SHAPES.RECT && !data[0].matrix && !data[0].holes.length && !(data[0].lineStyle.visible && data[0].lineStyle.width);\n  }\n  _render(renderer) {\n    this.finishPoly();\n    const geometry = this._geometry;\n    geometry.updateBatches();\n    if (geometry.batchable) {\n      if (this.batchDirty !== geometry.batchDirty) {\n        this._populateBatches();\n      }\n      this._renderBatched(renderer);\n    } else {\n      renderer.batch.flush();\n      this._renderDirect(renderer);\n    }\n  }\n  _populateBatches() {\n    const geometry = this._geometry;\n    const blendMode = this.blendMode;\n    const len = geometry.batches.length;\n    this.batchTint = -1;\n    this._transformID = -1;\n    this.batchDirty = geometry.batchDirty;\n    this.batches.length = len;\n    this.vertexData = new Float32Array(geometry.points);\n    for (let i = 0; i < len; i++) {\n      const gI = geometry.batches[i];\n      const color = gI.style.color;\n      const vertexData = new Float32Array(this.vertexData.buffer, gI.attribStart * 4 * 2, gI.attribSize * 2);\n      const uvs = new Float32Array(geometry.uvsFloat32.buffer, gI.attribStart * 4 * 2, gI.attribSize * 2);\n      const indices = new Uint16Array(geometry.indicesUint16.buffer, gI.start * 2, gI.size);\n      const batch = {\n        vertexData,\n        blendMode,\n        indices,\n        uvs,\n        _batchRGB: utils.hex2rgb(color),\n        _tintRGB: color,\n        _texture: gI.style.texture,\n        alpha: gI.style.alpha,\n        worldAlpha: 1\n      };\n      this.batches[i] = batch;\n    }\n  }\n  _renderBatched(renderer) {\n    if (!this.batches.length) {\n      return;\n    }\n    renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]);\n    this.calculateVertices();\n    this.calculateTints();\n    for (let i = 0, l = this.batches.length; i < l; i++) {\n      const batch = this.batches[i];\n      batch.worldAlpha = this.worldAlpha * batch.alpha;\n      renderer.plugins[this.pluginName].render(batch);\n    }\n  }\n  _renderDirect(renderer) {\n    const shader = this._resolveDirectShader(renderer);\n    const geometry = this._geometry;\n    const tint = this.tint;\n    const worldAlpha = this.worldAlpha;\n    const uniforms = shader.uniforms;\n    const drawCalls = geometry.drawCalls;\n    uniforms.translationMatrix = this.transform.worldTransform;\n    uniforms.tint[0] = (tint >> 16 & 255) / 255 * worldAlpha;\n    uniforms.tint[1] = (tint >> 8 & 255) / 255 * worldAlpha;\n    uniforms.tint[2] = (tint & 255) / 255 * worldAlpha;\n    uniforms.tint[3] = worldAlpha;\n    renderer.shader.bind(shader);\n    renderer.geometry.bind(geometry, shader);\n    renderer.state.set(this.state);\n    for (let i = 0, l = drawCalls.length; i < l; i++) {\n      this._renderDrawCallDirect(renderer, geometry.drawCalls[i]);\n    }\n  }\n  _renderDrawCallDirect(renderer, drawCall) {\n    const { texArray, type, size, start } = drawCall;\n    const groupTextureCount = texArray.count;\n    for (let j = 0; j < groupTextureCount; j++) {\n      renderer.texture.bind(texArray.elements[j], j);\n    }\n    renderer.geometry.draw(type, size, start);\n  }\n  _resolveDirectShader(renderer) {\n    let shader = this.shader;\n    const pluginName = this.pluginName;\n    if (!shader) {\n      if (!DEFAULT_SHADERS[pluginName]) {\n        const { maxTextures } = renderer.plugins[pluginName];\n        const sampleValues = new Int32Array(maxTextures);\n        for (let i = 0; i < maxTextures; i++) {\n          sampleValues[i] = i;\n        }\n        const uniforms = {\n          tint: new Float32Array([1, 1, 1, 1]),\n          translationMatrix: new Matrix(),\n          default: UniformGroup.from({ uSamplers: sampleValues }, true)\n        };\n        const program = renderer.plugins[pluginName]._shader.program;\n        DEFAULT_SHADERS[pluginName] = new Shader(program, uniforms);\n      }\n      shader = DEFAULT_SHADERS[pluginName];\n    }\n    return shader;\n  }\n  _calculateBounds() {\n    this.finishPoly();\n    const geometry = this._geometry;\n    if (!geometry.graphicsData.length) {\n      return;\n    }\n    const { minX, minY, maxX, maxY } = geometry.bounds;\n    this._bounds.addFrame(this.transform, minX, minY, maxX, maxY);\n  }\n  containsPoint(point) {\n    this.worldTransform.applyInverse(point, _Graphics._TEMP_POINT);\n    return this._geometry.containsPoint(_Graphics._TEMP_POINT);\n  }\n  calculateTints() {\n    if (this.batchTint !== this.tint) {\n      this.batchTint = this.tint;\n      const tintRGB = utils.hex2rgb(this.tint, temp);\n      for (let i = 0; i < this.batches.length; i++) {\n        const batch = this.batches[i];\n        const batchTint = batch._batchRGB;\n        const r = tintRGB[0] * batchTint[0] * 255;\n        const g = tintRGB[1] * batchTint[1] * 255;\n        const b = tintRGB[2] * batchTint[2] * 255;\n        const color = (r << 16) + (g << 8) + (b | 0);\n        batch._tintRGB = (color >> 16) + (color & 65280) + ((color & 255) << 16);\n      }\n    }\n  }\n  calculateVertices() {\n    const wtID = this.transform._worldID;\n    if (this._transformID === wtID) {\n      return;\n    }\n    this._transformID = wtID;\n    const wt = this.transform.worldTransform;\n    const a = wt.a;\n    const b = wt.b;\n    const c = wt.c;\n    const d = wt.d;\n    const tx = wt.tx;\n    const ty = wt.ty;\n    const data = this._geometry.points;\n    const vertexData = this.vertexData;\n    let count = 0;\n    for (let i = 0; i < data.length; i += 2) {\n      const x = data[i];\n      const y = data[i + 1];\n      vertexData[count++] = a * x + c * y + tx;\n      vertexData[count++] = d * y + b * x + ty;\n    }\n  }\n  closePath() {\n    const currentPath = this.currentPath;\n    if (currentPath) {\n      currentPath.closeStroke = true;\n      this.finishPoly();\n    }\n    return this;\n  }\n  setMatrix(matrix) {\n    this._matrix = matrix;\n    return this;\n  }\n  beginHole() {\n    this.finishPoly();\n    this._holeMode = true;\n    return this;\n  }\n  endHole() {\n    this.finishPoly();\n    this._holeMode = false;\n    return this;\n  }\n  destroy(options) {\n    this._geometry.refCount--;\n    if (this._geometry.refCount === 0) {\n      this._geometry.dispose();\n    }\n    this._matrix = null;\n    this.currentPath = null;\n    this._lineStyle.destroy();\n    this._lineStyle = null;\n    this._fillStyle.destroy();\n    this._fillStyle = null;\n    this._geometry = null;\n    this.shader = null;\n    this.vertexData = null;\n    this.batches.length = 0;\n    this.batches = null;\n    super.destroy(options);\n  }\n};\nlet Graphics = _Graphics;\nGraphics.curves = curves;\nGraphics._TEMP_POINT = new Point();\n\nexport { Graphics };\n//# sourceMappingURL=Graphics.mjs.map\n","import { FILL_COMMANDS, BATCH_POOL, DRAW_CALL_POOL } from './utils/index.mjs';\nexport { GRAPHICS_CURVES, LINE_CAP, LINE_JOIN, curves } from './const.mjs';\nexport { Graphics } from './Graphics.mjs';\nexport { GraphicsData } from './GraphicsData.mjs';\nexport { GraphicsGeometry } from './GraphicsGeometry.mjs';\nexport { FillStyle } from './styles/FillStyle.mjs';\nexport { LineStyle } from './styles/LineStyle.mjs';\nimport { buildPoly } from './utils/buildPoly.mjs';\nimport { buildCircle } from './utils/buildCircle.mjs';\nimport { buildRectangle } from './utils/buildRectangle.mjs';\nimport { buildRoundedRectangle } from './utils/buildRoundedRectangle.mjs';\nimport { buildLine } from './utils/buildLine.mjs';\nimport { ArcUtils } from './utils/ArcUtils.mjs';\nimport { BezierUtils } from './utils/BezierUtils.mjs';\nimport { QuadraticUtils } from './utils/QuadraticUtils.mjs';\nimport { BatchPart } from './utils/BatchPart.mjs';\n\nconst graphicsUtils = {\n  buildPoly,\n  buildCircle,\n  buildRectangle,\n  buildRoundedRectangle,\n  buildLine,\n  ArcUtils,\n  BezierUtils,\n  QuadraticUtils,\n  BatchPart,\n  FILL_COMMANDS,\n  BATCH_POOL,\n  DRAW_CALL_POOL\n};\n\nexport { graphicsUtils };\n//# sourceMappingURL=index.mjs.map\n","class MeshBatchUvs {\n  constructor(uvBuffer, uvMatrix) {\n    this.uvBuffer = uvBuffer;\n    this.uvMatrix = uvMatrix;\n    this.data = null;\n    this._bufferUpdateId = -1;\n    this._textureUpdateId = -1;\n    this._updateID = 0;\n  }\n  update(forceUpdate) {\n    if (!forceUpdate && this._bufferUpdateId === this.uvBuffer._updateID && this._textureUpdateId === this.uvMatrix._updateID) {\n      return;\n    }\n    this._bufferUpdateId = this.uvBuffer._updateID;\n    this._textureUpdateId = this.uvMatrix._updateID;\n    const data = this.uvBuffer.data;\n    if (!this.data || this.data.length !== data.length) {\n      this.data = new Float32Array(data.length);\n    }\n    this.uvMatrix.multiplyUvs(data, this.data);\n    this._updateID++;\n  }\n}\n\nexport { MeshBatchUvs };\n//# sourceMappingURL=MeshBatchUvs.mjs.map\n","import { Point, Polygon, State, settings, DRAW_MODES } from '@pixi/core';\nimport { Container } from '@pixi/display';\nimport { MeshBatchUvs } from './MeshBatchUvs.mjs';\n\nconst tempPoint = new Point();\nconst tempPolygon = new Polygon();\nconst _Mesh = class extends Container {\n  constructor(geometry, shader, state, drawMode = DRAW_MODES.TRIANGLES) {\n    super();\n    this.geometry = geometry;\n    this.shader = shader;\n    this.state = state || State.for2d();\n    this.drawMode = drawMode;\n    this.start = 0;\n    this.size = 0;\n    this.uvs = null;\n    this.indices = null;\n    this.vertexData = new Float32Array(1);\n    this.vertexDirty = -1;\n    this._transformID = -1;\n    this._roundPixels = settings.ROUND_PIXELS;\n    this.batchUvs = null;\n  }\n  get geometry() {\n    return this._geometry;\n  }\n  set geometry(value) {\n    if (this._geometry === value) {\n      return;\n    }\n    if (this._geometry) {\n      this._geometry.refCount--;\n      if (this._geometry.refCount === 0) {\n        this._geometry.dispose();\n      }\n    }\n    this._geometry = value;\n    if (this._geometry) {\n      this._geometry.refCount++;\n    }\n    this.vertexDirty = -1;\n  }\n  get uvBuffer() {\n    return this.geometry.buffers[1];\n  }\n  get verticesBuffer() {\n    return this.geometry.buffers[0];\n  }\n  set material(value) {\n    this.shader = value;\n  }\n  get material() {\n    return this.shader;\n  }\n  set blendMode(value) {\n    this.state.blendMode = value;\n  }\n  get blendMode() {\n    return this.state.blendMode;\n  }\n  set roundPixels(value) {\n    if (this._roundPixels !== value) {\n      this._transformID = -1;\n    }\n    this._roundPixels = value;\n  }\n  get roundPixels() {\n    return this._roundPixels;\n  }\n  get tint() {\n    return \"tint\" in this.shader ? this.shader.tint : null;\n  }\n  set tint(value) {\n    this.shader.tint = value;\n  }\n  get texture() {\n    return \"texture\" in this.shader ? this.shader.texture : null;\n  }\n  set texture(value) {\n    this.shader.texture = value;\n  }\n  _render(renderer) {\n    const vertices = this.geometry.buffers[0].data;\n    const shader = this.shader;\n    if (shader.batchable && this.drawMode === DRAW_MODES.TRIANGLES && vertices.length < _Mesh.BATCHABLE_SIZE * 2) {\n      this._renderToBatch(renderer);\n    } else {\n      this._renderDefault(renderer);\n    }\n  }\n  _renderDefault(renderer) {\n    const shader = this.shader;\n    shader.alpha = this.worldAlpha;\n    if (shader.update) {\n      shader.update();\n    }\n    renderer.batch.flush();\n    shader.uniforms.translationMatrix = this.transform.worldTransform.toArray(true);\n    renderer.shader.bind(shader);\n    renderer.state.set(this.state);\n    renderer.geometry.bind(this.geometry, shader);\n    renderer.geometry.draw(this.drawMode, this.size, this.start, this.geometry.instanceCount);\n  }\n  _renderToBatch(renderer) {\n    const geometry = this.geometry;\n    const shader = this.shader;\n    if (shader.uvMatrix) {\n      shader.uvMatrix.update();\n      this.calculateUvs();\n    }\n    this.calculateVertices();\n    this.indices = geometry.indexBuffer.data;\n    this._tintRGB = shader._tintRGB;\n    this._texture = shader.texture;\n    const pluginName = this.material.pluginName;\n    renderer.batch.setObjectRenderer(renderer.plugins[pluginName]);\n    renderer.plugins[pluginName].render(this);\n  }\n  calculateVertices() {\n    const geometry = this.geometry;\n    const verticesBuffer = geometry.buffers[0];\n    const vertices = verticesBuffer.data;\n    const vertexDirtyId = verticesBuffer._updateID;\n    if (vertexDirtyId === this.vertexDirty && this._transformID === this.transform._worldID) {\n      return;\n    }\n    this._transformID = this.transform._worldID;\n    if (this.vertexData.length !== vertices.length) {\n      this.vertexData = new Float32Array(vertices.length);\n    }\n    const wt = this.transform.worldTransform;\n    const a = wt.a;\n    const b = wt.b;\n    const c = wt.c;\n    const d = wt.d;\n    const tx = wt.tx;\n    const ty = wt.ty;\n    const vertexData = this.vertexData;\n    for (let i = 0; i < vertexData.length / 2; i++) {\n      const x = vertices[i * 2];\n      const y = vertices[i * 2 + 1];\n      vertexData[i * 2] = a * x + c * y + tx;\n      vertexData[i * 2 + 1] = b * x + d * y + ty;\n    }\n    if (this._roundPixels) {\n      const resolution = settings.RESOLUTION;\n      for (let i = 0; i < vertexData.length; ++i) {\n        vertexData[i] = Math.round(vertexData[i] * resolution) / resolution;\n      }\n    }\n    this.vertexDirty = vertexDirtyId;\n  }\n  calculateUvs() {\n    const geomUvs = this.geometry.buffers[1];\n    const shader = this.shader;\n    if (!shader.uvMatrix.isSimple) {\n      if (!this.batchUvs) {\n        this.batchUvs = new MeshBatchUvs(geomUvs, shader.uvMatrix);\n      }\n      this.batchUvs.update();\n      this.uvs = this.batchUvs.data;\n    } else {\n      this.uvs = geomUvs.data;\n    }\n  }\n  _calculateBounds() {\n    this.calculateVertices();\n    this._bounds.addVertexData(this.vertexData, 0, this.vertexData.length);\n  }\n  containsPoint(point) {\n    if (!this.getBounds().contains(point.x, point.y)) {\n      return false;\n    }\n    this.worldTransform.applyInverse(point, tempPoint);\n    const vertices = this.geometry.getBuffer(\"aVertexPosition\").data;\n    const points = tempPolygon.points;\n    const indices = this.geometry.getIndex().data;\n    const len = indices.length;\n    const step = this.drawMode === 4 ? 3 : 1;\n    for (let i = 0; i + 2 < len; i += step) {\n      const ind0 = indices[i] * 2;\n      const ind1 = indices[i + 1] * 2;\n      const ind2 = indices[i + 2] * 2;\n      points[0] = vertices[ind0];\n      points[1] = vertices[ind0 + 1];\n      points[2] = vertices[ind1];\n      points[3] = vertices[ind1 + 1];\n      points[4] = vertices[ind2];\n      points[5] = vertices[ind2 + 1];\n      if (tempPolygon.contains(tempPoint.x, tempPoint.y)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  destroy(options) {\n    super.destroy(options);\n    if (this._cachedTexture) {\n      this._cachedTexture.destroy();\n      this._cachedTexture = null;\n    }\n    this.geometry = null;\n    this.shader = null;\n    this.state = null;\n    this.uvs = null;\n    this.indices = null;\n    this.vertexData = null;\n  }\n};\nlet Mesh = _Mesh;\nMesh.BATCHABLE_SIZE = 100;\n\nexport { Mesh };\n//# sourceMappingURL=Mesh.mjs.map\n","import { Geometry, Buffer, TYPES } from '@pixi/core';\n\nclass MeshGeometry extends Geometry {\n  constructor(vertices, uvs, index) {\n    super();\n    const verticesBuffer = new Buffer(vertices);\n    const uvsBuffer = new Buffer(uvs, true);\n    const indexBuffer = new Buffer(index, true, true);\n    this.addAttribute(\"aVertexPosition\", verticesBuffer, 2, false, TYPES.FLOAT).addAttribute(\"aTextureCoord\", uvsBuffer, 2, false, TYPES.FLOAT).addIndex(indexBuffer);\n    this._updateId = -1;\n  }\n  get vertexDirtyId() {\n    return this.buffers[0]._updateID;\n  }\n}\n\nexport { MeshGeometry };\n//# sourceMappingURL=MeshGeometry.mjs.map\n","var fragment = \"varying vec2 vTextureCoord;\\nuniform vec4 uColor;\\n\\nuniform sampler2D uSampler;\\n\\nvoid main(void)\\n{\\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\\n}\\n\";\n\nexport { fragment as default };\n//# sourceMappingURL=mesh.mjs.map\n","var vertex = \"attribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 translationMatrix;\\nuniform mat3 uTextureMatrix;\\n\\nvarying vec2 vTextureCoord;\\n\\nvoid main(void)\\n{\\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\\n}\\n\";\n\nexport { vertex as default };\n//# sourceMappingURL=mesh2.mjs.map\n","import { Shader, Matrix, Program, TextureMatrix, utils } from '@pixi/core';\nimport fragment from './shader/mesh.mjs';\nimport vertex from './shader/mesh2.mjs';\n\nclass MeshMaterial extends Shader {\n  constructor(uSampler, options) {\n    const uniforms = {\n      uSampler,\n      alpha: 1,\n      uTextureMatrix: Matrix.IDENTITY,\n      uColor: new Float32Array([1, 1, 1, 1])\n    };\n    options = Object.assign({\n      tint: 16777215,\n      alpha: 1,\n      pluginName: \"batch\"\n    }, options);\n    if (options.uniforms) {\n      Object.assign(uniforms, options.uniforms);\n    }\n    super(options.program || Program.from(vertex, fragment), uniforms);\n    this._colorDirty = false;\n    this.uvMatrix = new TextureMatrix(uSampler);\n    this.batchable = options.program === void 0;\n    this.pluginName = options.pluginName;\n    this.tint = options.tint;\n    this.alpha = options.alpha;\n  }\n  get texture() {\n    return this.uniforms.uSampler;\n  }\n  set texture(value) {\n    if (this.uniforms.uSampler !== value) {\n      if (!this.uniforms.uSampler.baseTexture.alphaMode !== !value.baseTexture.alphaMode) {\n        this._colorDirty = true;\n      }\n      this.uniforms.uSampler = value;\n      this.uvMatrix.texture = value;\n    }\n  }\n  set alpha(value) {\n    if (value === this._alpha)\n      return;\n    this._alpha = value;\n    this._colorDirty = true;\n  }\n  get alpha() {\n    return this._alpha;\n  }\n  set tint(value) {\n    if (value === this._tint)\n      return;\n    this._tint = value;\n    this._tintRGB = (value >> 16) + (value & 65280) + ((value & 255) << 16);\n    this._colorDirty = true;\n  }\n  get tint() {\n    return this._tint;\n  }\n  update() {\n    if (this._colorDirty) {\n      this._colorDirty = false;\n      const baseTexture = this.texture.baseTexture;\n      utils.premultiplyTintToRgba(this._tint, this._alpha, this.uniforms.uColor, baseTexture.alphaMode);\n    }\n    if (this.uvMatrix.update()) {\n      this.uniforms.uTextureMatrix = this.uvMatrix.mapCoord;\n    }\n  }\n}\n\nexport { MeshMaterial };\n//# sourceMappingURL=MeshMaterial.mjs.map\n","import { MeshGeometry } from '@pixi/mesh';\n\nclass PlaneGeometry extends MeshGeometry {\n  constructor(width = 100, height = 100, segWidth = 10, segHeight = 10) {\n    super();\n    this.segWidth = segWidth;\n    this.segHeight = segHeight;\n    this.width = width;\n    this.height = height;\n    this.build();\n  }\n  build() {\n    const total = this.segWidth * this.segHeight;\n    const verts = [];\n    const uvs = [];\n    const indices = [];\n    const segmentsX = this.segWidth - 1;\n    const segmentsY = this.segHeight - 1;\n    const sizeX = this.width / segmentsX;\n    const sizeY = this.height / segmentsY;\n    for (let i = 0; i < total; i++) {\n      const x = i % this.segWidth;\n      const y = i / this.segWidth | 0;\n      verts.push(x * sizeX, y * sizeY);\n      uvs.push(x / segmentsX, y / segmentsY);\n    }\n    const totalSub = segmentsX * segmentsY;\n    for (let i = 0; i < totalSub; i++) {\n      const xpos = i % segmentsX;\n      const ypos = i / segmentsX | 0;\n      const value = ypos * this.segWidth + xpos;\n      const value2 = ypos * this.segWidth + xpos + 1;\n      const value3 = (ypos + 1) * this.segWidth + xpos;\n      const value4 = (ypos + 1) * this.segWidth + xpos + 1;\n      indices.push(value, value2, value3, value2, value4, value3);\n    }\n    this.buffers[0].data = new Float32Array(verts);\n    this.buffers[1].data = new Float32Array(uvs);\n    this.indexBuffer.data = new Uint16Array(indices);\n    this.buffers[0].update();\n    this.buffers[1].update();\n    this.indexBuffer.update();\n  }\n}\n\nexport { PlaneGeometry };\n//# sourceMappingURL=PlaneGeometry.mjs.map\n","import { MeshGeometry } from '@pixi/mesh';\n\nclass RopeGeometry extends MeshGeometry {\n  constructor(width = 200, points, textureScale = 0) {\n    super(new Float32Array(points.length * 4), new Float32Array(points.length * 4), new Uint16Array((points.length - 1) * 6));\n    this.points = points;\n    this._width = width;\n    this.textureScale = textureScale;\n    this.build();\n  }\n  get width() {\n    return this._width;\n  }\n  build() {\n    const points = this.points;\n    if (!points)\n      return;\n    const vertexBuffer = this.getBuffer(\"aVertexPosition\");\n    const uvBuffer = this.getBuffer(\"aTextureCoord\");\n    const indexBuffer = this.getIndex();\n    if (points.length < 1) {\n      return;\n    }\n    if (vertexBuffer.data.length / 4 !== points.length) {\n      vertexBuffer.data = new Float32Array(points.length * 4);\n      uvBuffer.data = new Float32Array(points.length * 4);\n      indexBuffer.data = new Uint16Array((points.length - 1) * 6);\n    }\n    const uvs = uvBuffer.data;\n    const indices = indexBuffer.data;\n    uvs[0] = 0;\n    uvs[1] = 0;\n    uvs[2] = 0;\n    uvs[3] = 1;\n    let amount = 0;\n    let prev = points[0];\n    const textureWidth = this._width * this.textureScale;\n    const total = points.length;\n    for (let i = 0; i < total; i++) {\n      const index = i * 4;\n      if (this.textureScale > 0) {\n        const dx = prev.x - points[i].x;\n        const dy = prev.y - points[i].y;\n        const distance = Math.sqrt(dx * dx + dy * dy);\n        prev = points[i];\n        amount += distance / textureWidth;\n      } else {\n        amount = i / (total - 1);\n      }\n      uvs[index] = amount;\n      uvs[index + 1] = 0;\n      uvs[index + 2] = amount;\n      uvs[index + 3] = 1;\n    }\n    let indexCount = 0;\n    for (let i = 0; i < total - 1; i++) {\n      const index = i * 2;\n      indices[indexCount++] = index;\n      indices[indexCount++] = index + 1;\n      indices[indexCount++] = index + 2;\n      indices[indexCount++] = index + 2;\n      indices[indexCount++] = index + 1;\n      indices[indexCount++] = index + 3;\n    }\n    uvBuffer.update();\n    indexBuffer.update();\n    this.updateVertices();\n  }\n  updateVertices() {\n    const points = this.points;\n    if (points.length < 1) {\n      return;\n    }\n    let lastPoint = points[0];\n    let nextPoint;\n    let perpX = 0;\n    let perpY = 0;\n    const vertices = this.buffers[0].data;\n    const total = points.length;\n    const halfWidth = this.textureScale > 0 ? this.textureScale * this._width / 2 : this._width / 2;\n    for (let i = 0; i < total; i++) {\n      const point = points[i];\n      const index = i * 4;\n      if (i < points.length - 1) {\n        nextPoint = points[i + 1];\n      } else {\n        nextPoint = point;\n      }\n      perpY = -(nextPoint.x - lastPoint.x);\n      perpX = nextPoint.y - lastPoint.y;\n      let ratio = (1 - i / (total - 1)) * 10;\n      if (ratio > 1) {\n        ratio = 1;\n      }\n      const perpLength = Math.sqrt(perpX * perpX + perpY * perpY);\n      if (perpLength < 1e-6) {\n        perpX = 0;\n        perpY = 0;\n      } else {\n        perpX /= perpLength;\n        perpY /= perpLength;\n        perpX *= halfWidth;\n        perpY *= halfWidth;\n      }\n      vertices[index] = point.x + perpX;\n      vertices[index + 1] = point.y + perpY;\n      vertices[index + 2] = point.x - perpX;\n      vertices[index + 3] = point.y - perpY;\n      lastPoint = point;\n    }\n    this.buffers[0].update();\n  }\n  update() {\n    if (this.textureScale > 0) {\n      this.build();\n    } else {\n      this.updateVertices();\n    }\n  }\n}\n\nexport { RopeGeometry };\n//# sourceMappingURL=RopeGeometry.mjs.map\n","import { Texture } from '@pixi/core';\nimport { Mesh, MeshMaterial } from '@pixi/mesh';\nimport { PlaneGeometry } from './geometry/PlaneGeometry.mjs';\n\nclass SimplePlane extends Mesh {\n  constructor(texture, verticesX, verticesY) {\n    const planeGeometry = new PlaneGeometry(texture.width, texture.height, verticesX, verticesY);\n    const meshMaterial = new MeshMaterial(Texture.WHITE);\n    super(planeGeometry, meshMaterial);\n    this.texture = texture;\n    this.autoResize = true;\n  }\n  textureUpdated() {\n    this._textureID = this.shader.texture._updateID;\n    const geometry = this.geometry;\n    const { width, height } = this.shader.texture;\n    if (this.autoResize && (geometry.width !== width || geometry.height !== height)) {\n      geometry.width = this.shader.texture.width;\n      geometry.height = this.shader.texture.height;\n      geometry.build();\n    }\n  }\n  set texture(value) {\n    if (this.shader.texture === value) {\n      return;\n    }\n    this.shader.texture = value;\n    this._textureID = -1;\n    if (value.baseTexture.valid) {\n      this.textureUpdated();\n    } else {\n      value.once(\"update\", this.textureUpdated, this);\n    }\n  }\n  get texture() {\n    return this.shader.texture;\n  }\n  _render(renderer) {\n    if (this._textureID !== this.shader.texture._updateID) {\n      this.textureUpdated();\n    }\n    super._render(renderer);\n  }\n  destroy(options) {\n    this.shader.texture.off(\"update\", this.textureUpdated, this);\n    super.destroy(options);\n  }\n}\n\nexport { SimplePlane };\n//# sourceMappingURL=SimplePlane.mjs.map\n","import { Texture } from '@pixi/core';\nimport { SimplePlane } from './SimplePlane.mjs';\n\nconst DEFAULT_BORDER_SIZE = 10;\nclass NineSlicePlane extends SimplePlane {\n  constructor(texture, leftWidth = DEFAULT_BORDER_SIZE, topHeight = DEFAULT_BORDER_SIZE, rightWidth = DEFAULT_BORDER_SIZE, bottomHeight = DEFAULT_BORDER_SIZE) {\n    super(Texture.WHITE, 4, 4);\n    this._origWidth = texture.orig.width;\n    this._origHeight = texture.orig.height;\n    this._width = this._origWidth;\n    this._height = this._origHeight;\n    this._leftWidth = leftWidth;\n    this._rightWidth = rightWidth;\n    this._topHeight = topHeight;\n    this._bottomHeight = bottomHeight;\n    this.texture = texture;\n  }\n  textureUpdated() {\n    this._textureID = this.shader.texture._updateID;\n    this._refresh();\n  }\n  get vertices() {\n    return this.geometry.getBuffer(\"aVertexPosition\").data;\n  }\n  set vertices(value) {\n    this.geometry.getBuffer(\"aVertexPosition\").data = value;\n  }\n  updateHorizontalVertices() {\n    const vertices = this.vertices;\n    const scale = this._getMinScale();\n    vertices[9] = vertices[11] = vertices[13] = vertices[15] = this._topHeight * scale;\n    vertices[17] = vertices[19] = vertices[21] = vertices[23] = this._height - this._bottomHeight * scale;\n    vertices[25] = vertices[27] = vertices[29] = vertices[31] = this._height;\n  }\n  updateVerticalVertices() {\n    const vertices = this.vertices;\n    const scale = this._getMinScale();\n    vertices[2] = vertices[10] = vertices[18] = vertices[26] = this._leftWidth * scale;\n    vertices[4] = vertices[12] = vertices[20] = vertices[28] = this._width - this._rightWidth * scale;\n    vertices[6] = vertices[14] = vertices[22] = vertices[30] = this._width;\n  }\n  _getMinScale() {\n    const w = this._leftWidth + this._rightWidth;\n    const scaleW = this._width > w ? 1 : this._width / w;\n    const h = this._topHeight + this._bottomHeight;\n    const scaleH = this._height > h ? 1 : this._height / h;\n    const scale = Math.min(scaleW, scaleH);\n    return scale;\n  }\n  get width() {\n    return this._width;\n  }\n  set width(value) {\n    this._width = value;\n    this._refresh();\n  }\n  get height() {\n    return this._height;\n  }\n  set height(value) {\n    this._height = value;\n    this._refresh();\n  }\n  get leftWidth() {\n    return this._leftWidth;\n  }\n  set leftWidth(value) {\n    this._leftWidth = value;\n    this._refresh();\n  }\n  get rightWidth() {\n    return this._rightWidth;\n  }\n  set rightWidth(value) {\n    this._rightWidth = value;\n    this._refresh();\n  }\n  get topHeight() {\n    return this._topHeight;\n  }\n  set topHeight(value) {\n    this._topHeight = value;\n    this._refresh();\n  }\n  get bottomHeight() {\n    return this._bottomHeight;\n  }\n  set bottomHeight(value) {\n    this._bottomHeight = value;\n    this._refresh();\n  }\n  _refresh() {\n    const texture = this.texture;\n    const uvs = this.geometry.buffers[1].data;\n    this._origWidth = texture.orig.width;\n    this._origHeight = texture.orig.height;\n    const _uvw = 1 / this._origWidth;\n    const _uvh = 1 / this._origHeight;\n    uvs[0] = uvs[8] = uvs[16] = uvs[24] = 0;\n    uvs[1] = uvs[3] = uvs[5] = uvs[7] = 0;\n    uvs[6] = uvs[14] = uvs[22] = uvs[30] = 1;\n    uvs[25] = uvs[27] = uvs[29] = uvs[31] = 1;\n    uvs[2] = uvs[10] = uvs[18] = uvs[26] = _uvw * this._leftWidth;\n    uvs[4] = uvs[12] = uvs[20] = uvs[28] = 1 - _uvw * this._rightWidth;\n    uvs[9] = uvs[11] = uvs[13] = uvs[15] = _uvh * this._topHeight;\n    uvs[17] = uvs[19] = uvs[21] = uvs[23] = 1 - _uvh * this._bottomHeight;\n    this.updateHorizontalVertices();\n    this.updateVerticalVertices();\n    this.geometry.buffers[0].update();\n    this.geometry.buffers[1].update();\n  }\n}\n\nexport { NineSlicePlane };\n//# sourceMappingURL=NineSlicePlane.mjs.map\n","import { Texture } from '@pixi/core';\nimport { Mesh, MeshGeometry, MeshMaterial } from '@pixi/mesh';\n\nclass SimpleMesh extends Mesh {\n  constructor(texture = Texture.EMPTY, vertices, uvs, indices, drawMode) {\n    const geometry = new MeshGeometry(vertices, uvs, indices);\n    geometry.getBuffer(\"aVertexPosition\").static = false;\n    const meshMaterial = new MeshMaterial(texture);\n    super(geometry, meshMaterial, null, drawMode);\n    this.autoUpdate = true;\n  }\n  get vertices() {\n    return this.geometry.getBuffer(\"aVertexPosition\").data;\n  }\n  set vertices(value) {\n    this.geometry.getBuffer(\"aVertexPosition\").data = value;\n  }\n  _render(renderer) {\n    if (this.autoUpdate) {\n      this.geometry.getBuffer(\"aVertexPosition\").update();\n    }\n    super._render(renderer);\n  }\n}\n\nexport { SimpleMesh };\n//# sourceMappingURL=SimpleMesh.mjs.map\n","import { WRAP_MODES } from '@pixi/core';\nimport { Mesh, MeshMaterial } from '@pixi/mesh';\nimport { RopeGeometry } from './geometry/RopeGeometry.mjs';\n\nclass SimpleRope extends Mesh {\n  constructor(texture, points, textureScale = 0) {\n    const ropeGeometry = new RopeGeometry(texture.height, points, textureScale);\n    const meshMaterial = new MeshMaterial(texture);\n    if (textureScale > 0) {\n      texture.baseTexture.wrapMode = WRAP_MODES.REPEAT;\n    }\n    super(ropeGeometry, meshMaterial);\n    this.autoUpdate = true;\n  }\n  _render(renderer) {\n    const geometry = this.geometry;\n    if (this.autoUpdate || geometry._width !== this.shader.texture.height) {\n      geometry._width = this.shader.texture.height;\n      geometry.update();\n    }\n    super._render(renderer);\n  }\n}\n\nexport { SimpleRope };\n//# sourceMappingURL=SimpleRope.mjs.map\n","import { BLEND_MODES, utils } from '@pixi/core';\nimport { Container } from '@pixi/display';\n\nclass ParticleContainer extends Container {\n  constructor(maxSize = 1500, properties, batchSize = 16384, autoResize = false) {\n    super();\n    const maxBatchSize = 16384;\n    if (batchSize > maxBatchSize) {\n      batchSize = maxBatchSize;\n    }\n    this._properties = [false, true, false, false, false];\n    this._maxSize = maxSize;\n    this._batchSize = batchSize;\n    this._buffers = null;\n    this._bufferUpdateIDs = [];\n    this._updateID = 0;\n    this.interactiveChildren = false;\n    this.blendMode = BLEND_MODES.NORMAL;\n    this.autoResize = autoResize;\n    this.roundPixels = true;\n    this.baseTexture = null;\n    this.setProperties(properties);\n    this._tint = 0;\n    this.tintRgb = new Float32Array(4);\n    this.tint = 16777215;\n  }\n  setProperties(properties) {\n    if (properties) {\n      this._properties[0] = \"vertices\" in properties || \"scale\" in properties ? !!properties.vertices || !!properties.scale : this._properties[0];\n      this._properties[1] = \"position\" in properties ? !!properties.position : this._properties[1];\n      this._properties[2] = \"rotation\" in properties ? !!properties.rotation : this._properties[2];\n      this._properties[3] = \"uvs\" in properties ? !!properties.uvs : this._properties[3];\n      this._properties[4] = \"tint\" in properties || \"alpha\" in properties ? !!properties.tint || !!properties.alpha : this._properties[4];\n    }\n  }\n  updateTransform() {\n    this.displayObjectUpdateTransform();\n  }\n  get tint() {\n    return this._tint;\n  }\n  set tint(value) {\n    this._tint = value;\n    utils.hex2rgb(value, this.tintRgb);\n  }\n  render(renderer) {\n    if (!this.visible || this.worldAlpha <= 0 || !this.children.length || !this.renderable) {\n      return;\n    }\n    if (!this.baseTexture) {\n      this.baseTexture = this.children[0]._texture.baseTexture;\n      if (!this.baseTexture.valid) {\n        this.baseTexture.once(\"update\", () => this.onChildrenChange(0));\n      }\n    }\n    renderer.batch.setObjectRenderer(renderer.plugins.particle);\n    renderer.plugins.particle.render(this);\n  }\n  onChildrenChange(smallestChildIndex) {\n    const bufferIndex = Math.floor(smallestChildIndex / this._batchSize);\n    while (this._bufferUpdateIDs.length < bufferIndex) {\n      this._bufferUpdateIDs.push(0);\n    }\n    this._bufferUpdateIDs[bufferIndex] = ++this._updateID;\n  }\n  dispose() {\n    if (this._buffers) {\n      for (let i = 0; i < this._buffers.length; ++i) {\n        this._buffers[i].destroy();\n      }\n      this._buffers = null;\n    }\n  }\n  destroy(options) {\n    super.destroy(options);\n    this.dispose();\n    this._properties = null;\n    this._buffers = null;\n    this._bufferUpdateIDs = null;\n  }\n}\n\nexport { ParticleContainer };\n//# sourceMappingURL=ParticleContainer.mjs.map\n","import { Geometry, TYPES, Buffer, utils } from '@pixi/core';\n\nclass ParticleBuffer {\n  constructor(properties, dynamicPropertyFlags, size) {\n    this.geometry = new Geometry();\n    this.indexBuffer = null;\n    this.size = size;\n    this.dynamicProperties = [];\n    this.staticProperties = [];\n    for (let i = 0; i < properties.length; ++i) {\n      let property = properties[i];\n      property = {\n        attributeName: property.attributeName,\n        size: property.size,\n        uploadFunction: property.uploadFunction,\n        type: property.type || TYPES.FLOAT,\n        offset: property.offset\n      };\n      if (dynamicPropertyFlags[i]) {\n        this.dynamicProperties.push(property);\n      } else {\n        this.staticProperties.push(property);\n      }\n    }\n    this.staticStride = 0;\n    this.staticBuffer = null;\n    this.staticData = null;\n    this.staticDataUint32 = null;\n    this.dynamicStride = 0;\n    this.dynamicBuffer = null;\n    this.dynamicData = null;\n    this.dynamicDataUint32 = null;\n    this._updateID = 0;\n    this.initBuffers();\n  }\n  initBuffers() {\n    const geometry = this.geometry;\n    let dynamicOffset = 0;\n    this.indexBuffer = new Buffer(utils.createIndicesForQuads(this.size), true, true);\n    geometry.addIndex(this.indexBuffer);\n    this.dynamicStride = 0;\n    for (let i = 0; i < this.dynamicProperties.length; ++i) {\n      const property = this.dynamicProperties[i];\n      property.offset = dynamicOffset;\n      dynamicOffset += property.size;\n      this.dynamicStride += property.size;\n    }\n    const dynBuffer = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);\n    this.dynamicData = new Float32Array(dynBuffer);\n    this.dynamicDataUint32 = new Uint32Array(dynBuffer);\n    this.dynamicBuffer = new Buffer(this.dynamicData, false, false);\n    let staticOffset = 0;\n    this.staticStride = 0;\n    for (let i = 0; i < this.staticProperties.length; ++i) {\n      const property = this.staticProperties[i];\n      property.offset = staticOffset;\n      staticOffset += property.size;\n      this.staticStride += property.size;\n    }\n    const statBuffer = new ArrayBuffer(this.size * this.staticStride * 4 * 4);\n    this.staticData = new Float32Array(statBuffer);\n    this.staticDataUint32 = new Uint32Array(statBuffer);\n    this.staticBuffer = new Buffer(this.staticData, true, false);\n    for (let i = 0; i < this.dynamicProperties.length; ++i) {\n      const property = this.dynamicProperties[i];\n      geometry.addAttribute(property.attributeName, this.dynamicBuffer, 0, property.type === TYPES.UNSIGNED_BYTE, property.type, this.dynamicStride * 4, property.offset * 4);\n    }\n    for (let i = 0; i < this.staticProperties.length; ++i) {\n      const property = this.staticProperties[i];\n      geometry.addAttribute(property.attributeName, this.staticBuffer, 0, property.type === TYPES.UNSIGNED_BYTE, property.type, this.staticStride * 4, property.offset * 4);\n    }\n  }\n  uploadDynamic(children, startIndex, amount) {\n    for (let i = 0; i < this.dynamicProperties.length; i++) {\n      const property = this.dynamicProperties[i];\n      property.uploadFunction(children, startIndex, amount, property.type === TYPES.UNSIGNED_BYTE ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, property.offset);\n    }\n    this.dynamicBuffer._updateID++;\n  }\n  uploadStatic(children, startIndex, amount) {\n    for (let i = 0; i < this.staticProperties.length; i++) {\n      const property = this.staticProperties[i];\n      property.uploadFunction(children, startIndex, amount, property.type === TYPES.UNSIGNED_BYTE ? this.staticDataUint32 : this.staticData, this.staticStride, property.offset);\n    }\n    this.staticBuffer._updateID++;\n  }\n  destroy() {\n    this.indexBuffer = null;\n    this.dynamicProperties = null;\n    this.dynamicBuffer = null;\n    this.dynamicData = null;\n    this.dynamicDataUint32 = null;\n    this.staticProperties = null;\n    this.staticBuffer = null;\n    this.staticData = null;\n    this.staticDataUint32 = null;\n    this.geometry.destroy();\n  }\n}\n\nexport { ParticleBuffer };\n//# sourceMappingURL=ParticleBuffer.mjs.map\n","var fragment = \"varying vec2 vTextureCoord;\\nvarying vec4 vColor;\\n\\nuniform sampler2D uSampler;\\n\\nvoid main(void){\\n    vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\\n    gl_FragColor = color;\\n}\";\n\nexport { fragment as default };\n//# sourceMappingURL=particles.mjs.map\n","var vertex = \"attribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\nattribute vec4 aColor;\\n\\nattribute vec2 aPositionCoord;\\nattribute float aRotation;\\n\\nuniform mat3 translationMatrix;\\nuniform vec4 uColor;\\n\\nvarying vec2 vTextureCoord;\\nvarying vec4 vColor;\\n\\nvoid main(void){\\n    float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\\n    float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\\n\\n    vec2 v = vec2(x, y);\\n    v = v + aPositionCoord;\\n\\n    gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = aTextureCoord;\\n    vColor = aColor * uColor;\\n}\\n\";\n\nexport { vertex as default };\n//# sourceMappingURL=particles2.mjs.map\n","import { ObjectRenderer, Matrix, TYPES, Shader, State, utils, ExtensionType, extensions } from '@pixi/core';\nimport { ParticleBuffer } from './ParticleBuffer.mjs';\nimport fragment from './particles.mjs';\nimport vertex from './particles2.mjs';\n\nclass ParticleRenderer extends ObjectRenderer {\n  constructor(renderer) {\n    super(renderer);\n    this.shader = null;\n    this.properties = null;\n    this.tempMatrix = new Matrix();\n    this.properties = [\n      {\n        attributeName: \"aVertexPosition\",\n        size: 2,\n        uploadFunction: this.uploadVertices,\n        offset: 0\n      },\n      {\n        attributeName: \"aPositionCoord\",\n        size: 2,\n        uploadFunction: this.uploadPosition,\n        offset: 0\n      },\n      {\n        attributeName: \"aRotation\",\n        size: 1,\n        uploadFunction: this.uploadRotation,\n        offset: 0\n      },\n      {\n        attributeName: \"aTextureCoord\",\n        size: 2,\n        uploadFunction: this.uploadUvs,\n        offset: 0\n      },\n      {\n        attributeName: \"aColor\",\n        size: 1,\n        type: TYPES.UNSIGNED_BYTE,\n        uploadFunction: this.uploadTint,\n        offset: 0\n      }\n    ];\n    this.shader = Shader.from(vertex, fragment, {});\n    this.state = State.for2d();\n  }\n  render(container) {\n    const children = container.children;\n    const maxSize = container._maxSize;\n    const batchSize = container._batchSize;\n    const renderer = this.renderer;\n    let totalChildren = children.length;\n    if (totalChildren === 0) {\n      return;\n    } else if (totalChildren > maxSize && !container.autoResize) {\n      totalChildren = maxSize;\n    }\n    let buffers = container._buffers;\n    if (!buffers) {\n      buffers = container._buffers = this.generateBuffers(container);\n    }\n    const baseTexture = children[0]._texture.baseTexture;\n    const premultiplied = baseTexture.alphaMode > 0;\n    this.state.blendMode = utils.correctBlendMode(container.blendMode, premultiplied);\n    renderer.state.set(this.state);\n    const gl = renderer.gl;\n    const m = container.worldTransform.copyTo(this.tempMatrix);\n    m.prepend(renderer.globalUniforms.uniforms.projectionMatrix);\n    this.shader.uniforms.translationMatrix = m.toArray(true);\n    this.shader.uniforms.uColor = utils.premultiplyRgba(container.tintRgb, container.worldAlpha, this.shader.uniforms.uColor, premultiplied);\n    this.shader.uniforms.uSampler = baseTexture;\n    this.renderer.shader.bind(this.shader);\n    let updateStatic = false;\n    for (let i = 0, j = 0; i < totalChildren; i += batchSize, j += 1) {\n      let amount = totalChildren - i;\n      if (amount > batchSize) {\n        amount = batchSize;\n      }\n      if (j >= buffers.length) {\n        buffers.push(this._generateOneMoreBuffer(container));\n      }\n      const buffer = buffers[j];\n      buffer.uploadDynamic(children, i, amount);\n      const bid = container._bufferUpdateIDs[j] || 0;\n      updateStatic = updateStatic || buffer._updateID < bid;\n      if (updateStatic) {\n        buffer._updateID = container._updateID;\n        buffer.uploadStatic(children, i, amount);\n      }\n      renderer.geometry.bind(buffer.geometry);\n      gl.drawElements(gl.TRIANGLES, amount * 6, gl.UNSIGNED_SHORT, 0);\n    }\n  }\n  generateBuffers(container) {\n    const buffers = [];\n    const size = container._maxSize;\n    const batchSize = container._batchSize;\n    const dynamicPropertyFlags = container._properties;\n    for (let i = 0; i < size; i += batchSize) {\n      buffers.push(new ParticleBuffer(this.properties, dynamicPropertyFlags, batchSize));\n    }\n    return buffers;\n  }\n  _generateOneMoreBuffer(container) {\n    const batchSize = container._batchSize;\n    const dynamicPropertyFlags = container._properties;\n    return new ParticleBuffer(this.properties, dynamicPropertyFlags, batchSize);\n  }\n  uploadVertices(children, startIndex, amount, array, stride, offset) {\n    let w0 = 0;\n    let w1 = 0;\n    let h0 = 0;\n    let h1 = 0;\n    for (let i = 0; i < amount; ++i) {\n      const sprite = children[startIndex + i];\n      const texture = sprite._texture;\n      const sx = sprite.scale.x;\n      const sy = sprite.scale.y;\n      const trim = texture.trim;\n      const orig = texture.orig;\n      if (trim) {\n        w1 = trim.x - sprite.anchor.x * orig.width;\n        w0 = w1 + trim.width;\n        h1 = trim.y - sprite.anchor.y * orig.height;\n        h0 = h1 + trim.height;\n      } else {\n        w0 = orig.width * (1 - sprite.anchor.x);\n        w1 = orig.width * -sprite.anchor.x;\n        h0 = orig.height * (1 - sprite.anchor.y);\n        h1 = orig.height * -sprite.anchor.y;\n      }\n      array[offset] = w1 * sx;\n      array[offset + 1] = h1 * sy;\n      array[offset + stride] = w0 * sx;\n      array[offset + stride + 1] = h1 * sy;\n      array[offset + stride * 2] = w0 * sx;\n      array[offset + stride * 2 + 1] = h0 * sy;\n      array[offset + stride * 3] = w1 * sx;\n      array[offset + stride * 3 + 1] = h0 * sy;\n      offset += stride * 4;\n    }\n  }\n  uploadPosition(children, startIndex, amount, array, stride, offset) {\n    for (let i = 0; i < amount; i++) {\n      const spritePosition = children[startIndex + i].position;\n      array[offset] = spritePosition.x;\n      array[offset + 1] = spritePosition.y;\n      array[offset + stride] = spritePosition.x;\n      array[offset + stride + 1] = spritePosition.y;\n      array[offset + stride * 2] = spritePosition.x;\n      array[offset + stride * 2 + 1] = spritePosition.y;\n      array[offset + stride * 3] = spritePosition.x;\n      array[offset + stride * 3 + 1] = spritePosition.y;\n      offset += stride * 4;\n    }\n  }\n  uploadRotation(children, startIndex, amount, array, stride, offset) {\n    for (let i = 0; i < amount; i++) {\n      const spriteRotation = children[startIndex + i].rotation;\n      array[offset] = spriteRotation;\n      array[offset + stride] = spriteRotation;\n      array[offset + stride * 2] = spriteRotation;\n      array[offset + stride * 3] = spriteRotation;\n      offset += stride * 4;\n    }\n  }\n  uploadUvs(children, startIndex, amount, array, stride, offset) {\n    for (let i = 0; i < amount; ++i) {\n      const textureUvs = children[startIndex + i]._texture._uvs;\n      if (textureUvs) {\n        array[offset] = textureUvs.x0;\n        array[offset + 1] = textureUvs.y0;\n        array[offset + stride] = textureUvs.x1;\n        array[offset + stride + 1] = textureUvs.y1;\n        array[offset + stride * 2] = textureUvs.x2;\n        array[offset + stride * 2 + 1] = textureUvs.y2;\n        array[offset + stride * 3] = textureUvs.x3;\n        array[offset + stride * 3 + 1] = textureUvs.y3;\n        offset += stride * 4;\n      } else {\n        array[offset] = 0;\n        array[offset + 1] = 0;\n        array[offset + stride] = 0;\n        array[offset + stride + 1] = 0;\n        array[offset + stride * 2] = 0;\n        array[offset + stride * 2 + 1] = 0;\n        array[offset + stride * 3] = 0;\n        array[offset + stride * 3 + 1] = 0;\n        offset += stride * 4;\n      }\n    }\n  }\n  uploadTint(children, startIndex, amount, array, stride, offset) {\n    for (let i = 0; i < amount; ++i) {\n      const sprite = children[startIndex + i];\n      const premultiplied = sprite._texture.baseTexture.alphaMode > 0;\n      const alpha = sprite.alpha;\n      const argb = alpha < 1 && premultiplied ? utils.premultiplyTint(sprite._tintRGB, alpha) : sprite._tintRGB + (alpha * 255 << 24);\n      array[offset] = argb;\n      array[offset + stride] = argb;\n      array[offset + stride * 2] = argb;\n      array[offset + stride * 3] = argb;\n      offset += stride * 4;\n    }\n  }\n  destroy() {\n    super.destroy();\n    if (this.shader) {\n      this.shader.destroy();\n      this.shader = null;\n    }\n    this.tempMatrix = null;\n  }\n}\nParticleRenderer.extension = {\n  name: \"particle\",\n  type: ExtensionType.RendererPlugin\n};\nextensions.add(ParticleRenderer);\n\nexport { ParticleRenderer };\n//# sourceMappingURL=ParticleRenderer.mjs.map\n","var TEXT_GRADIENT = /* @__PURE__ */ ((TEXT_GRADIENT2) => {\n  TEXT_GRADIENT2[TEXT_GRADIENT2[\"LINEAR_VERTICAL\"] = 0] = \"LINEAR_VERTICAL\";\n  TEXT_GRADIENT2[TEXT_GRADIENT2[\"LINEAR_HORIZONTAL\"] = 1] = \"LINEAR_HORIZONTAL\";\n  return TEXT_GRADIENT2;\n})(TEXT_GRADIENT || {});\n\nexport { TEXT_GRADIENT };\n//# sourceMappingURL=const.mjs.map\n","import { settings } from '@pixi/core';\n\nconst contextSettings = {\n  willReadFrequently: true\n};\nconst _TextMetrics = class {\n  static get experimentalLetterSpacingSupported() {\n    let result = _TextMetrics._experimentalLetterSpacingSupported;\n    if (result !== void 0) {\n      const proto = settings.ADAPTER.getCanvasRenderingContext2D().prototype;\n      result = _TextMetrics._experimentalLetterSpacingSupported = \"letterSpacing\" in proto || \"textLetterSpacing\" in proto;\n    }\n    return result;\n  }\n  constructor(text, style, width, height, lines, lineWidths, lineHeight, maxLineWidth, fontProperties) {\n    this.text = text;\n    this.style = style;\n    this.width = width;\n    this.height = height;\n    this.lines = lines;\n    this.lineWidths = lineWidths;\n    this.lineHeight = lineHeight;\n    this.maxLineWidth = maxLineWidth;\n    this.fontProperties = fontProperties;\n  }\n  static measureText(text, style, wordWrap, canvas = _TextMetrics._canvas) {\n    wordWrap = wordWrap === void 0 || wordWrap === null ? style.wordWrap : wordWrap;\n    const font = style.toFontString();\n    const fontProperties = _TextMetrics.measureFont(font);\n    if (fontProperties.fontSize === 0) {\n      fontProperties.fontSize = style.fontSize;\n      fontProperties.ascent = style.fontSize;\n    }\n    const context = canvas.getContext(\"2d\", contextSettings);\n    context.font = font;\n    const outputText = wordWrap ? _TextMetrics.wordWrap(text, style, canvas) : text;\n    const lines = outputText.split(/(?:\\r\\n|\\r|\\n)/);\n    const lineWidths = new Array(lines.length);\n    let maxLineWidth = 0;\n    for (let i = 0; i < lines.length; i++) {\n      const lineWidth = _TextMetrics._measureText(lines[i], style.letterSpacing, context);\n      lineWidths[i] = lineWidth;\n      maxLineWidth = Math.max(maxLineWidth, lineWidth);\n    }\n    let width = maxLineWidth + style.strokeThickness;\n    if (style.dropShadow) {\n      width += style.dropShadowDistance;\n    }\n    const lineHeight = style.lineHeight || fontProperties.fontSize + style.strokeThickness;\n    let height = Math.max(lineHeight, fontProperties.fontSize + style.strokeThickness * 2) + (lines.length - 1) * (lineHeight + style.leading);\n    if (style.dropShadow) {\n      height += style.dropShadowDistance;\n    }\n    return new _TextMetrics(text, style, width, height, lines, lineWidths, lineHeight + style.leading, maxLineWidth, fontProperties);\n  }\n  static _measureText(text, letterSpacing, context) {\n    let useExperimentalLetterSpacing = false;\n    if (_TextMetrics.experimentalLetterSpacingSupported) {\n      if (_TextMetrics.experimentalLetterSpacing) {\n        context.letterSpacing = `${letterSpacing}px`;\n        context.textLetterSpacing = `${letterSpacing}px`;\n        useExperimentalLetterSpacing = true;\n      } else {\n        context.letterSpacing = \"0px\";\n        context.textLetterSpacing = \"0px\";\n      }\n    }\n    let width = context.measureText(text).width;\n    if (width > 0) {\n      if (useExperimentalLetterSpacing) {\n        width -= letterSpacing;\n      } else {\n        width += (_TextMetrics.graphemeSegmenter(text).length - 1) * letterSpacing;\n      }\n    }\n    return width;\n  }\n  static wordWrap(text, style, canvas = _TextMetrics._canvas) {\n    const context = canvas.getContext(\"2d\", contextSettings);\n    let width = 0;\n    let line = \"\";\n    let lines = \"\";\n    const cache = /* @__PURE__ */ Object.create(null);\n    const { letterSpacing, whiteSpace } = style;\n    const collapseSpaces = _TextMetrics.collapseSpaces(whiteSpace);\n    const collapseNewlines = _TextMetrics.collapseNewlines(whiteSpace);\n    let canPrependSpaces = !collapseSpaces;\n    const wordWrapWidth = style.wordWrapWidth + letterSpacing;\n    const tokens = _TextMetrics.tokenize(text);\n    for (let i = 0; i < tokens.length; i++) {\n      let token = tokens[i];\n      if (_TextMetrics.isNewline(token)) {\n        if (!collapseNewlines) {\n          lines += _TextMetrics.addLine(line);\n          canPrependSpaces = !collapseSpaces;\n          line = \"\";\n          width = 0;\n          continue;\n        }\n        token = \" \";\n      }\n      if (collapseSpaces) {\n        const currIsBreakingSpace = _TextMetrics.isBreakingSpace(token);\n        const lastIsBreakingSpace = _TextMetrics.isBreakingSpace(line[line.length - 1]);\n        if (currIsBreakingSpace && lastIsBreakingSpace) {\n          continue;\n        }\n      }\n      const tokenWidth = _TextMetrics.getFromCache(token, letterSpacing, cache, context);\n      if (tokenWidth > wordWrapWidth) {\n        if (line !== \"\") {\n          lines += _TextMetrics.addLine(line);\n          line = \"\";\n          width = 0;\n        }\n        if (_TextMetrics.canBreakWords(token, style.breakWords)) {\n          const characters = _TextMetrics.wordWrapSplit(token);\n          for (let j = 0; j < characters.length; j++) {\n            let char = characters[j];\n            let lastChar = char;\n            let k = 1;\n            while (characters[j + k]) {\n              const nextChar = characters[j + k];\n              if (!_TextMetrics.canBreakChars(lastChar, nextChar, token, j, style.breakWords)) {\n                char += nextChar;\n              } else {\n                break;\n              }\n              lastChar = nextChar;\n              k++;\n            }\n            j += k - 1;\n            const characterWidth = _TextMetrics.getFromCache(char, letterSpacing, cache, context);\n            if (characterWidth + width > wordWrapWidth) {\n              lines += _TextMetrics.addLine(line);\n              canPrependSpaces = false;\n              line = \"\";\n              width = 0;\n            }\n            line += char;\n            width += characterWidth;\n          }\n        } else {\n          if (line.length > 0) {\n            lines += _TextMetrics.addLine(line);\n            line = \"\";\n            width = 0;\n          }\n          const isLastToken = i === tokens.length - 1;\n          lines += _TextMetrics.addLine(token, !isLastToken);\n          canPrependSpaces = false;\n          line = \"\";\n          width = 0;\n        }\n      } else {\n        if (tokenWidth + width > wordWrapWidth) {\n          canPrependSpaces = false;\n          lines += _TextMetrics.addLine(line);\n          line = \"\";\n          width = 0;\n        }\n        if (line.length > 0 || !_TextMetrics.isBreakingSpace(token) || canPrependSpaces) {\n          line += token;\n          width += tokenWidth;\n        }\n      }\n    }\n    lines += _TextMetrics.addLine(line, false);\n    return lines;\n  }\n  static addLine(line, newLine = true) {\n    line = _TextMetrics.trimRight(line);\n    line = newLine ? `${line}\n` : line;\n    return line;\n  }\n  static getFromCache(key, letterSpacing, cache, context) {\n    let width = cache[key];\n    if (typeof width !== \"number\") {\n      width = _TextMetrics._measureText(key, letterSpacing, context) + letterSpacing;\n      cache[key] = width;\n    }\n    return width;\n  }\n  static collapseSpaces(whiteSpace) {\n    return whiteSpace === \"normal\" || whiteSpace === \"pre-line\";\n  }\n  static collapseNewlines(whiteSpace) {\n    return whiteSpace === \"normal\";\n  }\n  static trimRight(text) {\n    if (typeof text !== \"string\") {\n      return \"\";\n    }\n    for (let i = text.length - 1; i >= 0; i--) {\n      const char = text[i];\n      if (!_TextMetrics.isBreakingSpace(char)) {\n        break;\n      }\n      text = text.slice(0, -1);\n    }\n    return text;\n  }\n  static isNewline(char) {\n    if (typeof char !== \"string\") {\n      return false;\n    }\n    return _TextMetrics._newlines.includes(char.charCodeAt(0));\n  }\n  static isBreakingSpace(char, _nextChar) {\n    if (typeof char !== \"string\") {\n      return false;\n    }\n    return _TextMetrics._breakingSpaces.includes(char.charCodeAt(0));\n  }\n  static tokenize(text) {\n    const tokens = [];\n    let token = \"\";\n    if (typeof text !== \"string\") {\n      return tokens;\n    }\n    for (let i = 0; i < text.length; i++) {\n      const char = text[i];\n      const nextChar = text[i + 1];\n      if (_TextMetrics.isBreakingSpace(char, nextChar) || _TextMetrics.isNewline(char)) {\n        if (token !== \"\") {\n          tokens.push(token);\n          token = \"\";\n        }\n        tokens.push(char);\n        continue;\n      }\n      token += char;\n    }\n    if (token !== \"\") {\n      tokens.push(token);\n    }\n    return tokens;\n  }\n  static canBreakWords(_token, breakWords) {\n    return breakWords;\n  }\n  static canBreakChars(_char, _nextChar, _token, _index, _breakWords) {\n    return true;\n  }\n  static wordWrapSplit(token) {\n    return _TextMetrics.graphemeSegmenter(token);\n  }\n  static measureFont(font) {\n    if (_TextMetrics._fonts[font]) {\n      return _TextMetrics._fonts[font];\n    }\n    const properties = {\n      ascent: 0,\n      descent: 0,\n      fontSize: 0\n    };\n    const canvas = _TextMetrics._canvas;\n    const context = _TextMetrics._context;\n    context.font = font;\n    const metricsString = _TextMetrics.METRICS_STRING + _TextMetrics.BASELINE_SYMBOL;\n    const width = Math.ceil(context.measureText(metricsString).width);\n    let baseline = Math.ceil(context.measureText(_TextMetrics.BASELINE_SYMBOL).width);\n    const height = Math.ceil(_TextMetrics.HEIGHT_MULTIPLIER * baseline);\n    baseline = baseline * _TextMetrics.BASELINE_MULTIPLIER | 0;\n    if (width === 0 || height === 0) {\n      _TextMetrics._fonts[font] = properties;\n      return properties;\n    }\n    canvas.width = width;\n    canvas.height = height;\n    context.fillStyle = \"#f00\";\n    context.fillRect(0, 0, width, height);\n    context.font = font;\n    context.textBaseline = \"alphabetic\";\n    context.fillStyle = \"#000\";\n    context.fillText(metricsString, 0, baseline);\n    const imagedata = context.getImageData(0, 0, width, height).data;\n    const pixels = imagedata.length;\n    const line = width * 4;\n    let i = 0;\n    let idx = 0;\n    let stop = false;\n    for (i = 0; i < baseline; ++i) {\n      for (let j = 0; j < line; j += 4) {\n        if (imagedata[idx + j] !== 255) {\n          stop = true;\n          break;\n        }\n      }\n      if (!stop) {\n        idx += line;\n      } else {\n        break;\n      }\n    }\n    properties.ascent = baseline - i;\n    idx = pixels - line;\n    stop = false;\n    for (i = height; i > baseline; --i) {\n      for (let j = 0; j < line; j += 4) {\n        if (imagedata[idx + j] !== 255) {\n          stop = true;\n          break;\n        }\n      }\n      if (!stop) {\n        idx -= line;\n      } else {\n        break;\n      }\n    }\n    properties.descent = i - baseline;\n    properties.fontSize = properties.ascent + properties.descent;\n    _TextMetrics._fonts[font] = properties;\n    return properties;\n  }\n  static clearMetrics(font = \"\") {\n    if (font) {\n      delete _TextMetrics._fonts[font];\n    } else {\n      _TextMetrics._fonts = {};\n    }\n  }\n  static get _canvas() {\n    if (!_TextMetrics.__canvas) {\n      let canvas;\n      try {\n        const c = new OffscreenCanvas(0, 0);\n        const context = c.getContext(\"2d\", contextSettings);\n        if (context?.measureText) {\n          _TextMetrics.__canvas = c;\n          return c;\n        }\n        canvas = settings.ADAPTER.createCanvas();\n      } catch (ex) {\n        canvas = settings.ADAPTER.createCanvas();\n      }\n      canvas.width = canvas.height = 10;\n      _TextMetrics.__canvas = canvas;\n    }\n    return _TextMetrics.__canvas;\n  }\n  static get _context() {\n    if (!_TextMetrics.__context) {\n      _TextMetrics.__context = _TextMetrics._canvas.getContext(\"2d\", contextSettings);\n    }\n    return _TextMetrics.__context;\n  }\n};\nlet TextMetrics = _TextMetrics;\nTextMetrics.METRICS_STRING = \"|\\xC9q\\xC5\";\nTextMetrics.BASELINE_SYMBOL = \"M\";\nTextMetrics.BASELINE_MULTIPLIER = 1.4;\nTextMetrics.HEIGHT_MULTIPLIER = 2;\nTextMetrics.graphemeSegmenter = (() => {\n  if (typeof Intl?.Segmenter === \"function\") {\n    const segmenter = new Intl.Segmenter();\n    return (s) => [...segmenter.segment(s)].map((x) => x.segment);\n  }\n  return (s) => [...s];\n})();\nTextMetrics.experimentalLetterSpacing = false;\nTextMetrics._fonts = {};\nTextMetrics._newlines = [\n  10,\n  13\n];\nTextMetrics._breakingSpaces = [\n  9,\n  32,\n  8192,\n  8193,\n  8194,\n  8195,\n  8196,\n  8197,\n  8198,\n  8200,\n  8201,\n  8202,\n  8287,\n  12288\n];\n\nexport { TextMetrics };\n//# sourceMappingURL=TextMetrics.mjs.map\n","import { TEXT_GRADIENT } from './const.mjs';\nimport { utils } from '@pixi/core';\n\nconst genericFontFamilies = [\n  \"serif\",\n  \"sans-serif\",\n  \"monospace\",\n  \"cursive\",\n  \"fantasy\",\n  \"system-ui\"\n];\nconst _TextStyle = class {\n  constructor(style) {\n    this.styleID = 0;\n    this.reset();\n    deepCopyProperties(this, style, style);\n  }\n  clone() {\n    const clonedProperties = {};\n    deepCopyProperties(clonedProperties, this, _TextStyle.defaultStyle);\n    return new _TextStyle(clonedProperties);\n  }\n  reset() {\n    deepCopyProperties(this, _TextStyle.defaultStyle, _TextStyle.defaultStyle);\n  }\n  get align() {\n    return this._align;\n  }\n  set align(align) {\n    if (this._align !== align) {\n      this._align = align;\n      this.styleID++;\n    }\n  }\n  get breakWords() {\n    return this._breakWords;\n  }\n  set breakWords(breakWords) {\n    if (this._breakWords !== breakWords) {\n      this._breakWords = breakWords;\n      this.styleID++;\n    }\n  }\n  get dropShadow() {\n    return this._dropShadow;\n  }\n  set dropShadow(dropShadow) {\n    if (this._dropShadow !== dropShadow) {\n      this._dropShadow = dropShadow;\n      this.styleID++;\n    }\n  }\n  get dropShadowAlpha() {\n    return this._dropShadowAlpha;\n  }\n  set dropShadowAlpha(dropShadowAlpha) {\n    if (this._dropShadowAlpha !== dropShadowAlpha) {\n      this._dropShadowAlpha = dropShadowAlpha;\n      this.styleID++;\n    }\n  }\n  get dropShadowAngle() {\n    return this._dropShadowAngle;\n  }\n  set dropShadowAngle(dropShadowAngle) {\n    if (this._dropShadowAngle !== dropShadowAngle) {\n      this._dropShadowAngle = dropShadowAngle;\n      this.styleID++;\n    }\n  }\n  get dropShadowBlur() {\n    return this._dropShadowBlur;\n  }\n  set dropShadowBlur(dropShadowBlur) {\n    if (this._dropShadowBlur !== dropShadowBlur) {\n      this._dropShadowBlur = dropShadowBlur;\n      this.styleID++;\n    }\n  }\n  get dropShadowColor() {\n    return this._dropShadowColor;\n  }\n  set dropShadowColor(dropShadowColor) {\n    const outputColor = getColor(dropShadowColor);\n    if (this._dropShadowColor !== outputColor) {\n      this._dropShadowColor = outputColor;\n      this.styleID++;\n    }\n  }\n  get dropShadowDistance() {\n    return this._dropShadowDistance;\n  }\n  set dropShadowDistance(dropShadowDistance) {\n    if (this._dropShadowDistance !== dropShadowDistance) {\n      this._dropShadowDistance = dropShadowDistance;\n      this.styleID++;\n    }\n  }\n  get fill() {\n    return this._fill;\n  }\n  set fill(fill) {\n    const outputColor = getColor(fill);\n    if (this._fill !== outputColor) {\n      this._fill = outputColor;\n      this.styleID++;\n    }\n  }\n  get fillGradientType() {\n    return this._fillGradientType;\n  }\n  set fillGradientType(fillGradientType) {\n    if (this._fillGradientType !== fillGradientType) {\n      this._fillGradientType = fillGradientType;\n      this.styleID++;\n    }\n  }\n  get fillGradientStops() {\n    return this._fillGradientStops;\n  }\n  set fillGradientStops(fillGradientStops) {\n    if (!areArraysEqual(this._fillGradientStops, fillGradientStops)) {\n      this._fillGradientStops = fillGradientStops;\n      this.styleID++;\n    }\n  }\n  get fontFamily() {\n    return this._fontFamily;\n  }\n  set fontFamily(fontFamily) {\n    if (this.fontFamily !== fontFamily) {\n      this._fontFamily = fontFamily;\n      this.styleID++;\n    }\n  }\n  get fontSize() {\n    return this._fontSize;\n  }\n  set fontSize(fontSize) {\n    if (this._fontSize !== fontSize) {\n      this._fontSize = fontSize;\n      this.styleID++;\n    }\n  }\n  get fontStyle() {\n    return this._fontStyle;\n  }\n  set fontStyle(fontStyle) {\n    if (this._fontStyle !== fontStyle) {\n      this._fontStyle = fontStyle;\n      this.styleID++;\n    }\n  }\n  get fontVariant() {\n    return this._fontVariant;\n  }\n  set fontVariant(fontVariant) {\n    if (this._fontVariant !== fontVariant) {\n      this._fontVariant = fontVariant;\n      this.styleID++;\n    }\n  }\n  get fontWeight() {\n    return this._fontWeight;\n  }\n  set fontWeight(fontWeight) {\n    if (this._fontWeight !== fontWeight) {\n      this._fontWeight = fontWeight;\n      this.styleID++;\n    }\n  }\n  get letterSpacing() {\n    return this._letterSpacing;\n  }\n  set letterSpacing(letterSpacing) {\n    if (this._letterSpacing !== letterSpacing) {\n      this._letterSpacing = letterSpacing;\n      this.styleID++;\n    }\n  }\n  get lineHeight() {\n    return this._lineHeight;\n  }\n  set lineHeight(lineHeight) {\n    if (this._lineHeight !== lineHeight) {\n      this._lineHeight = lineHeight;\n      this.styleID++;\n    }\n  }\n  get leading() {\n    return this._leading;\n  }\n  set leading(leading) {\n    if (this._leading !== leading) {\n      this._leading = leading;\n      this.styleID++;\n    }\n  }\n  get lineJoin() {\n    return this._lineJoin;\n  }\n  set lineJoin(lineJoin) {\n    if (this._lineJoin !== lineJoin) {\n      this._lineJoin = lineJoin;\n      this.styleID++;\n    }\n  }\n  get miterLimit() {\n    return this._miterLimit;\n  }\n  set miterLimit(miterLimit) {\n    if (this._miterLimit !== miterLimit) {\n      this._miterLimit = miterLimit;\n      this.styleID++;\n    }\n  }\n  get padding() {\n    return this._padding;\n  }\n  set padding(padding) {\n    if (this._padding !== padding) {\n      this._padding = padding;\n      this.styleID++;\n    }\n  }\n  get stroke() {\n    return this._stroke;\n  }\n  set stroke(stroke) {\n    const outputColor = getColor(stroke);\n    if (this._stroke !== outputColor) {\n      this._stroke = outputColor;\n      this.styleID++;\n    }\n  }\n  get strokeThickness() {\n    return this._strokeThickness;\n  }\n  set strokeThickness(strokeThickness) {\n    if (this._strokeThickness !== strokeThickness) {\n      this._strokeThickness = strokeThickness;\n      this.styleID++;\n    }\n  }\n  get textBaseline() {\n    return this._textBaseline;\n  }\n  set textBaseline(textBaseline) {\n    if (this._textBaseline !== textBaseline) {\n      this._textBaseline = textBaseline;\n      this.styleID++;\n    }\n  }\n  get trim() {\n    return this._trim;\n  }\n  set trim(trim) {\n    if (this._trim !== trim) {\n      this._trim = trim;\n      this.styleID++;\n    }\n  }\n  get whiteSpace() {\n    return this._whiteSpace;\n  }\n  set whiteSpace(whiteSpace) {\n    if (this._whiteSpace !== whiteSpace) {\n      this._whiteSpace = whiteSpace;\n      this.styleID++;\n    }\n  }\n  get wordWrap() {\n    return this._wordWrap;\n  }\n  set wordWrap(wordWrap) {\n    if (this._wordWrap !== wordWrap) {\n      this._wordWrap = wordWrap;\n      this.styleID++;\n    }\n  }\n  get wordWrapWidth() {\n    return this._wordWrapWidth;\n  }\n  set wordWrapWidth(wordWrapWidth) {\n    if (this._wordWrapWidth !== wordWrapWidth) {\n      this._wordWrapWidth = wordWrapWidth;\n      this.styleID++;\n    }\n  }\n  toFontString() {\n    const fontSizeString = typeof this.fontSize === \"number\" ? `${this.fontSize}px` : this.fontSize;\n    let fontFamilies = this.fontFamily;\n    if (!Array.isArray(this.fontFamily)) {\n      fontFamilies = this.fontFamily.split(\",\");\n    }\n    for (let i = fontFamilies.length - 1; i >= 0; i--) {\n      let fontFamily = fontFamilies[i].trim();\n      if (!/([\\\"\\'])[^\\'\\\"]+\\1/.test(fontFamily) && !genericFontFamilies.includes(fontFamily)) {\n        fontFamily = `\"${fontFamily}\"`;\n      }\n      fontFamilies[i] = fontFamily;\n    }\n    return `${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${fontSizeString} ${fontFamilies.join(\",\")}`;\n  }\n};\nlet TextStyle = _TextStyle;\nTextStyle.defaultStyle = {\n  align: \"left\",\n  breakWords: false,\n  dropShadow: false,\n  dropShadowAlpha: 1,\n  dropShadowAngle: Math.PI / 6,\n  dropShadowBlur: 0,\n  dropShadowColor: \"black\",\n  dropShadowDistance: 5,\n  fill: \"black\",\n  fillGradientType: TEXT_GRADIENT.LINEAR_VERTICAL,\n  fillGradientStops: [],\n  fontFamily: \"Arial\",\n  fontSize: 26,\n  fontStyle: \"normal\",\n  fontVariant: \"normal\",\n  fontWeight: \"normal\",\n  leading: 0,\n  letterSpacing: 0,\n  lineHeight: 0,\n  lineJoin: \"miter\",\n  miterLimit: 10,\n  padding: 0,\n  stroke: \"black\",\n  strokeThickness: 0,\n  textBaseline: \"alphabetic\",\n  trim: false,\n  whiteSpace: \"pre\",\n  wordWrap: false,\n  wordWrapWidth: 100\n};\nfunction getSingleColor(color) {\n  if (typeof color === \"number\") {\n    return utils.hex2string(color);\n  } else if (typeof color === \"string\") {\n    if (color.startsWith(\"0x\")) {\n      color = color.replace(\"0x\", \"#\");\n    }\n  }\n  return color;\n}\nfunction getColor(color) {\n  if (!Array.isArray(color)) {\n    return getSingleColor(color);\n  } else {\n    for (let i = 0; i < color.length; ++i) {\n      color[i] = getSingleColor(color[i]);\n    }\n    return color;\n  }\n}\nfunction areArraysEqual(array1, array2) {\n  if (!Array.isArray(array1) || !Array.isArray(array2)) {\n    return false;\n  }\n  if (array1.length !== array2.length) {\n    return false;\n  }\n  for (let i = 0; i < array1.length; ++i) {\n    if (array1[i] !== array2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction deepCopyProperties(target, source, propertyObj) {\n  for (const prop in propertyObj) {\n    if (Array.isArray(source[prop])) {\n      target[prop] = source[prop].slice();\n    } else {\n      target[prop] = source[prop];\n    }\n  }\n}\n\nexport { TextStyle };\n//# sourceMappingURL=TextStyle.mjs.map\n","import { settings, Texture, Rectangle, utils } from '@pixi/core';\nimport { Sprite } from '@pixi/sprite';\nimport { TEXT_GRADIENT } from './const.mjs';\nimport { TextMetrics } from './TextMetrics.mjs';\nimport { TextStyle } from './TextStyle.mjs';\n\nconst defaultDestroyOptions = {\n  texture: true,\n  children: false,\n  baseTexture: true\n};\nconst _Text = class extends Sprite {\n  constructor(text, style, canvas) {\n    let ownCanvas = false;\n    if (!canvas) {\n      canvas = settings.ADAPTER.createCanvas();\n      ownCanvas = true;\n    }\n    canvas.width = 3;\n    canvas.height = 3;\n    const texture = Texture.from(canvas);\n    texture.orig = new Rectangle();\n    texture.trim = new Rectangle();\n    super(texture);\n    this._ownCanvas = ownCanvas;\n    this.canvas = canvas;\n    this.context = canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    });\n    this._resolution = _Text.defaultResolution ?? settings.RESOLUTION;\n    this._autoResolution = _Text.defaultAutoResolution;\n    this._text = null;\n    this._style = null;\n    this._styleListener = null;\n    this._font = \"\";\n    this.text = text;\n    this.style = style;\n    this.localStyleID = -1;\n  }\n  static get experimentalLetterSpacing() {\n    return TextMetrics.experimentalLetterSpacing;\n  }\n  static set experimentalLetterSpacing(value) {\n    utils.deprecation(\"7.1.0\", \"Text.experimentalLetterSpacing is deprecated, use TextMetrics.experimentalLetterSpacing\");\n    TextMetrics.experimentalLetterSpacing = value;\n  }\n  updateText(respectDirty) {\n    const style = this._style;\n    if (this.localStyleID !== style.styleID) {\n      this.dirty = true;\n      this.localStyleID = style.styleID;\n    }\n    if (!this.dirty && respectDirty) {\n      return;\n    }\n    this._font = this._style.toFontString();\n    const context = this.context;\n    const measured = TextMetrics.measureText(this._text || \" \", this._style, this._style.wordWrap, this.canvas);\n    const width = measured.width;\n    const height = measured.height;\n    const lines = measured.lines;\n    const lineHeight = measured.lineHeight;\n    const lineWidths = measured.lineWidths;\n    const maxLineWidth = measured.maxLineWidth;\n    const fontProperties = measured.fontProperties;\n    this.canvas.width = Math.ceil(Math.ceil(Math.max(1, width) + style.padding * 2) * this._resolution);\n    this.canvas.height = Math.ceil(Math.ceil(Math.max(1, height) + style.padding * 2) * this._resolution);\n    context.scale(this._resolution, this._resolution);\n    context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n    context.font = this._font;\n    context.lineWidth = style.strokeThickness;\n    context.textBaseline = style.textBaseline;\n    context.lineJoin = style.lineJoin;\n    context.miterLimit = style.miterLimit;\n    let linePositionX;\n    let linePositionY;\n    const passesCount = style.dropShadow ? 2 : 1;\n    for (let i = 0; i < passesCount; ++i) {\n      const isShadowPass = style.dropShadow && i === 0;\n      const dsOffsetText = isShadowPass ? Math.ceil(Math.max(1, height) + style.padding * 2) : 0;\n      const dsOffsetShadow = dsOffsetText * this._resolution;\n      if (isShadowPass) {\n        context.fillStyle = \"black\";\n        context.strokeStyle = \"black\";\n        const dropShadowColor = style.dropShadowColor;\n        const rgb = utils.hex2rgb(typeof dropShadowColor === \"number\" ? dropShadowColor : utils.string2hex(dropShadowColor));\n        const dropShadowBlur = style.dropShadowBlur * this._resolution;\n        const dropShadowDistance = style.dropShadowDistance * this._resolution;\n        context.shadowColor = `rgba(${rgb[0] * 255},${rgb[1] * 255},${rgb[2] * 255},${style.dropShadowAlpha})`;\n        context.shadowBlur = dropShadowBlur;\n        context.shadowOffsetX = Math.cos(style.dropShadowAngle) * dropShadowDistance;\n        context.shadowOffsetY = Math.sin(style.dropShadowAngle) * dropShadowDistance + dsOffsetShadow;\n      } else {\n        context.fillStyle = this._generateFillStyle(style, lines, measured);\n        context.strokeStyle = style.stroke;\n        context.shadowColor = \"black\";\n        context.shadowBlur = 0;\n        context.shadowOffsetX = 0;\n        context.shadowOffsetY = 0;\n      }\n      let linePositionYShift = (lineHeight - fontProperties.fontSize) / 2;\n      if (lineHeight - fontProperties.fontSize < 0) {\n        linePositionYShift = 0;\n      }\n      for (let i2 = 0; i2 < lines.length; i2++) {\n        linePositionX = style.strokeThickness / 2;\n        linePositionY = style.strokeThickness / 2 + i2 * lineHeight + fontProperties.ascent + linePositionYShift;\n        if (style.align === \"right\") {\n          linePositionX += maxLineWidth - lineWidths[i2];\n        } else if (style.align === \"center\") {\n          linePositionX += (maxLineWidth - lineWidths[i2]) / 2;\n        }\n        if (style.stroke && style.strokeThickness) {\n          this.drawLetterSpacing(lines[i2], linePositionX + style.padding, linePositionY + style.padding - dsOffsetText, true);\n        }\n        if (style.fill) {\n          this.drawLetterSpacing(lines[i2], linePositionX + style.padding, linePositionY + style.padding - dsOffsetText);\n        }\n      }\n    }\n    this.updateTexture();\n  }\n  drawLetterSpacing(text, x, y, isStroke = false) {\n    const style = this._style;\n    const letterSpacing = style.letterSpacing;\n    let useExperimentalLetterSpacing = false;\n    if (TextMetrics.experimentalLetterSpacingSupported) {\n      if (TextMetrics.experimentalLetterSpacing) {\n        this.context.letterSpacing = `${letterSpacing}px`;\n        this.context.textLetterSpacing = `${letterSpacing}px`;\n        useExperimentalLetterSpacing = true;\n      } else {\n        this.context.letterSpacing = \"0px\";\n        this.context.textLetterSpacing = \"0px\";\n      }\n    }\n    if (letterSpacing === 0 || useExperimentalLetterSpacing) {\n      if (isStroke) {\n        this.context.strokeText(text, x, y);\n      } else {\n        this.context.fillText(text, x, y);\n      }\n      return;\n    }\n    let currentPosition = x;\n    const stringArray = TextMetrics.graphemeSegmenter(text);\n    let previousWidth = this.context.measureText(text).width;\n    let currentWidth = 0;\n    for (let i = 0; i < stringArray.length; ++i) {\n      const currentChar = stringArray[i];\n      if (isStroke) {\n        this.context.strokeText(currentChar, currentPosition, y);\n      } else {\n        this.context.fillText(currentChar, currentPosition, y);\n      }\n      let textStr = \"\";\n      for (let j = i + 1; j < stringArray.length; ++j) {\n        textStr += stringArray[j];\n      }\n      currentWidth = this.context.measureText(textStr).width;\n      currentPosition += previousWidth - currentWidth + letterSpacing;\n      previousWidth = currentWidth;\n    }\n  }\n  updateTexture() {\n    const canvas = this.canvas;\n    if (this._style.trim) {\n      const trimmed = utils.trimCanvas(canvas);\n      if (trimmed.data) {\n        canvas.width = trimmed.width;\n        canvas.height = trimmed.height;\n        this.context.putImageData(trimmed.data, 0, 0);\n      }\n    }\n    const texture = this._texture;\n    const style = this._style;\n    const padding = style.trim ? 0 : style.padding;\n    const baseTexture = texture.baseTexture;\n    texture.trim.width = texture._frame.width = canvas.width / this._resolution;\n    texture.trim.height = texture._frame.height = canvas.height / this._resolution;\n    texture.trim.x = -padding;\n    texture.trim.y = -padding;\n    texture.orig.width = texture._frame.width - padding * 2;\n    texture.orig.height = texture._frame.height - padding * 2;\n    this._onTextureUpdate();\n    baseTexture.setRealSize(canvas.width, canvas.height, this._resolution);\n    texture.updateUvs();\n    this.dirty = false;\n  }\n  _render(renderer) {\n    if (this._autoResolution && this._resolution !== renderer.resolution) {\n      this._resolution = renderer.resolution;\n      this.dirty = true;\n    }\n    this.updateText(true);\n    super._render(renderer);\n  }\n  updateTransform() {\n    this.updateText(true);\n    super.updateTransform();\n  }\n  getBounds(skipUpdate, rect) {\n    this.updateText(true);\n    if (this._textureID === -1) {\n      skipUpdate = false;\n    }\n    return super.getBounds(skipUpdate, rect);\n  }\n  getLocalBounds(rect) {\n    this.updateText(true);\n    return super.getLocalBounds.call(this, rect);\n  }\n  _calculateBounds() {\n    this.calculateVertices();\n    this._bounds.addQuad(this.vertexData);\n  }\n  _generateFillStyle(style, lines, metrics) {\n    const fillStyle = style.fill;\n    if (!Array.isArray(fillStyle)) {\n      return fillStyle;\n    } else if (fillStyle.length === 1) {\n      return fillStyle[0];\n    }\n    let gradient;\n    const dropShadowCorrection = style.dropShadow ? style.dropShadowDistance : 0;\n    const padding = style.padding || 0;\n    const width = this.canvas.width / this._resolution - dropShadowCorrection - padding * 2;\n    const height = this.canvas.height / this._resolution - dropShadowCorrection - padding * 2;\n    const fill = fillStyle.slice();\n    const fillGradientStops = style.fillGradientStops.slice();\n    if (!fillGradientStops.length) {\n      const lengthPlus1 = fill.length + 1;\n      for (let i = 1; i < lengthPlus1; ++i) {\n        fillGradientStops.push(i / lengthPlus1);\n      }\n    }\n    fill.unshift(fillStyle[0]);\n    fillGradientStops.unshift(0);\n    fill.push(fillStyle[fillStyle.length - 1]);\n    fillGradientStops.push(1);\n    if (style.fillGradientType === TEXT_GRADIENT.LINEAR_VERTICAL) {\n      gradient = this.context.createLinearGradient(width / 2, padding, width / 2, height + padding);\n      const textHeight = metrics.fontProperties.fontSize + style.strokeThickness;\n      for (let i = 0; i < lines.length; i++) {\n        const lastLineBottom = metrics.lineHeight * (i - 1) + textHeight;\n        const thisLineTop = metrics.lineHeight * i;\n        let thisLineGradientStart = thisLineTop;\n        if (i > 0 && lastLineBottom > thisLineTop) {\n          thisLineGradientStart = (thisLineTop + lastLineBottom) / 2;\n        }\n        const thisLineBottom = thisLineTop + textHeight;\n        const nextLineTop = metrics.lineHeight * (i + 1);\n        let thisLineGradientEnd = thisLineBottom;\n        if (i + 1 < lines.length && nextLineTop < thisLineBottom) {\n          thisLineGradientEnd = (thisLineBottom + nextLineTop) / 2;\n        }\n        const gradStopLineHeight = (thisLineGradientEnd - thisLineGradientStart) / height;\n        for (let j = 0; j < fill.length; j++) {\n          let lineStop = 0;\n          if (typeof fillGradientStops[j] === \"number\") {\n            lineStop = fillGradientStops[j];\n          } else {\n            lineStop = j / fill.length;\n          }\n          let globalStop = Math.min(1, Math.max(0, thisLineGradientStart / height + lineStop * gradStopLineHeight));\n          globalStop = Number(globalStop.toFixed(5));\n          gradient.addColorStop(globalStop, fill[j]);\n        }\n      }\n    } else {\n      gradient = this.context.createLinearGradient(padding, height / 2, width + padding, height / 2);\n      const totalIterations = fill.length + 1;\n      let currentIteration = 1;\n      for (let i = 0; i < fill.length; i++) {\n        let stop;\n        if (typeof fillGradientStops[i] === \"number\") {\n          stop = fillGradientStops[i];\n        } else {\n          stop = currentIteration / totalIterations;\n        }\n        gradient.addColorStop(stop, fill[i]);\n        currentIteration++;\n      }\n    }\n    return gradient;\n  }\n  destroy(options) {\n    if (typeof options === \"boolean\") {\n      options = { children: options };\n    }\n    options = Object.assign({}, defaultDestroyOptions, options);\n    super.destroy(options);\n    if (this._ownCanvas) {\n      this.canvas.height = this.canvas.width = 0;\n    }\n    this.context = null;\n    this.canvas = null;\n    this._style = null;\n  }\n  get width() {\n    this.updateText(true);\n    return Math.abs(this.scale.x) * this._texture.orig.width;\n  }\n  set width(value) {\n    this.updateText(true);\n    const s = utils.sign(this.scale.x) || 1;\n    this.scale.x = s * value / this._texture.orig.width;\n    this._width = value;\n  }\n  get height() {\n    this.updateText(true);\n    return Math.abs(this.scale.y) * this._texture.orig.height;\n  }\n  set height(value) {\n    this.updateText(true);\n    const s = utils.sign(this.scale.y) || 1;\n    this.scale.y = s * value / this._texture.orig.height;\n    this._height = value;\n  }\n  get style() {\n    return this._style;\n  }\n  set style(style) {\n    style = style || {};\n    if (style instanceof TextStyle) {\n      this._style = style;\n    } else {\n      this._style = new TextStyle(style);\n    }\n    this.localStyleID = -1;\n    this.dirty = true;\n  }\n  get text() {\n    return this._text;\n  }\n  set text(text) {\n    text = String(text === null || text === void 0 ? \"\" : text);\n    if (this._text === text) {\n      return;\n    }\n    this._text = text;\n    this.dirty = true;\n  }\n  get resolution() {\n    return this._resolution;\n  }\n  set resolution(value) {\n    this._autoResolution = false;\n    if (this._resolution === value) {\n      return;\n    }\n    this._resolution = value;\n    this.dirty = true;\n  }\n};\nlet Text = _Text;\nText.defaultAutoResolution = true;\n\nexport { Text };\n//# sourceMappingURL=Text.mjs.map\n","class CountLimiter {\n  constructor(maxItemsPerFrame) {\n    this.maxItemsPerFrame = maxItemsPerFrame;\n    this.itemsLeft = 0;\n  }\n  beginFrame() {\n    this.itemsLeft = this.maxItemsPerFrame;\n  }\n  allowedToUpload() {\n    return this.itemsLeft-- > 0;\n  }\n}\n\nexport { CountLimiter };\n//# sourceMappingURL=CountLimiter.mjs.map\n","import { Texture, BaseTexture, Ticker, UPDATE_PRIORITY } from '@pixi/core';\nimport { Container } from '@pixi/display';\nimport { Text, TextStyle, TextMetrics } from '@pixi/text';\nimport { CountLimiter } from './CountLimiter.mjs';\n\nfunction findMultipleBaseTextures(item, queue) {\n  let result = false;\n  if (item?._textures?.length) {\n    for (let i = 0; i < item._textures.length; i++) {\n      if (item._textures[i] instanceof Texture) {\n        const baseTexture = item._textures[i].baseTexture;\n        if (!queue.includes(baseTexture)) {\n          queue.push(baseTexture);\n          result = true;\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction findBaseTexture(item, queue) {\n  if (item.baseTexture instanceof BaseTexture) {\n    const texture = item.baseTexture;\n    if (!queue.includes(texture)) {\n      queue.push(texture);\n    }\n    return true;\n  }\n  return false;\n}\nfunction findTexture(item, queue) {\n  if (item._texture && item._texture instanceof Texture) {\n    const texture = item._texture.baseTexture;\n    if (!queue.includes(texture)) {\n      queue.push(texture);\n    }\n    return true;\n  }\n  return false;\n}\nfunction drawText(_helper, item) {\n  if (item instanceof Text) {\n    item.updateText(true);\n    return true;\n  }\n  return false;\n}\nfunction calculateTextStyle(_helper, item) {\n  if (item instanceof TextStyle) {\n    const font = item.toFontString();\n    TextMetrics.measureFont(font);\n    return true;\n  }\n  return false;\n}\nfunction findText(item, queue) {\n  if (item instanceof Text) {\n    if (!queue.includes(item.style)) {\n      queue.push(item.style);\n    }\n    if (!queue.includes(item)) {\n      queue.push(item);\n    }\n    const texture = item._texture.baseTexture;\n    if (!queue.includes(texture)) {\n      queue.push(texture);\n    }\n    return true;\n  }\n  return false;\n}\nfunction findTextStyle(item, queue) {\n  if (item instanceof TextStyle) {\n    if (!queue.includes(item)) {\n      queue.push(item);\n    }\n    return true;\n  }\n  return false;\n}\nconst _BasePrepare = class {\n  constructor(renderer) {\n    this.limiter = new CountLimiter(_BasePrepare.uploadsPerFrame);\n    this.renderer = renderer;\n    this.uploadHookHelper = null;\n    this.queue = [];\n    this.addHooks = [];\n    this.uploadHooks = [];\n    this.completes = [];\n    this.ticking = false;\n    this.delayedTick = () => {\n      if (!this.queue) {\n        return;\n      }\n      this.prepareItems();\n    };\n    this.registerFindHook(findText);\n    this.registerFindHook(findTextStyle);\n    this.registerFindHook(findMultipleBaseTextures);\n    this.registerFindHook(findBaseTexture);\n    this.registerFindHook(findTexture);\n    this.registerUploadHook(drawText);\n    this.registerUploadHook(calculateTextStyle);\n  }\n  upload(item) {\n    return new Promise((resolve) => {\n      if (item) {\n        this.add(item);\n      }\n      if (this.queue.length) {\n        this.completes.push(resolve);\n        if (!this.ticking) {\n          this.ticking = true;\n          Ticker.system.addOnce(this.tick, this, UPDATE_PRIORITY.UTILITY);\n        }\n      } else {\n        resolve();\n      }\n    });\n  }\n  tick() {\n    setTimeout(this.delayedTick, 0);\n  }\n  prepareItems() {\n    this.limiter.beginFrame();\n    while (this.queue.length && this.limiter.allowedToUpload()) {\n      const item = this.queue[0];\n      let uploaded = false;\n      if (item && !item._destroyed) {\n        for (let i = 0, len = this.uploadHooks.length; i < len; i++) {\n          if (this.uploadHooks[i](this.uploadHookHelper, item)) {\n            this.queue.shift();\n            uploaded = true;\n            break;\n          }\n        }\n      }\n      if (!uploaded) {\n        this.queue.shift();\n      }\n    }\n    if (!this.queue.length) {\n      this.ticking = false;\n      const completes = this.completes.slice(0);\n      this.completes.length = 0;\n      for (let i = 0, len = completes.length; i < len; i++) {\n        completes[i]();\n      }\n    } else {\n      Ticker.system.addOnce(this.tick, this, UPDATE_PRIORITY.UTILITY);\n    }\n  }\n  registerFindHook(addHook) {\n    if (addHook) {\n      this.addHooks.push(addHook);\n    }\n    return this;\n  }\n  registerUploadHook(uploadHook) {\n    if (uploadHook) {\n      this.uploadHooks.push(uploadHook);\n    }\n    return this;\n  }\n  add(item) {\n    for (let i = 0, len = this.addHooks.length; i < len; i++) {\n      if (this.addHooks[i](item, this.queue)) {\n        break;\n      }\n    }\n    if (item instanceof Container) {\n      for (let i = item.children.length - 1; i >= 0; i--) {\n        this.add(item.children[i]);\n      }\n    }\n    return this;\n  }\n  destroy() {\n    if (this.ticking) {\n      Ticker.system.remove(this.tick, this);\n    }\n    this.ticking = false;\n    this.addHooks = null;\n    this.uploadHooks = null;\n    this.renderer = null;\n    this.completes = null;\n    this.queue = null;\n    this.limiter = null;\n    this.uploadHookHelper = null;\n  }\n};\nlet BasePrepare = _BasePrepare;\nBasePrepare.uploadsPerFrame = 4;\n\nexport { BasePrepare };\n//# sourceMappingURL=BasePrepare.mjs.map\n","import { settings, utils } from '@pixi/core';\nexport { settings } from '@pixi/core';\nimport { BasePrepare } from './BasePrepare.mjs';\n\nObject.defineProperties(settings, {\n  UPLOADS_PER_FRAME: {\n    get() {\n      return BasePrepare.uploadsPerFrame;\n    },\n    set(value) {\n      utils.deprecation(\"7.1.0\", \"settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame\");\n      BasePrepare.uploadsPerFrame = value;\n    }\n  }\n});\n//# sourceMappingURL=settings.mjs.map\n","import { BaseTexture, ExtensionType, extensions } from '@pixi/core';\nimport { Graphics } from '@pixi/graphics';\nimport { BasePrepare } from './BasePrepare.mjs';\n\nfunction uploadBaseTextures(renderer, item) {\n  if (item instanceof BaseTexture) {\n    if (!item._glTextures[renderer.CONTEXT_UID]) {\n      renderer.texture.bind(item);\n    }\n    return true;\n  }\n  return false;\n}\nfunction uploadGraphics(renderer, item) {\n  if (!(item instanceof Graphics)) {\n    return false;\n  }\n  const { geometry } = item;\n  item.finishPoly();\n  geometry.updateBatches();\n  const { batches } = geometry;\n  for (let i = 0; i < batches.length; i++) {\n    const { texture } = batches[i].style;\n    if (texture) {\n      uploadBaseTextures(renderer, texture.baseTexture);\n    }\n  }\n  if (!geometry.batchable) {\n    renderer.geometry.bind(geometry, item._resolveDirectShader(renderer));\n  }\n  return true;\n}\nfunction findGraphics(item, queue) {\n  if (item instanceof Graphics) {\n    queue.push(item);\n    return true;\n  }\n  return false;\n}\nclass Prepare extends BasePrepare {\n  constructor(renderer) {\n    super(renderer);\n    this.uploadHookHelper = this.renderer;\n    this.registerFindHook(findGraphics);\n    this.registerUploadHook(uploadBaseTextures);\n    this.registerUploadHook(uploadGraphics);\n  }\n}\nPrepare.extension = {\n  name: \"prepare\",\n  type: ExtensionType.RendererSystem\n};\nextensions.add(Prepare);\n\nexport { Prepare };\n//# sourceMappingURL=Prepare.mjs.map\n","class TimeLimiter {\n  constructor(maxMilliseconds) {\n    this.maxMilliseconds = maxMilliseconds;\n    this.frameStart = 0;\n  }\n  beginFrame() {\n    this.frameStart = Date.now();\n  }\n  allowedToUpload() {\n    return Date.now() - this.frameStart < this.maxMilliseconds;\n  }\n}\n\nexport { TimeLimiter };\n//# sourceMappingURL=TimeLimiter.mjs.map\n","import { Texture, Ticker, UPDATE_PRIORITY } from '@pixi/core';\nimport { Sprite } from '@pixi/sprite';\n\nclass AnimatedSprite extends Sprite {\n  constructor(textures, autoUpdate = true) {\n    super(textures[0] instanceof Texture ? textures[0] : textures[0].texture);\n    this._textures = null;\n    this._durations = null;\n    this._autoUpdate = autoUpdate;\n    this._isConnectedToTicker = false;\n    this.animationSpeed = 1;\n    this.loop = true;\n    this.updateAnchor = false;\n    this.onComplete = null;\n    this.onFrameChange = null;\n    this.onLoop = null;\n    this._currentTime = 0;\n    this._playing = false;\n    this._previousFrame = null;\n    this.textures = textures;\n  }\n  stop() {\n    if (!this._playing) {\n      return;\n    }\n    this._playing = false;\n    if (this._autoUpdate && this._isConnectedToTicker) {\n      Ticker.shared.remove(this.update, this);\n      this._isConnectedToTicker = false;\n    }\n  }\n  play() {\n    if (this._playing) {\n      return;\n    }\n    this._playing = true;\n    if (this._autoUpdate && !this._isConnectedToTicker) {\n      Ticker.shared.add(this.update, this, UPDATE_PRIORITY.HIGH);\n      this._isConnectedToTicker = true;\n    }\n  }\n  gotoAndStop(frameNumber) {\n    this.stop();\n    this.currentFrame = frameNumber;\n  }\n  gotoAndPlay(frameNumber) {\n    this.currentFrame = frameNumber;\n    this.play();\n  }\n  update(deltaTime) {\n    if (!this._playing) {\n      return;\n    }\n    const elapsed = this.animationSpeed * deltaTime;\n    const previousFrame = this.currentFrame;\n    if (this._durations !== null) {\n      let lag = this._currentTime % 1 * this._durations[this.currentFrame];\n      lag += elapsed / 60 * 1e3;\n      while (lag < 0) {\n        this._currentTime--;\n        lag += this._durations[this.currentFrame];\n      }\n      const sign = Math.sign(this.animationSpeed * deltaTime);\n      this._currentTime = Math.floor(this._currentTime);\n      while (lag >= this._durations[this.currentFrame]) {\n        lag -= this._durations[this.currentFrame] * sign;\n        this._currentTime += sign;\n      }\n      this._currentTime += lag / this._durations[this.currentFrame];\n    } else {\n      this._currentTime += elapsed;\n    }\n    if (this._currentTime < 0 && !this.loop) {\n      this.gotoAndStop(0);\n      if (this.onComplete) {\n        this.onComplete();\n      }\n    } else if (this._currentTime >= this._textures.length && !this.loop) {\n      this.gotoAndStop(this._textures.length - 1);\n      if (this.onComplete) {\n        this.onComplete();\n      }\n    } else if (previousFrame !== this.currentFrame) {\n      if (this.loop && this.onLoop) {\n        if (this.animationSpeed > 0 && this.currentFrame < previousFrame || this.animationSpeed < 0 && this.currentFrame > previousFrame) {\n          this.onLoop();\n        }\n      }\n      this.updateTexture();\n    }\n  }\n  updateTexture() {\n    const currentFrame = this.currentFrame;\n    if (this._previousFrame === currentFrame) {\n      return;\n    }\n    this._previousFrame = currentFrame;\n    this._texture = this._textures[currentFrame];\n    this._textureID = -1;\n    this._textureTrimmedID = -1;\n    this._cachedTint = 16777215;\n    this.uvs = this._texture._uvs.uvsFloat32;\n    if (this.updateAnchor) {\n      this._anchor.copyFrom(this._texture.defaultAnchor);\n    }\n    if (this.onFrameChange) {\n      this.onFrameChange(this.currentFrame);\n    }\n  }\n  destroy(options) {\n    this.stop();\n    super.destroy(options);\n    this.onComplete = null;\n    this.onFrameChange = null;\n    this.onLoop = null;\n  }\n  static fromFrames(frames) {\n    const textures = [];\n    for (let i = 0; i < frames.length; ++i) {\n      textures.push(Texture.from(frames[i]));\n    }\n    return new AnimatedSprite(textures);\n  }\n  static fromImages(images) {\n    const textures = [];\n    for (let i = 0; i < images.length; ++i) {\n      textures.push(Texture.from(images[i]));\n    }\n    return new AnimatedSprite(textures);\n  }\n  get totalFrames() {\n    return this._textures.length;\n  }\n  get textures() {\n    return this._textures;\n  }\n  set textures(value) {\n    if (value[0] instanceof Texture) {\n      this._textures = value;\n      this._durations = null;\n    } else {\n      this._textures = [];\n      this._durations = [];\n      for (let i = 0; i < value.length; i++) {\n        this._textures.push(value[i].texture);\n        this._durations.push(value[i].time);\n      }\n    }\n    this._previousFrame = null;\n    this.gotoAndStop(0);\n    this.updateTexture();\n  }\n  get currentFrame() {\n    let currentFrame = Math.floor(this._currentTime) % this._textures.length;\n    if (currentFrame < 0) {\n      currentFrame += this._textures.length;\n    }\n    return currentFrame;\n  }\n  set currentFrame(value) {\n    if (value < 0 || value > this.totalFrames - 1) {\n      throw new Error(`[AnimatedSprite]: Invalid frame index value ${value}, expected to be between 0 and totalFrames ${this.totalFrames}.`);\n    }\n    const previousFrame = this.currentFrame;\n    this._currentTime = value;\n    if (previousFrame !== this.currentFrame) {\n      this.updateTexture();\n    }\n  }\n  get playing() {\n    return this._playing;\n  }\n  get autoUpdate() {\n    return this._autoUpdate;\n  }\n  set autoUpdate(value) {\n    if (value !== this._autoUpdate) {\n      this._autoUpdate = value;\n      if (!this._autoUpdate && this._isConnectedToTicker) {\n        Ticker.shared.remove(this.update, this);\n        this._isConnectedToTicker = false;\n      } else if (this._autoUpdate && !this._isConnectedToTicker && this._playing) {\n        Ticker.shared.add(this.update, this);\n        this._isConnectedToTicker = true;\n      }\n    }\n  }\n}\n\nexport { AnimatedSprite };\n//# sourceMappingURL=AnimatedSprite.mjs.map\n","import { Point, Transform, TextureMatrix, Rectangle, Texture } from '@pixi/core';\nimport { Sprite } from '@pixi/sprite';\n\nconst tempPoint = new Point();\nclass TilingSprite extends Sprite {\n  constructor(texture, width = 100, height = 100) {\n    super(texture);\n    this.tileTransform = new Transform();\n    this._width = width;\n    this._height = height;\n    this.uvMatrix = this.texture.uvMatrix || new TextureMatrix(texture);\n    this.pluginName = \"tilingSprite\";\n    this.uvRespectAnchor = false;\n  }\n  get clampMargin() {\n    return this.uvMatrix.clampMargin;\n  }\n  set clampMargin(value) {\n    this.uvMatrix.clampMargin = value;\n    this.uvMatrix.update(true);\n  }\n  get tileScale() {\n    return this.tileTransform.scale;\n  }\n  set tileScale(value) {\n    this.tileTransform.scale.copyFrom(value);\n  }\n  get tilePosition() {\n    return this.tileTransform.position;\n  }\n  set tilePosition(value) {\n    this.tileTransform.position.copyFrom(value);\n  }\n  _onTextureUpdate() {\n    if (this.uvMatrix) {\n      this.uvMatrix.texture = this._texture;\n    }\n    this._cachedTint = 16777215;\n  }\n  _render(renderer) {\n    const texture = this._texture;\n    if (!texture || !texture.valid) {\n      return;\n    }\n    this.tileTransform.updateLocalTransform();\n    this.uvMatrix.update();\n    renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]);\n    renderer.plugins[this.pluginName].render(this);\n  }\n  _calculateBounds() {\n    const minX = this._width * -this._anchor._x;\n    const minY = this._height * -this._anchor._y;\n    const maxX = this._width * (1 - this._anchor._x);\n    const maxY = this._height * (1 - this._anchor._y);\n    this._bounds.addFrame(this.transform, minX, minY, maxX, maxY);\n  }\n  getLocalBounds(rect) {\n    if (this.children.length === 0) {\n      this._bounds.minX = this._width * -this._anchor._x;\n      this._bounds.minY = this._height * -this._anchor._y;\n      this._bounds.maxX = this._width * (1 - this._anchor._x);\n      this._bounds.maxY = this._height * (1 - this._anchor._y);\n      if (!rect) {\n        if (!this._localBoundsRect) {\n          this._localBoundsRect = new Rectangle();\n        }\n        rect = this._localBoundsRect;\n      }\n      return this._bounds.getRectangle(rect);\n    }\n    return super.getLocalBounds.call(this, rect);\n  }\n  containsPoint(point) {\n    this.worldTransform.applyInverse(point, tempPoint);\n    const width = this._width;\n    const height = this._height;\n    const x1 = -width * this.anchor._x;\n    if (tempPoint.x >= x1 && tempPoint.x < x1 + width) {\n      const y1 = -height * this.anchor._y;\n      if (tempPoint.y >= y1 && tempPoint.y < y1 + height) {\n        return true;\n      }\n    }\n    return false;\n  }\n  destroy(options) {\n    super.destroy(options);\n    this.tileTransform = null;\n    this.uvMatrix = null;\n  }\n  static from(source, options) {\n    const texture = source instanceof Texture ? source : Texture.from(source, options);\n    return new TilingSprite(texture, options.width, options.height);\n  }\n  get width() {\n    return this._width;\n  }\n  set width(value) {\n    this._width = value;\n  }\n  get height() {\n    return this._height;\n  }\n  set height(value) {\n    this._height = value;\n  }\n}\n\nexport { TilingSprite };\n//# sourceMappingURL=TilingSprite.mjs.map\n","var gl2FragmentSrc = \"#version 300 es\\n#define SHADER_NAME Tiling-Sprite-100\\n\\nprecision lowp float;\\n\\nin vec2 vTextureCoord;\\n\\nout vec4 fragmentColor;\\n\\nuniform sampler2D uSampler;\\nuniform vec4 uColor;\\nuniform mat3 uMapCoord;\\nuniform vec4 uClampFrame;\\nuniform vec2 uClampOffset;\\n\\nvoid main(void)\\n{\\n    vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);\\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\\n    vec2 unclamped = coord;\\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\\n\\n    vec4 texSample = texture(uSampler, coord, unclamped == coord ? 0.0f : -32.0f);// lod-bias very negative to force lod 0\\n\\n    fragmentColor = texSample * uColor;\\n}\\n\";\n\nexport { gl2FragmentSrc as default };\n//# sourceMappingURL=sprite-tiling.mjs.map\n","var gl2VertexSrc = \"#version 300 es\\n#define SHADER_NAME Tiling-Sprite-300\\n\\nprecision lowp float;\\n\\nin vec2 aVertexPosition;\\nin vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 translationMatrix;\\nuniform mat3 uTransform;\\n\\nout vec2 vTextureCoord;\\n\\nvoid main(void)\\n{\\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\\n}\\n\";\n\nexport { gl2VertexSrc as default };\n//# sourceMappingURL=sprite-tiling2.mjs.map\n","var gl1FragmentSrc = \"#version 100\\n#ifdef GL_EXT_shader_texture_lod\\n    #extension GL_EXT_shader_texture_lod : enable\\n#endif\\n#define SHADER_NAME Tiling-Sprite-100\\n\\nprecision lowp float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform vec4 uColor;\\nuniform mat3 uMapCoord;\\nuniform vec4 uClampFrame;\\nuniform vec2 uClampOffset;\\n\\nvoid main(void)\\n{\\n    vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);\\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\\n    vec2 unclamped = coord;\\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\\n\\n    #ifdef GL_EXT_shader_texture_lod\\n        vec4 texSample = unclamped == coord\\n            ? texture2D(uSampler, coord) \\n            : texture2DLodEXT(uSampler, coord, 0);\\n    #else\\n        vec4 texSample = texture2D(uSampler, coord);\\n    #endif\\n\\n    gl_FragColor = texSample * uColor;\\n}\\n\";\n\nexport { gl1FragmentSrc as default };\n//# sourceMappingURL=sprite-tiling-fallback.mjs.map\n","var gl1VertexSrc = \"#version 100\\n#define SHADER_NAME Tiling-Sprite-100\\n\\nprecision lowp float;\\n\\nattribute vec2 aVertexPosition;\\nattribute vec2 aTextureCoord;\\n\\nuniform mat3 projectionMatrix;\\nuniform mat3 translationMatrix;\\nuniform mat3 uTransform;\\n\\nvarying vec2 vTextureCoord;\\n\\nvoid main(void)\\n{\\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\n\\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\\n}\\n\";\n\nexport { gl1VertexSrc as default };\n//# sourceMappingURL=sprite-tiling-fallback2.mjs.map\n","var fragmentSimpleSrc = \"#version 100\\n#define SHADER_NAME Tiling-Sprite-Simple-100\\n\\nprecision lowp float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform vec4 uColor;\\n\\nvoid main(void)\\n{\\n    vec4 texSample = texture2D(uSampler, vTextureCoord);\\n    gl_FragColor = texSample * uColor;\\n}\\n\";\n\nexport { fragmentSimpleSrc as default };\n//# sourceMappingURL=sprite-tiling-simple.mjs.map\n","import { Matrix, ObjectRenderer, QuadUv, State, Shader, WRAP_MODES, utils, ExtensionType, extensions } from '@pixi/core';\nimport gl2FragmentSrc from './sprite-tiling.mjs';\nimport gl2VertexSrc from './sprite-tiling2.mjs';\nimport gl1FragmentSrc from './sprite-tiling-fallback.mjs';\nimport gl1VertexSrc from './sprite-tiling-fallback2.mjs';\nimport fragmentSimpleSrc from './sprite-tiling-simple.mjs';\n\nconst tempMat = new Matrix();\nclass TilingSpriteRenderer extends ObjectRenderer {\n  constructor(renderer) {\n    super(renderer);\n    renderer.runners.contextChange.add(this);\n    this.quad = new QuadUv();\n    this.state = State.for2d();\n  }\n  contextChange() {\n    const renderer = this.renderer;\n    const uniforms = { globals: renderer.globalUniforms };\n    this.simpleShader = Shader.from(gl1VertexSrc, fragmentSimpleSrc, uniforms);\n    this.shader = renderer.context.webGLVersion > 1 ? Shader.from(gl2VertexSrc, gl2FragmentSrc, uniforms) : Shader.from(gl1VertexSrc, gl1FragmentSrc, uniforms);\n  }\n  render(ts) {\n    const renderer = this.renderer;\n    const quad = this.quad;\n    let vertices = quad.vertices;\n    vertices[0] = vertices[6] = ts._width * -ts.anchor.x;\n    vertices[1] = vertices[3] = ts._height * -ts.anchor.y;\n    vertices[2] = vertices[4] = ts._width * (1 - ts.anchor.x);\n    vertices[5] = vertices[7] = ts._height * (1 - ts.anchor.y);\n    const anchorX = ts.uvRespectAnchor ? ts.anchor.x : 0;\n    const anchorY = ts.uvRespectAnchor ? ts.anchor.y : 0;\n    vertices = quad.uvs;\n    vertices[0] = vertices[6] = -anchorX;\n    vertices[1] = vertices[3] = -anchorY;\n    vertices[2] = vertices[4] = 1 - anchorX;\n    vertices[5] = vertices[7] = 1 - anchorY;\n    quad.invalidate();\n    const tex = ts._texture;\n    const baseTex = tex.baseTexture;\n    const premultiplied = baseTex.alphaMode > 0;\n    const lt = ts.tileTransform.localTransform;\n    const uv = ts.uvMatrix;\n    let isSimple = baseTex.isPowerOfTwo && tex.frame.width === baseTex.width && tex.frame.height === baseTex.height;\n    if (isSimple) {\n      if (!baseTex._glTextures[renderer.CONTEXT_UID]) {\n        if (baseTex.wrapMode === WRAP_MODES.CLAMP) {\n          baseTex.wrapMode = WRAP_MODES.REPEAT;\n        }\n      } else {\n        isSimple = baseTex.wrapMode !== WRAP_MODES.CLAMP;\n      }\n    }\n    const shader = isSimple ? this.simpleShader : this.shader;\n    const w = tex.width;\n    const h = tex.height;\n    const W = ts._width;\n    const H = ts._height;\n    tempMat.set(lt.a * w / W, lt.b * w / H, lt.c * h / W, lt.d * h / H, lt.tx / W, lt.ty / H);\n    tempMat.invert();\n    if (isSimple) {\n      tempMat.prepend(uv.mapCoord);\n    } else {\n      shader.uniforms.uMapCoord = uv.mapCoord.toArray(true);\n      shader.uniforms.uClampFrame = uv.uClampFrame;\n      shader.uniforms.uClampOffset = uv.uClampOffset;\n    }\n    shader.uniforms.uTransform = tempMat.toArray(true);\n    shader.uniforms.uColor = utils.premultiplyTintToRgba(ts.tint, ts.worldAlpha, shader.uniforms.uColor, premultiplied);\n    shader.uniforms.translationMatrix = ts.transform.worldTransform.toArray(true);\n    shader.uniforms.uSampler = tex;\n    renderer.shader.bind(shader);\n    renderer.geometry.bind(quad);\n    this.state.blendMode = utils.correctBlendMode(ts.blendMode, premultiplied);\n    renderer.state.set(this.state);\n    renderer.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0);\n  }\n}\nTilingSpriteRenderer.extension = {\n  name: \"tilingSprite\",\n  type: ExtensionType.RendererPlugin\n};\nextensions.add(TilingSpriteRenderer);\n\nexport { TilingSpriteRenderer };\n//# sourceMappingURL=TilingSpriteRenderer.mjs.map\n","import { Texture, BaseTexture, utils, Rectangle } from '@pixi/core';\n\nconst _Spritesheet = class {\n  constructor(texture, data, resolutionFilename = null) {\n    this.linkedSheets = [];\n    this._texture = texture instanceof Texture ? texture : null;\n    this.baseTexture = texture instanceof BaseTexture ? texture : this._texture.baseTexture;\n    this.textures = {};\n    this.animations = {};\n    this.data = data;\n    const resource = this.baseTexture.resource;\n    this.resolution = this._updateResolution(resolutionFilename || (resource ? resource.url : null));\n    this._frames = this.data.frames;\n    this._frameKeys = Object.keys(this._frames);\n    this._batchIndex = 0;\n    this._callback = null;\n  }\n  _updateResolution(resolutionFilename = null) {\n    const { scale } = this.data.meta;\n    let resolution = utils.getResolutionOfUrl(resolutionFilename, null);\n    if (resolution === null) {\n      resolution = parseFloat(scale ?? \"1\");\n    }\n    if (resolution !== 1) {\n      this.baseTexture.setResolution(resolution);\n    }\n    return resolution;\n  }\n  parse() {\n    return new Promise((resolve) => {\n      this._callback = resolve;\n      this._batchIndex = 0;\n      if (this._frameKeys.length <= _Spritesheet.BATCH_SIZE) {\n        this._processFrames(0);\n        this._processAnimations();\n        this._parseComplete();\n      } else {\n        this._nextBatch();\n      }\n    });\n  }\n  _processFrames(initialFrameIndex) {\n    let frameIndex = initialFrameIndex;\n    const maxFrames = _Spritesheet.BATCH_SIZE;\n    while (frameIndex - initialFrameIndex < maxFrames && frameIndex < this._frameKeys.length) {\n      const i = this._frameKeys[frameIndex];\n      const data = this._frames[i];\n      const rect = data.frame;\n      if (rect) {\n        let frame = null;\n        let trim = null;\n        const sourceSize = data.trimmed !== false && data.sourceSize ? data.sourceSize : data.frame;\n        const orig = new Rectangle(0, 0, Math.floor(sourceSize.w) / this.resolution, Math.floor(sourceSize.h) / this.resolution);\n        if (data.rotated) {\n          frame = new Rectangle(Math.floor(rect.x) / this.resolution, Math.floor(rect.y) / this.resolution, Math.floor(rect.h) / this.resolution, Math.floor(rect.w) / this.resolution);\n        } else {\n          frame = new Rectangle(Math.floor(rect.x) / this.resolution, Math.floor(rect.y) / this.resolution, Math.floor(rect.w) / this.resolution, Math.floor(rect.h) / this.resolution);\n        }\n        if (data.trimmed !== false && data.spriteSourceSize) {\n          trim = new Rectangle(Math.floor(data.spriteSourceSize.x) / this.resolution, Math.floor(data.spriteSourceSize.y) / this.resolution, Math.floor(rect.w) / this.resolution, Math.floor(rect.h) / this.resolution);\n        }\n        this.textures[i] = new Texture(this.baseTexture, frame, orig, trim, data.rotated ? 2 : 0, data.anchor);\n        Texture.addToCache(this.textures[i], i);\n      }\n      frameIndex++;\n    }\n  }\n  _processAnimations() {\n    const animations = this.data.animations || {};\n    for (const animName in animations) {\n      this.animations[animName] = [];\n      for (let i = 0; i < animations[animName].length; i++) {\n        const frameName = animations[animName][i];\n        this.animations[animName].push(this.textures[frameName]);\n      }\n    }\n  }\n  _parseComplete() {\n    const callback = this._callback;\n    this._callback = null;\n    this._batchIndex = 0;\n    callback.call(this, this.textures);\n  }\n  _nextBatch() {\n    this._processFrames(this._batchIndex * _Spritesheet.BATCH_SIZE);\n    this._batchIndex++;\n    setTimeout(() => {\n      if (this._batchIndex * _Spritesheet.BATCH_SIZE < this._frameKeys.length) {\n        this._nextBatch();\n      } else {\n        this._processAnimations();\n        this._parseComplete();\n      }\n    }, 0);\n  }\n  destroy(destroyBase = false) {\n    for (const i in this.textures) {\n      this.textures[i].destroy();\n    }\n    this._frames = null;\n    this._frameKeys = null;\n    this.data = null;\n    this.textures = null;\n    if (destroyBase) {\n      this._texture?.destroy();\n      this.baseTexture.destroy();\n    }\n    this._texture = null;\n    this.baseTexture = null;\n    this.linkedSheets = [];\n  }\n};\nlet Spritesheet = _Spritesheet;\nSpritesheet.BATCH_SIZE = 1e3;\n\nexport { Spritesheet };\n//# sourceMappingURL=Spritesheet.mjs.map\n","import { LoaderParserPriority, copySearchParams } from '@pixi/assets';\nimport { utils, ExtensionType, settings, extensions } from '@pixi/core';\nimport { Spritesheet } from './Spritesheet.mjs';\n\nconst validImages = [\"jpg\", \"png\", \"jpeg\", \"avif\", \"webp\"];\nfunction getCacheableAssets(keys, asset, ignoreMultiPack) {\n  const out = {};\n  keys.forEach((key) => {\n    out[key] = asset;\n  });\n  Object.keys(asset.textures).forEach((key) => {\n    out[key] = asset.textures[key];\n  });\n  if (!ignoreMultiPack) {\n    const basePath = utils.path.dirname(keys[0]);\n    asset.linkedSheets.forEach((item, i) => {\n      const out2 = getCacheableAssets([`${basePath}/${asset.data.meta.related_multi_packs[i]}`], item, true);\n      Object.assign(out, out2);\n    });\n  }\n  return out;\n}\nconst spritesheetAsset = {\n  extension: ExtensionType.Asset,\n  cache: {\n    test: (asset) => asset instanceof Spritesheet,\n    getCacheableAssets: (keys, asset) => getCacheableAssets(keys, asset, false)\n  },\n  resolver: {\n    test: (value) => {\n      const tempURL = value.split(\"?\")[0];\n      const split = tempURL.split(\".\");\n      const extension = split.pop();\n      const format = split.pop();\n      return extension === \"json\" && validImages.includes(format);\n    },\n    parse: (value) => {\n      const split = value.split(\".\");\n      return {\n        resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? \"1\"),\n        format: split[split.length - 2],\n        src: value\n      };\n    }\n  },\n  loader: {\n    extension: {\n      type: ExtensionType.LoadParser,\n      priority: LoaderParserPriority.Normal\n    },\n    async testParse(asset, options) {\n      return utils.path.extname(options.src).toLowerCase() === \".json\" && !!asset.frames;\n    },\n    async parse(asset, options, loader) {\n      let basePath = utils.path.dirname(options.src);\n      if (basePath && basePath.lastIndexOf(\"/\") !== basePath.length - 1) {\n        basePath += \"/\";\n      }\n      let imagePath = basePath + asset.meta.image;\n      imagePath = copySearchParams(imagePath, options.src);\n      const assets = await loader.load([imagePath]);\n      const texture = assets[imagePath];\n      const spritesheet = new Spritesheet(texture.baseTexture, asset, options.src);\n      await spritesheet.parse();\n      const multiPacks = asset?.meta?.related_multi_packs;\n      if (Array.isArray(multiPacks)) {\n        const promises = [];\n        for (const item of multiPacks) {\n          if (typeof item !== \"string\") {\n            continue;\n          }\n          let itemUrl = basePath + item;\n          if (options.data?.ignoreMultiPack) {\n            continue;\n          }\n          itemUrl = copySearchParams(itemUrl, options.src);\n          promises.push(loader.load({\n            src: itemUrl,\n            data: {\n              ignoreMultiPack: true\n            }\n          }));\n        }\n        const res = await Promise.all(promises);\n        spritesheet.linkedSheets = res;\n        res.forEach((item) => {\n          item.linkedSheets = [spritesheet].concat(spritesheet.linkedSheets.filter((sp) => sp !== item));\n        });\n      }\n      return spritesheet;\n    },\n    unload(spritesheet) {\n      spritesheet.destroy(true);\n    }\n  }\n};\nextensions.add(spritesheetAsset);\n\nexport { spritesheetAsset };\n//# sourceMappingURL=spritesheetAsset.mjs.map\n","class BitmapFontData {\n  constructor() {\n    this.info = [];\n    this.common = [];\n    this.page = [];\n    this.char = [];\n    this.kerning = [];\n    this.distanceField = [];\n  }\n}\n\nexport { BitmapFontData };\n//# sourceMappingURL=BitmapFontData.mjs.map\n","import { BitmapFontData } from '../BitmapFontData.mjs';\n\nclass TextFormat {\n  static test(data) {\n    return typeof data === \"string\" && data.startsWith(\"info face=\");\n  }\n  static parse(txt) {\n    const items = txt.match(/^[a-z]+\\s+.+$/gm);\n    const rawData = {\n      info: [],\n      common: [],\n      page: [],\n      char: [],\n      chars: [],\n      kerning: [],\n      kernings: [],\n      distanceField: []\n    };\n    for (const i in items) {\n      const name = items[i].match(/^[a-z]+/gm)[0];\n      const attributeList = items[i].match(/[a-zA-Z]+=([^\\s\"']+|\"([^\"]*)\")/gm);\n      const itemData = {};\n      for (const i2 in attributeList) {\n        const split = attributeList[i2].split(\"=\");\n        const key = split[0];\n        const strValue = split[1].replace(/\"/gm, \"\");\n        const floatValue = parseFloat(strValue);\n        const value = isNaN(floatValue) ? strValue : floatValue;\n        itemData[key] = value;\n      }\n      rawData[name].push(itemData);\n    }\n    const font = new BitmapFontData();\n    rawData.info.forEach((info) => font.info.push({\n      face: info.face,\n      size: parseInt(info.size, 10)\n    }));\n    rawData.common.forEach((common) => font.common.push({\n      lineHeight: parseInt(common.lineHeight, 10)\n    }));\n    rawData.page.forEach((page) => font.page.push({\n      id: parseInt(page.id, 10),\n      file: page.file\n    }));\n    rawData.char.forEach((char) => font.char.push({\n      id: parseInt(char.id, 10),\n      page: parseInt(char.page, 10),\n      x: parseInt(char.x, 10),\n      y: parseInt(char.y, 10),\n      width: parseInt(char.width, 10),\n      height: parseInt(char.height, 10),\n      xoffset: parseInt(char.xoffset, 10),\n      yoffset: parseInt(char.yoffset, 10),\n      xadvance: parseInt(char.xadvance, 10)\n    }));\n    rawData.kerning.forEach((kerning) => font.kerning.push({\n      first: parseInt(kerning.first, 10),\n      second: parseInt(kerning.second, 10),\n      amount: parseInt(kerning.amount, 10)\n    }));\n    rawData.distanceField.forEach((df) => font.distanceField.push({\n      distanceRange: parseInt(df.distanceRange, 10),\n      fieldType: df.fieldType\n    }));\n    return font;\n  }\n}\n\nexport { TextFormat };\n//# sourceMappingURL=TextFormat.mjs.map\n","import { BitmapFontData } from '../BitmapFontData.mjs';\n\nclass XMLFormat {\n  static test(data) {\n    const xml = data;\n    return \"getElementsByTagName\" in xml && xml.getElementsByTagName(\"page\").length && xml.getElementsByTagName(\"info\")[0].getAttribute(\"face\") !== null;\n  }\n  static parse(xml) {\n    const data = new BitmapFontData();\n    const info = xml.getElementsByTagName(\"info\");\n    const common = xml.getElementsByTagName(\"common\");\n    const page = xml.getElementsByTagName(\"page\");\n    const char = xml.getElementsByTagName(\"char\");\n    const kerning = xml.getElementsByTagName(\"kerning\");\n    const distanceField = xml.getElementsByTagName(\"distanceField\");\n    for (let i = 0; i < info.length; i++) {\n      data.info.push({\n        face: info[i].getAttribute(\"face\"),\n        size: parseInt(info[i].getAttribute(\"size\"), 10)\n      });\n    }\n    for (let i = 0; i < common.length; i++) {\n      data.common.push({\n        lineHeight: parseInt(common[i].getAttribute(\"lineHeight\"), 10)\n      });\n    }\n    for (let i = 0; i < page.length; i++) {\n      data.page.push({\n        id: parseInt(page[i].getAttribute(\"id\"), 10) || 0,\n        file: page[i].getAttribute(\"file\")\n      });\n    }\n    for (let i = 0; i < char.length; i++) {\n      const letter = char[i];\n      data.char.push({\n        id: parseInt(letter.getAttribute(\"id\"), 10),\n        page: parseInt(letter.getAttribute(\"page\"), 10) || 0,\n        x: parseInt(letter.getAttribute(\"x\"), 10),\n        y: parseInt(letter.getAttribute(\"y\"), 10),\n        width: parseInt(letter.getAttribute(\"width\"), 10),\n        height: parseInt(letter.getAttribute(\"height\"), 10),\n        xoffset: parseInt(letter.getAttribute(\"xoffset\"), 10),\n        yoffset: parseInt(letter.getAttribute(\"yoffset\"), 10),\n        xadvance: parseInt(letter.getAttribute(\"xadvance\"), 10)\n      });\n    }\n    for (let i = 0; i < kerning.length; i++) {\n      data.kerning.push({\n        first: parseInt(kerning[i].getAttribute(\"first\"), 10),\n        second: parseInt(kerning[i].getAttribute(\"second\"), 10),\n        amount: parseInt(kerning[i].getAttribute(\"amount\"), 10)\n      });\n    }\n    for (let i = 0; i < distanceField.length; i++) {\n      data.distanceField.push({\n        fieldType: distanceField[i].getAttribute(\"fieldType\"),\n        distanceRange: parseInt(distanceField[i].getAttribute(\"distanceRange\"), 10)\n      });\n    }\n    return data;\n  }\n}\n\nexport { XMLFormat };\n//# sourceMappingURL=XMLFormat.mjs.map\n","import { settings } from '@pixi/core';\nimport { XMLFormat } from './XMLFormat.mjs';\n\nclass XMLStringFormat {\n  static test(data) {\n    if (typeof data === \"string\" && data.includes(\"<font>\")) {\n      return XMLFormat.test(settings.ADAPTER.parseXML(data));\n    }\n    return false;\n  }\n  static parse(xmlTxt) {\n    return XMLFormat.parse(settings.ADAPTER.parseXML(xmlTxt));\n  }\n}\n\nexport { XMLStringFormat };\n//# sourceMappingURL=XMLStringFormat.mjs.map\n","import { TextFormat } from './TextFormat.mjs';\nexport { TextFormat } from './TextFormat.mjs';\nimport { XMLFormat } from './XMLFormat.mjs';\nexport { XMLFormat } from './XMLFormat.mjs';\nimport { XMLStringFormat } from './XMLStringFormat.mjs';\nexport { XMLStringFormat } from './XMLStringFormat.mjs';\n\nconst formats = [\n  TextFormat,\n  XMLFormat,\n  XMLStringFormat\n];\nfunction autoDetectFormat(data) {\n  for (let i = 0; i < formats.length; i++) {\n    if (formats[i].test(data)) {\n      return formats[i];\n    }\n  }\n  return null;\n}\n\nexport { autoDetectFormat };\n//# sourceMappingURL=index.mjs.map\n","import { TEXT_GRADIENT } from '@pixi/text';\n\nfunction generateFillStyle(canvas, context, style, resolution, lines, metrics) {\n  const fillStyle = style.fill;\n  if (!Array.isArray(fillStyle)) {\n    return fillStyle;\n  } else if (fillStyle.length === 1) {\n    return fillStyle[0];\n  }\n  let gradient;\n  const dropShadowCorrection = style.dropShadow ? style.dropShadowDistance : 0;\n  const padding = style.padding || 0;\n  const width = canvas.width / resolution - dropShadowCorrection - padding * 2;\n  const height = canvas.height / resolution - dropShadowCorrection - padding * 2;\n  const fill = fillStyle.slice();\n  const fillGradientStops = style.fillGradientStops.slice();\n  if (!fillGradientStops.length) {\n    const lengthPlus1 = fill.length + 1;\n    for (let i = 1; i < lengthPlus1; ++i) {\n      fillGradientStops.push(i / lengthPlus1);\n    }\n  }\n  fill.unshift(fillStyle[0]);\n  fillGradientStops.unshift(0);\n  fill.push(fillStyle[fillStyle.length - 1]);\n  fillGradientStops.push(1);\n  if (style.fillGradientType === TEXT_GRADIENT.LINEAR_VERTICAL) {\n    gradient = context.createLinearGradient(width / 2, padding, width / 2, height + padding);\n    let lastIterationStop = 0;\n    const textHeight = metrics.fontProperties.fontSize + style.strokeThickness;\n    const gradStopLineHeight = textHeight / height;\n    for (let i = 0; i < lines.length; i++) {\n      const thisLineTop = metrics.lineHeight * i;\n      for (let j = 0; j < fill.length; j++) {\n        let lineStop = 0;\n        if (typeof fillGradientStops[j] === \"number\") {\n          lineStop = fillGradientStops[j];\n        } else {\n          lineStop = j / fill.length;\n        }\n        const globalStop = thisLineTop / height + lineStop * gradStopLineHeight;\n        let clampedStop = Math.max(lastIterationStop, globalStop);\n        clampedStop = Math.min(clampedStop, 1);\n        gradient.addColorStop(clampedStop, fill[j]);\n        lastIterationStop = clampedStop;\n      }\n    }\n  } else {\n    gradient = context.createLinearGradient(padding, height / 2, width + padding, height / 2);\n    const totalIterations = fill.length + 1;\n    let currentIteration = 1;\n    for (let i = 0; i < fill.length; i++) {\n      let stop;\n      if (typeof fillGradientStops[i] === \"number\") {\n        stop = fillGradientStops[i];\n      } else {\n        stop = currentIteration / totalIterations;\n      }\n      gradient.addColorStop(stop, fill[i]);\n      currentIteration++;\n    }\n  }\n  return gradient;\n}\n\nexport { generateFillStyle };\n//# sourceMappingURL=generateFillStyle.mjs.map\n","import { utils } from '@pixi/core';\nimport { generateFillStyle } from './generateFillStyle.mjs';\n\nfunction drawGlyph(canvas, context, metrics, x, y, resolution, style) {\n  const char = metrics.text;\n  const fontProperties = metrics.fontProperties;\n  context.translate(x, y);\n  context.scale(resolution, resolution);\n  const tx = style.strokeThickness / 2;\n  const ty = -(style.strokeThickness / 2);\n  context.font = style.toFontString();\n  context.lineWidth = style.strokeThickness;\n  context.textBaseline = style.textBaseline;\n  context.lineJoin = style.lineJoin;\n  context.miterLimit = style.miterLimit;\n  context.fillStyle = generateFillStyle(canvas, context, style, resolution, [char], metrics);\n  context.strokeStyle = style.stroke;\n  if (style.dropShadow) {\n    const dropShadowColor = style.dropShadowColor;\n    const rgb = utils.hex2rgb(typeof dropShadowColor === \"number\" ? dropShadowColor : utils.string2hex(dropShadowColor));\n    const dropShadowBlur = style.dropShadowBlur * resolution;\n    const dropShadowDistance = style.dropShadowDistance * resolution;\n    context.shadowColor = `rgba(${rgb[0] * 255},${rgb[1] * 255},${rgb[2] * 255},${style.dropShadowAlpha})`;\n    context.shadowBlur = dropShadowBlur;\n    context.shadowOffsetX = Math.cos(style.dropShadowAngle) * dropShadowDistance;\n    context.shadowOffsetY = Math.sin(style.dropShadowAngle) * dropShadowDistance;\n  } else {\n    context.shadowColor = \"black\";\n    context.shadowBlur = 0;\n    context.shadowOffsetX = 0;\n    context.shadowOffsetY = 0;\n  }\n  if (style.stroke && style.strokeThickness) {\n    context.strokeText(char, tx, ty + metrics.lineHeight - fontProperties.descent);\n  }\n  if (style.fill) {\n    context.fillText(char, tx, ty + metrics.lineHeight - fontProperties.descent);\n  }\n  context.setTransform(1, 0, 0, 1, 0, 0);\n  context.fillStyle = \"rgba(0, 0, 0, 0)\";\n}\n\nexport { drawGlyph };\n//# sourceMappingURL=drawGlyph.mjs.map\n","function extractCharCode(str) {\n  return str.codePointAt ? str.codePointAt(0) : str.charCodeAt(0);\n}\n\nexport { extractCharCode };\n//# sourceMappingURL=extractCharCode.mjs.map\n","function splitTextToCharacters(text) {\n  return Array.from ? Array.from(text) : text.split(\"\");\n}\n\nexport { splitTextToCharacters };\n//# sourceMappingURL=splitTextToCharacters.mjs.map\n","import { splitTextToCharacters } from './splitTextToCharacters.mjs';\n\nfunction resolveCharacters(chars) {\n  if (typeof chars === \"string\") {\n    chars = [chars];\n  }\n  const result = [];\n  for (let i = 0, j = chars.length; i < j; i++) {\n    const item = chars[i];\n    if (Array.isArray(item)) {\n      if (item.length !== 2) {\n        throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${item.length}.`);\n      }\n      const startCode = item[0].charCodeAt(0);\n      const endCode = item[1].charCodeAt(0);\n      if (endCode < startCode) {\n        throw new Error(\"[BitmapFont]: Invalid character range.\");\n      }\n      for (let i2 = startCode, j2 = endCode; i2 <= j2; i2++) {\n        result.push(String.fromCharCode(i2));\n      }\n    } else {\n      result.push(...splitTextToCharacters(item));\n    }\n  }\n  if (result.length === 0) {\n    throw new Error(\"[BitmapFont]: Empty set when resolving characters.\");\n  }\n  return result;\n}\n\nexport { resolveCharacters };\n//# sourceMappingURL=resolveCharacters.mjs.map\n","import { utils, ALPHA_MODES, MIPMAP_MODES, Rectangle, Texture, settings, BaseTexture } from '@pixi/core';\nimport { TextStyle, TextMetrics } from '@pixi/text';\nimport { BitmapFontData } from './BitmapFontData.mjs';\nimport { autoDetectFormat } from './formats/index.mjs';\nimport './utils/index.mjs';\nimport { resolveCharacters } from './utils/resolveCharacters.mjs';\nimport { drawGlyph } from './utils/drawGlyph.mjs';\nimport { extractCharCode } from './utils/extractCharCode.mjs';\n\nconst _BitmapFont = class {\n  constructor(data, textures, ownsTextures) {\n    const [info] = data.info;\n    const [common] = data.common;\n    const [page] = data.page;\n    const [distanceField] = data.distanceField;\n    const res = utils.getResolutionOfUrl(page.file);\n    const pageTextures = {};\n    this._ownsTextures = ownsTextures;\n    this.font = info.face;\n    this.size = info.size;\n    this.lineHeight = common.lineHeight / res;\n    this.chars = {};\n    this.pageTextures = pageTextures;\n    for (let i = 0; i < data.page.length; i++) {\n      const { id, file } = data.page[i];\n      pageTextures[id] = textures instanceof Array ? textures[i] : textures[file];\n      if (distanceField?.fieldType && distanceField.fieldType !== \"none\") {\n        pageTextures[id].baseTexture.alphaMode = ALPHA_MODES.NO_PREMULTIPLIED_ALPHA;\n        pageTextures[id].baseTexture.mipmap = MIPMAP_MODES.OFF;\n      }\n    }\n    for (let i = 0; i < data.char.length; i++) {\n      const { id, page: page2 } = data.char[i];\n      let { x, y, width, height, xoffset, yoffset, xadvance } = data.char[i];\n      x /= res;\n      y /= res;\n      width /= res;\n      height /= res;\n      xoffset /= res;\n      yoffset /= res;\n      xadvance /= res;\n      const rect = new Rectangle(x + pageTextures[page2].frame.x / res, y + pageTextures[page2].frame.y / res, width, height);\n      this.chars[id] = {\n        xOffset: xoffset,\n        yOffset: yoffset,\n        xAdvance: xadvance,\n        kerning: {},\n        texture: new Texture(pageTextures[page2].baseTexture, rect),\n        page: page2\n      };\n    }\n    for (let i = 0; i < data.kerning.length; i++) {\n      let { first, second, amount } = data.kerning[i];\n      first /= res;\n      second /= res;\n      amount /= res;\n      if (this.chars[second]) {\n        this.chars[second].kerning[first] = amount;\n      }\n    }\n    this.distanceFieldRange = distanceField?.distanceRange;\n    this.distanceFieldType = distanceField?.fieldType?.toLowerCase() ?? \"none\";\n  }\n  destroy() {\n    for (const id in this.chars) {\n      this.chars[id].texture.destroy();\n      this.chars[id].texture = null;\n    }\n    for (const id in this.pageTextures) {\n      if (this._ownsTextures) {\n        this.pageTextures[id].destroy(true);\n      }\n      this.pageTextures[id] = null;\n    }\n    this.chars = null;\n    this.pageTextures = null;\n  }\n  static install(data, textures, ownsTextures) {\n    let fontData;\n    if (data instanceof BitmapFontData) {\n      fontData = data;\n    } else {\n      const format = autoDetectFormat(data);\n      if (!format) {\n        throw new Error(\"Unrecognized data format for font.\");\n      }\n      fontData = format.parse(data);\n    }\n    if (textures instanceof Texture) {\n      textures = [textures];\n    }\n    const font = new _BitmapFont(fontData, textures, ownsTextures);\n    _BitmapFont.available[font.font] = font;\n    return font;\n  }\n  static uninstall(name) {\n    const font = _BitmapFont.available[name];\n    if (!font) {\n      throw new Error(`No font found named '${name}'`);\n    }\n    font.destroy();\n    delete _BitmapFont.available[name];\n  }\n  static from(name, textStyle, options) {\n    if (!name) {\n      throw new Error(\"[BitmapFont] Property `name` is required.\");\n    }\n    const {\n      chars,\n      padding,\n      resolution,\n      textureWidth,\n      textureHeight,\n      ...baseOptions\n    } = Object.assign({}, _BitmapFont.defaultOptions, options);\n    const charsList = resolveCharacters(chars);\n    const style = textStyle instanceof TextStyle ? textStyle : new TextStyle(textStyle);\n    const lineWidth = textureWidth;\n    const fontData = new BitmapFontData();\n    fontData.info[0] = {\n      face: style.fontFamily,\n      size: style.fontSize\n    };\n    fontData.common[0] = {\n      lineHeight: style.fontSize\n    };\n    let positionX = 0;\n    let positionY = 0;\n    let canvas;\n    let context;\n    let baseTexture;\n    let maxCharHeight = 0;\n    const baseTextures = [];\n    const textures = [];\n    for (let i = 0; i < charsList.length; i++) {\n      if (!canvas) {\n        canvas = settings.ADAPTER.createCanvas();\n        canvas.width = textureWidth;\n        canvas.height = textureHeight;\n        context = canvas.getContext(\"2d\");\n        baseTexture = new BaseTexture(canvas, { resolution, ...baseOptions });\n        baseTextures.push(baseTexture);\n        textures.push(new Texture(baseTexture));\n        fontData.page.push({\n          id: textures.length - 1,\n          file: \"\"\n        });\n      }\n      const character = charsList[i];\n      const metrics = TextMetrics.measureText(character, style, false, canvas);\n      const width = metrics.width;\n      const height = Math.ceil(metrics.height);\n      const textureGlyphWidth = Math.ceil((style.fontStyle === \"italic\" ? 2 : 1) * width);\n      if (positionY >= textureHeight - height * resolution) {\n        if (positionY === 0) {\n          throw new Error(`[BitmapFont] textureHeight ${textureHeight}px is too small (fontFamily: '${style.fontFamily}', fontSize: ${style.fontSize}px, char: '${character}')`);\n        }\n        --i;\n        canvas = null;\n        context = null;\n        baseTexture = null;\n        positionY = 0;\n        positionX = 0;\n        maxCharHeight = 0;\n        continue;\n      }\n      maxCharHeight = Math.max(height + metrics.fontProperties.descent, maxCharHeight);\n      if (textureGlyphWidth * resolution + positionX >= lineWidth) {\n        if (positionX === 0) {\n          throw new Error(`[BitmapFont] textureWidth ${textureWidth}px is too small (fontFamily: '${style.fontFamily}', fontSize: ${style.fontSize}px, char: '${character}')`);\n        }\n        --i;\n        positionY += maxCharHeight * resolution;\n        positionY = Math.ceil(positionY);\n        positionX = 0;\n        maxCharHeight = 0;\n        continue;\n      }\n      drawGlyph(canvas, context, metrics, positionX, positionY, resolution, style);\n      const id = extractCharCode(metrics.text);\n      fontData.char.push({\n        id,\n        page: textures.length - 1,\n        x: positionX / resolution,\n        y: positionY / resolution,\n        width: textureGlyphWidth,\n        height,\n        xoffset: 0,\n        yoffset: 0,\n        xadvance: width - (style.dropShadow ? style.dropShadowDistance : 0) - (style.stroke ? style.strokeThickness : 0)\n      });\n      positionX += (textureGlyphWidth + 2 * padding) * resolution;\n      positionX = Math.ceil(positionX);\n    }\n    for (let i = 0, len = charsList.length; i < len; i++) {\n      const first = charsList[i];\n      for (let j = 0; j < len; j++) {\n        const second = charsList[j];\n        const c1 = context.measureText(first).width;\n        const c2 = context.measureText(second).width;\n        const total = context.measureText(first + second).width;\n        const amount = total - (c1 + c2);\n        if (amount) {\n          fontData.kerning.push({\n            first: extractCharCode(first),\n            second: extractCharCode(second),\n            amount\n          });\n        }\n      }\n    }\n    const font = new _BitmapFont(fontData, textures, true);\n    if (_BitmapFont.available[name] !== void 0) {\n      _BitmapFont.uninstall(name);\n    }\n    _BitmapFont.available[name] = font;\n    return font;\n  }\n};\nlet BitmapFont = _BitmapFont;\nBitmapFont.ALPHA = [[\"a\", \"z\"], [\"A\", \"Z\"], \" \"];\nBitmapFont.NUMERIC = [[\"0\", \"9\"]];\nBitmapFont.ALPHANUMERIC = [[\"a\", \"z\"], [\"A\", \"Z\"], [\"0\", \"9\"], \" \"];\nBitmapFont.ASCII = [[\" \", \"~\"]];\nBitmapFont.defaultOptions = {\n  resolution: 1,\n  textureWidth: 512,\n  textureHeight: 512,\n  padding: 4,\n  chars: _BitmapFont.ALPHANUMERIC\n};\nBitmapFont.available = {};\n\nexport { BitmapFont };\n//# sourceMappingURL=BitmapFont.mjs.map\n","var msdfFrag = \"// Pixi texture info\\r\\nvarying vec2 vTextureCoord;\\r\\nuniform sampler2D uSampler;\\r\\n\\r\\n// Tint\\r\\nuniform vec4 uColor;\\r\\n\\r\\n// on 2D applications fwidth is screenScale / glyphAtlasScale * distanceFieldRange\\r\\nuniform float uFWidth;\\r\\n\\r\\nvoid main(void) {\\r\\n\\r\\n  // To stack MSDF and SDF we need a non-pre-multiplied-alpha texture.\\r\\n  vec4 texColor = texture2D(uSampler, vTextureCoord);\\r\\n\\r\\n  // MSDF\\r\\n  float median = texColor.r + texColor.g + texColor.b -\\r\\n                  min(texColor.r, min(texColor.g, texColor.b)) -\\r\\n                  max(texColor.r, max(texColor.g, texColor.b));\\r\\n  // SDF\\r\\n  median = min(median, texColor.a);\\r\\n\\r\\n  float screenPxDistance = uFWidth * (median - 0.5);\\r\\n  float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\\r\\n  if (median < 0.01) {\\r\\n    alpha = 0.0;\\r\\n  } else if (median > 0.99) {\\r\\n    alpha = 1.0;\\r\\n  }\\r\\n\\r\\n  // NPM Textures, NPM outputs\\r\\n  gl_FragColor = vec4(uColor.rgb, uColor.a * alpha);\\r\\n\\r\\n}\\r\\n\";\n\nexport { msdfFrag as default };\n//# sourceMappingURL=msdf.mjs.map\n","var msdfVert = \"// Mesh material default fragment\\r\\nattribute vec2 aVertexPosition;\\r\\nattribute vec2 aTextureCoord;\\r\\n\\r\\nuniform mat3 projectionMatrix;\\r\\nuniform mat3 translationMatrix;\\r\\nuniform mat3 uTextureMatrix;\\r\\n\\r\\nvarying vec2 vTextureCoord;\\r\\n\\r\\nvoid main(void)\\r\\n{\\r\\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\r\\n\\r\\n    vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\\r\\n}\\r\\n\";\n\nexport { msdfVert as default };\n//# sourceMappingURL=msdf2.mjs.map\n","import { ObservablePoint, settings, Point, Texture, utils, BLEND_MODES, Program } from '@pixi/core';\nimport { Container } from '@pixi/display';\nimport { MeshGeometry, MeshMaterial, Mesh } from '@pixi/mesh';\nimport { BitmapFont } from './BitmapFont.mjs';\nimport msdfFrag from './shader/msdf.mjs';\nimport msdfVert from './shader/msdf2.mjs';\nimport './utils/index.mjs';\nimport { splitTextToCharacters } from './utils/splitTextToCharacters.mjs';\nimport { extractCharCode } from './utils/extractCharCode.mjs';\n\nconst pageMeshDataDefaultPageMeshData = [];\nconst pageMeshDataMSDFPageMeshData = [];\nconst charRenderDataPool = [];\nconst _BitmapText = class extends Container {\n  constructor(text, style = {}) {\n    super();\n    this._tint = 16777215;\n    const { align, tint, maxWidth, letterSpacing, fontName, fontSize } = Object.assign({}, _BitmapText.styleDefaults, style);\n    if (!BitmapFont.available[fontName]) {\n      throw new Error(`Missing BitmapFont \"${fontName}\"`);\n    }\n    this._activePagesMeshData = [];\n    this._textWidth = 0;\n    this._textHeight = 0;\n    this._align = align;\n    this._tint = tint;\n    this._font = void 0;\n    this._fontName = fontName;\n    this._fontSize = fontSize;\n    this.text = text;\n    this._maxWidth = maxWidth;\n    this._maxLineHeight = 0;\n    this._letterSpacing = letterSpacing;\n    this._anchor = new ObservablePoint(() => {\n      this.dirty = true;\n    }, this, 0, 0);\n    this._roundPixels = settings.ROUND_PIXELS;\n    this.dirty = true;\n    this._resolution = settings.RESOLUTION;\n    this._autoResolution = true;\n    this._textureCache = {};\n  }\n  updateText() {\n    const data = BitmapFont.available[this._fontName];\n    const fontSize = this.fontSize;\n    const scale = fontSize / data.size;\n    const pos = new Point();\n    const chars = [];\n    const lineWidths = [];\n    const lineSpaces = [];\n    const text = this._text.replace(/(?:\\r\\n|\\r)/g, \"\\n\") || \" \";\n    const charsInput = splitTextToCharacters(text);\n    const maxWidth = this._maxWidth * data.size / fontSize;\n    const pageMeshDataPool = data.distanceFieldType === \"none\" ? pageMeshDataDefaultPageMeshData : pageMeshDataMSDFPageMeshData;\n    let prevCharCode = null;\n    let lastLineWidth = 0;\n    let maxLineWidth = 0;\n    let line = 0;\n    let lastBreakPos = -1;\n    let lastBreakWidth = 0;\n    let spacesRemoved = 0;\n    let maxLineHeight = 0;\n    let spaceCount = 0;\n    for (let i = 0; i < charsInput.length; i++) {\n      const char = charsInput[i];\n      const charCode = extractCharCode(char);\n      if (/(?:\\s)/.test(char)) {\n        lastBreakPos = i;\n        lastBreakWidth = lastLineWidth;\n        spaceCount++;\n      }\n      if (char === \"\\r\" || char === \"\\n\") {\n        lineWidths.push(lastLineWidth);\n        lineSpaces.push(-1);\n        maxLineWidth = Math.max(maxLineWidth, lastLineWidth);\n        ++line;\n        ++spacesRemoved;\n        pos.x = 0;\n        pos.y += data.lineHeight;\n        prevCharCode = null;\n        spaceCount = 0;\n        continue;\n      }\n      const charData = data.chars[charCode];\n      if (!charData) {\n        continue;\n      }\n      if (prevCharCode && charData.kerning[prevCharCode]) {\n        pos.x += charData.kerning[prevCharCode];\n      }\n      const charRenderData = charRenderDataPool.pop() || {\n        texture: Texture.EMPTY,\n        line: 0,\n        charCode: 0,\n        prevSpaces: 0,\n        position: new Point()\n      };\n      charRenderData.texture = charData.texture;\n      charRenderData.line = line;\n      charRenderData.charCode = charCode;\n      charRenderData.position.x = Math.round(pos.x + charData.xOffset + this._letterSpacing / 2);\n      charRenderData.position.y = Math.round(pos.y + charData.yOffset);\n      charRenderData.prevSpaces = spaceCount;\n      chars.push(charRenderData);\n      lastLineWidth = charRenderData.position.x + Math.max(charData.xAdvance - charData.xOffset, charData.texture.orig.width);\n      pos.x += charData.xAdvance + this._letterSpacing;\n      maxLineHeight = Math.max(maxLineHeight, charData.yOffset + charData.texture.height);\n      prevCharCode = charCode;\n      if (lastBreakPos !== -1 && maxWidth > 0 && pos.x > maxWidth) {\n        ++spacesRemoved;\n        utils.removeItems(chars, 1 + lastBreakPos - spacesRemoved, 1 + i - lastBreakPos);\n        i = lastBreakPos;\n        lastBreakPos = -1;\n        lineWidths.push(lastBreakWidth);\n        lineSpaces.push(chars.length > 0 ? chars[chars.length - 1].prevSpaces : 0);\n        maxLineWidth = Math.max(maxLineWidth, lastBreakWidth);\n        line++;\n        pos.x = 0;\n        pos.y += data.lineHeight;\n        prevCharCode = null;\n        spaceCount = 0;\n      }\n    }\n    const lastChar = charsInput[charsInput.length - 1];\n    if (lastChar !== \"\\r\" && lastChar !== \"\\n\") {\n      if (/(?:\\s)/.test(lastChar)) {\n        lastLineWidth = lastBreakWidth;\n      }\n      lineWidths.push(lastLineWidth);\n      maxLineWidth = Math.max(maxLineWidth, lastLineWidth);\n      lineSpaces.push(-1);\n    }\n    const lineAlignOffsets = [];\n    for (let i = 0; i <= line; i++) {\n      let alignOffset = 0;\n      if (this._align === \"right\") {\n        alignOffset = maxLineWidth - lineWidths[i];\n      } else if (this._align === \"center\") {\n        alignOffset = (maxLineWidth - lineWidths[i]) / 2;\n      } else if (this._align === \"justify\") {\n        alignOffset = lineSpaces[i] < 0 ? 0 : (maxLineWidth - lineWidths[i]) / lineSpaces[i];\n      }\n      lineAlignOffsets.push(alignOffset);\n    }\n    const lenChars = chars.length;\n    const pagesMeshData = {};\n    const newPagesMeshData = [];\n    const activePagesMeshData = this._activePagesMeshData;\n    pageMeshDataPool.push(...activePagesMeshData);\n    for (let i = 0; i < lenChars; i++) {\n      const texture = chars[i].texture;\n      const baseTextureUid = texture.baseTexture.uid;\n      if (!pagesMeshData[baseTextureUid]) {\n        let pageMeshData = pageMeshDataPool.pop();\n        if (!pageMeshData) {\n          const geometry = new MeshGeometry();\n          let material;\n          let meshBlendMode;\n          if (data.distanceFieldType === \"none\") {\n            material = new MeshMaterial(Texture.EMPTY);\n            meshBlendMode = BLEND_MODES.NORMAL;\n          } else {\n            material = new MeshMaterial(Texture.EMPTY, { program: Program.from(msdfVert, msdfFrag), uniforms: { uFWidth: 0 } });\n            meshBlendMode = BLEND_MODES.NORMAL_NPM;\n          }\n          const mesh = new Mesh(geometry, material);\n          mesh.blendMode = meshBlendMode;\n          pageMeshData = {\n            index: 0,\n            indexCount: 0,\n            vertexCount: 0,\n            uvsCount: 0,\n            total: 0,\n            mesh,\n            vertices: null,\n            uvs: null,\n            indices: null\n          };\n        }\n        pageMeshData.index = 0;\n        pageMeshData.indexCount = 0;\n        pageMeshData.vertexCount = 0;\n        pageMeshData.uvsCount = 0;\n        pageMeshData.total = 0;\n        const { _textureCache } = this;\n        _textureCache[baseTextureUid] = _textureCache[baseTextureUid] || new Texture(texture.baseTexture);\n        pageMeshData.mesh.texture = _textureCache[baseTextureUid];\n        pageMeshData.mesh.tint = this._tint;\n        newPagesMeshData.push(pageMeshData);\n        pagesMeshData[baseTextureUid] = pageMeshData;\n      }\n      pagesMeshData[baseTextureUid].total++;\n    }\n    for (let i = 0; i < activePagesMeshData.length; i++) {\n      if (!newPagesMeshData.includes(activePagesMeshData[i])) {\n        this.removeChild(activePagesMeshData[i].mesh);\n      }\n    }\n    for (let i = 0; i < newPagesMeshData.length; i++) {\n      if (newPagesMeshData[i].mesh.parent !== this) {\n        this.addChild(newPagesMeshData[i].mesh);\n      }\n    }\n    this._activePagesMeshData = newPagesMeshData;\n    for (const i in pagesMeshData) {\n      const pageMeshData = pagesMeshData[i];\n      const total = pageMeshData.total;\n      if (!(pageMeshData.indices?.length > 6 * total) || pageMeshData.vertices.length < Mesh.BATCHABLE_SIZE * 2) {\n        pageMeshData.vertices = new Float32Array(4 * 2 * total);\n        pageMeshData.uvs = new Float32Array(4 * 2 * total);\n        pageMeshData.indices = new Uint16Array(6 * total);\n      } else {\n        const total2 = pageMeshData.total;\n        const vertices = pageMeshData.vertices;\n        for (let i2 = total2 * 4 * 2; i2 < vertices.length; i2++) {\n          vertices[i2] = 0;\n        }\n      }\n      pageMeshData.mesh.size = 6 * total;\n    }\n    for (let i = 0; i < lenChars; i++) {\n      const char = chars[i];\n      let offset = char.position.x + lineAlignOffsets[char.line] * (this._align === \"justify\" ? char.prevSpaces : 1);\n      if (this._roundPixels) {\n        offset = Math.round(offset);\n      }\n      const xPos = offset * scale;\n      const yPos = char.position.y * scale;\n      const texture = char.texture;\n      const pageMesh = pagesMeshData[texture.baseTexture.uid];\n      const textureFrame = texture.frame;\n      const textureUvs = texture._uvs;\n      const index = pageMesh.index++;\n      pageMesh.indices[index * 6 + 0] = 0 + index * 4;\n      pageMesh.indices[index * 6 + 1] = 1 + index * 4;\n      pageMesh.indices[index * 6 + 2] = 2 + index * 4;\n      pageMesh.indices[index * 6 + 3] = 0 + index * 4;\n      pageMesh.indices[index * 6 + 4] = 2 + index * 4;\n      pageMesh.indices[index * 6 + 5] = 3 + index * 4;\n      pageMesh.vertices[index * 8 + 0] = xPos;\n      pageMesh.vertices[index * 8 + 1] = yPos;\n      pageMesh.vertices[index * 8 + 2] = xPos + textureFrame.width * scale;\n      pageMesh.vertices[index * 8 + 3] = yPos;\n      pageMesh.vertices[index * 8 + 4] = xPos + textureFrame.width * scale;\n      pageMesh.vertices[index * 8 + 5] = yPos + textureFrame.height * scale;\n      pageMesh.vertices[index * 8 + 6] = xPos;\n      pageMesh.vertices[index * 8 + 7] = yPos + textureFrame.height * scale;\n      pageMesh.uvs[index * 8 + 0] = textureUvs.x0;\n      pageMesh.uvs[index * 8 + 1] = textureUvs.y0;\n      pageMesh.uvs[index * 8 + 2] = textureUvs.x1;\n      pageMesh.uvs[index * 8 + 3] = textureUvs.y1;\n      pageMesh.uvs[index * 8 + 4] = textureUvs.x2;\n      pageMesh.uvs[index * 8 + 5] = textureUvs.y2;\n      pageMesh.uvs[index * 8 + 6] = textureUvs.x3;\n      pageMesh.uvs[index * 8 + 7] = textureUvs.y3;\n    }\n    this._textWidth = maxLineWidth * scale;\n    this._textHeight = (pos.y + data.lineHeight) * scale;\n    for (const i in pagesMeshData) {\n      const pageMeshData = pagesMeshData[i];\n      if (this.anchor.x !== 0 || this.anchor.y !== 0) {\n        let vertexCount = 0;\n        const anchorOffsetX = this._textWidth * this.anchor.x;\n        const anchorOffsetY = this._textHeight * this.anchor.y;\n        for (let i2 = 0; i2 < pageMeshData.total; i2++) {\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetX;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetY;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetX;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetY;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetX;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetY;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetX;\n          pageMeshData.vertices[vertexCount++] -= anchorOffsetY;\n        }\n      }\n      this._maxLineHeight = maxLineHeight * scale;\n      const vertexBuffer = pageMeshData.mesh.geometry.getBuffer(\"aVertexPosition\");\n      const textureBuffer = pageMeshData.mesh.geometry.getBuffer(\"aTextureCoord\");\n      const indexBuffer = pageMeshData.mesh.geometry.getIndex();\n      vertexBuffer.data = pageMeshData.vertices;\n      textureBuffer.data = pageMeshData.uvs;\n      indexBuffer.data = pageMeshData.indices;\n      vertexBuffer.update();\n      textureBuffer.update();\n      indexBuffer.update();\n    }\n    for (let i = 0; i < chars.length; i++) {\n      charRenderDataPool.push(chars[i]);\n    }\n    this._font = data;\n    this.dirty = false;\n  }\n  updateTransform() {\n    this.validate();\n    this.containerUpdateTransform();\n  }\n  _render(renderer) {\n    if (this._autoResolution && this._resolution !== renderer.resolution) {\n      this._resolution = renderer.resolution;\n      this.dirty = true;\n    }\n    const { distanceFieldRange, distanceFieldType, size } = BitmapFont.available[this._fontName];\n    if (distanceFieldType !== \"none\") {\n      const { a, b, c, d } = this.worldTransform;\n      const dx = Math.sqrt(a * a + b * b);\n      const dy = Math.sqrt(c * c + d * d);\n      const worldScale = (Math.abs(dx) + Math.abs(dy)) / 2;\n      const fontScale = this.fontSize / size;\n      const resolution = renderer._view.resolution;\n      for (const mesh of this._activePagesMeshData) {\n        mesh.mesh.shader.uniforms.uFWidth = worldScale * distanceFieldRange * fontScale * resolution;\n      }\n    }\n    super._render(renderer);\n  }\n  getLocalBounds() {\n    this.validate();\n    return super.getLocalBounds();\n  }\n  validate() {\n    const font = BitmapFont.available[this._fontName];\n    if (!font) {\n      throw new Error(`Missing BitmapFont \"${this._fontName}\"`);\n    }\n    if (this._font !== font) {\n      this.dirty = true;\n    }\n    if (this.dirty) {\n      this.updateText();\n    }\n  }\n  get tint() {\n    return this._tint;\n  }\n  set tint(value) {\n    if (this._tint === value)\n      return;\n    this._tint = value;\n    for (let i = 0; i < this._activePagesMeshData.length; i++) {\n      this._activePagesMeshData[i].mesh.tint = value;\n    }\n  }\n  get align() {\n    return this._align;\n  }\n  set align(value) {\n    if (this._align !== value) {\n      this._align = value;\n      this.dirty = true;\n    }\n  }\n  get fontName() {\n    return this._fontName;\n  }\n  set fontName(value) {\n    if (!BitmapFont.available[value]) {\n      throw new Error(`Missing BitmapFont \"${value}\"`);\n    }\n    if (this._fontName !== value) {\n      this._fontName = value;\n      this.dirty = true;\n    }\n  }\n  get fontSize() {\n    return this._fontSize ?? BitmapFont.available[this._fontName].size;\n  }\n  set fontSize(value) {\n    if (this._fontSize !== value) {\n      this._fontSize = value;\n      this.dirty = true;\n    }\n  }\n  get anchor() {\n    return this._anchor;\n  }\n  set anchor(value) {\n    if (typeof value === \"number\") {\n      this._anchor.set(value);\n    } else {\n      this._anchor.copyFrom(value);\n    }\n  }\n  get text() {\n    return this._text;\n  }\n  set text(text) {\n    text = String(text === null || text === void 0 ? \"\" : text);\n    if (this._text === text) {\n      return;\n    }\n    this._text = text;\n    this.dirty = true;\n  }\n  get maxWidth() {\n    return this._maxWidth;\n  }\n  set maxWidth(value) {\n    if (this._maxWidth === value) {\n      return;\n    }\n    this._maxWidth = value;\n    this.dirty = true;\n  }\n  get maxLineHeight() {\n    this.validate();\n    return this._maxLineHeight;\n  }\n  get textWidth() {\n    this.validate();\n    return this._textWidth;\n  }\n  get letterSpacing() {\n    return this._letterSpacing;\n  }\n  set letterSpacing(value) {\n    if (this._letterSpacing !== value) {\n      this._letterSpacing = value;\n      this.dirty = true;\n    }\n  }\n  get roundPixels() {\n    return this._roundPixels;\n  }\n  set roundPixels(value) {\n    if (value !== this._roundPixels) {\n      this._roundPixels = value;\n      this.dirty = true;\n    }\n  }\n  get textHeight() {\n    this.validate();\n    return this._textHeight;\n  }\n  get resolution() {\n    return this._resolution;\n  }\n  set resolution(value) {\n    this._autoResolution = false;\n    if (this._resolution === value) {\n      return;\n    }\n    this._resolution = value;\n    this.dirty = true;\n  }\n  destroy(options) {\n    const { _textureCache } = this;\n    const data = BitmapFont.available[this._fontName];\n    const pageMeshDataPool = data.distanceFieldType === \"none\" ? pageMeshDataDefaultPageMeshData : pageMeshDataMSDFPageMeshData;\n    pageMeshDataPool.push(...this._activePagesMeshData);\n    for (const pageMeshData of this._activePagesMeshData) {\n      this.removeChild(pageMeshData.mesh);\n    }\n    this._activePagesMeshData = [];\n    pageMeshDataPool.filter((page) => _textureCache[page.mesh.texture.baseTexture.uid]).forEach((page) => {\n      page.mesh.texture = Texture.EMPTY;\n    });\n    for (const id in _textureCache) {\n      const texture = _textureCache[id];\n      texture.destroy();\n      delete _textureCache[id];\n    }\n    this._font = null;\n    this._textureCache = null;\n    super.destroy(options);\n  }\n};\nlet BitmapText = _BitmapText;\nBitmapText.styleDefaults = {\n  align: \"left\",\n  tint: 16777215,\n  maxWidth: 0,\n  letterSpacing: 0\n};\n\nexport { BitmapText };\n//# sourceMappingURL=BitmapText.mjs.map\n","import { LoaderParserPriority, copySearchParams } from '@pixi/assets';\nimport { ExtensionType, utils, settings, extensions } from '@pixi/core';\nimport { BitmapFont } from './BitmapFont.mjs';\nimport './formats/index.mjs';\nimport { TextFormat } from './formats/TextFormat.mjs';\nimport { XMLStringFormat } from './formats/XMLStringFormat.mjs';\n\nconst validExtensions = [\".xml\", \".fnt\"];\nconst loadBitmapFont = {\n  extension: {\n    type: ExtensionType.LoadParser,\n    priority: LoaderParserPriority.Normal\n  },\n  test(url) {\n    return validExtensions.includes(utils.path.extname(url).toLowerCase());\n  },\n  async testParse(data) {\n    return TextFormat.test(data) || XMLStringFormat.test(data);\n  },\n  async parse(asset, data, loader) {\n    const fontData = TextFormat.test(asset) ? TextFormat.parse(asset) : XMLStringFormat.parse(asset);\n    const { src } = data;\n    const { page: pages } = fontData;\n    const textureUrls = [];\n    for (let i = 0; i < pages.length; ++i) {\n      const pageFile = pages[i].file;\n      let imagePath = utils.path.join(utils.path.dirname(src), pageFile);\n      imagePath = copySearchParams(imagePath, src);\n      textureUrls.push(imagePath);\n    }\n    const loadedTextures = await loader.load(textureUrls);\n    const textures = textureUrls.map((url) => loadedTextures[url]);\n    return BitmapFont.install(fontData, textures, true);\n  },\n  async load(url, _options) {\n    const response = await settings.ADAPTER.fetch(url);\n    return response.text();\n  },\n  unload(bitmapFont) {\n    bitmapFont.destroy();\n  }\n};\nextensions.add(loadBitmapFont);\n\nexport { loadBitmapFont };\n//# sourceMappingURL=loadBitmapFont.mjs.map\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE                = NodeType.ELEMENT_NODE                = 1;\nvar ATTRIBUTE_NODE              = NodeType.ATTRIBUTE_NODE              = 2;\nvar TEXT_NODE                   = NodeType.TEXT_NODE                   = 3;\nvar CDATA_SECTION_NODE          = NodeType.CDATA_SECTION_NODE          = 4;\nvar ENTITY_REFERENCE_NODE       = NodeType.ENTITY_REFERENCE_NODE       = 5;\nvar ENTITY_NODE                 = NodeType.ENTITY_NODE                 = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE                = NodeType.COMMENT_NODE                = 8;\nvar DOCUMENT_NODE               = NodeType.DOCUMENT_NODE               = 9;\nvar DOCUMENT_TYPE_NODE          = NodeType.DOCUMENT_TYPE_NODE          = 10;\nvar DOCUMENT_FRAGMENT_NODE      = NodeType.DOCUMENT_FRAGMENT_NODE      = 11;\nvar NOTATION_NODE               = NodeType.NOTATION_NODE               = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR              = ExceptionCode.INDEX_SIZE_ERR              = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR          = ExceptionCode.DOMSTRING_SIZE_ERR          = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR       = ExceptionCode.HIERARCHY_REQUEST_ERR       = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR          = ExceptionCode.WRONG_DOCUMENT_ERR          = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR       = ExceptionCode.INVALID_CHARACTER_ERR       = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR         = ExceptionCode.NO_DATA_ALLOWED_ERR         = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR               = ExceptionCode.NOT_FOUND_ERR               = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR           = ExceptionCode.NOT_SUPPORTED_ERR           = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR         = ExceptionCode.INUSE_ATTRIBUTE_ERR         = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR        \t= ExceptionCode.INVALID_STATE_ERR        \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR               \t= ExceptionCode.SYNTAX_ERR               \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR            \t= ExceptionCode.NAMESPACE_ERR           \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR       \t= ExceptionCode.INVALID_ACCESS_ERR      \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index  unsigned long\n\t *   Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t *   (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument  DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI,  qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t *   (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t  or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n  \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n    // Introduced in DOM Level 2:\n    hasAttributes:function(){\n    \treturn this.attributes.length>0;\n    },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n    lookupPrefix:function(namespaceURI){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\t//console.dir(map)\n    \t\tif(map){\n    \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    // Introduced in DOM Level 3:\n    lookupNamespaceURI:function(prefix){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\t//console.dir(map)\n    \t\tif(map){\n    \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n    \t\t\t\treturn map[prefix] ;\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    // Introduced in DOM Level 3:\n    isDefaultNamespace:function(namespaceURI){\n    \tvar prefix = this.lookupPrefix(namespaceURI);\n    \treturn prefix == null;\n    }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '&lt;' ||\n         c == '>' && '&gt;' ||\n         c == '&' && '&amp;' ||\n         c == '\"' && '&quot;' ||\n         '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n        }while(node=node.nextSibling)\n    }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName :  '#document',\n\tnodeType :  DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype :  null,\n\tdocumentElement :  null,\n\t_inc : 1,\n\n\tinsertBefore :  function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild :  function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',prefixedNodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&amp;` and `&lt;` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" &gt; \", and must, for compatibility,\n\t\t * be escaped using either `&gt;` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE：\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","var freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({amp:'&', apos:\"'\", gt:'>', lt:'<', quot:'\"'})\n\n/**\n * A map of currently 241 entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n       lt: '<',\n       gt: '>',\n       amp: '&',\n       quot: '\"',\n       apos: \"'\",\n       Agrave: \"À\",\n       Aacute: \"Á\",\n       Acirc: \"Â\",\n       Atilde: \"Ã\",\n       Auml: \"Ä\",\n       Aring: \"Å\",\n       AElig: \"Æ\",\n       Ccedil: \"Ç\",\n       Egrave: \"È\",\n       Eacute: \"É\",\n       Ecirc: \"Ê\",\n       Euml: \"Ë\",\n       Igrave: \"Ì\",\n       Iacute: \"Í\",\n       Icirc: \"Î\",\n       Iuml: \"Ï\",\n       ETH: \"Ð\",\n       Ntilde: \"Ñ\",\n       Ograve: \"Ò\",\n       Oacute: \"Ó\",\n       Ocirc: \"Ô\",\n       Otilde: \"Õ\",\n       Ouml: \"Ö\",\n       Oslash: \"Ø\",\n       Ugrave: \"Ù\",\n       Uacute: \"Ú\",\n       Ucirc: \"Û\",\n       Uuml: \"Ü\",\n       Yacute: \"Ý\",\n       THORN: \"Þ\",\n       szlig: \"ß\",\n       agrave: \"à\",\n       aacute: \"á\",\n       acirc: \"â\",\n       atilde: \"ã\",\n       auml: \"ä\",\n       aring: \"å\",\n       aelig: \"æ\",\n       ccedil: \"ç\",\n       egrave: \"è\",\n       eacute: \"é\",\n       ecirc: \"ê\",\n       euml: \"ë\",\n       igrave: \"ì\",\n       iacute: \"í\",\n       icirc: \"î\",\n       iuml: \"ï\",\n       eth: \"ð\",\n       ntilde: \"ñ\",\n       ograve: \"ò\",\n       oacute: \"ó\",\n       ocirc: \"ô\",\n       otilde: \"õ\",\n       ouml: \"ö\",\n       oslash: \"ø\",\n       ugrave: \"ù\",\n       uacute: \"ú\",\n       ucirc: \"û\",\n       uuml: \"ü\",\n       yacute: \"ý\",\n       thorn: \"þ\",\n       yuml: \"ÿ\",\n       nbsp: \"\\u00a0\",\n       iexcl: \"¡\",\n       cent: \"¢\",\n       pound: \"£\",\n       curren: \"¤\",\n       yen: \"¥\",\n       brvbar: \"¦\",\n       sect: \"§\",\n       uml: \"¨\",\n       copy: \"©\",\n       ordf: \"ª\",\n       laquo: \"«\",\n       not: \"¬\",\n       shy: \"­­\",\n       reg: \"®\",\n       macr: \"¯\",\n       deg: \"°\",\n       plusmn: \"±\",\n       sup2: \"²\",\n       sup3: \"³\",\n       acute: \"´\",\n       micro: \"µ\",\n       para: \"¶\",\n       middot: \"·\",\n       cedil: \"¸\",\n       sup1: \"¹\",\n       ordm: \"º\",\n       raquo: \"»\",\n       frac14: \"¼\",\n       frac12: \"½\",\n       frac34: \"¾\",\n       iquest: \"¿\",\n       times: \"×\",\n       divide: \"÷\",\n       forall: \"∀\",\n       part: \"∂\",\n       exist: \"∃\",\n       empty: \"∅\",\n       nabla: \"∇\",\n       isin: \"∈\",\n       notin: \"∉\",\n       ni: \"∋\",\n       prod: \"∏\",\n       sum: \"∑\",\n       minus: \"−\",\n       lowast: \"∗\",\n       radic: \"√\",\n       prop: \"∝\",\n       infin: \"∞\",\n       ang: \"∠\",\n       and: \"∧\",\n       or: \"∨\",\n       cap: \"∩\",\n       cup: \"∪\",\n       'int': \"∫\",\n       there4: \"∴\",\n       sim: \"∼\",\n       cong: \"≅\",\n       asymp: \"≈\",\n       ne: \"≠\",\n       equiv: \"≡\",\n       le: \"≤\",\n       ge: \"≥\",\n       sub: \"⊂\",\n       sup: \"⊃\",\n       nsub: \"⊄\",\n       sube: \"⊆\",\n       supe: \"⊇\",\n       oplus: \"⊕\",\n       otimes: \"⊗\",\n       perp: \"⊥\",\n       sdot: \"⋅\",\n       Alpha: \"Α\",\n       Beta: \"Β\",\n       Gamma: \"Γ\",\n       Delta: \"Δ\",\n       Epsilon: \"Ε\",\n       Zeta: \"Ζ\",\n       Eta: \"Η\",\n       Theta: \"Θ\",\n       Iota: \"Ι\",\n       Kappa: \"Κ\",\n       Lambda: \"Λ\",\n       Mu: \"Μ\",\n       Nu: \"Ν\",\n       Xi: \"Ξ\",\n       Omicron: \"Ο\",\n       Pi: \"Π\",\n       Rho: \"Ρ\",\n       Sigma: \"Σ\",\n       Tau: \"Τ\",\n       Upsilon: \"Υ\",\n       Phi: \"Φ\",\n       Chi: \"Χ\",\n       Psi: \"Ψ\",\n       Omega: \"Ω\",\n       alpha: \"α\",\n       beta: \"β\",\n       gamma: \"γ\",\n       delta: \"δ\",\n       epsilon: \"ε\",\n       zeta: \"ζ\",\n       eta: \"η\",\n       theta: \"θ\",\n       iota: \"ι\",\n       kappa: \"κ\",\n       lambda: \"λ\",\n       mu: \"μ\",\n       nu: \"ν\",\n       xi: \"ξ\",\n       omicron: \"ο\",\n       pi: \"π\",\n       rho: \"ρ\",\n       sigmaf: \"ς\",\n       sigma: \"σ\",\n       tau: \"τ\",\n       upsilon: \"υ\",\n       phi: \"φ\",\n       chi: \"χ\",\n       psi: \"ψ\",\n       omega: \"ω\",\n       thetasym: \"ϑ\",\n       upsih: \"ϒ\",\n       piv: \"ϖ\",\n       OElig: \"Œ\",\n       oelig: \"œ\",\n       Scaron: \"Š\",\n       scaron: \"š\",\n       Yuml: \"Ÿ\",\n       fnof: \"ƒ\",\n       circ: \"ˆ\",\n       tilde: \"˜\",\n       ensp: \" \",\n       emsp: \" \",\n       thinsp: \" \",\n       zwnj: \"‌\",\n       zwj: \"‍\",\n       lrm: \"‎\",\n       rlm: \"‏\",\n       ndash: \"–\",\n       mdash: \"—\",\n       lsquo: \"‘\",\n       rsquo: \"’\",\n       sbquo: \"‚\",\n       ldquo: \"“\",\n       rdquo: \"”\",\n       bdquo: \"„\",\n       dagger: \"†\",\n       Dagger: \"‡\",\n       bull: \"•\",\n       hellip: \"…\",\n       permil: \"‰\",\n       prime: \"′\",\n       Prime: \"″\",\n       lsaquo: \"‹\",\n       rsaquo: \"›\",\n       oline: \"‾\",\n       euro: \"€\",\n       trade: \"™\",\n       larr: \"←\",\n       uarr: \"↑\",\n       rarr: \"→\",\n       darr: \"↓\",\n       harr: \"↔\",\n       crarr: \"↵\",\n       lceil: \"⌈\",\n       rceil: \"⌉\",\n       lfloor: \"⌊\",\n       rfloor: \"⌋\",\n       loz: \"◊\",\n       spades: \"♠\",\n       clubs: \"♣\",\n       hearts: \"♥\",\n       diams: \"♦\"\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4]   \tNameStartChar\t   ::=   \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a]   \tNameChar\t   ::=   \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5]   \tName\t   ::=   \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t    \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t    \t\t\tdoc.appendChild(text);\n\t    \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t        \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t        \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t        \t\tend = tagStart+1+tagName.length;\n\t        \t}else if(tagName.match(/\\s</)){\n\t        \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t        \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t        \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t        if(endIgnoreCaseMach){\n\t\t        \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t            \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t        }else{\n\t\t        \tparseStack.push(config)\n\t\t        }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退，有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed  = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName =  el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart =  source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos =  source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax =  new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n  \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n    this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n    \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n    \tif (this.locator) {\n        \tthis.doc.documentURI = this.locator.systemId;\n    \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t    var el = doc.createElementNS(namespaceURI, qName||localName);\n\t    var len = attrs.length;\n\t    appendElement(this, el);\n\t    this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t    for (var i = 0 ; i < len; i++) {\n\t        var namespaceURI = attrs.getURI(i);\n\t        var value = attrs.getValue(i);\n\t        var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t    }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t    var ins = this.doc.createProcessingInstruction(target, data);\n\t    this.locator && position(this.locator,ins)\n\t    appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t    if(this.locator = locator){// && !('lineNumber' in locator)){\n\t    \tlocator.lineNumber = 0;\n\t    }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t    var comm = this.doc.createComment(chars);\n\t    this.locator && position(this.locator,comm)\n\t    appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t    //used in characters() methods\n\t    this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t    this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t    if (impl && impl.createDocumentType) {\n\t        var dt = impl.createDocumentType(name, publicId, systemId);\n\t        this.locator && position(this.locator,dt)\n\t        appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t    }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n *  #comment(chars, start, length)\n *  #startCDATA()\n *  #endCDATA()\n *  #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n *  #endDTD()\n *  #startEntity(name)\n *  #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n *  #elementDecl(name, model)\n *  #externalEntityDecl(name, publicId, systemId)\n *  #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n *  #resolveEntity(String name,String publicId,String baseURI,String systemId)\n *  #resolveEntity(publicId, systemId)\n *  #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n *  #notationDecl(name, publicId, systemId) {};\n *  #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n    if (!hander.currentElement) {\n        hander.doc.appendChild(node);\n    } else {\n        hander.currentElement.appendChild(node);\n    }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","import { settings } from '@pixi/core';\nimport { DOMParser } from '@xmldom/xmldom';\n\nimport type { IAdapter } from '@pixi/core';\n\nexport const WebWorkerAdapter = {\n    /**\n     * Creates a canvas element of the given size.\n     * This canvas is created using the browser's native canvas element.\n     * @param width - width of the canvas\n     * @param height - height of the canvas\n     */\n    createCanvas: (width?: number, height?: number) => new OffscreenCanvas(width | 0, height | 0),\n    getCanvasRenderingContext2D: () => OffscreenCanvasRenderingContext2D,\n    getWebGLRenderingContext: () => WebGLRenderingContext,\n    getNavigator: () => navigator,\n    getBaseUrl: () => globalThis.location.href,\n    getFontFaceSet: () => (globalThis as unknown as WorkerGlobalScope).fonts,\n    fetch: (url: RequestInfo, options?: RequestInit) => fetch(url, options),\n    parseXML: (xml: string) =>\n    {\n        const parser = new DOMParser();\n\n        return parser.parseFromString(xml, 'text/xml');\n    },\n\n} as IAdapter;\n\nsettings.ADAPTER = WebWorkerAdapter;\n\nexport { settings };\n"],"names":["isMobile","sign","Node","global","define","this","require$$0","require$$1","parse","map","interleaveTypedArrays","extensions","fragTemplate","BLEND","OFFSET","CULLING","DEPTH_TEST","WINDING","DEPTH_MASK","EventEmitter","UID","byteSizeMap","tempPoints","defaultFragment","defaultVertex","tempMatrix","tempMat","fragment","vertex","utils.EventEmitter","index","utils.removeItems","utils.deprecation","tempPoint","utils.sign","utils.uid","utils.path","utils.getResolutionOfUrl","utils.CanvasRenderTarget","utils.earcut","utils.premultiplyTint","utils.hex2rgb","utils.premultiplyTintToRgba","utils.createIndicesForQuads","utils.correctBlendMode","utils.premultiplyRgba","utils.hex2string","utils.string2hex","utils.trimCanvas","Text","find","NAMESPACE","DOMImplementation","XMLSerializer","ParseError","XMLReader","appendElement","DOMParser"],"mappings":"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N,EAAE,GAAG,EAAE,CAAC;AACR;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,SAAS,EAAE,CAAC;AACd;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,WAAW,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,EAAE,cAAc,EAAE,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG;AAC9B,EAAE,KAAK,EAAE,CAAC,0BAA0B,CAAC;AACrC,EAAE,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACpC,EAAE,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACpC,EAAE,IAAI,EAAE,4BAA4B;AACpC,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,IAAI,EAAE,yCAAyC;AACjD,EAAE,GAAG,EAAE,4BAA4B;AACnC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,IAAI,EAAE,6BAA6B;AACrC,EAAE,KAAK,EAAE,6BAA6B;AACtC,EAAE,KAAK,EAAE,6BAA6B;AACtC,EAAE,KAAK,EAAE,6BAA6B;AACtC,EAAE,IAAI,EAAE,4BAA4B;AACpC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,SAAS,EAAE,4BAA4B;AACzC,EAAE,WAAW,EAAE,4BAA4B;AAC3C,EAAE,cAAc,EAAE,4BAA4B;AAC9C,CAAC,CAAC;AACF,SAAS,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE;AAClD,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC,CAAC;AACP,EAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClC,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACnC,UAAU,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9B,kEAAkE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7E,oBAAoB,CAAC,CAAC,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9B,4DAA4D,EAAE,CAAC,CAAC;AAChE,oBAAoB,CAAC,CAAC,CAAC;AACvB,SAAS;AACT,OAAO;AACP,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACjD,QAAQ,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,QAAQ,MAAM,GAAG,IAAI,CAAC;AACtB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,CAAC;AACpH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1F,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1B,qBAAqB,EAAE,CAAC,CAAC;AACzB;AACA,oBAAoB,EAAE,CAAC,CAAC;AACxB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF;;ACnOA,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,IAAI,OAAO,GAAG,cAAc,CAAC;AAC7B,SAAS,cAAc,GAAG;AAC1B,EAAE,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,EAAE,aAAa,EAAE,EAAE;AAC9D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACnD,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE;AAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACzF,MAAM,IAAI,CAAC,EAAE,EAAE;AACf,QAAQ,EAAE,GAAG,IAAI,CAAC;AAClB,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAC9C,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB;;ACpBA,IAAI,oBAAoB,CAAC;AACzB,SAAS,uBAAuB,GAAG;AACnC,EAAE,IAAI,CAAC,oBAAoB,EAAE;AAC7B,IAAI,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC;AAC5C,IAAI,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;AAChC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,IAAI,EAAE,CAAC,wBAAwB,EAAE;AACvC,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9F,QAAQ,oBAAoB,GAAG,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;AAC5F,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC;AAC9B;;AChBA,SAAS,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE;AAC1C,EAAE,MAAM,SAAS,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrG,EAAE,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAChD,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC1H,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACzB,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;AACvB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAClC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAI,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,iBAAiB,CAAC,CAAC;AAC3F,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;AACnC,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3B,EAAE,OAAO,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC;AAC3D,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3B,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AACD,SAAS,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE;AACpE,EAAE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AACxD,IAAI,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;AACjE,MAAM,oBAAoB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;AACnE,MAAM,oBAAoB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAChE,IAAI,IAAI,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AAC9C,MAAM,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5F,KAAK;AACL,GAAG;AACH;;ACrCA,MAAM,YAAY,GAAG;AACrB,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,SAAS,EAAE,CAAC;AACd,CAAC,CAAC;AACF,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B;;ACxBA,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,MAAM,gBAAgB,GAAG;AACzB,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,YAAY,EAAE,MAAM;AACtB,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,WAAW;AACzB,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,uBAAuB,EAAE,WAAW;AACtC,EAAE,YAAY,EAAE,aAAa;AAC7B,EAAE,gBAAgB,EAAE,aAAa;AACjC,EAAE,yBAAyB,EAAE,aAAa;AAC1C,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,oBAAoB,EAAE,gBAAgB;AACxC,EAAE,6BAA6B,EAAE,gBAAgB;AACjD,CAAC,CAAC;AACF,SAAS,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE;AAC3B,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC/C,MAAM,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB;;ACvCA,SAAS,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,qBAAqB,EAAE;AACtE,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,EAAE;AAC3C,IAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC;AACvC,IAAI,IAAI,kBAAkB,KAAK,SAAS,CAAC,IAAI,IAAI,qBAAqB,KAAK,SAAS,CAAC,IAAI,EAAE;AAC3F,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC;AAClC,EAAE,GAAG,CAAC,CAAC,CAAC;AACR,GAAG,MAAM,IAAI,qBAAqB,KAAK,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,iBAAiB,EAAE;AACrG,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACdA,IAAI,UAAU,CAAC;AACf,SAAS,mBAAmB,GAAG;AAC/B,EAAE,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE;AACvC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,mCAAmC,CAAC,CAAC;AACjG,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;AACrD,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB;;ACJA,IAAIJ,KAAG,GAAG,CAAC,CAAC;AACZ,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,QAAQ,GAAG,MAAM;AACvB,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,aAAa,EAAE,KAAK,GAAG,EAAE,EAAE;AACxE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,EAAE,GAAGA,KAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,QAAQ,CAAC,gBAAgB,CAAC;AAC5D,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,QAAQ,CAAC,kBAAkB,CAAC;AAClE,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE;AACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,OAAO,MAAM;AACb,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;AACnD,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;AACrD,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrG,MAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,GAAG;AACH,EAAE,WAAW,gBAAgB,GAAG;AAChC,IAAI,OAAOI,eAAa,CAAC;AACzB,GAAG;AACH,EAAE,WAAW,kBAAkB,GAAG;AAClC,IAAI,OAAOD,iBAAe,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;AAC5C,IAAI,MAAM,GAAG,GAAG,SAAS,GAAG,WAAW,CAAC;AACxC,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,OAAO,GAAG,SAAS;AACvB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC;AAChD,OAAO,CAAC,wBAAwB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM;;ACnD5F,IAAIH,KAAG,GAAG,CAAC,CAAC;AACZ,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,EAAE,GAAGA,KAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,QAAQ,YAAY,MAAM,EAAE;AACpC,MAAM,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC;AACpD,MAAM,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC;AACtD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;AACzC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChE,KAAK,MAAM;AACX,MAAM,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;AAC7H,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACrD,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE;AACpC,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,GAAG;AACH;;ACzCA,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,QAAQ,YAAY,YAAY,EAAE;AAC5C,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AACrC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvD,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;AACrD,GAAG;AACH,EAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpC,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACpD,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE;AAChD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACzD,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzC,GAAG;AACH;;ACxCA,MAAM,oBAAoB,CAAC;AAC3B,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE;AACvC,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3C,MAAM,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC7C,MAAM,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACrE,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,WAAW,EAAE;AAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AACzC,MAAM,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;AACjG,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;AAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5F,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,MAAM,iBAAiB,EAAE,IAAI,MAAM,EAAE;AACrC,MAAM,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAClD,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChE,GAAG;AACH,EAAE,iBAAiB,CAAC,WAAW,EAAE;AACjC,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzB,OAAO;AACP,MAAM,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE;AAC/B,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,GAAG,IAAI,CAAC;AACd,6BAA6B,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACrD,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;ACzDA,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,GAAG;AACH;;ACVA,SAAS,mBAAmB,GAAG;AAC/B,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AAChC;;ACFA,SAAS,sBAAsB,CAAC,GAAG,EAAE;AACrC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACtB,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACpD,EAAE,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE;AACzC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/B,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACjE,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,QAAQ,IAAI,YAAY,GAAG,EAAE,EAAE;AAC/B,UAAU,QAAQ,GAAG,KAAK,CAAC;AAC3B,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACpE,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE;AAC9B,UAAU,QAAQ,GAAG,KAAK,CAAC;AAC3B,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5B;;AC1BA,MAAM,cAAc,CAAC;AACrB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,GAAG;AACH;;AChBA,IAAIG,iBAAe,GAAG,kNAAkN;;ACAxO,IAAIC,eAAa,GAAG,yhBAAyhB;;ACkB7iB,MAAM,cAAc,GAAG,cAAc,cAAc,CAAC;AACpD,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACvC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC1D,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,WAAW,kBAAkB,GAAG;AAClC,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACtF,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC;AACpC,GAAG;AACH,EAAE,WAAW,kBAAkB,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,GAAG;AACH,EAAE,WAAW,mBAAmB,GAAG;AACnC,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,mBAAmB,EAAE,CAAC;AACnF,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC;AACrC,GAAG;AACH,EAAE,WAAW,mBAAmB,CAAC,KAAK,EAAE;AACxC,IAAI,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,WAAW,CAAC,OAAO,EAAE,iEAAiE,CAAC,CAAC;AAC5F,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,WAAW,gBAAgB,GAAG;AAChC,IAAI,OAAOA,eAAa,CAAC;AACzB,GAAG;AACH,EAAE,WAAW,uBAAuB,GAAG;AACvC,IAAI,OAAOD,iBAAe,CAAC;AAC3B,GAAG;AACH,EAAE,kBAAkB,CAAC;AACrB,IAAI,MAAM,GAAG,cAAc,CAAC,gBAAgB;AAC5C,IAAI,QAAQ,GAAG,cAAc,CAAC,uBAAuB;AACrD,GAAG,GAAG,EAAE,EAAE;AACV,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,YAAY,EAAE;AAClD,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAClH,MAAM,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,EAAE;AAC3D,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM;AACV,MAAM,aAAa;AACnB,MAAM,iBAAiB;AACvB,KAAK,GAAG,cAAc,CAAC;AACvB,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAClE,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,WAAW,EAAE;AAC/C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,OAAO,iBAAiB,CAAC,MAAM,GAAG,MAAM,EAAE;AAC9C,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACvE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC5E,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC;AACzD,GAAG;AACH,EAAE,yBAAyB,GAAG;AAC9B,IAAI,MAAM;AACV,MAAM,iBAAiB,EAAE,QAAQ;AACjC,MAAM,WAAW;AACjB,KAAK,GAAG,IAAI,CAAC;AACb,IAAI,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,CAAC;AAC3D,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACtC,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAClD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;AAChD,IAAI,IAAI,IAAI,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC;AAC1C,IAAI,IAAI,cAAc,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE;AAC/C,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,MAAM,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,EAAE;AACtC,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,IAAI,QAAQ,CAAC,KAAK,IAAI,WAAW,EAAE;AACzC,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAChD,QAAQ,KAAK,GAAG,CAAC,CAAC;AAClB,QAAQ,QAAQ,GAAG,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;AACnD,QAAQ,EAAE,IAAI,CAAC;AACf,OAAO;AACP,MAAM,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/B,MAAM,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AAC1B,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE;AAC5B,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACnE,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,MAAM,EAAE,cAAc,CAAC;AACvB,MAAM,EAAE,IAAI,CAAC;AACb,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;AACpC,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;AAC1C,IAAI,MAAM;AACV,MAAM,iBAAiB,EAAE,QAAQ;AACjC,MAAM,gBAAgB;AACtB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,KAAK,GAAG,IAAI,CAAC;AACb,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC;AACnD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAChC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;AAClC,IAAI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5F,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,eAAe,EAAE;AAC3D,QAAQ,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChD,QAAQ,KAAK,GAAG,CAAC,CAAC;AAClB,QAAQ,QAAQ,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,QAAQ,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACrC,QAAQ,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;AAChC,OAAO;AACP,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3F,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC;AAC1D,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,MAAM,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,EAAE;AACxB,MAAM,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC9C,MAAM,EAAE,OAAO,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,oBAAoB,CAAC,QAAQ,EAAE;AACjC,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM;AACV,MAAM,iBAAiB,EAAE,gBAAgB;AACzC,MAAM,gBAAgB,EAAE,eAAe;AACvC,MAAM,YAAY,EAAE,WAAW;AAC/B,KAAK,GAAG,IAAI,CAAC;AACb,IAAI,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE;AAC7C,MAAM,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzD,QAAQ,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACvC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACnE,OAAO;AACP,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AACpF,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC7C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AACpF,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,IAAI,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrD,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC;AACnD,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,IAAI,WAAW,KAAK,QAAQ,EAAE;AACpC,QAAQ,WAAW,GAAG,QAAQ,CAAC;AAC/B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC5C,OAAO;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;AACnC,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAChE,KAAK;AACL,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AACjC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAI,IAAI,cAAc,CAAC,mBAAmB,EAAE;AAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzE,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,EAAE;AAC3D,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AACrC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,kBAAkB,CAAC,IAAI,EAAE;AAC3B,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,IAAI,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB,EAAE;AACnD,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM,GAAG,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACnG,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,IAAI,MAAM,WAAW,GAAG,SAAS,GAAG,EAAE,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB,EAAE;AACnD,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;AACjF,IAAI,MAAM;AACV,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,KAAK,GAAG,eAAe,CAAC;AACxB,IAAI,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;AACpD,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAC5B,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AAC1C,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;AACzJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;AAClC,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;AACxC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACC,IAAC,aAAa,GAAG,eAAe;AACnC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtC,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,CAAC,CAAC;AACF,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;AACjC,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACrCZ,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;AClW7B,IAAI,eAAe,GAAG,4IAA4I;;ACAlK,IAAIa,eAAa,GAAG,8jBAA8jB;;ACOllB,MAAM,OAAO,GAAG,cAAc,MAAM,CAAC;AACrC,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE;AAChD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACnH,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAChD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAClD,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAC7B,GAAG;AACH,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE;AAChE,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH,EAAE,WAAW,gBAAgB,GAAG;AAChC,IAAI,OAAOA,eAAa,CAAC;AACzB,GAAG;AACH,EAAE,WAAW,kBAAkB,GAAG;AAClC,IAAI,OAAO,eAAe,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,MAAM,GAAG,QAAQ;AACrB,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI;;ACvC7C,MAAM,gBAAgB,CAAC;AACvB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;AACvD,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,IAAI,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;AACjG,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,sBAAsB,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,GAAG;AACH,CAAC;AACD,gBAAgB,CAAC,SAAS,GAAG;AAC7B,EAAE,IAAI,EAAE;AACR,IAAI,aAAa,CAAC,cAAc;AAChC,IAAI,aAAa,CAAC,oBAAoB;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,YAAY;AACpB,CAAC,CAAC;AACFb,YAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;;AC9ChC,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C,GAAG;AACH,EAAE,iBAAiB,CAAC,cAAc,EAAE;AACpC,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE;AACjD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE;AACtC,IAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACpD,IAAI,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/C,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACxC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AAClB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;AAClC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE;AAC5D,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC;AACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACvE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,OAAO,CAAC,GAAG,WAAW,EAAE;AAC9B,QAAQ,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE;AACpF,UAAU,CAAC,EAAE,CAAC;AACd,UAAU,SAAS;AACnB,SAAS;AACT,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;AAC/B,QAAQ,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,WAAW,CAAC,SAAS,GAAG;AACxB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,OAAO;AACf,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;AC3D3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,MAAM,aAAa,EAAE,KAAK;AAC1B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC/C,GAAG;AACH,EAAE,aAAa,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,mBAAmB,EAAE,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,KAAK,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAC5D,MAAM,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;AACjE,MAAM,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACrD,MAAM,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACrD,MAAM,IAAI,CAAC,eAAe,CAAC;AAC3B,QAAQ,KAAK;AACb,QAAQ,kBAAkB;AAC1B,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS;AACpC,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;AAC5D,QAAQ,eAAe,EAAE,OAAO,CAAC,eAAe;AAChD,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,EAAE,EAAE;AACtB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,mBAAmB,EAAE,CAAC;AACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,EAAE;AAC1C,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC/E,MAAM,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACvF,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,OAAO,EAAE;AAC3B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;AACjC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE;AAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,EAAE,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AAC9F,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;AACnB,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC;AACxD,MAAM,oBAAoB,EAAE,EAAE,CAAC,YAAY,CAAC,gCAAgC,CAAC;AAC7E,MAAM,kBAAkB,EAAE,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;AACrE,MAAM,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAC5D,MAAM,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,oCAAoC,CAAC;AACtE,MAAM,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,8BAA8B,CAAC;AAC1D,MAAM,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAC5D,MAAM,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,uCAAuC,CAAC;AAC1H,MAAM,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,8BAA8B,CAAC;AAC1D,MAAM,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAC5D,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AACjC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7C,QAAQ,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC;AAC1D,QAAQ,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC;AAC5D,QAAQ,iBAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,gCAAgC,CAAC;AAC5K,QAAQ,kBAAkB,EAAE,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC;AACrE,QAAQ,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC;AAC1D,QAAQ,kBAAkB,EAAE,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;AACvE,QAAQ,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC;AACnE,QAAQ,sBAAsB,EAAE,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAChF,OAAO,CAAC,CAAC;AACT,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AACxC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7C,QAAQ,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC;AACnE,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,CAAC,KAAK,EAAE;AAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AAClE,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;AACrD,OAAO;AACP,KAAK,EAAE,CAAC,CAAC,CAAC;AACV,GAAG;AACH,EAAE,qBAAqB,GAAG;AAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,CAAC,EAAE;AAC7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC3E,MAAM,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACrC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAChD,KAAK;AACL,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE;AACxD,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AACtB,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,EAAE,EAAE;AACtB,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC;AACjD,IAAI,MAAM,QAAQ,GAAG,wBAAwB,IAAI,UAAU,IAAI,EAAE,YAAY,UAAU,CAAC,sBAAsB,CAAC;AAC/G,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3C,MAAM,OAAO,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;AAC5G,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,OAAO,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;AACzH,KAAK;AACL,GAAG;AACH,CAAC;AACD,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;ACzJ7B,MAAM,aAAa,SAAS,cAAc,CAAC;AAC3C,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3C,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3B,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,8BAA8B,EAAE,WAAW,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AACpG,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;AACxC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC;AAC1C,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;AAClE,MAAM,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAClH,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtI,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;ACbA,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE;AACtC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;AACjE,MAAM,SAAS,EAAE,WAAW,CAAC,OAAO;AACpC,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,MAAM,EAAE,YAAY,CAAC,GAAG;AAC9B,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,eAAe,CAAC,OAAO,EAAE;AAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,IAAI,WAAW,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACxH,MAAM,SAAS,EAAE,WAAW,CAAC,OAAO;AACpC,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,MAAM,EAAE,YAAY,CAAC,GAAG;AAC9B,MAAM,MAAM,EAAE,OAAO,CAAC,eAAe;AACrC,MAAM,IAAI,EAAE,KAAK,CAAC,cAAc;AAChC,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;AACtD,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AAC5C,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACtD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AACzE,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,mBAAmB,GAAG;AACxB,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAClC,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;AACrB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AACzB,KAAK;AACL,GAAG;AACH;;ACvFA,MAAM,iBAAiB,SAAS,WAAW,CAAC;AAC5C,EAAE,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC5B,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACzD,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;AACzC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;AAC3C,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACrE,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjG,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AACvD,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE;AACtC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7F,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC/B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH;;AClCA,MAAM,iBAAiB,SAAS,QAAQ,CAAC;AACzC,EAAE,WAAW,CAAC,MAAM,EAAE;AACtB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC;AAC7B,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC;AACpF,IAAI,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;AACxF,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AAChD,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC5D,MAAM,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACtD,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,EAAE;AACtC,MAAM,OAAO,CAAC,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AACxF,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;AACnD,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3B,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;AACxC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC;AAC1C,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;AACnC,IAAI,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,MAAM,YAAY,gBAAgB,EAAE;AACvF,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE;AACzD,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,KAAK,MAAM,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,MAAM,YAAY,gBAAgB,EAAE;AAC9F,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClE,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,8BAA8B,EAAE,WAAW,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AACpG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;AAC9H,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3F,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjH,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;AAC3E,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;AAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;AACnB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH;;ACrDA,MAAM,aAAa,SAAS,iBAAiB,CAAC;AAC9C,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,MAAM,MAAM,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;AACvC,MAAM,iBAAiB,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC/E,MAAM,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7D,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,mBAAmB,KAAK,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACjH,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACtF,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,YAAY,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAClD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,MAAM;AAC9B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7B,QAAQ,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,UAAU,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAClC,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC;AACxB,SAAS;AACT,OAAO,CAAC;AACR,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,EAAE;AACzC,QAAQ,SAAS,EAAE,CAAC;AACpB,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;AAClC,QAAQ,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;AACpC,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS,CAAC;AACV,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAChC,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;AAC/D,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAC3D,IAAI,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC;AAC3E,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;AACtC,MAAM,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS;AACrC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;AACvG,MAAM,gBAAgB,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,aAAa,GAAG,MAAM;AACjH,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACzB,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAQ,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;AAChC,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3C,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC5C,MAAM,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9B,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC;AACjD,MAAM,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACpC,QAAQ,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACzC,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;AAChF,UAAU,IAAI,GAAG,KAAK,CAAC;AACvB,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC/B,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC9B,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1B,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;AACtB,IAAI,OAAO,OAAO,gBAAgB,KAAK,WAAW,KAAK,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,gBAAgB,CAAC,CAAC;AACzH,GAAG;AACH;;ACvIA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;AAChC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;AAC/B,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;AAChC,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;AACvC,MAAM,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACnC,MAAM,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/C,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC7C,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9C,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,QAAQ,GAAG;AACb,IAAI,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrJ,GAAG;AACH;;ACjDA,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;AACrC,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,aAAa,GAAG;AACzC,GAAG,CAAC;AACJ,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG;AAC/B,GAAG,CAAC;AACJ,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,UAAU,GAAG;AACnC,GAAG,CAAC;AACJ,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,UAAU,GAAG;AACnC,GAAG,CAAC;AACJ,CAAC;AACD,MAAM,OAAO,SAASQ,aAAY,CAAC;AACnC,EAAE,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9D,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1B,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,IAAI,WAAW,YAAY,OAAO,EAAE;AACxC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;AACzB,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACvB,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE;AACvC,MAAM,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AACnG,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClF,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAClE,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC/C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAChE,KAAK;AACL,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACnC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,oBAAoB,CAAC,WAAW,EAAE;AACpC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAC9C,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC9C,QAAQ,IAAI,QAAQ,EAAE,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzD,UAAU,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AACnC,OAAO;AACP,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACtE,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACtE,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5C,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACnF,IAAI,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvJ,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC;AACzC,KAAK;AACL,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAAE;AAC5E,IAAI,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC/C,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,KAAK,MAAM,IAAI,MAAM,YAAY,WAAW,EAAE;AAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC;AACzD,QAAQ,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,QAAQ,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACvD,OAAO;AACP,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC;AACzD,QAAQ,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,OAAO;AACP,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AACxC,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACvC,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,MAAM,YAAY,WAAW,CAAC,EAAE;AACtD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/B,QAAQ,OAAO,CAAC,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxD,OAAO;AACP,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5C,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK,MAAM,IAAI,CAAC,OAAO,IAAI,MAAM,YAAY,WAAW,EAAE;AAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;AACzF,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1F,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAClD,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACpD,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/E,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACrD,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AAC9D,MAAM,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS;AACrD,MAAM,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC;AAC9C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACjB,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;AACrC,IAAI,IAAI,QAAQ,YAAY,aAAa,EAAE;AAC3C,MAAM,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,GAAG,QAAQ,CAAC;AACtB,KAAK;AACL,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC3B,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACjE,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE;AACjC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACjD,QAAQ,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO;AACP,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE;AAC5D,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,uCAAuC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAChG,OAAO;AACP,MAAM,YAAY,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;AACjC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,eAAe,CAAC,OAAO,EAAE;AAClC,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AACrD,MAAM,IAAI,gBAAgB,EAAE;AAC5B,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxE,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,UAAU,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AACrC,QAAQ,OAAO,gBAAgB,CAAC;AAChC,OAAO;AACP,KAAK,MAAM,IAAI,OAAO,EAAE,eAAe,EAAE;AACzC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC/D,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAClE,UAAU,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvD,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACzD,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE;AAC5B,MAAM,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,sEAAsE,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnI,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,GAAG;AACH,EAAE,iBAAiB,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,WAAW,KAAK,GAAG;AACrB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACzB,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;AACtD,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,WAAW,KAAK,GAAG;AACrB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACzB,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAM,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;AACzB,MAAM,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;AAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1B,GAAG;AACH;;AC7RA,MAAM,aAAa,SAAS,OAAO,CAAC;AACpC,EAAE,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE;AACxC,IAAI,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;AACzC,GAAG;AACH,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,GAAG,IAAI,EAAE;AAChE,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AACnD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AACrE,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AACvE,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACnD,IAAI,IAAI,iBAAiB,EAAE;AAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,GAAG;AACH,EAAE,aAAa,CAAC,UAAU,EAAE;AAC5B,IAAI,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,WAAW,CAAC,UAAU,KAAK,UAAU,EAAE;AAC/C,MAAM,OAAO;AACb,KAAK;AACL,IAAI,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,OAAO,EAAE;AACzB,IAAI,OAAO,IAAI,aAAa,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,GAAG;AACH;;ACtCA,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,CAAC,cAAc,EAAE;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE;AACxE,IAAI,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;AAClE,MAAM,KAAK,EAAE,SAAS;AACtB,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,WAAW;AACjB,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE;AAC1F,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;AACvD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE;AACtG,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,KAAK,EAAE,GAAG,SAAS,GAAG,KAAK,MAAM,CAAC,CAAC;AACjE,MAAM,IAAI,WAAW,GAAG,CAAC,EAAE;AAC3B,QAAQ,GAAG,IAAI,WAAW,GAAG,UAAU,CAAC;AACxC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAChC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACpD,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;AACtC,IAAI,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE;AACnD,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9I,IAAI,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAClD,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,aAAa,CAAC,aAAa,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC;AAC5C,IAAI,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,mBAAmB,CAAC,aAAa,EAAE;AACrC,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,KAAK,CAAC,eAAe,EAAE;AACzB,IAAI,eAAe,GAAG,eAAe,KAAK,KAAK,CAAC;AAChD,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;AACxC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,aAAa,CAAC,IAAI,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;AAChF,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtC,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5B,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,UAAU,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;AACnC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,GAAG;AACH,CAAC;AACD,iBAAiB,CAAC,UAAU,GAAG,CAAC,CAAC;;AC7FjC,MAAM,IAAI,SAAS,QAAQ,CAAC;AAC5B,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,YAAY,CAAC;AAC1D,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG;AACH;;ACbA,MAAM,MAAM,SAAS,QAAQ,CAAC;AAC9B,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC;AACrC,MAAM,CAAC,CAAC;AACR,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC;AAChC,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtI,GAAG;AACH,EAAE,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,EAAE;AAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACxE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACxE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC1E,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAC3B,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACnD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC9B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;ACxDA,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;AACvC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,SAAS,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,SAAS,EAAE,CAAC;AACnD,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,GAAG;AACH;;ACbA,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;AACxE,MAAMM,YAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAC;AAC3C,MAAM,WAAW,EAAE,IAAI,SAAS,EAAE;AAClC,MAAM,SAAS,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AACpC,MAAM,UAAU,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AACrC,MAAM,UAAU,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AACrC,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,UAAU,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AACrC,MAAM,WAAW,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AACtC,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACxB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAChD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AAC5D,IAAI,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC5D,IAAI,IAAI,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7C,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrC,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrC,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAClG,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;AAC1C,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC7E,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;AAClC,IAAI,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;AACpC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,IAAI,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACzF,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE;AACvC,MAAM,IAAI,CAAC,aAAa,CAACA,YAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC5G,KAAK;AACL,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAClD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACzE,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AACpC,QAAQ,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,OAAO;AACP,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;AACpE,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AAClC,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzO,IAAI,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACnI,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7D,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/D,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC3C,IAAI,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AACrD,IAAI,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;AACvD,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACxD,IAAI,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACvE,IAAI,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AACjF,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;AACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;AACzC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACvF,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,GAAG,GAAG;AACR,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAChD,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACpC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AACxD,IAAI,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACnD,IAAI,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACjD,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;AAC/C,IAAI,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACjD,IAAI,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACjD,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAChD,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACjD,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAChE,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAChE,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjF,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACnD,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACnD,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACpD,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,MAAM,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AACjC,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACrC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACrG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;AACrC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACzF,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;AAC9C,UAAU,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACzF,UAAU,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACrE,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC;AACvB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,IAAI,GAAG,CAAC,CAAC;AACjB,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtF,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;AAC1C,QAAQ,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE;AAC7D,IAAI,MAAM;AACV,MAAM,aAAa,EAAE,mBAAmB;AACxC,MAAM,KAAK,EAAE,WAAW;AACxB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AACtB,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE;AACrG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AACtE,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,aAAa,EAAE,WAAW,EAAE;AACpC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7C,MAAM,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,MAAM,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,MAAM,gBAAgB,CAAC,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC;AAC/D,MAAM,gBAAgB,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;AACjE,MAAM,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC3F,KAAK,MAAM,IAAI,aAAa,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE;AAC5G,MAAM,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AACrI,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AACjE,IAAI,IAAI,SAAS,KAAK,WAAW,CAAC,KAAK,IAAI,SAAS,KAAK,WAAW,CAAC,IAAI,IAAI,SAAS,EAAE;AACxF,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AAChD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;AACxD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;AACjE,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;AACvB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACxD,KAAK;AACL,GAAG;AACH,EAAE,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE;AAC9C,IAAI,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/D,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/H,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5E,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;AAC5B,IAAI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACzC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE;AAChG,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC5F,GAAG;AACH,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE;AACnD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC;AACzB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACpD,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1J,IAAI,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAClD,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,mBAAmB,CAAC,aAAa,EAAE;AACrC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9B,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,EAAE;AACxF,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,kBAAkB,CAAC,KAAK,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;AAClH,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;AACvC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACpG,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL,IAAI,SAAS,GAAG,SAAS,GAAGA,YAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAGA,YAAU,CAAC,QAAQ,EAAE,CAAC;AACnF,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAClQ,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAClD,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,QAAQ;AAChB,CAAC,CAAC;AACFd,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;ACzR5B,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AACzC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;;ACPA,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;AACtC,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE;AAClD,MAAM,IAAI,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;AACpF,MAAM,IAAI,2BAA2B,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;AACtF,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,YAAY,EAAE;AACpD,QAAQ,0BAA0B,GAAG,IAAI,CAAC;AAC1C,QAAQ,2BAA2B,GAAG,IAAI,CAAC;AAC3C,OAAO;AACP,MAAM,IAAI,0BAA0B,EAAE;AACtC,QAAQ,EAAE,CAAC,WAAW,GAAG,CAAC,cAAc,KAAK,0BAA0B,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;AACzG,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,EAAE,CAAC,WAAW,GAAG,MAAM;AAC/B,SAAS,CAAC;AACV,OAAO;AACP,MAAM,IAAI,CAAC,2BAA2B,EAAE;AACxC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACvC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAC9F,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE;AACzC,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACpG,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACnC,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5D,OAAO;AACP,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrC,QAAQ,WAAW,CAAC,OAAO,EAAE,CAAC;AAC9B,QAAQ,WAAW,CAAC,WAAW,EAAE,CAAC;AAClC,QAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,OAAO;AACP,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;AAC/C,QAAQ,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAC1C,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,EAAE;AACzD,UAAU,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;AACpD,UAAU,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,UAAU,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxD,SAAS,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE;AAC5D,UAAU,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,UAAU,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC9C,SAAS;AACT,OAAO;AACP,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjE,QAAQ,MAAM,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;AACpE,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/D,OAAO;AACP,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC;AACjD,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;AACnD,QAAQ,MAAM,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAC7C,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChF,OAAO,MAAM;AACb,QAAQ,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,QAAQ,CAAC;AACvD,QAAQ,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC;AACzD,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACpD,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACtE,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1E,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AACnC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,MAAM,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACpF,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpF,GAAG;AACH,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE;AAClE,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,eAAe,CAAC,WAAW,EAAE;AAC/B,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC1D,IAAI,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAClE,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;AACvD,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,IAAI,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,iBAAiB,CAAC,WAAW,EAAE;AACjC,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AACrB,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;AAC1B,QAAQ,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACxI,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACzG,OAAO;AACP,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;AACpD,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;AACrC,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;AACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC;AAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE;AACrC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAQ,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/K,OAAO;AACP,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5D,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAC9D,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE;AAC3C,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;AACpD,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;AACrC,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;AACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE;AAC5E,MAAM,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;AACjE,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;AAC/B,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;AAC5B,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE;AAC/B,QAAQ,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AACtC,QAAQ,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,EAAE,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC;AAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE;AACrC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAQ,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/K,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1G,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,iBAAiB,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzJ,QAAQ,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,YAAY,EAAE;AAClC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACvD,MAAM,IAAI,iBAAiB,EAAE;AAC7B,QAAQ,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACpD,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClJ,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,KAAK,EAAE,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE;AAC7G,MAAM,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAC3D,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;AAC1B,QAAQ,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACxI,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACzG,OAAO;AACP,MAAM,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5G,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AAC5B,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,yBAAyB,CAAC,WAAW,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AAC1H,GAAG;AACH,EAAE,aAAa,CAAC,OAAO,EAAE;AACzB,IAAI,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,WAAW,KAAK,IAAI,EAAE;AAC9C,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE;AACrC,QAAQ,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACxD,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE;AAC7C,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;AAC3B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;AAChC,QAAQ,GAAG,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7E,QAAQ,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAC7D,OAAO;AACP,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC;AACxC,MAAM,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACzD,QAAQ,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AACpD,QAAQ,WAAW,CAAC,OAAO,EAAE,CAAC;AAC9B,QAAQ,WAAW,CAAC,WAAW,EAAE,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;AACxF,QAAQ,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1C,QAAQ,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5C,QAAQ,WAAW,CAAC,OAAO,EAAE,CAAC;AAC9B,QAAQ,WAAW,CAAC,SAAS,EAAE,CAAC;AAChC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACzC,MAAM,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC;AAC1G,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;AAC7D,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACnO,GAAG;AACH,EAAE,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE;AAC/C,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO;AACb,KAAK;AACL,IAAI,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAChE,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;AACpB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5C,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;AAC1B,QAAQ,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9C,OAAO;AACP,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AACvB,QAAQ,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,eAAe,EAAE;AAC7B,MAAM,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,UAAU,CAAC,WAAW,EAAE;AAC1B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC1C,IAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;AACrC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAC5C,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAClD,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE;AACxB,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrG,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACtG,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,iBAAiB,CAAC,SAAS,GAAG;AAC9B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,aAAa;AACrB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;;AC9VjC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAClD,MAAM,cAAc,CAAC;AACrB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;AAC1C,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjD,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE;AACpC,MAAM,IAAI,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAClF,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,YAAY,EAAE;AACpD,QAAQ,kBAAkB,GAAG,IAAI,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,kBAAkB,EAAE;AAC9B,QAAQ,EAAE,CAAC,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;AAC/E,QAAQ,EAAE,CAAC,eAAe,GAAG,CAAC,GAAG,KAAK,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjF,QAAQ,EAAE,CAAC,iBAAiB,GAAG,CAAC,GAAG,KAAK,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACrF,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,EAAE,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC;AAC1C,QAAQ,EAAE,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC;AACxC,QAAQ,EAAE,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE;AACpC,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AACpE,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,EAAE,CAAC,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,QAAQ,EAAE,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5G,QAAQ,EAAE,CAAC,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAC1G,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AACzB,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,IAAI,IAAI,WAAW,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AACrD,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AAClE,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/F,IAAI,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE;AACjC,MAAM,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AAC5B,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAChC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;AAC1C,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE;AACxC,IAAI,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;AACnD,IAAI,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;AACnD,IAAI,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE;AACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AAClC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wDAAwD,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACnG,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;AAClC,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;AACxC,IAAI,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;AACnD,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,IAAI,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AAC7B,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC/B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACtD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE;AACxD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1E,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACtC,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB,IAAI,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AAC7B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AAChC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACtC,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC;AACvI,OAAO;AACP,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/F,KAAK;AACL,IAAI,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AAChC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;AACxC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE;AACvC,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACvF,UAAU,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,SAAS,MAAM;AACf,UAAU,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1D,SAAS;AACT,OAAO;AACP,MAAM,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;AACtC,QAAQ,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtD,QAAQ,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChF,OAAO;AACP,KAAK;AACL,IAAI,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACjC,IAAI,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACpC,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AACnC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAClD,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE;AACzC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC9C,MAAM,OAAO;AACb,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/C,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjE,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC/C,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AACzB,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAC1D,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;AAChC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC9B,UAAU,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE;AACvC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1B,WAAW;AACX,UAAU,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,GAAG;AACH,EAAE,UAAU,CAAC,WAAW,EAAE;AAC1B,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACpD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACxE,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;AACjC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC9B,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AAChC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACtD,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AACpC,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE;AACrC,UAAU,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,UAAU,UAAU,GAAG,QAAQ,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,QAAQ,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC7C,QAAQ,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9I,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;AAChC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AAChC,YAAY,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAChE,WAAW,MAAM;AACjB,YAAY,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;AAC9F,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;AACzC,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;AAC1C,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC9B,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACnE,MAAM,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC;AAC1E,MAAM,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC7E,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;AAChC,UAAU,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;AACxI,SAAS,MAAM;AACf,UAAU,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC3G,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;AAC9D,OAAO;AACP,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AACnC,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;AAC1F,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,cAAc,CAAC,SAAS,GAAG;AAC3B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,UAAU;AAClB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,cAAc,CAAC;;ACjR9B,MAAMe,SAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAC7B,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE;AACpC,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,WAAW,KAAK,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC;AAC9E,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,GAAG;AACH,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AACxB,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE;AACxB,MAAM,GAAG,GAAG,GAAG,CAAC;AAChB,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAC9C,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,MAAM,CAAC,WAAW,EAAE;AACtB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,SAAS,EAAE;AAC3D,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1G,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC1B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,IAAI,EAAE;AACd,MAAMA,SAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACzH,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACA,SAAO,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;AACzD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AACpC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;AAChE,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;AACjE,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;AACnF,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;AACrF,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;AACtD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AACvD,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AACnH,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;AClEA,IAAIC,UAAQ,GAAG,opBAAopB;;ACAnqB,IAAIC,QAAM,GAAG,iZAAiZ;;ACM9Z,MAAM,gBAAgB,SAAS,MAAM,CAAC;AACtC,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE;AAChD,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE;AACxF,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC;AACzB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC;AAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,KAAK,CAAC,SAAS,IAAIA,QAAM,EAAE,WAAW,IAAID,UAAQ,EAAE,QAAQ,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1C,KAAK;AACL,GAAG;AACH,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACjD,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC;AACpC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACvB,MAAM,GAAG,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;AAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;AACvD,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9D,GAAG;AACH;;AC1CA,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,UAAU,GAAG,IAAI,EAAE;AACjC,IAAI,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;AACzC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnD,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AAClC,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,GAAG;AACH,EAAE,mBAAmB,CAAC,SAAS,EAAE;AACjC,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;AACvD,MAAM,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;AACvD,MAAM,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;AACjD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,GAAG;AACH;;ACnDA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,YAAY,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE;AACjC,IAAI,IAAI,QAAQ,GAAG,gBAAgB,CAAC;AACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAC9B,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC1D,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB,MAAM,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC;AACtC,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACrG,IAAI,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC5C,IAAI,QAAQ,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;AAChE,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE;AAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B,MAAM,QAAQ,QAAQ,CAAC,IAAI;AAC3B,QAAQ,KAAK,UAAU,CAAC,OAAO;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,OAAO;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,MAAM;AAC9B,UAAU,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC7C,UAAU,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACxC,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,KAAK;AAC7B,UAAU,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACvC,UAAU,MAAM;AAChB,QAAQ;AACR,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE;AAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,GAAG,CAAC,MAAM,EAAE;AACd,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE;AAClD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B,MAAM,QAAQ,QAAQ,CAAC,IAAI;AAC3B,QAAQ,KAAK,UAAU,CAAC,OAAO;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9C,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,OAAO;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzD,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,MAAM;AAC9B,UAAU,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACvC,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC,KAAK;AAC7B,UAAU,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACtC,UAAU,MAAM;AAChB,QAAQ;AACR,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrB,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpE,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1E,QAAQ,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;AACpE,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AACvC,KAAK,MAAM,IAAI,UAAU,CAAC,QAAQ,EAAE;AACpC,MAAM,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;AACxC,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAClF,MAAM,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;AACzC,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC3B,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;AACpC,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;AACpC,IAAI,IAAI,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC5C,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChE,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAC7F,OAAO;AACP,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC;AACvD,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,mBAAmB,CAAC,OAAO,EAAE;AACrC,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC;AACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU,CAAC;AACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC;AACtE,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;AAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AACjE,KAAK;AACL,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/C,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;AACjD,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/C,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9C,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC;AACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC/B,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC3B,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AACnE,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC9C,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC;AACnF,IAAI,IAAI,aAAa,KAAK,aAAa,EAAE;AACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7I,KAAK;AACL,GAAG;AACH,EAAE,YAAY,CAAC,QAAQ,EAAE;AACzB,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC9C,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;AAChH,IAAI,IAAI,aAAa,KAAK,aAAa,EAAE;AACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7I,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,UAAU,CAAC,SAAS,GAAG;AACvB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,CAAC;AACFhB,YAAU,CAAC,GAAG,CAAC,UAAU,CAAC;;AC1K1B,MAAM,kBAAkB,CAAC;AACzB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACjC,GAAG;AACH,EAAE,YAAY,CAAC,SAAS,EAAE;AAC1B,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9C,IAAI,IAAI,WAAW,KAAK,WAAW,EAAE;AACrC,MAAM,IAAI,WAAW,KAAK,CAAC,EAAE;AAC7B,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH;;ACxBA,MAAMc,YAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,cAAc,GAAG,cAAc,kBAAkB,CAAC;AACxD,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,YAAY,CAAC;AAC5E,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,OAAO,QAAQ,CAAC,eAAe,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,eAAe,CAAC,QAAQ,EAAE;AAC5B,IAAI,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AACpC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC3C,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;AACpC,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC9B,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC;AACvD,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACpO,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,eAAe,CAAC,MAAM,EAAE;AACjC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpG,GAAG;AACH,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;AACpC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE;AAC5D,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AACnE,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC5E,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,EAAE;AAChG,IAAI,IAAI,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;AACnD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,SAAS,GAAG,SAAS,GAAGA,YAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAGA,YAAU,CAAC,QAAQ,EAAE,CAAC;AACnF,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAClQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzD,IAAI,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACvC,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC/C,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC/C,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;AACvD,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AACrC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAChC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC/B,IAAI,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,GAAG,CAAC,QAAQ,EAAE;AAChB,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;AACxE,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE;AAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,KAAK,MAAM;AACX,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,GAAG;AACH,CAAC,CAAC;AACC,IAAC,aAAa,GAAG,eAAe;AACnC,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFd,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;ACxG7B,MAAM,aAAa,SAAS,kBAAkB,CAAC;AAC/C,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,YAAY,CAAC;AAC5E,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,OAAO,QAAQ,CAAC,eAAe,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC;AACnD,IAAI,IAAI,aAAa,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;AAC/C,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;AACtC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC/B,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC1C,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE;AACzB,MAAM,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;AAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACxD,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;AACjC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,IAAI,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE;AACzB,MAAM,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC;AACtC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,GAAG,CAAC,UAAU,EAAE;AAClB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;AACrC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAClC,KAAK,MAAM;AACX,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACtG,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;AAC5D,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE;AAC3B,QAAQ,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;AAChC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAM,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAClC,MAAM,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;AACpC,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE;AAC3B,QAAQ,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC;AACxC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACjH,OAAO;AACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,CAAC,CAAC;AAChE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH,CAAC;AACD,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;AC1E7B,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE;AAC1C,MAAM,OAAO,EAAE;AACf,QAAQ,UAAU,EAAE,KAAK;AACzB,QAAQ,GAAG,GAAG;AACd,UAAU,WAAW,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAC;AACzF,UAAU,OAAO,QAAQ,CAAC,OAAO,CAAC;AAClC,SAAS;AACT,OAAO;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,UAAU,EAAE,KAAK;AACzB,QAAQ,GAAG,GAAG;AACd,UAAU,WAAW,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAC;AACzF,UAAU,OAAO,QAAQ,CAAC,OAAO,CAAC;AAClC,SAAS;AACT,OAAO;AACP,MAAM,WAAW,EAAE;AACnB,QAAQ,UAAU,EAAE,KAAK;AACzB,QAAQ,GAAG,GAAG;AACd,UAAU,WAAW,CAAC,OAAO,EAAE,uEAAuE,CAAC,CAAC;AACxG,UAAU,OAAO,QAAQ,CAAC,MAAM,CAAC;AACjC,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,IAAI,EAAE;AACR,IAAI,aAAa,CAAC,cAAc;AAChC,IAAI,aAAa,CAAC,oBAAoB;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;AC/C5B,MAAM,gBAAgB,CAAC;AACvB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,MAAM,EAAE,CAAC;AACzC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH,EAAE,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;AAC1D,IAAI,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC;AAC3F,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAC3E,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACxF,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC9E,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AACrC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;AAChC,MAAM,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChF,KAAK;AACL,GAAG;AACH,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;AACzE,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/C,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,YAAY,CAAC,OAAO,EAAE;AACxB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,gBAAgB,CAAC,SAAS,GAAG;AAC7B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,YAAY;AACpB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;;ACzChC,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;AACtC,MAAM,qBAAqB,CAAC;AAC5B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,EAAE,CAAC;AACpC,GAAG;AACH,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE;AAC1C,IAAI,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AACtE,IAAI,MAAM,MAAM,GAAG,YAAY,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5E,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;AAC1B,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC3B,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,IAAI,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/C,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK;AACzB,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM;AAC3B,MAAM,GAAG,cAAc;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;AAC9C,IAAI,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;AACxC,MAAM,aAAa;AACnB,MAAM,SAAS,EAAE,IAAI,CAAC,WAAW;AACjC,MAAM,mBAAmB,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM;AACjD,MAAM,IAAI,EAAE,IAAI;AAChB,KAAK,CAAC,CAAC;AACP,IAAI,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;AACxC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,GAAG;AACH,CAAC;AACD,qBAAqB,CAAC,SAAS,GAAG;AAClC,EAAE,IAAI,EAAE;AACR,IAAI,aAAa,CAAC,cAAc;AAChC,IAAI,aAAa,CAAC,oBAAoB;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,kBAAkB;AAC1B,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC;;AC1CrC,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;AACjC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,MAAM,mBAAmB,CAAC;AAC1B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;AACvC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;AAC5D,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;AACjC,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;AAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;AAC1C,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AACnD,QAAQ,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD,QAAQ,WAAW,GAAG,QAAQ,CAAC;AAC/B,OAAO;AACP,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAC7B,QAAQ,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,QAAQ,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,QAAQ,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5C,QAAQ,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAC9C,QAAQ,gBAAgB,GAAG,SAAS,CAAC;AACrC,OAAO;AACP,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;AAC5C,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACvC,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACrD,QAAQ,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACvD,QAAQ,WAAW,GAAG,QAAQ,CAAC;AAC/B,OAAO;AACP,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAC7B,QAAQ,gBAAgB,GAAG,QAAQ,CAAC;AACpC,QAAQ,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AACnD,QAAQ,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AACrD,OAAO;AACP,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAC7C,IAAI,aAAa,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC;AACtD,IAAI,aAAa,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC;AACtD,IAAI,aAAa,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,GAAG,UAAU,CAAC;AAC9D,IAAI,aAAa,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,UAAU,CAAC;AAChE,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,MAAM,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;AAC7F,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC7D,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACrD,GAAG;AACH,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;AACrE,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACnD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3F,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC;AACjH,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtG,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,mBAAmB,CAAC,SAAS,GAAG;AAChC,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,eAAe;AACvB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC;;ACzGnC,MAAM,cAAc,CAAC;AACrB,CAAC;AACD,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE;AACpC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACnC,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,GAAG;AACH;;ACdA,SAAS,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE;AACvC,EAAE,MAAM,UAAU,GAAG,EAAE,CAAC;AACxB,EAAE,MAAM,eAAe,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAChF,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC3C,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,MAAM,IAAI,GAAG;AACjB,MAAM,IAAI;AACV,MAAM,IAAI,EAAE,UAAU,CAAC,IAAI;AAC3B,MAAM,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;AACzB,MAAM,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;AAC9D,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB;;AClBA,SAAS,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE;AACrC,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACtB,EAAE,MAAM,aAAa,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;AAC5E,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AAC1C,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxD,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACzD,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG;AACrB,MAAM,IAAI;AACV,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,IAAI;AACV,MAAM,IAAI,EAAE,WAAW,CAAC,IAAI;AAC5B,MAAM,OAAO;AACb,MAAM,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACjD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC;AAClB;;ACdA,SAAS,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE;AACtC,EAAE,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9E,EAAE,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAClF,EAAE,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;AAC1C,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC9C,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC9C,EAAE,MAAM,yBAAyB,GAAG,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC;AAC7E,EAAE,IAAI,yBAAyB,EAAE;AACjC,IAAI,IAAI,OAAO,EAAE,CAAC,yBAAyB,KAAK,UAAU,EAAE;AAC5D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC;AAClG,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,yBAAyB,CAAC,YAAY,EAAE,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,CAAC,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACtL,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AAC7D,IAAI,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,OAAO,CAAC,aAAa,GAAG,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC7D,EAAE,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,gDAAgD,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACjF,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClD,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAChC,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAChC,EAAE,MAAM,WAAW,GAAG,EAAE,CAAC;AACzB,EAAE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE;AACvC,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG;AACrB,MAAM,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;AACtD,MAAM,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAC/C,KAAK,CAAC;AACN,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC7D,EAAE,OAAO,SAAS,CAAC;AACnB;;AC5CA,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE;AAC3D,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AACD,MAAM,qBAAqB,GAAG;AAC9B,EAAE,KAAK,EAAE,CAAC;AACV;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,CAAC,CAAC;AACF,MAAM,kBAAkB,GAAG;AAC3B,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;AACd,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;AACd,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;AACd,CAAC,CAAC;AACF,SAAS,iBAAiB,CAAC,WAAW,EAAE;AACxC,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACjD,IAAI,IAAI;AACR,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE;AAClD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAChD,MAAM,SAAS,IAAI,WAAW,CAAC;AAC/B,MAAM,MAAM,IAAI,WAAW,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE,EAAE;AAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3C,MAAM,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,IAAI,IAAI,CAAC;AACrB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AACjC,MAAM,SAAS,IAAI,IAAI,CAAC;AACxB,MAAM,MAAM,IAAI,IAAI,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACvC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AACD,SAAS,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC3C,EAAE,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC9B,EAAE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;AAC5B,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AACxB,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACrD,EAAE,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AACD,SAAS,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE;AACvD,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACzB,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC5C,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACnE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACpE,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC,CAAC;AACP,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACjF,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3H,QAAQ,MAAM,GAAG,IAAI,CAAC;AACtB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,QAAQ,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAC5C,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,wBAAwB,EAAE,IAAI,CAAC;AAC/B,uBAAuB,EAAE,IAAI,CAAC;AAC9B,yBAAyB,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD;AACA;AACA;AACA,iCAAiC,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AAClE;AACA,uCAAuC,EAAE,WAAW,CAAC;AACrD;AACA;AACA;AACA,8BAA8B,EAAE,SAAS,CAAC;AAC1C;AACA;AACA,gBAAgB,CAAC,CAAC,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,wBAAwB,EAAE,IAAI,CAAC;AAC/B,uBAAuB,EAAE,IAAI,CAAC;AAC9B,yBAAyB,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,gBAAgB,EAAE,QAAQ,CAAC;AAC3B,gBAAgB,CAAC,CAAC,CAAC;AACnB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACtB;AACA,IAAI,CAAC,CAAC,CAAC;AACP,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClG,GAAG,CAAC;AACJ;;ACvLA,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,MAAM,eAAe,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzD,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAChC,MAAM,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;AAChI,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzB,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3D,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACpG,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAClC,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;AACvC,MAAM,eAAe,CAAC,QAAQ,GAAG,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACvC,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnE,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxE,GAAG;AACH,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACpC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACnF,MAAM,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7D,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;AAC3C,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChG,IAAI,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,gBAAgB,CAAC,KAAK,EAAE;AAC1B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChE,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE;AACtC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACpF,MAAM,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACxB,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/G,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAC5B,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACpG,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,GAAG;AACH,EAAE,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;AAChD,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAI,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpF,IAAI,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzE,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC/F,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAChF,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACtD,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;AACzD,IAAI,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE;AAC3C,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACpC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;AAC9B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAC1B,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,eAAe,CAAC,MAAM,EAAE;AAC1B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,IAAI,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACnD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;AAC9D,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,EAAE,aAAa,CAAC,MAAM,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAChC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,QAAQ;AAChB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;AC5I5B,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,GAAG,CAAC,OAAO,EAAE;AACf,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,GAAG;AACH,CAAC;AACD,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE;AACR,IAAI,aAAa,CAAC,cAAc;AAChC,IAAI,aAAa,CAAC,oBAAoB;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;ACtB7B,SAAS,wBAAwB,CAAC,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE;AAClD,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC/D,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5C,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACvG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC/F,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAChE,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC/D,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAChE,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACpE,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAClE,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC5D,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC9D,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACnE,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACzG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACtE,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACzG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACjE,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACvE,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACjE,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AACtD,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACjE,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AACvE,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC5E,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxG,EAAE,OAAO,KAAK,CAAC;AACf;;AC7BA,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,YAAY,GAAG,MAAM;AAC3B,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AACnC,GAAG;AACH,EAAE,aAAa,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,GAAG,CAAC,KAAK,EAAE;AACb,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE;AACrC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,OAAO,IAAI,EAAE;AACnB,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;AACzB,QAAQ,CAAC,EAAE,CAAC;AACZ,OAAO;AACP,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;AAChC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,EAAE;AACpB,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;AACvC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,SAAS,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACvE,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,WAAW,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACrD,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAClC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9B,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5B,MAAM,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACjC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,GAAG;AACH,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,SAAS,GAAG;AACxB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,OAAO;AACf,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;ACrI3B,MAAM,aAAa,SAASQ,aAAY,CAAC;AACzC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,KAAK,CAAC,MAAM,EAAE;AAChB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,eAAe,GAAG;AAC5B,MAAM,GAAG,QAAQ;AACjB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7E,KAAK,CAAC;AACN,IAAI,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE;AACrC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG;AACH,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE;AAC3B,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACpC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC5B,IAAI,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACpB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACrC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACrC,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC;AACnG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACpD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,GAAG;AACH;;AC/CA,MAAM,gBAAgB,GAAG,MAAM;AAC/B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACnD,IAAI,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;AAC/D,IAAI,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAC7C,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE;AACzD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE;AACvC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAC9C,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,GAAG;AACH,EAAE,GAAG,GAAG;AACR,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,CAAC;AAC/C,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,MAAM,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC/E,QAAQ,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC,QAAQ,UAAU,GAAG,IAAI,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACzC,UAAU,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACpD,SAAS;AACT,OAAO;AACP,MAAM,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,aAAa,EAAE;AACxB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC;AAC3C,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACzC,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjE,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,eAAe,GAAG,iBAAiB;AACvC,eAAe,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5C,eAAe,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,eAAe,CAAC,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,eAAe,CAAC,SAAS,GAAG;AAC5B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,WAAW;AACnB,CAAC,CAAC;AACFR,YAAU,CAAC,GAAG,CAAC,eAAe,CAAC;;ACpE/B,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;AACpC,IAAI,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,GAAG;AACH;;ACbA,SAAS,gCAAgC,CAAC,EAAE,EAAE;AAC9C,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,IAAI,wBAAwB,IAAI,UAAU,IAAI,EAAE,YAAY,UAAU,CAAC,sBAAsB,EAAE;AACjG,IAAI,KAAK,GAAG;AACZ,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG;AAC7B,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK;AAChC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI;AAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;AAC5B,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AAC5B,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO;AAC1C,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM;AACxC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK;AACtC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI;AACtC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;AACjC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS;AACzC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,eAAe;AACrD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG;AACpB,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,WAAW;AACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,UAAU;AACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS;AAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ;AAClC,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM;AACzC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK;AACvC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI;AACrC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG;AACrC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG;AAC9B,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,QAAQ;AAC3C,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO;AACzC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM;AACvC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK;AACvC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,iBAAiB;AACvD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;AACrB,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO;AAC1C,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM;AACxC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK;AACtC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI;AACtC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG;AAC5B,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,QAAQ;AAC3C,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO;AACzC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM;AACvC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK;AACvC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,iBAAiB;AACvD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG;AACnB,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO;AAC1C,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM;AACxC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK;AACtC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI;AACtC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;AACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO;AAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM;AAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK;AAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI;AAC9B,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,kBAAkB;AACxD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG;AAC1B,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO;AAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM;AAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK;AAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI;AAC9B,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACpC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM;AAChC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG;AACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK;AAChC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG;AACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO;AAClC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG;AAC3C,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ;AACnC,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,UAAU;AAC7C,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG;AAC5C,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,cAAc;AACxC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG;AACxC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO;AACjC,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG;AACjC,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC,gBAAgB;AACpD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG;AAC9C,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC,iBAAiB;AACrD,OAAO;AACP,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,KAAK,GAAG;AACZ,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG;AAC7B,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AAC/B,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;AAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;AACjC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS;AACzC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,eAAe;AACrD,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACpC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;AAC7B,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG;AACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AAC/B,OAAO;AACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG;AACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AAC/B,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;AC5GA,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACvC,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjD,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3D,IAAI,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;AAChE,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC;AAC5C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;AAC7D,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;AACvD,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;AAChF,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC;AACzF,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC9G,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE;AAC9B,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,OAAO,GAAG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAI,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACvD,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3F,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE;AACpD,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC/C,UAAU,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AAC1C,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1D,OAAO;AACP,MAAM,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;AACjD,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC/C,UAAU,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AAC1C,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,OAAO,MAAM,IAAI,SAAS,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;AAClE,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACzC,OAAO;AACP,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;AAC7C,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC7C,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACxC,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC1C,KAAK;AACL,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACpC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AAClD,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACpC,MAAM,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACzC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE;AACtD,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACxC,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AACxC,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC5C,UAAU,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AACnF,QAAQ,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,CAAC,WAAW,EAAE;AACjC,IAAI,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACpE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/C,MAAM,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AACvD,QAAQ,IAAI,SAAS,CAAC,WAAW,KAAK,aAAa,CAAC,KAAK,EAAE;AAC3D,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;AAC7D,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;AACtD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,IAAI,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACrD,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE;AACtC,IAAI,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;AACtG,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE;AACtE,MAAM,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;AAC1C,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,OAAO,EAAE;AACzB,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC7C,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;AAChE,MAAM,IAAI,SAAS,CAAC,WAAW,KAAK,aAAa,CAAC,KAAK,EAAE;AACzD,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACvC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;AACtC,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AACxC,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC7B,MAAM,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE;AAC7F,QAAQ,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;AAClC,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3H,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACxC,GAAG;AACH,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;AACtC,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC1C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;AACtE,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,UAAU,EAAE;AACvB,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACtB,UAAU,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,CAAC,OAAO,EAAE;AAC9B,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;AACpG,MAAM,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;AAC/B,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC1D,MAAM,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;AAC5C,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;AACpE,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAClD,GAAG;AACH,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE;AAC/B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,IAAI,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,EAAE;AACvE,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC5E,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC5E,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AAC1B,MAAM,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;AAC9J,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACnF,MAAM,IAAI,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,EAAE;AACtG,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC;AACzH,QAAQ,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAC3F,OAAO;AACP,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AACjI,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAC/H,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,aAAa,CAAC,SAAS,GAAG;AAC1B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;AC/N7B,MAAM,uBAAuB,CAAC;AAC9B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC1B,IAAI,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;AAC1I,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AACzE,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC3C,IAAI,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,oBAAoB,GAAG;AACzB,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,oBAAoB,EAAE,CAAC;AAC9B,GAAG;AACH,EAAE,yBAAyB,CAAC,EAAE,EAAE;AAChC,IAAI,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AAC/C,IAAI,MAAM,mBAAmB,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;AAC7D,IAAI,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC;AAChE,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AACzE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,MAAM;AACjB,QAAQ,SAAS;AACjB,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChD,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;AACxG,KAAK;AACL,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC1D,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,OAAO,mBAAmB,CAAC;AAC/B,GAAG;AACH,EAAE,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE;AAC5C,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,MAAM;AACnB,UAAU,SAAS;AACnB,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AACzB,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACtD,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC;AACD,uBAAuB,CAAC,SAAS,GAAG;AACpC,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,mBAAmB;AAC3B,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC;;AC9EvC,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACnE,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;AAChE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AAC7C,GAAG;AACH,EAAE,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,EAAE;AACtD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AAC7D,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;AAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,OAAO,CAAC,UAAU,EAAE;AACtB,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,CAAC;AACD,UAAU,CAAC,SAAS,GAAG;AACvB,EAAE,IAAI,EAAE;AACR,IAAI,aAAa,CAAC,cAAc;AAChC,IAAI,aAAa,CAAC,oBAAoB;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,OAAO;AACf,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,UAAU,CAAC;;AClC1B,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAClC,EAAE,SAAS,EAAE;AACb,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;AACjD,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,2EAA2E,CAAC,CAAC;AACxG,MAAM,WAAW,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;AAClD,KAAK;AACL,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC;AAClD,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,6EAA6E,CAAC,CAAC;AAC1G,MAAM,WAAW,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC;AAC/C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,+EAA+E,CAAC,CAAC;AAC5G,MAAM,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC;AACzD,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;AACxH,MAAM,WAAW,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,GAAG,GAAG;AACV,MAAM,WAAW,CAAC,OAAO,EAAE,wEAAwE,CAAC,CAAC;AACrG,MAAM,OAAO,MAAM,CAAC,iBAAiB,CAAC;AACtC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,GAAG,GAAG;AACV,MAAM,WAAW,CAAC,OAAO,EAAE,0EAA0E,CAAC,CAAC;AACvG,MAAM,OAAO,MAAM,CAAC,kBAAkB,CAAC;AACvC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,aAAa,CAAC,kBAAkB,CAAC;AAC9C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,kFAAkF,CAAC,CAAC;AAC/G,MAAM,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAC/C,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,aAAa,CAAC,gBAAgB,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,8EAA8E,CAAC,CAAC;AAC3G,MAAM,aAAa,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,aAAa,CAAC,mBAAmB,CAAC;AAC/C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,sFAAsF,CAAC,CAAC;AACnH,MAAM,aAAa,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAChD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,eAAe,CAAC,WAAW,CAAC;AACzC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,iEAAiE,CAAC,CAAC;AAC9F,MAAM,eAAe,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1C,KAAK;AACL,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,eAAe,CAAC,cAAc,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,wEAAwE,CAAC,CAAC;AACrG,MAAM,eAAe,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,eAAe,CAAC,oBAAoB,CAAC;AAClD,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,qFAAqF,CAAC,CAAC;AAClH,MAAM,eAAe,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,OAAO,CAAC,sBAAsB,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,6EAA6E,CAAC,CAAC;AAC1G,MAAM,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,OAAO,CAAC,wBAAwB,CAAC;AAC9C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,iFAAiF,CAAC,CAAC;AAC9G,MAAM,OAAO,CAAC,wBAAwB,GAAG,KAAK,CAAC;AAC/C,KAAK;AACL,GAAG;AACH,CAAC,CAAC;;AC3IC,IAAC,eAAe,mBAAmB,CAAC,CAAC,gBAAgB,KAAK;AAC7D,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;AAC3D,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC9D,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1D,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAClE,EAAE,OAAO,gBAAgB,CAAC;AAC1B,CAAC,EAAE,eAAe,IAAI,EAAE;;ACNxB,MAAM,cAAc,CAAC;AACrB,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE;AAC9D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE;AAC5B,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;AACjB,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AACnB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;AACvB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;;AClDA,MAAM,OAAO,GAAG,MAAM;AACtB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK;AAC3B,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACzE,UAAU,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrD,MAAM,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACxC,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AACtC,MAAM,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAClC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9B,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE;AACtD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE;AAC1D,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,YAAY,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,OAAO,OAAO,EAAE;AACtB,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;AAClD,UAAU,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,QAAQ,GAAG,OAAO,CAAC;AAC3B,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;AAC/B,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC9B,QAAQ,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;AACtB,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,IAAI,OAAO,QAAQ,EAAE;AACrB,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;AACvC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtC,OAAO,MAAM;AACb,QAAQ,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,OAAO,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;AACnC,MAAM,KAAK,EAAE,CAAC;AACd,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvB,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAC3B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,MAAM,OAAO,QAAQ,EAAE;AACvB,QAAQ,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,OAAO;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC3B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE;AAC1C,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/D,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,QAAQ,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AACvC,OAAO;AACP,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;AAC9B,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC9B,QAAQ,MAAM,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACnE,OAAO;AACP,MAAM,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AAC/B,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;AACzD,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9B,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,MAAM,OAAO,QAAQ,EAAE;AACvB,QAAQ,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE;AAClB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;AAC5B,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE;AAClB,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,MAAM,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG;AACH,EAAE,WAAW,MAAM,GAAG;AACtB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1B,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACrD,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,WAAW,MAAM,GAAG;AACtB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1B,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACrD,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,MAAM,GAAG,QAAQ;AACrB,MAAM,CAAC,UAAU,GAAG,IAAI;;AC/LxB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAClC,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,MAAM,CAAC,UAAU,CAAC;AAC/B,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,WAAW,CAAC,OAAO,EAAE,2DAA2D,CAAC,CAAC;AACxF,MAAM,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC,KAAK;AACL,GAAG;AACH,CAAC,CAAC;;ACXF,MAAM,YAAY,CAAC;AACnB,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,YAAY,EAAE,KAAK;AACzB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC1C,MAAM,GAAG,CAAC,MAAM,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7D,SAAS;AACT,OAAO;AACP,MAAM,GAAG,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC1B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM;AACvB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtE,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;AAC3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,OAAO,GAAG;AACnB,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;AACrC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;AAC1B,KAAK;AACL,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC;AACnDA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;AC3C5B,MAAM,SAAS,GAAG,EAAE,CAAC;AACrBA,YAAU,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE;AACxC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACpC,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAChE;;ACXA,IAAI,cAAc,GAAG,qRAAqR;;ACA1S,IAAI,oBAAoB,GAAG,8jBAA8jB;;ACGplB,MAAC,aAAa,GAAG,eAAe;AAChC,MAAC,mBAAmB,GAAG;;ACD5B,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,aAAa,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE;AAClD,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAClE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACtD,KAAK,MAAM;AACX,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AACvE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE;AACtC,MAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AAC3C,KAAK,MAAM,IAAI,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE;AAC/C,MAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;AAC7C,KAAK,MAAM,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE;AAC5C,MAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC1C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AAC3C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,GAAG;AACH,CAAC;AACD,iBAAiB,CAAC,SAAS,GAAG;AAC9B,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,cAAc;AACtB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;;ACrCjC,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,MAAM,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;;ACJA,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACnF,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,EAAE;AACf,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACrF,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AAC5C,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnE,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;AACzB,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACnF,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1F,GAAG;AACH,EAAE,MAAM,CAAC,MAAM,EAAE;AACjB,IAAI,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACnF,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE;AAChD,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACvD,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;AACxE,MAAM,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACnD,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AACzC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,UAAU,CAAC,WAAW,EAAE;AAC1B,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAC7D,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,MAAM,EAAE;AACzB,IAAI,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AAC5C,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC1C,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,QAAQ;AAChB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;ACxF5B,MAAM,oBAAoB,CAAC;AAC3B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,mBAAmB,CAAC;AAC5B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;AACxD,KAAK;AACL,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,aAAa,CAAC;AAC5C,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9C,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,MAAM,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC9B,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;AAC3D,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;AACtC,MAAM,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/C,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC3C,IAAI,IAAI,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE;AACxD,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACrC,KAAK;AACL,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnC,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC3C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;AACxB,QAAQ,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACpC,OAAO;AACP,MAAM,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AACzC,KAAK;AACL,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;AACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACnC,GAAG;AACH,CAAC;AACD,oBAAoB,CAAC,SAAS,GAAG;AACjC,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,EAAE,IAAI,EAAE,gBAAgB;AACxB,CAAC,CAAC;AACFA,YAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;;ACnDpC,MAAM,SAAS,GAAG,cAAc,aAAa,CAAC;AAC9C,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AACpC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAC;AAC3C,MAAM,gBAAgB,EAAE,IAAI,MAAM,EAAE;AACpC,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,IAAI,MAAM,YAAY,GAAG;AACzB,MAAM,OAAO,EAAE;AACf,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,eAAe;AACvB,QAAQ,kBAAkB;AAC1B,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,YAAY;AACpB,QAAQ,WAAW;AACnB,QAAQ,QAAQ;AAChB,OAAO;AACP,MAAM,OAAO,EAAE,SAAS,CAAC,SAAS;AAClC,MAAM,QAAQ,EAAE;AAChB,QAAQ,OAAO;AACf,QAAQ,kBAAkB;AAC1B,QAAQ,YAAY;AACpB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,mBAAmB;AAC3B,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,YAAY;AACpB,QAAQ,WAAW;AACnB,QAAQ,QAAQ;AAChB,QAAQ,eAAe;AACvB,QAAQ,OAAO;AACf,QAAQ,gBAAgB;AACxB,QAAQ,cAAc;AACtB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7B,IAAI,IAAI,iBAAiB,IAAI,OAAO,EAAE;AACtC,MAAM,WAAW,CAAC,OAAO,EAAE,2GAA2G,CAAC,CAAC;AACxI,MAAM,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,KAAK,eAAe,CAAC;AAC1G,MAAM,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;AAChG,KAAK;AACL,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK;AAC1B,MAAM,OAAO,EAAE,SAAS,CAAC,SAAS;AAClC,MAAM,UAAU,EAAE;AAClB,QAAQ,KAAK,EAAE,OAAO,CAAC,eAAe;AACtC,QAAQ,KAAK,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,eAAe;AAC5D,QAAQ,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;AACpD,OAAO;AACP,MAAM,KAAK,EAAE;AACb,QAAQ,MAAM,EAAE,OAAO,CAAC,MAAM;AAC9B,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK;AAC5B,QAAQ,WAAW,EAAE,OAAO,CAAC,WAAW;AACxC,QAAQ,UAAU,EAAE,OAAO,CAAC,UAAU;AACtC,QAAQ,IAAI,EAAE,OAAO,CAAC,IAAI;AAC1B,OAAO;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS;AACpC,QAAQ,OAAO,EAAE,OAAO,CAAC,OAAO;AAChC,QAAQ,eAAe,EAAE,OAAO,CAAC,eAAe;AAChD,QAAQ,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;AACtD,QAAQ,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;AAC5D,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,OAAO,EAAE,WAAW,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,gBAAgB,EAAE,CAAC;AAC9B,GAAG;AACH,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE;AACjC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE;AAClD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AACnE,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,CAAC,UAAU,GAAG,KAAK,EAAE;AAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACzC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACrD,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,kBAAkB,GAAG;AAC3B,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,iBAAiB,GAAG;AAC1B,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,IAAI,iBAAiB,GAAG;AAC1B,IAAI,WAAW,CAAC,OAAO,EAAE,2GAA2G,CAAC,CAAC;AACtI,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAC7C,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,WAAW,CAAC,OAAO,EAAE,uGAAuG,CAAC,CAAC;AAClI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,qBAAqB,GAAG;AAC9B,IAAI,WAAW,CAAC,OAAO,EAAE,+GAA+G,CAAC,CAAC;AAC1I,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,WAAW,CAAC,OAAO,EAAE,sFAAsF,CAAC,CAAC;AACjH,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,KAAK,EAAE;AAC7B,IAAI,WAAW,CAAC,OAAO,EAAE,sFAAsF,CAAC,CAAC;AACjH,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,WAAW,CAAC,OAAO,EAAE,sFAAsF,CAAC,CAAC;AACjH,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,KAAK,EAAE;AAC7B,IAAI,WAAW,CAAC,OAAO,EAAE,sFAAsF,CAAC,CAAC;AACjH,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,WAAW,CAAC,OAAO,EAAE,iGAAiG,CAAC,CAAC;AAC5H,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACxC,GAAG;AACH,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACzE,GAAG;AACH,CAAC,CAAC;AACC,IAAC,QAAQ,GAAG,UAAU;AACzB,QAAQ,CAAC,SAAS,GAAG;AACrB,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC9B,EAAE,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC;AACF,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;AACxBA,YAAU,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzEA,YAAU,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzEA,YAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;;ACjMxB,MAAM,qBAAqB,SAAS,QAAQ,CAAC;AAC7C,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5C,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACzB,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,OAAO,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;AACnD,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACzE,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACrD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5B,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AACnC,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,WAAW,CAAC;AACrD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,WAAW,EAAE;AACtB,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnE,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM;AAClD,MAAM,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACzC,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;;AC9EA,MAAM,aAAa,SAAS,qBAAqB,CAAC;AAClD,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5C,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC/B,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtD,KAAK,MAAM;AACX,MAAM,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAClD,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;AACvC,IAAI,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACjD,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;AAC5B,IAAI,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE;AAC/B,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClJ,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACvC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChK,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;AC9CA,MAAM,cAAc,SAAS,iBAAiB,CAAC;AAC/C,EAAE,WAAW,CAAC,MAAM,EAAE;AACtB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;AACtB,IAAI,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;AAC3C,IAAI,IAAI,eAAe,IAAI,MAAM,YAAY,eAAe,EAAE;AAC9D,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,UAAU,CAAC,iBAAiB,IAAI,MAAM,YAAY,iBAAiB,CAAC;AAC/E,GAAG;AACH;;ACVA,MAAM,aAAa,GAAG,cAAc,qBAAqB,CAAC;AAC1D,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AACvE,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE;AACzD,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,CAAC,eAAe,GAAG,eAAe,KAAK,KAAK,CAAC;AACrD,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAClD,GAAG;AACH,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE;AACxD,IAAI,IAAI,eAAe,KAAK,KAAK,CAAC,EAAE;AACpC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5B,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpH,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE;AAChC,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;AACnF,OAAO;AACP,KAAK,MAAM;AACX,MAAM,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,KAAK,CAAC;AACvE,MAAM,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;AACxD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;AACtC,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;AACpC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE;AAC5C,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE;AAC/E,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzC,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1D,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAClC,SAAS,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAClC,UAAU,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1K,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;AACtB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC;AAC1E,GAAG;AACH,CAAC,CAAC;AACC,IAAC,YAAY,GAAG,cAAc;AACjC,YAAY,CAAC,KAAK,GAAG,CAAC;;AClEtB,MAAM,mBAAmB,SAAS,iBAAiB,CAAC;AACpD,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC7C,MAAM,GAAG,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,GAAG,GAAG,IAAI,CAAC;AACjB,KAAK;AACL,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;AACnD,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACtF,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAK;AACxD,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;AAC7B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI;AACV,QAAQ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;AAChE,UAAU,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS;AACrD,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,UAAU,OAAO;AACjB,QAAQ,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAChD,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,UAAU,OAAO;AACjB,QAAQ,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;AAC/D,UAAU,gBAAgB,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,aAAa,GAAG,MAAM;AACrH,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,UAAU,OAAO;AACjB,QAAQ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAClC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,OAAO,CAAC,OAAO,CAAC,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,UAAU,OAAO;AACjB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3C,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE;AAC/C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC5C,MAAM,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,EAAE;AAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1B,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;AACtB,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,iBAAiB,IAAI,OAAO,WAAW,KAAK,WAAW,KAAK,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,WAAW,CAAC,CAAC;AACjJ,GAAG;AACH,EAAE,WAAW,KAAK,GAAG;AACrB,IAAI,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnG,IAAI,OAAO,mBAAmB,CAAC,MAAM,CAAC;AACtC,GAAG;AACH;;AChFA,MAAM,YAAY,GAAG,cAAc,iBAAiB,CAAC;AACrD,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE;AACrC,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;AACxC,IAAI,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1C,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,OAAO,CAAC;AACR,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE;AACtD,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,UAAU,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,QAAQ,GAAG;AACb,IAAI,MAAM,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAClC,IAAI,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1E,IAAI,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAC7B,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM;AAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACzC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAChH,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AACxC,MAAM,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1C,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;AACvD,QAAQ,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnF,QAAQ,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AACpF,OAAO;AACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,MAAM,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtB,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,SAAS,EAAE;AAC5B,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5D,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE;AACjC,IAAI,OAAO,SAAS,KAAK,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3K,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,OAAO,GAAG,mDAAmD,CAAC;AAC1E,WAAW,CAAC,QAAQ,GAAG,iIAAiI;;AC9FxJ,MAAM,cAAc,GAAG,cAAc,iBAAiB,CAAC;AACvD,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B,IAAI,IAAI,EAAE,MAAM,YAAY,gBAAgB,CAAC,EAAE;AAC/C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnD,MAAM,YAAY,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC1D,MAAM,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnD,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACtC,QAAQ,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1B,OAAO;AACP,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,iBAAiB,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AACjF,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/D,QAAQ,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAQ,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACxE,QAAQ,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;AAChC,QAAQ,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;AAClC,QAAQ,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChD,OAAO;AACP,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;AAC/C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC3E,MAAM,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAC1E,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;AACzD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACvF,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;AAC3I,MAAM,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;AAChC,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1D,MAAM,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5D,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1C,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAChC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,QAAQ,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AACpE,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,OAAO,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACvD,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACnC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,IAAI,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACjC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AACpB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACnC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACxC,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,MAAM,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;AACtB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AACpB,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC1D,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAC1C,OAAO,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC5F,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACzC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AACnC,MAAM,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE;AACjC,IAAI,OAAO,UAAU,CAAC,gBAAgB,IAAI,MAAM,YAAY,gBAAgB,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzH,GAAG;AACH,CAAC,CAAC;AACC,IAAC,aAAa,GAAG,eAAe;AACnC,aAAa,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACjF,aAAa,CAAC,UAAU,GAAG;AAC3B,EAAE,GAAG,EAAE,WAAW;AAClB,EAAE,GAAG,EAAE,iBAAiB;AACxB,EAAE,GAAG,EAAE,WAAW;AAClB,CAAC;;ACrJD,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC;;ACpB3I,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAChE,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;AAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG;AACH;;AC8EK,MAAC,OAAO,GAAG;;AC1FhB,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1D,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC1B,GAAG;AACH,EAAE,YAAY,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxD,MAAM,OAAO,SAAS,CAAC,KAAK,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACxC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;AAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtC,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACzB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE;AACpD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AACrD,MAAM,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACjC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACjC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACjC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACvF,GAAG;AACH,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE;AACrF,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACzB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AACrD,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,SAAS,CAAC,MAAM,EAAE;AACpB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACxD,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACxD,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACxD,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACxD,GAAG;AACH,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACpE,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACpE,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACpE,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACpE,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;AAC1C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE;AAClC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACpF,GAAG;AACH,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACxF,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1F,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;AAC1C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,KAAK;AACL,GAAG;AACH,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;AACzC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACzB,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5B,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5B,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5B,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC1C,IAAI,EAAE,IAAI,IAAI,CAAC;AACf,IAAI,EAAE,IAAI,IAAI,CAAC;AACf,IAAI,EAAE,IAAI,IAAI,CAAC;AACf,IAAI,EAAE,IAAI,IAAI,CAAC;AACf,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChD,GAAG;AACH;;ACtOA,MAAM,aAAa,SAASkB,aAAkB,CAAC;AAC/C,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE;AACvB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1H,KAAK;AACL,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,6BAA6B,GAAG;AAClC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC;AAClD,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5D,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC9E,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,GAAG;AACH,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9B,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACpD,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,6BAA6B,EAAE,CAAC;AAC7C,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAClD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3C,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAClC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;AAChD,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC;AACvC,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC;AAC7D,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AACrC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;AAC5D,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE;AAChD,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;AAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACpD,QAAQ,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC5C,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;AAC7C,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;AAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACpD,QAAQ,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC5C,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,SAAS,CAAC,SAAS,EAAE;AACvB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC3C,MAAM,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;AACjH,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,wBAAwB,GAAG;AACjC,IAAI,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE;AAC/C,MAAM,IAAI,CAAC,uBAAuB,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAClE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,uBAAuB,CAAC;AACxC,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;AAChD,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH,EAAE,iBAAiB,CAAC,WAAW,EAAE;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE;AACf,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE;AACf,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC;AAChD,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AACpB,IAAI,GAAG;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,KAAK,QAAQ,IAAI,EAAE;AACnB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AACpF,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,UAAU,CAAC,aAAa,EAAE,CAAC;AACnC,QAAQ,IAAI,UAAU,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5C,UAAU,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;AACvC,UAAU,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AACpF,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,IAAI,UAAU,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5C,UAAU,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;AACxC,UAAU,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AACnC,SAAS;AACT,QAAQ,UAAU,CAAC,aAAa,EAAE,CAAC;AACnC,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;AACD,MAAM,sBAAsB,SAAS,aAAa,CAAC;AACnD,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH,CAAC;AACD,aAAa,CAAC,SAAS,CAAC,4BAA4B,GAAG,aAAa,CAAC,SAAS,CAAC,eAAe;;AChS9F,MAAM,UAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;AAC7B,IAAI,OAAO,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,GAAG,cAAc,aAAa,CAAC;AAC/C,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,uBAAuB,CAAC;AAC/D,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,gBAAgB,CAAC,OAAO,EAAE;AAC5B,GAAG;AACH,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE;AACxB,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxC,OAAO;AACP,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACnD,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClH,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;AAC9B,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;AAC1B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7C,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACtB,MAAM,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAEC,OAAK,EAAE;AAC9B,IAAI,IAAIA,OAAK,GAAG,CAAC,IAAIA,OAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAEA,OAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9F,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnD,IAAIC,WAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACD,OAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,gBAAgB,CAACA,OAAK,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAE;AAC3B,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,MAAMA,OAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjD,MAAM,IAAIA,OAAK,KAAK,CAAC,CAAC;AACtB,QAAQ,OAAO,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACrC,MAAMC,WAAiB,CAAC,IAAI,CAAC,QAAQ,EAAED,OAAK,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,MAAM,IAAI,CAAC,gBAAgB,CAACA,OAAK,CAAC,CAAC;AACnC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAEA,OAAK,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,aAAa,CAACA,OAAK,EAAE;AACvB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAACA,OAAK,CAAC,CAAC;AACzC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACnC,IAAIC,WAAiB,CAAC,IAAI,CAAC,QAAQ,EAAED,OAAK,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,gBAAgB,CAACA,OAAK,CAAC,CAAC;AACjC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAEA,OAAK,CAAC,CAAC;AAClD,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,cAAc,CAAC,UAAU,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAClE,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC;AAC7B,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC;AACzB,IAAI,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC/C,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AAClC,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC9C,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACxC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC/C,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvD,OAAO;AACP,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,MAAM,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1D,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,MAAM,IAAI,UAAU,CAAC,kEAAkE,CAAC,CAAC;AAC7F,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,QAAQ,YAAY,GAAG,IAAI,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE;AACjD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,eAAe,EAAE,CAAC;AAChC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC/C,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AACzF,QAAQ,IAAI,UAAU,EAAE;AACxB,UAAU,UAAU,CAAC,eAAe,EAAE,CAAC;AACvC,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACxE,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,OAAO,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;AACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACpE,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,KAAK,EAAE;AACnD,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,UAAU,KAAK,CAAC,eAAe,EAAE,CAAC;AAClC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,GAAG;AACH,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC/B,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC;AAC3D,IAAI,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC5D,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AACtC,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;AAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;AAC9D,IAAI,IAAI,mBAAmB,EAAE;AAC7B,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnD,QAAQ,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC/C,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,mBAAmB,CAAC;AACxC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;AAC7D,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC3C,MAAM,KAAK,CAAC,QAAQ,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvD,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,MAAM,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC;AACrC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnE,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC3B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACjC,QAAQ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAChC,UAAU,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9J,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AACjD,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AACjD,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,SAAS,EAAE;AACrB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,CAAC;AACvF,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrE,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnD,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC;AAC9C,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AACvD,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AAChD,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,SAAS,GAAG,WAAW;AAC3B,SAAS,CAAC,uBAAuB,GAAG,KAAK,CAAC;AAC1C,SAAS,CAAC,SAAS,CAAC,wBAAwB,GAAG,SAAS,CAAC,SAAS,CAAC,eAAe;;ACpVlF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAClC,EAAE,iBAAiB,EAAE;AACrB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,SAAS,CAAC,uBAAuB,CAAC;AAC/C,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAME,WAAiB,CAAC,OAAO,EAAE,iFAAiF,CAAC,CAAC;AACpH,MAAM,SAAS,CAAC,uBAAuB,GAAG,KAAK,CAAC;AAChD,KAAK;AACL,GAAG;AACH,CAAC,CAAC;;ACXF,MAAMC,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,MAAM,SAAS,SAAS,CAAC;AAC/B,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjJ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAChC,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC9B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC9C,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAChC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAGC,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACvF,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAGA,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACzF,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,iBAAiB,GAAG;AACtB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,EAAE;AAChG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAChD,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;AACxC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACnC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AAC5E,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,wBAAwB,GAAG;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACjC,MAAM,IAAI,CAAC,iBAAiB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK,MAAM,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC3H,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACvD,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACrD,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACvC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,IAAI,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAChC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,IAAI,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC3E,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACtC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC;AACzC,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3E,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5E,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAChF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACjF,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,UAAU,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;AAClD,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrC,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAED,WAAS,CAAC,CAAC;AACvD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,IAAI,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAIA,WAAS,CAAC,CAAC,IAAI,EAAE,IAAIA,WAAS,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE;AACvD,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,MAAM,IAAIA,WAAS,CAAC,CAAC,IAAI,EAAE,IAAIA,WAAS,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,cAAc,GAAG,OAAO,OAAO,KAAK,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;AACrF,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC;AAC/F,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,OAAO,GAAG,MAAM,YAAY,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvF,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7D,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,MAAM,CAAC,GAAGC,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,MAAM,CAAC,GAAGA,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5E,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACjC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;AAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACxPA,MAAM,WAAW,GAAG,IAAI,MAAM,EAAE,CAAC;AACjC,aAAa,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/C,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1C,aAAa,CAAC,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACxD,aAAa,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACzD,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACnC,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,CAAC;AACD,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE;AACjD,EAAE,uBAAuB,EAAE;AAC3B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,IAAI,CAAC,wBAAwB,CAAC;AAC3C,KAAK;AACL,IAAI,GAAG,CAAC,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,wBAAwB,EAAE;AACxD,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,wBAAwB,GAAG,UAAU,CAAC;AACjD,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACnC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,IAAI,CAAC,yBAAyB,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,CAAC,WAAW,EAAE;AACrB,MAAM,IAAI,WAAW,KAAK,IAAI,CAAC,yBAAyB,EAAE;AAC1D,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC;AACnD,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACnC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,IAAI,CAAC,cAAc,CAAC;AACjC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;AACzC,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAClC,MAAM,IAAI,IAAI,CAAC;AACf,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,UAAU,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AAC5C,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;AACtD,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5D,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5D,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC;AAC1D,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;AACvC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,IAAI,CAAC,2BAA2B,EAAE,CAAC;AAC7C,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AAC1C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;AAC1D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AACvC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAClD,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,CAAC,CAAC;AACH,aAAa,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,CAAC,QAAQ,EAAE;AACzE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACjE,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,QAAQ,EAAE;AAC/F,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACzB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACzD,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnC,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7D,EAAE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACvE,EAAE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AACjF,EAAE,MAAM,yBAAyB,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;AAClE,EAAE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,IAAI,KAAK,EAAE,MAAM,CAAC,KAAK;AACvB,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM;AACzB,IAAI,UAAU,EAAE,IAAI,CAAC,uBAAuB,IAAI,QAAQ,CAAC,UAAU;AACnE,IAAI,WAAW,EAAE,IAAI,CAAC,wBAAwB,IAAI,QAAQ,CAAC,WAAW;AACtE,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,cAAc,GAAG,CAAC,cAAc,EAAEC,GAAS,EAAE,CAAC,CAAC,CAAC;AACxD,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;AAClD,EAAE,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACpE,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACpD,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvG,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AAC/C,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;AAClG,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC9B,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,yBAAyB,CAAC;AAC5D,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;AAC9F,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACnC,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC;AAC3D,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC;AACrD,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACnD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC1B,EAAE,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;AACjD,EAAE,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACxE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,EAAE,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;AAClC,EAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACtC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC;AACxC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,mBAAmB,CAAC,QAAQ,EAAE;AACrF,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACjE,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,QAAQ,EAAE;AAC3G,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB,EAAE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;AAClE,EAAE,MAAM,yBAAyB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC5D,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnC,EAAE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7F,EAAE,MAAM,cAAc,GAAG,CAAC,cAAc,EAAEA,GAAS,EAAE,CAAC,CAAC,CAAC;AACxD,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;AAClD,EAAE,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACpE,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACpD,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC;AACxB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACb,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC;AACnB,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC;AACnB,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC3D,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;AAClG,EAAE,QAAQ,CAAC,aAAa,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAC5D,EAAE,QAAQ,CAAC,cAAc,GAAG,yBAAyB,CAAC;AACtD,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC/C,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC;AAC3D,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC;AACrD,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACnD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC1B,EAAE,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;AACjD,EAAE,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACxE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,EAAE,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;AAClC,EAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACtC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC;AACxC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAC;AACpD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAAS,sBAAsB,GAAG;AACnF,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;AAC5C,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,qBAAqB,GAAG,SAAS,qBAAqB,GAAG;AACjF,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,2BAA2B,GAAG,SAAS,2BAA2B,GAAG;AAC7F,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAChC,EAAE,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC9D,EAAE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC1D,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;AACxC,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,CAAC,qBAAqB,GAAG,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxF,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7B,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;;AC/OD,aAAa,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AACpC,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;AACzE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;AACxC,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;AACjC,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;;ACnBD,aAAa,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,EAAE,UAAU,GAAG,KAAK,EAAE;AAChH,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3D,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9B,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;ACXD,IAAIR,UAAQ,GAAG,8KAA8K;;ACG7L,MAAM,WAAW,SAAS,MAAM,CAAC;AACjC,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;AACzB,IAAI,KAAK,CAAC,aAAa,EAAEA,UAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;AACjC,GAAG;AACH;;ACdA,MAAM,eAAe,GAAG;AACxB,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACnC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC7C,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;AACtD,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC/D,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC1E,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACjF,CAAC,CAAC;AACF,MAAM,YAAY,GAAG;AACrB,EAAE,sCAAsC;AACxC,EAAE,6BAA6B;AAC/B,EAAE,iBAAiB;AACnB,EAAE,GAAG;AACL,EAAE,+BAA+B;AACjC,EAAE,YAAY;AACd,EAAE,GAAG;AACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,SAAS,sBAAsB,CAAC,UAAU,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,EAAE,IAAI,UAAU,GAAG,YAAY,CAAC;AAChC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB,EAAE,MAAM,QAAQ,GAAG,yEAAyE,CAAC;AAC7F,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvC,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,IAAI,UAAU,EAAE;AACzB,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,IAAI,QAAQ,IAAI,IAAI,CAAC;AACrB,IAAI,QAAQ,IAAI,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtD,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,EAAE,OAAO,UAAU,CAAC;AACpB;;ACrCA,MAAM,YAAY,GAAG,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,CAAC;AACP,SAAS,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE;AAC/C,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,UAAU,GAAG,YAAY,CAAC;AAChC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB,EAAE,IAAI,QAAQ,CAAC;AACf,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,QAAQ,GAAG,gFAAgF,CAAC;AAChG,GAAG,MAAM;AACT,IAAI,QAAQ,GAAG,gFAAgF,CAAC;AAChG,GAAG;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvC,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,IAAI,QAAQ,IAAI,IAAI,CAAC;AACrB,IAAI,QAAQ,IAAI,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtD,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,EAAE,OAAO,UAAU,CAAC;AACpB;;AC9CA,MAAM,cAAc,SAAS,MAAM,CAAC;AACpC,EAAE,WAAW,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,UAAU,GAAG,CAAC,EAAE;AAC5G,IAAI,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACnE,IAAI,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACvD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACjD,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACjF,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACpF,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACjH,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACpH,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;AAC1C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAChE,KAAK,MAAM;AACX,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;AAC9C,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC;AACvB,MAAM,IAAI,IAAI,GAAG,YAAY,CAAC;AAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,MAAM,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACrE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;AAC1B,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AAC9B,MAAM,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/D,MAAM,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;AACtD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH;;ACjEA,MAAM,UAAU,SAAS,MAAM,CAAC;AAChC,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,UAAU,GAAG,CAAC,EAAE;AAChG,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5F,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAClC,GAAG;AACH,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACjD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1D,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1D,IAAI,IAAI,SAAS,IAAI,SAAS,EAAE;AAChC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;AAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACpF,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7E,MAAM,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;AACtD,KAAK,MAAM,IAAI,SAAS,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACtE,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACtE,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAChC,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACvB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5G,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;AAChE,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,gBAAgB,GAAG;AACzB,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC9B,IAAI,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH;;AC1EA,IAAIA,UAAQ,GAAG,msCAAmsC;;ACGltC,MAAM,iBAAiB,SAAS,MAAM,CAAC;AACvC,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,CAAC,EAAE,IAAI,YAAY,CAAC;AAC1B,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,OAAO,CAAC;AACR,MAAM,MAAM,EAAE,CAAC;AACf,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,mBAAmB,EAAEA,UAAQ,EAAE,QAAQ,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE;AACxC,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC;AAC3B,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;AAChC,GAAG;AACH,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAClF,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAClF,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,YAAY,CAAC,MAAM,EAAE;AACvB,IAAI,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;AACjB,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;AACjB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC1B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;AACxB,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;AAC/B,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AAC1B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC,GAAG,GAAG;AACb,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,GAAG;AACb,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,GAAG;AACb,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC7B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC1B,IAAI,QAAQ,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/C,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE;AACjC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,QAAQ,CAAC,QAAQ,EAAE;AACrB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,CAAC;AACR,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,KAAK;AACX,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK;AACX,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK;AACX,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,kBAAkB;AACxB,MAAM,CAAC,kBAAkB;AACzB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC;AACP,MAAM,kBAAkB;AACxB,MAAM,CAAC,kBAAkB;AACzB,MAAM,kBAAkB;AACxB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC;AACP,MAAM,CAAC,iBAAiB;AACxB,MAAM,CAAC,iBAAiB;AACxB,MAAM,CAAC,kBAAkB;AACzB,MAAM,iBAAiB;AACvB,MAAM,CAAC;AACP,MAAM,kBAAkB;AACxB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,QAAQ,CAAC,QAAQ,EAAE;AACrB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,KAAK;AACX,MAAM,CAAC,KAAK;AACZ,MAAM,CAAC,KAAK;AACZ,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,KAAK;AACZ,MAAM,KAAK;AACX,MAAM,CAAC,KAAK;AACZ,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,KAAK;AACZ,MAAM,CAAC,KAAK;AACZ,MAAM,KAAK;AACX,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,CAAC,QAAQ,EAAE;AACvB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,kBAAkB;AACxB,MAAM,CAAC,kBAAkB;AACzB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,kBAAkB;AACxB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC;AACP,MAAM,kBAAkB;AACxB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC,kBAAkB;AACzB,MAAM,kBAAkB;AACxB,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,MAAM,CAAC,kBAAkB;AACzB,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,CAAC,oBAAoB;AAC3B,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,MAAM,CAAC;AACP,MAAM,CAAC,iBAAiB;AACxB,MAAM,mBAAmB;AACzB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,mBAAmB;AACzB,MAAM,CAAC;AACP,MAAM,CAAC,iBAAiB;AACxB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AACxB,MAAM,CAAC,mBAAmB;AAC1B,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,CAAC,kBAAkB;AACzB,MAAM,kBAAkB;AACxB,MAAM,CAAC;AACP,MAAM,iBAAiB;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;AAClE,IAAI,YAAY,GAAG,YAAY,IAAI,GAAG,CAAC;AACvC,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;AAC1B,IAAI,UAAU,GAAG,UAAU,IAAI,QAAQ,CAAC;AACxC,IAAI,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC;AACrC,IAAI,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;AAC9C,IAAI,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AAC7C,IAAI,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC;AACxC,IAAI,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;AAC7C,IAAI,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AAC5C,IAAI,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;AACvC,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,GAAG;AACT,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,YAAY;AAClB,MAAM,CAAC;AACP,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,KAAK;AACX,MAAM,CAAC;AACP,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC7B,IAAI,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;AACjC,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,CAAC,SAAS;AAChB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,SAAS;AAChB,MAAM,CAAC;AACP,MAAM,SAAS;AACf,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,SAAS;AACf,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC7B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,kBAAkB,GAAG,MAAM;AACjC,MAAM,CAAC,iBAAiB,GAAG,MAAM;AACjC,MAAM,CAAC,kBAAkB,GAAG,MAAM;AAClC,MAAM,CAAC,GAAG,MAAM;AAChB,MAAM,mBAAmB,GAAG,MAAM;AAClC,MAAM,CAAC,kBAAkB,GAAG,MAAM;AAClC,MAAM,iBAAiB,GAAG,MAAM;AAChC,MAAM,CAAC,iBAAiB,GAAG,MAAM;AACjC,MAAM,CAAC,GAAG,MAAM;AAChB,MAAM,CAAC,iBAAiB,GAAG,MAAM;AACjC,MAAM,CAAC,kBAAkB,GAAG,MAAM;AAClC,MAAM,CAAC,kBAAkB,GAAG,MAAM;AAClC,MAAM,iBAAiB,GAAG,MAAM;AAChC,MAAM,CAAC,GAAG,MAAM;AAChB,MAAM,kBAAkB,GAAG,MAAM;AACjC,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,GAAG,CAAC,QAAQ,EAAE;AAChB,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC,GAAG;AACV,MAAM,GAAG;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG;AACV,MAAM,CAAC;AACP,MAAM,CAAC,GAAG;AACV,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG;AACV,MAAM,CAAC,GAAG;AACV,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,CAAC;AACD,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,SAAS;;AC7mB7E,IAAIA,UAAQ,GAAG,6fAA6f;;ACA5gB,IAAIC,QAAM,GAAG,srBAAsrB;;ACInsB,MAAM,kBAAkB,SAAS,MAAM,CAAC;AACxC,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7B,IAAI,MAAM,UAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,IAAI,KAAK,CAACA,QAAM,EAAED,UAAQ,EAAE;AAC5B,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ;AACjC,MAAM,YAAY,EAAE,UAAU;AAC9B,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3B,MAAM,QAAQ,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,KAAK;AACL,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE;AACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,GAAG;AACH;;AC1CA,IAAIA,UAAQ,GAAG,szIAAszI;;ACAr0I,IAAIC,QAAM,GAAG,6nCAA6nC;;ACI1oC,MAAM,UAAU,SAAS,MAAM,CAAC;AAChC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAACA,QAAM,EAAED,UAAQ,CAAC,CAAC;AAC5B,GAAG;AACH;;ACRA,IAAIA,UAAQ,GAAG,ouBAAouB;;ACGnvB,MAAM,WAAW,SAAS,MAAM,CAAC;AACjC,EAAE,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;AACjD,IAAI,KAAK,CAAC,mBAAmB,EAAEA,UAAQ,EAAE;AACzC,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,KAAK,EAAE,CAAC;AACd,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,GAAG;AACH;;ACfA,MAAM,OAAU,GAAA;AAAA,EAEZ,WAAA;AAAA,EAEA,UAAA;AAAA,EAEA,cAAA;AAAA,EAEA,iBAAA;AAAA,EAEA,kBAAA;AAAA,EAEA,UAAA;AAAA,EAEA,WAAA;AACJ,EAAA;AAEA,MAAA,CAAO,QAAQ,OAAO,CAAA,CAAE,QAAQ,CAAC,CAAC,KAAK,WACvC,CAAA,KAAA;AACI,EAAO,MAAA,CAAA,cAAA,CAAe,SAAS,GAAK,EAAA;AAAA,IAChC,GACA,GAAA;AAEI,MAAAK,WAAkB,CAAA,OAAA,EAAS,CAAW,QAAA,EAAA,GAAA,CAAA,cAAA,EAAoB,GAAK,CAAA,CAAA,CAAA,CAAA;AAG/D,MAAO,OAAA,WAAA,CAAA;AAAA,KACX;AAAA,GACH,CAAA,CAAA;AACL,CAAC,CAAA;;ACnCD,MAAM,YAAY,GAAG,MAAM;AAC3B,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;AACjC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,WAAW,EAAE,KAAK;AACxB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC9C,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE;AACpC,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACtB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAChC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC1BrB,YAAU,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC;;ACnCxE,MAAM,YAAY,CAAC;AACnB,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;AAC5C,MAAM,GAAG,CAAC,GAAG,EAAE;AACf,QAAQ,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AAC7B,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,GAAG,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM;AAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,MAAM,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM;AAC9B,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAQ,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,MAAM,IAAI,KAAK,CAAC;AAChB,MAAM,IAAI,MAAM,CAAC;AACjB,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE;AAChD,QAAQ,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;AACtC,QAAQ,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7D,QAAQ,KAAK,GAAG,WAAW,CAAC;AAC5B,QAAQ,MAAM,GAAG,YAAY,CAAC;AAC9B,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;AAC7C,GAAG;AACH,EAAE,OAAO,OAAO,GAAG;AACnB,IAAI,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,CAAC;AACD,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC;AACnDA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;AC5D5B,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU;AAClC,EAAE,QAAQ,EAAE,aAAa,CAAC,aAAa;AACvC,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW;AAClC,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe;AAC1C,CAAC,CAAC;AACFA,YAAU,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,KAAK;AACtD,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;AAC5B,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAKA,YAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzK,CAAC,EAAE,CAAC,SAAS,KAAK;AAClB,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;AAC5B,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAKA,YAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC;;ACdF,MAAM,gBAAgB,CAAC;AACvB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,GAAG,CAAC,SAAS,EAAE;AACjB,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,IAAI,CAAC,OAAO;AACpB,MAAM,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAClE,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAClD,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjF,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3C,OAAO;AACP,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;AAChC,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH;;AC1CA,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;AAClC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACxC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC;;ACPA,SAAS,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE;AACxC,EAAE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,MAAM,GAAG,GAAGyB,IAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,KAAK,SAAS,CAAC;AAC3B;;ACTK,MAAC,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK;AAC5C,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC7B,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL;;ACbK,MAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK;AACnD,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB;;ACNA,SAAS,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;AAClD,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACjF,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH,CAAC;AACD,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC;AAC7B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3C,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd;;AC1BK,MAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;;ACIlD,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC/C,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACxB,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;AAClB,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACpC,IAAI,IAAI,eAAe,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9B,QAAQ,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7B,QAAQ,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACtC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnD,IAAI,MAAM,YAAY,GAAG;AACzB,MAAM,SAAS;AACf,MAAM,IAAI;AACV,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC7C,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAChC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE;AACpE,QAAQ,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;AACvD,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,KAAK,YAAY,OAAO,EAAE;AAClC,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC;AAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7B,QAAQ,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AAC/D,UAAU,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,EAAE;AACd,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAClC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAC1E,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;AACzC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAChC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,KAAK,CAAC,CAAC;AACP,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,CAAC;AACI,MAAC,KAAK,GAAG,IAAI,UAAU;;AC9E5B,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE;AACtC,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,OAAO,EAAE,IAAI;AACnB,MAAM,MAAM,EAAE,IAAI;AAClB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,YAAY;AAClC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC;AACvB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;AAC3D,UAAU,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,UAAU,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACjC,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,gGAAgG,CAAC,CAAC,CAAC;AACxI,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE;AAC1B,UAAU,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;AAC3E,YAAY,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC;AACnE,YAAY,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACnC,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,GAAG,CAAC;AACT,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AACzC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AACrD,IAAI,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,IAAI,MAAM;AAClE,MAAM,GAAG,EAAE,IAAI;AACf,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK;AACvD,MAAM,MAAM,GAAG,GAAGA,IAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/E,WAAW;AACX,UAAU,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACnE,UAAU,IAAI,UAAU;AACxB,YAAY,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AACxC,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB,UAAU,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACxC,UAAU,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,UAAU,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,GAAG,CAAC;AAC9D,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,OAAO,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC9D,GAAG;AACH,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;AACjC,IAAI,MAAM,cAAc,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,MAAM;AACtE,MAAM,GAAG,EAAE,IAAI;AACf,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK;AACzD,MAAM,MAAM,GAAG,GAAGA,IAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACjD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;AACtD,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/D,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACtC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH;;AC5FG,IAAC,oBAAoB,mBAAmB,CAAC,CAAC,qBAAqB,KAAK;AACvE,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAClE,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AACxE,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AACpE,EAAE,OAAO,qBAAqB,CAAC;AAC/B,CAAC,EAAE,oBAAoB,IAAI,EAAE;;ACFxB,MAAC,QAAQ,GAAG;AACjB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,GAAG;AACtC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAOA,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE;AAClB,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE;AACFzB,YAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;;ACdnB,MAAC,OAAO,GAAG;AAChB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,GAAG;AACtC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAOyB,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AAC5D,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE;AAClB,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtC,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE;AACFzB,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;ACZvB,MAAM,YAAY,GAAG;AACrB,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,KAAK;AACP,CAAC,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG;AACvB,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,YAAY;AACd,CAAC,CAAC;AACF,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,MAAM,GAAG,GAAGyB,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,MAAM,IAAI,GAAGA,IAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrD,EAAE,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtI,EAAE,OAAO,aAAa,CAAC;AACvB,CAAC;AACI,MAAC,WAAW,GAAG;AACpB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,GAAG;AACtC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AACzF,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AACpD,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,SAAS,GAAG,EAAE,CAAC;AAC3B,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAClE,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7G,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACtC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,UAAU,GAAG,IAAI;AACjB,UAAU,MAAM;AAChB,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO;AACP,MAAM,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC/D,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACvF,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,EAAE;AACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,GAAG;AACH,EAAE;AACFzB,YAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;AClE3B,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,IAAI,WAAW,CAAC;AAChB,MAAM,SAAS,GAAG,oHAAoH,CAAC;AACvI,MAAM,oBAAoB,GAAG;AAC7B,EAAE,EAAE,EAAE,kBAAkB;AACxB,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE,SAAS,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,CAAC,CAAC;AACF,MAAM,UAAU,GAAG;AACnB,EAAE,EAAE,EAAE,iBAAiB;AACvB,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,CAAC,CAAC;AACF,IAAI,SAAS,CAAC;AACd,MAAM,kBAAkB,CAAC;AACzB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,sBAAsB,GAAG;AAC3B,IAAI,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,CAAC;AAC/C,MAAM,OAAO,IAAI,CAAC,uBAAuB,CAAC;AAC1C,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC5D,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;AACxH,MAAM,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACpD,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;AAC3B,QAAQ,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACxC,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC,uBAAuB,CAAC;AACxC,GAAG;AACH,EAAE,eAAe,CAAC,GAAG,EAAE;AACvB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,MAAM,YAAY,GAAG;AACvB,IAAI,IAAI,IAAI,CAAC,YAAY;AACzB,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;AAChC,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,IAAI,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,GAAG,WAAW,EAAE;AACvD,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;AACzG,OAAO;AACP,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACpD,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,YAAY,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,QAAQ,CAAC,IAAI,EAAE;AACjB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;AACvB,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC9B,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACrD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC1B,MAAM,OAAO;AACb,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAClC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5E,IAAI,MAAM,CAAC,WAAW,CAAC;AACvB,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS;AAC1B,MAAM,IAAI,EAAE,IAAI,EAAE;AAClB,MAAM,EAAE;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;AACD,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE;;ACtJ9C,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAC1C,EAAE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;AAC1C,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACpC,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB;;ACDA,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzE,MAAM,eAAe,GAAG;AACxB,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,CAAC,CAAC;AACF,eAAe,eAAe,CAAC,GAAG,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3G,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC1C,EAAE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACzD,EAAE,OAAO,WAAW,CAAC;AACrB,CAAC;AACI,MAAC,YAAY,GAAG;AACrB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,IAAI;AACvC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,aAAa,EAAE,IAAI;AACvB,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC3F,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACjC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC;AACnB,IAAI,IAAI,UAAU,CAAC,iBAAiB,EAAE;AACtC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,aAAa,CAAC,sBAAsB,EAAE,EAAE;AACrF,QAAQ,GAAG,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC3C,QAAQ,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAC1B,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;AACtC,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACtB,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC1B,UAAU,OAAO,CAAC,GAAG,CAAC,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,MAAM,GAAG,MAAM;AAC7B,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,WAAW,CAAC;AACZ,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;AACtC,MAAM,UAAU,EAAE0B,kBAAwB,CAAC,GAAG,CAAC;AAC/C,MAAM,GAAG,KAAK,CAAC,IAAI;AACnB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AAC5B,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE;AACF1B,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC;;AC9DvB,MAAC,OAAO,GAAG;AAChB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,IAAI;AACvC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAOyB,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AAC5D,GAAG;AACH,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE;AACxB,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AACnC,IAAI,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACpE,IAAI,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;AACtC,MAAM,UAAU,EAAEC,kBAAwB,CAAC,KAAK,CAAC;AACjD,MAAM,GAAG,IAAI,EAAE,IAAI;AACnB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;AAC9B,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE;AAChD,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC5B,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM;AAC7B,EAAE;AACF1B,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;AC9BvB,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,+BAA+B,GAAG;AAC3C,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;AACnG,MAAM,wBAAwB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/H,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC;AAC7E,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,+BAA+B,CAAC,mBAAmB,CAAC;AACzF,IAAI,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,+BAA+B,CAAC,wBAAwB,CAAC;AACnG,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,mBAAmB,CAAC,gBAAgB,EAAE;AACxC,IAAI,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC;AACpF,IAAI,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,CAAC;AAClG,IAAI,IAAI,CAAC,yBAAyB,GAAG,gBAAgB,CAAC,wBAAwB,IAAI,IAAI,CAAC,yBAAyB,CAAC;AACjH,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,EAAE;AAClG,MAAM,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AACpF,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,YAAY,EAAE;AAC1B,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACrC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC5B,QAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACrC,GAAG;AACH,EAAE,sBAAsB,CAAC,YAAY,EAAE;AACvC,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAC1C,MAAM,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AACvC,MAAM,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxJ,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACzC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC9B,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAChC,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5C,UAAU,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAChF,UAAU,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACxE,SAAS,MAAM;AACf,UAAU,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAChG,UAAU,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AAC3C,YAAY,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,WAAW,CAAC,CAAC;AACb,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC3C,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;AACzC,GAAG;AACH,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,4BAA4B,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AACvE,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClC,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACxC,QAAQ,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACpD,OAAO,MAAM;AACb,QAAQ,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC7C,MAAM,IAAI,cAAc,GAAG,KAAK,CAAC;AACjC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;AAC3B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvD,UAAU,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1C,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClC,YAAY,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjD,YAAY,MAAM,GAAG,IAAI,CAAC;AAC1B,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,UAAU,cAAc,GAAG;AAC3B,YAAY,GAAG,EAAE,KAAK;AACtB,WAAW,CAAC;AACZ,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAClC,QAAQ,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACpE,OAAO;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACjC,QAAQ,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC;AACpC,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5C,QAAQ,cAAc,CAAC,GAAG,GAAGyB,IAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACvG,OAAO;AACP,MAAM,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC/E,MAAM,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC;AACxD,MAAM,OAAO,cAAc,CAAC;AAC5B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AACrC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,aAAa,CAAC,SAAS,EAAE;AAC3B,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAChD,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACpC,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjD,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACjD,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1B,QAAQ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACnC,UAAU,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACrC,UAAU,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACxE,SAAS;AACT,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC/B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACjD,GAAG;AACH,EAAE,UAAU,CAAC,GAAG,EAAE;AAClB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;AACrB,MAAM,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AAC9B,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AACjC,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3C,UAAU,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACjE,UAAU,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,UAAU,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK;AAC5D,YAAY,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClE,cAAc,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC9D,gBAAgB,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;AACxC,kBAAkB,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC;AACtD,iBAAiB;AACjB,gBAAgB,OAAO,KAAK,CAAC;AAC7B,eAAe,CAAC,CAAC;AACjB,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;AACzC,gBAAgB,MAAM,GAAG,cAAc,CAAC;AACxC,eAAe;AACf,aAAa,CAAC,CAAC;AACf,WAAW,CAAC,CAAC;AACb,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAC3D,SAAS,MAAM;AACf,UAAU,IAAI,GAAG,GAAG,GAAG,CAAC;AACxB,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;AAChD,YAAY,GAAG,GAAGA,IAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7E,WAAW;AACX,UAAU,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;AACrD,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG;AACpC,YAAY,GAAG;AACf,WAAW,CAAC;AACZ,SAAS;AACT,OAAO;AACP,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAClD,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,EAAE;AACd,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,SAAS,CAAC,GAAG,EAAE;AACjB,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,kBAAkB,CAAC,MAAM,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnH,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,OAAO,SAAS,CAAC;AACzB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,0BAA0B,CAAC,GAAG,EAAE;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAClC,MAAM,OAAO,GAAG,CAAC;AACjB,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACtD,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACjE,GAAG;AACH;;AC1OA,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;AACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AAC3B,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;AAC/G,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE;AAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,MAAM,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACtC,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACxC,QAAQ,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,UAAU,IAAI,CAAC,CAAC;AACtE,IAAI,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ,GAAG,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;AAC9F,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAC3C,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;AAC3D,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAC3E,MAAM,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;AAChD,QAAQ,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE;AACrC,UAAU,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpD,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;AAChD,QAAQ,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE;AACpC,UAAU,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACjD,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACzB,MAAM,MAAM,EAAE;AACd,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACtD,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxC,QAAQ,OAAO,GAAG,CAAC,GAAG,CAAC;AACvB,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACtC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3D,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACzE,IAAI,OAAO,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAChD,GAAG;AACH,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACvC,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClE,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,WAAW,GAAG,MAAM;AAC9B,MAAM,UAAU,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AACpC,KAAK,CAAC;AACN,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AAC5C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AACrD,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AACjD,MAAM,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,KAAK;AACzF,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;AACvC,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,OAAO,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACjD,GAAG;AACH,EAAE,MAAM,cAAc,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,MAAM,oBAAoB,CAAC,SAAS,EAAE;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACvC,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClE,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK;AAC7D,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,GAAG;AACH,EAAE,GAAG,CAAC,IAAI,EAAE;AACZ,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE;AACtD,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACvD,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1C,IAAI,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK;AAC/C,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,IAAI,aAAa,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,OAAO;AACP,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7B,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,MAAM,MAAM,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/F,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3D,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE;AAChC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClE,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvH,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,MAAM,mBAAmB,CAAC,aAAa,EAAE;AAC3C,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,cAAc,KAAK;AAC7C,MAAM,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACvC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC;AAC7C,GAAG;AACH,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE;AAC3B,IAAI,YAAY,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;AAC9C,GAAG;AACH,CAAC;AACI,MAAC,MAAM,GAAG,IAAI,WAAW,GAAG;AACjCzB,YAAU,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC;;ACjNnQ,MAAC,iBAAiB,GAAG;AAC1B,EAAE,SAAS,EAAE,aAAa,CAAC,WAAW;AACtC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC;AACnF,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK;AACvC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACjC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;;ACb5B,MAAC,UAAU,GAAG;AACnB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,eAAe;AACvC,IAAI,QAAQ,EAAE,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,YAAY;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB;AACrC,MAAM,OAAO,KAAK,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,ybAAyb,CAAC;AAC/c,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9E,IAAI,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;AACjE,GAAG;AACH,EAAE,GAAG,EAAE,OAAO,OAAO,KAAK,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC;AAC9C,EAAE,MAAM,EAAE,OAAO,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;AAChE,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,UAAU,CAAC;;ACfrB,MAAC,UAAU,GAAG;AACnB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,eAAe;AACvC,IAAI,QAAQ,EAAE,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,YAAY;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB;AACrC,MAAM,OAAO,KAAK,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,6EAA6E,CAAC;AACnG,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9E,IAAI,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;AACjE,GAAG;AACH,EAAE,GAAG,EAAE,OAAO,OAAO,KAAK,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC;AAC9C,EAAE,MAAM,EAAE,OAAO,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;AAChE,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,UAAU,CAAC;;ACf1B,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,MAAC,cAAc,GAAG;AACvB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,eAAe;AACvC,IAAI,QAAQ,EAAE,CAAC,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACnC,EAAE,GAAG,EAAE,OAAO,OAAO,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,CAAC;AACvD,EAAE,MAAM,EAAE,OAAO,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,cAAc,CAAC;;ACRzB,MAAC,iBAAiB,GAAG;AAC1B,EAAE,SAAS,EAAE,aAAa,CAAC,aAAa;AACxC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI;AACzB,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM;AACrB,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC1E,IAAI,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,GAAG,EAAE,KAAK;AACd,GAAG,CAAC;AACJ,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;;ACb9B,IAAC,gBAAgB,mBAAmB,CAAC,CAAC,iBAAiB,KAAK;AAC/D,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,GAAG,KAAK,CAAC,GAAG,8BAA8B,CAAC;AAChH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,GAAG,KAAK,CAAC,GAAG,+BAA+B,CAAC;AAClH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,GAAG,KAAK,CAAC,GAAG,+BAA+B,CAAC;AAClH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,GAAG,KAAK,CAAC,GAAG,+BAA+B,CAAC;AAClH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,GAAG,KAAK,CAAC,GAAG,qCAAqC,CAAC;AAC9H,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,GAAG,KAAK,CAAC,GAAG,qCAAqC,CAAC;AAC9H,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,GAAG,KAAK,CAAC,GAAG,qCAAqC,CAAC;AAC9H,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,GAAG,KAAK,CAAC,GAAG,+BAA+B,CAAC;AAClH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC;AAC5F,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAC1G,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,GAAG,qBAAqB,CAAC;AAC9F,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,GAAG,KAAK,CAAC,GAAG,4BAA4B,CAAC;AAC5G,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,GAAG,sBAAsB,CAAC;AAChG,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAC1G,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC,GAAG,uBAAuB,CAAC;AAClG,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,GAAG,KAAK,CAAC,GAAG,kCAAkC,CAAC;AACxH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,0CAA0C,CAAC,GAAG,KAAK,CAAC,GAAG,0CAA0C,CAAC;AACxI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,2CAA2C,CAAC,GAAG,KAAK,CAAC,GAAG,2CAA2C,CAAC;AAC1I,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,GAAG,KAAK,CAAC,GAAG,iCAAiC,CAAC;AACtH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,GAAG,KAAK,CAAC,GAAG,kCAAkC,CAAC;AACxH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,GAAG,KAAK,CAAC,GAAG,iCAAiC,CAAC;AACtH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,GAAG,KAAK,CAAC,GAAG,kCAAkC,CAAC;AACxH,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAC1G,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,GAAG,KAAK,CAAC,GAAG,0BAA0B,CAAC;AACxG,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,0CAA0C,CAAC,GAAG,KAAK,CAAC,GAAG,0CAA0C,CAAC;AACxI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,GAAG,KAAK,CAAC,GAAG,8CAA8C,CAAC;AAChJ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,GAAG,KAAK,CAAC,GAAG,8BAA8B,CAAC;AAChH,EAAE,OAAO,iBAAiB,CAAC;AAC3B,CAAC,EAAE,gBAAgB,IAAI,EAAE,EAAE;AACtB,MAAC,kCAAkC,GAAG;AAC3C,EAAE,CAAC,KAAK,sCAAsC,GAAG;AACjD,EAAE,CAAC,KAAK,uCAAuC,GAAG;AAClD,EAAE,CAAC,KAAK,uCAAuC,CAAC;AAChD,EAAE,CAAC,KAAK,uCAAuC,CAAC;AAChD,EAAE,CAAC,KAAK,uCAAuC,GAAG;AAClD,EAAE,CAAC,KAAK,6CAA6C,GAAG;AACxD,EAAE,CAAC,KAAK,6CAA6C,CAAC;AACtD,EAAE,CAAC,KAAK,6CAA6C,CAAC;AACtD,EAAE,CAAC,KAAK,4BAA4B,GAAG;AACvC,EAAE,CAAC,KAAK,mCAAmC,GAAG;AAC9C,EAAE,CAAC,KAAK,6BAA6B,CAAC;AACtC,EAAE,CAAC,KAAK,oCAAoC,CAAC;AAC7C,EAAE,CAAC,KAAK,8BAA8B,GAAG;AACzC,EAAE,CAAC,KAAK,mCAAmC,CAAC;AAC5C,EAAE,CAAC,KAAK,+BAA+B,GAAG;AAC1C,EAAE,CAAC,KAAK,0CAA0C,CAAC;AACnD,EAAE,CAAC,KAAK,kDAAkD,GAAG;AAC7D,EAAE,CAAC,KAAK,mDAAmD,GAAG;AAC9D,EAAE,CAAC,KAAK,yCAAyC,GAAG;AACpD,EAAE,CAAC,KAAK,0CAA0C,GAAG;AACrD,EAAE,CAAC,KAAK,yCAAyC,IAAI;AACrD,EAAE,CAAC,KAAK,0CAA0C,IAAI;AACtD,EAAE,CAAC,KAAK,mCAAmC,GAAG;AAC9C,EAAE,CAAC,KAAK,kCAAkC,GAAG;AAC7C,EAAE,CAAC,KAAK,kDAAkD,CAAC;AAC3D,EAAE,CAAC,KAAK,sDAAsD,CAAC;AAC/D,EAAE,CAAC,KAAK,sCAAsC,CAAC;AAC/C;;ACxDA,IAAI,QAAQ,CAAC;AACb,IAAI,UAAU,CAAC;AACf,SAAS,8BAA8B,GAAG;AAC1C,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAChE,IAAI,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,oCAAoC,CAAC;AAC1E,IAAI,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,8BAA8B,CAAC;AAC9D,IAAI,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAChE,IAAI,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,gCAAgC,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,uCAAuC,CAAC;AACpI,IAAI,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,8BAA8B,CAAC;AAC9D,IAAI,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC;AAChE,GAAG,CAAC;AACJ,CAAC;AACI,MAAC,wBAAwB,GAAG;AACjC,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,eAAe;AACvC,IAAI,QAAQ,EAAE,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,YAAY;AACpB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACnD,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AACnE,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,GAAG,EAAE,OAAO,OAAO,KAAK;AAC1B,IAAI,IAAI,CAAC,UAAU;AACnB,MAAM,8BAA8B,EAAE,CAAC;AACvC,IAAI,MAAM,cAAc,GAAG,EAAE,CAAC;AAC9B,IAAI,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE;AAC5C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,MAAM,EAAE,OAAO,OAAO,KAAK;AAC7B,IAAI,IAAI,CAAC,UAAU;AACnB,MAAM,8BAA8B,EAAE,CAAC;AACvC,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;AACrD,GAAG;AACH,EAAE;AACF,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC;;AC/C1C,MAAM,YAAY,SAAS,cAAc,CAAC;AAC1C,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AACzE,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACzD,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE;AACtB,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,GAAG;AACH,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvC,IAAI,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;AClCA,MAAM,yBAAyB,SAAS,YAAY,CAAC;AACrD,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,IAAI,IAAI,CAAC,UAAU,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChF,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7C,MAAM,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,yBAAyB,CAAC,mBAAmB,CAAC,MAAM,YAAY,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACzN,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;AACzC,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3B,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAC9F,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC7B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,MAAM,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AAC5G,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvJ,GAAG;AACH,EAAE,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACpC,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE;AAC5C,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE;AACnD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE;AACnD,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,EAAE;AAChC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE;AACnD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;AACvG,IAAI,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC;AAChC,IAAI,IAAI,WAAW,GAAG,WAAW,CAAC;AAClC,IAAI,IAAI,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AAC5E,IAAI,IAAI,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AAChF,IAAI,IAAI,SAAS,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;AACxG,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG;AACnB,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,iBAAiB;AAC/D,QAAQ,WAAW,EAAE,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,kBAAkB;AAClE,QAAQ,WAAW,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;AACrE,OAAO,CAAC;AACR,MAAM,MAAM,IAAI,SAAS,CAAC;AAC1B,MAAM,UAAU,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AAC1E,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AAC9E,MAAM,SAAS,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH;;ACnEA,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,UAAU,GAAG;AACnB,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,YAAY,EAAE,EAAE;AAClB,CAAC,CAAC;AACF,MAAM,aAAa,GAAG;AACtB,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,UAAU,EAAE,CAAC;AACf,CAAC,CAAC;AACF,MAAM,eAAe,GAAG;AACxB,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC;AACF,IAAI,WAAW,mBAAmB,CAAC,CAAC,YAAY,KAAK;AACrD,EAAE,YAAY,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,qBAAqB,CAAC;AAChF,EAAE,YAAY,CAAC,YAAY,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAC,GAAG,mCAAmC,CAAC;AAC5G,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC,GAAG,gCAAgC,CAAC;AACtG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,GAAG,+BAA+B,CAAC;AACpG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,GAAG,+BAA+B,CAAC;AACpG,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC,GAAG,gCAAgC,CAAC;AACtG,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,GAAG,6BAA6B,CAAC;AAChG,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,GAAG,4BAA4B,CAAC;AAC9F,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,GAAG,4BAA4B,CAAC;AAC9F,EAAE,YAAY,CAAC,YAAY,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAC,GAAG,mCAAmC,CAAC;AAC5G,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,EAAE,CAAC,GAAG,gCAAgC,CAAC;AACvG,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,EAAE,CAAC,GAAG,gCAAgC,CAAC;AACvG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,EAAE,CAAC,GAAG,gCAAgC,CAAC;AACvG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,GAAG,6BAA6B,CAAC;AACjG,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,yBAAyB,CAAC;AACzF,EAAE,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,yBAAyB,CAAC;AACzF,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC,GAAG,kCAAkC,CAAC;AAC3G,EAAE,YAAY,CAAC,YAAY,CAAC,sCAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,sCAAsC,CAAC;AACnH,EAAE,YAAY,CAAC,YAAY,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC,GAAG,qCAAqC,CAAC;AACjH,EAAE,YAAY,CAAC,YAAY,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC,GAAG,kCAAkC,CAAC;AAC3G,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,8BAA8B,CAAC,GAAG,EAAE,CAAC,GAAG,8BAA8B,CAAC;AACnG,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,GAAG,6BAA6B,CAAC;AACjG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC;AACzG,EAAE,YAAY,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC;AAC7F,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC;AAC7F,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,GAAG,6BAA6B,CAAC;AACjG,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,yBAAyB,CAAC;AACzF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,yBAAyB,CAAC;AACzF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,mCAAmC,CAAC,GAAG,EAAE,CAAC,GAAG,mCAAmC,CAAC;AAC7G,EAAE,YAAY,CAAC,YAAY,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC,GAAG,kCAAkC,CAAC;AAC3G,EAAE,YAAY,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC;AAC7F,EAAE,YAAY,CAAC,YAAY,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,GAAG,wBAAwB,CAAC;AACvF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,GAAG,wBAAwB,CAAC;AACvF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,yBAAyB,CAAC;AACzF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC;AACjF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC;AACjF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;AACnF,EAAE,YAAY,CAAC,YAAY,CAAC,gCAAgC,CAAC,GAAG,EAAE,CAAC,GAAG,gCAAgC,CAAC;AACvG,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,GAAG,6BAA6B,CAAC;AACjG,EAAE,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,GAAG,6BAA6B,CAAC;AACjG,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,wCAAwC,CAAC,GAAG,EAAE,CAAC,GAAG,wCAAwC,CAAC;AACvH,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC;AACzG,EAAE,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACrG,EAAE,YAAY,CAAC,YAAY,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC;AACzG,EAAE,YAAY,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC;AAC7F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC;AAC3F,EAAE,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrF,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,4BAA4B,CAAC;AAC/F,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,GAAG,wBAAwB,CAAC;AACxF,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,GAAG,gBAAgB,CAAC;AACxE,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,GAAG,CAAC,GAAG,4BAA4B,CAAC;AAChG,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAC5E,EAAE,YAAY,CAAC,YAAY,CAAC,6CAA6C,CAAC,GAAG,GAAG,CAAC,GAAG,6CAA6C,CAAC;AAClI,EAAE,YAAY,CAAC,YAAY,CAAC,qDAAqD,CAAC,GAAG,GAAG,CAAC,GAAG,qDAAqD,CAAC;AAClJ,EAAE,YAAY,CAAC,YAAY,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,GAAG,wBAAwB,CAAC;AACxF,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;AACtB,IAAI,wBAAwB,mBAAmB,CAAC,CAAC,yBAAyB,KAAK;AAC/E,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAClH,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAClH,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAClH,EAAE,OAAO,yBAAyB,CAAC;AACnC,CAAC,EAAE,wBAAwB,IAAI,EAAE,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,gBAAgB,GAAG;AACzB,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,6BAA6B;AAC/D,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,6BAA6B;AAC/D,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,6BAA6B;AAC/D,CAAC,CAAC;AACF,MAAM,cAAc,GAAG;AACvB,EAAE,CAAC,EAAE,kCAAkC,gBAAgB,CAAC,6BAA6B;AACrF,EAAE,CAAC,EAAE,+BAA+B,gBAAgB,CAAC,6BAA6B;AAClF,EAAE,CAAC,EAAE,kCAAkC,gBAAgB,CAAC,6BAA6B;AACrF,EAAE,CAAC,EAAE,+BAA+B,gBAAgB,CAAC,6BAA6B;AAClF,EAAE,CAAC,EAAE,kCAAkC,gBAAgB,CAAC,6BAA6B;AACrF,EAAE,CAAC,EAAE,+BAA+B,gBAAgB,CAAC,6BAA6B;AAClF,EAAE,CAAC,EAAE,oCAAoC,gBAAgB,CAAC,mCAAmC;AAC7F,EAAE,CAAC,EAAE,oCAAoC,gBAAgB,CAAC,mCAAmC;AAC7F,EAAE,CAAC,EAAE,oCAAoC,gBAAgB,CAAC,mCAAmC;AAC7F,CAAC,CAAC;AACF,SAAS,QAAQ,CAAC,WAAW,EAAE;AAC/B,EAAE,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;AAC5C,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAClG,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACtD,EAAE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,GAAG,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAChK,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5C,EAAE,IAAI,WAAW,GAAG,WAAW,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrD,IAAI,IAAI,MAAM,KAAK,WAAW,EAAE;AAChC,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG,IAAI,yBAAyB,CAAC,OAAO,EAAE;AAC9D,QAAQ,MAAM,EAAE,eAAe;AAC/B,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,QAAQ,MAAM,EAAE,WAAW;AAC3B,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AACxD,IAAI,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACtH,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC/D,IAAI,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAC7E,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC3D,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AACtD,IAAI,IAAI,cAAc,KAAK,KAAK,CAAC,EAAE;AACnC,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,qDAAqD,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5F,KAAK;AACL,IAAI,IAAI,QAAQ,KAAK,6BAA6B,EAAE;AACpD,MAAM,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,iBAAiB,KAAK,CAAC,gCAAgC;AAC/D,MAAM,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAC/E,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE;AACzB,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,KAAK,MAAM;AACX,MAAM,MAAM,SAAS,GAAG,kCAAkC,CAAC,cAAc,CAAC,CAAC;AAC3E,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,UAAU,GAAG,KAAK,CAAC;AAC7B,MAAM,IAAI,WAAW,GAAG,MAAM,CAAC;AAC/B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,MAAM,SAAS,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAC7E,QAAQ,SAAS,IAAI,SAAS,CAAC;AAC/B,QAAQ,UAAU,GAAG,UAAU,KAAK,CAAC,CAAC;AACtC,QAAQ,WAAW,GAAG,WAAW,KAAK,CAAC,CAAC;AACxC,OAAO;AACP,MAAM,IAAI,WAAW,GAAG,UAAU,CAAC;AACnC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/E,QAAQ,WAAW,IAAI,SAAS,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,EAAE;AAC9E,MAAM,MAAM,EAAE,cAAc;AAC5B,MAAM,KAAK;AACX,MAAM,MAAM;AACZ,MAAM,MAAM,EAAE,WAAW;AACzB,KAAK,CAAC,CAAC,CAAC;AACR,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,QAAQ,EAAE;AAC9B,IAAI,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,QAAQ,EAAE;AAC9B,IAAI,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACnF,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,cAAc,EAAE;AACpC,IAAI,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;AAC5F,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,UAAU,EAAE;AAChC,IAAI,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;AACvF,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;AACvF;;AChRA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,UAAU,GAAG;AACnB,EAAE,eAAe,EAAE,CAAC;AACpB,EAAE,UAAU,EAAE,EAAE;AAChB,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,YAAY,EAAE,EAAE;AAClB,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,kBAAkB,EAAE,EAAE;AACxB,EAAE,uBAAuB,EAAE,EAAE;AAC7B,EAAE,WAAW,EAAE,EAAE;AACjB,EAAE,YAAY,EAAE,EAAE;AAClB,EAAE,WAAW,EAAE,EAAE;AACjB,EAAE,wBAAwB,EAAE,EAAE;AAC9B,EAAE,eAAe,EAAE,EAAE;AACrB,EAAE,uBAAuB,EAAE,EAAE;AAC7B,EAAE,uBAAuB,EAAE,EAAE;AAC7B,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACvB,MAAC,4BAA4B,GAAG;AACrC,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC;AAC1B,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC;AAC3B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAChB,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC;AACzB,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;AAClB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;AACvB,EAAE;AACG,MAAC,qBAAqB,GAAG;AAC9B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;AACnB,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AAClB,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACjB,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AAClB,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;AACxB,EAAE,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC;AAC9B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;AACpB,EAAE;AACG,MAAC,wBAAwB,GAAG;AACjC,EAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC;AACnC,EAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC;AACnC,EAAE,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC;AACjC,EAAE;AACF,SAAS,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,GAAG,KAAK,EAAE;AAC9D,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC;AACtF,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACtE,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC1E,EAAE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAC3F,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC9E,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACrF,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACnF,EAAE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,wBAAwB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3G,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AACrF,EAAE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;AACpG,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;AACnG,EAAE,IAAI,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE;AAC7C,IAAI,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,aAAa,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACxE,GAAG;AACH,EAAE,IAAI,qBAAqB,KAAK,CAAC,EAAE;AACnC,IAAI,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC;AACvB,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC;AACxB,EAAE,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,EAAE,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,EAAE,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACxD,EAAE,IAAI,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAC7C,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE;AACpB,IAAI,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;AAC/C,GAAG;AACH,EAAE,IAAI,kBAAkB,CAAC;AACzB,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE;AACpB,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,EAAE;AAC9C,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAClG,KAAK,MAAM;AACX,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC5D,KAAK;AACL,GAAG,MAAM;AACT,IAAI,kBAAkB,GAAG,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,IAAI,kBAAkB,KAAK,KAAK,CAAC,EAAE;AACrC,IAAI,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AACpF,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;AACpG,EAAE,MAAM,aAAa,GAAG,WAAW,GAAG,kBAAkB,CAAC;AACzD,EAAE,IAAI,WAAW,GAAG,aAAa,CAAC;AAClC,EAAE,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC5B,EAAE,IAAI,SAAS,GAAG,WAAW,CAAC;AAC9B,EAAE,IAAI,eAAe,GAAG,YAAY,CAAC;AACrC,EAAE,IAAI,gBAAgB,GAAG,aAAa,CAAC;AACvC,EAAE,IAAI,WAAW,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAC3D,EAAE,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,oBAAoB,EAAE,WAAW,EAAE,EAAE;AAC/E,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACpE,IAAI,IAAI,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC;AACxC,IAAI,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,qBAAqB,EAAE,YAAY,EAAE,EAAE;AACrF,MAAM,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC5E,OAAO;AACP,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG;AAC1B,QAAQ,OAAO,EAAE,WAAW;AAC5B,QAAQ,UAAU,EAAE,oBAAoB,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,eAAe;AACzF,QAAQ,WAAW,EAAE,oBAAoB,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,gBAAgB;AAC5F,QAAQ,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;AAC5E,OAAO,CAAC;AACR,MAAM,aAAa,IAAI,WAAW,CAAC;AACnC,KAAK;AACL,IAAI,WAAW,IAAI,SAAS,GAAG,CAAC,CAAC;AACjC,IAAI,WAAW,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC;AAC1F,IAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AACpE,IAAI,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AACxE,IAAI,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAC1E,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE;AACpB,IAAI,OAAO;AACX,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK;AACvD,QAAQ,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACjD,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC;AACjC,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE;AACpC,UAAU,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC5J,SAAS,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,YAAY,EAAE;AAClD,UAAU,YAAY,GAAG,IAAI,CAAC;AAC9B,UAAU,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC3J,SAAS,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,EAAE;AACzC,UAAU,YAAY,GAAG,IAAI,CAAC;AAC9B,UAAU,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC1J,SAAS;AACT,QAAQ,OAAO;AACf,UAAU,QAAQ,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE;AAC/C,YAAY,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU;AAC7C,YAAY,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW;AAC/C,WAAW,CAAC;AACZ,UAAU,IAAI,EAAE,MAAM;AACtB,UAAU,MAAM,EAAE,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC5E,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,MAAM;AACZ,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,IAAI,yBAAyB,CAAC,IAAI,EAAE;AACvF,MAAM,MAAM,EAAE,gBAAgB;AAC9B,MAAM,KAAK,EAAE,UAAU;AACvB,MAAM,MAAM,EAAE,WAAW;AACzB,MAAM,MAAM,EAAE,oBAAoB;AAClC,MAAM,YAAY;AAClB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM;AACV,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE;AACjC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE;AACrD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACzD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACxC,EAAE,QAAQ,MAAM;AAChB,IAAI,KAAK,OAAO,CAAC,IAAI;AACrB,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC;AAClC,IAAI,KAAK,OAAO,CAAC,GAAG;AACpB,MAAM,OAAO,OAAO,CAAC,WAAW,CAAC;AACjC,IAAI,KAAK,OAAO,CAAC,EAAE;AACnB,MAAM,OAAO,OAAO,CAAC,UAAU,CAAC;AAChC,IAAI,KAAK,OAAO,CAAC,GAAG;AACpB,MAAM,OAAO,OAAO,CAAC,WAAW,CAAC;AACjC,IAAI;AACJ,MAAM,OAAO,MAAM,CAAC;AACpB,GAAG;AACH,CAAC;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE;AAClE,EAAE,MAAM,MAAM,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC3C,EAAE,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAChC,EAAE,OAAO,qBAAqB,GAAG,mBAAmB,EAAE;AACtD,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,GAAG,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAC3G,IAAI,MAAM,qBAAqB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAC/E,IAAI,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,IAAI,mBAAmB,KAAK,CAAC,IAAI,mBAAmB,GAAG,mBAAmB,GAAG,qBAAqB,EAAE;AACxG,MAAM,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACpE,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,OAAO,UAAU,GAAG,mBAAmB,EAAE,UAAU,EAAE,EAAE;AAC3D,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE;AACvE,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;AAC3B,MAAM,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAClF,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7G,IAAI,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,GAAG,CAAC,EAAE,mBAAmB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9H,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3B,IAAI,qBAAqB,IAAI,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAC;AACpE,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;AC/MK,MAAC,OAAO,GAAG;AAChB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,IAAI;AACvC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;AACrD,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC5C,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AACjD,MAAM,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC7C,QAAQ,MAAM,EAAE,YAAY,CAAC,GAAG;AAChC,QAAQ,SAAS,EAAE,WAAW,CAAC,sBAAsB;AACrD,QAAQ,UAAU,EAAE0B,kBAAwB,CAAC,GAAG,CAAC;AACjD,QAAQ,GAAG,KAAK,CAAC,IAAI;AACrB,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1D,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE;AACF1B,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;AC/BlB,MAAC,OAAO,GAAG;AAChB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,IAAI;AACvC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;AACrD,IAAI,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,UAAU,IAAI,YAAY,CAAC;AACjD,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,MAAM,EAAE,YAAY,CAAC,GAAG;AAC9B,MAAM,SAAS,EAAE,WAAW,CAAC,sBAAsB;AACnD,MAAM,UAAU,EAAE0B,kBAAwB,CAAC,GAAG,CAAC;AAC/C,MAAM,GAAG,KAAK,CAAC,IAAI;AACnB,KAAK,CAAC;AACN,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AACjD,MAAM,IAAI,SAAS,KAAK,YAAY,EAAE;AACtC,QAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/B,UAAU,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC7B,UAAU,MAAM,EAAE,QAAQ,CAAC,MAAM;AACjC,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;AACpC,MAAM,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1D,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE;AACF1B,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;AC3ClB,MAAC,2BAA2B,GAAG;AACpC,EAAE,SAAS,EAAE,aAAa,CAAC,aAAa;AACxC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK;AACnB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK;AACpB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE;AAC7B,MAAM,MAAM,WAAW,GAAG;AAC1B,QAAQ,WAAW;AACnB,QAAQ,gBAAgB;AACxB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,OAAO,CAAC;AACR,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1D,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAChF,UAAU,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,UAAU,GAAG,EAAE,KAAK;AACpB,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC5E,MAAM,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AACpC,MAAM,GAAG,EAAE,KAAK;AAChB,KAAK,CAAC;AACN,GAAG;AACH,EAAE;AACFA,YAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC;;ACnC3C,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,QAAQ,GAAG,MAAM;AACvB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAC9B,IAAI,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACxC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE;AACrC,MAAM,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,EAAE;AACzC,MAAM,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACzE,MAAM,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC5C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACnC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;AAC9G,GAAG;AACH,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;AACxB,IAAI,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5E,IAAI,IAAI,YAAY,GAAG,IAAI2B,kBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACtE,IAAI,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9E,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,OAAO,GAAG,IAAIA,kBAAwB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/F,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;AACxB,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtD,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;AAC5B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,MAAM,YAAY,aAAa,EAAE;AAC3C,QAAQ,aAAa,GAAG,MAAM,CAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;AAC1G,QAAQ,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,WAAW,KAAK,YAAY,CAAC,IAAI,EAAE;AAC/C,UAAU,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;AACvD,YAAY,KAAK,EAAE,aAAa,CAAC,KAAK;AACtC,YAAY,MAAM,EAAE,aAAa,CAAC,MAAM;AACxC,WAAW,CAAC,CAAC;AACb,UAAU,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAC/D,UAAU,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACjE,UAAU,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,UAAU,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,UAAU,aAAa,GAAG,eAAe,CAAC;AAC1C,SAAS;AACT,QAAQ,SAAS,GAAG,IAAI,CAAC;AACzB,OAAO;AACP,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC;AACxD,MAAM,KAAK,GAAG,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC;AAC3C,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACvC,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,QAAQ,KAAK,GAAG,SAAS,CAAC;AAC1B,QAAQ,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrC,QAAQ,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,OAAO;AACP,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;AACvD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;AACzD,IAAI,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;AACpE,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACxI,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC5C,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5E,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5E,OAAO,MAAM;AACb,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACC,IAAC,OAAO,GAAG,SAAS;AACvB,OAAO,CAAC,SAAS,GAAG;AACpB,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,CAAC,CAAC;AACF3B,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;ACxHvB,MAAM,WAAW,GAAG;AACpB,EAAE,KAAK,CAAC,YAAY,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACvC,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAC3C,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAClD,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;AACzC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;AACzB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,KAAK,MAAM;AACX,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC;AACrC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3F,MAAM,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;AACrD,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACrC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI;AACJ,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvC,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvC,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,KAAK;AACL,IAAI;AACJ,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACvC,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAC7C,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAC3C,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;AAC7C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACvC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrJ,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,GAAG;AACH,CAAC;;AC1ID,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE;AAC9C,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAC1B,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzE,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAClC,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;AAC9C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC;AACnB,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,CAAC;AACD,MAAM,SAAS,GAAG;AAClB,EAAE,KAAK,CAAC,YAAY,EAAE;AACtB,IAAI,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5D,GAAG;AACH,EAAE,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE;AAC9C,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACrC,IAAI,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AACrC,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAC7C,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;AAC5B,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpC,MAAM,MAAM,SAAS,GAAG,EAAE,CAAC;AAC3B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1C,QAAQ,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,OAAO;AACP,MAAM,MAAM,SAAS,GAAG4B,QAAY,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3D,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACpD,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAC7C,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACjD,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AC5DD,MAAM,cAAc,GAAG;AACvB,EAAE,KAAK,CAAC,YAAY,EAAE;AACtB,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE;AACtC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;AAC1E,GAAG;AACH,EAAE,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACvC,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAC1C,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AAC5G,GAAG;AACH,CAAC;;ACtBD,MAAM,qBAAqB,GAAG;AAC9B,EAAE,KAAK,CAAC,YAAY,EAAE;AACtB,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE;AAC9C,IAAI,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC5D,GAAG;AACH,CAAC;;ACTE,IAAC,SAAS,mBAAmB,CAAC,CAAC,UAAU,KAAK;AACjD,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE;AACjB,IAAC,QAAQ,mBAAmB,CAAC,CAAC,SAAS,KAAK;AAC/C,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7B,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC/B,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACjC,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE;AACd,MAAC,MAAM,GAAG;AACf,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE;AAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AACpD,MAAM,OAAO,eAAe,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AACpD,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE;AACG,MAAC,eAAe,GAAG;;AC5BxB,MAAM,QAAQ,CAAC;AACf,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AACjD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACnC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;AAChF,QAAQ,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,OAAO;AACP,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3C,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3C,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5B,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5B,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACpD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAClD,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE;AACjB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE;AACjB,MAAM,MAAM;AACZ,MAAM,UAAU;AAChB,MAAM,QAAQ;AACd,MAAM,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE;AAC7F,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AACxC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG,IAAI,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,EAAE;AACxC,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AACrC,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AACvD,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;AACrG,KAAK;AACL,GAAG;AACH;;AC3DA,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE;AACxC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5B,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,GAAG;AACH,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;AACnD,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,GAAG;AACH;;ACnBA,MAAM,WAAW,CAAC;AAClB,EAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACnE,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrB,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;AAC1E,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;AAC1E,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;AACrB,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;AACzD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3G,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACxC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AACpJ,KAAK;AACL,GAAG;AACH;;ACrDA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE;AAC1E,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClC,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;AACd,GAAG,MAAM;AACT,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;AACd,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,GAAG;AACH,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACvB,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACvB,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACvB,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACvB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD,SAAS,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzD,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,SAAS,IAAI,MAAM,GAAG,MAAM,EAAE;AACpC,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,GAAG,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,MAAM,EAAE;AAC5C,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC;AAC1B,EAAE,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACpC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9D,EAAE,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,EAAE,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AACxC,EAAE,UAAU,IAAI,QAAQ,CAAC;AACzB,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,QAAQ,EAAE;AAC9E,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,QAAQ,EAAE;AAC9E,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,QAAQ,GAAG,CAAC,CAAC;AACtB,CAAC;AACD,SAAS,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE;AAC5D,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AACnC,EAAE,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3D,EAAE,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,CAAC;AAC7C,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC;AACvC,EAAE,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACpF,EAAE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC;AACtE,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9G,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5B,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AACnB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AACnB,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC;AACzD,IAAI,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC;AACzD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACxC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAChC,EAAE,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AACrC,EAAE,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAChE,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AACtD,EAAE,KAAK,IAAI,IAAI,CAAC;AAChB,EAAE,KAAK,IAAI,IAAI,CAAC;AAChB,EAAE,KAAK,IAAI,KAAK,CAAC;AACjB,EAAE,KAAK,IAAI,KAAK,CAAC;AACjB,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;AAChC,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AACtC,EAAE,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,EAAE;AACtC,MAAM,UAAU,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnP,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE;AAC9C,MAAM,UAAU,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACxF,KAAK;AACL,GAAG;AACH,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;AACrH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACvC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACvB,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AACpD,IAAI,KAAK,IAAI,IAAI,CAAC;AAClB,IAAI,KAAK,IAAI,IAAI,CAAC;AAClB,IAAI,KAAK,IAAI,KAAK,CAAC;AACnB,IAAI,KAAK,IAAI,KAAK,CAAC;AACnB,IAAI,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AACxD,IAAI,MAAM,IAAI,IAAI,CAAC;AACnB,IAAI,MAAM,IAAI,IAAI,CAAC;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC;AACpB,IAAI,MAAM,IAAI,KAAK,CAAC;AACpB,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACtC,IAAI,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChD,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;AACzH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;AACpB,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE;AAC5C,UAAU,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAClK,SAAS,MAAM;AACf,UAAU,UAAU,IAAI,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AAC/H,OAAO;AACP,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC7E,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACjF,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC;AAC7C,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC;AAC7C,IAAI,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAChE,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC;AAC7C,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC;AAC7C,IAAI,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC1F,IAAI,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAC/D,IAAI,MAAM,uBAAuB,GAAG,sBAAsB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AACxG,IAAI,MAAM,aAAa,GAAG,KAAK,IAAI,uBAAuB,CAAC;AAC3D,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,GAAG,YAAY,GAAG,iBAAiB,EAAE;AAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAU,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACzC,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAU,IAAI,SAAS,EAAE;AACzB,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AACrJ,WAAW,MAAM;AACjB,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrJ,WAAW;AACX,UAAU,UAAU,IAAI,CAAC,CAAC;AAC1B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAU,IAAI,SAAS,EAAE;AACzB,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;AACrF,YAAY,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnK,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AACvF,WAAW,MAAM;AACjB,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrF,YAAY,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACpK,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvF,WAAW;AACX,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;AACzH,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAU,IAAI,SAAS,EAAE;AACzB,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,WAAW,MAAM;AACjB,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,WAAW;AACX,UAAU,UAAU,IAAI,CAAC,CAAC;AAC1B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAU,IAAI,SAAS,EAAE;AACzB,YAAY,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnK,WAAW,MAAM;AACjB,YAAY,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACpK,WAAW;AACX,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AAC7H,MAAM,UAAU,IAAI,CAAC,CAAC;AACtB,KAAK;AACL,GAAG;AACH,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACrB,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AAClD,EAAE,KAAK,IAAI,IAAI,CAAC;AAChB,EAAE,KAAK,IAAI,IAAI,CAAC;AAChB,EAAE,KAAK,IAAI,KAAK,CAAC;AACjB,EAAE,KAAK,IAAI,KAAK,CAAC;AACjB,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;AACrH,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,EAAE;AACtC,MAAM,UAAU,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACpP,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE;AAC9C,MAAM,UAAU,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACzF,KAAK;AACL,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAC3C,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/C,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACjE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;AAC3E,MAAM,SAAS;AACf,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE;AACzD,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;AACrD,EAAE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC;AACtE,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AACzB,IAAI,OAAO;AACX,EAAE,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACxC,EAAE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,EAAE,IAAI,YAAY,GAAG,UAAU,CAAC;AAChC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;AACjD,IAAI,YAAY,EAAE,CAAC;AACnB,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC3C,GAAG;AACH,CAAC;AACD,SAAS,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE;AACnD,EAAE,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;AACrC,IAAI,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AACpD,GAAG,MAAM;AACT,IAAI,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AACvD,GAAG;AACH;;AC3RA,MAAM,cAAc,CAAC;AACrB,EAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACvD,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACrC,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACrC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACnC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACtB,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACrH,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;AAC7C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClG,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;AACrC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAChG,KAAK;AACL,GAAG;AACH;;AChBA,MAAM,aAAa,GAAG;AACtB,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS;AAC1B,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW;AAC5B,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW;AAC5B,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,cAAc;AAC/B,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,qBAAqB;AACtC,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,cAAc,GAAG,EAAE;;ACvBzB,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;AACxE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH;;ACdA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;AAC7B,MAAM,iBAAiB,GAAG,cAAc,aAAa,CAAC;AACtD,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;AACxB,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;AACtE,IAAI,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACnC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7D,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvD,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACnC,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpD,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;AACzD,UAAU,IAAI,OAAO,GAAG,KAAK,CAAC;AAC9B,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAY,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC3D,cAAc,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1C,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC/D,gBAAgB,OAAO,GAAG,IAAI,CAAC;AAC/B,gBAAgB,MAAM;AACtB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,CAAC,OAAO,EAAE;AACxB,YAAY,OAAO,IAAI,CAAC;AACxB,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACnC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAClC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;AACrC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,OAAO;AACP,MAAM,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;AAClD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,OAAO;AACP,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;AAC1B,UAAU,SAAS;AACnB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnD,QAAQ,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;AACrB,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC;AAC1D,QAAQ,IAAI,IAAI,KAAK,CAAC;AACtB,UAAU,SAAS;AACnB,QAAQ,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AACpE,UAAU,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC7C,UAAU,SAAS,GAAG,IAAI,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,UAAU,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;AAC1D,UAAU,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACtD,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,UAAU,YAAY,GAAG,KAAK,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACtF,OAAO;AACP,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,EAAE;AACxI,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClG,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACxC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;AACjC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AAC5B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;AACnE,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE;AACrE,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7C,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACrE,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9D,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAClC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;AACjD,QAAQ,OAAO,KAAK,CAAC;AACrB,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;AACjD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;AAClF,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE;AACxC,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AACnC,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,cAAc,GAAG,CAAC,CAAC;AACrE,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,IAAI,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC;AAC1C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,IAAI,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC,MAAM,YAAY,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACtD,KAAK;AACL,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AACpC,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3B,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1B,IAAI,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC;AAC7C,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;AACxC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC;AAC5B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AACrC,QAAQ,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAChC,QAAQ,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC;AACpE,QAAQ,cAAc,GAAG,IAAI,CAAC;AAC9B,QAAQ,YAAY,GAAG,WAAW,CAAC;AACnC,QAAQ,IAAI,EAAE,CAAC;AACf,OAAO;AACP,MAAM,IAAI,cAAc,KAAK,WAAW,EAAE;AAC1C,QAAQ,cAAc,GAAG,WAAW,CAAC;AACrC,QAAQ,IAAI,WAAW,CAAC,aAAa,KAAK,IAAI,EAAE;AAChD,UAAU,IAAI,YAAY,KAAK,WAAW,EAAE;AAC5C,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,YAAY,GAAG,CAAC,CAAC;AAC7B,YAAY,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;AACvC,cAAc,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;AAClD,cAAc,IAAI,CAAC,YAAY,EAAE;AACjC,gBAAgB,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACnD,gBAAgB,YAAY,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAChE,eAAe;AACf,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChD,aAAa;AACb,YAAY,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;AAClC,YAAY,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5C,YAAY,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzC,WAAW;AACX,UAAU,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;AAClC,UAAU,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3C,UAAU,WAAW,CAAC,cAAc,GAAG,YAAY,CAAC;AACpD,UAAU,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;AACnD,UAAU,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC;AACtF,UAAU,YAAY,EAAE,CAAC;AACzB,SAAS;AACT,OAAO;AACP,MAAM,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;AACrC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;AACzB,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC;AAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;AACpC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,IAAI,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,CAAC,IAAI,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,IAAI,EAAE;AACpB,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH,EAAE,YAAY,CAAC,KAAK,EAAE;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;AACnB,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7D,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AAC9D,MAAM,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AAClE,KAAK;AACL,GAAG;AACH,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;AACpD,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACxE,IAAI,MAAM,IAAI,GAAGC,eAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnD,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAC3D,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAChC,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;AAClD,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AACnE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;AAC1D,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAChC,IAAI,OAAO,KAAK,GAAG,IAAI,EAAE;AACzB,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AAC3D,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACpD,QAAQ,CAAC,GAAG,EAAE,CAAC;AACf,OAAO;AACP,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC5C,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE;AAC9E,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC5C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC;AACrB,IAAI,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAChC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AACnD,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AACrD,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AACxC,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AACzC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAChD,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,OAAO,IAAI,IAAI,CAAC;AACpB,IAAI,OAAO,IAAI,IAAI,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC;AAC3C,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC;AACnD,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACC,IAAC,gBAAgB,GAAG,kBAAkB;AACzC,gBAAgB,CAAC,cAAc,GAAG,GAAG;;ACjdrC,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;AAChC,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH;;AC5BA,MAAM,SAAS,SAAS,SAAS,CAAC;AAClC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;AAChC,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH;;ACxBA,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,SAAS,GAAG,cAAc,SAAS,CAAC;AAC1C,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAE;AAC/B,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AACtC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,gBAAgB,EAAE,CAAC;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;AACnF,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,gBAAgB,CAAC,OAAO,EAAE;AAC5B,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,OAAO,EAAE,OAAO,CAAC,KAAK;AAC5B,MAAM,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,CAAC;AAC5C,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI;AACxB,MAAM,IAAI,EAAE,SAAS,CAAC,KAAK;AAC3B,MAAM,UAAU,EAAE,EAAE;AACpB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAChD,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAChC,OAAO;AACP,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AACjD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7C,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACf,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;AACpC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AAC3B,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACvC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3C,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACvD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjF,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AAChC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3C,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpE,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;AACtF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE;AACnE,IAAI,IAAI,UAAU,KAAK,QAAQ,EAAE;AACjC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClD,MAAM,QAAQ,IAAI,IAAI,CAAC;AACvB,KAAK,MAAM,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,EAAE;AACxD,MAAM,UAAU,IAAI,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AACxC,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACtD,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7C,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;AACnE,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACjE,MAAM,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;AACtC,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACvC,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9F,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,GAAG;AACH,EAAE,gBAAgB,CAAC,OAAO,EAAE;AAC5B,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,OAAO,EAAE,OAAO,CAAC,KAAK;AAC5B,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,MAAM,EAAE,IAAI;AAClB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAChD,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAChC,OAAO;AACP,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/C,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AACnC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D,GAAG;AACH,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;AACvB,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACtG,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAC7C,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1K,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC7B,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC5B,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE;AACnD,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,OAAO;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACrC,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;AAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,MAAM,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC7G,MAAM,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC1G,MAAM,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5F,MAAM,MAAM,KAAK,GAAG;AACpB,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,QAAQ,SAAS,EAAEC,OAAa,CAAC,KAAK,CAAC;AACvC,QAAQ,QAAQ,EAAE,KAAK;AACvB,QAAQ,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;AAClC,QAAQ,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;AAC7B,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzD,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AACvD,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtD,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACvD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;AACzC,IAAI,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/D,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC;AAC7D,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC;AAC5D,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC;AACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7C,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,KAAK;AACL,GAAG;AACH,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC5C,IAAI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AACrD,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,oBAAoB,CAAC,QAAQ,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;AACxC,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAQ,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACzD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9C,UAAU,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG;AACzB,UAAU,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,UAAU,iBAAiB,EAAE,IAAI,MAAM,EAAE;AACzC,UAAU,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC;AACvE,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACrE,QAAQ,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpE,OAAO;AACP,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;AACvC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;AACnE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE;AACtC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC,MAAM,MAAM,OAAO,GAAGA,OAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AAC1C,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClD,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClD,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClD,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,QAAQ,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACjF,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,iBAAiB,GAAG;AACtB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACzC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AACpC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACvC,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC7C,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC/C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC/C,KAAK;AACL,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,QAAQ,GAAG,UAAU;AACzB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,QAAQ,CAAC,WAAW,GAAG,IAAI,KAAK,EAAE;;AC/c7B,MAAC,aAAa,GAAG;AACtB,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,EAAE,qBAAqB;AACvB,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,EAAE,SAAS;AACX,EAAE,aAAa;AACf,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB;;AC9BA,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAClC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,MAAM,CAAC,WAAW,EAAE;AACtB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC/H,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACnD,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACpD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AACxD,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,GAAG;AACH;;AClBA,MAAMR,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAC9B,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,MAAM,KAAK,GAAG,cAAc,SAAS,CAAC;AACtC,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE;AACxE,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AACxC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAChC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE;AACzC,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AACjE,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;AAClH,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC3B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AACnC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;AACvB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;AACtB,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC9F,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC3B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC/B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7C,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAChD,IAAI,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,iBAAiB,GAAG;AACtB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,aAAa,GAAG,cAAc,CAAC,SAAS,CAAC;AACnD,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC7F,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAChD,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7C,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AAC5E,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AACrC,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnE,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACtD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAEA,WAAS,CAAC,CAAC;AACvD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;AACrE,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;AAClD,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;AAC5C,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAACA,WAAS,CAAC,CAAC,EAAEA,WAAS,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AACpC,MAAM,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,IAAI,GAAG,MAAM;AACjB,IAAI,CAAC,cAAc,GAAG,GAAG;;AChNzB,MAAM,YAAY,SAAS,QAAQ,CAAC;AACpC,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE;AACpC,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAI,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5C,IAAI,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtK,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrC,GAAG;AACH;;ACdA,IAAIN,UAAQ,GAAG,8KAA8K;;ACA7L,IAAIC,QAAM,GAAG,6YAA6Y;;ACI1Z,MAAM,YAAY,SAAS,MAAM,CAAC;AAClC,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,QAAQ;AACd,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ;AACrC,MAAM,MAAM,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,UAAU,EAAE,OAAO;AACzB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAACA,QAAM,EAAED,UAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE;AAC1F,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;AAC7B,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;AAC5B,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5E,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/B,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACnD,MAAMe,qBAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;AACxG,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;AAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5D,KAAK;AACL,GAAG;AACH;;ACnEA,MAAM,aAAa,SAAS,YAAY,CAAC;AACzC,EAAE,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE;AACxE,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACjD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACzC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACzC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AAC1C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC;AACjC,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AACrC,MAAM,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvD,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC;AAC3D,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AAC9B,GAAG;AACH;;ACzCA,MAAM,YAAY,SAAS,YAAY,CAAC;AACxC,EAAE,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE;AACrD,IAAI,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9H,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM;AACf,MAAM,OAAO;AACb,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC3D,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACrD,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxC,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE;AACxD,MAAM,YAAY,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9D,MAAM,QAAQ,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,WAAW,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAI,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACrC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;AACzD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AACjC,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtD,QAAQ,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,MAAM,IAAI,QAAQ,GAAG,YAAY,CAAC;AAC1C,OAAO,MAAM;AACb,QAAQ,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACjC,OAAO;AACP,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AAC1B,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9B,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC;AACpC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;AACtB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpG,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,QAAQ,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,KAAK,CAAC;AAC1B,OAAO;AACP,MAAM,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACxC,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7C,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACrB,QAAQ,KAAK,GAAG,CAAC,CAAC;AAClB,OAAO;AACP,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AAClE,MAAM,IAAI,UAAU,GAAG,IAAI,EAAE;AAC7B,QAAQ,KAAK,GAAG,CAAC,CAAC;AAClB,QAAQ,KAAK,GAAG,CAAC,CAAC;AAClB,OAAO,MAAM;AACb,QAAQ,KAAK,IAAI,UAAU,CAAC;AAC5B,QAAQ,KAAK,IAAI,UAAU,CAAC;AAC5B,QAAQ,KAAK,IAAI,SAAS,CAAC;AAC3B,QAAQ,KAAK,IAAI,SAAS,CAAC;AAC3B,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;AACxC,MAAM,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5C,MAAM,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5C,MAAM,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5C,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,KAAK;AACL,GAAG;AACH;;ACnHA,MAAM,WAAW,SAAS,IAAI,CAAC;AAC/B,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;AAC7C,IAAI,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjG,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzD,IAAI,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACpD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAClD,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AACrF,MAAM,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACjD,MAAM,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACnD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;AACvC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACtD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;AAC3D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACjE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,GAAG;AACH;;AC5CA,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,mBAAmB,EAAE,SAAS,GAAG,mBAAmB,EAAE,UAAU,GAAG,mBAAmB,EAAE,YAAY,GAAG,mBAAmB,EAAE;AAC/J,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AACpC,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAClC,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAChC,IAAI,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5D,GAAG;AACH,EAAE,wBAAwB,GAAG;AAC7B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACtC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACvF,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC1G,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7E,GAAG;AACH,EAAE,sBAAsB,GAAG;AAC3B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACtC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACvF,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACtG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3E,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACjD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;AACnD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAC3D,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3C,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE;AAC1B,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,QAAQ,GAAG;AACb,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;AACtC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAClE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;AACvE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAClE,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1E,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AACtC,GAAG;AACH;;AC5GA,MAAM,UAAU,SAAS,IAAI,CAAC;AAC9B,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9D,IAAI,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;AACzD,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5D,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC1D,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH;;ACnBA,MAAM,UAAU,SAAS,IAAI,CAAC;AAC9B,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE;AACjD,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAChF,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI,IAAI,YAAY,GAAG,CAAC,EAAE;AAC1B,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;AACvD,KAAK;AACL,IAAI,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3E,MAAM,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACnD,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH;;ACnBA,MAAM,iBAAiB,SAAS,SAAS,CAAC;AAC1C,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,SAAS,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE;AACjF,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,SAAS,GAAG,YAAY,EAAE;AAClC,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1D,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAChC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,IAAI,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,aAAa,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClJ,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1I,KAAK;AACL,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAID,OAAa,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5F,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3B,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChE,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,gBAAgB,CAAC,kBAAkB,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,EAAE;AACvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;AAC1D,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACrD,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACnC,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,GAAG;AACH;;AC9EA,MAAM,cAAc,CAAC;AACrB,EAAE,WAAW,CAAC,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE;AACtD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AACnC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,MAAM,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG;AACjB,QAAQ,aAAa,EAAE,QAAQ,CAAC,aAAa;AAC7C,QAAQ,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC3B,QAAQ,cAAc,EAAE,QAAQ,CAAC,cAAc;AAC/C,QAAQ,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC1C,QAAQ,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC/B,OAAO,CAAC;AACR,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;AACnC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAACE,qBAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtF,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC;AACtC,MAAM,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC;AACrC,MAAM,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACpE,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,MAAM,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;AACpC,MAAM,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9K,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5K,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpL,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;AACnC,GAAG;AACH,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjL,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,GAAG;AACH;;AClGA,IAAI,QAAQ,GAAG,mMAAmM;;ACAlN,IAAI,MAAM,GAAG,+pBAA+pB;;ACK5qB,MAAM,gBAAgB,SAAS,cAAc,CAAC;AAC9C,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,EAAE,CAAC;AACnC,IAAI,IAAI,CAAC,UAAU,GAAG;AACtB,MAAM;AACN,QAAQ,aAAa,EAAE,iBAAiB;AACxC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,cAAc,EAAE,IAAI,CAAC,cAAc;AAC3C,QAAQ,MAAM,EAAE,CAAC;AACjB,OAAO;AACP,MAAM;AACN,QAAQ,aAAa,EAAE,gBAAgB;AACvC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,cAAc,EAAE,IAAI,CAAC,cAAc;AAC3C,QAAQ,MAAM,EAAE,CAAC;AACjB,OAAO;AACP,MAAM;AACN,QAAQ,aAAa,EAAE,WAAW;AAClC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,cAAc,EAAE,IAAI,CAAC,cAAc;AAC3C,QAAQ,MAAM,EAAE,CAAC;AACjB,OAAO;AACP,MAAM;AACN,QAAQ,aAAa,EAAE,eAAe;AACtC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,cAAc,EAAE,IAAI,CAAC,SAAS;AACtC,QAAQ,MAAM,EAAE,CAAC;AACjB,OAAO;AACP,MAAM;AACN,QAAQ,aAAa,EAAE,QAAQ;AAC/B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,EAAE,KAAK,CAAC,aAAa;AACjC,QAAQ,cAAc,EAAE,IAAI,CAAC,UAAU;AACvC,QAAQ,MAAM,EAAE,CAAC;AACjB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,CAAC,SAAS,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AACxC,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,aAAa,KAAK,CAAC,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK,MAAM,IAAI,aAAa,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AACjE,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AACzD,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAGC,gBAAsB,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACtF,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3B,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/D,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAGC,eAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC7I,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC;AAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AACtE,MAAM,IAAI,MAAM,GAAG,aAAa,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,MAAM,GAAG,SAAS,EAAE;AAC9B,QAAQ,MAAM,GAAG,SAAS,CAAC;AAC3B,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7D,OAAO;AACP,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;AAC5D,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/C,QAAQ,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,GAAG;AACH,EAAE,eAAe,CAAC,SAAS,EAAE;AAC7B,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,oBAAoB,GAAG,SAAS,CAAC,WAAW,CAAC;AACvD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,SAAS,EAAE;AAC9C,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,sBAAsB,CAAC,SAAS,EAAE;AACpC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,oBAAoB,GAAG,SAAS,CAAC,WAAW,CAAC;AACvD,IAAI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAChF,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACtE,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtC,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAChC,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAChC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACnD,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACpD,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,OAAO;AACP,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC9B,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAClC,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACvC,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACtE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACvC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AAC3C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACpD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACpD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACxD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACpD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACtE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;AACrC,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC;AAC9C,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;AAClD,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACjE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChE,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACtC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAC1C,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAC/C,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACnD,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACnD,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACvD,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACnD,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AACvD,QAAQ,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC7B,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAQ,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AAClE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;AACtE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACjC,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,aAAa,GAAGL,eAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;AACtI,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC3B,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;AACpC,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAC5B,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH,CAAC;AACD,gBAAgB,CAAC,SAAS,GAAG;AAC7B,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,CAAC,CAAC;AACF7B,YAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;;AC3N7B,IAAC,aAAa,mBAAmB,CAAC,CAAC,cAAc,KAAK;AACzD,EAAE,cAAc,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC;AAC5E,EAAE,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAChF,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,EAAE,aAAa,IAAI,EAAE;;ACFtB,MAAM,eAAe,GAAG;AACxB,EAAE,kBAAkB,EAAE,IAAI;AAC1B,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,MAAM;AAC3B,EAAE,WAAW,kCAAkC,GAAG;AAClD,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC,mCAAmC,CAAC;AAClE,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AAC3B,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAAC;AAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,mCAAmC,GAAG,eAAe,IAAI,KAAK,IAAI,mBAAmB,IAAI,KAAK,CAAC;AAC3H,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE;AACvG,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE;AAC3E,IAAI,QAAQ,GAAG,QAAQ,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACpF,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;AACtC,IAAI,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1D,IAAI,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvC,MAAM,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/C,MAAM,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC7C,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC7D,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;AACpF,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACrD,IAAI,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/C,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC1F,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC;AACrD,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,KAAK,IAAI,KAAK,CAAC,kBAAkB,CAAC;AACxC,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;AAC3F,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/I,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC;AACzC,KAAK;AACL,IAAI,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACrI,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE;AACpD,IAAI,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAC7C,IAAI,IAAI,YAAY,CAAC,kCAAkC,EAAE;AACzD,MAAM,IAAI,YAAY,CAAC,yBAAyB,EAAE;AAClD,QAAQ,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;AACrD,QAAQ,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;AACzD,QAAQ,4BAA4B,GAAG,IAAI,CAAC;AAC5C,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;AACtC,QAAQ,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,IAAI,4BAA4B,EAAE;AACxC,QAAQ,KAAK,IAAI,aAAa,CAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC;AACnF,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE;AAC9D,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC7D,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM,KAAK,mBAAmB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAChD,IAAI,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACnE,IAAI,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACvE,IAAI,IAAI,gBAAgB,GAAG,CAAC,cAAc,CAAC;AAC3C,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;AAC9D,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACzC,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,UAAU,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,UAAU,gBAAgB,GAAG,CAAC,cAAc,CAAC;AAC7C,UAAU,IAAI,GAAG,EAAE,CAAC;AACpB,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,UAAU,SAAS;AACnB,SAAS;AACT,QAAQ,KAAK,GAAG,GAAG,CAAC;AACpB,OAAO;AACP,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,MAAM,mBAAmB,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxE,QAAQ,MAAM,mBAAmB,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,mBAAmB,IAAI,mBAAmB,EAAE;AACxD,UAAU,SAAS;AACnB,SAAS;AACT,OAAO;AACP,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzF,MAAM,IAAI,UAAU,GAAG,aAAa,EAAE;AACtC,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE;AACzB,UAAU,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,UAAU,IAAI,GAAG,EAAE,CAAC;AACpB,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;AACjE,UAAU,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/D,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,YAAY,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC;AAChC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,OAAO,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACtC,cAAc,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,cAAc,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;AAC/F,gBAAgB,IAAI,IAAI,QAAQ,CAAC;AACjC,eAAe,MAAM;AACrB,gBAAgB,MAAM;AACtB,eAAe;AACf,cAAc,QAAQ,GAAG,QAAQ,CAAC;AAClC,cAAc,CAAC,EAAE,CAAC;AAClB,aAAa;AACb,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,YAAY,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClG,YAAY,IAAI,cAAc,GAAG,KAAK,GAAG,aAAa,EAAE;AACxD,cAAc,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,cAAc,gBAAgB,GAAG,KAAK,CAAC;AACvC,cAAc,IAAI,GAAG,EAAE,CAAC;AACxB,cAAc,KAAK,GAAG,CAAC,CAAC;AACxB,aAAa;AACb,YAAY,IAAI,IAAI,IAAI,CAAC;AACzB,YAAY,KAAK,IAAI,cAAc,CAAC;AACpC,WAAW;AACX,SAAS,MAAM;AACf,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAY,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChD,YAAY,IAAI,GAAG,EAAE,CAAC;AACtB,YAAY,KAAK,GAAG,CAAC,CAAC;AACtB,WAAW;AACX,UAAU,MAAM,WAAW,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,UAAU,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;AAC7D,UAAU,gBAAgB,GAAG,KAAK,CAAC;AACnC,UAAU,IAAI,GAAG,EAAE,CAAC;AACpB,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,UAAU,GAAG,KAAK,GAAG,aAAa,EAAE;AAChD,UAAU,gBAAgB,GAAG,KAAK,CAAC;AACnC,UAAU,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,UAAU,IAAI,GAAG,EAAE,CAAC;AACpB,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE;AACzF,UAAU,IAAI,IAAI,KAAK,CAAC;AACxB,UAAU,KAAK,IAAI,UAAU,CAAC;AAC9B,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE;AACvC,IAAI,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC;AAC7B,CAAC,GAAG,IAAI,CAAC;AACT,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE;AAC1D,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC;AACrF,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,UAAU,EAAE;AACpC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,CAAC;AAChE,GAAG;AACH,EAAE,OAAO,gBAAgB,CAAC,UAAU,EAAE;AACtC,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAC/C,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,OAAO,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE;AAC1C,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACxF,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1B,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,UAAU,KAAK,GAAG,EAAE,CAAC;AACrB,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,KAAK,IAAI,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACtB,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;AAC3C,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;AACtE,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC;AACxC,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC1C,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,eAAe,CAAC;AACrF,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;AACtE,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;AACtF,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC;AACxE,IAAI,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC/D,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE;AACrC,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAC7C,MAAM,OAAO,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;AAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;AACxC,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;AAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjD,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;AACrE,IAAI,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AACpC,IAAI,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;AACrB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;AACnC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,QAAQ,IAAI,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACxC,UAAU,IAAI,GAAG,IAAI,CAAC;AACtB,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,GAAG,IAAI,IAAI,CAAC;AACpB,OAAO,MAAM;AACb,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,UAAU,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC;AACrC,IAAI,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,GAAG,KAAK,CAAC;AACjB,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;AACxC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,QAAQ,IAAI,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACxC,UAAU,IAAI,GAAG,IAAI,CAAC;AACtB,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,GAAG,IAAI,IAAI,CAAC;AACpB,OAAO,MAAM;AACb,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC;AACtC,IAAI,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;AACjE,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAC3C,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,IAAI,GAAG,EAAE,EAAE;AACjC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,KAAK,MAAM;AACX,MAAM,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;AAC/B,KAAK;AACL,GAAG;AACH,EAAE,WAAW,OAAO,GAAG;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAChC,MAAM,IAAI,MAAM,CAAC;AACjB,MAAM,IAAI;AACV,QAAQ,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC5D,QAAQ,IAAI,OAAO,EAAE,WAAW,EAAE;AAClC,UAAU,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpC,UAAU,OAAO,CAAC,CAAC;AACnB,SAAS;AACT,QAAQ,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACjD,OAAO,CAAC,OAAO,EAAE,EAAE;AACnB,QAAQ,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACjD,OAAO;AACP,MAAM,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;AACxC,MAAM,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,QAAQ,CAAC;AACjC,GAAG;AACH,EAAE,WAAW,QAAQ,GAAG;AACxB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;AACjC,MAAM,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,OAAO,YAAY,CAAC,SAAS,CAAC;AAClC,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,cAAc,GAAG,YAAY,CAAC;AAC1C,WAAW,CAAC,eAAe,GAAG,GAAG,CAAC;AAClC,WAAW,CAAC,mBAAmB,GAAG,GAAG,CAAC;AACtC,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAClC,WAAW,CAAC,iBAAiB,GAAG,CAAC,MAAM;AACvC,EAAE,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU,EAAE;AAC7C,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AAC3C,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC;AACL,WAAW,CAAC,yBAAyB,GAAG,KAAK,CAAC;AAC9C,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;AACxB,WAAW,CAAC,SAAS,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,CAAC,CAAC;AACF,WAAW,CAAC,eAAe,GAAG;AAC9B,EAAE,CAAC;AACH,EAAE,EAAE;AACJ,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,KAAK;AACP,CAAC;;AC5XD,MAAM,mBAAmB,GAAG;AAC5B,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,SAAS;AACX,EAAE,WAAW;AACb,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,MAAM;AACzB,EAAE,WAAW,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAChC,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;AACxE,IAAI,OAAO,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;AAC/E,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAC/B,MAAM,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;AACvC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;AACnD,MAAM,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;AAC9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;AACvC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;AACnD,MAAM,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;AAC9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,cAAc,CAAC,cAAc,EAAE;AACrC,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE;AACjD,MAAM,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AAC5C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAClD,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;AAC/C,MAAM,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;AAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,kBAAkB,GAAG;AAC3B,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,kBAAkB,CAAC,kBAAkB,EAAE;AAC7C,IAAI,IAAI,IAAI,CAAC,mBAAmB,KAAK,kBAAkB,EAAE;AACzD,MAAM,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;AACpD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;AACpC,MAAM,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AAC/B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,gBAAgB,GAAG;AACzB,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,gBAAgB,CAAC,gBAAgB,EAAE;AACzC,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,EAAE;AACrD,MAAM,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAChD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,iBAAiB,GAAG;AAC1B,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,iBAAiB,CAAC,iBAAiB,EAAE;AAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE;AACrE,MAAM,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;AAClD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AACxC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACrC,MAAM,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE;AAC3B,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AACvC,MAAM,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAClC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE;AAC/B,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;AAC3C,MAAM,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACtC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,aAAa,CAAC,aAAa,EAAE;AACnC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,EAAE;AAC/C,MAAM,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AACnC,MAAM,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACrC,MAAM,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AACnC,MAAM,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACtC,MAAM,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACjC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;AACvC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;AACnD,MAAM,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;AAC9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,YAAY,CAAC,YAAY,EAAE;AACjC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,EAAE;AAC7C,MAAM,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAC7B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACrC,MAAM,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,aAAa,CAAC,aAAa,EAAE;AACnC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,EAAE;AAC/C,MAAM,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpG,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,MAAM,IAAI,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC/F,QAAQ,UAAU,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,OAAO;AACP,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClH,GAAG;AACH,CAAC,CAAC;AACC,IAAC,SAAS,GAAG,WAAW;AAC3B,SAAS,CAAC,YAAY,GAAG;AACzB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,UAAU,EAAE,KAAK;AACnB,EAAE,UAAU,EAAE,KAAK;AACnB,EAAE,eAAe,EAAE,CAAC;AACpB,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;AAC9B,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,eAAe,EAAE,OAAO;AAC1B,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,gBAAgB,EAAE,aAAa,CAAC,eAAe;AACjD,EAAE,iBAAiB,EAAE,EAAE;AACvB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,QAAQ,EAAE,EAAE;AACd,EAAE,SAAS,EAAE,QAAQ;AACrB,EAAE,WAAW,EAAE,QAAQ;AACvB,EAAE,UAAU,EAAE,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,UAAU,EAAE,EAAE;AAChB,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,eAAe,EAAE,CAAC;AACpB,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,IAAI,EAAE,KAAK;AACb,EAAE,UAAU,EAAE,KAAK;AACnB,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,aAAa,EAAE,GAAG;AACpB,CAAC,CAAC;AACF,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,OAAOmC,UAAgB,CAAC,KAAK,CAAC,CAAC;AACnC,GAAG,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACxC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAChC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC;AACD,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;AACxC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACxD,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACvC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AACjC,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;AACzD,EAAE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AAClC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1C,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,GAAG;AACH;;ACrXA,MAAM,qBAAqB,GAAG;AAC9B,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,WAAW,EAAE,IAAI;AACnB,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,cAAc,MAAM,CAAC;AACnC,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACnC,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AAC/C,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;AACnC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAC3C,MAAM,kBAAkB,EAAE,IAAI;AAC9B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,IAAI,QAAQ,CAAC,UAAU,CAAC;AACtE,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,qBAAqB,CAAC;AACvD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,WAAW,yBAAyB,GAAG;AACzC,IAAI,OAAO,WAAW,CAAC,yBAAyB,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,yBAAyB,CAAC,KAAK,EAAE;AAC9C,IAAId,WAAiB,CAAC,OAAO,EAAE,yFAAyF,CAAC,CAAC;AAC1H,IAAI,WAAW,CAAC,yBAAyB,GAAG,KAAK,CAAC;AAClD,GAAG;AACH,EAAE,UAAU,CAAC,YAAY,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE;AAC7C,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;AACxC,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE;AACrC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC5C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChH,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACnC,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC/C,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;AACnD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AACxG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1G,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnE,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9B,IAAI,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;AAC9C,IAAI,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AAC9C,IAAI,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtC,IAAI,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAC1C,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACjG,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AAC7D,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;AACpC,QAAQ,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;AACtC,QAAQ,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;AACtD,QAAQ,MAAM,GAAG,GAAGS,OAAa,CAAC,OAAO,eAAe,KAAK,QAAQ,GAAG,eAAe,GAAGM,UAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7H,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AACvE,QAAQ,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/E,QAAQ,OAAO,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/G,QAAQ,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;AAC5C,QAAQ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAC;AACrF,QAAQ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,kBAAkB,GAAG,cAAc,CAAC;AACtG,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5E,QAAQ,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3C,QAAQ,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;AACtC,QAAQ,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAClC,QAAQ,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,kBAAkB,GAAG,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC1E,MAAM,IAAI,UAAU,GAAG,cAAc,CAAC,QAAQ,GAAG,CAAC,EAAE;AACpD,QAAQ,kBAAkB,GAAG,CAAC,CAAC;AAC/B,OAAO;AACP,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAChD,QAAQ,aAAa,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;AAClD,QAAQ,aAAa,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,kBAAkB,CAAC;AACjH,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE;AACrC,UAAU,aAAa,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;AACzD,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC7C,UAAU,aAAa,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE;AACnD,UAAU,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC;AAC/H,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,UAAU,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;AACzH,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE;AAClD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC9C,IAAI,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAC7C,IAAI,IAAI,WAAW,CAAC,kCAAkC,EAAE;AACxD,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE;AACjD,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;AAC9D,QAAQ,4BAA4B,GAAG,IAAI,CAAC;AAC5C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,4BAA4B,EAAE;AAC7D,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,OAAO;AACP,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,CAAC,CAAC;AAC5B,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AAC7D,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AAC/D,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,EAAE,CAAC;AACvB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvD,QAAQ,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AAC7D,MAAM,eAAe,IAAI,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AACtE,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,MAAM,MAAM,OAAO,GAAGC,UAAgB,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;AACxB,QAAQ,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAQ,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AACnD,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AAChF,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AACnF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;AAC5D,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5B,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3E,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,UAAU,EAAE;AAC1E,MAAM,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC7C,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;AAChC,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnC,MAAM,OAAO,SAAS,CAAC;AACvB,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,MAAM,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;AACjF,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,GAAG,OAAO,GAAG,CAAC,CAAC;AAC5F,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,GAAG,OAAO,GAAG,CAAC,CAAC;AAC9F,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;AACnC,IAAI,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC9D,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACnC,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC5C,QAAQ,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,KAAK,CAAC,gBAAgB,KAAK,aAAa,CAAC,eAAe,EAAE;AAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AACpG,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;AACjF,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;AACzE,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;AACnD,QAAQ,IAAI,qBAAqB,GAAG,WAAW,CAAC;AAChD,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,GAAG,WAAW,EAAE;AACnD,UAAU,qBAAqB,GAAG,CAAC,WAAW,GAAG,cAAc,IAAI,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AACxD,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,mBAAmB,GAAG,cAAc,CAAC;AACjD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,GAAG,cAAc,EAAE;AAClE,UAAU,mBAAmB,GAAG,CAAC,cAAc,GAAG,WAAW,IAAI,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,GAAG,qBAAqB,IAAI,MAAM,CAAC;AAC1F,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;AAC3B,UAAU,IAAI,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxD,YAAY,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC5C,WAAW,MAAM;AACjB,YAAY,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACvC,WAAW;AACX,UAAU,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC;AACpH,UAAU,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,UAAU,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AACrG,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,MAAM,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAC/B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtD,UAAU,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACtC,SAAS,MAAM;AACf,UAAU,IAAI,GAAG,gBAAgB,GAAG,eAAe,CAAC;AACpD,SAAS;AACT,QAAQ,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,gBAAgB,EAAE,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;AACtC,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAChE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7D,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,GAAGd,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,GAAGA,IAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,IAAI,IAAI,KAAK,YAAY,SAAS,EAAE;AACpC,MAAM,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAChE,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AACpC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,CAAC,CAAC;AACC,IAACe,MAAI,GAAG,MAAM;AACjBA,MAAI,CAAC,qBAAqB,GAAG,IAAI;;ACpWjC,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,gBAAgB,EAAE;AAChC,IAAI,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC7C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC3C,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAChC,GAAG;AACH;;ACNA,SAAS,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE;AAC/C,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE;AAChD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC1C,UAAU,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,UAAU,MAAM,GAAG,IAAI,CAAC;AACxB,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,SAAS,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE;AACtC,EAAE,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW,EAAE;AAC/C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,YAAY,OAAO,EAAE;AACzD,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE;AACjC,EAAE,IAAI,IAAI,YAAYA,MAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,EAAE,IAAI,IAAI,YAAY,SAAS,EAAE;AACjC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AAC/B,EAAE,IAAI,IAAI,YAAYA,MAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACrC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,EAAE,IAAI,IAAI,YAAY,SAAS,EAAE;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,YAAY,GAAG,MAAM;AAC3B,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM;AAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACvB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AACpD,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,EAAE;AACf,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,UAAU,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,UAAU,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;AAC1E,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AAC9B,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE;AAChE,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,QAAQ,GAAG,KAAK,CAAC;AAC3B,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACrE,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE;AAChE,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,YAAY,QAAQ,GAAG,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC5B,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAC3B,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC5D,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACvB,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;AACtE,KAAK;AACL,GAAG;AACH,EAAE,gBAAgB,CAAC,OAAO,EAAE;AAC5B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,kBAAkB,CAAC,UAAU,EAAE;AACjC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,GAAG,CAAC,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC9D,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,YAAY,SAAS,EAAE;AACnC,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1D,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,eAAe,GAAG,CAAC;;AC5L/B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAClC,EAAE,iBAAiB,EAAE;AACrB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,WAAW,CAAC,eAAe,CAAC;AACzC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAMjB,WAAiB,CAAC,OAAO,EAAE,mFAAmF,CAAC,CAAC;AACtH,MAAM,WAAW,CAAC,eAAe,GAAG,KAAK,CAAC;AAC1C,KAAK;AACL,GAAG;AACH,CAAC,CAAC;;ACVF,SAAS,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC5C,EAAE,IAAI,IAAI,YAAY,WAAW,EAAE;AACnC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACjD,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE;AACxC,EAAE,IAAI,EAAE,IAAI,YAAY,QAAQ,CAAC,EAAE;AACnC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC3B,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;AAC/B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AACxD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;AACnC,EAAE,IAAI,IAAI,YAAY,QAAQ,EAAE;AAChC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,OAAO,SAAS,WAAW,CAAC;AAClC,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC1C,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC5C,GAAG;AACH,CAAC;AACD,OAAO,CAAC,SAAS,GAAG;AACpB,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,CAAC,CAAC;AACFrB,YAAU,CAAC,GAAG,CAAC,OAAO,CAAC;;ACpDvB,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,CAAC,eAAe,EAAE;AAC/B,IAAI,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC3C,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;AAC/D,GAAG;AACH;;ACRA,MAAM,cAAc,SAAS,MAAM,CAAC;AACpC,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE;AAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAClC,IAAI,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACvD,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACxD,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;AACjE,MAAM,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,IAAI,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACpC,GAAG;AACH,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,SAAS,EAAE;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACpD,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;AAC5C,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAClC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3E,MAAM,GAAG,IAAI,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;AAChC,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5B,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,OAAO;AACP,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;AAC9D,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACxD,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpE,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACzE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClD,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM,IAAI,aAAa,KAAK,IAAI,CAAC,YAAY,EAAE;AACpD,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,aAAa,EAAE;AAC1I,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,YAAY,EAAE;AAC9C,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAChC,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7C,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;AAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE;AAC5B,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE;AAC5B,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE;AACrC,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAC7E,IAAI,IAAI,YAAY,GAAG,CAAC,EAAE;AAC1B,MAAM,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAC5C,KAAK;AACL,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE;AAC1B,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACnD,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7I,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;AAC5C,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,YAAY,EAAE;AAC7C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC1D,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAC1C,OAAO,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClF,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACzC,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACxLA,MAAM,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAC9B,MAAM,YAAY,SAAS,MAAM,CAAC;AAClC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE;AAClD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;AACzC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;AACrC,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE;AAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3B,IAAI,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,gBAAgB,GAAG;AACrB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAChD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACjD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACzD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC9D,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/D,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,UAAU,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;AAClD,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrC,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,aAAa,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACvC,IAAI,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE;AACvD,MAAM,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1C,MAAM,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,OAAO,GAAG,MAAM,YAAY,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvF,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACpE,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,GAAG;AACH;;AC1GA,IAAI,cAAc,GAAG,6pBAA6pB;;ACAlrB,IAAI,YAAY,GAAG,scAAsc;;ACAzd,IAAI,cAAc,GAAG,m2BAAm2B;;ACAx3B,IAAI,YAAY,GAAG,qdAAqd;;ACAxe,IAAI,iBAAiB,GAAG,sSAAsS;;ACO9T,MAAM,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAC7B,MAAM,oBAAoB,SAAS,cAAc,CAAC;AAClD,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,GAAG;AACH,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;AAC1D,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAChK,GAAG;AACH,EAAE,MAAM,CAAC,EAAE,EAAE;AACb,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;AACxB,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAC5C,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;AAC5B,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC;AACpC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AAChD,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC;AAC/C,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAC3B,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;AACpH,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtD,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE;AACnD,UAAU,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;AAC/C,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9D,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACxB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AACzB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AACxB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;AACzB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9F,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5D,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;AACnD,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;AACrD,KAAK;AACL,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG+B,qBAA2B,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACxH,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClF,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;AACnC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAGE,gBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC/E,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,GAAG;AACH,CAAC;AACD,oBAAoB,CAAC,SAAS,GAAG;AACjC,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc;AACpC,CAAC,CAAC;AACFjC,YAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;;AC/EpC,MAAM,YAAY,GAAG,MAAM;AAC3B,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAE;AACxD,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,YAAY,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;AAChE,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC5F,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC/C,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,KAAK,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACrG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,EAAE;AAC/C,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,IAAI,IAAI,UAAU,GAAG0B,kBAAwB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AACxE,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;AAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,MAAM,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC/B,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC3B,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7D,QAAQ,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,cAAc,CAAC,iBAAiB,EAAE;AACpC,IAAI,IAAI,UAAU,GAAG,iBAAiB,CAAC;AACvC,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC;AAC9C,IAAI,OAAO,UAAU,GAAG,iBAAiB,GAAG,SAAS,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC9F,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9B,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;AACxB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AACpG,QAAQ,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACjI,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,UAAU,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACxL,SAAS,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACxL,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC7D,UAAU,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACzN,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/G,QAAQ,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,OAAO;AACP,MAAM,UAAU,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,kBAAkB,GAAG;AACvB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAClD,IAAI,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACvC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACrC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5D,QAAQ,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC/E,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,OAAO;AACP,KAAK,EAAE,CAAC,CAAC,CAAC;AACV,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,GAAG,KAAK,EAAE;AAC/B,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,WAAW,GAAG,aAAa;AAC/B,WAAW,CAAC,UAAU,GAAG,GAAG;;AC7G5B,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;AAC1D,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACxB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB,IAAI,MAAM,QAAQ,GAAGD,IAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAC5C,MAAM,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7G,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACI,MAAC,gBAAgB,GAAG;AACzB,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK;AAChC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,YAAY,WAAW;AACjD,IAAI,kBAAkB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;AAC/E,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK;AACrB,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACpC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,OAAO,SAAS,KAAK,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK;AACtB,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,OAAO;AACb,QAAQ,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC9E,QAAQ,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,QAAQ,GAAG,EAAE,KAAK;AAClB,OAAO,CAAC;AACR,KAAK;AACL,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,SAAS,EAAE;AACf,MAAM,IAAI,EAAE,aAAa,CAAC,UAAU;AACpC,MAAM,QAAQ,EAAE,oBAAoB,CAAC,MAAM;AAC3C,KAAK;AACL,IAAI,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;AACpC,MAAM,OAAOA,IAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACzF,KAAK;AACL,IAAI,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;AACxC,MAAM,IAAI,QAAQ,GAAGA,IAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrD,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,QAAQ,QAAQ,IAAI,GAAG,CAAC;AACxB,OAAO;AACP,MAAM,IAAI,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3D,MAAM,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACnF,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,mBAAmB,CAAC;AAC1D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACrC,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC5B,QAAQ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACvC,UAAU,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxC,YAAY,SAAS;AACrB,WAAW;AACX,UAAU,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;AACxC,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE;AAC7C,YAAY,SAAS;AACrB,WAAW;AACX,UAAU,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3D,UAAU,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,YAAY,GAAG,EAAE,OAAO;AACxB,YAAY,IAAI,EAAE;AAClB,cAAc,eAAe,EAAE,IAAI;AACnC,aAAa;AACb,WAAW,CAAC,CAAC,CAAC;AACd,SAAS;AACT,QAAQ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAQ,WAAW,CAAC,YAAY,GAAG,GAAG,CAAC;AACvC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC9B,UAAU,IAAI,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AACzG,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,OAAO,WAAW,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,CAAC,WAAW,EAAE;AACxB,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,GAAG;AACH,EAAE;AACFzB,YAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;;AChGhC,MAAM,cAAc,CAAC;AACrB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,GAAG;AACH;;ACPA,MAAM,UAAU,CAAC;AACjB,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE;AACpB,IAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACrE,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE;AACpB,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC/C,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,IAAI,EAAE,EAAE;AACd,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,IAAI,EAAE,EAAE;AACd,MAAM,IAAI,EAAE,EAAE;AACd,MAAM,KAAK,EAAE,EAAE;AACf,MAAM,OAAO,EAAE,EAAE;AACjB,MAAM,QAAQ,EAAE,EAAE;AAClB,MAAM,aAAa,EAAE,EAAE;AACvB,KAAK,CAAC;AACN,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AAC3B,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAC/E,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC1B,MAAM,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AACtC,QAAQ,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrD,QAAQ,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChE,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,OAAO;AACP,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI;AACrB,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxD,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;AACjD,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,MAAM,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAC/B,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI;AACrB,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,MAAM,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAC/B,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,MAAM,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;AACrC,MAAM,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AACvC,MAAM,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;AACzC,MAAM,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;AACzC,MAAM,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3C,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3D,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACxC,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC1C,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC1C,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAClE,MAAM,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;AACnD,MAAM,SAAS,EAAE,EAAE,CAAC,SAAS;AAC7B,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;AChEA,MAAM,SAAS,CAAC;AAChB,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE;AACpB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC;AACrB,IAAI,OAAO,sBAAsB,IAAI,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;AACzJ,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE;AACpB,IAAI,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;AACtC,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACtD,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACxD,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AACpE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;AAC1C,QAAQ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AACxD,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,QAAQ,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;AACtE,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,QAAQ,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;AACzD,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;AAC1C,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,QAAQ,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACnD,QAAQ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;AAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACjD,QAAQ,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AACzD,QAAQ,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AAC3D,QAAQ,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;AAC7D,QAAQ,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;AAC7D,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;AAC/D,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACxB,QAAQ,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC7D,QAAQ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AAC/D,QAAQ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AAC/D,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC9B,QAAQ,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;AAC7D,QAAQ,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;AACnF,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;;AC1DA,MAAM,eAAe,CAAC;AACtB,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE;AACpB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC7D,MAAM,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE;AACvB,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH;;ACNA,MAAM,OAAO,GAAG;AAChB,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,EAAE,eAAe;AACjB,CAAC,CAAC;AACF,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd;;ACjBA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/E,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACjC,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC;AACf,EAAE,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC/E,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AACrC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,oBAAoB,GAAG,OAAO,GAAG,CAAC,CAAC;AAC/E,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,oBAAoB,GAAG,OAAO,GAAG,CAAC,CAAC;AACjF,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;AACjC,EAAE,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5D,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACjC,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,KAAK,CAAC,gBAAgB,KAAK,aAAa,CAAC,eAAe,EAAE;AAChE,IAAI,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAC7F,IAAI,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC9B,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;AAC/E,IAAI,MAAM,kBAAkB,GAAG,UAAU,GAAG,MAAM,CAAC;AACnD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;AACjD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;AACzB,QAAQ,IAAI,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtD,UAAU,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAS,MAAM;AACf,UAAU,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAChF,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAClE,QAAQ,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAQ,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,QAAQ,iBAAiB,GAAG,WAAW,CAAC;AACxC,OAAO;AACP,KAAK;AACL,GAAG,MAAM;AACT,IAAI,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9F,IAAI,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,IAAI,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,IAAI,CAAC;AACf,MAAM,IAAI,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACpD,QAAQ,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAClD,OAAO;AACP,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,gBAAgB,EAAE,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC;AAClB;;AC5DA,SAAS,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;AACtE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5B,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAChD,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;AACvC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC1C,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;AACtC,EAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;AAC5C,EAAE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AAC5C,EAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACpC,EAAE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACxC,EAAE,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7F,EAAE,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AACrC,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;AAClD,IAAI,MAAM,GAAG,GAAG8B,OAAa,CAAC,OAAO,eAAe,KAAK,QAAQ,GAAG,eAAe,GAAGM,UAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;AACzH,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;AAC7D,IAAI,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;AACrE,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC3G,IAAI,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;AACxC,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAC;AACjF,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAC;AACjF,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;AAClC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAC9B,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE;AAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AACnF,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;AAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AACjF,GAAG;AACH,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,EAAE,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAC;AACzC;;ACxCA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,EAAE,OAAO,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE;;ACFA,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,EAAE,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxD;;ACAA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,8DAA8D,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG,OAAO;AACP,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,IAAI,OAAO,GAAG,SAAS,EAAE;AAC/B,QAAQ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAClE,OAAO;AACP,MAAM,KAAK,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7D,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1E,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;ACpBA,MAAM,WAAW,GAAG,MAAM;AAC1B,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;AAC/C,IAAI,MAAM,GAAG,GAAGV,kBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,IAAI,MAAM,YAAY,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,YAAY,CAAC,EAAE,CAAC,GAAG,QAAQ,YAAY,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClF,MAAM,IAAI,aAAa,EAAE,SAAS,IAAI,aAAa,CAAC,SAAS,KAAK,MAAM,EAAE;AAC1E,QAAQ,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,sBAAsB,CAAC;AACpF,QAAQ,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;AAC/D,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,IAAI,GAAG,CAAC;AACf,MAAM,CAAC,IAAI,GAAG,CAAC;AACf,MAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAM,MAAM,IAAI,GAAG,CAAC;AACpB,MAAM,OAAO,IAAI,GAAG,CAAC;AACrB,MAAM,OAAO,IAAI,GAAG,CAAC;AACrB,MAAM,QAAQ,IAAI,GAAG,CAAC;AACtB,MAAM,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9H,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC;AACnE,QAAQ,IAAI,EAAE,KAAK;AACnB,OAAO,CAAC;AACR,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAM,MAAM,IAAI,GAAG,CAAC;AACpB,MAAM,MAAM,IAAI,GAAG,CAAC;AACpB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACnD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,kBAAkB,GAAG,aAAa,EAAE,aAAa,CAAC;AAC3D,IAAI,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC;AAC/E,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AACjC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,KAAK;AACL,IAAI,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;AACxC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC9B,QAAQ,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,OAAO;AACP,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC/C,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,IAAI,YAAY,cAAc,EAAE;AACxC,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC9D,OAAO;AACP,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,QAAQ,YAAY,OAAO,EAAE;AACrC,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACnE,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AACxC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,MAAM;AACV,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,GAAG,WAAW;AACpB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAC/D,IAAI,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/C,IAAI,MAAM,KAAK,GAAG,SAAS,YAAY,SAAS,GAAG,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;AACxF,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC;AACnC,IAAI,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;AAC1C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACvB,MAAM,IAAI,EAAE,KAAK,CAAC,UAAU;AAC5B,MAAM,IAAI,EAAE,KAAK,CAAC,QAAQ;AAC1B,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACzB,MAAM,UAAU,EAAE,KAAK,CAAC,QAAQ;AAChC,KAAK,CAAC;AACN,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,MAAM,YAAY,GAAG,EAAE,CAAC;AAC5B,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AACjD,QAAQ,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;AACpC,QAAQ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;AACtC,QAAQ,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AAC9E,QAAQ,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;AACjC,UAAU,IAAI,EAAE,EAAE;AAClB,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;AAC1F,MAAM,IAAI,SAAS,IAAI,aAAa,GAAG,MAAM,GAAG,UAAU,EAAE;AAC5D,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;AAC7B,UAAU,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,aAAa,CAAC,8BAA8B,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACjL,SAAS;AACT,QAAQ,EAAE,CAAC,CAAC;AACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;AACtB,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,QAAQ,WAAW,GAAG,IAAI,CAAC;AAC3B,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB,QAAQ,aAAa,GAAG,CAAC,CAAC;AAC1B,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACvF,MAAM,IAAI,iBAAiB,GAAG,UAAU,GAAG,SAAS,IAAI,SAAS,EAAE;AACnE,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;AAC7B,UAAU,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,YAAY,CAAC,8BAA8B,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/K,SAAS;AACT,QAAQ,EAAE,CAAC,CAAC;AACZ,QAAQ,SAAS,IAAI,aAAa,GAAG,UAAU,CAAC;AAChD,QAAQ,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB,QAAQ,aAAa,GAAG,CAAC,CAAC;AAC1B,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACnF,MAAM,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,QAAQ,EAAE;AACV,QAAQ,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;AACjC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU;AACjC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU;AACjC,QAAQ,KAAK,EAAE,iBAAiB;AAChC,QAAQ,MAAM;AACd,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;AACxH,OAAO,CAAC,CAAC;AACT,MAAM,SAAS,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC;AAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACpC,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACpD,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACrD,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC;AAChE,QAAQ,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,YAAY,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;AAC3C,YAAY,MAAM;AAClB,WAAW,CAAC,CAAC;AACb,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAChD,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACvC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,CAAC,CAAC;AACC,IAAC,UAAU,GAAG,YAAY;AAC7B,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACjD,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACpE,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAChC,UAAU,CAAC,cAAc,GAAG;AAC5B,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,YAAY,EAAE,GAAG;AACnB,EAAE,aAAa,EAAE,GAAG;AACpB,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY;AACjC,CAAC,CAAC;AACF,UAAU,CAAC,SAAS,GAAG,EAAE;;ACvOzB,IAAI,QAAQ,GAAG,k+BAAk+B;;ACAj/B,IAAI,QAAQ,GAAG,gdAAgd;;ACU/d,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAC3C,MAAM,4BAA4B,GAAG,EAAE,CAAC;AACxC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,WAAW,GAAG,cAAc,SAAS,CAAC;AAC5C,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE;AAChC,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC1B,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC7H,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACzC,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACnC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACxC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM;AAC7C,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AACvC,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;AACjE,IAAI,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC3D,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,KAAK,MAAM,GAAG,+BAA+B,GAAG,4BAA4B,CAAC;AAChI,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACjB,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,cAAc,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC/B,QAAQ,YAAY,GAAG,CAAC,CAAC;AACzB,QAAQ,cAAc,GAAG,aAAa,CAAC;AACvC,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO;AACP,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvC,QAAQ,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,QAAQ,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAC7D,QAAQ,EAAE,IAAI,CAAC;AACf,QAAQ,EAAE,aAAa,CAAC;AACxB,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AACjC,QAAQ,YAAY,GAAG,IAAI,CAAC;AAC5B,QAAQ,UAAU,GAAG,CAAC,CAAC;AACvB,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAQ,SAAS;AACjB,OAAO;AACP,MAAM,IAAI,YAAY,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC1D,QAAQ,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAChD,OAAO;AACP,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI;AACzD,QAAQ,OAAO,EAAE,OAAO,CAAC,KAAK;AAC9B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,QAAQ,EAAE,IAAI,KAAK,EAAE;AAC7B,OAAO,CAAC;AACR,MAAM,cAAc,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AAChD,MAAM,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;AACjC,MAAM,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzC,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACjG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvE,MAAM,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7C,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjC,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9H,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;AACvD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1F,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE;AACnE,QAAQ,EAAE,aAAa,CAAC;AACxB,QAAQN,WAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;AACzF,QAAQ,CAAC,GAAG,YAAY,CAAC;AACzB,QAAQ,YAAY,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAQ,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACxC,QAAQ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACnF,QAAQ,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC9D,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AACjC,QAAQ,YAAY,GAAG,IAAI,CAAC;AAC5B,QAAQ,UAAU,GAAG,CAAC,CAAC;AACvB,OAAO;AACP,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvD,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAChD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACnC,QAAQ,aAAa,GAAG,cAAc,CAAC;AACvC,OAAO;AACP,MAAM,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAC3D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACnC,QAAQ,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACnD,OAAO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC3C,QAAQ,WAAW,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,OAAO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC5C,QAAQ,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,OAAO;AACP,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,IAAI,MAAM,aAAa,GAAG,EAAE,CAAC;AAC7B,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAChC,IAAI,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC1D,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;AAClD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;AACrD,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AAC1C,QAAQ,IAAI,YAAY,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,UAAU,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAC9C,UAAU,IAAI,QAAQ,CAAC;AACvB,UAAU,IAAI,aAAa,CAAC;AAC5B,UAAU,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE;AACjD,YAAY,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvD,YAAY,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;AAC/C,WAAW,MAAM;AACjB,YAAY,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAChI,YAAY,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC;AACnD,WAAW;AACX,UAAU,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpD,UAAU,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;AACzC,UAAU,YAAY,GAAG;AACzB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,UAAU,EAAE,CAAC;AACzB,YAAY,WAAW,EAAE,CAAC;AAC1B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,OAAO,EAAE,IAAI;AACzB,WAAW,CAAC;AACZ,SAAS;AACT,QAAQ,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,QAAQ,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;AACpC,QAAQ,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;AACrC,QAAQ,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,QAAQ,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;AACvC,QAAQ,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1G,QAAQ,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAClE,QAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAQ,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAQ,aAAa,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;AACrD,OAAO;AACP,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5C,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACpD,QAAQ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;AACjD,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;AACnC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AACvC,MAAM,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjH,QAAQ,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAChE,QAAQ,YAAY,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3D,QAAQ,YAAY,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1D,OAAO,MAAM;AACb,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;AAC1C,QAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC/C,QAAQ,KAAK,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClE,UAAU,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,OAAO;AACP,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AACzC,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACrH,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAC7B,QAAQ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpC,OAAO;AACP,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3C,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACnC,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;AACtC,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3E,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3E,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5E,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5E,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC;AAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;AACzD,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;AACnC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;AACtD,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;AAC5B,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;AACxD,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,UAAU,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,aAAa,CAAC;AAChE,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,cAAc,GAAG,aAAa,GAAG,KAAK,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;AACnF,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAChE,MAAM,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC;AAChD,MAAM,aAAa,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC;AAC5C,MAAM,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC;AAC9C,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;AAC5B,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC;AAC7B,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AAC3B,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,eAAe,GAAG;AACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,UAAU,EAAE;AAC1E,MAAM,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC7C,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjG,IAAI,IAAI,iBAAiB,KAAK,MAAM,EAAE;AACtC,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;AACjD,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;AACnD,MAAM,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACpD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAAC;AACrG,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,cAAc,GAAG;AACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC;AAClC,GAAG;AACH,EAAE,QAAQ,GAAG;AACb,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAC7B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;AAC5B,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACrD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAC/B,MAAM,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtC,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACvE,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAChE,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,aAAa,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE;AAC3B,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;AACvC,MAAM,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;AACrC,MAAM,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAChC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AACpC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,EAAE;AACnB,IAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;AACnC,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,KAAK,MAAM,GAAG,+BAA+B,GAAG,4BAA4B,CAAC;AAChI,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACxD,IAAI,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC1D,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACnC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC1G,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AACpC,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,MAAM,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACC,IAAC,UAAU,GAAG,YAAY;AAC7B,UAAU,CAAC,aAAa,GAAG;AAC3B,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,aAAa,EAAE,CAAC;AAClB,CAAC;;ACjdD,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,MAAC,cAAc,GAAG;AACvB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,aAAa,CAAC,UAAU;AAClC,IAAI,QAAQ,EAAE,oBAAoB,CAAC,MAAM;AACzC,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,eAAe,CAAC,QAAQ,CAACK,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,GAAG;AACH,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE;AACxB,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AACnC,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrG,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACzB,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AACrC,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,MAAM,IAAI,SAAS,GAAGA,IAAU,CAAC,IAAI,CAACA,IAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzE,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACnD,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxD,GAAG;AACH,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC5B,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,MAAM,CAAC,UAAU,EAAE;AACrB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;AACzB,GAAG;AACH,EAAE;AACFzB,YAAU,CAAC,GAAG,CAAC,cAAc,CAAC;;AC1C9B,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuC,MAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;AACnC,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;AACvB,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;AACvB,EAAE;AACF,CAAC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5C,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvC,EAAE;AACF,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrD,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE;AAC5B,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;AACvB,EAAE,EAAE,GAAG,OAAM;AACb,EAAE;AACF,CAAC,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;AAC1E,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpD,EAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAChD,EAAE;AACF,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AACzB,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACzD,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAC;AAC5B,GAAG;AACH,EAAE;AACF,CAAC,OAAO,MAAM;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,MAAM,CAAC;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,EAAE,WAAW;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;AAC1B,EAAE,OAAO,KAAK,KAAK,SAAS,CAAC,IAAI;AACjC,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,EAAE,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,EAAE,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,EAAE,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,EAAE,eAAe;AAC/B,CAAC,EAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,WAAS,GAAG,MAAM,CAAC;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,EAAE,8BAA8B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE;AACxB,EAAE,OAAO,GAAG,KAAKA,WAAS,CAAC,IAAI;AAC/B,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,4BAA4B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,sCAAsC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,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"}