1 line
32 KiB
Plaintext
1 line
32 KiB
Plaintext
{"version":3,"file":"GeometryAttribute-4bcb785f.js","sources":["../../../../Source/Core/GeometryType.js","../../../../Source/Core/PrimitiveType.js","../../../../Source/Core/Geometry.js","../../../../Source/Core/GeometryAttribute.js"],"sourcesContent":["/**\n * @private\n */\nconst GeometryType = {\n NONE: 0,\n TRIANGLES: 1,\n LINES: 2,\n POLYLINES: 3,\n};\nexport default Object.freeze(GeometryType);\n","import WebGLConstants from \"./WebGLConstants.js\";\n\n/**\n * The type of a geometric primitive, i.e., points, lines, and triangles.\n *\n * @enum {Number}\n */\nconst PrimitiveType = {\n /**\n * Points primitive where each vertex (or index) is a separate point.\n *\n * @type {Number}\n * @constant\n */\n POINTS: WebGLConstants.POINTS,\n\n /**\n * Lines primitive where each two vertices (or indices) is a line segment. Line segments are not necessarily connected.\n *\n * @type {Number}\n * @constant\n */\n LINES: WebGLConstants.LINES,\n\n /**\n * Line loop primitive where each vertex (or index) after the first connects a line to\n * the previous vertex, and the last vertex implicitly connects to the first.\n *\n * @type {Number}\n * @constant\n */\n LINE_LOOP: WebGLConstants.LINE_LOOP,\n\n /**\n * Line strip primitive where each vertex (or index) after the first connects a line to the previous vertex.\n *\n * @type {Number}\n * @constant\n */\n LINE_STRIP: WebGLConstants.LINE_STRIP,\n\n /**\n * Triangles primitive where each three vertices (or indices) is a triangle. Triangles do not necessarily share edges.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLES: WebGLConstants.TRIANGLES,\n\n /**\n * Triangle strip primitive where each vertex (or index) after the first two connect to\n * the previous two vertices forming a triangle. For example, this can be used to model a wall.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLE_STRIP: WebGLConstants.TRIANGLE_STRIP,\n\n /**\n * Triangle fan primitive where each vertex (or index) after the first two connect to\n * the previous vertex and the first vertex forming a triangle. For example, this can be used\n * to model a cone or circle.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLE_FAN: WebGLConstants.TRIANGLE_FAN,\n};\n\n/**\n * @private\n */\nPrimitiveType.validate = function (primitiveType) {\n return (\n primitiveType === PrimitiveType.POINTS ||\n primitiveType === PrimitiveType.LINES ||\n primitiveType === PrimitiveType.LINE_LOOP ||\n primitiveType === PrimitiveType.LINE_STRIP ||\n primitiveType === PrimitiveType.TRIANGLES ||\n primitiveType === PrimitiveType.TRIANGLE_STRIP ||\n primitiveType === PrimitiveType.TRIANGLE_FAN\n );\n};\n\nexport default Object.freeze(PrimitiveType);\n","import Cartesian2 from \"./Cartesian2.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport Check from \"./Check.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport GeometryType from \"./GeometryType.js\";\nimport Matrix2 from \"./Matrix2.js\";\nimport Matrix3 from \"./Matrix3.js\";\nimport Matrix4 from \"./Matrix4.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport Quaternion from \"./Quaternion.js\";\nimport Rectangle from \"./Rectangle.js\";\nimport Transforms from \"./Transforms.js\";\n\n/**\n * A geometry representation with attributes forming vertices and optional index data\n * defining primitives. Geometries and an {@link Appearance}, which describes the shading,\n * can be assigned to a {@link Primitive} for visualization. A <code>Primitive</code> can\n * be created from many heterogeneous - in many cases - geometries for performance.\n * <p>\n * Geometries can be transformed and optimized using functions in {@link GeometryPipeline}.\n * </p>\n *\n * @alias Geometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {GeometryAttributes} options.attributes Attributes, which make up the geometry's vertices.\n * @param {PrimitiveType} [options.primitiveType=PrimitiveType.TRIANGLES] The type of primitives in the geometry.\n * @param {Uint16Array|Uint32Array} [options.indices] Optional index data that determines the primitives in the geometry.\n * @param {BoundingSphere} [options.boundingSphere] An optional bounding sphere that fully enclosed the geometry.\n *\n * @see PolygonGeometry\n * @see RectangleGeometry\n * @see EllipseGeometry\n * @see CircleGeometry\n * @see WallGeometry\n * @see SimplePolylineGeometry\n * @see BoxGeometry\n * @see EllipsoidGeometry\n *\n * @demo {@link https://sandcastle.cesium.com/index.html?src=Geometry%20and%20Appearances.html|Geometry and Appearances Demo}\n *\n * @example\n * // Create geometry with a position attribute and indexed lines.\n * const positions = new Float64Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n *\n * const geometry = new Cesium.Geometry({\n * attributes : {\n * position : new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.DOUBLE,\n * componentsPerAttribute : 3,\n * values : positions\n * })\n * },\n * indices : new Uint16Array([0, 1, 1, 2, 2, 0]),\n * primitiveType : Cesium.PrimitiveType.LINES,\n * boundingSphere : Cesium.BoundingSphere.fromVertices(positions)\n * });\n */\nfunction Geometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"options.attributes\", options.attributes);\n //>>includeEnd('debug');\n\n /**\n * Attributes, which make up the geometry's vertices. Each property in this object corresponds to a\n * {@link GeometryAttribute} containing the attribute's data.\n * <p>\n * Attributes are always stored non-interleaved in a Geometry.\n * </p>\n * <p>\n * There are reserved attribute names with well-known semantics. The following attributes\n * are created by a Geometry (depending on the provided {@link VertexFormat}.\n * <ul>\n * <li><code>position</code> - 3D vertex position. 64-bit floating-point (for precision). 3 components per attribute. See {@link VertexFormat#position}.</li>\n * <li><code>normal</code> - Normal (normalized), commonly used for lighting. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#normal}.</li>\n * <li><code>st</code> - 2D texture coordinate. 32-bit floating-point. 2 components per attribute. See {@link VertexFormat#st}.</li>\n * <li><code>bitangent</code> - Bitangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#bitangent}.</li>\n * <li><code>tangent</code> - Tangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#tangent}.</li>\n * </ul>\n * </p>\n * <p>\n * The following attribute names are generally not created by a Geometry, but are added\n * to a Geometry by a {@link Primitive} or {@link GeometryPipeline} functions to prepare\n * the geometry for rendering.\n * <ul>\n * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position3DLow</code> - Low 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position2DLow</code> - Low 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>color</code> - RGBA color (normalized) usually from {@link GeometryInstance#color}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>pickColor</code> - RGBA color used for picking. 32-bit floating-point. 4 components per attribute.</li>\n * </ul>\n * </p>\n *\n * @type GeometryAttributes\n *\n * @default undefined\n *\n *\n * @example\n * geometry.attributes.position = new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.FLOAT,\n * componentsPerAttribute : 3,\n * values : new Float32Array(0)\n * });\n *\n * @see GeometryAttribute\n * @see VertexFormat\n */\n this.attributes = options.attributes;\n\n /**\n * Optional index data that - along with {@link Geometry#primitiveType} -\n * determines the primitives in the geometry.\n *\n * @type Array\n *\n * @default undefined\n */\n this.indices = options.indices;\n\n /**\n * The type of primitives in the geometry. This is most often {@link PrimitiveType.TRIANGLES},\n * but can varying based on the specific geometry.\n *\n * @type PrimitiveType\n *\n * @default undefined\n */\n this.primitiveType = defaultValue(\n options.primitiveType,\n PrimitiveType.TRIANGLES\n );\n\n /**\n * An optional bounding sphere that fully encloses the geometry. This is\n * commonly used for culling.\n *\n * @type BoundingSphere\n *\n * @default undefined\n */\n this.boundingSphere = options.boundingSphere;\n\n /**\n * @private\n */\n this.geometryType = defaultValue(options.geometryType, GeometryType.NONE);\n\n /**\n * @private\n */\n this.boundingSphereCV = options.boundingSphereCV;\n\n /**\n * Used for computing the bounding sphere for geometry using the applyOffset vertex attribute\n * @private\n */\n this.offsetAttribute = options.offsetAttribute;\n}\n\n/**\n * Computes the number of vertices in a geometry. The runtime is linear with\n * respect to the number of attributes in a vertex, not the number of vertices.\n *\n * @param {Geometry} geometry The geometry.\n * @returns {Number} The number of vertices in the geometry.\n *\n * @example\n * const numVertices = Cesium.Geometry.computeNumberOfVertices(geometry);\n */\nGeometry.computeNumberOfVertices = function (geometry) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"geometry\", geometry);\n //>>includeEnd('debug');\n\n let numberOfVertices = -1;\n for (const property in geometry.attributes) {\n if (\n geometry.attributes.hasOwnProperty(property) &&\n defined(geometry.attributes[property]) &&\n defined(geometry.attributes[property].values)\n ) {\n const attribute = geometry.attributes[property];\n const num = attribute.values.length / attribute.componentsPerAttribute;\n //>>includeStart('debug', pragmas.debug);\n if (numberOfVertices !== num && numberOfVertices !== -1) {\n throw new DeveloperError(\n \"All attribute lists must have the same number of attributes.\"\n );\n }\n //>>includeEnd('debug');\n numberOfVertices = num;\n }\n }\n\n return numberOfVertices;\n};\n\nconst rectangleCenterScratch = new Cartographic();\nconst enuCenterScratch = new Cartesian3();\nconst fixedFrameToEnuScratch = new Matrix4();\nconst boundingRectanglePointsCartographicScratch = [\n new Cartographic(),\n new Cartographic(),\n new Cartographic(),\n];\nconst boundingRectanglePointsEnuScratch = [\n new Cartesian2(),\n new Cartesian2(),\n new Cartesian2(),\n];\nconst points2DScratch = [new Cartesian2(), new Cartesian2(), new Cartesian2()];\nconst pointEnuScratch = new Cartesian3();\nconst enuRotationScratch = new Quaternion();\nconst enuRotationMatrixScratch = new Matrix4();\nconst rotation2DScratch = new Matrix2();\n\n/**\n * For remapping texture coordinates when rendering GroundPrimitives with materials.\n * GroundPrimitive texture coordinates are computed to align with the cartographic coordinate system on the globe.\n * However, EllipseGeometry, RectangleGeometry, and PolygonGeometry all bake rotations to per-vertex texture coordinates\n * using different strategies.\n *\n * This method is used by EllipseGeometry and PolygonGeometry to approximate the same visual effect.\n * We encapsulate rotation and scale by computing a \"transformed\" texture coordinate system and computing\n * a set of reference points from which \"cartographic\" texture coordinates can be remapped to the \"transformed\"\n * system using distances to lines in 2D.\n *\n * This approximation becomes less accurate as the covered area increases, especially for GroundPrimitives near the poles,\n * but is generally reasonable for polygons and ellipses around the size of USA states.\n *\n * RectangleGeometry has its own version of this method that computes remapping coordinates using cartographic space\n * as an intermediary instead of local ENU, which is more accurate for large-area rectangles.\n *\n * @param {Cartesian3[]} positions Array of positions outlining the geometry\n * @param {Number} stRotation Texture coordinate rotation.\n * @param {Ellipsoid} ellipsoid Ellipsoid for projecting and generating local vectors.\n * @param {Rectangle} boundingRectangle Bounding rectangle around the positions.\n * @returns {Number[]} An array of 6 numbers specifying [minimum point, u extent, v extent] as points in the \"cartographic\" system.\n * @private\n */\nGeometry._textureCoordinateRotationPoints = function (\n positions,\n stRotation,\n ellipsoid,\n boundingRectangle\n) {\n let i;\n\n // Create a local east-north-up coordinate system centered on the polygon's bounding rectangle.\n // Project the southwest, northwest, and southeast corners of the bounding rectangle into the plane of ENU as 2D points.\n // These are the equivalents of (0,0), (0,1), and (1,0) in the texture coordiante system computed in ShadowVolumeAppearanceFS,\n // aka \"ENU texture space.\"\n const rectangleCenter = Rectangle.center(\n boundingRectangle,\n rectangleCenterScratch\n );\n const enuCenter = Cartographic.toCartesian(\n rectangleCenter,\n ellipsoid,\n enuCenterScratch\n );\n const enuToFixedFrame = Transforms.eastNorthUpToFixedFrame(\n enuCenter,\n ellipsoid,\n fixedFrameToEnuScratch\n );\n const fixedFrameToEnu = Matrix4.inverse(\n enuToFixedFrame,\n fixedFrameToEnuScratch\n );\n\n const boundingPointsEnu = boundingRectanglePointsEnuScratch;\n const boundingPointsCarto = boundingRectanglePointsCartographicScratch;\n\n boundingPointsCarto[0].longitude = boundingRectangle.west;\n boundingPointsCarto[0].latitude = boundingRectangle.south;\n\n boundingPointsCarto[1].longitude = boundingRectangle.west;\n boundingPointsCarto[1].latitude = boundingRectangle.north;\n\n boundingPointsCarto[2].longitude = boundingRectangle.east;\n boundingPointsCarto[2].latitude = boundingRectangle.south;\n\n let posEnu = pointEnuScratch;\n\n for (i = 0; i < 3; i++) {\n Cartographic.toCartesian(boundingPointsCarto[i], ellipsoid, posEnu);\n posEnu = Matrix4.multiplyByPointAsVector(fixedFrameToEnu, posEnu, posEnu);\n boundingPointsEnu[i].x = posEnu.x;\n boundingPointsEnu[i].y = posEnu.y;\n }\n\n // Rotate each point in the polygon around the up vector in the ENU by -stRotation and project into ENU as 2D.\n // Compute the bounding box of these rotated points in the 2D ENU plane.\n // Rotate the corners back by stRotation, then compute their equivalents in the ENU texture space using the corners computed earlier.\n const rotation = Quaternion.fromAxisAngle(\n Cartesian3.UNIT_Z,\n -stRotation,\n enuRotationScratch\n );\n const textureMatrix = Matrix3.fromQuaternion(\n rotation,\n enuRotationMatrixScratch\n );\n\n const positionsLength = positions.length;\n let enuMinX = Number.POSITIVE_INFINITY;\n let enuMinY = Number.POSITIVE_INFINITY;\n let enuMaxX = Number.NEGATIVE_INFINITY;\n let enuMaxY = Number.NEGATIVE_INFINITY;\n for (i = 0; i < positionsLength; i++) {\n posEnu = Matrix4.multiplyByPointAsVector(\n fixedFrameToEnu,\n positions[i],\n posEnu\n );\n posEnu = Matrix3.multiplyByVector(textureMatrix, posEnu, posEnu);\n\n enuMinX = Math.min(enuMinX, posEnu.x);\n enuMinY = Math.min(enuMinY, posEnu.y);\n enuMaxX = Math.max(enuMaxX, posEnu.x);\n enuMaxY = Math.max(enuMaxY, posEnu.y);\n }\n\n const toDesiredInComputed = Matrix2.fromRotation(\n stRotation,\n rotation2DScratch\n );\n\n const points2D = points2DScratch;\n points2D[0].x = enuMinX;\n points2D[0].y = enuMinY;\n\n points2D[1].x = enuMinX;\n points2D[1].y = enuMaxY;\n\n points2D[2].x = enuMaxX;\n points2D[2].y = enuMinY;\n\n const boundingEnuMin = boundingPointsEnu[0];\n const boundingPointsWidth = boundingPointsEnu[2].x - boundingEnuMin.x;\n const boundingPointsHeight = boundingPointsEnu[1].y - boundingEnuMin.y;\n\n for (i = 0; i < 3; i++) {\n const point2D = points2D[i];\n // rotate back\n Matrix2.multiplyByVector(toDesiredInComputed, point2D, point2D);\n\n // Convert point into east-north texture coordinate space\n point2D.x = (point2D.x - boundingEnuMin.x) / boundingPointsWidth;\n point2D.y = (point2D.y - boundingEnuMin.y) / boundingPointsHeight;\n }\n\n const minXYCorner = points2D[0];\n const maxYCorner = points2D[1];\n const maxXCorner = points2D[2];\n const result = new Array(6);\n Cartesian2.pack(minXYCorner, result);\n Cartesian2.pack(maxYCorner, result, 2);\n Cartesian2.pack(maxXCorner, result, 4);\n\n return result;\n};\nexport default Geometry;\n","import defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\n\n/**\n * Values and type information for geometry attributes. A {@link Geometry}\n * generally contains one or more attributes. All attributes together form\n * the geometry's vertices.\n *\n * @alias GeometryAttribute\n * @constructor\n *\n * @param {Object} [options] Object with the following properties:\n * @param {ComponentDatatype} [options.componentDatatype] The datatype of each component in the attribute, e.g., individual elements in values.\n * @param {Number} [options.componentsPerAttribute] A number between 1 and 4 that defines the number of components in an attributes.\n * @param {Boolean} [options.normalize=false] When <code>true</code> and <code>componentDatatype</code> is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.\n * @param {number[]|Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|Float64Array} [options.values] The values for the attributes stored in a typed array.\n *\n * @exception {DeveloperError} options.componentsPerAttribute must be between 1 and 4.\n *\n *\n * @example\n * const geometry = new Cesium.Geometry({\n * attributes : {\n * position : new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.FLOAT,\n * componentsPerAttribute : 3,\n * values : new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ])\n * })\n * },\n * primitiveType : Cesium.PrimitiveType.LINE_LOOP\n * });\n *\n * @see Geometry\n */\nfunction GeometryAttribute(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n //>>includeStart('debug', pragmas.debug);\n if (!defined(options.componentDatatype)) {\n throw new DeveloperError(\"options.componentDatatype is required.\");\n }\n if (!defined(options.componentsPerAttribute)) {\n throw new DeveloperError(\"options.componentsPerAttribute is required.\");\n }\n if (\n options.componentsPerAttribute < 1 ||\n options.componentsPerAttribute > 4\n ) {\n throw new DeveloperError(\n \"options.componentsPerAttribute must be between 1 and 4.\"\n );\n }\n if (!defined(options.values)) {\n throw new DeveloperError(\"options.values is required.\");\n }\n //>>includeEnd('debug');\n\n /**\n * The datatype of each component in the attribute, e.g., individual elements in\n * {@link GeometryAttribute#values}.\n *\n * @type ComponentDatatype\n *\n * @default undefined\n */\n this.componentDatatype = options.componentDatatype;\n\n /**\n * A number between 1 and 4 that defines the number of components in an attributes.\n * For example, a position attribute with x, y, and z components would have 3 as\n * shown in the code example.\n *\n * @type Number\n *\n * @default undefined\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.FLOAT;\n * attribute.componentsPerAttribute = 3;\n * attribute.values = new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n */\n this.componentsPerAttribute = options.componentsPerAttribute;\n\n /**\n * When <code>true</code> and <code>componentDatatype</code> is an integer format,\n * indicate that the components should be mapped to the range [0, 1] (unsigned)\n * or [-1, 1] (signed) when they are accessed as floating-point for rendering.\n * <p>\n * This is commonly used when storing colors using {@link ComponentDatatype.UNSIGNED_BYTE}.\n * </p>\n *\n * @type Boolean\n *\n * @default false\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.UNSIGNED_BYTE;\n * attribute.componentsPerAttribute = 4;\n * attribute.normalize = true;\n * attribute.values = new Uint8Array([\n * Cesium.Color.floatToByte(color.red),\n * Cesium.Color.floatToByte(color.green),\n * Cesium.Color.floatToByte(color.blue),\n * Cesium.Color.floatToByte(color.alpha)\n * ]);\n */\n this.normalize = defaultValue(options.normalize, false);\n\n /**\n * The values for the attributes stored in a typed array. In the code example,\n * every three elements in <code>values</code> defines one attributes since\n * <code>componentsPerAttribute</code> is 3.\n *\n * @type {number[]|Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|Float64Array}\n *\n * @default undefined\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.FLOAT;\n * attribute.componentsPerAttribute = 3;\n * attribute.values = new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n */\n this.values = options.values;\n}\nexport default GeometryAttribute;\n"],"names":["WebGLConstants","defaultValue","Check","PrimitiveType","GeometryType","defined","DeveloperError","Cartographic","Cartesian3","Matrix4","Cartesian2","Quaternion","Matrix2","Rectangle","Transforms","Matrix3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA,MAAM,YAAY,GAAG;EACrB,EAAE,IAAI,EAAE,CAAC;EACT,EAAE,SAAS,EAAE,CAAC;EACd,EAAE,KAAK,EAAE,CAAC;EACV,EAAE,SAAS,EAAE,CAAC;EACd,CAAC,CAAC;AACF,uBAAe,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;;ECP1C;EACA;EACA;EACA;EACA;EACA,MAAM,aAAa,GAAG;EACtB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAEA,6BAAc,CAAC,MAAM;AAC/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAEA,6BAAc,CAAC,KAAK;AAC7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAEA,6BAAc,CAAC,SAAS;AACrC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAEA,6BAAc,CAAC,UAAU;AACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAEA,6BAAc,CAAC,SAAS;AACrC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,cAAc,EAAEA,6BAAc,CAAC,cAAc;AAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAEA,6BAAc,CAAC,YAAY;EAC3C,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA,aAAa,CAAC,QAAQ,GAAG,UAAU,aAAa,EAAE;EAClD,EAAE;EACF,IAAI,aAAa,KAAK,aAAa,CAAC,MAAM;EAC1C,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK;EACzC,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS;EAC7C,IAAI,aAAa,KAAK,aAAa,CAAC,UAAU;EAC9C,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS;EAC7C,IAAI,aAAa,KAAK,aAAa,CAAC,cAAc;EAClD,IAAI,aAAa,KAAK,aAAa,CAAC,YAAY;EAChD,IAAI;EACJ,CAAC,CAAC;AACF;AACA,wBAAe,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;ECpE3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE;EAC3B,EAAE,OAAO,GAAGC,iBAAY,CAAC,OAAO,EAAEA,iBAAY,CAAC,YAAY,CAAC,CAAC;AAC7D;EACA;EACA,EAAEC,kBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;EAChE;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,aAAa,GAAGD,iBAAY;EACnC,IAAI,OAAO,CAAC,aAAa;EACzB,IAAIE,eAAa,CAAC,SAAS;EAC3B,GAAG,CAAC;AACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,YAAY,GAAGF,iBAAY,CAAC,OAAO,CAAC,YAAY,EAAEG,cAAY,CAAC,IAAI,CAAC,CAAC;AAC5E;EACA;EAC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"} |