{"version":3,"file":"createVectorTilePolylines.js","sources":["../../../../Source/Core/decodeVectorPolylinePositions.js","../../../../Source/WorkersES6/createVectorTilePolylines.js"],"sourcesContent":["import AttributeCompression from \"./AttributeCompression.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport CesiumMath from \"./Math.js\";\n\nconst maxShort = 32767;\n\nconst scratchBVCartographic = new Cartographic();\nconst scratchEncodedPosition = new Cartesian3();\n\nfunction decodeVectorPolylinePositions(\n positions,\n rectangle,\n minimumHeight,\n maximumHeight,\n ellipsoid\n) {\n const positionsLength = positions.length / 3;\n const uBuffer = positions.subarray(0, positionsLength);\n const vBuffer = positions.subarray(positionsLength, 2 * positionsLength);\n const heightBuffer = positions.subarray(\n 2 * positionsLength,\n 3 * positionsLength\n );\n AttributeCompression.zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);\n\n const decoded = new Float64Array(positions.length);\n for (let i = 0; i < positionsLength; ++i) {\n const u = uBuffer[i];\n const v = vBuffer[i];\n const h = heightBuffer[i];\n\n const lon = CesiumMath.lerp(rectangle.west, rectangle.east, u / maxShort);\n const lat = CesiumMath.lerp(rectangle.south, rectangle.north, v / maxShort);\n const alt = CesiumMath.lerp(minimumHeight, maximumHeight, h / maxShort);\n\n const cartographic = Cartographic.fromRadians(\n lon,\n lat,\n alt,\n scratchBVCartographic\n );\n const decodedPosition = ellipsoid.cartographicToCartesian(\n cartographic,\n scratchEncodedPosition\n );\n Cartesian3.pack(decodedPosition, decoded, i * 3);\n }\n return decoded;\n}\nexport default decodeVectorPolylinePositions;\n","import Cartesian3 from \"../Core/Cartesian3.js\";\nimport combine from \"../Core/combine.js\";\nimport decodeVectorPolylinePositions from \"../Core/decodeVectorPolylinePositions.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\nimport IndexDatatype from \"../Core/IndexDatatype.js\";\nimport Rectangle from \"../Core/Rectangle.js\";\nimport createTaskProcessorWorker from \"./createTaskProcessorWorker.js\";\n\nconst scratchRectangle = new Rectangle();\nconst scratchEllipsoid = new Ellipsoid();\nconst scratchCenter = new Cartesian3();\nconst scratchMinMaxHeights = {\n min: undefined,\n max: undefined,\n};\n\nfunction unpackBuffer(packedBuffer) {\n packedBuffer = new Float64Array(packedBuffer);\n\n let offset = 0;\n scratchMinMaxHeights.min = packedBuffer[offset++];\n scratchMinMaxHeights.max = packedBuffer[offset++];\n\n Rectangle.unpack(packedBuffer, offset, scratchRectangle);\n offset += Rectangle.packedLength;\n\n Ellipsoid.unpack(packedBuffer, offset, scratchEllipsoid);\n offset += Ellipsoid.packedLength;\n\n Cartesian3.unpack(packedBuffer, offset, scratchCenter);\n}\n\nfunction getPositionOffsets(counts) {\n const countsLength = counts.length;\n const positionOffsets = new Uint32Array(countsLength + 1);\n let offset = 0;\n for (let i = 0; i < countsLength; ++i) {\n positionOffsets[i] = offset;\n offset += counts[i];\n }\n positionOffsets[countsLength] = offset;\n return positionOffsets;\n}\n\nconst scratchP0 = new Cartesian3();\nconst scratchP1 = new Cartesian3();\nconst scratchPrev = new Cartesian3();\nconst scratchCur = new Cartesian3();\nconst scratchNext = new Cartesian3();\n\nfunction createVectorTilePolylines(parameters, transferableObjects) {\n const encodedPositions = new Uint16Array(parameters.positions);\n const widths = new Uint16Array(parameters.widths);\n const counts = new Uint32Array(parameters.counts);\n const batchIds = new Uint16Array(parameters.batchIds);\n\n unpackBuffer(parameters.packedBuffer);\n const rectangle = scratchRectangle;\n const ellipsoid = scratchEllipsoid;\n const center = scratchCenter;\n const minimumHeight = scratchMinMaxHeights.min;\n const maximumHeight = scratchMinMaxHeights.max;\n\n const positions = decodeVectorPolylinePositions(\n encodedPositions,\n rectangle,\n minimumHeight,\n maximumHeight,\n ellipsoid\n );\n\n const positionsLength = positions.length / 3;\n const size = positionsLength * 4 - 4;\n\n const curPositions = new Float32Array(size * 3);\n const prevPositions = new Float32Array(size * 3);\n const nextPositions = new Float32Array(size * 3);\n const expandAndWidth = new Float32Array(size * 2);\n const vertexBatchIds = new Uint16Array(size);\n\n let positionIndex = 0;\n let expandAndWidthIndex = 0;\n let batchIdIndex = 0;\n\n let i;\n let offset = 0;\n let length = counts.length;\n\n for (i = 0; i < length; ++i) {\n const count = counts[i];\n const width = widths[i];\n const batchId = batchIds[i];\n\n for (let j = 0; j < count; ++j) {\n let previous;\n if (j === 0) {\n const p0 = Cartesian3.unpack(positions, offset * 3, scratchP0);\n const p1 = Cartesian3.unpack(positions, (offset + 1) * 3, scratchP1);\n\n previous = Cartesian3.subtract(p0, p1, scratchPrev);\n Cartesian3.add(p0, previous, previous);\n } else {\n previous = Cartesian3.unpack(\n positions,\n (offset + j - 1) * 3,\n scratchPrev\n );\n }\n\n const current = Cartesian3.unpack(\n positions,\n (offset + j) * 3,\n scratchCur\n );\n\n let next;\n if (j === count - 1) {\n const p2 = Cartesian3.unpack(\n positions,\n (offset + count - 1) * 3,\n scratchP0\n );\n const p3 = Cartesian3.unpack(\n positions,\n (offset + count - 2) * 3,\n scratchP1\n );\n\n next = Cartesian3.subtract(p2, p3, scratchNext);\n Cartesian3.add(p2, next, next);\n } else {\n next = Cartesian3.unpack(positions, (offset + j + 1) * 3, scratchNext);\n }\n\n Cartesian3.subtract(previous, center, previous);\n Cartesian3.subtract(current, center, current);\n Cartesian3.subtract(next, center, next);\n\n const startK = j === 0 ? 2 : 0;\n const endK = j === count - 1 ? 2 : 4;\n\n for (let k = startK; k < endK; ++k) {\n Cartesian3.pack(current, curPositions, positionIndex);\n Cartesian3.pack(previous, prevPositions, positionIndex);\n Cartesian3.pack(next, nextPositions, positionIndex);\n positionIndex += 3;\n\n const direction = k - 2 < 0 ? -1.0 : 1.0;\n expandAndWidth[expandAndWidthIndex++] = 2 * (k % 2) - 1;\n expandAndWidth[expandAndWidthIndex++] = direction * width;\n\n vertexBatchIds[batchIdIndex++] = batchId;\n }\n }\n\n offset += count;\n }\n\n const indices = IndexDatatype.createTypedArray(size, positionsLength * 6 - 6);\n let index = 0;\n let indicesIndex = 0;\n length = positionsLength - 1;\n for (i = 0; i < length; ++i) {\n indices[indicesIndex++] = index;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 1;\n\n indices[indicesIndex++] = index + 1;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 3;\n\n index += 4;\n }\n\n transferableObjects.push(\n curPositions.buffer,\n prevPositions.buffer,\n nextPositions.buffer\n );\n transferableObjects.push(\n expandAndWidth.buffer,\n vertexBatchIds.buffer,\n indices.buffer\n );\n\n let results = {\n indexDatatype:\n indices.BYTES_PER_ELEMENT === 2\n ? IndexDatatype.UNSIGNED_SHORT\n : IndexDatatype.UNSIGNED_INT,\n currentPositions: curPositions.buffer,\n previousPositions: prevPositions.buffer,\n nextPositions: nextPositions.buffer,\n expandAndWidth: expandAndWidth.buffer,\n batchIds: vertexBatchIds.buffer,\n indices: indices.buffer,\n };\n\n if (parameters.keepDecodedPositions) {\n const positionOffsets = getPositionOffsets(counts);\n transferableObjects.push(positions.buffer, positionOffsets.buffer);\n results = combine(results, {\n decodedPositions: positions.buffer,\n decodedPositionOffsets: positionOffsets.buffer,\n });\n }\n\n return results;\n}\nexport default createTaskProcessorWorker(createVectorTilePolylines);\n"],"names":["Cartographic","Cartesian3","AttributeCompression","CesiumMath","Rectangle","Ellipsoid","IndexDatatype","combine"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB;EACA,MAAM,qBAAqB,GAAG,IAAIA,oBAAY,EAAE,CAAC;EACjD,MAAM,sBAAsB,GAAG,IAAIC,kBAAU,EAAE,CAAC;AAChD;EACA,SAAS,6BAA6B;EACtC,EAAE,SAAS;EACX,EAAE,SAAS;EACX,EAAE,aAAa;EACf,EAAE,aAAa;EACf,EAAE,SAAS;EACX,EAAE;EACF,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;EAC/C,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;EACzD,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;EAC3E,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ;EACzC,IAAI,CAAC,GAAG,eAAe;EACvB,IAAI,CAAC,GAAG,eAAe;EACvB,GAAG,CAAC;EACJ,EAAEC,yCAAoB,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACzE;EACA,EAAE,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;EACrD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,EAAE,CAAC,EAAE;EAC5C,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EACzB,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EACzB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9B;EACA,IAAI,MAAM,GAAG,GAAGC,4BAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;EAC9E,IAAI,MAAM,GAAG,GAAGA,4BAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;EAChF,IAAI,MAAM,GAAG,GAAGA,4BAAU,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC5E;EACA,IAAI,MAAM,YAAY,GAAGH,oBAAY,CAAC,WAAW;EACjD,MAAM,GAAG;EACT,MAAM,GAAG;EACT,MAAM,GAAG;EACT,MAAM,qBAAqB;EAC3B,KAAK,CAAC;EACN,IAAI,MAAM,eAAe,GAAG,SAAS,CAAC,uBAAuB;EAC7D,MAAM,YAAY;EAClB,MAAM,sBAAsB;EAC5B,KAAK,CAAC;EACN,IAAIC,kBAAU,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;EACrD,GAAG;EACH,EAAE,OAAO,OAAO,CAAC;EACjB;;ECzCA,MAAM,gBAAgB,GAAG,IAAIG,iBAAS,EAAE,CAAC;EACzC,MAAM,gBAAgB,GAAG,IAAIC,iBAAS,EAAE,CAAC;EACzC,MAAM,aAAa,GAAG,IAAIJ,kBAAU,EAAE,CAAC;EACvC,MAAM,oBAAoB,GAAG;EAC7B,EAAE,GAAG,EAAE,SAAS;EAChB,EAAE,GAAG,EAAE,SAAS;EAChB,CAAC,CAAC;AACF;EACA,SAAS,YAAY,CAAC,YAAY,EAAE;EACpC,EAAE,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;AAChD;EACA,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,oBAAoB,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;EACpD,EAAE,oBAAoB,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD;EACA,EAAEG,iBAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;EAC3D,EAAE,MAAM,IAAIA,iBAAS,CAAC,YAAY,CAAC;AACnC;EACA,EAAEC,iBAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;EAC3D,EAAE,MAAM,IAAIA,iBAAS,CAAC,YAAY,CAAC;AACnC;EACA,EAAEJ,kBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EACzD,CAAC;AACD;EACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;EACpC,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;EACrC,EAAE,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;EAC5D,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,EAAE;EACzC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;EAChC,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;EACxB,GAAG;EACH,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;EACzC,EAAE,OAAO,eAAe,CAAC;EACzB,CAAC;AACD;EACA,MAAM,SAAS,GAAG,IAAIA,kBAAU,EAAE,CAAC;EACnC,MAAM,SAAS,GAAG,IAAIA,kBAAU,EAAE,CAAC;EACnC,MAAM,WAAW,GAAG,IAAIA,kBAAU,EAAE,CAAC;EACrC,MAAM,UAAU,GAAG,IAAIA,kBAAU,EAAE,CAAC;EACpC,MAAM,WAAW,GAAG,IAAIA,kBAAU,EAAE,CAAC;AACrC;EACA,SAAS,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,EAAE;EACpE,EAAE,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EACjE,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;EACpD,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;EACpD,EAAE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACxD;EACA,EAAE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;EACxC,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAAC;EACrC,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAAC;EACrC,EAAE,MAAM,MAAM,GAAG,aAAa,CAAC;EAC/B,EAAE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC;EACjD,EAAE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC;AACjD;EACA,EAAE,MAAM,SAAS,GAAG,6BAA6B;EACjD,IAAI,gBAAgB;EACpB,IAAI,SAAS;EACb,IAAI,aAAa;EACjB,IAAI,aAAa;EACjB,IAAI,SAAS;EACb,GAAG,CAAC;AACJ;EACA,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;EAC/C,EAAE,MAAM,IAAI,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC;EACA,EAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EAClD,EAAE,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EACnD,EAAE,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EACnD,EAAE,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EACpD,EAAE,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/C;EACA,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;EACxB,EAAE,IAAI,mBAAmB,GAAG,CAAC,CAAC;EAC9B,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;AACvB;EACA,EAAE,IAAI,CAAC,CAAC;EACR,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B;EACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5B,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;EACpC,MAAM,IAAI,QAAQ,CAAC;EACnB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;EACnB,QAAQ,MAAM,EAAE,GAAGA,kBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;EACvE,QAAQ,MAAM,EAAE,GAAGA,kBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7E;EACA,QAAQ,QAAQ,GAAGA,kBAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;EAC5D,QAAQA,kBAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAC/C,OAAO,MAAM;EACb,QAAQ,QAAQ,GAAGA,kBAAU,CAAC,MAAM;EACpC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;EAC9B,UAAU,WAAW;EACrB,SAAS,CAAC;EACV,OAAO;AACP;EACA,MAAM,MAAM,OAAO,GAAGA,kBAAU,CAAC,MAAM;EACvC,QAAQ,SAAS;EACjB,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;EACxB,QAAQ,UAAU;EAClB,OAAO,CAAC;AACR;EACA,MAAM,IAAI,IAAI,CAAC;EACf,MAAM,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE;EAC3B,QAAQ,MAAM,EAAE,GAAGA,kBAAU,CAAC,MAAM;EACpC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;EAClC,UAAU,SAAS;EACnB,SAAS,CAAC;EACV,QAAQ,MAAM,EAAE,GAAGA,kBAAU,CAAC,MAAM;EACpC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;EAClC,UAAU,SAAS;EACnB,SAAS,CAAC;AACV;EACA,QAAQ,IAAI,GAAGA,kBAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;EACxD,QAAQA,kBAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACvC,OAAO,MAAM;EACb,QAAQ,IAAI,GAAGA,kBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;EAC/E,OAAO;AACP;EACA,MAAMA,kBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EACtD,MAAMA,kBAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;EACpD,MAAMA,kBAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C;EACA,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EACrC,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C;EACA,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;EAC1C,QAAQA,kBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;EAC9D,QAAQA,kBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;EAChE,QAAQA,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;EAC5D,QAAQ,aAAa,IAAI,CAAC,CAAC;AAC3B;EACA,QAAQ,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;EACjD,QAAQ,cAAc,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EAChE,QAAQ,cAAc,CAAC,mBAAmB,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;AAClE;EACA,QAAQ,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC;EACjD,OAAO;EACP,KAAK;AACL;EACA,IAAI,MAAM,IAAI,KAAK,CAAC;EACpB,GAAG;AACH;EACA,EAAE,MAAM,OAAO,GAAGK,2BAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAChF,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;EAChB,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;EACvB,EAAE,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;EAC/B,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;EACpC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC;EACA,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC;EACA,IAAI,KAAK,IAAI,CAAC,CAAC;EACf,GAAG;AACH;EACA,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,YAAY,CAAC,MAAM;EACvB,IAAI,aAAa,CAAC,MAAM;EACxB,IAAI,aAAa,CAAC,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,cAAc,CAAC,MAAM;EACzB,IAAI,cAAc,CAAC,MAAM;EACzB,IAAI,OAAO,CAAC,MAAM;EAClB,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,OAAO,GAAG;EAChB,IAAI,aAAa;EACjB,MAAM,OAAO,CAAC,iBAAiB,KAAK,CAAC;EACrC,UAAUA,2BAAa,CAAC,cAAc;EACtC,UAAUA,2BAAa,CAAC,YAAY;EACpC,IAAI,gBAAgB,EAAE,YAAY,CAAC,MAAM;EACzC,IAAI,iBAAiB,EAAE,aAAa,CAAC,MAAM;EAC3C,IAAI,aAAa,EAAE,aAAa,CAAC,MAAM;EACvC,IAAI,cAAc,EAAE,cAAc,CAAC,MAAM;EACzC,IAAI,QAAQ,EAAE,cAAc,CAAC,MAAM;EACnC,IAAI,OAAO,EAAE,OAAO,CAAC,MAAM;EAC3B,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,UAAU,CAAC,oBAAoB,EAAE;EACvC,IAAI,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;EACvD,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;EACvE,IAAI,OAAO,GAAGC,eAAO,CAAC,OAAO,EAAE;EAC/B,MAAM,gBAAgB,EAAE,SAAS,CAAC,MAAM;EACxC,MAAM,sBAAsB,EAAE,eAAe,CAAC,MAAM;EACpD,KAAK,CAAC,CAAC;EACP,GAAG;AACH;EACA,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;AACD,oCAAe,yBAAyB,CAAC,yBAAyB,CAAC;;;;;;;;"}