@versatiles/svg-renderer 0.8.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/@maplibre/maplibre-gl-style-spec/dist/index.mjs","../src/renderer/color.ts","../src/renderer/svg_path.ts","../src/renderer/svg.ts","../src/geometry.ts","../src/sources/tiles.ts","../node_modules/@mapbox/point-geometry/index.js","../node_modules/@mapbox/vector-tile/index.js","../node_modules/pbf/index.js","../src/sources/vector.ts","../src/sources/geojson.ts","../src/sources/raster.ts","../src/sources/sprite.ts","../src/sources/index.ts","../src/pipeline/style_layer.ts","../src/pipeline/render.ts","../src/index.ts"],"sourcesContent":["//#region src/reference/v8.json\nvar v8_default = {\n\t$version: 8,\n\t$root: {\n\t\t\"version\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": [8]\n\t\t},\n\t\t\"name\": { \"type\": \"string\" },\n\t\t\"metadata\": { \"type\": \"*\" },\n\t\t\"center\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2\n\t\t},\n\t\t\"centerAltitude\": { \"type\": \"number\" },\n\t\t\"zoom\": { \"type\": \"number\" },\n\t\t\"bearing\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"period\": 360,\n\t\t\t\"units\": \"degrees\"\n\t\t},\n\t\t\"pitch\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"units\": \"degrees\"\n\t\t},\n\t\t\"roll\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"units\": \"degrees\"\n\t\t},\n\t\t\"state\": {\n\t\t\t\"type\": \"state\",\n\t\t\t\"default\": {}\n\t\t},\n\t\t\"light\": { \"type\": \"light\" },\n\t\t\"sky\": { \"type\": \"sky\" },\n\t\t\"projection\": { \"type\": \"projection\" },\n\t\t\"terrain\": { \"type\": \"terrain\" },\n\t\t\"sources\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"sources\"\n\t\t},\n\t\t\"sprite\": { \"type\": \"sprite\" },\n\t\t\"glyphs\": { \"type\": \"string\" },\n\t\t\"font-faces\": { \"type\": \"fontFaces\" },\n\t\t\"transition\": { \"type\": \"transition\" },\n\t\t\"layers\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"layer\"\n\t\t}\n\t},\n\tsources: { \"*\": { \"type\": \"source\" } },\n\tsource: [\n\t\t\"source_vector\",\n\t\t\"source_raster\",\n\t\t\"source_raster_dem\",\n\t\t\"source_geojson\",\n\t\t\"source_video\",\n\t\t\"source_image\"\n\t],\n\tsource_vector: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"vector\": {} }\n\t\t},\n\t\t\"url\": { \"type\": \"string\" },\n\t\t\"tiles\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"string\"\n\t\t},\n\t\t\"bounds\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 4,\n\t\t\t\"default\": [\n\t\t\t\t-180,\n\t\t\t\t-85.051129,\n\t\t\t\t180,\n\t\t\t\t85.051129\n\t\t\t]\n\t\t},\n\t\t\"scheme\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"xyz\": {},\n\t\t\t\t\"tms\": {}\n\t\t\t},\n\t\t\t\"default\": \"xyz\"\n\t\t},\n\t\t\"minzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"maxzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 22\n\t\t},\n\t\t\"attribution\": { \"type\": \"string\" },\n\t\t\"promoteId\": { \"type\": \"promoteId\" },\n\t\t\"volatile\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"encoding\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"mvt\": {},\n\t\t\t\t\"mlt\": {}\n\t\t\t},\n\t\t\t\"default\": \"mvt\"\n\t\t},\n\t\t\"*\": { \"type\": \"*\" }\n\t},\n\tsource_raster: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"raster\": {} }\n\t\t},\n\t\t\"url\": { \"type\": \"string\" },\n\t\t\"tiles\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"string\"\n\t\t},\n\t\t\"bounds\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 4,\n\t\t\t\"default\": [\n\t\t\t\t-180,\n\t\t\t\t-85.051129,\n\t\t\t\t180,\n\t\t\t\t85.051129\n\t\t\t]\n\t\t},\n\t\t\"minzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"maxzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 22\n\t\t},\n\t\t\"tileSize\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 512,\n\t\t\t\"units\": \"pixels\"\n\t\t},\n\t\t\"scheme\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"xyz\": {},\n\t\t\t\t\"tms\": {}\n\t\t\t},\n\t\t\t\"default\": \"xyz\"\n\t\t},\n\t\t\"attribution\": { \"type\": \"string\" },\n\t\t\"volatile\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"*\": { \"type\": \"*\" }\n\t},\n\tsource_raster_dem: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"raster-dem\": {} }\n\t\t},\n\t\t\"url\": { \"type\": \"string\" },\n\t\t\"tiles\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"string\"\n\t\t},\n\t\t\"bounds\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 4,\n\t\t\t\"default\": [\n\t\t\t\t-180,\n\t\t\t\t-85.051129,\n\t\t\t\t180,\n\t\t\t\t85.051129\n\t\t\t]\n\t\t},\n\t\t\"minzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"maxzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 22\n\t\t},\n\t\t\"tileSize\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 512,\n\t\t\t\"units\": \"pixels\"\n\t\t},\n\t\t\"attribution\": { \"type\": \"string\" },\n\t\t\"encoding\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"terrarium\": {},\n\t\t\t\t\"mapbox\": {},\n\t\t\t\t\"custom\": {}\n\t\t\t},\n\t\t\t\"default\": \"mapbox\"\n\t\t},\n\t\t\"redFactor\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1\n\t\t},\n\t\t\"blueFactor\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1\n\t\t},\n\t\t\"greenFactor\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1\n\t\t},\n\t\t\"baseShift\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"volatile\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"*\": { \"type\": \"*\" }\n\t},\n\tsource_geojson: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"geojson\": {} }\n\t\t},\n\t\t\"data\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"*\"\n\t\t},\n\t\t\"maxzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 18\n\t\t},\n\t\t\"attribution\": { \"type\": \"string\" },\n\t\t\"buffer\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 128,\n\t\t\t\"maximum\": 512,\n\t\t\t\"minimum\": 0\n\t\t},\n\t\t\"filter\": { \"type\": \"filter\" },\n\t\t\"tolerance\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": .375\n\t\t},\n\t\t\"cluster\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"clusterRadius\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 50,\n\t\t\t\"minimum\": 0\n\t\t},\n\t\t\"clusterMaxZoom\": { \"type\": \"number\" },\n\t\t\"clusterMinPoints\": { \"type\": \"number\" },\n\t\t\"clusterProperties\": { \"type\": \"*\" },\n\t\t\"lineMetrics\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"generateId\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"promoteId\": { \"type\": \"promoteId\" }\n\t},\n\tsource_video: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"video\": {} }\n\t\t},\n\t\t\"urls\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"string\"\n\t\t},\n\t\t\"coordinates\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"array\",\n\t\t\t\"length\": 4,\n\t\t\t\"value\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\t\"length\": 2,\n\t\t\t\t\"value\": \"number\"\n\t\t\t}\n\t\t}\n\t},\n\tsource_image: {\n\t\t\"type\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": { \"image\": {} }\n\t\t},\n\t\t\"url\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"coordinates\": {\n\t\t\t\"required\": true,\n\t\t\t\"type\": \"array\",\n\t\t\t\"length\": 4,\n\t\t\t\"value\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\t\"length\": 2,\n\t\t\t\t\"value\": \"number\"\n\t\t\t}\n\t\t}\n\t},\n\tlayer: {\n\t\t\"id\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"required\": true\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"fill\": {},\n\t\t\t\t\"line\": {},\n\t\t\t\t\"symbol\": {},\n\t\t\t\t\"circle\": {},\n\t\t\t\t\"heatmap\": {},\n\t\t\t\t\"fill-extrusion\": {},\n\t\t\t\t\"raster\": {},\n\t\t\t\t\"hillshade\": {},\n\t\t\t\t\"color-relief\": {},\n\t\t\t\t\"background\": {}\n\t\t\t},\n\t\t\t\"required\": true\n\t\t},\n\t\t\"metadata\": { \"type\": \"*\" },\n\t\t\"source\": { \"type\": \"string\" },\n\t\t\"source-layer\": { \"type\": \"string\" },\n\t\t\"minzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 24\n\t\t},\n\t\t\"maxzoom\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 24\n\t\t},\n\t\t\"filter\": { \"type\": \"filter\" },\n\t\t\"layout\": { \"type\": \"layout\" },\n\t\t\"paint\": { \"type\": \"paint\" }\n\t},\n\tlayout: [\n\t\t\"layout_fill\",\n\t\t\"layout_line\",\n\t\t\"layout_circle\",\n\t\t\"layout_heatmap\",\n\t\t\"layout_fill-extrusion\",\n\t\t\"layout_symbol\",\n\t\t\"layout_raster\",\n\t\t\"layout_hillshade\",\n\t\t\"layout_color-relief\",\n\t\t\"layout_background\"\n\t],\n\tlayout_background: { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\tlayout_fill: {\n\t\t\"fill-sort-key\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"visibility\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"visible\": {},\n\t\t\t\t\"none\": {}\n\t\t\t},\n\t\t\t\"default\": \"visible\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tlayout_circle: {\n\t\t\"circle-sort-key\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"visibility\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"visible\": {},\n\t\t\t\t\"none\": {}\n\t\t\t},\n\t\t\t\"default\": \"visible\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tlayout_heatmap: { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\t\"layout_fill-extrusion\": { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\tlayout_line: {\n\t\t\"line-cap\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"butt\": {},\n\t\t\t\t\"round\": {},\n\t\t\t\t\"square\": {}\n\t\t\t},\n\t\t\t\"default\": \"butt\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-join\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"bevel\": {},\n\t\t\t\t\"round\": {},\n\t\t\t\t\"miter\": {}\n\t\t\t},\n\t\t\t\"default\": \"miter\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-miter-limit\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2,\n\t\t\t\"requires\": [{ \"line-join\": \"miter\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-round-limit\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1.05,\n\t\t\t\"requires\": [{ \"line-join\": \"round\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-sort-key\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"visibility\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"visible\": {},\n\t\t\t\t\"none\": {}\n\t\t\t},\n\t\t\t\"default\": \"visible\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tlayout_symbol: {\n\t\t\"symbol-placement\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"point\": {},\n\t\t\t\t\"line\": {},\n\t\t\t\t\"line-center\": {}\n\t\t\t},\n\t\t\t\"default\": \"point\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"symbol-spacing\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 250,\n\t\t\t\"minimum\": 1,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [{ \"symbol-placement\": \"line\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"symbol-avoid-edges\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"symbol-sort-key\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"symbol-z-order\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"auto\": {},\n\t\t\t\t\"viewport-y\": {},\n\t\t\t\t\"source\": {}\n\t\t\t},\n\t\t\t\"default\": \"auto\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-allow-overlap\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"icon-image\", { \"!\": \"icon-overlap\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-overlap\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"never\": {},\n\t\t\t\t\"always\": {},\n\t\t\t\t\"cooperative\": {}\n\t\t\t},\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-ignore-placement\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-optional\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"icon-image\", \"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-rotation-alignment\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {},\n\t\t\t\t\"auto\": {}\n\t\t\t},\n\t\t\t\"default\": \"auto\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-size\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"factor of the original icon size\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-text-fit\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"none\": {},\n\t\t\t\t\"width\": {},\n\t\t\t\t\"height\": {},\n\t\t\t\t\"both\": {}\n\t\t\t},\n\t\t\t\"default\": \"none\",\n\t\t\t\"requires\": [\"icon-image\", \"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-text-fit-padding\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 4,\n\t\t\t\"default\": [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t],\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\n\t\t\t\t\"icon-image\",\n\t\t\t\t\"text-field\",\n\t\t\t\t{ \"icon-text-fit\": [\n\t\t\t\t\t\"both\",\n\t\t\t\t\t\"width\",\n\t\t\t\t\t\"height\"\n\t\t\t\t] }\n\t\t\t],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-image\": {\n\t\t\t\"type\": \"resolvedImage\",\n\t\t\t\"tokens\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-rotate\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"period\": 360,\n\t\t\t\"units\": \"degrees\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-padding\": {\n\t\t\t\"type\": \"padding\",\n\t\t\t\"default\": [2],\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-keep-upright\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\n\t\t\t\t\"icon-image\",\n\t\t\t\t{ \"icon-rotation-alignment\": \"map\" },\n\t\t\t\t{ \"symbol-placement\": [\"line\", \"line-center\"] }\n\t\t\t],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-offset\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"center\": {},\n\t\t\t\t\"left\": {},\n\t\t\t\t\"right\": {},\n\t\t\t\t\"top\": {},\n\t\t\t\t\"bottom\": {},\n\t\t\t\t\"top-left\": {},\n\t\t\t\t\"top-right\": {},\n\t\t\t\t\"bottom-left\": {},\n\t\t\t\t\"bottom-right\": {}\n\t\t\t},\n\t\t\t\"default\": \"center\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-pitch-alignment\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {},\n\t\t\t\t\"auto\": {}\n\t\t\t},\n\t\t\t\"default\": \"auto\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-pitch-alignment\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {},\n\t\t\t\t\"auto\": {}\n\t\t\t},\n\t\t\t\"default\": \"auto\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-rotation-alignment\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {},\n\t\t\t\t\"viewport-glyph\": {},\n\t\t\t\t\"auto\": {}\n\t\t\t},\n\t\t\t\"default\": \"auto\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-field\": {\n\t\t\t\"type\": \"formatted\",\n\t\t\t\"default\": \"\",\n\t\t\t\"tokens\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-font\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"string\",\n\t\t\t\"default\": [\"Open Sans Regular\", \"Arial Unicode MS Regular\"],\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-size\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 16,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-max-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 10,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"ems\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-line-height\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1.2,\n\t\t\t\"units\": \"ems\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-letter-spacing\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"units\": \"ems\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-justify\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"auto\": {},\n\t\t\t\t\"left\": {},\n\t\t\t\t\"center\": {},\n\t\t\t\t\"right\": {}\n\t\t\t},\n\t\t\t\"default\": \"center\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-radial-offset\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"units\": \"ems\",\n\t\t\t\"default\": 0,\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"property-type\": \"data-driven\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t}\n\t\t},\n\t\t\"text-variable-anchor\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"center\": {},\n\t\t\t\t\"left\": {},\n\t\t\t\t\"right\": {},\n\t\t\t\t\"top\": {},\n\t\t\t\t\"bottom\": {},\n\t\t\t\t\"top-left\": {},\n\t\t\t\t\"top-right\": {},\n\t\t\t\t\"bottom-left\": {},\n\t\t\t\t\"bottom-right\": {}\n\t\t\t},\n\t\t\t\"requires\": [\"text-field\", { \"symbol-placement\": [\"point\"] }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-variable-anchor-offset\": {\n\t\t\t\"type\": \"variableAnchorOffsetCollection\",\n\t\t\t\"requires\": [\"text-field\", { \"symbol-placement\": [\"point\"] }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"center\": {},\n\t\t\t\t\"left\": {},\n\t\t\t\t\"right\": {},\n\t\t\t\t\"top\": {},\n\t\t\t\t\"bottom\": {},\n\t\t\t\t\"top-left\": {},\n\t\t\t\t\"top-right\": {},\n\t\t\t\t\"bottom-left\": {},\n\t\t\t\t\"bottom-right\": {}\n\t\t\t},\n\t\t\t\"default\": \"center\",\n\t\t\t\"requires\": [\"text-field\", { \"!\": \"text-variable-anchor\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-max-angle\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 45,\n\t\t\t\"units\": \"degrees\",\n\t\t\t\"requires\": [\"text-field\", { \"symbol-placement\": [\"line\", \"line-center\"] }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-writing-mode\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"horizontal\": {},\n\t\t\t\t\"vertical\": {}\n\t\t\t},\n\t\t\t\"requires\": [\"text-field\", { \"symbol-placement\": [\"point\"] }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-rotate\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"period\": 360,\n\t\t\t\"units\": \"degrees\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-padding\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-keep-upright\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"requires\": [\n\t\t\t\t\"text-field\",\n\t\t\t\t{ \"text-rotation-alignment\": \"map\" },\n\t\t\t\t{ \"symbol-placement\": [\"line\", \"line-center\"] }\n\t\t\t],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-transform\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"none\": {},\n\t\t\t\t\"uppercase\": {},\n\t\t\t\t\"lowercase\": {}\n\t\t\t},\n\t\t\t\"default\": \"none\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-offset\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"units\": \"ems\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"requires\": [\"text-field\", { \"!\": \"text-radial-offset\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-allow-overlap\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"text-field\", { \"!\": \"text-overlap\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-overlap\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"never\": {},\n\t\t\t\t\"always\": {},\n\t\t\t\t\"cooperative\": {}\n\t\t\t},\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-ignore-placement\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-optional\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"requires\": [\"text-field\", \"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"visibility\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"visible\": {},\n\t\t\t\t\"none\": {}\n\t\t\t},\n\t\t\t\"default\": \"visible\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tlayout_raster: { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\tlayout_hillshade: { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\t\"layout_color-relief\": { \"visibility\": {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"visible\": {},\n\t\t\t\"none\": {}\n\t\t},\n\t\t\"default\": \"visible\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"global-state\"]\n\t\t},\n\t\t\"property-type\": \"data-constant\"\n\t} },\n\tfilter: {\n\t\t\"type\": \"boolean\",\n\t\t\"expression\": {\n\t\t\t\"interpolated\": false,\n\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t},\n\t\t\"property-type\": \"data-driven\"\n\t},\n\tfilter_operator: {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"==\": {},\n\t\t\t\"!=\": {},\n\t\t\t\">\": {},\n\t\t\t\">=\": {},\n\t\t\t\"<\": {},\n\t\t\t\"<=\": {},\n\t\t\t\"in\": {},\n\t\t\t\"!in\": {},\n\t\t\t\"all\": {},\n\t\t\t\"any\": {},\n\t\t\t\"none\": {},\n\t\t\t\"has\": {},\n\t\t\t\"!has\": {}\n\t\t}\n\t},\n\tgeometry_type: {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"Point\": {},\n\t\t\t\"LineString\": {},\n\t\t\t\"Polygon\": {}\n\t\t}\n\t},\n\t\"function\": {\n\t\t\"expression\": { \"type\": \"expression\" },\n\t\t\"stops\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"function_stop\"\n\t\t},\n\t\t\"base\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0\n\t\t},\n\t\t\"property\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"$zoom\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"identity\": {},\n\t\t\t\t\"exponential\": {},\n\t\t\t\t\"interval\": {},\n\t\t\t\t\"categorical\": {}\n\t\t\t},\n\t\t\t\"default\": \"exponential\"\n\t\t},\n\t\t\"colorSpace\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"rgb\": {},\n\t\t\t\t\"lab\": {},\n\t\t\t\t\"hcl\": {}\n\t\t\t},\n\t\t\t\"default\": \"rgb\"\n\t\t},\n\t\t\"default\": {\n\t\t\t\"type\": \"*\",\n\t\t\t\"required\": false\n\t\t}\n\t},\n\tfunction_stop: {\n\t\t\"type\": \"array\",\n\t\t\"minimum\": 0,\n\t\t\"maximum\": 24,\n\t\t\"value\": [\"number\", \"color\"],\n\t\t\"length\": 2\n\t},\n\texpression: {\n\t\t\"type\": \"array\",\n\t\t\"value\": \"expression_name\",\n\t\t\"minimum\": 1\n\t},\n\tlight: {\n\t\t\"anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"default\": \"viewport\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t}\n\t\t},\n\t\t\"position\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [\n\t\t\t\t1.15,\n\t\t\t\t210,\n\t\t\t\t30\n\t\t\t],\n\t\t\t\"length\": 3,\n\t\t\t\"value\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": \"#ffffff\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"intensity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": .5,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t}\n\t},\n\tsky: {\n\t\t\"sky-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": \"#88C6FC\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"horizon-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": \"#ffffff\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"fog-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": \"#ffffff\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"fog-ground-blend\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": .5,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"horizon-fog-blend\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": .8,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"sky-horizon-blend\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": .8,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t},\n\t\t\"atmosphere-blend\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"property-type\": \"data-constant\",\n\t\t\t\"default\": .8,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"transition\": true\n\t\t}\n\t},\n\tterrain: {\n\t\t\"source\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"required\": true\n\t\t},\n\t\t\"exaggeration\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"minimum\": 0,\n\t\t\t\"default\": 1\n\t\t}\n\t},\n\tprojection: { \"type\": {\n\t\t\"type\": \"projectionDefinition\",\n\t\t\"default\": \"mercator\",\n\t\t\"property-type\": \"data-constant\",\n\t\t\"transition\": false,\n\t\t\"expression\": {\n\t\t\t\"interpolated\": true,\n\t\t\t\"parameters\": [\"zoom\"]\n\t\t}\n\t} },\n\tpaint: [\n\t\t\"paint_fill\",\n\t\t\"paint_line\",\n\t\t\"paint_circle\",\n\t\t\"paint_heatmap\",\n\t\t\"paint_fill-extrusion\",\n\t\t\"paint_symbol\",\n\t\t\"paint_raster\",\n\t\t\"paint_hillshade\",\n\t\t\"paint_color-relief\",\n\t\t\"paint_background\"\n\t],\n\tpaint_fill: {\n\t\t\"fill-antialias\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-layer-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-outline-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [{ \"!\": \"fill-pattern\" }, { \"fill-antialias\": true }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"fill-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-pattern\": {\n\t\t\t\"type\": \"resolvedImage\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"cross-faded-data-driven\"\n\t\t}\n\t},\n\t\"paint_fill-extrusion\": {\n\t\t\"fill-extrusion-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-extrusion-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [{ \"!\": \"fill-extrusion-pattern\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-extrusion-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-extrusion-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"fill-extrusion-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"fill-extrusion-pattern\": {\n\t\t\t\"type\": \"resolvedImage\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"cross-faded-data-driven\"\n\t\t},\n\t\t\"fill-extrusion-height\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"meters\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-extrusion-base\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"meters\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"fill-extrusion-height\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"fill-extrusion-vertical-gradient\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tpaint_line: {\n\t\t\"line-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-layer-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\", \"global-state\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"line-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [{ \"!\": \"line-pattern\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"line-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"line-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"line-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-gap-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-offset\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-blur\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"line-dasharray\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"line widths\",\n\t\t\t\"requires\": [{ \"!\": \"line-pattern\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"cross-faded-data-driven\"\n\t\t},\n\t\t\"line-pattern\": {\n\t\t\t\"type\": \"resolvedImage\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\", \"feature\"]\n\t\t\t},\n\t\t\t\"property-type\": \"cross-faded-data-driven\"\n\t\t},\n\t\t\"line-gradient\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"transition\": false,\n\t\t\t\"requires\": [\n\t\t\t\t{ \"!\": \"line-dasharray\" },\n\t\t\t\t{ \"!\": \"line-pattern\" },\n\t\t\t\t{\n\t\t\t\t\t\"source\": \"geojson\",\n\t\t\t\t\t\"has\": { \"lineMetrics\": true }\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"line-progress\"]\n\t\t\t},\n\t\t\t\"property-type\": \"color-ramp\"\n\t\t}\n\t},\n\tpaint_circle: {\n\t\t\"circle-radius\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-blur\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"circle-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"circle-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"circle-pitch-scale\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"circle-pitch-alignment\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"viewport\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"circle-stroke-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-stroke-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"circle-stroke-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t}\n\t},\n\tpaint_heatmap: {\n\t\t\"heatmap-radius\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 30,\n\t\t\t\"minimum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"heatmap-weight\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"heatmap-intensity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"heatmap-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": [\n\t\t\t\t\"interpolate\",\n\t\t\t\t[\"linear\"],\n\t\t\t\t[\"heatmap-density\"],\n\t\t\t\t0,\n\t\t\t\t\"rgba(0, 0, 255, 0)\",\n\t\t\t\t.1,\n\t\t\t\t\"royalblue\",\n\t\t\t\t.3,\n\t\t\t\t\"cyan\",\n\t\t\t\t.5,\n\t\t\t\t\"lime\",\n\t\t\t\t.7,\n\t\t\t\t\"yellow\",\n\t\t\t\t1,\n\t\t\t\t\"red\"\n\t\t\t],\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"heatmap-density\"]\n\t\t\t},\n\t\t\t\"property-type\": \"color-ramp\"\n\t\t},\n\t\t\"heatmap-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tpaint_symbol: {\n\t\t\"icon-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-halo-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"rgba(0, 0, 0, 0)\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-halo-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-halo-blur\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"icon-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"icon-image\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"icon-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"icon-image\", \"icon-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"overridable\": true,\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-halo-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"rgba(0, 0, 0, 0)\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-halo-width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-halo-blur\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t\"zoom\",\n\t\t\t\t\t\"feature\",\n\t\t\t\t\t\"feature-state\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"property-type\": \"data-driven\"\n\t\t},\n\t\t\"text-translate\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"value\": \"number\",\n\t\t\t\"length\": 2,\n\t\t\t\"default\": [0, 0],\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"pixels\",\n\t\t\t\"requires\": [\"text-field\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"text-translate-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"map\",\n\t\t\t\"requires\": [\"text-field\", \"text-translate\"],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tpaint_raster: {\n\t\t\"raster-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-hue-rotate\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"period\": 360,\n\t\t\t\"transition\": true,\n\t\t\t\"units\": \"degrees\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-brightness-min\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-brightness-max\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-saturation\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": -1,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-contrast\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": -1,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"resampling\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"linear\": {},\n\t\t\t\t\"nearest\": {}\n\t\t\t},\n\t\t\t\"default\": \"linear\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-resampling\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"linear\": {},\n\t\t\t\t\"nearest\": {}\n\t\t\t},\n\t\t\t\"default\": \"linear\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"raster-fade-duration\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 300,\n\t\t\t\"minimum\": 0,\n\t\t\t\"transition\": false,\n\t\t\t\"units\": \"milliseconds\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tpaint_hillshade: {\n\t\t\"hillshade-illumination-direction\": {\n\t\t\t\"type\": \"numberArray\",\n\t\t\t\"default\": 335,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 359,\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-illumination-altitude\": {\n\t\t\t\"type\": \"numberArray\",\n\t\t\t\"default\": 45,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 90,\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-illumination-anchor\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"map\": {},\n\t\t\t\t\"viewport\": {}\n\t\t\t},\n\t\t\t\"default\": \"viewport\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-exaggeration\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": .5,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-shadow-color\": {\n\t\t\t\"type\": \"colorArray\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-highlight-color\": {\n\t\t\t\"type\": \"colorArray\",\n\t\t\t\"default\": \"#FFFFFF\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-accent-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"hillshade-method\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"standard\": {},\n\t\t\t\t\"basic\": {},\n\t\t\t\t\"combined\": {},\n\t\t\t\t\"igor\": {},\n\t\t\t\t\"multidirectional\": {}\n\t\t\t},\n\t\t\t\"default\": \"standard\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"resampling\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"linear\": {},\n\t\t\t\t\"nearest\": {}\n\t\t\t},\n\t\t\t\"default\": \"linear\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\t\"paint_color-relief\": {\n\t\t\"color-relief-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"color-relief-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"transition\": false,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"elevation\"]\n\t\t\t},\n\t\t\t\"property-type\": \"color-ramp\"\n\t\t},\n\t\t\"resampling\": {\n\t\t\t\"type\": \"enum\",\n\t\t\t\"values\": {\n\t\t\t\t\"linear\": {},\n\t\t\t\t\"nearest\": {}\n\t\t\t},\n\t\t\t\"default\": \"linear\",\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\tpaint_background: {\n\t\t\"background-color\": {\n\t\t\t\"type\": \"color\",\n\t\t\t\"default\": \"#000000\",\n\t\t\t\"transition\": true,\n\t\t\t\"requires\": [{ \"!\": \"background-pattern\" }],\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t},\n\t\t\"background-pattern\": {\n\t\t\t\"type\": \"resolvedImage\",\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": false,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"cross-faded\"\n\t\t},\n\t\t\"background-opacity\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1,\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 1,\n\t\t\t\"transition\": true,\n\t\t\t\"expression\": {\n\t\t\t\t\"interpolated\": true,\n\t\t\t\t\"parameters\": [\"zoom\"]\n\t\t\t},\n\t\t\t\"property-type\": \"data-constant\"\n\t\t}\n\t},\n\ttransition: {\n\t\t\"duration\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 300,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"milliseconds\"\n\t\t},\n\t\t\"delay\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0,\n\t\t\t\"minimum\": 0,\n\t\t\t\"units\": \"milliseconds\"\n\t\t}\n\t},\n\t\"property-type\": {\n\t\t\"data-driven\": { \"type\": \"property-type\" },\n\t\t\"cross-faded\": { \"type\": \"property-type\" },\n\t\t\"cross-faded-data-driven\": { \"type\": \"property-type\" },\n\t\t\"color-ramp\": { \"type\": \"property-type\" },\n\t\t\"data-constant\": { \"type\": \"property-type\" },\n\t\t\"constant\": { \"type\": \"property-type\" }\n\t},\n\tpromoteId: { \"*\": { \"type\": \"string\" } },\n\tinterpolation: {\n\t\t\"type\": \"array\",\n\t\t\"value\": \"interpolation_name\",\n\t\t\"minimum\": 1\n\t},\n\tinterpolation_name: {\n\t\t\"type\": \"enum\",\n\t\t\"values\": {\n\t\t\t\"linear\": { \"syntax\": {\n\t\t\t\t\"overloads\": [{\n\t\t\t\t\t\"parameters\": [],\n\t\t\t\t\t\"output-type\": \"interpolation\"\n\t\t\t\t}],\n\t\t\t\t\"parameters\": []\n\t\t\t} },\n\t\t\t\"exponential\": { \"syntax\": {\n\t\t\t\t\"overloads\": [{\n\t\t\t\t\t\"parameters\": [\"base\"],\n\t\t\t\t\t\"output-type\": \"interpolation\"\n\t\t\t\t}],\n\t\t\t\t\"parameters\": [{\n\t\t\t\t\t\"name\": \"base\",\n\t\t\t\t\t\"type\": \"number literal\"\n\t\t\t\t}]\n\t\t\t} },\n\t\t\t\"cubic-bezier\": { \"syntax\": {\n\t\t\t\t\"overloads\": [{\n\t\t\t\t\t\"parameters\": [\n\t\t\t\t\t\t\"x1\",\n\t\t\t\t\t\t\"y1\",\n\t\t\t\t\t\t\"x2\",\n\t\t\t\t\t\t\"y2\"\n\t\t\t\t\t],\n\t\t\t\t\t\"output-type\": \"interpolation\"\n\t\t\t\t}],\n\t\t\t\t\"parameters\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"x1\",\n\t\t\t\t\t\t\"type\": \"number literal\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"y1\",\n\t\t\t\t\t\t\"type\": \"number literal\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"x2\",\n\t\t\t\t\t\t\"type\": \"number literal\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"y2\",\n\t\t\t\t\t\t\"type\": \"number literal\"\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t} }\n\t\t}\n\t}\n};\n//#endregion\n//#region src/reference/latest.ts\nconst latest = v8_default;\n//#endregion\n//#region src/util/ref_properties.ts\nconst refProperties = [\n\t\"type\",\n\t\"source\",\n\t\"source-layer\",\n\t\"minzoom\",\n\t\"maxzoom\",\n\t\"filter\",\n\t\"layout\"\n];\n//#endregion\n//#region src/deref.ts\nfunction deref(layer, parent) {\n\tconst result = {};\n\tfor (const k in layer) if (k !== \"ref\") result[k] = layer[k];\n\trefProperties.forEach((k) => {\n\t\tif (k in parent) result[k] = parent[k];\n\t});\n\treturn result;\n}\n/**\n*\n* The input is not modified. The output may contain references to portions\n* of the input.\n*\n* @param layers - array of layers, some of which may contain `ref` properties\n* whose value is the `id` of another property\n* @returns a new array where such layers have been augmented with the 'type', 'source', etc. properties\n* from the parent layer, and the `ref` property has been removed.\n*/\nfunction derefLayers(layers) {\n\tlayers = layers.slice();\n\tconst map = Object.create(null);\n\tfor (let i = 0; i < layers.length; i++) map[layers[i].id] = layers[i];\n\tfor (let i = 0; i < layers.length; i++) if (\"ref\" in layers[i]) layers[i] = deref(layers[i], map[layers[i].ref]);\n\treturn layers;\n}\n//#endregion\n//#region src/util/deep_equal.ts\n/**\n* Deeply compares two object literals.\n*\n* @private\n*/\nfunction deepEqual(a, b) {\n\tif (Array.isArray(a)) {\n\t\tif (!Array.isArray(b) || a.length !== b.length) return false;\n\t\tfor (let i = 0; i < a.length; i++) if (!deepEqual(a[i], b[i])) return false;\n\t\treturn true;\n\t}\n\tif (typeof a === \"object\" && a !== null && b !== null) {\n\t\tif (!(typeof b === \"object\")) return false;\n\t\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\t\tfor (const key in a) if (!deepEqual(a[key], b[key])) return false;\n\t\treturn true;\n\t}\n\treturn a === b;\n}\n//#endregion\n//#region src/diff.ts\n/**\n* The main reason for this method is to allow type check when adding a command to the array.\n* @param commands - The commands array to add to\n* @param command - The command to add\n*/\nfunction addCommand(commands, command) {\n\tcommands.push(command);\n}\nfunction addSource(sourceId, after, commands) {\n\taddCommand(commands, {\n\t\tcommand: \"addSource\",\n\t\targs: [sourceId, after[sourceId]]\n\t});\n}\nfunction removeSource(sourceId, commands, sourcesRemoved) {\n\taddCommand(commands, {\n\t\tcommand: \"removeSource\",\n\t\targs: [sourceId]\n\t});\n\tsourcesRemoved[sourceId] = true;\n}\nfunction updateSource(sourceId, after, commands, sourcesRemoved) {\n\tremoveSource(sourceId, commands, sourcesRemoved);\n\taddSource(sourceId, after, commands);\n}\nfunction canUpdateGeoJSON(before, after, sourceId) {\n\tlet prop;\n\tfor (prop in before[sourceId]) {\n\t\tif (!Object.prototype.hasOwnProperty.call(before[sourceId], prop)) continue;\n\t\tif (prop !== \"data\" && !deepEqual(before[sourceId][prop], after[sourceId][prop])) return false;\n\t}\n\tfor (prop in after[sourceId]) {\n\t\tif (!Object.prototype.hasOwnProperty.call(after[sourceId], prop)) continue;\n\t\tif (prop !== \"data\" && !deepEqual(before[sourceId][prop], after[sourceId][prop])) return false;\n\t}\n\treturn true;\n}\nfunction diffSources(before, after, commands, sourcesRemoved) {\n\tbefore = before || {};\n\tafter = after || {};\n\tlet sourceId;\n\tfor (sourceId in before) {\n\t\tif (!Object.prototype.hasOwnProperty.call(before, sourceId)) continue;\n\t\tif (!Object.prototype.hasOwnProperty.call(after, sourceId)) removeSource(sourceId, commands, sourcesRemoved);\n\t}\n\tfor (sourceId in after) {\n\t\tif (!Object.prototype.hasOwnProperty.call(after, sourceId)) continue;\n\t\tif (!Object.prototype.hasOwnProperty.call(before, sourceId)) addSource(sourceId, after, commands);\n\t\telse if (!deepEqual(before[sourceId], after[sourceId])) if (before[sourceId].type === \"geojson\" && after[sourceId].type === \"geojson\" && canUpdateGeoJSON(before, after, sourceId)) addCommand(commands, {\n\t\t\tcommand: \"setGeoJSONSourceData\",\n\t\t\targs: [sourceId, after[sourceId].data]\n\t\t});\n\t\telse updateSource(sourceId, after, commands, sourcesRemoved);\n\t}\n}\nfunction diffLayerPropertyChanges(before, after, commands, layerId, klass, command) {\n\tbefore = before || {};\n\tafter = after || {};\n\tfor (const prop in before) {\n\t\tif (!Object.prototype.hasOwnProperty.call(before, prop)) continue;\n\t\tif (!deepEqual(before[prop], after[prop])) commands.push({\n\t\t\tcommand,\n\t\t\targs: [\n\t\t\t\tlayerId,\n\t\t\t\tprop,\n\t\t\t\tafter[prop],\n\t\t\t\tklass\n\t\t\t]\n\t\t});\n\t}\n\tfor (const prop in after) {\n\t\tif (!Object.prototype.hasOwnProperty.call(after, prop) || Object.prototype.hasOwnProperty.call(before, prop)) continue;\n\t\tif (!deepEqual(before[prop], after[prop])) commands.push({\n\t\t\tcommand,\n\t\t\targs: [\n\t\t\t\tlayerId,\n\t\t\t\tprop,\n\t\t\t\tafter[prop],\n\t\t\t\tklass\n\t\t\t]\n\t\t});\n\t}\n}\nfunction pluckId(layer) {\n\treturn layer.id;\n}\nfunction indexById(group, layer) {\n\tgroup[layer.id] = layer;\n\treturn group;\n}\nfunction diffLayers(before, after, commands) {\n\tbefore = before || [];\n\tafter = after || [];\n\tconst beforeOrder = before.map(pluckId);\n\tconst afterOrder = after.map(pluckId);\n\tconst beforeIndex = before.reduce(indexById, {});\n\tconst afterIndex = after.reduce(indexById, {});\n\tconst tracker = beforeOrder.slice();\n\tconst clean = Object.create(null);\n\tlet layerId;\n\tlet beforeLayer;\n\tlet afterLayer;\n\tlet insertBeforeLayerId;\n\tlet prop;\n\tfor (let i = 0, d = 0; i < beforeOrder.length; i++) {\n\t\tlayerId = beforeOrder[i];\n\t\tif (!Object.prototype.hasOwnProperty.call(afterIndex, layerId)) {\n\t\t\taddCommand(commands, {\n\t\t\t\tcommand: \"removeLayer\",\n\t\t\t\targs: [layerId]\n\t\t\t});\n\t\t\ttracker.splice(tracker.indexOf(layerId, d), 1);\n\t\t} else d++;\n\t}\n\tfor (let i = 0, d = 0; i < afterOrder.length; i++) {\n\t\tlayerId = afterOrder[afterOrder.length - 1 - i];\n\t\tif (tracker[tracker.length - 1 - i] === layerId) continue;\n\t\tif (Object.prototype.hasOwnProperty.call(beforeIndex, layerId)) {\n\t\t\taddCommand(commands, {\n\t\t\t\tcommand: \"removeLayer\",\n\t\t\t\targs: [layerId]\n\t\t\t});\n\t\t\ttracker.splice(tracker.lastIndexOf(layerId, tracker.length - d), 1);\n\t\t} else d++;\n\t\tinsertBeforeLayerId = tracker[tracker.length - i];\n\t\taddCommand(commands, {\n\t\t\tcommand: \"addLayer\",\n\t\t\targs: [afterIndex[layerId], insertBeforeLayerId]\n\t\t});\n\t\ttracker.splice(tracker.length - i, 0, layerId);\n\t\tclean[layerId] = true;\n\t}\n\tfor (let i = 0; i < afterOrder.length; i++) {\n\t\tlayerId = afterOrder[i];\n\t\tbeforeLayer = beforeIndex[layerId];\n\t\tafterLayer = afterIndex[layerId];\n\t\tif (clean[layerId] || deepEqual(beforeLayer, afterLayer)) continue;\n\t\tif (!deepEqual(beforeLayer.source, afterLayer.source) || !deepEqual(beforeLayer[\"source-layer\"], afterLayer[\"source-layer\"]) || !deepEqual(beforeLayer.type, afterLayer.type)) {\n\t\t\taddCommand(commands, {\n\t\t\t\tcommand: \"removeLayer\",\n\t\t\t\targs: [layerId]\n\t\t\t});\n\t\t\tinsertBeforeLayerId = tracker[tracker.lastIndexOf(layerId) + 1];\n\t\t\taddCommand(commands, {\n\t\t\t\tcommand: \"addLayer\",\n\t\t\t\targs: [afterLayer, insertBeforeLayerId]\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tdiffLayerPropertyChanges(beforeLayer.layout, afterLayer.layout, commands, layerId, null, \"setLayoutProperty\");\n\t\tdiffLayerPropertyChanges(beforeLayer.paint, afterLayer.paint, commands, layerId, null, \"setPaintProperty\");\n\t\tif (!deepEqual(beforeLayer.filter, afterLayer.filter)) addCommand(commands, {\n\t\t\tcommand: \"setFilter\",\n\t\t\targs: [layerId, afterLayer.filter]\n\t\t});\n\t\tif (!deepEqual(beforeLayer.minzoom, afterLayer.minzoom) || !deepEqual(beforeLayer.maxzoom, afterLayer.maxzoom)) addCommand(commands, {\n\t\t\tcommand: \"setLayerZoomRange\",\n\t\t\targs: [\n\t\t\t\tlayerId,\n\t\t\t\tafterLayer.minzoom,\n\t\t\t\tafterLayer.maxzoom\n\t\t\t]\n\t\t});\n\t\tfor (prop in beforeLayer) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(beforeLayer, prop)) continue;\n\t\t\tif (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") continue;\n\t\t\tif (prop.indexOf(\"paint.\") === 0) diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), \"setPaintProperty\");\n\t\t\telse if (!deepEqual(beforeLayer[prop], afterLayer[prop])) addCommand(commands, {\n\t\t\t\tcommand: \"setLayerProperty\",\n\t\t\t\targs: [\n\t\t\t\t\tlayerId,\n\t\t\t\t\tprop,\n\t\t\t\t\tafterLayer[prop]\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\tfor (prop in afterLayer) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(afterLayer, prop) || Object.prototype.hasOwnProperty.call(beforeLayer, prop)) continue;\n\t\t\tif (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") continue;\n\t\t\tif (prop.indexOf(\"paint.\") === 0) diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), \"setPaintProperty\");\n\t\t\telse if (!deepEqual(beforeLayer[prop], afterLayer[prop])) addCommand(commands, {\n\t\t\t\tcommand: \"setLayerProperty\",\n\t\t\t\targs: [\n\t\t\t\t\tlayerId,\n\t\t\t\t\tprop,\n\t\t\t\t\tafterLayer[prop]\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t}\n}\n/**\n* Diff two stylesheet\n*\n* Creates semanticly aware diffs that can easily be applied at runtime.\n* Operations produced by the diff closely resemble the maplibre-gl-js API. Any\n* error creating the diff will fall back to the 'setStyle' operation.\n*\n* Example diff:\n* [\n* { command: 'setConstant', args: ['@water', '#0000FF'] },\n* { command: 'setPaintProperty', args: ['background', 'background-color', 'black'] }\n* ]\n*\n* @private\n* @param {*} [before] stylesheet to compare from\n* @param {*} after stylesheet to compare to\n* @returns Array list of changes\n*/\nfunction diff(before, after) {\n\tif (!before) return [{\n\t\tcommand: \"setStyle\",\n\t\targs: [after]\n\t}];\n\tlet commands = [];\n\ttry {\n\t\tif (!deepEqual(before.version, after.version)) return [{\n\t\t\tcommand: \"setStyle\",\n\t\t\targs: [after]\n\t\t}];\n\t\tif (!deepEqual(before.center, after.center)) commands.push({\n\t\t\tcommand: \"setCenter\",\n\t\t\targs: [after.center]\n\t\t});\n\t\tif (!deepEqual(before.state, after.state)) commands.push({\n\t\t\tcommand: \"setGlobalState\",\n\t\t\targs: [after.state]\n\t\t});\n\t\tif (!deepEqual(before.centerAltitude, after.centerAltitude)) commands.push({\n\t\t\tcommand: \"setCenterAltitude\",\n\t\t\targs: [after.centerAltitude]\n\t\t});\n\t\tif (!deepEqual(before.zoom, after.zoom)) commands.push({\n\t\t\tcommand: \"setZoom\",\n\t\t\targs: [after.zoom]\n\t\t});\n\t\tif (!deepEqual(before.bearing, after.bearing)) commands.push({\n\t\t\tcommand: \"setBearing\",\n\t\t\targs: [after.bearing]\n\t\t});\n\t\tif (!deepEqual(before.pitch, after.pitch)) commands.push({\n\t\t\tcommand: \"setPitch\",\n\t\t\targs: [after.pitch]\n\t\t});\n\t\tif (!deepEqual(before.roll, after.roll)) commands.push({\n\t\t\tcommand: \"setRoll\",\n\t\t\targs: [after.roll]\n\t\t});\n\t\tif (!deepEqual(before.sprite, after.sprite)) commands.push({\n\t\t\tcommand: \"setSprite\",\n\t\t\targs: [after.sprite]\n\t\t});\n\t\tif (!deepEqual(before.glyphs, after.glyphs)) commands.push({\n\t\t\tcommand: \"setGlyphs\",\n\t\t\targs: [after.glyphs]\n\t\t});\n\t\tif (!deepEqual(before.transition, after.transition)) commands.push({\n\t\t\tcommand: \"setTransition\",\n\t\t\targs: [after.transition]\n\t\t});\n\t\tif (!deepEqual(before.light, after.light)) commands.push({\n\t\t\tcommand: \"setLight\",\n\t\t\targs: [after.light]\n\t\t});\n\t\tif (!deepEqual(before.terrain, after.terrain)) commands.push({\n\t\t\tcommand: \"setTerrain\",\n\t\t\targs: [after.terrain]\n\t\t});\n\t\tif (!deepEqual(before.sky, after.sky)) commands.push({\n\t\t\tcommand: \"setSky\",\n\t\t\targs: [after.sky]\n\t\t});\n\t\tif (!deepEqual(before.projection, after.projection)) commands.push({\n\t\t\tcommand: \"setProjection\",\n\t\t\targs: [after.projection]\n\t\t});\n\t\tconst sourcesRemoved = {};\n\t\tconst removeOrAddSourceCommands = [];\n\t\tdiffSources(before.sources, after.sources, removeOrAddSourceCommands, sourcesRemoved);\n\t\tconst beforeLayers = [];\n\t\tif (before.layers) before.layers.forEach((layer) => {\n\t\t\tif (\"source\" in layer && sourcesRemoved[layer.source]) commands.push({\n\t\t\t\tcommand: \"removeLayer\",\n\t\t\t\targs: [layer.id]\n\t\t\t});\n\t\t\telse beforeLayers.push(layer);\n\t\t});\n\t\tcommands = commands.concat(removeOrAddSourceCommands);\n\t\tdiffLayers(beforeLayers, after.layers, commands);\n\t} catch (e) {\n\t\tconsole.warn(\"Unable to compute style diff:\", e);\n\t\tcommands = [{\n\t\t\tcommand: \"setStyle\",\n\t\t\targs: [after]\n\t\t}];\n\t}\n\treturn commands;\n}\n//#endregion\n//#region src/error/validation_error.ts\nvar ValidationError = class {\n\tconstructor(key, value, message, identifier, severity = \"error\") {\n\t\tthis.message = (key ? `${key}: ` : \"\") + message;\n\t\tif (identifier) this.identifier = identifier;\n\t\tthis.severity = severity;\n\t\tif (value !== null && value !== void 0 && value.__line__) this.line = value.__line__;\n\t}\n};\n//#endregion\n//#region src/error/parsing_error.ts\nvar ParsingError = class {\n\tconstructor(error) {\n\t\tthis.error = error;\n\t\tthis.message = error.message;\n\t\tconst match = error.message.match(/line (\\d+)/);\n\t\tthis.line = match ? parseInt(match[1], 10) : 0;\n\t}\n};\n//#endregion\n//#region src/expression/parsing_error.ts\nvar ExpressionParsingError = class extends Error {\n\tconstructor(key, message) {\n\t\tsuper(message);\n\t\tthis.message = message;\n\t\tthis.key = key;\n\t}\n};\n//#endregion\n//#region src/expression/scope.ts\n/**\n* Tracks `let` bindings during expression parsing.\n* @private\n*/\nvar Scope = class Scope {\n\tconstructor(parent, bindings = []) {\n\t\tthis.parent = parent;\n\t\tthis.bindings = {};\n\t\tfor (const [name, expression] of bindings) this.bindings[name] = expression;\n\t}\n\tconcat(bindings) {\n\t\treturn new Scope(this, bindings);\n\t}\n\tget(name) {\n\t\tif (this.bindings[name]) return this.bindings[name];\n\t\tif (this.parent) return this.parent.get(name);\n\t\tthrow new Error(`${name} not found in scope.`);\n\t}\n\thas(name) {\n\t\tif (this.bindings[name]) return true;\n\t\treturn this.parent ? this.parent.has(name) : false;\n\t}\n};\n//#endregion\n//#region src/expression/types.ts\nconst NullType = { kind: \"null\" };\nconst NumberType = { kind: \"number\" };\nconst StringType = { kind: \"string\" };\nconst BooleanType = { kind: \"boolean\" };\nconst ColorType = { kind: \"color\" };\nconst ProjectionDefinitionType = { kind: \"projectionDefinition\" };\nconst ObjectType = { kind: \"object\" };\nconst ValueType = { kind: \"value\" };\nconst ErrorType = { kind: \"error\" };\nconst CollatorType = { kind: \"collator\" };\nconst FormattedType = { kind: \"formatted\" };\nconst PaddingType = { kind: \"padding\" };\nconst ColorArrayType = { kind: \"colorArray\" };\nconst NumberArrayType = { kind: \"numberArray\" };\nconst ResolvedImageType = { kind: \"resolvedImage\" };\nconst VariableAnchorOffsetCollectionType = { kind: \"variableAnchorOffsetCollection\" };\nfunction array(itemType, N) {\n\treturn {\n\t\tkind: \"array\",\n\t\titemType,\n\t\tN\n\t};\n}\nfunction typeToString(type) {\n\tif (type.kind === \"array\") {\n\t\tconst itemType = typeToString(type.itemType);\n\t\treturn typeof type.N === \"number\" ? `array<${itemType}, ${type.N}>` : type.itemType.kind === \"value\" ? \"array\" : `array<${itemType}>`;\n\t} else return type.kind;\n}\nconst valueMemberTypes = [\n\tNullType,\n\tNumberType,\n\tStringType,\n\tBooleanType,\n\tColorType,\n\tProjectionDefinitionType,\n\tFormattedType,\n\tObjectType,\n\tarray(ValueType),\n\tPaddingType,\n\tNumberArrayType,\n\tColorArrayType,\n\tResolvedImageType,\n\tVariableAnchorOffsetCollectionType\n];\n/**\n* Returns null if `t` is a subtype of `expected`; otherwise returns an\n* error message.\n* @private\n*/\nfunction checkSubtype(expected, t) {\n\tif (t.kind === \"error\") return null;\n\telse if (expected.kind === \"array\") {\n\t\tif (t.kind === \"array\" && (t.N === 0 && t.itemType.kind === \"value\" || !checkSubtype(expected.itemType, t.itemType)) && (typeof expected.N !== \"number\" || expected.N === t.N)) return null;\n\t} else if (expected.kind === t.kind) return null;\n\telse if (expected.kind === \"value\") {\n\t\tfor (const memberType of valueMemberTypes) if (!checkSubtype(memberType, t)) return null;\n\t}\n\treturn `Expected ${typeToString(expected)} but found ${typeToString(t)} instead.`;\n}\nfunction isValidType(provided, allowedTypes) {\n\treturn allowedTypes.some((t) => t.kind === provided.kind);\n}\nfunction isValidNativeType(provided, allowedTypes) {\n\treturn allowedTypes.some((t) => {\n\t\tif (t === \"null\") return provided === null;\n\t\telse if (t === \"array\") return Array.isArray(provided);\n\t\telse if (t === \"object\") return provided && !Array.isArray(provided) && typeof provided === \"object\";\n\t\telse return t === typeof provided;\n\t});\n}\n/**\n* Verify whether the specified type is of the same type as the specified sample.\n*\n* @param provided Type to verify\n* @param sample Sample type to reference\n* @returns `true` if both objects are of the same type, `false` otherwise\n* @example basic types\n* if (verifyType(outputType, ValueType)) {\n* // type narrowed to:\n* outputType.kind; // 'value'\n* }\n* @example array types\n* if (verifyType(outputType, array(NumberType))) {\n* // type narrowed to:\n* outputType.kind; // 'array'\n* outputType.itemType; // NumberTypeT\n* outputType.itemType.kind; // 'number'\n* }\n*/\nfunction verifyType(provided, sample) {\n\tif (provided.kind === \"array\" && sample.kind === \"array\") return provided.itemType.kind === sample.itemType.kind && typeof provided.N === \"number\";\n\treturn provided.kind === sample.kind;\n}\n//#endregion\n//#region src/expression/types/color_spaces.ts\nconst Xn = .96422;\nconst Yn = 1;\nconst Zn = .82521;\nconst t0 = 4 / 29;\nconst t1 = 6 / 29;\nconst t2 = 3 * t1 * t1;\nconst t3 = t1 * t1 * t1;\nconst deg2rad = Math.PI / 180;\nconst rad2deg = 180 / Math.PI;\nfunction constrainAngle(angle) {\n\tangle = angle % 360;\n\tif (angle < 0) angle += 360;\n\treturn angle;\n}\nfunction rgbToLab([r, g, b, alpha]) {\n\tr = rgb2xyz(r);\n\tg = rgb2xyz(g);\n\tb = rgb2xyz(b);\n\tlet x, z;\n\tconst y = xyz2lab((.2225045 * r + .7168786 * g + .0606169 * b) / Yn);\n\tif (r === g && g === b) x = z = y;\n\telse {\n\t\tx = xyz2lab((.4360747 * r + .3850649 * g + .1430804 * b) / Xn);\n\t\tz = xyz2lab((.0139322 * r + .0971045 * g + .7141733 * b) / Zn);\n\t}\n\tconst l = 116 * y - 16;\n\treturn [\n\t\tl < 0 ? 0 : l,\n\t\t500 * (x - y),\n\t\t200 * (y - z),\n\t\talpha\n\t];\n}\nfunction rgb2xyz(x) {\n\treturn x <= .04045 ? x / 12.92 : Math.pow((x + .055) / 1.055, 2.4);\n}\nfunction xyz2lab(t) {\n\treturn t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\nfunction labToRgb([l, a, b, alpha]) {\n\tlet y = (l + 16) / 116, x = isNaN(a) ? y : y + a / 500, z = isNaN(b) ? y : y - b / 200;\n\ty = Yn * lab2xyz(y);\n\tx = Xn * lab2xyz(x);\n\tz = Zn * lab2xyz(z);\n\treturn [\n\t\txyz2rgb(3.1338561 * x - 1.6168667 * y - .4906146 * z),\n\t\txyz2rgb(-.9787684 * x + 1.9161415 * y + .033454 * z),\n\t\txyz2rgb(.0719453 * x - .2289914 * y + 1.4052427 * z),\n\t\talpha\n\t];\n}\nfunction xyz2rgb(x) {\n\tx = x <= .00304 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055;\n\treturn x < 0 ? 0 : x > 1 ? 1 : x;\n}\nfunction lab2xyz(t) {\n\treturn t > t1 ? t * t * t : t2 * (t - t0);\n}\nfunction rgbToHcl(rgbColor) {\n\tconst [l, a, b, alpha] = rgbToLab(rgbColor);\n\tconst c = Math.sqrt(a * a + b * b);\n\treturn [\n\t\tMath.round(c * 1e4) ? constrainAngle(Math.atan2(b, a) * rad2deg) : NaN,\n\t\tc,\n\t\tl,\n\t\talpha\n\t];\n}\nfunction hclToRgb([h, c, l, alpha]) {\n\th = isNaN(h) ? 0 : h * deg2rad;\n\treturn labToRgb([\n\t\tl,\n\t\tMath.cos(h) * c,\n\t\tMath.sin(h) * c,\n\t\talpha\n\t]);\n}\nfunction hslToRgb([h, s, l, alpha]) {\n\th = constrainAngle(h);\n\ts /= 100;\n\tl /= 100;\n\tfunction f(n) {\n\t\tconst k = (n + h / 30) % 12;\n\t\tconst a = s * Math.min(l, 1 - l);\n\t\treturn l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n\t}\n\treturn [\n\t\tf(0),\n\t\tf(8),\n\t\tf(4),\n\t\talpha\n\t];\n}\n//#endregion\n//#region src/util/get_own.ts\nconst hasOwnProperty = Object.hasOwn || function hasOwnProperty(object, key) {\n\treturn Object.prototype.hasOwnProperty.call(object, key);\n};\nfunction getOwn(object, key) {\n\treturn hasOwnProperty(object, key) ? object[key] : void 0;\n}\n//#endregion\n//#region src/expression/types/parse_css_color.ts\n/**\n* CSS color parser compliant with CSS Color 4 Specification.\n* Supports: named colors, `transparent` keyword, all rgb hex notations,\n* rgb(), rgba(), hsl() and hsla() functions.\n* Does not round the parsed values to integers from the range 0..255.\n*\n* Syntax:\n*\n* <alpha-value> = <number> | <percentage>\n* <hue> = <number> | <angle>\n*\n* rgb() = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? )\n* rgb() = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )\n*\n* hsl() = hsl( <hue> <percentage> <percentage> [ / <alpha-value> ]? )\n* hsl() = hsl( <hue>, <percentage>, <percentage>, <alpha-value>? )\n*\n* Caveats:\n* - <angle> - <number> with optional `deg` suffix; `grad`, `rad`, `turn` are not supported\n* - `none` keyword is not supported\n* - comments inside rgb()/hsl() are not supported\n* - legacy color syntax rgba() is supported with an identical grammar and behavior to rgb()\n* - legacy color syntax hsla() is supported with an identical grammar and behavior to hsl()\n*\n* @param input CSS color string to parse.\n* @returns Color in sRGB color space, with `red`, `green`, `blue`\n* and `alpha` channels normalized to the range 0..1,\n* or `undefined` if the input is not a valid color string.\n*/\nfunction parseCssColor(input) {\n\tinput = input.toLowerCase().trim();\n\tif (input === \"transparent\") return [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tconst namedColorsMatch = getOwn(namedColors, input);\n\tif (namedColorsMatch) {\n\t\tconst [r, g, b] = namedColorsMatch;\n\t\treturn [\n\t\t\tr / 255,\n\t\t\tg / 255,\n\t\t\tb / 255,\n\t\t\t1\n\t\t];\n\t}\n\tif (input.startsWith(\"#\")) {\n\t\tif (/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(input)) {\n\t\t\tconst step = input.length < 6 ? 1 : 2;\n\t\t\tlet i = 1;\n\t\t\treturn [\n\t\t\t\tparseHex(input.slice(i, i += step)),\n\t\t\t\tparseHex(input.slice(i, i += step)),\n\t\t\t\tparseHex(input.slice(i, i += step)),\n\t\t\t\tparseHex(input.slice(i, i + step) || \"ff\")\n\t\t\t];\n\t\t}\n\t}\n\tif (input.startsWith(\"rgb\")) {\n\t\tconst rgbMatch = input.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n\t\tif (rgbMatch) {\n\t\t\tconst [_, r, rp, f1, g, gp, f2, b, bp, f3, a, ap] = rgbMatch;\n\t\t\tconst argFormat = [\n\t\t\t\tf1 || \" \",\n\t\t\t\tf2 || \" \",\n\t\t\t\tf3\n\t\t\t].join(\"\");\n\t\t\tif (argFormat === \" \" || argFormat === \" /\" || argFormat === \",,\" || argFormat === \",,,\") {\n\t\t\t\tconst valFormat = [\n\t\t\t\t\trp,\n\t\t\t\t\tgp,\n\t\t\t\t\tbp\n\t\t\t\t].join(\"\");\n\t\t\t\tconst maxValue = valFormat === \"%%%\" ? 100 : valFormat === \"\" ? 255 : 0;\n\t\t\t\tif (maxValue) {\n\t\t\t\t\tconst rgba = [\n\t\t\t\t\t\tclamp(+r / maxValue, 0, 1),\n\t\t\t\t\t\tclamp(+g / maxValue, 0, 1),\n\t\t\t\t\t\tclamp(+b / maxValue, 0, 1),\n\t\t\t\t\t\ta ? parseAlpha(+a, ap) : 1\n\t\t\t\t\t];\n\t\t\t\t\tif (validateNumbers(rgba)) return rgba;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t}\n\tconst hslMatch = input.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n\tif (hslMatch) {\n\t\tconst [_, h, f1, s, f2, l, f3, a, ap] = hslMatch;\n\t\tconst argFormat = [\n\t\t\tf1 || \" \",\n\t\t\tf2 || \" \",\n\t\t\tf3\n\t\t].join(\"\");\n\t\tif (argFormat === \" \" || argFormat === \" /\" || argFormat === \",,\" || argFormat === \",,,\") {\n\t\t\tconst hsla = [\n\t\t\t\t+h,\n\t\t\t\tclamp(+s, 0, 100),\n\t\t\t\tclamp(+l, 0, 100),\n\t\t\t\ta ? parseAlpha(+a, ap) : 1\n\t\t\t];\n\t\t\tif (validateNumbers(hsla)) return hslToRgb(hsla);\n\t\t}\n\t}\n}\nfunction parseHex(hex) {\n\treturn parseInt(hex.padEnd(2, hex), 16) / 255;\n}\nfunction parseAlpha(a, asPercentage) {\n\treturn clamp(asPercentage ? a / 100 : a, 0, 1);\n}\nfunction clamp(n, min, max) {\n\treturn Math.min(Math.max(min, n), max);\n}\n/**\n* The regular expression for numeric values is not super specific, and it may\n* happen that it will accept a value that is not a valid number. In order to\n* detect and eliminate such values this function exists.\n*\n* @param array Array of uncertain numbers.\n* @returns `true` if the specified array contains only valid numbers, `false` otherwise.\n*/\nfunction validateNumbers(array) {\n\treturn !array.some(Number.isNaN);\n}\n/**\n* To generate:\n* - visit {@link https://www.w3.org/TR/css-color-4/#named-colors}\n* - run in the console:\n* @example\n* copy(`{\\n${[...document.querySelector('.named-color-table tbody').children].map((tr) => `${tr.cells[2].textContent.trim()}: [${tr.cells[4].textContent.trim().split(/\\s+/).join(', ')}],`).join('\\n')}\\n}`);\n*/\nconst namedColors = {\n\taliceblue: [\n\t\t240,\n\t\t248,\n\t\t255\n\t],\n\tantiquewhite: [\n\t\t250,\n\t\t235,\n\t\t215\n\t],\n\taqua: [\n\t\t0,\n\t\t255,\n\t\t255\n\t],\n\taquamarine: [\n\t\t127,\n\t\t255,\n\t\t212\n\t],\n\tazure: [\n\t\t240,\n\t\t255,\n\t\t255\n\t],\n\tbeige: [\n\t\t245,\n\t\t245,\n\t\t220\n\t],\n\tbisque: [\n\t\t255,\n\t\t228,\n\t\t196\n\t],\n\tblack: [\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\tblanchedalmond: [\n\t\t255,\n\t\t235,\n\t\t205\n\t],\n\tblue: [\n\t\t0,\n\t\t0,\n\t\t255\n\t],\n\tblueviolet: [\n\t\t138,\n\t\t43,\n\t\t226\n\t],\n\tbrown: [\n\t\t165,\n\t\t42,\n\t\t42\n\t],\n\tburlywood: [\n\t\t222,\n\t\t184,\n\t\t135\n\t],\n\tcadetblue: [\n\t\t95,\n\t\t158,\n\t\t160\n\t],\n\tchartreuse: [\n\t\t127,\n\t\t255,\n\t\t0\n\t],\n\tchocolate: [\n\t\t210,\n\t\t105,\n\t\t30\n\t],\n\tcoral: [\n\t\t255,\n\t\t127,\n\t\t80\n\t],\n\tcornflowerblue: [\n\t\t100,\n\t\t149,\n\t\t237\n\t],\n\tcornsilk: [\n\t\t255,\n\t\t248,\n\t\t220\n\t],\n\tcrimson: [\n\t\t220,\n\t\t20,\n\t\t60\n\t],\n\tcyan: [\n\t\t0,\n\t\t255,\n\t\t255\n\t],\n\tdarkblue: [\n\t\t0,\n\t\t0,\n\t\t139\n\t],\n\tdarkcyan: [\n\t\t0,\n\t\t139,\n\t\t139\n\t],\n\tdarkgoldenrod: [\n\t\t184,\n\t\t134,\n\t\t11\n\t],\n\tdarkgray: [\n\t\t169,\n\t\t169,\n\t\t169\n\t],\n\tdarkgreen: [\n\t\t0,\n\t\t100,\n\t\t0\n\t],\n\tdarkgrey: [\n\t\t169,\n\t\t169,\n\t\t169\n\t],\n\tdarkkhaki: [\n\t\t189,\n\t\t183,\n\t\t107\n\t],\n\tdarkmagenta: [\n\t\t139,\n\t\t0,\n\t\t139\n\t],\n\tdarkolivegreen: [\n\t\t85,\n\t\t107,\n\t\t47\n\t],\n\tdarkorange: [\n\t\t255,\n\t\t140,\n\t\t0\n\t],\n\tdarkorchid: [\n\t\t153,\n\t\t50,\n\t\t204\n\t],\n\tdarkred: [\n\t\t139,\n\t\t0,\n\t\t0\n\t],\n\tdarksalmon: [\n\t\t233,\n\t\t150,\n\t\t122\n\t],\n\tdarkseagreen: [\n\t\t143,\n\t\t188,\n\t\t143\n\t],\n\tdarkslateblue: [\n\t\t72,\n\t\t61,\n\t\t139\n\t],\n\tdarkslategray: [\n\t\t47,\n\t\t79,\n\t\t79\n\t],\n\tdarkslategrey: [\n\t\t47,\n\t\t79,\n\t\t79\n\t],\n\tdarkturquoise: [\n\t\t0,\n\t\t206,\n\t\t209\n\t],\n\tdarkviolet: [\n\t\t148,\n\t\t0,\n\t\t211\n\t],\n\tdeeppink: [\n\t\t255,\n\t\t20,\n\t\t147\n\t],\n\tdeepskyblue: [\n\t\t0,\n\t\t191,\n\t\t255\n\t],\n\tdimgray: [\n\t\t105,\n\t\t105,\n\t\t105\n\t],\n\tdimgrey: [\n\t\t105,\n\t\t105,\n\t\t105\n\t],\n\tdodgerblue: [\n\t\t30,\n\t\t144,\n\t\t255\n\t],\n\tfirebrick: [\n\t\t178,\n\t\t34,\n\t\t34\n\t],\n\tfloralwhite: [\n\t\t255,\n\t\t250,\n\t\t240\n\t],\n\tforestgreen: [\n\t\t34,\n\t\t139,\n\t\t34\n\t],\n\tfuchsia: [\n\t\t255,\n\t\t0,\n\t\t255\n\t],\n\tgainsboro: [\n\t\t220,\n\t\t220,\n\t\t220\n\t],\n\tghostwhite: [\n\t\t248,\n\t\t248,\n\t\t255\n\t],\n\tgold: [\n\t\t255,\n\t\t215,\n\t\t0\n\t],\n\tgoldenrod: [\n\t\t218,\n\t\t165,\n\t\t32\n\t],\n\tgray: [\n\t\t128,\n\t\t128,\n\t\t128\n\t],\n\tgreen: [\n\t\t0,\n\t\t128,\n\t\t0\n\t],\n\tgreenyellow: [\n\t\t173,\n\t\t255,\n\t\t47\n\t],\n\tgrey: [\n\t\t128,\n\t\t128,\n\t\t128\n\t],\n\thoneydew: [\n\t\t240,\n\t\t255,\n\t\t240\n\t],\n\thotpink: [\n\t\t255,\n\t\t105,\n\t\t180\n\t],\n\tindianred: [\n\t\t205,\n\t\t92,\n\t\t92\n\t],\n\tindigo: [\n\t\t75,\n\t\t0,\n\t\t130\n\t],\n\tivory: [\n\t\t255,\n\t\t255,\n\t\t240\n\t],\n\tkhaki: [\n\t\t240,\n\t\t230,\n\t\t140\n\t],\n\tlavender: [\n\t\t230,\n\t\t230,\n\t\t250\n\t],\n\tlavenderblush: [\n\t\t255,\n\t\t240,\n\t\t245\n\t],\n\tlawngreen: [\n\t\t124,\n\t\t252,\n\t\t0\n\t],\n\tlemonchiffon: [\n\t\t255,\n\t\t250,\n\t\t205\n\t],\n\tlightblue: [\n\t\t173,\n\t\t216,\n\t\t230\n\t],\n\tlightcoral: [\n\t\t240,\n\t\t128,\n\t\t128\n\t],\n\tlightcyan: [\n\t\t224,\n\t\t255,\n\t\t255\n\t],\n\tlightgoldenrodyellow: [\n\t\t250,\n\t\t250,\n\t\t210\n\t],\n\tlightgray: [\n\t\t211,\n\t\t211,\n\t\t211\n\t],\n\tlightgreen: [\n\t\t144,\n\t\t238,\n\t\t144\n\t],\n\tlightgrey: [\n\t\t211,\n\t\t211,\n\t\t211\n\t],\n\tlightpink: [\n\t\t255,\n\t\t182,\n\t\t193\n\t],\n\tlightsalmon: [\n\t\t255,\n\t\t160,\n\t\t122\n\t],\n\tlightseagreen: [\n\t\t32,\n\t\t178,\n\t\t170\n\t],\n\tlightskyblue: [\n\t\t135,\n\t\t206,\n\t\t250\n\t],\n\tlightslategray: [\n\t\t119,\n\t\t136,\n\t\t153\n\t],\n\tlightslategrey: [\n\t\t119,\n\t\t136,\n\t\t153\n\t],\n\tlightsteelblue: [\n\t\t176,\n\t\t196,\n\t\t222\n\t],\n\tlightyellow: [\n\t\t255,\n\t\t255,\n\t\t224\n\t],\n\tlime: [\n\t\t0,\n\t\t255,\n\t\t0\n\t],\n\tlimegreen: [\n\t\t50,\n\t\t205,\n\t\t50\n\t],\n\tlinen: [\n\t\t250,\n\t\t240,\n\t\t230\n\t],\n\tmagenta: [\n\t\t255,\n\t\t0,\n\t\t255\n\t],\n\tmaroon: [\n\t\t128,\n\t\t0,\n\t\t0\n\t],\n\tmediumaquamarine: [\n\t\t102,\n\t\t205,\n\t\t170\n\t],\n\tmediumblue: [\n\t\t0,\n\t\t0,\n\t\t205\n\t],\n\tmediumorchid: [\n\t\t186,\n\t\t85,\n\t\t211\n\t],\n\tmediumpurple: [\n\t\t147,\n\t\t112,\n\t\t219\n\t],\n\tmediumseagreen: [\n\t\t60,\n\t\t179,\n\t\t113\n\t],\n\tmediumslateblue: [\n\t\t123,\n\t\t104,\n\t\t238\n\t],\n\tmediumspringgreen: [\n\t\t0,\n\t\t250,\n\t\t154\n\t],\n\tmediumturquoise: [\n\t\t72,\n\t\t209,\n\t\t204\n\t],\n\tmediumvioletred: [\n\t\t199,\n\t\t21,\n\t\t133\n\t],\n\tmidnightblue: [\n\t\t25,\n\t\t25,\n\t\t112\n\t],\n\tmintcream: [\n\t\t245,\n\t\t255,\n\t\t250\n\t],\n\tmistyrose: [\n\t\t255,\n\t\t228,\n\t\t225\n\t],\n\tmoccasin: [\n\t\t255,\n\t\t228,\n\t\t181\n\t],\n\tnavajowhite: [\n\t\t255,\n\t\t222,\n\t\t173\n\t],\n\tnavy: [\n\t\t0,\n\t\t0,\n\t\t128\n\t],\n\toldlace: [\n\t\t253,\n\t\t245,\n\t\t230\n\t],\n\tolive: [\n\t\t128,\n\t\t128,\n\t\t0\n\t],\n\tolivedrab: [\n\t\t107,\n\t\t142,\n\t\t35\n\t],\n\torange: [\n\t\t255,\n\t\t165,\n\t\t0\n\t],\n\torangered: [\n\t\t255,\n\t\t69,\n\t\t0\n\t],\n\torchid: [\n\t\t218,\n\t\t112,\n\t\t214\n\t],\n\tpalegoldenrod: [\n\t\t238,\n\t\t232,\n\t\t170\n\t],\n\tpalegreen: [\n\t\t152,\n\t\t251,\n\t\t152\n\t],\n\tpaleturquoise: [\n\t\t175,\n\t\t238,\n\t\t238\n\t],\n\tpalevioletred: [\n\t\t219,\n\t\t112,\n\t\t147\n\t],\n\tpapayawhip: [\n\t\t255,\n\t\t239,\n\t\t213\n\t],\n\tpeachpuff: [\n\t\t255,\n\t\t218,\n\t\t185\n\t],\n\tperu: [\n\t\t205,\n\t\t133,\n\t\t63\n\t],\n\tpink: [\n\t\t255,\n\t\t192,\n\t\t203\n\t],\n\tplum: [\n\t\t221,\n\t\t160,\n\t\t221\n\t],\n\tpowderblue: [\n\t\t176,\n\t\t224,\n\t\t230\n\t],\n\tpurple: [\n\t\t128,\n\t\t0,\n\t\t128\n\t],\n\trebeccapurple: [\n\t\t102,\n\t\t51,\n\t\t153\n\t],\n\tred: [\n\t\t255,\n\t\t0,\n\t\t0\n\t],\n\trosybrown: [\n\t\t188,\n\t\t143,\n\t\t143\n\t],\n\troyalblue: [\n\t\t65,\n\t\t105,\n\t\t225\n\t],\n\tsaddlebrown: [\n\t\t139,\n\t\t69,\n\t\t19\n\t],\n\tsalmon: [\n\t\t250,\n\t\t128,\n\t\t114\n\t],\n\tsandybrown: [\n\t\t244,\n\t\t164,\n\t\t96\n\t],\n\tseagreen: [\n\t\t46,\n\t\t139,\n\t\t87\n\t],\n\tseashell: [\n\t\t255,\n\t\t245,\n\t\t238\n\t],\n\tsienna: [\n\t\t160,\n\t\t82,\n\t\t45\n\t],\n\tsilver: [\n\t\t192,\n\t\t192,\n\t\t192\n\t],\n\tskyblue: [\n\t\t135,\n\t\t206,\n\t\t235\n\t],\n\tslateblue: [\n\t\t106,\n\t\t90,\n\t\t205\n\t],\n\tslategray: [\n\t\t112,\n\t\t128,\n\t\t144\n\t],\n\tslategrey: [\n\t\t112,\n\t\t128,\n\t\t144\n\t],\n\tsnow: [\n\t\t255,\n\t\t250,\n\t\t250\n\t],\n\tspringgreen: [\n\t\t0,\n\t\t255,\n\t\t127\n\t],\n\tsteelblue: [\n\t\t70,\n\t\t130,\n\t\t180\n\t],\n\ttan: [\n\t\t210,\n\t\t180,\n\t\t140\n\t],\n\tteal: [\n\t\t0,\n\t\t128,\n\t\t128\n\t],\n\tthistle: [\n\t\t216,\n\t\t191,\n\t\t216\n\t],\n\ttomato: [\n\t\t255,\n\t\t99,\n\t\t71\n\t],\n\tturquoise: [\n\t\t64,\n\t\t224,\n\t\t208\n\t],\n\tviolet: [\n\t\t238,\n\t\t130,\n\t\t238\n\t],\n\twheat: [\n\t\t245,\n\t\t222,\n\t\t179\n\t],\n\twhite: [\n\t\t255,\n\t\t255,\n\t\t255\n\t],\n\twhitesmoke: [\n\t\t245,\n\t\t245,\n\t\t245\n\t],\n\tyellow: [\n\t\t255,\n\t\t255,\n\t\t0\n\t],\n\tyellowgreen: [\n\t\t154,\n\t\t205,\n\t\t50\n\t]\n};\n//#endregion\n//#region src/util/interpolate-primitives.ts\nfunction interpolateNumber(from, to, t) {\n\treturn from + t * (to - from);\n}\nfunction interpolateArray(from, to, t) {\n\treturn from.map((d, i) => {\n\t\treturn interpolateNumber(d, to[i], t);\n\t});\n}\n//#endregion\n//#region src/expression/types/color.ts\n/**\n* Checks whether the specified color space is one of the supported interpolation color spaces.\n*\n* @param colorSpace Color space key to verify.\n* @returns `true` if the specified color space is one of the supported\n* interpolation color spaces, `false` otherwise\n*/\nfunction isSupportedInterpolationColorSpace(colorSpace) {\n\treturn colorSpace === \"rgb\" || colorSpace === \"hcl\" || colorSpace === \"lab\";\n}\n/**\n* Color representation used by WebGL.\n* Defined in sRGB color space and pre-blended with alpha.\n* @private\n*/\nvar Color = class Color {\n\t/**\n\t* @param r Red component premultiplied by `alpha` 0..1\n\t* @param g Green component premultiplied by `alpha` 0..1\n\t* @param b Blue component premultiplied by `alpha` 0..1\n\t* @param [alpha=1] Alpha component 0..1\n\t* @param [premultiplied=true] Whether the `r`, `g` and `b` values have already\n\t* been multiplied by alpha. If `true` nothing happens if `false` then they will\n\t* be multiplied automatically.\n\t*/\n\tconstructor(r, g, b, alpha = 1, premultiplied = true) {\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\t\tthis.a = alpha;\n\t\tif (!premultiplied) {\n\t\t\tthis.r *= alpha;\n\t\t\tthis.g *= alpha;\n\t\t\tthis.b *= alpha;\n\t\t\tif (!alpha) this.overwriteGetter(\"rgb\", [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha\n\t\t\t]);\n\t\t}\n\t}\n\tstatic {\n\t\tthis.black = new Color(0, 0, 0, 1);\n\t}\n\tstatic {\n\t\tthis.white = new Color(1, 1, 1, 1);\n\t}\n\tstatic {\n\t\tthis.transparent = new Color(0, 0, 0, 0);\n\t}\n\tstatic {\n\t\tthis.red = new Color(1, 0, 0, 1);\n\t}\n\t/**\n\t* Parses CSS color strings and converts colors to sRGB color space if needed.\n\t* Officially supported color formats:\n\t* - keyword, e.g. 'aquamarine' or 'steelblue'\n\t* - hex (with 3, 4, 6 or 8 digits), e.g. '#f0f' or '#e9bebea9'\n\t* - rgb and rgba, e.g. 'rgb(0,240,120)' or 'rgba(0%,94%,47%,0.1)' or 'rgb(0 240 120 / .3)'\n\t* - hsl and hsla, e.g. 'hsl(0,0%,83%)' or 'hsla(0,0%,83%,.5)' or 'hsl(0 0% 83% / 20%)'\n\t*\n\t* @param input CSS color string to parse.\n\t* @returns A `Color` instance, or `undefined` if the input is not a valid color string.\n\t*/\n\tstatic parse(input) {\n\t\tif (input instanceof Color) return input;\n\t\tif (typeof input !== \"string\") return;\n\t\tconst rgba = parseCssColor(input);\n\t\tif (rgba) return new Color(...rgba, false);\n\t}\n\t/**\n\t* Used in color interpolation and by 'to-rgba' expression.\n\t*\n\t* @returns Gien color, with reversed alpha blending, in sRGB color space.\n\t*/\n\tget rgb() {\n\t\tconst { r, g, b, a } = this;\n\t\tconst f = a || Infinity;\n\t\treturn this.overwriteGetter(\"rgb\", [\n\t\t\tr / f,\n\t\t\tg / f,\n\t\t\tb / f,\n\t\t\ta\n\t\t]);\n\t}\n\t/**\n\t* Used in color interpolation.\n\t*\n\t* @returns Gien color, with reversed alpha blending, in HCL color space.\n\t*/\n\tget hcl() {\n\t\treturn this.overwriteGetter(\"hcl\", rgbToHcl(this.rgb));\n\t}\n\t/**\n\t* Used in color interpolation.\n\t*\n\t* @returns Gien color, with reversed alpha blending, in LAB color space.\n\t*/\n\tget lab() {\n\t\treturn this.overwriteGetter(\"lab\", rgbToLab(this.rgb));\n\t}\n\t/**\n\t* Lazy getter pattern. When getter is called for the first time lazy value\n\t* is calculated and then overwrites getter function in given object instance.\n\t*\n\t* @example:\n\t* const redColor = Color.parse('red');\n\t* let x = redColor.hcl; // this will invoke `get hcl()`, which will calculate\n\t* // the value of red in HCL space and invoke this `overwriteGetter` function\n\t* // which in turn will set a field with a key 'hcl' in the `redColor` object.\n\t* // In other words it will override `get hcl()` from its `Color` prototype\n\t* // with its own property: hcl = [calculated red value in hcl].\n\t* let y = redColor.hcl; // next call will no longer invoke getter but simply\n\t* // return the previously calculated value\n\t* x === y; // true - `x` is exactly the same object as `y`\n\t*\n\t* @param getterKey Getter key\n\t* @param lazyValue Lazily calculated value to be memoized by current instance\n\t* @private\n\t*/\n\toverwriteGetter(getterKey, lazyValue) {\n\t\tObject.defineProperty(this, getterKey, { value: lazyValue });\n\t\treturn lazyValue;\n\t}\n\t/**\n\t* Used by 'to-string' expression.\n\t*\n\t* @returns Serialized color in format `rgba(r,g,b,a)`\n\t* where r,g,b are numbers within 0..255 and alpha is number within 1..0\n\t*\n\t* @example\n\t* var purple = new Color.parse('purple');\n\t* purple.toString; // = \"rgba(128,0,128,1)\"\n\t* var translucentGreen = new Color.parse('rgba(26, 207, 26, .73)');\n\t* translucentGreen.toString(); // = \"rgba(26,207,26,0.73)\"\n\t*/\n\ttoString() {\n\t\tconst [r, g, b, a] = this.rgb;\n\t\treturn `rgba(${[\n\t\t\tr,\n\t\t\tg,\n\t\t\tb\n\t\t].map((n) => Math.round(n * 255)).join(\",\")},${a})`;\n\t}\n\tstatic interpolate(from, to, t, spaceKey = \"rgb\") {\n\t\tswitch (spaceKey) {\n\t\t\tcase \"rgb\": {\n\t\t\t\tconst [r, g, b, alpha] = interpolateArray(from.rgb, to.rgb, t);\n\t\t\t\treturn new Color(r, g, b, alpha, false);\n\t\t\t}\n\t\t\tcase \"hcl\": {\n\t\t\t\tconst [hue0, chroma0, light0, alphaF] = from.hcl;\n\t\t\t\tconst [hue1, chroma1, light1, alphaT] = to.hcl;\n\t\t\t\tlet hue, chroma;\n\t\t\t\tif (!isNaN(hue0) && !isNaN(hue1)) {\n\t\t\t\t\tlet dh = hue1 - hue0;\n\t\t\t\t\tif (hue1 > hue0 && dh > 180) dh -= 360;\n\t\t\t\t\telse if (hue1 < hue0 && hue0 - hue1 > 180) dh += 360;\n\t\t\t\t\thue = hue0 + t * dh;\n\t\t\t\t} else if (!isNaN(hue0)) {\n\t\t\t\t\thue = hue0;\n\t\t\t\t\tif (light1 === 1 || light1 === 0) chroma = chroma0;\n\t\t\t\t} else if (!isNaN(hue1)) {\n\t\t\t\t\thue = hue1;\n\t\t\t\t\tif (light0 === 1 || light0 === 0) chroma = chroma1;\n\t\t\t\t} else hue = NaN;\n\t\t\t\tconst [r, g, b, alpha] = hclToRgb([\n\t\t\t\t\thue,\n\t\t\t\t\tchroma ?? interpolateNumber(chroma0, chroma1, t),\n\t\t\t\t\tinterpolateNumber(light0, light1, t),\n\t\t\t\t\tinterpolateNumber(alphaF, alphaT, t)\n\t\t\t\t]);\n\t\t\t\treturn new Color(r, g, b, alpha, false);\n\t\t\t}\n\t\t\tcase \"lab\": {\n\t\t\t\tconst [r, g, b, alpha] = labToRgb(interpolateArray(from.lab, to.lab, t));\n\t\t\t\treturn new Color(r, g, b, alpha, false);\n\t\t\t}\n\t\t}\n\t}\n};\n//#endregion\n//#region src/expression/types/collator.ts\nvar Collator = class {\n\tconstructor(caseSensitive, diacriticSensitive, locale) {\n\t\tif (caseSensitive) this.sensitivity = diacriticSensitive ? \"variant\" : \"case\";\n\t\telse this.sensitivity = diacriticSensitive ? \"accent\" : \"base\";\n\t\tthis.locale = locale;\n\t\tthis.collator = new Intl.Collator(this.locale ? this.locale : [], {\n\t\t\tsensitivity: this.sensitivity,\n\t\t\tusage: \"search\"\n\t\t});\n\t}\n\tcompare(lhs, rhs) {\n\t\treturn this.collator.compare(lhs, rhs);\n\t}\n\tresolvedLocale() {\n\t\treturn new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;\n\t}\n};\n//#endregion\n//#region src/expression/types/formatted.ts\nconst VERTICAL_ALIGN_OPTIONS = [\n\t\"bottom\",\n\t\"center\",\n\t\"top\"\n];\nvar FormattedSection = class {\n\tconstructor(text, image, scale, fontStack, textColor, verticalAlign) {\n\t\tthis.text = text;\n\t\tthis.image = image;\n\t\tthis.scale = scale;\n\t\tthis.fontStack = fontStack;\n\t\tthis.textColor = textColor;\n\t\tthis.verticalAlign = verticalAlign;\n\t}\n};\nvar Formatted = class Formatted {\n\tconstructor(sections) {\n\t\tthis.sections = sections;\n\t}\n\tstatic fromString(unformatted) {\n\t\treturn new Formatted([new FormattedSection(unformatted, null, null, null, null, null)]);\n\t}\n\tisEmpty() {\n\t\tif (this.sections.length === 0) return true;\n\t\treturn !this.sections.some((section) => section.text.length !== 0 || section.image && section.image.name.length !== 0);\n\t}\n\tstatic factory(text) {\n\t\tif (text instanceof Formatted) return text;\n\t\telse return Formatted.fromString(text);\n\t}\n\ttoString() {\n\t\tif (this.sections.length === 0) return \"\";\n\t\treturn this.sections.map((section) => section.text).join(\"\");\n\t}\n};\n//#endregion\n//#region src/expression/types/padding.ts\n/**\n* A set of four numbers representing padding around a box. Create instances from\n* bare arrays or numeric values using the static method `Padding.parse`.\n* @private\n*/\nvar Padding = class Padding {\n\tconstructor(values) {\n\t\tthis.values = values.slice();\n\t}\n\t/**\n\t* Numeric padding values\n\t* @param input A padding value\n\t* @returns A `Padding` instance, or `undefined` if the input is not a valid padding value.\n\t*/\n\tstatic parse(input) {\n\t\tif (input instanceof Padding) return input;\n\t\tif (typeof input === \"number\") return new Padding([\n\t\t\tinput,\n\t\t\tinput,\n\t\t\tinput,\n\t\t\tinput\n\t\t]);\n\t\tif (!Array.isArray(input)) return;\n\t\tif (input.length < 1 || input.length > 4) return;\n\t\tfor (const val of input) if (typeof val !== \"number\") return;\n\t\tswitch (input.length) {\n\t\t\tcase 1:\n\t\t\t\tinput = [\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[0]\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tinput = [\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[1],\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[1]\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tinput = [\n\t\t\t\t\tinput[0],\n\t\t\t\t\tinput[1],\n\t\t\t\t\tinput[2],\n\t\t\t\t\tinput[1]\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t}\n\t\treturn new Padding(input);\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.values);\n\t}\n\tstatic interpolate(from, to, t) {\n\t\treturn new Padding(interpolateArray(from.values, to.values, t));\n\t}\n};\n//#endregion\n//#region src/expression/types/number_array.ts\n/**\n* An array of numbers. Create instances from\n* bare arrays or numeric values using the static method `NumberArray.parse`.\n* @private\n*/\nvar NumberArray = class NumberArray {\n\tconstructor(values) {\n\t\tthis.values = values.slice();\n\t}\n\t/**\n\t* Numeric NumberArray values\n\t* @param input A NumberArray value\n\t* @returns A `NumberArray` instance, or `undefined` if the input is not a valid NumberArray value.\n\t*/\n\tstatic parse(input) {\n\t\tif (input instanceof NumberArray) return input;\n\t\tif (typeof input === \"number\") return new NumberArray([input]);\n\t\tif (!Array.isArray(input)) return;\n\t\tfor (const val of input) if (typeof val !== \"number\") return;\n\t\treturn new NumberArray(input);\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.values);\n\t}\n\tstatic interpolate(from, to, t) {\n\t\treturn new NumberArray(interpolateArray(from.values, to.values, t));\n\t}\n};\n//#endregion\n//#region src/expression/types/color_array.ts\n/**\n* An array of colors. Create instances from\n* bare arrays or strings using the static method `ColorArray.parse`.\n* @private\n*/\nvar ColorArray = class ColorArray {\n\tconstructor(values) {\n\t\tthis.values = values.slice();\n\t}\n\t/**\n\t* ColorArray values\n\t* @param input A ColorArray value\n\t* @returns A `ColorArray` instance, or `undefined` if the input is not a valid ColorArray value.\n\t*/\n\tstatic parse(input) {\n\t\tif (input instanceof ColorArray) return input;\n\t\tif (typeof input === \"string\") {\n\t\t\tconst parsed_val = Color.parse(input);\n\t\t\tif (!parsed_val) return;\n\t\t\treturn new ColorArray([parsed_val]);\n\t\t}\n\t\tif (!Array.isArray(input)) return;\n\t\tconst colors = [];\n\t\tfor (const val of input) {\n\t\t\tif (typeof val !== \"string\") return;\n\t\t\tconst parsed_val = Color.parse(val);\n\t\t\tif (!parsed_val) return;\n\t\t\tcolors.push(parsed_val);\n\t\t}\n\t\treturn new ColorArray(colors);\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.values);\n\t}\n\tstatic interpolate(from, to, t, spaceKey = \"rgb\") {\n\t\tconst colors = [];\n\t\tif (from.values.length != to.values.length) throw new Error(`colorArray: Arrays have mismatched length (${from.values.length} vs. ${to.values.length}), cannot interpolate.`);\n\t\tfor (let i = 0; i < from.values.length; i++) colors.push(Color.interpolate(from.values[i], to.values[i], t, spaceKey));\n\t\treturn new ColorArray(colors);\n\t}\n};\n//#endregion\n//#region src/expression/runtime_error.ts\nvar RuntimeError = class extends Error {\n\tconstructor(message, path) {\n\t\tsuper(message);\n\t\tthis.name = \"RuntimeError\";\n\t\tthis.path = path;\n\t}\n\ttoJSON() {\n\t\treturn this.message;\n\t}\n};\n//#endregion\n//#region src/expression/types/variable_anchor_offset_collection.ts\n/** Set of valid anchor positions, as a set for validation */\nconst anchors = /* @__PURE__ */ new Set([\n\t\"center\",\n\t\"left\",\n\t\"right\",\n\t\"top\",\n\t\"bottom\",\n\t\"top-left\",\n\t\"top-right\",\n\t\"bottom-left\",\n\t\"bottom-right\"\n]);\n/**\n* Utility class to assist managing values for text-variable-anchor-offset property. Create instances from\n* bare arrays using the static method `VariableAnchorOffsetCollection.parse`.\n* @private\n*/\nvar VariableAnchorOffsetCollection = class VariableAnchorOffsetCollection {\n\tconstructor(values) {\n\t\tthis.values = values.slice();\n\t}\n\tstatic parse(input) {\n\t\tif (input instanceof VariableAnchorOffsetCollection) return input;\n\t\tif (!Array.isArray(input) || input.length < 1 || input.length % 2 !== 0) return;\n\t\tfor (let i = 0; i < input.length; i += 2) {\n\t\t\tconst anchorValue = input[i];\n\t\t\tconst offsetValue = input[i + 1];\n\t\t\tif (typeof anchorValue !== \"string\" || !anchors.has(anchorValue)) return;\n\t\t\tif (!Array.isArray(offsetValue) || offsetValue.length !== 2 || typeof offsetValue[0] !== \"number\" || typeof offsetValue[1] !== \"number\") return;\n\t\t}\n\t\treturn new VariableAnchorOffsetCollection(input);\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.values);\n\t}\n\tstatic interpolate(from, to, t, key) {\n\t\tconst fromValues = from.values;\n\t\tconst toValues = to.values;\n\t\tif (fromValues.length !== toValues.length) throw new RuntimeError(`Cannot interpolate values of different length. from: ${from.toString()}, to: ${to.toString()}`, key);\n\t\tconst output = [];\n\t\tfor (let i = 0; i < fromValues.length; i += 2) {\n\t\t\tif (fromValues[i] !== toValues[i]) throw new RuntimeError(`Cannot interpolate values containing mismatched anchors. from[${i}]: ${fromValues[i]}, to[${i}]: ${toValues[i]}`, key);\n\t\t\toutput.push(fromValues[i]);\n\t\t\tconst [fx, fy] = fromValues[i + 1];\n\t\t\tconst [tx, ty] = toValues[i + 1];\n\t\t\toutput.push([interpolateNumber(fx, tx, t), interpolateNumber(fy, ty, t)]);\n\t\t}\n\t\treturn new VariableAnchorOffsetCollection(output);\n\t}\n};\n//#endregion\n//#region src/expression/types/resolved_image.ts\nvar ResolvedImage = class ResolvedImage {\n\tconstructor(options) {\n\t\tthis.name = options.name;\n\t\tthis.available = options.available;\n\t}\n\ttoString() {\n\t\treturn this.name;\n\t}\n\tstatic fromString(name) {\n\t\tif (!name) return null;\n\t\treturn new ResolvedImage({\n\t\t\tname,\n\t\t\tavailable: false\n\t\t});\n\t}\n};\n//#endregion\n//#region src/expression/types/projection_definition.ts\nvar ProjectionDefinition = class ProjectionDefinition {\n\tconstructor(from, to, transition) {\n\t\tthis.from = from;\n\t\tthis.to = to;\n\t\tthis.transition = transition;\n\t}\n\ttoString() {\n\t\tif (this.from === this.to && this.transition === 1) return this.from;\n\t\treturn JSON.stringify([\n\t\t\tthis.from,\n\t\t\tthis.to,\n\t\t\tthis.transition\n\t\t]);\n\t}\n\tstatic interpolate(from, to, t) {\n\t\treturn new ProjectionDefinition(from, to, t);\n\t}\n\tstatic parse(input) {\n\t\tif (input instanceof ProjectionDefinition) return input;\n\t\tif (Array.isArray(input) && input.length === 3 && typeof input[0] === \"string\" && typeof input[1] === \"string\" && typeof input[2] === \"number\") return new ProjectionDefinition(input[0], input[1], input[2]);\n\t\tif (typeof input === \"object\" && typeof input.from === \"string\" && typeof input.to === \"string\" && typeof input.transition === \"number\") return new ProjectionDefinition(input.from, input.to, input.transition);\n\t\tif (typeof input === \"string\") return new ProjectionDefinition(input, input, 1);\n\t}\n};\n//#endregion\n//#region src/expression/values.ts\nfunction validateRGBA(r, g, b, a) {\n\tif (!(typeof r === \"number\" && r >= 0 && r <= 255 && typeof g === \"number\" && g >= 0 && g <= 255 && typeof b === \"number\" && b >= 0 && b <= 255)) return `Invalid rgba value [${(typeof a === \"number\" ? [\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t] : [\n\t\tr,\n\t\tg,\n\t\tb\n\t]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`;\n\tif (!(typeof a === \"undefined\" || typeof a === \"number\" && a >= 0 && a <= 1)) return `Invalid rgba value [${[\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t].join(\", \")}]: 'a' must be between 0 and 1.`;\n\treturn null;\n}\nfunction isValue(mixed) {\n\tif (mixed === null || typeof mixed === \"string\" || typeof mixed === \"boolean\" || typeof mixed === \"number\" || mixed instanceof ProjectionDefinition || mixed instanceof Color || mixed instanceof Collator || mixed instanceof Formatted || mixed instanceof Padding || mixed instanceof NumberArray || mixed instanceof ColorArray || mixed instanceof VariableAnchorOffsetCollection || mixed instanceof ResolvedImage) return true;\n\telse if (Array.isArray(mixed)) {\n\t\tfor (const item of mixed) if (!isValue(item)) return false;\n\t\treturn true;\n\t} else if (typeof mixed === \"object\") {\n\t\tfor (const key in mixed) if (!isValue(mixed[key])) return false;\n\t\treturn true;\n\t} else return false;\n}\nfunction typeOf(value) {\n\tif (value === null) return NullType;\n\telse if (typeof value === \"string\") return StringType;\n\telse if (typeof value === \"boolean\") return BooleanType;\n\telse if (typeof value === \"number\") return NumberType;\n\telse if (value instanceof Color) return ColorType;\n\telse if (value instanceof ProjectionDefinition) return ProjectionDefinitionType;\n\telse if (value instanceof Collator) return CollatorType;\n\telse if (value instanceof Formatted) return FormattedType;\n\telse if (value instanceof Padding) return PaddingType;\n\telse if (value instanceof NumberArray) return NumberArrayType;\n\telse if (value instanceof ColorArray) return ColorArrayType;\n\telse if (value instanceof VariableAnchorOffsetCollection) return VariableAnchorOffsetCollectionType;\n\telse if (value instanceof ResolvedImage) return ResolvedImageType;\n\telse if (Array.isArray(value)) {\n\t\tconst length = value.length;\n\t\tlet itemType;\n\t\tfor (const item of value) {\n\t\t\tconst t = typeOf(item);\n\t\t\tif (!itemType) itemType = t;\n\t\t\telse if (itemType === t) continue;\n\t\t\telse {\n\t\t\t\titemType = ValueType;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn array(itemType || ValueType, length);\n\t} else return ObjectType;\n}\nfunction valueToString(value) {\n\tconst type = typeof value;\n\tif (value === null) return \"\";\n\telse if (type === \"string\" || type === \"number\" || type === \"boolean\") return String(value);\n\telse if (value instanceof Color || value instanceof ProjectionDefinition || value instanceof Formatted || value instanceof Padding || value instanceof NumberArray || value instanceof ColorArray || value instanceof VariableAnchorOffsetCollection || value instanceof ResolvedImage) return value.toString();\n\telse return JSON.stringify(value);\n}\n//#endregion\n//#region src/expression/definitions/literal.ts\nvar Literal = class Literal {\n\tconstructor(type, value) {\n\t\tthis.type = type;\n\t\tthis.value = value;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(`'literal' expression requires exactly one argument, but found ${args.length - 1} instead.`);\n\t\tif (!isValue(args[1])) return context.error(\"invalid value\");\n\t\tconst value = args[1];\n\t\tlet type = typeOf(value);\n\t\tconst expected = context.expectedType;\n\t\tif (type.kind === \"array\" && type.N === 0 && expected && expected.kind === \"array\" && (typeof expected.N !== \"number\" || expected.N === 0)) type = expected;\n\t\treturn new Literal(type, value);\n\t}\n\tevaluate() {\n\t\treturn this.value;\n\t}\n\teachChild() {}\n\toutputDefined() {\n\t\treturn true;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/assertion.ts\nconst types$1 = {\n\tstring: StringType,\n\tnumber: NumberType,\n\tboolean: BooleanType,\n\tobject: ObjectType\n};\nvar Assertion = class Assertion {\n\tconstructor(type, args, key) {\n\t\tthis.type = type;\n\t\tthis.args = args;\n\t\tthis.key = key;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 2) return context.error(\"Expected at least one argument.\");\n\t\tlet i = 1;\n\t\tlet type;\n\t\tconst name = args[0];\n\t\tif (name === \"array\") {\n\t\t\tlet itemType;\n\t\t\tif (args.length > 2) {\n\t\t\t\tconst type = args[1];\n\t\t\t\tif (typeof type !== \"string\" || !(type in types$1) || type === \"object\") return context.error(\"The item type argument of \\\"array\\\" must be one of string, number, boolean\", 1);\n\t\t\t\titemType = types$1[type];\n\t\t\t\ti++;\n\t\t\t} else itemType = ValueType;\n\t\t\tlet N;\n\t\t\tif (args.length > 3) {\n\t\t\t\tif (args[2] !== null && (typeof args[2] !== \"number\" || args[2] < 0 || args[2] !== Math.floor(args[2]))) return context.error(\"The length argument to \\\"array\\\" must be a positive integer literal\", 2);\n\t\t\t\tN = args[2];\n\t\t\t\ti++;\n\t\t\t}\n\t\t\ttype = array(itemType, N);\n\t\t} else {\n\t\t\tif (!types$1[name]) throw new Error(`Types doesn't contain name = ${name}`);\n\t\t\ttype = types$1[name];\n\t\t}\n\t\tconst parsed = [];\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst input = context.parse(args[i], i, ValueType);\n\t\t\tif (!input) return null;\n\t\t\tparsed.push(input);\n\t\t}\n\t\treturn new Assertion(type, parsed, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tfor (let i = 0; i < this.args.length; i++) {\n\t\t\tconst value = this.args[i].evaluate(ctx);\n\t\t\tif (!checkSubtype(this.type, typeOf(value))) return value;\n\t\t\telse if (i === this.args.length - 1) throw new RuntimeError(`Expected value to be of type ${typeToString(this.type)}, but found ${typeToString(typeOf(value))} instead.`, this.key);\n\t\t}\n\t\tthrow new Error();\n\t}\n\teachChild(fn) {\n\t\tthis.args.forEach(fn);\n\t}\n\toutputDefined() {\n\t\treturn this.args.every((arg) => arg.outputDefined());\n\t}\n};\n//#endregion\n//#region src/expression/definitions/coercion.ts\nconst types = {\n\t\"to-boolean\": BooleanType,\n\t\"to-color\": ColorType,\n\t\"to-number\": NumberType,\n\t\"to-string\": StringType\n};\n/**\n* Special form for error-coalescing coercion expressions \"to-number\",\n* \"to-color\". Since these coercions can fail at runtime, they accept multiple\n* arguments, only evaluating one at a time until one succeeds.\n*\n* @private\n*/\nvar Coercion = class Coercion {\n\tconstructor(type, args, key) {\n\t\tthis.type = type;\n\t\tthis.args = args;\n\t\tthis.key = key;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 2) return context.error(\"Expected at least one argument.\");\n\t\tconst name = args[0];\n\t\tif (!types[name]) throw new Error(`Can't parse ${name} as it is not part of the known types`);\n\t\tif ((name === \"to-boolean\" || name === \"to-string\") && args.length !== 2) return context.error(\"Expected one argument.\");\n\t\tconst type = types[name];\n\t\tconst parsed = [];\n\t\tfor (let i = 1; i < args.length; i++) {\n\t\t\tconst input = context.parse(args[i], i, ValueType);\n\t\t\tif (!input) return null;\n\t\t\tparsed.push(input);\n\t\t}\n\t\treturn new Coercion(type, parsed, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tswitch (this.type.kind) {\n\t\t\tcase \"boolean\": return Boolean(this.args[0].evaluate(ctx));\n\t\t\tcase \"color\": {\n\t\t\t\tlet input;\n\t\t\t\tlet error;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tinput = arg.evaluate(ctx);\n\t\t\t\t\terror = null;\n\t\t\t\t\tif (input instanceof Color) return input;\n\t\t\t\t\telse if (typeof input === \"string\") {\n\t\t\t\t\t\tconst c = ctx.parseColor(input);\n\t\t\t\t\t\tif (c) return c;\n\t\t\t\t\t} else if (Array.isArray(input)) {\n\t\t\t\t\t\tif (input.length < 3 || input.length > 4) error = `Invalid rgba value ${JSON.stringify(input)}: expected an array containing either three or four numeric values.`;\n\t\t\t\t\t\telse error = validateRGBA(input[0], input[1], input[2], input[3]);\n\t\t\t\t\t\tif (!error) return new Color(input[0] / 255, input[1] / 255, input[2] / 255, input[3]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(error || `Could not parse color from value '${typeof input === \"string\" ? input : JSON.stringify(input)}'`, this.key);\n\t\t\t}\n\t\t\tcase \"padding\": {\n\t\t\t\tlet input;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tinput = arg.evaluate(ctx);\n\t\t\t\t\tconst pad = Padding.parse(input);\n\t\t\t\t\tif (pad) return pad;\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(`Could not parse padding from value '${typeof input === \"string\" ? input : JSON.stringify(input)}'`, this.key);\n\t\t\t}\n\t\t\tcase \"numberArray\": {\n\t\t\t\tlet input;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tinput = arg.evaluate(ctx);\n\t\t\t\t\tconst val = NumberArray.parse(input);\n\t\t\t\t\tif (val) return val;\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(`Could not parse numberArray from value '${typeof input === \"string\" ? input : JSON.stringify(input)}'`, this.key);\n\t\t\t}\n\t\t\tcase \"colorArray\": {\n\t\t\t\tlet input;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tinput = arg.evaluate(ctx);\n\t\t\t\t\tconst val = ColorArray.parse(input);\n\t\t\t\t\tif (val) return val;\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(`Could not parse colorArray from value '${typeof input === \"string\" ? input : JSON.stringify(input)}'`, this.key);\n\t\t\t}\n\t\t\tcase \"variableAnchorOffsetCollection\": {\n\t\t\t\tlet input;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tinput = arg.evaluate(ctx);\n\t\t\t\t\tconst coll = VariableAnchorOffsetCollection.parse(input);\n\t\t\t\t\tif (coll) return coll;\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(`Could not parse variableAnchorOffsetCollection from value '${typeof input === \"string\" ? input : JSON.stringify(input)}'`, this.key);\n\t\t\t}\n\t\t\tcase \"number\": {\n\t\t\t\tlet value = null;\n\t\t\t\tfor (const arg of this.args) {\n\t\t\t\t\tvalue = arg.evaluate(ctx);\n\t\t\t\t\tif (value === null) return 0;\n\t\t\t\t\tconst num = Number(value);\n\t\t\t\t\tif (isNaN(num)) continue;\n\t\t\t\t\treturn num;\n\t\t\t\t}\n\t\t\t\tthrow new RuntimeError(`Could not convert ${JSON.stringify(value)} to number.`, this.key);\n\t\t\t}\n\t\t\tcase \"formatted\": return Formatted.fromString(valueToString(this.args[0].evaluate(ctx)));\n\t\t\tcase \"resolvedImage\": return ResolvedImage.fromString(valueToString(this.args[0].evaluate(ctx)));\n\t\t\tcase \"projectionDefinition\": return this.args[0].evaluate(ctx);\n\t\t\tdefault: return valueToString(this.args[0].evaluate(ctx));\n\t\t}\n\t}\n\teachChild(fn) {\n\t\tthis.args.forEach(fn);\n\t}\n\toutputDefined() {\n\t\treturn this.args.every((arg) => arg.outputDefined());\n\t}\n};\n//#endregion\n//#region src/expression/evaluation_context.ts\nconst geometryTypes = [\n\t\"Unknown\",\n\t\"Point\",\n\t\"LineString\",\n\t\"Polygon\"\n];\nvar EvaluationContext = class {\n\tconstructor() {\n\t\tthis.globals = null;\n\t\tthis.feature = null;\n\t\tthis.featureState = null;\n\t\tthis.formattedSection = null;\n\t\tthis._parseColorCache = /* @__PURE__ */ new Map();\n\t\tthis.availableImages = null;\n\t\tthis.canonical = null;\n\t}\n\tid() {\n\t\treturn this.feature && \"id\" in this.feature ? this.feature.id : null;\n\t}\n\tgeometryType() {\n\t\treturn this.feature ? typeof this.feature.type === \"number\" ? geometryTypes[this.feature.type] : this.feature.type : null;\n\t}\n\tgeometry() {\n\t\treturn this.feature && \"geometry\" in this.feature ? this.feature.geometry : null;\n\t}\n\tcanonicalID() {\n\t\treturn this.canonical;\n\t}\n\tproperties() {\n\t\treturn this.feature && this.feature.properties || {};\n\t}\n\tparseColor(input) {\n\t\tlet cached = this._parseColorCache.get(input);\n\t\tif (!cached) {\n\t\t\tcached = Color.parse(input);\n\t\t\tthis._parseColorCache.set(input, cached);\n\t\t}\n\t\treturn cached;\n\t}\n};\n//#endregion\n//#region src/expression/parsing_context.ts\n/**\n* State associated parsing at a given point in an expression tree.\n* @private\n*/\nvar ParsingContext = class ParsingContext {\n\tconstructor(registry, isConstantFunc, path = [], expectedType, scope = new Scope(), errors = []) {\n\t\tthis.registry = registry;\n\t\tthis.path = path;\n\t\tthis.key = path.map((part) => `[${part}]`).join(\"\");\n\t\tthis.scope = scope;\n\t\tthis.errors = errors;\n\t\tthis.expectedType = expectedType;\n\t\tthis._isConstant = isConstantFunc;\n\t}\n\t/**\n\t* @param expr the JSON expression to parse\n\t* @param index the optional argument index if this expression is an argument of a parent expression that's being parsed\n\t* @param options\n\t* @param options.omitTypeAnnotations set true to omit inferred type annotations. Caller beware: with this option set, the parsed expression's type will NOT satisfy `expectedType` if it would normally be wrapped in an inferred annotation.\n\t* @private\n\t*/\n\tparse(expr, index, expectedType, bindings, options = {}) {\n\t\tif (index) return this.concat(index, expectedType, bindings)._parse(expr, options);\n\t\treturn this._parse(expr, options);\n\t}\n\t_parse(expr, options) {\n\t\tif (expr === null || typeof expr === \"string\" || typeof expr === \"boolean\" || typeof expr === \"number\") expr = [\"literal\", expr];\n\t\tconst key = this.key;\n\t\tfunction annotate(parsed, type, typeAnnotation) {\n\t\t\tif (typeAnnotation === \"assert\") return new Assertion(type, [parsed], key);\n\t\t\telse if (typeAnnotation === \"coerce\") return new Coercion(type, [parsed], key);\n\t\t\telse return parsed;\n\t\t}\n\t\tif (Array.isArray(expr)) {\n\t\t\tif (expr.length === 0) return this.error(\"Expected an array with at least one element. If you wanted a literal array, use [\\\"literal\\\", []].\");\n\t\t\tconst op = expr[0];\n\t\t\tif (typeof op !== \"string\") {\n\t\t\t\tthis.error(`Expression name must be a string, but found ${typeof op} instead. If you wanted a literal array, use [\"literal\", [...]].`, 0);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst Expr = this.registry[op];\n\t\t\tif (Expr) {\n\t\t\t\tlet parsed = Expr.parse(expr, this);\n\t\t\t\tif (!parsed) return null;\n\t\t\t\tif (this.expectedType) {\n\t\t\t\t\tconst expected = this.expectedType;\n\t\t\t\t\tconst actual = parsed.type;\n\t\t\t\t\tif ((expected.kind === \"string\" || expected.kind === \"number\" || expected.kind === \"boolean\" || expected.kind === \"object\" || expected.kind === \"array\") && actual.kind === \"value\") parsed = annotate(parsed, expected, options.typeAnnotation || \"assert\");\n\t\t\t\t\telse if (\"projectionDefinition\" === expected.kind && [\"string\", \"array\"].includes(actual.kind) || [\n\t\t\t\t\t\t\"color\",\n\t\t\t\t\t\t\"formatted\",\n\t\t\t\t\t\t\"resolvedImage\"\n\t\t\t\t\t].includes(expected.kind) && [\"value\", \"string\"].includes(actual.kind) || [\"padding\", \"numberArray\"].includes(expected.kind) && [\n\t\t\t\t\t\t\"value\",\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\t\"array\"\n\t\t\t\t\t].includes(actual.kind) || \"colorArray\" === expected.kind && [\n\t\t\t\t\t\t\"value\",\n\t\t\t\t\t\t\"string\",\n\t\t\t\t\t\t\"array\"\n\t\t\t\t\t].includes(actual.kind) || \"variableAnchorOffsetCollection\" === expected.kind && [\"value\", \"array\"].includes(actual.kind)) parsed = annotate(parsed, expected, options.typeAnnotation || \"coerce\");\n\t\t\t\t\telse if (this.checkSubtype(expected, actual)) return null;\n\t\t\t\t}\n\t\t\t\tif (!(parsed instanceof Literal) && parsed.type.kind !== \"resolvedImage\" && this._isConstant(parsed)) {\n\t\t\t\t\tconst ec = new EvaluationContext();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tparsed = new Literal(parsed.type, parsed.evaluate(ec));\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tthis.error(e.message);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn parsed;\n\t\t\t}\n\t\t\treturn this.error(`Unknown expression \"${op}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n\t\t} else if (typeof expr === \"undefined\") return this.error(\"'undefined' value invalid. Use null instead.\");\n\t\telse if (typeof expr === \"object\") return this.error(\"Bare objects invalid. Use [\\\"literal\\\", {...}] instead.\");\n\t\telse return this.error(`Expected an array, but found ${typeof expr} instead.`);\n\t}\n\t/**\n\t* Returns a copy of this context suitable for parsing the subexpression at\n\t* index `index`, optionally appending to 'let' binding map.\n\t*\n\t* Note that `errors` property, intended for collecting errors while\n\t* parsing, is copied by reference rather than cloned.\n\t* @private\n\t*/\n\tconcat(index, expectedType, bindings) {\n\t\tconst path = typeof index === \"number\" ? this.path.concat(index) : this.path;\n\t\tconst scope = bindings ? this.scope.concat(bindings) : this.scope;\n\t\treturn new ParsingContext(this.registry, this._isConstant, path, expectedType || null, scope, this.errors);\n\t}\n\t/**\n\t* Push a parsing (or type checking) error into the `this.errors`\n\t* @param error The message\n\t* @param keys Optionally specify the source of the error at a child\n\t* of the current expression at `this.key`.\n\t* @private\n\t*/\n\terror(error, ...keys) {\n\t\tconst key = `${this.key}${keys.map((k) => `[${k}]`).join(\"\")}`;\n\t\tthis.errors.push(new ExpressionParsingError(key, error));\n\t}\n\t/**\n\t* Returns null if `t` is a subtype of `expected`; otherwise returns an\n\t* error message and also pushes it to `this.errors`.\n\t* @param expected The expected type\n\t* @param t The actual type\n\t* @returns null if `t` is a subtype of `expected`; otherwise returns an error message\n\t*/\n\tcheckSubtype(expected, t) {\n\t\tconst error = checkSubtype(expected, t);\n\t\tif (error) this.error(error);\n\t\treturn error;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/let.ts\nvar Let = class Let {\n\tconstructor(bindings, result) {\n\t\tthis.type = result.type;\n\t\tthis.bindings = [].concat(bindings);\n\t\tthis.result = result;\n\t}\n\tevaluate(ctx) {\n\t\treturn this.result.evaluate(ctx);\n\t}\n\teachChild(fn) {\n\t\tfor (const binding of this.bindings) fn(binding[1]);\n\t\tfn(this.result);\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 4) return context.error(`Expected at least 3 arguments, but found ${args.length - 1} instead.`);\n\t\tconst bindings = [];\n\t\tfor (let i = 1; i < args.length - 1; i += 2) {\n\t\t\tconst name = args[i];\n\t\t\tif (typeof name !== \"string\") return context.error(`Expected string, but found ${typeof name} instead.`, i);\n\t\t\tif (/[^a-zA-Z0-9_]/.test(name)) return context.error(\"Variable names must contain only alphanumeric characters or '_'.\", i);\n\t\t\tconst value = context.parse(args[i + 1], i + 1);\n\t\t\tif (!value) return null;\n\t\t\tbindings.push([name, value]);\n\t\t}\n\t\tconst result = context.parse(args[args.length - 1], args.length - 1, context.expectedType, bindings);\n\t\tif (!result) return null;\n\t\treturn new Let(bindings, result);\n\t}\n\toutputDefined() {\n\t\treturn this.result.outputDefined();\n\t}\n};\n//#endregion\n//#region src/expression/definitions/var.ts\nvar Var = class Var {\n\tconstructor(name, boundExpression) {\n\t\tthis.type = boundExpression.type;\n\t\tthis.name = name;\n\t\tthis.boundExpression = boundExpression;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2 || typeof args[1] !== \"string\") return context.error(\"'var' expression requires exactly one string literal argument.\");\n\t\tconst name = args[1];\n\t\tif (!context.scope.has(name)) return context.error(`Unknown variable \"${name}\". Make sure \"${name}\" has been bound in an enclosing \"let\" expression before using it.`, 1);\n\t\treturn new Var(name, context.scope.get(name));\n\t}\n\tevaluate(ctx) {\n\t\treturn this.boundExpression.evaluate(ctx);\n\t}\n\teachChild() {}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/at.ts\nvar At = class At {\n\tconstructor(type, index, input, key) {\n\t\tthis.type = type;\n\t\tthis.index = index;\n\t\tthis.input = input;\n\t\tthis.key = key;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 3) return context.error(`Expected 2 arguments, but found ${args.length - 1} instead.`);\n\t\tconst index = context.parse(args[1], 1, NumberType);\n\t\tconst input = context.parse(args[2], 2, array(context.expectedType || ValueType));\n\t\tif (!index || !input) return null;\n\t\tconst t = input.type;\n\t\treturn new At(t.itemType, index, input, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst index = this.index.evaluate(ctx);\n\t\tconst array = this.input.evaluate(ctx);\n\t\tif (index < 0) throw new RuntimeError(`Array index out of bounds: ${index} < 0.`, this.key);\n\t\tif (index >= array.length) throw new RuntimeError(`Array index out of bounds: ${index} > ${array.length - 1}.`, this.key);\n\t\tif (index !== Math.floor(index)) throw new RuntimeError(`Array index must be an integer, but found ${index} instead.`, this.key);\n\t\treturn array[index];\n\t}\n\teachChild(fn) {\n\t\tfn(this.index);\n\t\tfn(this.input);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/in.ts\nvar In = class In {\n\tconstructor(needle, haystack, key) {\n\t\tthis.needle = needle;\n\t\tthis.haystack = haystack;\n\t\tthis.key = key;\n\t\tthis.type = BooleanType;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 3) return context.error(`Expected 2 arguments, but found ${args.length - 1} instead.`);\n\t\tconst needle = context.parse(args[1], 1, ValueType);\n\t\tconst haystack = context.parse(args[2], 2, ValueType);\n\t\tif (!needle || !haystack) return null;\n\t\tif (!isValidType(needle.type, [\n\t\t\tBooleanType,\n\t\t\tStringType,\n\t\t\tNumberType,\n\t\t\tNullType,\n\t\t\tValueType\n\t\t])) return context.error(`Expected first argument to be of type boolean, string, number or null, but found ${typeToString(needle.type)} instead`);\n\t\treturn new In(needle, haystack, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst needle = this.needle.evaluate(ctx);\n\t\tconst haystack = this.haystack.evaluate(ctx);\n\t\tif (!haystack) return false;\n\t\tif (!isValidNativeType(needle, [\n\t\t\t\"boolean\",\n\t\t\t\"string\",\n\t\t\t\"number\",\n\t\t\t\"null\"\n\t\t])) throw new RuntimeError(`Expected first argument to be of type boolean, string, number or null, but found ${typeToString(typeOf(needle))} instead.`, this.key);\n\t\tif (!isValidNativeType(haystack, [\"string\", \"array\"])) throw new RuntimeError(`Expected second argument to be of type array or string, but found ${typeToString(typeOf(haystack))} instead.`, this.key);\n\t\treturn haystack.indexOf(needle) >= 0;\n\t}\n\teachChild(fn) {\n\t\tfn(this.needle);\n\t\tfn(this.haystack);\n\t}\n\toutputDefined() {\n\t\treturn true;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/index_of.ts\nvar IndexOf = class IndexOf {\n\tconstructor(needle, haystack, key, fromIndex) {\n\t\tthis.needle = needle;\n\t\tthis.haystack = haystack;\n\t\tthis.key = key;\n\t\tthis.fromIndex = fromIndex;\n\t\tthis.type = NumberType;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length <= 2 || args.length >= 5) return context.error(`Expected 2 or 3 arguments, but found ${args.length - 1} instead.`);\n\t\tconst needle = context.parse(args[1], 1, ValueType);\n\t\tconst haystack = context.parse(args[2], 2, ValueType);\n\t\tif (!needle || !haystack) return null;\n\t\tif (!isValidType(needle.type, [\n\t\t\tBooleanType,\n\t\t\tStringType,\n\t\t\tNumberType,\n\t\t\tNullType,\n\t\t\tValueType\n\t\t])) return context.error(`Expected first argument to be of type boolean, string, number or null, but found ${typeToString(needle.type)} instead`);\n\t\tif (args.length === 4) {\n\t\t\tconst fromIndex = context.parse(args[3], 3, NumberType);\n\t\t\tif (!fromIndex) return null;\n\t\t\treturn new IndexOf(needle, haystack, context.key, fromIndex);\n\t\t} else return new IndexOf(needle, haystack, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst needle = this.needle.evaluate(ctx);\n\t\tconst haystack = this.haystack.evaluate(ctx);\n\t\tif (!isValidNativeType(needle, [\n\t\t\t\"boolean\",\n\t\t\t\"string\",\n\t\t\t\"number\",\n\t\t\t\"null\"\n\t\t])) throw new RuntimeError(`Expected first argument to be of type boolean, string, number or null, but found ${typeToString(typeOf(needle))} instead.`, this.key);\n\t\tlet fromIndex;\n\t\tif (this.fromIndex) fromIndex = this.fromIndex.evaluate(ctx);\n\t\tif (isValidNativeType(haystack, [\"string\"])) {\n\t\t\tconst rawIndex = haystack.indexOf(needle, fromIndex);\n\t\t\tif (rawIndex === -1) return -1;\n\t\t\telse return [...haystack.slice(0, rawIndex)].length;\n\t\t} else if (isValidNativeType(haystack, [\"array\"])) return haystack.indexOf(needle, fromIndex);\n\t\telse throw new RuntimeError(`Expected second argument to be of type array or string, but found ${typeToString(typeOf(haystack))} instead.`, this.key);\n\t}\n\teachChild(fn) {\n\t\tfn(this.needle);\n\t\tfn(this.haystack);\n\t\tif (this.fromIndex) fn(this.fromIndex);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/match.ts\nvar Match = class Match {\n\tconstructor(inputType, outputType, input, cases, outputs, otherwise) {\n\t\tthis.inputType = inputType;\n\t\tthis.type = outputType;\n\t\tthis.input = input;\n\t\tthis.cases = cases;\n\t\tthis.outputs = outputs;\n\t\tthis.otherwise = otherwise;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 5) return context.error(`Expected at least 4 arguments, but found only ${args.length - 1}.`);\n\t\tif (args.length % 2 !== 1) return context.error(\"Expected an even number of arguments.\");\n\t\tlet inputType;\n\t\tlet outputType;\n\t\tif (context.expectedType && context.expectedType.kind !== \"value\") outputType = context.expectedType;\n\t\tconst cases = {};\n\t\tconst outputs = [];\n\t\tfor (let i = 2; i < args.length - 1; i += 2) {\n\t\t\tlet labels = args[i];\n\t\t\tconst value = args[i + 1];\n\t\t\tif (!Array.isArray(labels)) labels = [labels];\n\t\t\tconst labelContext = context.concat(i);\n\t\t\tif (labels.length === 0) return labelContext.error(\"Expected at least one branch label.\");\n\t\t\tfor (const label of labels) {\n\t\t\t\tif (typeof label !== \"number\" && typeof label !== \"string\") return labelContext.error(\"Branch labels must be numbers or strings.\");\n\t\t\t\telse if (typeof label === \"number\" && Math.abs(label) > Number.MAX_SAFE_INTEGER) return labelContext.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);\n\t\t\t\telse if (typeof label === \"number\" && Math.floor(label) !== label) return labelContext.error(\"Numeric branch labels must be integer values.\");\n\t\t\t\telse if (!inputType) inputType = typeOf(label);\n\t\t\t\telse if (labelContext.checkSubtype(inputType, typeOf(label))) return null;\n\t\t\t\tif (typeof cases[String(label)] !== \"undefined\") return labelContext.error(\"Branch labels must be unique.\");\n\t\t\t\tcases[String(label)] = outputs.length;\n\t\t\t}\n\t\t\tconst result = context.parse(value, i, outputType);\n\t\t\tif (!result) return null;\n\t\t\toutputType = outputType || result.type;\n\t\t\toutputs.push(result);\n\t\t}\n\t\tconst input = context.parse(args[1], 1, ValueType);\n\t\tif (!input) return null;\n\t\tconst otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n\t\tif (!otherwise) return null;\n\t\tif (input.type.kind !== \"value\" && context.concat(1).checkSubtype(inputType, input.type)) return null;\n\t\treturn new Match(inputType, outputType, input, cases, outputs, otherwise);\n\t}\n\tevaluate(ctx) {\n\t\tconst input = this.input.evaluate(ctx);\n\t\treturn (typeOf(input) === this.inputType && this.outputs[this.cases[input]] || this.otherwise).evaluate(ctx);\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t\tthis.outputs.forEach(fn);\n\t\tfn(this.otherwise);\n\t}\n\toutputDefined() {\n\t\treturn this.outputs.every((out) => out.outputDefined()) && this.otherwise.outputDefined();\n\t}\n};\n//#endregion\n//#region src/expression/definitions/case.ts\nvar Case = class Case {\n\tconstructor(type, branches, otherwise) {\n\t\tthis.type = type;\n\t\tthis.branches = branches;\n\t\tthis.otherwise = otherwise;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 4) return context.error(`Expected at least 3 arguments, but found only ${args.length - 1}.`);\n\t\tif (args.length % 2 !== 0) return context.error(\"Expected an odd number of arguments.\");\n\t\tlet outputType;\n\t\tif (context.expectedType && context.expectedType.kind !== \"value\") outputType = context.expectedType;\n\t\tconst branches = [];\n\t\tfor (let i = 1; i < args.length - 1; i += 2) {\n\t\t\tconst test = context.parse(args[i], i, BooleanType);\n\t\t\tif (!test) return null;\n\t\t\tconst result = context.parse(args[i + 1], i + 1, outputType);\n\t\t\tif (!result) return null;\n\t\t\tbranches.push([test, result]);\n\t\t\toutputType = outputType || result.type;\n\t\t}\n\t\tconst otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n\t\tif (!otherwise) return null;\n\t\tif (!outputType) throw new Error(\"Can't infer output type\");\n\t\treturn new Case(outputType, branches, otherwise);\n\t}\n\tevaluate(ctx) {\n\t\tfor (const [test, expression] of this.branches) if (test.evaluate(ctx)) return expression.evaluate(ctx);\n\t\treturn this.otherwise.evaluate(ctx);\n\t}\n\teachChild(fn) {\n\t\tfor (const [test, expression] of this.branches) {\n\t\t\tfn(test);\n\t\t\tfn(expression);\n\t\t}\n\t\tfn(this.otherwise);\n\t}\n\toutputDefined() {\n\t\treturn this.branches.every(([_, out]) => out.outputDefined()) && this.otherwise.outputDefined();\n\t}\n};\n//#endregion\n//#region src/expression/definitions/slice.ts\nvar Slice = class Slice {\n\tconstructor(type, input, beginIndex, key, endIndex) {\n\t\tthis.type = type;\n\t\tthis.input = input;\n\t\tthis.beginIndex = beginIndex;\n\t\tthis.key = key;\n\t\tthis.endIndex = endIndex;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length <= 2 || args.length >= 5) return context.error(`Expected 2 or 3 arguments, but found ${args.length - 1} instead.`);\n\t\tconst input = context.parse(args[1], 1, ValueType);\n\t\tconst beginIndex = context.parse(args[2], 2, NumberType);\n\t\tif (!input || !beginIndex) return null;\n\t\tif (!isValidType(input.type, [\n\t\t\tarray(ValueType),\n\t\t\tStringType,\n\t\t\tValueType\n\t\t])) return context.error(`Expected first argument to be of type array or string, but found ${typeToString(input.type)} instead`);\n\t\tif (args.length === 4) {\n\t\t\tconst endIndex = context.parse(args[3], 3, NumberType);\n\t\t\tif (!endIndex) return null;\n\t\t\treturn new Slice(input.type, input, beginIndex, context.key, endIndex);\n\t\t} else return new Slice(input.type, input, beginIndex, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst input = this.input.evaluate(ctx);\n\t\tconst beginIndex = this.beginIndex.evaluate(ctx);\n\t\tlet endIndex;\n\t\tif (this.endIndex) endIndex = this.endIndex.evaluate(ctx);\n\t\tif (isValidNativeType(input, [\"string\"])) return [...input].slice(beginIndex, endIndex).join(\"\");\n\t\telse if (isValidNativeType(input, [\"array\"])) return input.slice(beginIndex, endIndex);\n\t\telse throw new RuntimeError(`Expected first argument to be of type array or string, but found ${typeToString(typeOf(input))} instead.`, this.key);\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t\tfn(this.beginIndex);\n\t\tif (this.endIndex) fn(this.endIndex);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/stops.ts\n/**\n* Returns the index of the last stop <= input, or 0 if it doesn't exist.\n* @private\n*/\nfunction findStopLessThanOrEqualTo(stops, input, key) {\n\tconst lastIndex = stops.length - 1;\n\tlet lowerIndex = 0;\n\tlet upperIndex = lastIndex;\n\tlet currentIndex = 0;\n\tlet currentValue, nextValue;\n\twhile (lowerIndex <= upperIndex) {\n\t\tcurrentIndex = Math.floor((lowerIndex + upperIndex) / 2);\n\t\tcurrentValue = stops[currentIndex];\n\t\tnextValue = stops[currentIndex + 1];\n\t\tif (currentValue <= input) {\n\t\t\tif (currentIndex === lastIndex || input < nextValue) return currentIndex;\n\t\t\tlowerIndex = currentIndex + 1;\n\t\t} else if (currentValue > input) upperIndex = currentIndex - 1;\n\t\telse throw new RuntimeError(\"Input is not a number.\", key);\n\t}\n\treturn 0;\n}\n//#endregion\n//#region src/expression/definitions/step.ts\nvar Step = class Step {\n\tconstructor(type, input, stops, key) {\n\t\tthis.type = type;\n\t\tthis.input = input;\n\t\tthis.key = key;\n\t\tthis.labels = [];\n\t\tthis.outputs = [];\n\t\tfor (const [label, expression] of stops) {\n\t\t\tthis.labels.push(label);\n\t\t\tthis.outputs.push(expression);\n\t\t}\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length - 1 < 4) return context.error(`Expected at least 4 arguments, but found only ${args.length - 1}.`);\n\t\tif ((args.length - 1) % 2 !== 0) return context.error(\"Expected an even number of arguments.\");\n\t\tconst input = context.parse(args[1], 1, NumberType);\n\t\tif (!input) return null;\n\t\tconst stops = [];\n\t\tlet outputType = null;\n\t\tif (context.expectedType && context.expectedType.kind !== \"value\") outputType = context.expectedType;\n\t\tfor (let i = 1; i < args.length; i += 2) {\n\t\t\tconst label = i === 1 ? -Infinity : args[i];\n\t\t\tconst value = args[i + 1];\n\t\t\tconst labelKey = i;\n\t\t\tconst valueKey = i + 1;\n\t\t\tif (typeof label !== \"number\") return context.error(\"Input/output pairs for \\\"step\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.\", labelKey);\n\t\t\tif (stops.length && stops[stops.length - 1][0] >= label) return context.error(\"Input/output pairs for \\\"step\\\" expressions must be arranged with input values in strictly ascending order.\", labelKey);\n\t\t\tconst parsed = context.parse(value, valueKey, outputType);\n\t\t\tif (!parsed) return null;\n\t\t\toutputType = outputType || parsed.type;\n\t\t\tstops.push([label, parsed]);\n\t\t}\n\t\treturn new Step(outputType, input, stops, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst labels = this.labels;\n\t\tconst outputs = this.outputs;\n\t\tif (labels.length === 1) return outputs[0].evaluate(ctx);\n\t\tconst value = this.input.evaluate(ctx);\n\t\tif (value <= labels[0]) return outputs[0].evaluate(ctx);\n\t\tconst stopCount = labels.length;\n\t\tif (value >= labels[stopCount - 1]) return outputs[stopCount - 1].evaluate(ctx);\n\t\treturn outputs[findStopLessThanOrEqualTo(labels, value, this.key)].evaluate(ctx);\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t\tfor (const expression of this.outputs) fn(expression);\n\t}\n\toutputDefined() {\n\t\treturn this.outputs.every((out) => out.outputDefined());\n\t}\n};\n//#endregion\n//#region node_modules/@mapbox/unitbezier/index.js\nfunction unitBezier(p1x, p1y, p2x, p2y) {\n\tconst cx = 3 * p1x;\n\tconst bx = 3 * (p2x - p1x) - cx;\n\tconst ax = 1 - cx - bx;\n\tconst cy = 3 * p1y;\n\tconst by = 3 * (p2y - p1y) - cy;\n\tconst ay = 1 - cy - by;\n\treturn function solve(x, epsilon = 1e-6) {\n\t\tif (x <= 0) return 0;\n\t\tif (x >= 1) return 1;\n\t\tlet t = x;\n\t\tfor (let i = 0; i < 8; i++) {\n\t\t\tconst x2 = ((ax * t + bx) * t + cx) * t - x;\n\t\t\tif (Math.abs(x2) < epsilon) return ((ay * t + by) * t + cy) * t;\n\t\t\tconst d2 = (3 * ax * t + 2 * bx) * t + cx;\n\t\t\tif (Math.abs(d2) < 1e-6) break;\n\t\t\tt -= x2 / d2;\n\t\t}\n\t\tlet t0 = 0;\n\t\tlet t1 = 1;\n\t\tt = x;\n\t\tfor (let i = 0; i < 20; i++) {\n\t\t\tconst x2 = ((ax * t + bx) * t + cx) * t;\n\t\t\tif (Math.abs(x2 - x) < epsilon) break;\n\t\t\tif (x > x2) t0 = t;\n\t\t\telse t1 = t;\n\t\t\tt = (t0 + t1) * .5;\n\t\t}\n\t\treturn ((ay * t + by) * t + cy) * t;\n\t};\n}\n//#endregion\n//#region src/expression/definitions/interpolate.ts\nvar Interpolate = class Interpolate {\n\tconstructor(type, operator, interpolation, input, stops, key) {\n\t\tthis.type = type;\n\t\tthis.operator = operator;\n\t\tthis.interpolation = interpolation;\n\t\tthis.input = input;\n\t\tthis.key = key;\n\t\tthis.labels = [];\n\t\tthis.outputs = [];\n\t\tfor (const [label, expression] of stops) {\n\t\t\tthis.labels.push(label);\n\t\t\tthis.outputs.push(expression);\n\t\t}\n\t}\n\tstatic interpolationFactor(interpolation, input, lower, upper) {\n\t\tlet t = 0;\n\t\tif (interpolation.name === \"exponential\") t = exponentialInterpolation(input, interpolation.base, lower, upper);\n\t\telse if (interpolation.name === \"linear\") t = exponentialInterpolation(input, 1, lower, upper);\n\t\telse if (interpolation.name === \"cubic-bezier\") {\n\t\t\tconst c = interpolation.controlPoints;\n\t\t\tt = unitBezier(c[0], c[1], c[2], c[3])(exponentialInterpolation(input, 1, lower, upper));\n\t\t}\n\t\treturn t;\n\t}\n\tstatic parse(args, context) {\n\t\tlet [operator, interpolation, input, ...rest] = args;\n\t\tif (!Array.isArray(interpolation) || interpolation.length === 0) return context.error(\"Expected an interpolation type expression.\", 1);\n\t\tif (interpolation[0] === \"linear\") interpolation = { name: \"linear\" };\n\t\telse if (interpolation[0] === \"exponential\") {\n\t\t\tconst base = interpolation[1];\n\t\t\tif (typeof base !== \"number\") return context.error(\"Exponential interpolation requires a numeric base.\", 1, 1);\n\t\t\tinterpolation = {\n\t\t\t\tname: \"exponential\",\n\t\t\t\tbase\n\t\t\t};\n\t\t} else if (interpolation[0] === \"cubic-bezier\") {\n\t\t\tconst controlPoints = interpolation.slice(1);\n\t\t\tif (controlPoints.length !== 4 || controlPoints.some((t) => typeof t !== \"number\" || t < 0 || t > 1)) return context.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\", 1);\n\t\t\tinterpolation = {\n\t\t\t\tname: \"cubic-bezier\",\n\t\t\t\tcontrolPoints\n\t\t\t};\n\t\t} else return context.error(`Unknown interpolation type ${String(interpolation[0])}`, 1, 0);\n\t\tif (args.length - 1 < 4) return context.error(`Expected at least 4 arguments, but found only ${args.length - 1}.`);\n\t\tif ((args.length - 1) % 2 !== 0) return context.error(\"Expected an even number of arguments.\");\n\t\tinput = context.parse(input, 2, NumberType);\n\t\tif (!input) return null;\n\t\tconst stops = [];\n\t\tlet outputType = null;\n\t\tif ((operator === \"interpolate-hcl\" || operator === \"interpolate-lab\") && context.expectedType != ColorArrayType) outputType = ColorType;\n\t\telse if (context.expectedType && context.expectedType.kind !== \"value\") outputType = context.expectedType;\n\t\tfor (let i = 0; i < rest.length; i += 2) {\n\t\t\tconst label = rest[i];\n\t\t\tconst value = rest[i + 1];\n\t\t\tconst labelKey = i + 3;\n\t\t\tconst valueKey = i + 4;\n\t\t\tif (typeof label !== \"number\") return context.error(\"Input/output pairs for \\\"interpolate\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.\", labelKey);\n\t\t\tif (stops.length && stops[stops.length - 1][0] >= label) return context.error(\"Input/output pairs for \\\"interpolate\\\" expressions must be arranged with input values in strictly ascending order.\", labelKey);\n\t\t\tconst parsed = context.parse(value, valueKey, outputType);\n\t\t\tif (!parsed) return null;\n\t\t\toutputType = outputType || parsed.type;\n\t\t\tstops.push([label, parsed]);\n\t\t}\n\t\tif (!verifyType(outputType, NumberType) && !verifyType(outputType, ProjectionDefinitionType) && !verifyType(outputType, ColorType) && !verifyType(outputType, PaddingType) && !verifyType(outputType, NumberArrayType) && !verifyType(outputType, ColorArrayType) && !verifyType(outputType, VariableAnchorOffsetCollectionType) && !verifyType(outputType, array(NumberType))) return context.error(`Type ${typeToString(outputType)} is not interpolatable.`);\n\t\treturn new Interpolate(outputType, operator, interpolation, input, stops, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst labels = this.labels;\n\t\tconst outputs = this.outputs;\n\t\tif (labels.length === 1) return outputs[0].evaluate(ctx);\n\t\tconst value = this.input.evaluate(ctx);\n\t\tif (value <= labels[0]) return outputs[0].evaluate(ctx);\n\t\tconst stopCount = labels.length;\n\t\tif (value >= labels[stopCount - 1]) return outputs[stopCount - 1].evaluate(ctx);\n\t\tconst index = findStopLessThanOrEqualTo(labels, value, this.key);\n\t\tconst lower = labels[index];\n\t\tconst upper = labels[index + 1];\n\t\tconst t = Interpolate.interpolationFactor(this.interpolation, value, lower, upper);\n\t\tconst outputLower = outputs[index].evaluate(ctx);\n\t\tconst outputUpper = outputs[index + 1].evaluate(ctx);\n\t\tswitch (this.operator) {\n\t\t\tcase \"interpolate\": switch (this.type.kind) {\n\t\t\t\tcase \"number\": return interpolateNumber(outputLower, outputUpper, t);\n\t\t\t\tcase \"color\": return Color.interpolate(outputLower, outputUpper, t);\n\t\t\t\tcase \"padding\": return Padding.interpolate(outputLower, outputUpper, t);\n\t\t\t\tcase \"colorArray\": return ColorArray.interpolate(outputLower, outputUpper, t);\n\t\t\t\tcase \"numberArray\": return NumberArray.interpolate(outputLower, outputUpper, t);\n\t\t\t\tcase \"variableAnchorOffsetCollection\": return VariableAnchorOffsetCollection.interpolate(outputLower, outputUpper, t, this.key);\n\t\t\t\tcase \"array\": return interpolateArray(outputLower, outputUpper, t);\n\t\t\t\tcase \"projectionDefinition\": return ProjectionDefinition.interpolate(outputLower, outputUpper, t);\n\t\t\t}\n\t\t\tcase \"interpolate-hcl\": switch (this.type.kind) {\n\t\t\t\tcase \"color\": return Color.interpolate(outputLower, outputUpper, t, \"hcl\");\n\t\t\t\tcase \"colorArray\": return ColorArray.interpolate(outputLower, outputUpper, t, \"hcl\");\n\t\t\t}\n\t\t\tcase \"interpolate-lab\": switch (this.type.kind) {\n\t\t\t\tcase \"color\": return Color.interpolate(outputLower, outputUpper, t, \"lab\");\n\t\t\t\tcase \"colorArray\": return ColorArray.interpolate(outputLower, outputUpper, t, \"lab\");\n\t\t\t}\n\t\t}\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t\tfor (const expression of this.outputs) fn(expression);\n\t}\n\toutputDefined() {\n\t\treturn this.outputs.every((out) => out.outputDefined());\n\t}\n};\n/**\n* Returns a ratio that can be used to interpolate between exponential function\n* stops.\n* How it works: Two consecutive stop values define a (scaled and shifted) exponential function `f(x) = a * base^x + b`, where `base` is the user-specified base,\n* and `a` and `b` are constants affording sufficient degrees of freedom to fit\n* the function to the given stops.\n*\n* Here's a bit of algebra that lets us compute `f(x)` directly from the stop\n* values without explicitly solving for `a` and `b`:\n*\n* First stop value: `f(x0) = y0 = a * base^x0 + b`\n* Second stop value: `f(x1) = y1 = a * base^x1 + b`\n* => `y1 - y0 = a(base^x1 - base^x0)`\n* => `a = (y1 - y0)/(base^x1 - base^x0)`\n*\n* Desired value: `f(x) = y = a * base^x + b`\n* => `f(x) = y0 + a * (base^x - base^x0)`\n*\n* From the above, we can replace the `a` in `a * (base^x - base^x0)` and do a\n* little algebra:\n* ```\n* a * (base^x - base^x0) = (y1 - y0)/(base^x1 - base^x0) * (base^x - base^x0)\n* = (y1 - y0) * (base^x - base^x0) / (base^x1 - base^x0)\n* ```\n*\n* If we let `(base^x - base^x0) / (base^x1 base^x0)`, then we have\n* `f(x) = y0 + (y1 - y0) * ratio`. In other words, `ratio` may be treated as\n* an interpolation factor between the two stops' output values.\n*\n* (Note: a slightly different form for `ratio`,\n* `(base^(x-x0) - 1) / (base^(x1-x0) - 1) `, is equivalent, but requires fewer\n* expensive `Math.pow()` operations.)\n*\n* @private\n*/\nfunction exponentialInterpolation(input, base, lowerValue, upperValue) {\n\tconst difference = upperValue - lowerValue;\n\tconst progress = input - lowerValue;\n\tif (difference === 0) return 0;\n\telse if (base === 1) return progress / difference;\n\telse return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n}\nconst interpolateFactory = {\n\tcolor: Color.interpolate,\n\tnumber: interpolateNumber,\n\tpadding: Padding.interpolate,\n\tnumberArray: NumberArray.interpolate,\n\tcolorArray: ColorArray.interpolate,\n\tvariableAnchorOffsetCollection: VariableAnchorOffsetCollection.interpolate,\n\tarray: interpolateArray\n};\n//#endregion\n//#region src/expression/definitions/coalesce.ts\nvar Coalesce = class Coalesce {\n\tconstructor(type, args) {\n\t\tthis.type = type;\n\t\tthis.args = args;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 2) return context.error(\"Expected at least one argument.\");\n\t\tlet outputType = null;\n\t\tconst expectedType = context.expectedType;\n\t\tif (expectedType && expectedType.kind !== \"value\") outputType = expectedType;\n\t\tconst parsedArgs = [];\n\t\tfor (const arg of args.slice(1)) {\n\t\t\tconst parsed = context.parse(arg, 1 + parsedArgs.length, outputType, void 0, { typeAnnotation: \"omit\" });\n\t\t\tif (!parsed) return null;\n\t\t\toutputType = outputType || parsed.type;\n\t\t\tparsedArgs.push(parsed);\n\t\t}\n\t\tif (!outputType) throw new Error(\"No output type\");\n\t\treturn expectedType && parsedArgs.some((arg) => checkSubtype(expectedType, arg.type)) ? new Coalesce(ValueType, parsedArgs) : new Coalesce(outputType, parsedArgs);\n\t}\n\tevaluate(ctx) {\n\t\tlet result = null;\n\t\tlet argCount = 0;\n\t\tlet requestedImageName;\n\t\tfor (const arg of this.args) {\n\t\t\targCount++;\n\t\t\tresult = arg.evaluate(ctx);\n\t\t\tif (result && result instanceof ResolvedImage && !result.available) {\n\t\t\t\tif (!requestedImageName) requestedImageName = result.name;\n\t\t\t\tresult = null;\n\t\t\t\tif (argCount === this.args.length) result = requestedImageName;\n\t\t\t}\n\t\t\tif (result !== null) break;\n\t\t}\n\t\treturn result;\n\t}\n\teachChild(fn) {\n\t\tthis.args.forEach(fn);\n\t}\n\toutputDefined() {\n\t\treturn this.args.every((arg) => arg.outputDefined());\n\t}\n};\n//#endregion\n//#region src/expression/definitions/comparison.ts\nfunction isComparableType(op, type) {\n\tif (op === \"==\" || op === \"!=\") return type.kind === \"boolean\" || type.kind === \"string\" || type.kind === \"number\" || type.kind === \"null\" || type.kind === \"value\";\n\telse return type.kind === \"string\" || type.kind === \"number\" || type.kind === \"value\";\n}\nfunction eq(ctx, a, b) {\n\treturn a === b;\n}\nfunction neq(ctx, a, b) {\n\treturn a !== b;\n}\nfunction lt(ctx, a, b) {\n\treturn a < b;\n}\nfunction gt(ctx, a, b) {\n\treturn a > b;\n}\nfunction lteq(ctx, a, b) {\n\treturn a <= b;\n}\nfunction gteq(ctx, a, b) {\n\treturn a >= b;\n}\nfunction eqCollate(ctx, a, b, c) {\n\treturn c.compare(a, b) === 0;\n}\nfunction neqCollate(ctx, a, b, c) {\n\treturn !eqCollate(ctx, a, b, c);\n}\nfunction ltCollate(ctx, a, b, c) {\n\treturn c.compare(a, b) < 0;\n}\nfunction gtCollate(ctx, a, b, c) {\n\treturn c.compare(a, b) > 0;\n}\nfunction lteqCollate(ctx, a, b, c) {\n\treturn c.compare(a, b) <= 0;\n}\nfunction gteqCollate(ctx, a, b, c) {\n\treturn c.compare(a, b) >= 0;\n}\n/**\n* Special form for comparison operators, implementing the signatures:\n* - (T, T, ?Collator) => boolean\n* - (T, value, ?Collator) => boolean\n* - (value, T, ?Collator) => boolean\n*\n* For inequalities, T must be either value, string, or number. For ==/!=, it\n* can also be boolean or null.\n*\n* Equality semantics are equivalent to Javascript's strict equality (===/!==)\n* -- i.e., when the arguments' types don't match, == evaluates to false, != to\n* true.\n*\n* When types don't match in an ordering comparison, a runtime error is thrown.\n*\n* @private\n*/\nfunction makeComparison(op, compareBasic, compareWithCollator) {\n\tconst isOrderComparison = op !== \"==\" && op !== \"!=\";\n\treturn class Comparison {\n\t\tconstructor(lhs, rhs, key, collator) {\n\t\t\tthis.lhs = lhs;\n\t\t\tthis.rhs = rhs;\n\t\t\tthis.key = key;\n\t\t\tthis.collator = collator;\n\t\t\tthis.type = BooleanType;\n\t\t\tthis.hasUntypedArgument = lhs.type.kind === \"value\" || rhs.type.kind === \"value\";\n\t\t}\n\t\tstatic parse(args, context) {\n\t\t\tif (args.length !== 3 && args.length !== 4) return context.error(\"Expected two or three arguments.\");\n\t\t\tconst op = args[0];\n\t\t\tlet lhs = context.parse(args[1], 1, ValueType);\n\t\t\tif (!lhs) return null;\n\t\t\tif (!isComparableType(op, lhs.type)) return context.concat(1).error(`\"${op}\" comparisons are not supported for type '${typeToString(lhs.type)}'.`);\n\t\t\tlet rhs = context.parse(args[2], 2, ValueType);\n\t\t\tif (!rhs) return null;\n\t\t\tif (!isComparableType(op, rhs.type)) return context.concat(2).error(`\"${op}\" comparisons are not supported for type '${typeToString(rhs.type)}'.`);\n\t\t\tif (lhs.type.kind !== rhs.type.kind && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") return context.error(`Cannot compare types '${typeToString(lhs.type)}' and '${typeToString(rhs.type)}'.`);\n\t\t\tif (isOrderComparison) {\n\t\t\t\tif (lhs.type.kind === \"value\" && rhs.type.kind !== \"value\") lhs = new Assertion(rhs.type, [lhs], context.key);\n\t\t\t\telse if (lhs.type.kind !== \"value\" && rhs.type.kind === \"value\") rhs = new Assertion(lhs.type, [rhs], context.key);\n\t\t\t}\n\t\t\tlet collator = null;\n\t\t\tif (args.length === 4) {\n\t\t\t\tif (lhs.type.kind !== \"string\" && rhs.type.kind !== \"string\" && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") return context.error(\"Cannot use collator to compare non-string types.\");\n\t\t\t\tcollator = context.parse(args[3], 3, CollatorType);\n\t\t\t\tif (!collator) return null;\n\t\t\t}\n\t\t\treturn new Comparison(lhs, rhs, context.key, collator);\n\t\t}\n\t\tevaluate(ctx) {\n\t\t\tconst lhs = this.lhs.evaluate(ctx);\n\t\t\tconst rhs = this.rhs.evaluate(ctx);\n\t\t\tif (isOrderComparison && this.hasUntypedArgument) {\n\t\t\t\tconst lt = typeOf(lhs);\n\t\t\t\tconst rt = typeOf(rhs);\n\t\t\t\tif (lt.kind !== rt.kind || !(lt.kind === \"string\" || lt.kind === \"number\")) throw new RuntimeError(`Expected arguments for \"${op}\" to be (string, string) or (number, number), but found (${lt.kind}, ${rt.kind}) instead.`, this.key);\n\t\t\t}\n\t\t\tif (this.collator && !isOrderComparison && this.hasUntypedArgument) {\n\t\t\t\tconst lt = typeOf(lhs);\n\t\t\t\tconst rt = typeOf(rhs);\n\t\t\t\tif (lt.kind !== \"string\" || rt.kind !== \"string\") return compareBasic(ctx, lhs, rhs);\n\t\t\t}\n\t\t\treturn this.collator ? compareWithCollator(ctx, lhs, rhs, this.collator.evaluate(ctx)) : compareBasic(ctx, lhs, rhs);\n\t\t}\n\t\teachChild(fn) {\n\t\t\tfn(this.lhs);\n\t\t\tfn(this.rhs);\n\t\t\tif (this.collator) fn(this.collator);\n\t\t}\n\t\toutputDefined() {\n\t\t\treturn true;\n\t\t}\n\t};\n}\nconst Equals = makeComparison(\"==\", eq, eqCollate);\nconst NotEquals = makeComparison(\"!=\", neq, neqCollate);\nconst LessThan = makeComparison(\"<\", lt, ltCollate);\nconst GreaterThan = makeComparison(\">\", gt, gtCollate);\nconst LessThanOrEqual = makeComparison(\"<=\", lteq, lteqCollate);\nconst GreaterThanOrEqual = makeComparison(\">=\", gteq, gteqCollate);\n//#endregion\n//#region src/expression/definitions/collator.ts\nvar CollatorExpression = class CollatorExpression {\n\tconstructor(caseSensitive, diacriticSensitive, locale) {\n\t\tthis.type = CollatorType;\n\t\tthis.locale = locale;\n\t\tthis.caseSensitive = caseSensitive;\n\t\tthis.diacriticSensitive = diacriticSensitive;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(\"Expected one argument.\");\n\t\tconst options = args[1];\n\t\tif (typeof options !== \"object\" || Array.isArray(options)) return context.error(\"Collator options argument must be an object.\");\n\t\tconst caseSensitive = context.parse(options[\"case-sensitive\"] === void 0 ? false : options[\"case-sensitive\"], 1, BooleanType);\n\t\tif (!caseSensitive) return null;\n\t\tconst diacriticSensitive = context.parse(options[\"diacritic-sensitive\"] === void 0 ? false : options[\"diacritic-sensitive\"], 1, BooleanType);\n\t\tif (!diacriticSensitive) return null;\n\t\tlet locale = null;\n\t\tif (options[\"locale\"]) {\n\t\t\tlocale = context.parse(options[\"locale\"], 1, StringType);\n\t\t\tif (!locale) return null;\n\t\t}\n\t\treturn new CollatorExpression(caseSensitive, diacriticSensitive, locale);\n\t}\n\tevaluate(ctx) {\n\t\treturn new Collator(this.caseSensitive.evaluate(ctx), this.diacriticSensitive.evaluate(ctx), this.locale ? this.locale.evaluate(ctx) : null);\n\t}\n\teachChild(fn) {\n\t\tfn(this.caseSensitive);\n\t\tfn(this.diacriticSensitive);\n\t\tif (this.locale) fn(this.locale);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/number_format.ts\nvar NumberFormat = class NumberFormat {\n\tconstructor(number, locale, currency, unit, minFractionDigits, maxFractionDigits) {\n\t\tthis.type = StringType;\n\t\tthis.number = number;\n\t\tthis.locale = locale;\n\t\tthis.currency = currency;\n\t\tthis.unit = unit;\n\t\tthis.minFractionDigits = minFractionDigits;\n\t\tthis.maxFractionDigits = maxFractionDigits;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 3) return context.error(\"Expected two arguments.\");\n\t\tconst number = context.parse(args[1], 1, NumberType);\n\t\tif (!number) return null;\n\t\tconst options = args[2];\n\t\tif (typeof options !== \"object\" || Array.isArray(options)) return context.error(\"NumberFormat options argument must be an object.\");\n\t\tlet locale = null;\n\t\tif (options[\"locale\"]) {\n\t\t\tlocale = context.parse(options[\"locale\"], 1, StringType);\n\t\t\tif (!locale) return null;\n\t\t}\n\t\tlet currency = null;\n\t\tif (options[\"currency\"]) {\n\t\t\tcurrency = context.parse(options[\"currency\"], 1, StringType);\n\t\t\tif (!currency) return null;\n\t\t}\n\t\tlet unit = null;\n\t\tif (options[\"unit\"]) {\n\t\t\tunit = context.parse(options[\"unit\"], 1, StringType);\n\t\t\tif (!unit) return null;\n\t\t}\n\t\tif (currency && unit) return context.error(\"NumberFormat options `currency` and `unit` are mutually exclusive\");\n\t\tlet minFractionDigits = null;\n\t\tif (options[\"min-fraction-digits\"]) {\n\t\t\tminFractionDigits = context.parse(options[\"min-fraction-digits\"], 1, NumberType);\n\t\t\tif (!minFractionDigits) return null;\n\t\t}\n\t\tlet maxFractionDigits = null;\n\t\tif (options[\"max-fraction-digits\"]) {\n\t\t\tmaxFractionDigits = context.parse(options[\"max-fraction-digits\"], 1, NumberType);\n\t\t\tif (!maxFractionDigits) return null;\n\t\t}\n\t\treturn new NumberFormat(number, locale, currency, unit, minFractionDigits, maxFractionDigits);\n\t}\n\tevaluate(ctx) {\n\t\treturn new Intl.NumberFormat(this.locale ? this.locale.evaluate(ctx) : [], {\n\t\t\tstyle: this.currency ? \"currency\" : this.unit ? \"unit\" : \"decimal\",\n\t\t\tcurrency: this.currency ? this.currency.evaluate(ctx) : void 0,\n\t\t\tunit: this.unit ? this.unit.evaluate(ctx) : void 0,\n\t\t\tminimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(ctx) : void 0,\n\t\t\tmaximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(ctx) : void 0\n\t\t}).format(this.number.evaluate(ctx));\n\t}\n\teachChild(fn) {\n\t\tfn(this.number);\n\t\tif (this.locale) fn(this.locale);\n\t\tif (this.currency) fn(this.currency);\n\t\tif (this.unit) fn(this.unit);\n\t\tif (this.minFractionDigits) fn(this.minFractionDigits);\n\t\tif (this.maxFractionDigits) fn(this.maxFractionDigits);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/format.ts\nvar FormatExpression = class FormatExpression {\n\tconstructor(sections) {\n\t\tthis.type = FormattedType;\n\t\tthis.sections = sections;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length < 2) return context.error(\"Expected at least one argument.\");\n\t\tconst firstArg = args[1];\n\t\tif (!Array.isArray(firstArg) && typeof firstArg === \"object\") return context.error(\"First argument must be an image or text section.\");\n\t\tconst sections = [];\n\t\tlet nextTokenMayBeObject = false;\n\t\tfor (let i = 1; i <= args.length - 1; ++i) {\n\t\t\tconst arg = args[i];\n\t\t\tif (nextTokenMayBeObject && typeof arg === \"object\" && !Array.isArray(arg)) {\n\t\t\t\tnextTokenMayBeObject = false;\n\t\t\t\tlet scale = null;\n\t\t\t\tif (arg[\"font-scale\"]) {\n\t\t\t\t\tscale = context.parse(arg[\"font-scale\"], 1, NumberType);\n\t\t\t\t\tif (!scale) return null;\n\t\t\t\t}\n\t\t\t\tlet font = null;\n\t\t\t\tif (arg[\"text-font\"]) {\n\t\t\t\t\tfont = context.parse(arg[\"text-font\"], 1, array(StringType));\n\t\t\t\t\tif (!font) return null;\n\t\t\t\t}\n\t\t\t\tlet textColor = null;\n\t\t\t\tif (arg[\"text-color\"]) {\n\t\t\t\t\ttextColor = context.parse(arg[\"text-color\"], 1, ColorType);\n\t\t\t\t\tif (!textColor) return null;\n\t\t\t\t}\n\t\t\t\tlet verticalAlign = null;\n\t\t\t\tif (arg[\"vertical-align\"]) {\n\t\t\t\t\tif (typeof arg[\"vertical-align\"] === \"string\" && !VERTICAL_ALIGN_OPTIONS.includes(arg[\"vertical-align\"])) return context.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${arg[\"vertical-align\"]}' instead.`);\n\t\t\t\t\tverticalAlign = context.parse(arg[\"vertical-align\"], 1, StringType);\n\t\t\t\t\tif (!verticalAlign) return null;\n\t\t\t\t}\n\t\t\t\tconst lastExpression = sections[sections.length - 1];\n\t\t\t\tlastExpression.scale = scale;\n\t\t\t\tlastExpression.font = font;\n\t\t\t\tlastExpression.textColor = textColor;\n\t\t\t\tlastExpression.verticalAlign = verticalAlign;\n\t\t\t} else {\n\t\t\t\tconst content = context.parse(args[i], 1, ValueType);\n\t\t\t\tif (!content) return null;\n\t\t\t\tconst kind = content.type.kind;\n\t\t\t\tif (kind !== \"string\" && kind !== \"value\" && kind !== \"null\" && kind !== \"resolvedImage\") return context.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");\n\t\t\t\tnextTokenMayBeObject = true;\n\t\t\t\tsections.push({\n\t\t\t\t\tcontent,\n\t\t\t\t\tscale: null,\n\t\t\t\t\tfont: null,\n\t\t\t\t\ttextColor: null,\n\t\t\t\t\tverticalAlign: null\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn new FormatExpression(sections);\n\t}\n\tevaluate(ctx) {\n\t\tconst evaluateSection = (section) => {\n\t\t\tconst evaluatedContent = section.content.evaluate(ctx);\n\t\t\tif (typeOf(evaluatedContent) === ResolvedImageType) return new FormattedSection(\"\", evaluatedContent, null, null, null, section.verticalAlign ? section.verticalAlign.evaluate(ctx) : null);\n\t\t\treturn new FormattedSection(valueToString(evaluatedContent), null, section.scale ? section.scale.evaluate(ctx) : null, section.font ? section.font.evaluate(ctx).join(\",\") : null, section.textColor ? section.textColor.evaluate(ctx) : null, section.verticalAlign ? section.verticalAlign.evaluate(ctx) : null);\n\t\t};\n\t\treturn new Formatted(this.sections.map(evaluateSection));\n\t}\n\teachChild(fn) {\n\t\tfor (const section of this.sections) {\n\t\t\tfn(section.content);\n\t\t\tif (section.scale) fn(section.scale);\n\t\t\tif (section.font) fn(section.font);\n\t\t\tif (section.textColor) fn(section.textColor);\n\t\t\tif (section.verticalAlign) fn(section.verticalAlign);\n\t\t}\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/image.ts\nvar ImageExpression = class ImageExpression {\n\tconstructor(input) {\n\t\tthis.type = ResolvedImageType;\n\t\tthis.input = input;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(\"Expected two arguments.\");\n\t\tconst name = context.parse(args[1], 1, StringType);\n\t\tif (!name) return context.error(\"No image name provided.\");\n\t\treturn new ImageExpression(name);\n\t}\n\tevaluate(ctx) {\n\t\tconst evaluatedImageName = this.input.evaluate(ctx);\n\t\tconst value = ResolvedImage.fromString(evaluatedImageName);\n\t\tif (value && ctx.availableImages) value.available = ctx.availableImages.indexOf(evaluatedImageName) > -1;\n\t\treturn value;\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/length.ts\nvar Length = class Length {\n\tconstructor(input, key) {\n\t\tthis.input = input;\n\t\tthis.key = key;\n\t\tthis.type = NumberType;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(`Expected 1 argument, but found ${args.length - 1} instead.`);\n\t\tconst input = context.parse(args[1], 1);\n\t\tif (!input) return null;\n\t\tif (input.type.kind !== \"array\" && input.type.kind !== \"string\" && input.type.kind !== \"value\") return context.error(`Expected argument of type string or array, but found ${typeToString(input.type)} instead.`);\n\t\treturn new Length(input, context.key);\n\t}\n\tevaluate(ctx) {\n\t\tconst input = this.input.evaluate(ctx);\n\t\tif (typeof input === \"string\") return [...input].length;\n\t\telse if (Array.isArray(input)) return input.length;\n\t\telse throw new RuntimeError(`Expected value to be of type string or array, but found ${typeToString(typeOf(input))} instead.`, this.key);\n\t}\n\teachChild(fn) {\n\t\tfn(this.input);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/util/geometry_util.ts\nconst EXTENT = 8192;\nfunction getTileCoordinates(p, canonical) {\n\tconst x = mercatorXfromLng(p[0]);\n\tconst y = mercatorYfromLat(p[1]);\n\tconst tilesAtZoom = Math.pow(2, canonical.z);\n\treturn [Math.round(x * tilesAtZoom * EXTENT), Math.round(y * tilesAtZoom * EXTENT)];\n}\nfunction getLngLatFromTileCoord(coord, canonical) {\n\tconst tilesAtZoom = Math.pow(2, canonical.z);\n\tconst x = (coord[0] / EXTENT + canonical.x) / tilesAtZoom;\n\tconst y = (coord[1] / EXTENT + canonical.y) / tilesAtZoom;\n\treturn [lngFromMercatorXfromLng(x), latFromMercatorY(y)];\n}\nfunction mercatorXfromLng(lng) {\n\treturn (180 + lng) / 360;\n}\nfunction lngFromMercatorXfromLng(mercatorX) {\n\treturn mercatorX * 360 - 180;\n}\nfunction mercatorYfromLat(lat) {\n\treturn (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))) / 360;\n}\nfunction latFromMercatorY(mercatorY) {\n\treturn 360 / Math.PI * Math.atan(Math.exp((180 - mercatorY * 360) * Math.PI / 180)) - 90;\n}\nfunction updateBBox(bbox, coord) {\n\tbbox[0] = Math.min(bbox[0], coord[0]);\n\tbbox[1] = Math.min(bbox[1], coord[1]);\n\tbbox[2] = Math.max(bbox[2], coord[0]);\n\tbbox[3] = Math.max(bbox[3], coord[1]);\n}\nfunction boxWithinBox(bbox1, bbox2) {\n\tif (bbox1[0] <= bbox2[0]) return false;\n\tif (bbox1[2] >= bbox2[2]) return false;\n\tif (bbox1[1] <= bbox2[1]) return false;\n\tif (bbox1[3] >= bbox2[3]) return false;\n\treturn true;\n}\nfunction rayIntersect(p, p1, p2) {\n\treturn p1[1] > p[1] !== p2[1] > p[1] && p[0] < (p2[0] - p1[0]) * (p[1] - p1[1]) / (p2[1] - p1[1]) + p1[0];\n}\nfunction pointOnBoundary(p, p1, p2) {\n\tconst x1 = p[0] - p1[0];\n\tconst y1 = p[1] - p1[1];\n\tconst x2 = p[0] - p2[0];\n\tconst y2 = p[1] - p2[1];\n\treturn x1 * y2 - x2 * y1 === 0 && x1 * x2 <= 0 && y1 * y2 <= 0;\n}\nfunction segmentIntersectSegment(a, b, c, d) {\n\tconst vectorP = [b[0] - a[0], b[1] - a[1]];\n\tif (perp([d[0] - c[0], d[1] - c[1]], vectorP) === 0) return false;\n\tif (twoSided(a, b, c, d) && twoSided(c, d, a, b)) return true;\n\treturn false;\n}\nfunction lineIntersectPolygon(p1, p2, polygon) {\n\tfor (const ring of polygon) for (let j = 0; j < ring.length - 1; ++j) if (segmentIntersectSegment(p1, p2, ring[j], ring[j + 1])) return true;\n\treturn false;\n}\nfunction pointWithinPolygon(point, rings, trueIfOnBoundary = false) {\n\tlet inside = false;\n\tfor (const ring of rings) for (let j = 0; j < ring.length - 1; j++) {\n\t\tif (pointOnBoundary(point, ring[j], ring[j + 1])) return trueIfOnBoundary;\n\t\tif (rayIntersect(point, ring[j], ring[j + 1])) inside = !inside;\n\t}\n\treturn inside;\n}\nfunction pointWithinPolygons(point, polygons) {\n\tfor (const polygon of polygons) if (pointWithinPolygon(point, polygon)) return true;\n\treturn false;\n}\nfunction lineStringWithinPolygon(line, polygon) {\n\tfor (const point of line) if (!pointWithinPolygon(point, polygon)) return false;\n\tfor (let i = 0; i < line.length - 1; ++i) if (lineIntersectPolygon(line[i], line[i + 1], polygon)) return false;\n\treturn true;\n}\nfunction lineStringWithinPolygons(line, polygons) {\n\tfor (const polygon of polygons) if (lineStringWithinPolygon(line, polygon)) return true;\n\treturn false;\n}\nfunction perp(v1, v2) {\n\treturn v1[0] * v2[1] - v1[1] * v2[0];\n}\nfunction twoSided(p1, p2, q1, q2) {\n\tconst x1 = p1[0] - q1[0];\n\tconst y1 = p1[1] - q1[1];\n\tconst x2 = p2[0] - q1[0];\n\tconst y2 = p2[1] - q1[1];\n\tconst x3 = q2[0] - q1[0];\n\tconst y3 = q2[1] - q1[1];\n\tconst det1 = x1 * y3 - x3 * y1;\n\tconst det2 = x2 * y3 - x3 * y2;\n\tif (det1 > 0 && det2 < 0 || det1 < 0 && det2 > 0) return true;\n\treturn false;\n}\n//#endregion\n//#region src/expression/definitions/within.ts\nfunction getTilePolygon(coordinates, bbox, canonical) {\n\tconst polygon = [];\n\tfor (let i = 0; i < coordinates.length; i++) {\n\t\tconst ring = [];\n\t\tfor (let j = 0; j < coordinates[i].length; j++) {\n\t\t\tconst coord = getTileCoordinates(coordinates[i][j], canonical);\n\t\t\tupdateBBox(bbox, coord);\n\t\t\tring.push(coord);\n\t\t}\n\t\tpolygon.push(ring);\n\t}\n\treturn polygon;\n}\nfunction getTilePolygons(coordinates, bbox, canonical) {\n\tconst polygons = [];\n\tfor (let i = 0; i < coordinates.length; i++) {\n\t\tconst polygon = getTilePolygon(coordinates[i], bbox, canonical);\n\t\tpolygons.push(polygon);\n\t}\n\treturn polygons;\n}\nfunction updatePoint(p, bbox, polyBBox, worldSize) {\n\tif (p[0] < polyBBox[0] || p[0] > polyBBox[2]) {\n\t\tconst halfWorldSize = worldSize * .5;\n\t\tlet shift = p[0] - polyBBox[0] > halfWorldSize ? -worldSize : polyBBox[0] - p[0] > halfWorldSize ? worldSize : 0;\n\t\tif (shift === 0) shift = p[0] - polyBBox[2] > halfWorldSize ? -worldSize : polyBBox[2] - p[0] > halfWorldSize ? worldSize : 0;\n\t\tp[0] += shift;\n\t}\n\tupdateBBox(bbox, p);\n}\nfunction resetBBox(bbox) {\n\tbbox[0] = bbox[1] = Infinity;\n\tbbox[2] = bbox[3] = -Infinity;\n}\nfunction getTilePoints(geometry, pointBBox, polyBBox, canonical) {\n\tconst worldSize = Math.pow(2, canonical.z) * EXTENT;\n\tconst shifts = [canonical.x * EXTENT, canonical.y * EXTENT];\n\tconst tilePoints = [];\n\tfor (const points of geometry) for (const point of points) {\n\t\tconst p = [point.x + shifts[0], point.y + shifts[1]];\n\t\tupdatePoint(p, pointBBox, polyBBox, worldSize);\n\t\ttilePoints.push(p);\n\t}\n\treturn tilePoints;\n}\nfunction getTileLines(geometry, lineBBox, polyBBox, canonical) {\n\tconst worldSize = Math.pow(2, canonical.z) * EXTENT;\n\tconst shifts = [canonical.x * EXTENT, canonical.y * EXTENT];\n\tconst tileLines = [];\n\tfor (const line of geometry) {\n\t\tconst tileLine = [];\n\t\tfor (const point of line) {\n\t\t\tconst p = [point.x + shifts[0], point.y + shifts[1]];\n\t\t\tupdateBBox(lineBBox, p);\n\t\t\ttileLine.push(p);\n\t\t}\n\t\ttileLines.push(tileLine);\n\t}\n\tif (lineBBox[2] - lineBBox[0] <= worldSize / 2) {\n\t\tresetBBox(lineBBox);\n\t\tfor (const line of tileLines) for (const p of line) updatePoint(p, lineBBox, polyBBox, worldSize);\n\t}\n\treturn tileLines;\n}\nfunction pointsWithinPolygons(ctx, polygonGeometry) {\n\tconst pointBBox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tconst polyBBox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tconst canonical = ctx.canonicalID();\n\tif (polygonGeometry.type === \"Polygon\") {\n\t\tconst tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n\t\tconst tilePoints = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n\t\tif (!boxWithinBox(pointBBox, polyBBox)) return false;\n\t\tfor (const point of tilePoints) if (!pointWithinPolygon(point, tilePolygon)) return false;\n\t}\n\tif (polygonGeometry.type === \"MultiPolygon\") {\n\t\tconst tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n\t\tconst tilePoints = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n\t\tif (!boxWithinBox(pointBBox, polyBBox)) return false;\n\t\tfor (const point of tilePoints) if (!pointWithinPolygons(point, tilePolygons)) return false;\n\t}\n\treturn true;\n}\nfunction linesWithinPolygons(ctx, polygonGeometry) {\n\tconst lineBBox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tconst polyBBox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tconst canonical = ctx.canonicalID();\n\tif (polygonGeometry.type === \"Polygon\") {\n\t\tconst tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n\t\tconst tileLines = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n\t\tif (!boxWithinBox(lineBBox, polyBBox)) return false;\n\t\tfor (const line of tileLines) if (!lineStringWithinPolygon(line, tilePolygon)) return false;\n\t}\n\tif (polygonGeometry.type === \"MultiPolygon\") {\n\t\tconst tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n\t\tconst tileLines = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n\t\tif (!boxWithinBox(lineBBox, polyBBox)) return false;\n\t\tfor (const line of tileLines) if (!lineStringWithinPolygons(line, tilePolygons)) return false;\n\t}\n\treturn true;\n}\nvar Within = class Within {\n\tconstructor(geojson, geometries) {\n\t\tthis.type = BooleanType;\n\t\tthis.geojson = geojson;\n\t\tthis.geometries = geometries;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(`'within' expression requires exactly one argument, but found ${args.length - 1} instead.`);\n\t\tif (isValue(args[1])) {\n\t\t\tconst geojson = args[1];\n\t\t\tif (geojson.type === \"FeatureCollection\") {\n\t\t\t\tconst polygonsCoords = [];\n\t\t\t\tfor (const polygon of geojson.features) {\n\t\t\t\t\tconst { type, coordinates } = polygon.geometry;\n\t\t\t\t\tif (type === \"Polygon\") polygonsCoords.push(coordinates);\n\t\t\t\t\tif (type === \"MultiPolygon\") polygonsCoords.push(...coordinates);\n\t\t\t\t}\n\t\t\t\tif (polygonsCoords.length) return new Within(geojson, {\n\t\t\t\t\ttype: \"MultiPolygon\",\n\t\t\t\t\tcoordinates: polygonsCoords\n\t\t\t\t});\n\t\t\t} else if (geojson.type === \"Feature\") {\n\t\t\t\tconst type = geojson.geometry.type;\n\t\t\t\tif (type === \"Polygon\" || type === \"MultiPolygon\") return new Within(geojson, geojson.geometry);\n\t\t\t} else if (geojson.type === \"Polygon\" || geojson.type === \"MultiPolygon\") return new Within(geojson, geojson);\n\t\t}\n\t\treturn context.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\");\n\t}\n\tevaluate(ctx) {\n\t\tif (ctx.geometry() != null && ctx.canonicalID() != null) {\n\t\t\tif (ctx.geometryType() === \"Point\") return pointsWithinPolygons(ctx, this.geometries);\n\t\t\telse if (ctx.geometryType() === \"LineString\") return linesWithinPolygons(ctx, this.geometries);\n\t\t}\n\t\treturn false;\n\t}\n\teachChild() {}\n\toutputDefined() {\n\t\treturn true;\n\t}\n};\n//#endregion\n//#region node_modules/tinyqueue/index.js\nvar TinyQueue = class {\n\tconstructor(data = [], compare = (a, b) => a < b ? -1 : a > b ? 1 : 0) {\n\t\tthis.data = data;\n\t\tthis.length = this.data.length;\n\t\tthis.compare = compare;\n\t\tif (this.length > 0) for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n\t}\n\tpush(item) {\n\t\tthis.data.push(item);\n\t\tthis._up(this.length++);\n\t}\n\tpop() {\n\t\tif (this.length === 0) return void 0;\n\t\tconst top = this.data[0];\n\t\tconst bottom = this.data.pop();\n\t\tif (--this.length > 0) {\n\t\t\tthis.data[0] = bottom;\n\t\t\tthis._down(0);\n\t\t}\n\t\treturn top;\n\t}\n\tpeek() {\n\t\treturn this.data[0];\n\t}\n\t_up(pos) {\n\t\tconst { data, compare } = this;\n\t\tconst item = data[pos];\n\t\twhile (pos > 0) {\n\t\t\tconst parent = pos - 1 >> 1;\n\t\t\tconst current = data[parent];\n\t\t\tif (compare(item, current) >= 0) break;\n\t\t\tdata[pos] = current;\n\t\t\tpos = parent;\n\t\t}\n\t\tdata[pos] = item;\n\t}\n\t_down(pos) {\n\t\tconst { data, compare } = this;\n\t\tconst halfLength = this.length >> 1;\n\t\tconst item = data[pos];\n\t\twhile (pos < halfLength) {\n\t\t\tlet bestChild = (pos << 1) + 1;\n\t\t\tconst right = bestChild + 1;\n\t\t\tif (right < this.length && compare(data[right], data[bestChild]) < 0) bestChild = right;\n\t\t\tif (compare(data[bestChild], item) >= 0) break;\n\t\t\tdata[pos] = data[bestChild];\n\t\t\tpos = bestChild;\n\t\t}\n\t\tdata[pos] = item;\n\t}\n};\n//#endregion\n//#region node_modules/quickselect/index.js\n/**\n* Rearranges items so that all items in the [left, k] are the smallest.\n* The k-th element will have the (k - left + 1)-th smallest value in [left, right].\n*\n* @template T\n* @param {T[]} arr the array to partially sort (in place)\n* @param {number} k middle index for partial sorting (as defined above)\n* @param {number} [left=0] left index of the range to sort\n* @param {number} [right=arr.length-1] right index\n* @param {(a: T, b: T) => number} [compare = (a, b) => a - b] compare function\n*/\nfunction quickselect(arr, k, left = 0, right = arr.length - 1, compare = defaultCompare) {\n\twhile (right > left) {\n\t\tif (right - left > 600) {\n\t\t\tconst n = right - left + 1;\n\t\t\tconst m = k - left + 1;\n\t\t\tconst z = Math.log(n);\n\t\t\tconst s = .5 * Math.exp(2 * z / 3);\n\t\t\tconst sd = .5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n\t\t\tquickselect(arr, k, Math.max(left, Math.floor(k - m * s / n + sd)), Math.min(right, Math.floor(k + (n - m) * s / n + sd)), compare);\n\t\t}\n\t\tconst t = arr[k];\n\t\tlet i = left;\n\t\t/** @type {number} */\n\t\tlet j = right;\n\t\tswap(arr, left, k);\n\t\tif (compare(arr[right], t) > 0) swap(arr, left, right);\n\t\twhile (i < j) {\n\t\t\tswap(arr, i, j);\n\t\t\ti++;\n\t\t\tj--;\n\t\t\twhile (compare(arr[i], t) < 0) i++;\n\t\t\twhile (compare(arr[j], t) > 0) j--;\n\t\t}\n\t\tif (compare(arr[left], t) === 0) swap(arr, left, j);\n\t\telse {\n\t\t\tj++;\n\t\t\tswap(arr, j, right);\n\t\t}\n\t\tif (j <= k) left = j + 1;\n\t\tif (k <= j) right = j - 1;\n\t}\n}\n/**\n* @template T\n* @param {T[]} arr\n* @param {number} i\n* @param {number} j\n*/\nfunction swap(arr, i, j) {\n\tconst tmp = arr[i];\n\tarr[i] = arr[j];\n\tarr[j] = tmp;\n}\n/**\n* @template T\n* @param {T} a\n* @param {T} b\n* @returns {number}\n*/\nfunction defaultCompare(a, b) {\n\treturn a < b ? -1 : a > b ? 1 : 0;\n}\n//#endregion\n//#region src/util/classify_rings.ts\n/**\n* Classifies an array of rings into polygons with outer rings and holes\n* @param rings - the rings to classify\n* @param maxRings - the maximum number of rings to include in a polygon, use 0 to include all rings\n* @returns an array of polygons with internal rings as holes\n*/\nfunction classifyRings(rings, maxRings) {\n\tif (rings.length <= 1) return [rings];\n\tconst polygons = [];\n\tlet polygon;\n\tlet ccw;\n\tfor (const ring of rings) {\n\t\tconst area = calculateSignedArea(ring);\n\t\tif (area === 0) continue;\n\t\tring.area = Math.abs(area);\n\t\tif (ccw === void 0) ccw = area < 0;\n\t\tif (ccw === area < 0) {\n\t\t\tif (polygon) polygons.push(polygon);\n\t\t\tpolygon = [ring];\n\t\t} else polygon.push(ring);\n\t}\n\tif (polygon) polygons.push(polygon);\n\tif (maxRings > 1) for (let j = 0; j < polygons.length; j++) {\n\t\tif (polygons[j].length <= maxRings) continue;\n\t\tquickselect(polygons[j], maxRings, 1, polygons[j].length - 1, compareAreas);\n\t\tpolygons[j] = polygons[j].slice(0, maxRings);\n\t}\n\treturn polygons;\n}\nfunction compareAreas(a, b) {\n\treturn b.area - a.area;\n}\n/**\n* Returns the signed area for the polygon ring. Positive areas are exterior rings and\n* have a clockwise winding. Negative areas are interior rings and have a counter clockwise\n* ordering.\n*\n* @param ring - Exterior or interior ring\n* @returns Signed area\n*/\nfunction calculateSignedArea(ring) {\n\tlet sum = 0;\n\tfor (let i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n\t\tp1 = ring[i];\n\t\tp2 = ring[j];\n\t\tsum += (p2.x - p1.x) * (p1.y + p2.y);\n\t}\n\treturn sum;\n}\n//#endregion\n//#region src/util/cheap_ruler.ts\nconst RE = 6378.137;\nconst FE = 1 / 298.257223563;\nconst E2 = FE * (2 - FE);\nconst RAD = Math.PI / 180;\nvar CheapRuler = class {\n\tconstructor(lat) {\n\t\tconst m = RAD * RE * 1e3;\n\t\tconst coslat = Math.cos(lat * RAD);\n\t\tconst w2 = 1 / (1 - E2 * (1 - coslat * coslat));\n\t\tconst w = Math.sqrt(w2);\n\t\tthis.kx = m * w * coslat;\n\t\tthis.ky = m * w * w2 * (1 - E2);\n\t}\n\t/**\n\t* Given two points of the form [longitude, latitude], returns the distance.\n\t*\n\t* @param a - point [longitude, latitude]\n\t* @param b - point [longitude, latitude]\n\t* @returns distance\n\t* @example\n\t* const distance = ruler.distance([30.5, 50.5], [30.51, 50.49]);\n\t* //=distance\n\t*/\n\tdistance(a, b) {\n\t\tconst dx = this.wrap(a[0] - b[0]) * this.kx;\n\t\tconst dy = (a[1] - b[1]) * this.ky;\n\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t}\n\t/**\n\t* Returns an object of the form {point, index, t}, where point is closest point on the line\n\t* from the given point, index is the start index of the segment with the closest point,\n\t* and t is a parameter from 0 to 1 that indicates where the closest point is on that segment.\n\t*\n\t* @param line - an array of points that form the line\n\t* @param p - point [longitude, latitude]\n\t* @returns the nearest point, its index in the array and the proportion along the line\n\t* @example\n\t* const point = ruler.pointOnLine(line, [-67.04, 50.5]).point;\n\t* //=point\n\t*/\n\tpointOnLine(line, p) {\n\t\tlet minDist = Infinity;\n\t\tlet minX, minY, minI, minT;\n\t\tfor (let i = 0; i < line.length - 1; i++) {\n\t\t\tlet x = line[i][0];\n\t\t\tlet y = line[i][1];\n\t\t\tlet dx = this.wrap(line[i + 1][0] - x) * this.kx;\n\t\t\tlet dy = (line[i + 1][1] - y) * this.ky;\n\t\t\tlet t = 0;\n\t\t\tif (dx !== 0 || dy !== 0) {\n\t\t\t\tt = (this.wrap(p[0] - x) * this.kx * dx + (p[1] - y) * this.ky * dy) / (dx * dx + dy * dy);\n\t\t\t\tif (t > 1) {\n\t\t\t\t\tx = line[i + 1][0];\n\t\t\t\t\ty = line[i + 1][1];\n\t\t\t\t} else if (t > 0) {\n\t\t\t\t\tx += dx / this.kx * t;\n\t\t\t\t\ty += dy / this.ky * t;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdx = this.wrap(p[0] - x) * this.kx;\n\t\t\tdy = (p[1] - y) * this.ky;\n\t\t\tconst sqDist = dx * dx + dy * dy;\n\t\t\tif (sqDist < minDist) {\n\t\t\t\tminDist = sqDist;\n\t\t\t\tminX = x;\n\t\t\t\tminY = y;\n\t\t\t\tminI = i;\n\t\t\t\tminT = t;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tpoint: [minX, minY],\n\t\t\tindex: minI,\n\t\t\tt: Math.max(0, Math.min(1, minT))\n\t\t};\n\t}\n\twrap(deg) {\n\t\twhile (deg < -180) deg += 360;\n\t\twhile (deg > 180) deg -= 360;\n\t\treturn deg;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/distance.ts\nconst MinPointsSize = 100;\nconst MinLinePointsSize = 50;\nfunction compareDistPair(a, b) {\n\treturn b[0] - a[0];\n}\nfunction getRangeSize(range) {\n\treturn range[1] - range[0] + 1;\n}\nfunction isRangeSafe(range, threshold) {\n\treturn range[1] >= range[0] && range[1] < threshold;\n}\nfunction splitRange(range, isLine) {\n\tif (range[0] > range[1]) return [null, null];\n\tconst size = getRangeSize(range);\n\tif (isLine) {\n\t\tif (size === 2) return [range, null];\n\t\tconst size1 = Math.floor(size / 2);\n\t\treturn [[range[0], range[0] + size1], [range[0] + size1, range[1]]];\n\t}\n\tif (size === 1) return [range, null];\n\tconst size1 = Math.floor(size / 2) - 1;\n\treturn [[range[0], range[0] + size1], [range[0] + size1 + 1, range[1]]];\n}\nfunction getBBox(coords, range) {\n\tif (!isRangeSafe(range, coords.length)) return [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tconst bbox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tfor (let i = range[0]; i <= range[1]; ++i) updateBBox(bbox, coords[i]);\n\treturn bbox;\n}\nfunction getPolygonBBox(polygon) {\n\tconst bbox = [\n\t\tInfinity,\n\t\tInfinity,\n\t\t-Infinity,\n\t\t-Infinity\n\t];\n\tfor (const ring of polygon) for (const coord of ring) updateBBox(bbox, coord);\n\treturn bbox;\n}\nfunction isValidBBox(bbox) {\n\treturn bbox[0] !== -Infinity && bbox[1] !== -Infinity && bbox[2] !== Infinity && bbox[3] !== Infinity;\n}\nfunction bboxToBBoxDistance(bbox1, bbox2, ruler) {\n\tif (!isValidBBox(bbox1) || !isValidBBox(bbox2)) return NaN;\n\tlet dx = 0;\n\tlet dy = 0;\n\tif (bbox1[2] < bbox2[0]) dx = bbox2[0] - bbox1[2];\n\tif (bbox1[0] > bbox2[2]) dx = bbox1[0] - bbox2[2];\n\tif (bbox1[1] > bbox2[3]) dy = bbox1[1] - bbox2[3];\n\tif (bbox1[3] < bbox2[1]) dy = bbox2[1] - bbox1[3];\n\treturn ruler.distance([0, 0], [dx, dy]);\n}\nfunction pointToLineDistance(point, line, ruler) {\n\tconst nearestPoint = ruler.pointOnLine(line, point);\n\treturn ruler.distance(point, nearestPoint.point);\n}\nfunction segmentToSegmentDistance(p1, p2, q1, q2, ruler) {\n\tconst dist1 = Math.min(pointToLineDistance(p1, [q1, q2], ruler), pointToLineDistance(p2, [q1, q2], ruler));\n\tconst dist2 = Math.min(pointToLineDistance(q1, [p1, p2], ruler), pointToLineDistance(q2, [p1, p2], ruler));\n\treturn Math.min(dist1, dist2);\n}\nfunction lineToLineDistance(line1, range1, line2, range2, ruler) {\n\tif (!(isRangeSafe(range1, line1.length) && isRangeSafe(range2, line2.length))) return Infinity;\n\tlet dist = Infinity;\n\tfor (let i = range1[0]; i < range1[1]; ++i) {\n\t\tconst p1 = line1[i];\n\t\tconst p2 = line1[i + 1];\n\t\tfor (let j = range2[0]; j < range2[1]; ++j) {\n\t\t\tconst q1 = line2[j];\n\t\t\tconst q2 = line2[j + 1];\n\t\t\tif (segmentIntersectSegment(p1, p2, q1, q2)) return 0;\n\t\t\tdist = Math.min(dist, segmentToSegmentDistance(p1, p2, q1, q2, ruler));\n\t\t}\n\t}\n\treturn dist;\n}\nfunction pointsToPointsDistance(points1, range1, points2, range2, ruler) {\n\tif (!(isRangeSafe(range1, points1.length) && isRangeSafe(range2, points2.length))) return NaN;\n\tlet dist = Infinity;\n\tfor (let i = range1[0]; i <= range1[1]; ++i) for (let j = range2[0]; j <= range2[1]; ++j) {\n\t\tdist = Math.min(dist, ruler.distance(points1[i], points2[j]));\n\t\tif (dist === 0) return dist;\n\t}\n\treturn dist;\n}\nfunction pointToPolygonDistance(point, polygon, ruler) {\n\tif (pointWithinPolygon(point, polygon, true)) return 0;\n\tlet dist = Infinity;\n\tfor (const ring of polygon) {\n\t\tconst front = ring[0];\n\t\tconst back = ring[ring.length - 1];\n\t\tif (front !== back) {\n\t\t\tdist = Math.min(dist, pointToLineDistance(point, [back, front], ruler));\n\t\t\tif (dist === 0) return dist;\n\t\t}\n\t\tconst nearestPoint = ruler.pointOnLine(ring, point);\n\t\tdist = Math.min(dist, ruler.distance(point, nearestPoint.point));\n\t\tif (dist === 0) return dist;\n\t}\n\treturn dist;\n}\nfunction lineToPolygonDistance(line, range, polygon, ruler) {\n\tif (!isRangeSafe(range, line.length)) return NaN;\n\tfor (let i = range[0]; i <= range[1]; ++i) if (pointWithinPolygon(line[i], polygon, true)) return 0;\n\tlet dist = Infinity;\n\tfor (let i = range[0]; i < range[1]; ++i) {\n\t\tconst p1 = line[i];\n\t\tconst p2 = line[i + 1];\n\t\tfor (const ring of polygon) for (let j = 0, len = ring.length, k = len - 1; j < len; k = j++) {\n\t\t\tconst q1 = ring[k];\n\t\t\tconst q2 = ring[j];\n\t\t\tif (segmentIntersectSegment(p1, p2, q1, q2)) return 0;\n\t\t\tdist = Math.min(dist, segmentToSegmentDistance(p1, p2, q1, q2, ruler));\n\t\t}\n\t}\n\treturn dist;\n}\nfunction polygonIntersect(poly1, poly2) {\n\tfor (const ring of poly1) for (const point of ring) if (pointWithinPolygon(point, poly2, true)) return true;\n\treturn false;\n}\nfunction polygonToPolygonDistance(polygon1, polygon2, ruler, currentMiniDist = Infinity) {\n\tconst bbox1 = getPolygonBBox(polygon1);\n\tconst bbox2 = getPolygonBBox(polygon2);\n\tif (currentMiniDist !== Infinity && bboxToBBoxDistance(bbox1, bbox2, ruler) >= currentMiniDist) return currentMiniDist;\n\tif (boxWithinBox(bbox1, bbox2)) {\n\t\tif (polygonIntersect(polygon1, polygon2)) return 0;\n\t} else if (polygonIntersect(polygon2, polygon1)) return 0;\n\tlet dist = Infinity;\n\tfor (const ring1 of polygon1) for (let i = 0, len1 = ring1.length, l = len1 - 1; i < len1; l = i++) {\n\t\tconst p1 = ring1[l];\n\t\tconst p2 = ring1[i];\n\t\tfor (const ring2 of polygon2) for (let j = 0, len2 = ring2.length, k = len2 - 1; j < len2; k = j++) {\n\t\t\tconst q1 = ring2[k];\n\t\t\tconst q2 = ring2[j];\n\t\t\tif (segmentIntersectSegment(p1, p2, q1, q2)) return 0;\n\t\t\tdist = Math.min(dist, segmentToSegmentDistance(p1, p2, q1, q2, ruler));\n\t\t}\n\t}\n\treturn dist;\n}\nfunction updateQueue(distQueue, miniDist, ruler, points, polyBBox, rangeA) {\n\tif (!rangeA) return;\n\tconst tempDist = bboxToBBoxDistance(getBBox(points, rangeA), polyBBox, ruler);\n\tif (tempDist < miniDist) distQueue.push([\n\t\ttempDist,\n\t\trangeA,\n\t\t[0, 0]\n\t]);\n}\nfunction updateQueueTwoSets(distQueue, miniDist, ruler, pointSet1, pointSet2, range1, range2) {\n\tif (!range1 || !range2) return;\n\tconst tempDist = bboxToBBoxDistance(getBBox(pointSet1, range1), getBBox(pointSet2, range2), ruler);\n\tif (tempDist < miniDist) distQueue.push([\n\t\ttempDist,\n\t\trange1,\n\t\trange2\n\t]);\n}\nfunction pointsToPolygonDistance(points, isLine, polygon, ruler, currentMiniDist = Infinity) {\n\tlet miniDist = Math.min(ruler.distance(points[0], polygon[0][0]), currentMiniDist);\n\tif (miniDist === 0) return miniDist;\n\tconst distQueue = new TinyQueue([[\n\t\t0,\n\t\t[0, points.length - 1],\n\t\t[0, 0]\n\t]], compareDistPair);\n\tconst polyBBox = getPolygonBBox(polygon);\n\twhile (distQueue.length > 0) {\n\t\tconst distPair = distQueue.pop();\n\t\tif (distPair[0] >= miniDist) continue;\n\t\tconst range = distPair[1];\n\t\tconst threshold = isLine ? MinLinePointsSize : MinPointsSize;\n\t\tif (getRangeSize(range) <= threshold) {\n\t\t\tif (!isRangeSafe(range, points.length)) return NaN;\n\t\t\tif (isLine) {\n\t\t\t\tconst tempDist = lineToPolygonDistance(points, range, polygon, ruler);\n\t\t\t\tif (isNaN(tempDist) || tempDist === 0) return tempDist;\n\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t} else for (let i = range[0]; i <= range[1]; ++i) {\n\t\t\t\tconst tempDist = pointToPolygonDistance(points[i], polygon, ruler);\n\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t\tif (miniDist === 0) return 0;\n\t\t\t}\n\t\t} else {\n\t\t\tconst newRangesA = splitRange(range, isLine);\n\t\t\tupdateQueue(distQueue, miniDist, ruler, points, polyBBox, newRangesA[0]);\n\t\t\tupdateQueue(distQueue, miniDist, ruler, points, polyBBox, newRangesA[1]);\n\t\t}\n\t}\n\treturn miniDist;\n}\nfunction pointSetToPointSetDistance(pointSet1, isLine1, pointSet2, isLine2, ruler, currentMiniDist = Infinity) {\n\tlet miniDist = Math.min(currentMiniDist, ruler.distance(pointSet1[0], pointSet2[0]));\n\tif (miniDist === 0) return miniDist;\n\tconst distQueue = new TinyQueue([[\n\t\t0,\n\t\t[0, pointSet1.length - 1],\n\t\t[0, pointSet2.length - 1]\n\t]], compareDistPair);\n\twhile (distQueue.length > 0) {\n\t\tconst distPair = distQueue.pop();\n\t\tif (distPair[0] >= miniDist) continue;\n\t\tconst rangeA = distPair[1];\n\t\tconst rangeB = distPair[2];\n\t\tconst threshold1 = isLine1 ? MinLinePointsSize : MinPointsSize;\n\t\tconst threshold2 = isLine2 ? MinLinePointsSize : MinPointsSize;\n\t\tif (getRangeSize(rangeA) <= threshold1 && getRangeSize(rangeB) <= threshold2) {\n\t\t\tif (!isRangeSafe(rangeA, pointSet1.length) && isRangeSafe(rangeB, pointSet2.length)) return NaN;\n\t\t\tlet tempDist;\n\t\t\tif (isLine1 && isLine2) {\n\t\t\t\ttempDist = lineToLineDistance(pointSet1, rangeA, pointSet2, rangeB, ruler);\n\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t} else if (isLine1 && !isLine2) {\n\t\t\t\tconst sublibe = pointSet1.slice(rangeA[0], rangeA[1] + 1);\n\t\t\t\tfor (let i = rangeB[0]; i <= rangeB[1]; ++i) {\n\t\t\t\t\ttempDist = pointToLineDistance(pointSet2[i], sublibe, ruler);\n\t\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t\t\tif (miniDist === 0) return miniDist;\n\t\t\t\t}\n\t\t\t} else if (!isLine1 && isLine2) {\n\t\t\t\tconst sublibe = pointSet2.slice(rangeB[0], rangeB[1] + 1);\n\t\t\t\tfor (let i = rangeA[0]; i <= rangeA[1]; ++i) {\n\t\t\t\t\ttempDist = pointToLineDistance(pointSet1[i], sublibe, ruler);\n\t\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t\t\tif (miniDist === 0) return miniDist;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttempDist = pointsToPointsDistance(pointSet1, rangeA, pointSet2, rangeB, ruler);\n\t\t\t\tminiDist = Math.min(miniDist, tempDist);\n\t\t\t}\n\t\t} else {\n\t\t\tconst newRangesA = splitRange(rangeA, isLine1);\n\t\t\tconst newRangesB = splitRange(rangeB, isLine2);\n\t\t\tupdateQueueTwoSets(distQueue, miniDist, ruler, pointSet1, pointSet2, newRangesA[0], newRangesB[0]);\n\t\t\tupdateQueueTwoSets(distQueue, miniDist, ruler, pointSet1, pointSet2, newRangesA[0], newRangesB[1]);\n\t\t\tupdateQueueTwoSets(distQueue, miniDist, ruler, pointSet1, pointSet2, newRangesA[1], newRangesB[0]);\n\t\t\tupdateQueueTwoSets(distQueue, miniDist, ruler, pointSet1, pointSet2, newRangesA[1], newRangesB[1]);\n\t\t}\n\t}\n\treturn miniDist;\n}\nfunction pointToGeometryDistance(ctx, geometries) {\n\tconst tilePoints = ctx.geometry();\n\tconst pointPosition = tilePoints.flat().map((p) => getLngLatFromTileCoord([p.x, p.y], ctx.canonical));\n\tif (tilePoints.length === 0) return NaN;\n\tconst ruler = new CheapRuler(pointPosition[0][1]);\n\tlet dist = Infinity;\n\tfor (const geometry of geometries) {\n\t\tswitch (geometry.type) {\n\t\t\tcase \"Point\":\n\t\t\t\tdist = Math.min(dist, pointSetToPointSetDistance(pointPosition, false, [geometry.coordinates], false, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"LineString\":\n\t\t\t\tdist = Math.min(dist, pointSetToPointSetDistance(pointPosition, false, geometry.coordinates, true, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"Polygon\":\n\t\t\t\tdist = Math.min(dist, pointsToPolygonDistance(pointPosition, false, geometry.coordinates, ruler, dist));\n\t\t\t\tbreak;\n\t\t}\n\t\tif (dist === 0) return dist;\n\t}\n\treturn dist;\n}\nfunction lineStringToGeometryDistance(ctx, geometries) {\n\tconst tileLine = ctx.geometry();\n\tconst linePositions = tileLine.flat().map((p) => getLngLatFromTileCoord([p.x, p.y], ctx.canonical));\n\tif (tileLine.length === 0) return NaN;\n\tconst ruler = new CheapRuler(linePositions[0][1]);\n\tlet dist = Infinity;\n\tfor (const geometry of geometries) {\n\t\tswitch (geometry.type) {\n\t\t\tcase \"Point\":\n\t\t\t\tdist = Math.min(dist, pointSetToPointSetDistance(linePositions, true, [geometry.coordinates], false, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"LineString\":\n\t\t\t\tdist = Math.min(dist, pointSetToPointSetDistance(linePositions, true, geometry.coordinates, true, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"Polygon\":\n\t\t\t\tdist = Math.min(dist, pointsToPolygonDistance(linePositions, true, geometry.coordinates, ruler, dist));\n\t\t\t\tbreak;\n\t\t}\n\t\tif (dist === 0) return dist;\n\t}\n\treturn dist;\n}\nfunction polygonToGeometryDistance(ctx, geometries) {\n\tconst tilePolygon = ctx.geometry();\n\tif (tilePolygon.length === 0 || tilePolygon[0].length === 0) return NaN;\n\tconst polygons = classifyRings(tilePolygon, 0).map((polygon) => {\n\t\treturn polygon.map((ring) => {\n\t\t\treturn ring.map((p) => getLngLatFromTileCoord([p.x, p.y], ctx.canonical));\n\t\t});\n\t});\n\tconst ruler = new CheapRuler(polygons[0][0][0][1]);\n\tlet dist = Infinity;\n\tfor (const geometry of geometries) for (const polygon of polygons) {\n\t\tswitch (geometry.type) {\n\t\t\tcase \"Point\":\n\t\t\t\tdist = Math.min(dist, pointsToPolygonDistance([geometry.coordinates], false, polygon, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"LineString\":\n\t\t\t\tdist = Math.min(dist, pointsToPolygonDistance(geometry.coordinates, true, polygon, ruler, dist));\n\t\t\t\tbreak;\n\t\t\tcase \"Polygon\":\n\t\t\t\tdist = Math.min(dist, polygonToPolygonDistance(polygon, geometry.coordinates, ruler, dist));\n\t\t\t\tbreak;\n\t\t}\n\t\tif (dist === 0) return dist;\n\t}\n\treturn dist;\n}\nfunction toSimpleGeometry(geometry) {\n\tif (geometry.type === \"MultiPolygon\") return geometry.coordinates.map((polygon) => {\n\t\treturn {\n\t\t\ttype: \"Polygon\",\n\t\t\tcoordinates: polygon\n\t\t};\n\t});\n\tif (geometry.type === \"MultiLineString\") return geometry.coordinates.map((lineString) => {\n\t\treturn {\n\t\t\ttype: \"LineString\",\n\t\t\tcoordinates: lineString\n\t\t};\n\t});\n\tif (geometry.type === \"MultiPoint\") return geometry.coordinates.map((point) => {\n\t\treturn {\n\t\t\ttype: \"Point\",\n\t\t\tcoordinates: point\n\t\t};\n\t});\n\treturn [geometry];\n}\nvar Distance = class Distance {\n\tconstructor(geojson, geometries) {\n\t\tthis.type = NumberType;\n\t\tthis.geojson = geojson;\n\t\tthis.geometries = geometries;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(`'distance' expression requires exactly one argument, but found ${args.length - 1} instead.`);\n\t\tif (isValue(args[1])) {\n\t\t\tconst geojson = args[1];\n\t\t\tif (geojson.type === \"FeatureCollection\") return new Distance(geojson, geojson.features.map((feature) => toSimpleGeometry(feature.geometry)).flat());\n\t\t\telse if (geojson.type === \"Feature\") return new Distance(geojson, toSimpleGeometry(geojson.geometry));\n\t\t\telse if (\"type\" in geojson && \"coordinates\" in geojson) return new Distance(geojson, toSimpleGeometry(geojson));\n\t\t}\n\t\treturn context.error(\"'distance' expression requires valid geojson object that contains polygon geometry type.\");\n\t}\n\tevaluate(ctx) {\n\t\tif (ctx.geometry() != null && ctx.canonicalID() != null) {\n\t\t\tif (ctx.geometryType() === \"Point\") return pointToGeometryDistance(ctx, this.geometries);\n\t\t\telse if (ctx.geometryType() === \"LineString\") return lineStringToGeometryDistance(ctx, this.geometries);\n\t\t\telse if (ctx.geometryType() === \"Polygon\") return polygonToGeometryDistance(ctx, this.geometries);\n\t\t}\n\t\treturn NaN;\n\t}\n\teachChild() {}\n\toutputDefined() {\n\t\treturn true;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/global_state.ts\nvar GlobalState = class GlobalState {\n\tconstructor(key) {\n\t\tthis.key = key;\n\t\tthis.type = ValueType;\n\t}\n\tstatic parse(args, context) {\n\t\tif (args.length !== 2) return context.error(`Expected 1 argument, but found ${args.length - 1} instead.`);\n\t\tconst key = args[1];\n\t\tif (key === void 0 || key === null) return context.error(\"Global state property must be defined.\");\n\t\tif (typeof key !== \"string\") return context.error(`Global state property must be string, but found ${typeof args[1]} instead.`);\n\t\treturn new GlobalState(key);\n\t}\n\tevaluate(ctx) {\n\t\tconst globalState = ctx.globals?.globalState;\n\t\tif (!globalState || Object.keys(globalState).length === 0) return null;\n\t\treturn getOwn(globalState, this.key) ?? null;\n\t}\n\teachChild() {}\n\toutputDefined() {\n\t\treturn false;\n\t}\n};\n//#endregion\n//#region src/expression/definitions/index.ts\nconst expressions = {\n\t\"==\": Equals,\n\t\"!=\": NotEquals,\n\t\">\": GreaterThan,\n\t\"<\": LessThan,\n\t\">=\": GreaterThanOrEqual,\n\t\"<=\": LessThanOrEqual,\n\tarray: Assertion,\n\tat: At,\n\tboolean: Assertion,\n\tcase: Case,\n\tcoalesce: Coalesce,\n\tcollator: CollatorExpression,\n\tformat: FormatExpression,\n\timage: ImageExpression,\n\tin: In,\n\t\"index-of\": IndexOf,\n\tinterpolate: Interpolate,\n\t\"interpolate-hcl\": Interpolate,\n\t\"interpolate-lab\": Interpolate,\n\tlength: Length,\n\tlet: Let,\n\tliteral: Literal,\n\tmatch: Match,\n\tnumber: Assertion,\n\t\"number-format\": NumberFormat,\n\tobject: Assertion,\n\tslice: Slice,\n\tstep: Step,\n\tstring: Assertion,\n\t\"to-boolean\": Coercion,\n\t\"to-color\": Coercion,\n\t\"to-number\": Coercion,\n\t\"to-string\": Coercion,\n\tvar: Var,\n\twithin: Within,\n\tdistance: Distance,\n\t\"global-state\": GlobalState\n};\n//#endregion\n//#region src/expression/compound_expression.ts\nvar CompoundExpression = class CompoundExpression {\n\tconstructor(name, type, evaluate, args, key) {\n\t\tthis.name = name;\n\t\tthis.type = type;\n\t\tthis._evaluate = evaluate;\n\t\tthis.args = args;\n\t\tthis.key = key;\n\t}\n\tevaluate(ctx) {\n\t\treturn this._evaluate(ctx, this.args, this.key);\n\t}\n\teachChild(fn) {\n\t\tthis.args.forEach(fn);\n\t}\n\toutputDefined() {\n\t\treturn false;\n\t}\n\tstatic parse(args, context) {\n\t\tconst op = args[0];\n\t\tconst definition = CompoundExpression.definitions[op];\n\t\tif (!definition) return context.error(`Unknown expression \"${op}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n\t\tconst type = Array.isArray(definition) ? definition[0] : definition.type;\n\t\tconst availableOverloads = Array.isArray(definition) ? [[definition[1], definition[2]]] : definition.overloads;\n\t\tconst overloads = availableOverloads.filter(([signature]) => !Array.isArray(signature) || signature.length === args.length - 1);\n\t\tlet signatureContext = null;\n\t\tfor (const [params, evaluate] of overloads) {\n\t\t\tsignatureContext = new ParsingContext(context.registry, isExpressionConstant, context.path, null, context.scope);\n\t\t\tconst parsedArgs = [];\n\t\t\tlet argParseFailed = false;\n\t\t\tfor (let i = 1; i < args.length; i++) {\n\t\t\t\tconst arg = args[i];\n\t\t\t\tconst expectedType = Array.isArray(params) ? params[i - 1] : params.type;\n\t\t\t\tconst parsed = signatureContext.parse(arg, 1 + parsedArgs.length, expectedType);\n\t\t\t\tif (!parsed) {\n\t\t\t\t\targParseFailed = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tparsedArgs.push(parsed);\n\t\t\t}\n\t\t\tif (argParseFailed) continue;\n\t\t\tif (Array.isArray(params)) {\n\t\t\t\tif (params.length !== parsedArgs.length) {\n\t\t\t\t\tsignatureContext.error(`Expected ${params.length} arguments, but found ${parsedArgs.length} instead.`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < parsedArgs.length; i++) {\n\t\t\t\tconst expected = Array.isArray(params) ? params[i] : params.type;\n\t\t\t\tconst arg = parsedArgs[i];\n\t\t\t\tsignatureContext.concat(i + 1).checkSubtype(expected, arg.type);\n\t\t\t}\n\t\t\tif (signatureContext.errors.length === 0) return new CompoundExpression(op, type, evaluate, parsedArgs, context.key);\n\t\t}\n\t\tif (overloads.length === 1) context.errors.push(...signatureContext.errors);\n\t\telse {\n\t\t\tconst signatures = (overloads.length ? overloads : availableOverloads).map(([params]) => stringifySignature(params)).join(\" | \");\n\t\t\tconst actualTypes = [];\n\t\t\tfor (let i = 1; i < args.length; i++) {\n\t\t\t\tconst parsed = context.parse(args[i], 1 + actualTypes.length);\n\t\t\t\tif (!parsed) return null;\n\t\t\t\tactualTypes.push(typeToString(parsed.type));\n\t\t\t}\n\t\t\tcontext.error(`Expected arguments of type ${signatures}, but found (${actualTypes.join(\", \")}) instead.`);\n\t\t}\n\t\treturn null;\n\t}\n\tstatic register(registry, definitions) {\n\t\tCompoundExpression.definitions = definitions;\n\t\tfor (const name in definitions) registry[name] = CompoundExpression;\n\t}\n};\nfunction rgba(ctx, [r, g, b, a], key) {\n\tr = r.evaluate(ctx);\n\tg = g.evaluate(ctx);\n\tb = b.evaluate(ctx);\n\tconst alpha = a ? a.evaluate(ctx) : 1;\n\tconst error = validateRGBA(r, g, b, alpha);\n\tif (error) throw new RuntimeError(error, key);\n\treturn new Color(r / 255, g / 255, b / 255, alpha, false);\n}\nfunction has(key, obj) {\n\treturn key in obj && obj[key] !== void 0;\n}\nfunction get(key, obj) {\n\tconst v = obj[key];\n\treturn typeof v === \"undefined\" ? null : v;\n}\nfunction binarySearch(v, a, i, j) {\n\twhile (i <= j) {\n\t\tconst m = i + j >> 1;\n\t\tif (a[m] === v) return true;\n\t\tif (a[m] > v) j = m - 1;\n\t\telse i = m + 1;\n\t}\n\treturn false;\n}\nfunction varargs(type) {\n\treturn { type };\n}\nCompoundExpression.register(expressions, {\n\terror: [\n\t\tErrorType,\n\t\t[StringType],\n\t\t(ctx, [v], key) => {\n\t\t\tthrow new RuntimeError(v.evaluate(ctx), key);\n\t\t}\n\t],\n\ttypeof: [\n\t\tStringType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => typeToString(typeOf(v.evaluate(ctx)))\n\t],\n\t\"to-rgba\": [\n\t\tarray(NumberType, 4),\n\t\t[ColorType],\n\t\t(ctx, [v]) => {\n\t\t\tconst [r, g, b, a] = v.evaluate(ctx).rgb;\n\t\t\treturn [\n\t\t\t\tr * 255,\n\t\t\t\tg * 255,\n\t\t\t\tb * 255,\n\t\t\t\ta\n\t\t\t];\n\t\t}\n\t],\n\trgb: [\n\t\tColorType,\n\t\t[\n\t\t\tNumberType,\n\t\t\tNumberType,\n\t\t\tNumberType\n\t\t],\n\t\trgba\n\t],\n\trgba: [\n\t\tColorType,\n\t\t[\n\t\t\tNumberType,\n\t\t\tNumberType,\n\t\t\tNumberType,\n\t\t\tNumberType\n\t\t],\n\t\trgba\n\t],\n\thas: {\n\t\ttype: BooleanType,\n\t\toverloads: [[[StringType], (ctx, [key]) => has(key.evaluate(ctx), ctx.properties())], [[StringType, ObjectType], (ctx, [key, obj]) => has(key.evaluate(ctx), obj.evaluate(ctx))]]\n\t},\n\tget: {\n\t\ttype: ValueType,\n\t\toverloads: [[[StringType], (ctx, [key]) => get(key.evaluate(ctx), ctx.properties())], [[StringType, ObjectType], (ctx, [key, obj]) => get(key.evaluate(ctx), obj.evaluate(ctx))]]\n\t},\n\t\"feature-state\": [\n\t\tValueType,\n\t\t[StringType],\n\t\t(ctx, [key]) => get(key.evaluate(ctx), ctx.featureState || {})\n\t],\n\tproperties: [\n\t\tObjectType,\n\t\t[],\n\t\t(ctx) => ctx.properties()\n\t],\n\t\"geometry-type\": [\n\t\tStringType,\n\t\t[],\n\t\t(ctx) => ctx.geometryType()\n\t],\n\tid: [\n\t\tValueType,\n\t\t[],\n\t\t(ctx) => ctx.id()\n\t],\n\tzoom: [\n\t\tNumberType,\n\t\t[],\n\t\t(ctx) => ctx.globals.zoom\n\t],\n\t\"heatmap-density\": [\n\t\tNumberType,\n\t\t[],\n\t\t(ctx) => ctx.globals.heatmapDensity || 0\n\t],\n\televation: [\n\t\tNumberType,\n\t\t[],\n\t\t(ctx) => ctx.globals.elevation || 0\n\t],\n\t\"line-progress\": [\n\t\tNumberType,\n\t\t[],\n\t\t(ctx) => ctx.globals.lineProgress || 0\n\t],\n\taccumulated: [\n\t\tValueType,\n\t\t[],\n\t\t(ctx) => ctx.globals.accumulated === void 0 ? null : ctx.globals.accumulated\n\t],\n\t\"+\": [\n\t\tNumberType,\n\t\tvarargs(NumberType),\n\t\t(ctx, args) => {\n\t\t\tlet result = 0;\n\t\t\tfor (const arg of args) result += arg.evaluate(ctx);\n\t\t\treturn result;\n\t\t}\n\t],\n\t\"*\": [\n\t\tNumberType,\n\t\tvarargs(NumberType),\n\t\t(ctx, args) => {\n\t\t\tlet result = 1;\n\t\t\tfor (const arg of args) result *= arg.evaluate(ctx);\n\t\t\treturn result;\n\t\t}\n\t],\n\t\"-\": {\n\t\ttype: NumberType,\n\t\toverloads: [[[NumberType, NumberType], (ctx, [a, b]) => a.evaluate(ctx) - b.evaluate(ctx)], [[NumberType], (ctx, [a]) => -a.evaluate(ctx)]]\n\t},\n\t\"/\": [\n\t\tNumberType,\n\t\t[NumberType, NumberType],\n\t\t(ctx, [a, b]) => a.evaluate(ctx) / b.evaluate(ctx)\n\t],\n\t\"%\": [\n\t\tNumberType,\n\t\t[NumberType, NumberType],\n\t\t(ctx, [a, b]) => a.evaluate(ctx) % b.evaluate(ctx)\n\t],\n\tln2: [\n\t\tNumberType,\n\t\t[],\n\t\t() => Math.LN2\n\t],\n\tpi: [\n\t\tNumberType,\n\t\t[],\n\t\t() => Math.PI\n\t],\n\te: [\n\t\tNumberType,\n\t\t[],\n\t\t() => Math.E\n\t],\n\t\"^\": [\n\t\tNumberType,\n\t\t[NumberType, NumberType],\n\t\t(ctx, [b, e]) => Math.pow(b.evaluate(ctx), e.evaluate(ctx))\n\t],\n\tsqrt: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [x]) => Math.sqrt(x.evaluate(ctx))\n\t],\n\tlog10: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.log(n.evaluate(ctx)) / Math.LN10\n\t],\n\tln: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.log(n.evaluate(ctx))\n\t],\n\tlog2: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.log(n.evaluate(ctx)) / Math.LN2\n\t],\n\tsin: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.sin(n.evaluate(ctx))\n\t],\n\tcos: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.cos(n.evaluate(ctx))\n\t],\n\ttan: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.tan(n.evaluate(ctx))\n\t],\n\tasin: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.asin(n.evaluate(ctx))\n\t],\n\tacos: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.acos(n.evaluate(ctx))\n\t],\n\tatan: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.atan(n.evaluate(ctx))\n\t],\n\tmin: [\n\t\tNumberType,\n\t\tvarargs(NumberType),\n\t\t(ctx, args) => Math.min(...args.map((arg) => arg.evaluate(ctx)))\n\t],\n\tmax: [\n\t\tNumberType,\n\t\tvarargs(NumberType),\n\t\t(ctx, args) => Math.max(...args.map((arg) => arg.evaluate(ctx)))\n\t],\n\tabs: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.abs(n.evaluate(ctx))\n\t],\n\tround: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => {\n\t\t\tconst v = n.evaluate(ctx);\n\t\t\treturn v < 0 ? -Math.round(-v) : Math.round(v);\n\t\t}\n\t],\n\tfloor: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.floor(n.evaluate(ctx))\n\t],\n\tceil: [\n\t\tNumberType,\n\t\t[NumberType],\n\t\t(ctx, [n]) => Math.ceil(n.evaluate(ctx))\n\t],\n\t\"filter-==\": [\n\t\tBooleanType,\n\t\t[StringType, ValueType],\n\t\t(ctx, [k, v]) => ctx.properties()[k.value] === v.value\n\t],\n\t\"filter-id-==\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => ctx.id() === v.value\n\t],\n\t\"filter-type-==\": [\n\t\tBooleanType,\n\t\t[StringType],\n\t\t(ctx, [v]) => ctx.geometryType() === v.value\n\t],\n\t\"filter-<\": [\n\t\tBooleanType,\n\t\t[StringType, ValueType],\n\t\t(ctx, [k, v]) => {\n\t\t\tconst a = ctx.properties()[k.value];\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a < b;\n\t\t}\n\t],\n\t\"filter-id-<\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => {\n\t\t\tconst a = ctx.id();\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a < b;\n\t\t}\n\t],\n\t\"filter->\": [\n\t\tBooleanType,\n\t\t[StringType, ValueType],\n\t\t(ctx, [k, v]) => {\n\t\t\tconst a = ctx.properties()[k.value];\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a > b;\n\t\t}\n\t],\n\t\"filter-id->\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => {\n\t\t\tconst a = ctx.id();\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a > b;\n\t\t}\n\t],\n\t\"filter-<=\": [\n\t\tBooleanType,\n\t\t[StringType, ValueType],\n\t\t(ctx, [k, v]) => {\n\t\t\tconst a = ctx.properties()[k.value];\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a <= b;\n\t\t}\n\t],\n\t\"filter-id-<=\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => {\n\t\t\tconst a = ctx.id();\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a <= b;\n\t\t}\n\t],\n\t\"filter->=\": [\n\t\tBooleanType,\n\t\t[StringType, ValueType],\n\t\t(ctx, [k, v]) => {\n\t\t\tconst a = ctx.properties()[k.value];\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a >= b;\n\t\t}\n\t],\n\t\"filter-id->=\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [v]) => {\n\t\t\tconst a = ctx.id();\n\t\t\tconst b = v.value;\n\t\t\treturn typeof a === typeof b && a >= b;\n\t\t}\n\t],\n\t\"filter-has\": [\n\t\tBooleanType,\n\t\t[ValueType],\n\t\t(ctx, [k]) => {\n\t\t\tconst key = k.value;\n\t\t\tconst props = ctx.properties();\n\t\t\treturn key in props && props[key] !== void 0;\n\t\t}\n\t],\n\t\"filter-has-id\": [\n\t\tBooleanType,\n\t\t[],\n\t\t(ctx) => ctx.id() !== null && ctx.id() !== void 0\n\t],\n\t\"filter-type-in\": [\n\t\tBooleanType,\n\t\t[array(StringType)],\n\t\t(ctx, [v]) => v.value.indexOf(ctx.geometryType()) >= 0\n\t],\n\t\"filter-id-in\": [\n\t\tBooleanType,\n\t\t[array(ValueType)],\n\t\t(ctx, [v]) => v.value.indexOf(ctx.id()) >= 0\n\t],\n\t\"filter-in-small\": [\n\t\tBooleanType,\n\t\t[StringType, array(ValueType)],\n\t\t(ctx, [k, v]) => v.value.indexOf(ctx.properties()[k.value]) >= 0\n\t],\n\t\"filter-in-large\": [\n\t\tBooleanType,\n\t\t[StringType, array(ValueType)],\n\t\t(ctx, [k, v]) => binarySearch(ctx.properties()[k.value], v.value, 0, v.value.length - 1)\n\t],\n\tall: {\n\t\ttype: BooleanType,\n\t\toverloads: [[[BooleanType, BooleanType], (ctx, [a, b]) => a.evaluate(ctx) && b.evaluate(ctx)], [varargs(BooleanType), (ctx, args) => {\n\t\t\tfor (const arg of args) if (!arg.evaluate(ctx)) return false;\n\t\t\treturn true;\n\t\t}]]\n\t},\n\tany: {\n\t\ttype: BooleanType,\n\t\toverloads: [[[BooleanType, BooleanType], (ctx, [a, b]) => a.evaluate(ctx) || b.evaluate(ctx)], [varargs(BooleanType), (ctx, args) => {\n\t\t\tfor (const arg of args) if (arg.evaluate(ctx)) return true;\n\t\t\treturn false;\n\t\t}]]\n\t},\n\t\"!\": [\n\t\tBooleanType,\n\t\t[BooleanType],\n\t\t(ctx, [b]) => !b.evaluate(ctx)\n\t],\n\t\"is-supported-script\": [\n\t\tBooleanType,\n\t\t[StringType],\n\t\t(ctx, [s]) => {\n\t\t\tconst isSupportedScript = ctx.globals && ctx.globals.isSupportedScript;\n\t\t\tif (isSupportedScript) return isSupportedScript(s.evaluate(ctx));\n\t\t\treturn true;\n\t\t}\n\t],\n\tupcase: [\n\t\tStringType,\n\t\t[StringType],\n\t\t(ctx, [s]) => s.evaluate(ctx).toUpperCase()\n\t],\n\tdowncase: [\n\t\tStringType,\n\t\t[StringType],\n\t\t(ctx, [s]) => s.evaluate(ctx).toLowerCase()\n\t],\n\tconcat: [\n\t\tStringType,\n\t\tvarargs(ValueType),\n\t\t(ctx, args) => args.map((arg) => valueToString(arg.evaluate(ctx))).join(\"\")\n\t],\n\tsplit: [\n\t\tarray(StringType),\n\t\t[StringType, StringType],\n\t\t(ctx, [s, delim]) => s.evaluate(ctx).split(delim.evaluate(ctx))\n\t],\n\tjoin: [\n\t\tStringType,\n\t\t[array(StringType), StringType],\n\t\t(ctx, [arr, delim]) => arr.evaluate(ctx).join(delim.evaluate(ctx))\n\t],\n\t\"resolved-locale\": [\n\t\tStringType,\n\t\t[CollatorType],\n\t\t(ctx, [collator]) => collator.evaluate(ctx).resolvedLocale()\n\t]\n});\nfunction stringifySignature(signature) {\n\tif (Array.isArray(signature)) return `(${signature.map(typeToString).join(\", \")})`;\n\telse return `(${typeToString(signature.type)}...)`;\n}\nfunction isExpressionConstant(expression) {\n\tif (expression instanceof Var) return isExpressionConstant(expression.boundExpression);\n\telse if (expression instanceof CompoundExpression && expression.name === \"error\") return false;\n\telse if (expression instanceof CollatorExpression) return false;\n\telse if (expression instanceof Within) return false;\n\telse if (expression instanceof Distance) return false;\n\telse if (expression instanceof GlobalState) return false;\n\tconst isTypeAnnotation = expression instanceof Coercion || expression instanceof Assertion;\n\tlet childrenConstant = true;\n\texpression.eachChild((child) => {\n\t\tif (isTypeAnnotation) childrenConstant = childrenConstant && isExpressionConstant(child);\n\t\telse childrenConstant = childrenConstant && child instanceof Literal;\n\t});\n\tif (!childrenConstant) return false;\n\treturn isFeatureConstant(expression) && isGlobalPropertyConstant(expression, [\n\t\t\"zoom\",\n\t\t\"heatmap-density\",\n\t\t\"elevation\",\n\t\t\"line-progress\",\n\t\t\"accumulated\",\n\t\t\"is-supported-script\"\n\t]);\n}\nfunction isFeatureConstant(e) {\n\tif (e instanceof CompoundExpression) {\n\t\tif (e.name === \"get\" && e.args.length === 1) return false;\n\t\telse if (e.name === \"feature-state\") return false;\n\t\telse if (e.name === \"has\" && e.args.length === 1) return false;\n\t\telse if (e.name === \"properties\" || e.name === \"geometry-type\" || e.name === \"id\") return false;\n\t\telse if (/^filter-/.test(e.name)) return false;\n\t}\n\tif (e instanceof Within) return false;\n\tif (e instanceof Distance) return false;\n\tlet result = true;\n\te.eachChild((arg) => {\n\t\tif (result && !isFeatureConstant(arg)) result = false;\n\t});\n\treturn result;\n}\nfunction isStateConstant(e) {\n\tif (e instanceof CompoundExpression) {\n\t\tif (e.name === \"feature-state\") return false;\n\t}\n\tlet result = true;\n\te.eachChild((arg) => {\n\t\tif (result && !isStateConstant(arg)) result = false;\n\t});\n\treturn result;\n}\nfunction isGlobalPropertyConstant(e, properties) {\n\tif (e instanceof CompoundExpression && properties.indexOf(e.name) >= 0) return false;\n\tlet result = true;\n\te.eachChild((arg) => {\n\t\tif (result && !isGlobalPropertyConstant(arg, properties)) result = false;\n\t});\n\treturn result;\n}\n//#endregion\n//#region src/util/result.ts\nfunction success(value) {\n\treturn {\n\t\tresult: \"success\",\n\t\tvalue\n\t};\n}\nfunction error(value) {\n\treturn {\n\t\tresult: \"error\",\n\t\tvalue\n\t};\n}\n//#endregion\n//#region src/util/properties.ts\nfunction supportsPropertyExpression(spec) {\n\treturn spec[\"property-type\"] === \"data-driven\" || spec[\"property-type\"] === \"cross-faded-data-driven\";\n}\nfunction supportsZoomExpression(spec) {\n\treturn !!spec.expression && spec.expression.parameters.indexOf(\"zoom\") > -1;\n}\nfunction supportsInterpolation(spec) {\n\treturn !!spec.expression && spec.expression.interpolated;\n}\n//#endregion\n//#region src/util/extend.ts\nfunction extendBy(output, ...inputs) {\n\tfor (const input of inputs) for (const k in input) output[k] = input[k];\n\treturn output;\n}\n//#endregion\n//#region src/util/get_type.ts\nfunction getType(val) {\n\tif (val instanceof Number) return \"number\";\n\telse if (val instanceof String) return \"string\";\n\telse if (val instanceof Boolean) return \"boolean\";\n\telse if (Array.isArray(val)) return \"array\";\n\telse if (val === null) return \"null\";\n\telse return typeof val;\n}\n//#endregion\n//#region src/function/index.ts\nfunction isFunction(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value) && typeOf(value) === ObjectType;\n}\nfunction identityFunction(x) {\n\treturn x;\n}\nfunction getParseFunction(propertySpec) {\n\tswitch (propertySpec.type) {\n\t\tcase \"color\": return Color.parse;\n\t\tcase \"padding\": return Padding.parse;\n\t\tcase \"numberArray\": return NumberArray.parse;\n\t\tcase \"colorArray\": return ColorArray.parse;\n\t\tdefault: return null;\n\t}\n}\nfunction getInnerFunction(type) {\n\tswitch (type) {\n\t\tcase \"exponential\": return evaluateExponentialFunction;\n\t\tcase \"interval\": return evaluateIntervalFunction;\n\t\tcase \"categorical\": return evaluateCategoricalFunction;\n\t\tcase \"identity\": return evaluateIdentityFunction;\n\t\tdefault: throw new Error(`Unknown function type \"${type}\"`);\n\t}\n}\nfunction createFunction(parameters, propertySpec) {\n\tconst zoomAndFeatureDependent = parameters.stops && typeof parameters.stops[0][0] === \"object\";\n\tconst featureDependent = zoomAndFeatureDependent || parameters.property !== void 0;\n\tconst zoomDependent = zoomAndFeatureDependent || !featureDependent;\n\tconst type = parameters.type || (supportsInterpolation(propertySpec) ? \"exponential\" : \"interval\");\n\tconst parseFn = getParseFunction(propertySpec);\n\tif (parseFn) {\n\t\tparameters = extendBy({}, parameters);\n\t\tif (parameters.stops) parameters.stops = parameters.stops.map((stop) => {\n\t\t\treturn [stop[0], parseFn(stop[1])];\n\t\t});\n\t\tif (parameters.default) parameters.default = parseFn(parameters.default);\n\t\telse parameters.default = parseFn(propertySpec.default);\n\t}\n\tif (parameters.colorSpace && !isSupportedInterpolationColorSpace(parameters.colorSpace)) throw new Error(`Unknown color space: \"${parameters.colorSpace}\"`);\n\tconst innerFun = getInnerFunction(type);\n\tlet hashedStops;\n\tlet categoricalKeyType;\n\tif (type === \"categorical\") {\n\t\thashedStops = Object.create(null);\n\t\tfor (const stop of parameters.stops) hashedStops[stop[0]] = stop[1];\n\t\tcategoricalKeyType = typeof parameters.stops[0][0];\n\t}\n\tif (zoomAndFeatureDependent) {\n\t\tconst featureFunctions = {};\n\t\tconst zoomStops = [];\n\t\tfor (let s = 0; s < parameters.stops.length; s++) {\n\t\t\tconst stop = parameters.stops[s];\n\t\t\tconst zoom = stop[0].zoom;\n\t\t\tif (featureFunctions[zoom] === void 0) {\n\t\t\t\tfeatureFunctions[zoom] = {\n\t\t\t\t\tzoom,\n\t\t\t\t\ttype: parameters.type,\n\t\t\t\t\tproperty: parameters.property,\n\t\t\t\t\tdefault: parameters.default,\n\t\t\t\t\tstops: []\n\t\t\t\t};\n\t\t\t\tzoomStops.push(zoom);\n\t\t\t}\n\t\t\tfeatureFunctions[zoom].stops.push([stop[0].value, stop[1]]);\n\t\t}\n\t\tconst featureFunctionStops = [];\n\t\tfor (const z of zoomStops) featureFunctionStops.push([featureFunctions[z].zoom, createFunction(featureFunctions[z], propertySpec)]);\n\t\tconst interpolationType = { name: \"linear\" };\n\t\treturn {\n\t\t\tkind: \"composite\",\n\t\t\tinterpolationType,\n\t\t\tinterpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType),\n\t\t\tzoomStops: featureFunctionStops.map((s) => s[0]),\n\t\t\tevaluate({ zoom }, properties) {\n\t\t\t\treturn evaluateExponentialFunction({\n\t\t\t\t\tstops: featureFunctionStops,\n\t\t\t\t\tbase: parameters.base\n\t\t\t\t}, propertySpec, zoom).evaluate(zoom, properties);\n\t\t\t}\n\t\t};\n\t} else if (zoomDependent) {\n\t\tconst interpolationType = type === \"exponential\" ? {\n\t\t\tname: \"exponential\",\n\t\t\tbase: parameters.base !== void 0 ? parameters.base : 1\n\t\t} : null;\n\t\treturn {\n\t\t\tkind: \"camera\",\n\t\t\tinterpolationType,\n\t\t\tinterpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType),\n\t\t\tzoomStops: parameters.stops.map((s) => s[0]),\n\t\t\tevaluate: ({ zoom }) => innerFun(parameters, propertySpec, zoom, hashedStops, categoricalKeyType)\n\t\t};\n\t} else return {\n\t\tkind: \"source\",\n\t\tevaluate(_, feature) {\n\t\t\tconst value = feature && feature.properties ? feature.properties[parameters.property] : void 0;\n\t\t\tif (value === void 0) return coalesce$1(parameters.default, propertySpec.default);\n\t\t\treturn innerFun(parameters, propertySpec, value, hashedStops, categoricalKeyType);\n\t\t}\n\t};\n}\nfunction coalesce$1(a, b, c) {\n\tif (a !== void 0) return a;\n\tif (b !== void 0) return b;\n\tif (c !== void 0) return c;\n}\nfunction evaluateCategoricalFunction(parameters, propertySpec, input, hashedStops, keyType) {\n\treturn coalesce$1(typeof input === keyType ? hashedStops[input] : void 0, parameters.default, propertySpec.default);\n}\nfunction evaluateIntervalFunction(parameters, propertySpec, input) {\n\tif (getType(input) !== \"number\") return coalesce$1(parameters.default, propertySpec.default);\n\tconst n = parameters.stops.length;\n\tif (n === 1) return parameters.stops[0][1];\n\tif (input <= parameters.stops[0][0]) return parameters.stops[0][1];\n\tif (input >= parameters.stops[n - 1][0]) return parameters.stops[n - 1][1];\n\tconst index = findStopLessThanOrEqualTo(parameters.stops.map((stop) => stop[0]), input, \"\");\n\treturn parameters.stops[index][1];\n}\nfunction evaluateExponentialFunction(parameters, propertySpec, input) {\n\tconst base = parameters.base !== void 0 ? parameters.base : 1;\n\tif (getType(input) !== \"number\") return coalesce$1(parameters.default, propertySpec.default);\n\tconst n = parameters.stops.length;\n\tif (n === 1) return parameters.stops[0][1];\n\tif (input <= parameters.stops[0][0]) return parameters.stops[0][1];\n\tif (input >= parameters.stops[n - 1][0]) return parameters.stops[n - 1][1];\n\tconst index = findStopLessThanOrEqualTo(parameters.stops.map((stop) => stop[0]), input, \"\");\n\tconst t = interpolationFactor(input, base, parameters.stops[index][0], parameters.stops[index + 1][0]);\n\tconst outputLower = parameters.stops[index][1];\n\tconst outputUpper = parameters.stops[index + 1][1];\n\tconst interp = interpolateFactory[propertySpec.type] || identityFunction;\n\tif (typeof outputLower.evaluate === \"function\") return { evaluate(...args) {\n\t\tconst evaluatedLower = outputLower.evaluate.apply(void 0, args);\n\t\tconst evaluatedUpper = outputUpper.evaluate.apply(void 0, args);\n\t\tif (evaluatedLower === void 0 || evaluatedUpper === void 0) return;\n\t\treturn interp(evaluatedLower, evaluatedUpper, t, parameters.colorSpace);\n\t} };\n\treturn interp(outputLower, outputUpper, t, parameters.colorSpace);\n}\nfunction evaluateIdentityFunction(parameters, propertySpec, input) {\n\tswitch (propertySpec.type) {\n\t\tcase \"color\":\n\t\t\tinput = Color.parse(input);\n\t\t\tbreak;\n\t\tcase \"formatted\":\n\t\t\tinput = Formatted.fromString(input.toString());\n\t\t\tbreak;\n\t\tcase \"resolvedImage\":\n\t\t\tinput = ResolvedImage.fromString(input.toString());\n\t\t\tbreak;\n\t\tcase \"padding\":\n\t\t\tinput = Padding.parse(input);\n\t\t\tbreak;\n\t\tcase \"colorArray\":\n\t\t\tinput = ColorArray.parse(input);\n\t\t\tbreak;\n\t\tcase \"numberArray\":\n\t\t\tinput = NumberArray.parse(input);\n\t\t\tbreak;\n\t\tdefault: if (getType(input) !== propertySpec.type && (propertySpec.type !== \"enum\" || !propertySpec.values[input])) input = void 0;\n\t}\n\treturn coalesce$1(input, parameters.default, propertySpec.default);\n}\n/**\n* Returns a ratio that can be used to interpolate between exponential function\n* stops.\n*\n* How it works:\n* Two consecutive stop values define a (scaled and shifted) exponential\n* function `f(x) = a * base^x + b`, where `base` is the user-specified base,\n* and `a` and `b` are constants affording sufficient degrees of freedom to fit\n* the function to the given stops.\n*\n* Here's a bit of algebra that lets us compute `f(x)` directly from the stop\n* values without explicitly solving for `a` and `b`:\n*\n* First stop value: `f(x0) = y0 = a * base^x0 + b`\n* Second stop value: `f(x1) = y1 = a * base^x1 + b`\n* => `y1 - y0 = a(base^x1 - base^x0)`\n* => `a = (y1 - y0)/(base^x1 - base^x0)`\n*\n* Desired value: `f(x) = y = a * base^x + b`\n* => `f(x) = y0 + a * (base^x - base^x0)`\n*\n* From the above, we can replace the `a` in `a * (base^x - base^x0)` and do a\n* little algebra:\n* ```\n* a * (base^x - base^x0) = (y1 - y0)/(base^x1 - base^x0) * (base^x - base^x0)\n* = (y1 - y0) * (base^x - base^x0) / (base^x1 - base^x0)\n* ```\n*\n* If we let `(base^x - base^x0) / (base^x1 base^x0)`, then we have\n* `f(x) = y0 + (y1 - y0) * ratio`. In other words, `ratio` may be treated as\n* an interpolation factor between the two stops' output values.\n*\n* (Note: a slightly different form for `ratio`,\n* `(base^(x-x0) - 1) / (base^(x1-x0) - 1) `, is equivalent, but requires fewer\n* expensive `Math.pow()` operations.)\n*\n* @private\n*/\nfunction interpolationFactor(input, base, lowerValue, upperValue) {\n\tconst difference = upperValue - lowerValue;\n\tconst progress = input - lowerValue;\n\tif (difference === 0) return 0;\n\telse if (base === 1) return progress / difference;\n\telse return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n}\n//#endregion\n//#region src/expression/index.ts\nvar StyleExpression = class {\n\tconstructor(expression, rootKey, propertySpec, globalState) {\n\t\tthis.expression = expression;\n\t\tthis._warningHistory = {};\n\t\tthis._evaluator = new EvaluationContext();\n\t\tthis._defaultValue = propertySpec ? getDefaultValue(propertySpec) : null;\n\t\tthis._enumValues = propertySpec && propertySpec.type === \"enum\" ? propertySpec.values : null;\n\t\tthis._globalState = globalState;\n\t\tthis._rootKey = rootKey;\n\t}\n\tevaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\tthis._evaluator.globals = globals;\n\t\tthis._evaluator.feature = feature;\n\t\tthis._evaluator.featureState = featureState;\n\t\tthis._evaluator.canonical = canonical;\n\t\tthis._evaluator.availableImages = availableImages || null;\n\t\tthis._evaluator.formattedSection = formattedSection;\n\t\treturn this.expression.evaluate(this._evaluator);\n\t}\n\tevaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\tthis._evaluator.globals = globals;\n\t\tthis._evaluator.feature = feature || null;\n\t\tthis._evaluator.featureState = featureState || null;\n\t\tthis._evaluator.canonical = canonical;\n\t\tthis._evaluator.availableImages = availableImages || null;\n\t\tthis._evaluator.formattedSection = formattedSection || null;\n\t\ttry {\n\t\t\tconst val = this.expression.evaluate(this._evaluator);\n\t\t\tif (val === null || val === void 0 || typeof val === \"number\" && val !== val) return this._defaultValue;\n\t\t\tif (this._enumValues && !(val in this._enumValues)) throw new RuntimeError(`Expected value to be one of ${Object.keys(this._enumValues).map((v) => JSON.stringify(v)).join(\", \")}, but found ${JSON.stringify(val)} instead.`, \"\");\n\t\t\treturn val;\n\t\t} catch (e) {\n\t\t\tconst path = e instanceof RuntimeError ? e.path : \"\";\n\t\t\tconst dedupKey = `${path}|${e.message}`;\n\t\t\tif (!this._warningHistory[dedupKey]) {\n\t\t\t\tthis._warningHistory[dedupKey] = true;\n\t\t\t\tif (typeof console !== \"undefined\") console.warn(formatRuntimeWarning(this._rootKey, path, e.message, this._defaultValue));\n\t\t\t}\n\t\t\treturn this._defaultValue;\n\t\t}\n\t}\n};\n/**\n* Builds the warning logged when an expression or legacy function fails at\n* evaluation: a `rootKey + index path` location prefix, plus the fallback\n* value being used.\n* @param rootKey Caller-supplied location of the expression in the style JSON\n* @param path Index path of the throwing sub-expression ('' for the root)\n* @param message The error message from the failed evaluation\n* @param defaultValue The value being fallen back to\n* @returns The formatted warning string\n*/\nfunction formatRuntimeWarning(rootKey, path, message, defaultValue) {\n\treturn `${rootKey}${path}: ${message}${defaultValue == null ? \"\" : ` Falling back to ${String(defaultValue)}.`}`;\n}\n/**\n* Rejects a missing or empty root key. The location prefix is what makes\n* runtime warnings actionable, so callers must always supply one; failing\n* here surfaces the programmer error at style load instead of producing\n* unattributable warnings at render time.\n* @param rootKey The root key to check\n*/\nfunction assertRootKey(rootKey) {\n\tif (!rootKey) throw new Error(\"rootKey must identify the location of the expression in the style JSON, e.g. \\\"layers[3].paint.line-width\\\".\");\n}\nfunction isExpression(expression) {\n\treturn Array.isArray(expression) && expression.length > 0 && typeof expression[0] === \"string\" && expression[0] in expressions;\n}\n/**\n* Parse and typecheck the given style spec JSON expression. If\n* options.defaultValue is provided, then the resulting StyleExpression's\n* `evaluate()` method will handle errors by logging a warning (once per\n* message) and returning the default value. Otherwise, it will throw\n* evaluation errors.\n*\n* @private\n*/\nfunction createExpression(expression, rootKey, propertySpec, globalState) {\n\tassertRootKey(rootKey);\n\tconst parser = new ParsingContext(expressions, isExpressionConstant, [], propertySpec ? getExpectedType(propertySpec) : void 0);\n\tconst parsed = parser.parse(expression, void 0, void 0, void 0, propertySpec && propertySpec.type === \"string\" ? { typeAnnotation: \"coerce\" } : void 0);\n\tif (!parsed) return error(parser.errors);\n\treturn success(new StyleExpression(parsed, rootKey, propertySpec, globalState));\n}\nvar ZoomConstantExpression = class {\n\tconstructor(kind, expression, globalState) {\n\t\tthis.kind = kind;\n\t\tthis._styleExpression = expression;\n\t\tthis.isStateDependent = kind !== \"constant\" && !isStateConstant(expression.expression);\n\t\tthis.globalStateRefs = findGlobalStateRefs(expression.expression);\n\t\tthis._globalState = globalState;\n\t}\n\tevaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\treturn this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n\t}\n\tevaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\treturn this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n\t}\n};\nvar ZoomDependentExpression = class {\n\tconstructor(kind, expression, zoomStops, interpolationType, globalState) {\n\t\tthis.kind = kind;\n\t\tthis.zoomStops = zoomStops;\n\t\tthis._styleExpression = expression;\n\t\tthis.isStateDependent = kind !== \"camera\" && !isStateConstant(expression.expression);\n\t\tthis.globalStateRefs = findGlobalStateRefs(expression.expression);\n\t\tthis.interpolationType = interpolationType;\n\t\tthis._globalState = globalState;\n\t}\n\tevaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\treturn this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n\t}\n\tevaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n\t\tif (this._globalState) globals = addGlobalState(globals, this._globalState);\n\t\treturn this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n\t}\n\tinterpolationFactor(input, lower, upper) {\n\t\tif (this.interpolationType) return Interpolate.interpolationFactor(this.interpolationType, input, lower, upper);\n\t\telse return 0;\n\t}\n};\nfunction isZoomExpression(expression) {\n\treturn expression._styleExpression !== void 0;\n}\nfunction createPropertyExpression(expressionInput, rootKey, propertySpec, globalState) {\n\tconst expression = createExpression(expressionInput, rootKey, propertySpec, globalState);\n\tif (expression.result === \"error\") return expression;\n\tconst parsed = expression.value.expression;\n\tconst isFeatureConstantResult = isFeatureConstant(parsed);\n\tif (!isFeatureConstantResult && !supportsPropertyExpression(propertySpec)) return error([new ExpressionParsingError(\"\", \"data expressions not supported\")]);\n\tconst isZoomConstant = isGlobalPropertyConstant(parsed, [\"zoom\"]);\n\tif (!isZoomConstant && !supportsZoomExpression(propertySpec)) return error([new ExpressionParsingError(\"\", \"zoom expressions not supported\")]);\n\tconst zoomCurve = findZoomCurve(parsed);\n\tif (!zoomCurve && !isZoomConstant) return error([new ExpressionParsingError(\"\", \"\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.\")]);\n\telse if (zoomCurve instanceof ExpressionParsingError) return error([zoomCurve]);\n\telse if (zoomCurve instanceof Interpolate && !supportsInterpolation(propertySpec)) return error([new ExpressionParsingError(\"\", \"\\\"interpolate\\\" expressions cannot be used with this property\")]);\n\tif (!zoomCurve) return success(isFeatureConstantResult ? new ZoomConstantExpression(\"constant\", expression.value, globalState) : new ZoomConstantExpression(\"source\", expression.value, globalState));\n\tconst interpolationType = zoomCurve instanceof Interpolate ? zoomCurve.interpolation : void 0;\n\treturn success(isFeatureConstantResult ? new ZoomDependentExpression(\"camera\", expression.value, zoomCurve.labels, interpolationType, globalState) : new ZoomDependentExpression(\"composite\", expression.value, zoomCurve.labels, interpolationType, globalState));\n}\nvar StylePropertyFunction = class StylePropertyFunction {\n\tconstructor(parameters, rootKey, specification) {\n\t\tthis.isStateDependent = false;\n\t\tthis.globalStateRefs = /* @__PURE__ */ new Set();\n\t\tthis._globalState = null;\n\t\tassertRootKey(rootKey);\n\t\tthis._parameters = parameters;\n\t\tthis._specification = specification;\n\t\tthis._rootKey = rootKey;\n\t\tthis._defaultValue = getDefaultValue(specification);\n\t\tthis._warningHistory = {};\n\t\tconst fn = createFunction(this._parameters, this._specification);\n\t\tthis.kind = fn.kind;\n\t\tthis.interpolationFactor = fn.interpolationFactor;\n\t\tthis.zoomStops = fn.zoomStops;\n\t\tthis.interpolationType = fn.interpolationType;\n\t\tthis._innerEvaluate = fn.evaluate;\n\t}\n\t/**\n\t* Evaluates the legacy function, handling a runtime throw (e.g. interpolating\n\t* mismatched value types) by warning with the property location and falling\n\t* back to the spec default, mirroring {@link StyleExpression.evaluate}.\n\t* @param globals Global evaluation properties (e.g. zoom)\n\t* @param feature The feature being evaluated, if any\n\t* @returns The function result, or the spec default if evaluation throws\n\t*/\n\tevaluate(globals, feature) {\n\t\ttry {\n\t\t\treturn this._innerEvaluate(globals, feature);\n\t\t} catch (e) {\n\t\t\tconst message = e instanceof Error ? e.message : String(e);\n\t\t\tconst dedupKey = `|${message}`;\n\t\t\tif (!this._warningHistory[dedupKey]) {\n\t\t\t\tthis._warningHistory[dedupKey] = true;\n\t\t\t\tif (typeof console !== \"undefined\") console.warn(formatRuntimeWarning(this._rootKey, \"\", message, this._defaultValue));\n\t\t\t}\n\t\t\treturn this._defaultValue;\n\t\t}\n\t}\n\tstatic deserialize(serialized) {\n\t\treturn new StylePropertyFunction(serialized._parameters, serialized._rootKey, serialized._specification);\n\t}\n\tstatic serialize(input) {\n\t\treturn {\n\t\t\t_parameters: input._parameters,\n\t\t\t_specification: input._specification,\n\t\t\t_rootKey: input._rootKey\n\t\t};\n\t}\n};\nfunction normalizePropertyExpression(value, rootKey, specification, globalState) {\n\tif (isFunction(value)) return new StylePropertyFunction(value, rootKey, specification);\n\telse if (isExpression(value)) {\n\t\tconst expression = createPropertyExpression(value, rootKey, specification, globalState);\n\t\tif (expression.result === \"error\") throw new Error(expression.value.map((err) => `${err.key}: ${err.message}`).join(\", \"));\n\t\treturn expression.value;\n\t} else {\n\t\tlet constant = value;\n\t\tif (specification.type === \"color\" && typeof value === \"string\") constant = Color.parse(value);\n\t\telse if (specification.type === \"padding\" && (typeof value === \"number\" || Array.isArray(value))) constant = Padding.parse(value);\n\t\telse if (specification.type === \"numberArray\" && (typeof value === \"number\" || Array.isArray(value))) constant = NumberArray.parse(value);\n\t\telse if (specification.type === \"colorArray\" && (typeof value === \"string\" || Array.isArray(value))) constant = ColorArray.parse(value);\n\t\telse if (specification.type === \"variableAnchorOffsetCollection\" && Array.isArray(value)) constant = VariableAnchorOffsetCollection.parse(value);\n\t\telse if (specification.type === \"projectionDefinition\" && typeof value === \"string\") constant = ProjectionDefinition.parse(value);\n\t\treturn {\n\t\t\tglobalStateRefs: /* @__PURE__ */ new Set(),\n\t\t\t_globalState: null,\n\t\t\tkind: \"constant\",\n\t\t\tevaluate: () => constant\n\t\t};\n\t}\n}\nfunction findZoomCurve(expression) {\n\tlet result = null;\n\tif (expression instanceof Let) result = findZoomCurve(expression.result);\n\telse if (expression instanceof Coalesce) for (const arg of expression.args) {\n\t\tresult = findZoomCurve(arg);\n\t\tif (result) break;\n\t}\n\telse if ((expression instanceof Step || expression instanceof Interpolate) && expression.input instanceof CompoundExpression && expression.input.name === \"zoom\") result = expression;\n\tif (result instanceof ExpressionParsingError) return result;\n\texpression.eachChild((child) => {\n\t\tconst childResult = findZoomCurve(child);\n\t\tif (childResult instanceof ExpressionParsingError) result = childResult;\n\t\telse if (!result && childResult) result = new ExpressionParsingError(\"\", \"\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.\");\n\t\telse if (result && childResult && result !== childResult) result = new ExpressionParsingError(\"\", \"Only one zoom-based \\\"step\\\" or \\\"interpolate\\\" subexpression may be used in an expression.\");\n\t});\n\treturn result;\n}\nfunction findGlobalStateRefs(expression, results = /* @__PURE__ */ new Set()) {\n\tif (expression instanceof GlobalState) results.add(expression.key);\n\texpression.eachChild((childExpression) => {\n\t\tfindGlobalStateRefs(childExpression, results);\n\t});\n\treturn results;\n}\nfunction getExpectedType(spec) {\n\tconst types = {\n\t\tcolor: ColorType,\n\t\tstring: StringType,\n\t\tnumber: NumberType,\n\t\tenum: StringType,\n\t\tboolean: BooleanType,\n\t\tformatted: FormattedType,\n\t\tpadding: PaddingType,\n\t\tnumberArray: NumberArrayType,\n\t\tcolorArray: ColorArrayType,\n\t\tprojectionDefinition: ProjectionDefinitionType,\n\t\tresolvedImage: ResolvedImageType,\n\t\tvariableAnchorOffsetCollection: VariableAnchorOffsetCollectionType\n\t};\n\tif (spec.type === \"array\") return array(types[spec.value] || ValueType, spec.length);\n\treturn types[spec.type];\n}\nfunction getDefaultValue(spec) {\n\tif (spec.type === \"color\" && isFunction(spec.default)) return new Color(0, 0, 0, 0);\n\tswitch (spec.type) {\n\t\tcase \"color\": return Color.parse(spec.default) || null;\n\t\tcase \"padding\": return Padding.parse(spec.default) || null;\n\t\tcase \"numberArray\": return NumberArray.parse(spec.default) || null;\n\t\tcase \"colorArray\": return ColorArray.parse(spec.default) || null;\n\t\tcase \"variableAnchorOffsetCollection\": return VariableAnchorOffsetCollection.parse(spec.default) || null;\n\t\tcase \"projectionDefinition\": return ProjectionDefinition.parse(spec.default) || null;\n\t\tdefault: return spec.default === void 0 ? null : spec.default;\n\t}\n}\nfunction addGlobalState(globals, globalState) {\n\tconst { zoom, heatmapDensity, elevation, lineProgress, isSupportedScript, accumulated } = globals ?? {};\n\treturn {\n\t\tzoom,\n\t\theatmapDensity,\n\t\televation,\n\t\tlineProgress,\n\t\tisSupportedScript,\n\t\taccumulated,\n\t\tglobalState\n\t};\n}\n//#endregion\n//#region src/feature_filter/index.ts\nfunction classifyChildren(children) {\n\tlet sawLegacy = false;\n\tfor (const child of children) {\n\t\tconst classification = classifyFilter(child);\n\t\tif (classification === \"expression\") return \"expression\";\n\t\tif (classification === \"legacy\") sawLegacy = true;\n\t}\n\treturn sawLegacy ? \"legacy\" : \"neutral\";\n}\nfunction classifyFilter(filter) {\n\tif (typeof filter === \"boolean\") return \"neutral\";\n\tif (!Array.isArray(filter) || filter.length === 0) return \"legacy\";\n\tswitch (filter[0]) {\n\t\tcase \"has\":\n\t\t\tif (filter.length < 2 || filter[1] === \"$id\" || filter[1] === \"$type\") return \"legacy\";\n\t\t\treturn filter.length === 2 ? \"neutral\" : \"expression\";\n\t\tcase \"in\": return filter.length >= 3 && (typeof filter[1] !== \"string\" || Array.isArray(filter[2])) ? \"expression\" : \"legacy\";\n\t\tcase \"!in\":\n\t\tcase \"!has\": return \"legacy\";\n\t\tcase \"==\":\n\t\tcase \"!=\":\n\t\tcase \">\":\n\t\tcase \">=\":\n\t\tcase \"<\":\n\t\tcase \"<=\": return filter.length !== 3 || Array.isArray(filter[1]) || Array.isArray(filter[2]) ? \"expression\" : \"legacy\";\n\t\tcase \"none\": return \"legacy\";\n\t\tcase \"any\":\n\t\tcase \"all\": return classifyChildren(filter.slice(1));\n\t\tdefault: return \"expression\";\n\t}\n}\nfunction isExpressionFilter(filter) {\n\treturn classifyFilter(filter) !== \"legacy\";\n}\nfunction getFilterPropertyExpression(property) {\n\tif (property === \"$type\") return [\"geometry-type\"];\n\tif (property === \"$id\") return [\"id\"];\n\treturn [\"get\", property];\n}\nfunction getLegacyFilterExpressionSuggestion(filter) {\n\tswitch (filter[0]) {\n\t\tcase \"==\":\n\t\tcase \"!=\":\n\t\tcase \"<\":\n\t\tcase \"<=\":\n\t\tcase \">\":\n\t\tcase \">=\":\n\t\t\tif (filter.length !== 3 || typeof filter[1] !== \"string\") return null;\n\t\t\treturn [\n\t\t\t\tfilter[0],\n\t\t\t\tgetFilterPropertyExpression(filter[1]),\n\t\t\t\tfilter[2]\n\t\t\t];\n\t\tcase \"in\":\n\t\tcase \"!in\": {\n\t\t\tif (filter.length < 2 || typeof filter[1] !== \"string\") return null;\n\t\t\tconst expression = [\n\t\t\t\t\"in\",\n\t\t\t\tgetFilterPropertyExpression(filter[1]),\n\t\t\t\t[\"literal\", filter.slice(2)]\n\t\t\t];\n\t\t\treturn filter[0] === \"!in\" ? [\"!\", expression] : expression;\n\t\t}\n\t\tcase \"has\":\n\t\tcase \"!has\": {\n\t\t\tif (filter.length !== 2 || typeof filter[1] !== \"string\") return null;\n\t\t\tif (filter[1] === \"$type\" || filter[1] === \"$id\") return null;\n\t\t\tconst expression = [\"has\", filter[1]];\n\t\t\treturn filter[0] === \"!has\" ? [\"!\", expression] : expression;\n\t\t}\n\t\tdefault: return null;\n\t}\n}\nfunction getMixedFilterMessage(filter) {\n\tif ((filter[0] === \"<\" || filter[0] === \"<=\" || filter[0] === \">\" || filter[0] === \">=\") && filter[1] === \"$type\") return `\"$type\" cannot be use with operator \"${filter[0]}\"`;\n\tconst suggestion = getLegacyFilterExpressionSuggestion(filter);\n\tif (suggestion) return `Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(filter)} with ${JSON.stringify(suggestion)}.`;\n\treturn `Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(filter)} to expression syntax.`;\n}\nfunction checkChild(index, path, filter) {\n\tconst child = filter[index];\n\tif (!Array.isArray(child)) return null;\n\tif (!isExpressionFilter(child)) return {\n\t\tpath: path.concat(index),\n\t\tlegacyFilter: child\n\t};\n\treturn findMixedLegacyFilter(child, path.concat(index));\n}\nfunction findMixedLegacyFilter(filter, path = []) {\n\tif (!Array.isArray(filter) || filter.length < 1) return null;\n\tswitch (filter[0]) {\n\t\tcase \"all\":\n\t\tcase \"any\":\n\t\tcase \"none\":\n\t\t\tfor (let i = 1; i < filter.length; i++) {\n\t\t\t\tconst diagnostic = checkChild(i, path, filter);\n\t\t\t\tif (diagnostic) return diagnostic;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"!\": {\n\t\t\tconst diagnostic = checkChild(1, path, filter);\n\t\t\tif (diagnostic) return diagnostic;\n\t\t\tbreak;\n\t\t}\n\t\tcase \"case\":\n\t\t\tfor (let i = 1; i < filter.length - 1; i += 2) {\n\t\t\t\tconst diagnostic = checkChild(i, path, filter);\n\t\t\t\tif (diagnostic) return diagnostic;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn null;\n}\nfunction warnAboutMixedLegacyFilter(filter, rootKey) {\n\tconst diagnostic = findMixedLegacyFilter(filter);\n\tif (!diagnostic || typeof console === \"undefined\") return;\n\tconst path = diagnostic.path.map((index) => `[${index}]`).join(\"\");\n\tconsole.warn(`${rootKey}${path}: ${getMixedFilterMessage(diagnostic.legacyFilter)}`);\n}\nconst filterSpec = {\n\ttype: \"boolean\",\n\tdefault: false,\n\ttransition: false,\n\t\"property-type\": \"data-driven\",\n\texpression: {\n\t\tinterpolated: false,\n\t\tparameters: [\"zoom\", \"feature\"]\n\t}\n};\n/**\n* Given a filter expressed as nested arrays, return a new function\n* that evaluates whether a given feature (with a .properties or .tags property)\n* passes its test.\n*\n* @private\n* @param filter MapLibre filter\n* @param rootKey Location of the filter in the style JSON (e.g. `layers[3].filter`),\n* used to prefix runtime warnings\n* @param [globalState] Global state object to be used for evaluating 'global-state' expressions\n* @returns filter-evaluating function\n*/\nfunction featureFilter(filter, rootKey, globalState) {\n\tif (filter === null || filter === void 0) return {\n\t\tfilter: () => true,\n\t\tneedGeometry: false,\n\t\tgetGlobalStateRefs: () => /* @__PURE__ */ new Set()\n\t};\n\tif (!isExpressionFilter(filter)) filter = convertFilter$1(filter);\n\telse warnAboutMixedLegacyFilter(filter, rootKey);\n\tconst compiled = createExpression(filter, rootKey, filterSpec, globalState);\n\tif (compiled.result === \"error\") throw new Error(compiled.value.map((err) => `${err.key}: ${err.message}`).join(\", \"));\n\telse return {\n\t\tfilter: (globalProperties, feature, canonical) => compiled.value.evaluate(globalProperties, feature, {}, canonical),\n\t\tneedGeometry: geometryNeeded(filter),\n\t\tgetGlobalStateRefs: () => findGlobalStateRefs(compiled.value.expression)\n\t};\n}\nfunction compare(a, b) {\n\treturn a < b ? -1 : a > b ? 1 : 0;\n}\nfunction geometryNeeded(filter) {\n\tif (!Array.isArray(filter)) return false;\n\tif (filter[0] === \"within\" || filter[0] === \"distance\") return true;\n\tfor (let index = 1; index < filter.length; index++) if (geometryNeeded(filter[index])) return true;\n\treturn false;\n}\nfunction convertFilter$1(filter) {\n\tif (!filter) return true;\n\tconst op = filter[0];\n\tif (filter.length <= 1) return op !== \"any\";\n\treturn op === \"==\" ? convertComparisonOp$1(filter[1], filter[2], \"==\") : op === \"!=\" ? convertNegation(convertComparisonOp$1(filter[1], filter[2], \"==\")) : op === \"<\" || op === \">\" || op === \"<=\" || op === \">=\" ? convertComparisonOp$1(filter[1], filter[2], op) : op === \"any\" ? convertDisjunctionOp(filter.slice(1)) : op === \"all\" ? [\"all\"].concat(filter.slice(1).map(convertFilter$1)) : op === \"none\" ? [\"all\"].concat(filter.slice(1).map(convertFilter$1).map(convertNegation)) : op === \"in\" ? convertInOp$1(filter[1], filter.slice(2)) : op === \"!in\" ? convertNegation(convertInOp$1(filter[1], filter.slice(2))) : op === \"has\" ? convertHasOp$1(filter[1]) : op === \"!has\" ? convertNegation(convertHasOp$1(filter[1])) : true;\n}\nfunction convertComparisonOp$1(property, value, op) {\n\tswitch (property) {\n\t\tcase \"$type\": return [`filter-type-${op}`, value];\n\t\tcase \"$id\": return [`filter-id-${op}`, value];\n\t\tdefault: return [\n\t\t\t`filter-${op}`,\n\t\t\tproperty,\n\t\t\tvalue\n\t\t];\n\t}\n}\nfunction convertDisjunctionOp(filters) {\n\treturn [\"any\"].concat(filters.map(convertFilter$1));\n}\nfunction convertInOp$1(property, values) {\n\tif (values.length === 0) return false;\n\tswitch (property) {\n\t\tcase \"$type\": return [\"filter-type-in\", [\"literal\", values]];\n\t\tcase \"$id\": return [\"filter-id-in\", [\"literal\", values]];\n\t\tdefault: if (values.length > 200 && !values.some((v) => typeof v !== typeof values[0])) return [\n\t\t\t\"filter-in-large\",\n\t\t\tproperty,\n\t\t\t[\"literal\", values.sort(compare)]\n\t\t];\n\t\telse return [\n\t\t\t\"filter-in-small\",\n\t\t\tproperty,\n\t\t\t[\"literal\", values]\n\t\t];\n\t}\n}\nfunction convertHasOp$1(property) {\n\tswitch (property) {\n\t\tcase \"$type\": return true;\n\t\tcase \"$id\": return [\"filter-has-id\"];\n\t\tdefault: return [\"filter-has\", property];\n\t}\n}\nfunction convertNegation(filter) {\n\treturn [\"!\", filter];\n}\n//#endregion\n//#region src/feature_filter/convert.ts\nfunction convertFilter(filter, expectedTypes = {}) {\n\tif (isExpressionFilter(filter)) return filter;\n\tif (!filter) return true;\n\tconst legacyFilter = filter;\n\tconst legacyOp = legacyFilter[0];\n\tif (filter.length <= 1) return legacyOp !== \"any\";\n\tswitch (legacyOp) {\n\t\tcase \"==\":\n\t\tcase \"!=\":\n\t\tcase \"<\":\n\t\tcase \">\":\n\t\tcase \"<=\":\n\t\tcase \">=\": {\n\t\t\tconst [, property, value] = filter;\n\t\t\treturn convertComparisonOp(property, value, legacyOp, expectedTypes);\n\t\t}\n\t\tcase \"any\": {\n\t\t\tconst [, ...conditions] = legacyFilter;\n\t\t\treturn [\"any\", ...conditions.map((f) => {\n\t\t\t\tconst types = {};\n\t\t\t\tconst child = convertFilter(f, types);\n\t\t\t\tconst typechecks = runtimeTypeChecks(types);\n\t\t\t\treturn typechecks === true ? child : [\n\t\t\t\t\t\"case\",\n\t\t\t\t\ttypechecks,\n\t\t\t\t\tchild,\n\t\t\t\t\tfalse\n\t\t\t\t];\n\t\t\t})];\n\t\t}\n\t\tcase \"all\": {\n\t\t\tconst [, ...conditions] = legacyFilter;\n\t\t\tconst children = conditions.map((f) => convertFilter(f, expectedTypes));\n\t\t\treturn children.length > 1 ? [\"all\", ...children] : children[0];\n\t\t}\n\t\tcase \"none\": {\n\t\t\tconst [, ...conditions] = legacyFilter;\n\t\t\treturn [\"!\", convertFilter([\"any\", ...conditions], {})];\n\t\t}\n\t\tcase \"in\": {\n\t\t\tconst [, property, ...values] = legacyFilter;\n\t\t\treturn convertInOp(property, values);\n\t\t}\n\t\tcase \"!in\": {\n\t\t\tconst [, property, ...values] = legacyFilter;\n\t\t\treturn convertInOp(property, values, true);\n\t\t}\n\t\tcase \"has\": return convertHasOp(legacyFilter[1]);\n\t\tcase \"!has\": return [\"!\", convertHasOp(legacyFilter[1])];\n\t\tdefault: return true;\n\t}\n}\nfunction runtimeTypeChecks(expectedTypes) {\n\tconst conditions = [];\n\tfor (const property in expectedTypes) {\n\t\tconst get = property === \"$id\" ? [\"id\"] : [\"get\", property];\n\t\tconditions.push([\n\t\t\t\"==\",\n\t\t\t[\"typeof\", get],\n\t\t\texpectedTypes[property]\n\t\t]);\n\t}\n\tif (conditions.length === 0) return true;\n\tif (conditions.length === 1) return conditions[0];\n\treturn [\"all\", ...conditions];\n}\nfunction convertComparisonOp(property, value, op, expectedTypes) {\n\tlet get;\n\tif (property === \"$type\") return [\n\t\top,\n\t\t[\"geometry-type\"],\n\t\tvalue\n\t];\n\telse if (property === \"$id\") get = [\"id\"];\n\telse get = [\"get\", property];\n\tif (expectedTypes && value !== null) expectedTypes[property] = typeof value;\n\tif (op === \"==\" && property !== \"$id\" && value === null) return [\n\t\t\"all\",\n\t\t[\"has\", property],\n\t\t[\n\t\t\t\"==\",\n\t\t\tget,\n\t\t\tnull\n\t\t]\n\t];\n\telse if (op === \"!=\" && property !== \"$id\" && value === null) return [\n\t\t\"any\",\n\t\t[\"!\", [\"has\", property]],\n\t\t[\n\t\t\t\"!=\",\n\t\t\tget,\n\t\t\tnull\n\t\t]\n\t];\n\treturn [\n\t\top,\n\t\tget,\n\t\tvalue\n\t];\n}\nfunction convertInOp(property, values, negate = false) {\n\tif (values.length === 0) return negate;\n\tlet get;\n\tif (property === \"$type\") get = [\"geometry-type\"];\n\telse if (property === \"$id\") get = [\"id\"];\n\telse get = [\"get\", property];\n\tlet uniformTypes = true;\n\tconst type = typeof values[0];\n\tfor (const value of values) if (typeof value !== type) {\n\t\tuniformTypes = false;\n\t\tbreak;\n\t}\n\tif (uniformTypes && (type === \"string\" || type === \"number\")) {\n\t\tconst uniqueValues = values.sort().filter((v, i) => i === 0 || values[i - 1] !== v);\n\t\treturn [\n\t\t\t\"match\",\n\t\t\tget,\n\t\t\tuniqueValues,\n\t\t\t!negate,\n\t\t\tnegate\n\t\t];\n\t}\n\tif (negate) return [\"all\", ...values.map((v) => [\n\t\t\"!=\",\n\t\tget,\n\t\tv\n\t])];\n\telse return [\"any\", ...values.map((v) => [\n\t\t\"==\",\n\t\tget,\n\t\tv\n\t])];\n}\nfunction convertHasOp(property) {\n\tif (property === \"$type\") return true;\n\telse if (property === \"$id\") return [\n\t\t\"!=\",\n\t\t[\"id\"],\n\t\tnull\n\t];\n\telse return [\"has\", property];\n}\n//#endregion\n//#region src/function/convert.ts\nfunction convertLiteral(value) {\n\treturn typeof value === \"object\" ? [\"literal\", value] : value;\n}\nfunction convertFunction(parameters, propertySpec) {\n\tlet stops = parameters.stops;\n\tif (!stops) return convertIdentityFunction(parameters, propertySpec);\n\tconst zoomAndFeatureDependent = stops && typeof stops[0][0] === \"object\";\n\tconst featureDependent = zoomAndFeatureDependent || parameters.property !== void 0;\n\tconst zoomDependent = zoomAndFeatureDependent || !featureDependent;\n\tstops = stops.map((stop) => {\n\t\tif (!featureDependent && propertySpec.tokens && typeof stop[1] === \"string\") return [stop[0], convertTokenString(stop[1])];\n\t\treturn [stop[0], convertLiteral(stop[1])];\n\t});\n\tif (zoomAndFeatureDependent) return convertZoomAndPropertyFunction(parameters, propertySpec, stops);\n\telse if (zoomDependent) return convertZoomFunction(parameters, propertySpec, stops);\n\telse return convertPropertyFunction(parameters, propertySpec, stops);\n}\nfunction convertIdentityFunction(parameters, propertySpec) {\n\tconst get = [\"get\", parameters.property];\n\tif (parameters.default === void 0) return propertySpec.type === \"string\" ? [\"string\", get] : get;\n\telse if (propertySpec.type === \"enum\") return [\n\t\t\"match\",\n\t\tget,\n\t\tObject.keys(propertySpec.values),\n\t\tget,\n\t\tparameters.default\n\t];\n\telse {\n\t\tconst expression = [\n\t\t\tpropertySpec.type === \"color\" ? \"to-color\" : propertySpec.type,\n\t\t\tget,\n\t\t\tconvertLiteral(parameters.default)\n\t\t];\n\t\tif (propertySpec.type === \"array\") expression.splice(1, 0, propertySpec.value, propertySpec.length || null);\n\t\treturn expression;\n\t}\n}\nfunction getInterpolateOperator(parameters) {\n\tswitch (parameters.colorSpace) {\n\t\tcase \"hcl\": return \"interpolate-hcl\";\n\t\tcase \"lab\": return \"interpolate-lab\";\n\t\tdefault: return \"interpolate\";\n\t}\n}\nfunction convertZoomAndPropertyFunction(parameters, propertySpec, stops) {\n\tconst featureFunctionParameters = {};\n\tconst featureFunctionStops = {};\n\tconst zoomStops = [];\n\tfor (let s = 0; s < stops.length; s++) {\n\t\tconst stop = stops[s];\n\t\tconst zoom = stop[0].zoom;\n\t\tif (featureFunctionParameters[zoom] === void 0) {\n\t\t\tfeatureFunctionParameters[zoom] = {\n\t\t\t\tzoom,\n\t\t\t\ttype: parameters.type,\n\t\t\t\tproperty: parameters.property,\n\t\t\t\tdefault: parameters.default\n\t\t\t};\n\t\t\tfeatureFunctionStops[zoom] = [];\n\t\t\tzoomStops.push(zoom);\n\t\t}\n\t\tfeatureFunctionStops[zoom].push([stop[0].value, stop[1]]);\n\t}\n\tif (getFunctionType({}, propertySpec) === \"exponential\") {\n\t\tconst expression = [\n\t\t\tgetInterpolateOperator(parameters),\n\t\t\t[\"linear\"],\n\t\t\t[\"zoom\"]\n\t\t];\n\t\tfor (const z of zoomStops) appendStopPair(expression, z, convertPropertyFunction(featureFunctionParameters[z], propertySpec, featureFunctionStops[z]), false);\n\t\treturn expression;\n\t} else {\n\t\tconst expression = [\"step\", [\"zoom\"]];\n\t\tfor (const z of zoomStops) appendStopPair(expression, z, convertPropertyFunction(featureFunctionParameters[z], propertySpec, featureFunctionStops[z]), true);\n\t\tfixupDegenerateStepCurve(expression);\n\t\treturn expression;\n\t}\n}\nfunction coalesce(a, b) {\n\tif (a !== void 0) return a;\n\tif (b !== void 0) return b;\n}\nfunction getFallback(parameters, propertySpec) {\n\tconst defaultValue = convertLiteral(coalesce(parameters.default, propertySpec.default));\n\tif (defaultValue === void 0 && propertySpec.type === \"resolvedImage\") return \"\";\n\treturn defaultValue;\n}\nfunction convertPropertyFunction(parameters, propertySpec, stops) {\n\tconst type = getFunctionType(parameters, propertySpec);\n\tconst get = [\"get\", parameters.property];\n\tif (type === \"categorical\" && typeof stops[0][0] === \"boolean\") {\n\t\tconst expression = [\"case\"];\n\t\tfor (const stop of stops) expression.push([\n\t\t\t\"==\",\n\t\t\tget,\n\t\t\tstop[0]\n\t\t], stop[1]);\n\t\texpression.push(getFallback(parameters, propertySpec));\n\t\treturn expression;\n\t} else if (type === \"categorical\") {\n\t\tconst expression = [\"match\", get];\n\t\tfor (const stop of stops) appendStopPair(expression, stop[0], stop[1], false);\n\t\texpression.push(getFallback(parameters, propertySpec));\n\t\treturn expression;\n\t} else if (type === \"interval\") {\n\t\tconst expression = [\"step\", [\"number\", get]];\n\t\tfor (const stop of stops) appendStopPair(expression, stop[0], stop[1], true);\n\t\tfixupDegenerateStepCurve(expression);\n\t\treturn parameters.default === void 0 ? expression : [\n\t\t\t\"case\",\n\t\t\t[\n\t\t\t\t\"==\",\n\t\t\t\t[\"typeof\", get],\n\t\t\t\t\"number\"\n\t\t\t],\n\t\t\texpression,\n\t\t\tconvertLiteral(parameters.default)\n\t\t];\n\t} else if (type === \"exponential\") {\n\t\tconst base = parameters.base !== void 0 ? parameters.base : 1;\n\t\tconst expression = [\n\t\t\tgetInterpolateOperator(parameters),\n\t\t\tbase === 1 ? [\"linear\"] : [\"exponential\", base],\n\t\t\t[\"number\", get]\n\t\t];\n\t\tfor (const stop of stops) appendStopPair(expression, stop[0], stop[1], false);\n\t\treturn parameters.default === void 0 ? expression : [\n\t\t\t\"case\",\n\t\t\t[\n\t\t\t\t\"==\",\n\t\t\t\t[\"typeof\", get],\n\t\t\t\t\"number\"\n\t\t\t],\n\t\t\texpression,\n\t\t\tconvertLiteral(parameters.default)\n\t\t];\n\t} else throw new Error(`Unknown property function type ${type}`);\n}\nfunction convertZoomFunction(parameters, propertySpec, stops, input = [\"zoom\"]) {\n\tconst type = getFunctionType(parameters, propertySpec);\n\tlet expression;\n\tlet isStep = false;\n\tif (type === \"interval\") {\n\t\texpression = [\"step\", input];\n\t\tisStep = true;\n\t} else if (type === \"exponential\") {\n\t\tconst base = parameters.base !== void 0 ? parameters.base : 1;\n\t\texpression = [\n\t\t\tgetInterpolateOperator(parameters),\n\t\t\tbase === 1 ? [\"linear\"] : [\"exponential\", base],\n\t\t\tinput\n\t\t];\n\t} else throw new Error(`Unknown zoom function type \"${type}\"`);\n\tfor (const stop of stops) appendStopPair(expression, stop[0], stop[1], isStep);\n\tfixupDegenerateStepCurve(expression);\n\treturn expression;\n}\nfunction fixupDegenerateStepCurve(expression) {\n\tif (expression[0] === \"step\" && expression.length === 3) {\n\t\texpression.push(0);\n\t\texpression.push(expression[3]);\n\t}\n}\nfunction appendStopPair(curve, input, output, isStep) {\n\tif (curve.length > 3 && input === curve[curve.length - 2]) return;\n\tif (!(isStep && curve.length === 2)) curve.push(input);\n\tcurve.push(output);\n}\nfunction getFunctionType(parameters, propertySpec) {\n\tif (parameters.type) return parameters.type;\n\telse return propertySpec.expression.interpolated ? \"exponential\" : \"interval\";\n}\nfunction convertTokenString(s) {\n\tconst result = [\"concat\"];\n\tconst re = /{([^{}]+)}/g;\n\tlet pos = 0;\n\tfor (let match = re.exec(s); match !== null; match = re.exec(s)) {\n\t\tconst literal = s.slice(pos, re.lastIndex - match[0].length);\n\t\tpos = re.lastIndex;\n\t\tif (literal.length > 0) result.push(literal);\n\t\tresult.push([\"get\", match[1]]);\n\t}\n\tif (result.length === 1) return s;\n\tif (pos < s.length) result.push(s.slice(pos));\n\telse if (result.length === 2) return [\"to-string\", result[1]];\n\treturn result;\n}\n//#endregion\n//#region src/visit.ts\nfunction getPropertyReference(propertyName) {\n\tfor (let i = 0; i < v8_default.layout.length; i++) for (const key in v8_default[v8_default.layout[i]]) if (key === propertyName) return v8_default[v8_default.layout[i]][key];\n\tfor (let i = 0; i < v8_default.paint.length; i++) for (const key in v8_default[v8_default.paint[i]]) if (key === propertyName) return v8_default[v8_default.paint[i]][key];\n\treturn null;\n}\nfunction eachSource(style, callback) {\n\tfor (const k in style.sources) callback(style.sources[k]);\n}\nfunction eachLayer(style, callback) {\n\tfor (const layer of style.layers) callback(layer);\n}\nfunction eachProperty(style, options, callback) {\n\tfunction inner(layer, propertyType) {\n\t\tconst properties = layer[propertyType];\n\t\tif (!properties) return;\n\t\tObject.keys(properties).forEach((key) => {\n\t\t\tcallback({\n\t\t\t\tpath: [\n\t\t\t\t\tlayer.id,\n\t\t\t\t\tpropertyType,\n\t\t\t\t\tkey\n\t\t\t\t],\n\t\t\t\tkey,\n\t\t\t\tvalue: properties[key],\n\t\t\t\treference: getPropertyReference(key),\n\t\t\t\tset(x) {\n\t\t\t\t\tproperties[key] = x;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\teachLayer(style, (layer) => {\n\t\tif (options.paint) inner(layer, \"paint\");\n\t\tif (options.layout) inner(layer, \"layout\");\n\t});\n}\n//#endregion\n//#region src/group_by_layout.ts\nfunction stringify$1(obj) {\n\tconst type = typeof obj;\n\tif (type === \"number\" || type === \"boolean\" || type === \"string\" || obj === void 0 || obj === null) return JSON.stringify(obj);\n\tif (Array.isArray(obj)) {\n\t\tlet str = \"[\";\n\t\tfor (const val of obj) str += `${stringify$1(val)},`;\n\t\treturn `${str}]`;\n\t}\n\tconst keys = Object.keys(obj).sort();\n\tlet str = \"{\";\n\tfor (let i = 0; i < keys.length; i++) str += `${JSON.stringify(keys[i])}:${stringify$1(obj[keys[i]])},`;\n\treturn `${str}}`;\n}\nfunction getKey(layer) {\n\tlet key = \"\";\n\tfor (const k of refProperties) key += `/${stringify$1(layer[k])}`;\n\treturn key;\n}\n/**\n* Groups layers by their layout-affecting properties.\n* These are the properties that were formerly used by explicit `ref` mechanism\n* for layers: 'type', 'source', 'source-layer', 'minzoom', 'maxzoom',\n* 'filter', and 'layout'.\n*\n* The input is not modified. The output layers are references to the\n* input layers.\n*\n* @param layers - an array of {@link LayerSpecification}.\n* @param cachedKeys - an object to keep already calculated keys.\n* @returns an array of arrays of {@link LayerSpecification} objects, where each inner array\n* contains layers that share the same layout-affecting properties.\n*/\nfunction groupByLayout(layers, cachedKeys) {\n\tconst groups = {};\n\tfor (let i = 0; i < layers.length; i++) {\n\t\tconst k = cachedKeys && cachedKeys[layers[i].id] || getKey(layers[i]);\n\t\tif (cachedKeys) cachedKeys[layers[i].id] = k;\n\t\tlet group = groups[k];\n\t\tif (!group) group = groups[k] = [];\n\t\tgroup.push(layers[i]);\n\t}\n\tconst result = [];\n\tfor (const k in groups) result.push(groups[k]);\n\treturn result;\n}\n//#endregion\n//#region src/empty.ts\nfunction emptyStyle() {\n\tconst style = {};\n\tconst version = latest[\"$version\"];\n\tfor (const styleKey in latest[\"$root\"]) {\n\t\tconst specification = latest[\"$root\"][styleKey];\n\t\tif (specification.required) {\n\t\t\tlet value = null;\n\t\t\tif (styleKey === \"version\") value = version;\n\t\t\telse if (specification.type === \"array\") value = [];\n\t\t\telse value = {};\n\t\t\tif (value != null) style[styleKey] = value;\n\t\t}\n\t}\n\treturn style;\n}\n//#endregion\n//#region src/validate/validate_constants.ts\nfunction validateConstants(options) {\n\tconst key = options.key;\n\tconst constants = options.value;\n\tif (constants) return [new ValidationError(key, constants, \"constants have been deprecated as of v8\")];\n\telse return [];\n}\n//#endregion\n//#region src/util/unbundle_jsonlint.ts\nfunction unbundle(value) {\n\tif (value instanceof Number || value instanceof String || value instanceof Boolean) return value.valueOf();\n\telse return value;\n}\nfunction deepUnbundle(value) {\n\tif (Array.isArray(value)) return value.map(deepUnbundle);\n\telse if (value instanceof Object && !(value instanceof Number || value instanceof String || value instanceof Boolean)) {\n\t\tconst unbundledValue = {};\n\t\tfor (const key in value) unbundledValue[key] = deepUnbundle(value[key]);\n\t\treturn unbundledValue;\n\t}\n\treturn unbundle(value);\n}\n//#endregion\n//#region src/validate/validate_object.ts\nfunction validateObject(options) {\n\tconst key = options.key;\n\tconst object = options.value;\n\tconst elementSpecs = options.valueSpec || {};\n\tconst elementValidators = options.objectElementValidators || {};\n\tconst style = options.style;\n\tconst styleSpec = options.styleSpec;\n\tconst validateSpec = options.validateSpec;\n\tlet errors = [];\n\tconst type = getType(object);\n\tif (type !== \"object\") return [new ValidationError(key, object, `object expected, ${type} found`)];\n\tfor (const objectKey in object) {\n\t\tconst elementSpecKey = objectKey.split(\".\")[0];\n\t\tconst elementSpec = getOwn(elementSpecs, elementSpecKey) || elementSpecs[\"*\"];\n\t\tlet validateElement;\n\t\tif (getOwn(elementValidators, elementSpecKey)) validateElement = elementValidators[elementSpecKey];\n\t\telse if (getOwn(elementSpecs, elementSpecKey)) {\n\t\t\tif (object[objectKey] === void 0) continue;\n\t\t\tvalidateElement = validateSpec;\n\t\t} else if (elementValidators[\"*\"]) validateElement = elementValidators[\"*\"];\n\t\telse if (elementSpecs[\"*\"]) validateElement = validateSpec;\n\t\telse {\n\t\t\terrors.push(new ValidationError(key, object[objectKey], `unknown property \"${objectKey}\"`));\n\t\t\tcontinue;\n\t\t}\n\t\terrors = errors.concat(validateElement({\n\t\t\tkey: (key ? `${key}.` : key) + objectKey,\n\t\t\tvalue: object[objectKey],\n\t\t\tvalueSpec: elementSpec,\n\t\t\tstyle,\n\t\t\tstyleSpec,\n\t\t\tobject,\n\t\t\tobjectKey,\n\t\t\tvalidateSpec\n\t\t}, object));\n\t}\n\tfor (const elementSpecKey in elementSpecs) {\n\t\tif (elementValidators[elementSpecKey]) continue;\n\t\tif (elementSpecs[elementSpecKey].required && elementSpecs[elementSpecKey][\"default\"] === void 0 && object[elementSpecKey] === void 0) errors.push(new ValidationError(key, object, `missing required property \"${elementSpecKey}\"`));\n\t}\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_array.ts\nfunction validateArray(options) {\n\tconst array = options.value;\n\tconst arraySpec = options.valueSpec;\n\tconst validateSpec = options.validateSpec;\n\tconst style = options.style;\n\tconst styleSpec = options.styleSpec;\n\tconst key = options.key;\n\tconst validateArrayElement = options.arrayElementValidator || validateSpec;\n\tif (getType(array) !== \"array\") return [new ValidationError(key, array, `array expected, ${getType(array)} found`)];\n\tif (arraySpec.length && array.length !== arraySpec.length) return [new ValidationError(key, array, `array length ${arraySpec.length} expected, length ${array.length} found`)];\n\tlet arrayElementSpec = {\n\t\ttype: arraySpec.value,\n\t\tvalues: arraySpec.values\n\t};\n\tif (styleSpec.$version < 7) arrayElementSpec[\"function\"] = arraySpec.function;\n\tif (getType(arraySpec.value) === \"object\") arrayElementSpec = arraySpec.value;\n\tlet errors = [];\n\tfor (let i = 0; i < array.length; i++) errors = errors.concat(validateArrayElement({\n\t\tarray,\n\t\tarrayIndex: i,\n\t\tvalue: array[i],\n\t\tvalueSpec: arrayElementSpec,\n\t\tvalidateSpec: options.validateSpec,\n\t\tstyle,\n\t\tstyleSpec,\n\t\tkey: `${key}[${i}]`\n\t}));\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_number.ts\nfunction validateNumber(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tconst valueSpec = options.valueSpec;\n\tlet type = getType(value);\n\tif (type === \"number\" && value !== value) type = \"NaN\";\n\tif (type !== \"number\") return [new ValidationError(key, value, `number expected, ${type} found`)];\n\tif (\"minimum\" in valueSpec && value < valueSpec.minimum) return [new ValidationError(key, value, `${value} is less than the minimum value ${valueSpec.minimum}`)];\n\tif (\"maximum\" in valueSpec && value > valueSpec.maximum) return [new ValidationError(key, value, `${value} is greater than the maximum value ${valueSpec.maximum}`)];\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_function.ts\nfunction validateFunction(options) {\n\tconst functionValueSpec = options.valueSpec;\n\tconst functionType = unbundle(options.value.type);\n\tlet stopKeyType;\n\tlet stopDomainValues = {};\n\tlet previousStopDomainValue;\n\tlet previousStopDomainZoom;\n\tconst isZoomFunction = functionType !== \"categorical\" && options.value.property === void 0;\n\tconst isPropertyFunction = !isZoomFunction;\n\tconst isZoomAndPropertyFunction = getType(options.value.stops) === \"array\" && getType(options.value.stops[0]) === \"array\" && getType(options.value.stops[0][0]) === \"object\";\n\tconst errors = validateObject({\n\t\tkey: options.key,\n\t\tvalue: options.value,\n\t\tvalueSpec: options.styleSpec.function,\n\t\tvalidateSpec: options.validateSpec,\n\t\tstyle: options.style,\n\t\tstyleSpec: options.styleSpec,\n\t\tobjectElementValidators: {\n\t\t\tstops: validateFunctionStops,\n\t\t\tdefault: validateFunctionDefault\n\t\t}\n\t});\n\tif (functionType === \"identity\" && isZoomFunction) errors.push(new ValidationError(options.key, options.value, \"missing required property \\\"property\\\"\"));\n\tif (functionType !== \"identity\" && !options.value.stops) errors.push(new ValidationError(options.key, options.value, \"missing required property \\\"stops\\\"\"));\n\tif (functionType === \"exponential\" && options.valueSpec.expression && !supportsInterpolation(options.valueSpec)) errors.push(new ValidationError(options.key, options.value, \"exponential functions not supported\"));\n\tif (options.styleSpec.$version >= 8) {\n\t\tif (isPropertyFunction && !supportsPropertyExpression(options.valueSpec)) errors.push(new ValidationError(options.key, options.value, \"property functions not supported\"));\n\t\telse if (isZoomFunction && !supportsZoomExpression(options.valueSpec)) errors.push(new ValidationError(options.key, options.value, \"zoom functions not supported\"));\n\t}\n\tif ((functionType === \"categorical\" || isZoomAndPropertyFunction) && options.value.property === void 0) errors.push(new ValidationError(options.key, options.value, \"\\\"property\\\" property is required\"));\n\treturn errors;\n\tfunction validateFunctionStops(options) {\n\t\tif (functionType === \"identity\") return [new ValidationError(options.key, options.value, \"identity function may not have a \\\"stops\\\" property\")];\n\t\tlet errors = [];\n\t\tconst value = options.value;\n\t\terrors = errors.concat(validateArray({\n\t\t\tkey: options.key,\n\t\t\tvalue,\n\t\t\tvalueSpec: options.valueSpec,\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle: options.style,\n\t\t\tstyleSpec: options.styleSpec,\n\t\t\tarrayElementValidator: validateFunctionStop\n\t\t}));\n\t\tif (getType(value) === \"array\" && value.length === 0) errors.push(new ValidationError(options.key, value, \"array must have at least one stop\"));\n\t\treturn errors;\n\t}\n\tfunction validateFunctionStop(options) {\n\t\tlet errors = [];\n\t\tconst value = options.value;\n\t\tconst key = options.key;\n\t\tif (getType(value) !== \"array\") return [new ValidationError(key, value, `array expected, ${getType(value)} found`)];\n\t\tif (value.length !== 2) return [new ValidationError(key, value, `array length 2 expected, length ${value.length} found`)];\n\t\tif (isZoomAndPropertyFunction) {\n\t\t\tif (getType(value[0]) !== \"object\") return [new ValidationError(key, value, `object expected, ${getType(value[0])} found`)];\n\t\t\tif (value[0].zoom === void 0) return [new ValidationError(key, value, \"object stop key must have zoom\")];\n\t\t\tif (value[0].value === void 0) return [new ValidationError(key, value, \"object stop key must have value\")];\n\t\t\tif (previousStopDomainZoom && previousStopDomainZoom > unbundle(value[0].zoom)) return [new ValidationError(key, value[0].zoom, \"stop zoom values must appear in ascending order\")];\n\t\t\tif (unbundle(value[0].zoom) !== previousStopDomainZoom) {\n\t\t\t\tpreviousStopDomainZoom = unbundle(value[0].zoom);\n\t\t\t\tpreviousStopDomainValue = void 0;\n\t\t\t\tstopDomainValues = {};\n\t\t\t}\n\t\t\terrors = errors.concat(validateObject({\n\t\t\t\tkey: `${key}[0]`,\n\t\t\t\tvalue: value[0],\n\t\t\t\tvalueSpec: { zoom: {} },\n\t\t\t\tvalidateSpec: options.validateSpec,\n\t\t\t\tstyle: options.style,\n\t\t\t\tstyleSpec: options.styleSpec,\n\t\t\t\tobjectElementValidators: {\n\t\t\t\t\tzoom: validateNumber,\n\t\t\t\t\tvalue: validateStopDomainValue\n\t\t\t\t}\n\t\t\t}));\n\t\t} else errors = errors.concat(validateStopDomainValue({\n\t\t\tkey: `${key}[0]`,\n\t\t\tvalue: value[0],\n\t\t\tvalueSpec: {},\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle: options.style,\n\t\t\tstyleSpec: options.styleSpec\n\t\t}, value));\n\t\tif (isExpression(deepUnbundle(value[1]))) return errors.concat([new ValidationError(`${key}[1]`, value[1], \"expressions are not allowed in function stops.\")]);\n\t\treturn errors.concat(options.validateSpec({\n\t\t\tkey: `${key}[1]`,\n\t\t\tvalue: value[1],\n\t\t\tvalueSpec: functionValueSpec,\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle: options.style,\n\t\t\tstyleSpec: options.styleSpec\n\t\t}));\n\t}\n\tfunction validateStopDomainValue(options, stop) {\n\t\tconst type = getType(options.value);\n\t\tconst value = unbundle(options.value);\n\t\tconst reportValue = options.value !== null ? options.value : stop;\n\t\tif (!stopKeyType) stopKeyType = type;\n\t\telse if (type !== stopKeyType) return [new ValidationError(options.key, reportValue, `${type} stop domain type must match previous stop domain type ${stopKeyType}`)];\n\t\tif (type !== \"number\" && type !== \"string\" && type !== \"boolean\") return [new ValidationError(options.key, reportValue, \"stop domain value must be a number, string, or boolean\")];\n\t\tif (type !== \"number\" && functionType !== \"categorical\") {\n\t\t\tlet message = `number expected, ${type} found`;\n\t\t\tif (supportsPropertyExpression(functionValueSpec) && functionType === void 0) message += \"\\nIf you intended to use a categorical function, specify `\\\"type\\\": \\\"categorical\\\"`.\";\n\t\t\treturn [new ValidationError(options.key, reportValue, message)];\n\t\t}\n\t\tif (functionType === \"categorical\" && type === \"number\" && (!isFinite(value) || Math.floor(value) !== value)) return [new ValidationError(options.key, reportValue, `integer expected, found ${value}`)];\n\t\tif (functionType !== \"categorical\" && type === \"number\" && previousStopDomainValue !== void 0 && value < previousStopDomainValue) return [new ValidationError(options.key, reportValue, \"stop domain values must appear in ascending order\")];\n\t\telse previousStopDomainValue = value;\n\t\tif (functionType === \"categorical\" && value in stopDomainValues) return [new ValidationError(options.key, reportValue, \"stop domain values must be unique\")];\n\t\telse stopDomainValues[value] = true;\n\t\treturn [];\n\t}\n\tfunction validateFunctionDefault(options) {\n\t\treturn options.validateSpec({\n\t\t\tkey: options.key,\n\t\t\tvalue: options.value,\n\t\t\tvalueSpec: functionValueSpec,\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle: options.style,\n\t\t\tstyleSpec: options.styleSpec\n\t\t});\n\t}\n}\n//#endregion\n//#region src/validate/validate_expression.ts\nfunction validateExpression(options) {\n\tconst expression = (options.expressionContext === \"property\" ? createPropertyExpression : createExpression)(deepUnbundle(options.value), options.key, options.valueSpec);\n\tif (expression.result === \"error\") return expression.value.map((error) => {\n\t\treturn new ValidationError(`${options.key}${error.key}`, options.value, error.message);\n\t});\n\tconst expressionObj = expression.value.expression || expression.value._styleExpression.expression;\n\tif (options.expressionContext === \"property\" && options.propertyKey === \"text-font\" && !expressionObj.outputDefined()) return [new ValidationError(options.key, options.value, `Invalid data expression for \"${options.propertyKey}\". Output values must be contained as literals within the expression.`)];\n\tif (options.expressionContext === \"property\" && options.propertyType === \"layout\" && !isStateConstant(expressionObj)) return [new ValidationError(options.key, options.value, \"\\\"feature-state\\\" data expressions are not supported with layout properties.\")];\n\tif (options.expressionContext === \"filter\" && !isStateConstant(expressionObj)) return [new ValidationError(options.key, options.value, \"\\\"feature-state\\\" data expressions are not supported with filters.\")];\n\tif (options.expressionContext && options.expressionContext.indexOf(\"cluster\") === 0) {\n\t\tif (!isGlobalPropertyConstant(expressionObj, [\"zoom\", \"feature-state\"])) return [new ValidationError(options.key, options.value, \"\\\"zoom\\\" and \\\"feature-state\\\" expressions are not supported with cluster properties.\")];\n\t\tif (options.expressionContext === \"cluster-initial\" && !isFeatureConstant(expressionObj)) return [new ValidationError(options.key, options.value, \"Feature data expressions are not supported with initial expression part of cluster properties.\")];\n\t}\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_boolean.ts\nfunction validateBoolean(options) {\n\tconst value = options.value;\n\tconst key = options.key;\n\tconst type = getType(value);\n\tif (type !== \"boolean\") return [new ValidationError(key, value, `boolean expected, ${type} found`)];\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_color.ts\nfunction validateColor(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tconst type = getType(value);\n\tif (type !== \"string\") return [new ValidationError(key, value, `color expected, ${type} found`)];\n\tif (!Color.parse(String(value))) return [new ValidationError(key, value, `color expected, \"${value}\" found`)];\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_enum.ts\nfunction validateEnum(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tconst valueSpec = options.valueSpec;\n\tconst errors = [];\n\tif (Array.isArray(valueSpec.values)) {\n\t\tif (valueSpec.values.indexOf(unbundle(value)) === -1) errors.push(new ValidationError(key, value, `expected one of [${valueSpec.values.join(\", \")}], ${JSON.stringify(value)} found`));\n\t} else if (Object.keys(valueSpec.values).indexOf(unbundle(value)) === -1) errors.push(new ValidationError(key, value, `expected one of [${Object.keys(valueSpec.values).join(\", \")}], ${JSON.stringify(value)} found`));\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_filter.ts\nfunction getValueAtPath(value, path) {\n\tlet current = value;\n\tfor (const index of path) current = current[index];\n\treturn current;\n}\n/**\n* Reports a filter that mixes deprecated syntax into an expression tree as a *warning*.\n* @param options The validation options, used for the key and the un-unbundled value\n* @param value The unbundled filter to inspect\n* @returns A single warning, or an empty array when nothing is mixed\n*/\nfunction validateNoMixedLegacyFilter(options, value) {\n\tconst diagnostic = findMixedLegacyFilter(value);\n\tif (!diagnostic) return [];\n\treturn [new ValidationError(`${options.key}${diagnostic.path.map((index) => `[${index}]`).join(\"\")}`, getValueAtPath(options.value, diagnostic.path), getMixedFilterMessage(diagnostic.legacyFilter), null, \"warning\")];\n}\nfunction validateFilter(options) {\n\tconst value = deepUnbundle(options.value);\n\tif (!isExpressionFilter(value)) return validateNonExpressionFilter(options);\n\treturn [...validateNoMixedLegacyFilter(options, value), ...validateExpression(extendBy({}, options, {\n\t\texpressionContext: \"filter\",\n\t\tvalueSpec: { value: \"boolean\" }\n\t}))];\n}\nfunction validateNonExpressionFilter(options) {\n\tconst value = options.value;\n\tconst key = options.key;\n\tif (getType(value) !== \"array\") return [new ValidationError(key, value, `array expected, ${getType(value)} found`)];\n\tconst styleSpec = options.styleSpec;\n\tlet type;\n\tlet errors = [];\n\tif (value.length < 1) return [new ValidationError(key, value, \"filter array must have at least 1 element\")];\n\terrors = errors.concat(validateEnum({\n\t\tkey: `${key}[0]`,\n\t\tvalue: value[0],\n\t\tvalueSpec: styleSpec.filter_operator,\n\t\tstyle: options.style,\n\t\tstyleSpec: options.styleSpec\n\t}));\n\tswitch (unbundle(value[0])) {\n\t\tcase \"<\":\n\t\tcase \"<=\":\n\t\tcase \">\":\n\t\tcase \">=\": if (value.length >= 2 && unbundle(value[1]) === \"$type\") errors.push(new ValidationError(key, value, `\"$type\" cannot be use with operator \"${value[0]}\"`));\n\t\tcase \"==\":\n\t\tcase \"!=\": if (value.length !== 3) errors.push(new ValidationError(key, value, `filter array for operator \"${value[0]}\" must have 3 elements`));\n\t\tcase \"in\":\n\t\tcase \"!in\":\n\t\t\tif (value.length >= 2) {\n\t\t\t\ttype = getType(value[1]);\n\t\t\t\tif (type !== \"string\") errors.push(new ValidationError(`${key}[1]`, value[1], `string expected, ${type} found`));\n\t\t\t}\n\t\t\tfor (let i = 2; i < value.length; i++) {\n\t\t\t\ttype = getType(value[i]);\n\t\t\t\tif (unbundle(value[1]) === \"$type\") errors = errors.concat(validateEnum({\n\t\t\t\t\tkey: `${key}[${i}]`,\n\t\t\t\t\tvalue: value[i],\n\t\t\t\t\tvalueSpec: styleSpec.geometry_type,\n\t\t\t\t\tstyle: options.style,\n\t\t\t\t\tstyleSpec: options.styleSpec\n\t\t\t\t}));\n\t\t\t\telse if (type !== \"string\" && type !== \"number\" && type !== \"boolean\") errors.push(new ValidationError(`${key}[${i}]`, value[i], `string, number, or boolean expected, ${type} found`));\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"any\":\n\t\tcase \"all\":\n\t\tcase \"none\":\n\t\t\tfor (let i = 1; i < value.length; i++) errors = errors.concat(validateNonExpressionFilter({\n\t\t\t\tkey: `${key}[${i}]`,\n\t\t\t\tvalue: value[i],\n\t\t\t\tstyle: options.style,\n\t\t\t\tstyleSpec: options.styleSpec\n\t\t\t}));\n\t\t\tbreak;\n\t\tcase \"has\":\n\t\tcase \"!has\":\n\t\t\ttype = getType(value[1]);\n\t\t\tif (value.length !== 2) errors.push(new ValidationError(key, value, `filter array for \"${value[0]}\" operator must have 2 elements`));\n\t\t\telse if (type !== \"string\") errors.push(new ValidationError(`${key}[1]`, value[1], `string expected, ${type} found`));\n\t\t\tbreak;\n\t}\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_property.ts\nfunction validateProperty(options, propertyType) {\n\tconst key = options.key;\n\tconst validateSpec = options.validateSpec;\n\tconst style = options.style;\n\tconst styleSpec = options.styleSpec;\n\tconst value = options.value;\n\tconst propertyKey = options.objectKey;\n\tconst layerSpec = styleSpec[`${propertyType}_${options.layerType}`];\n\tif (!layerSpec) return [];\n\tconst transitionMatch = propertyKey.match(/^(.*)-transition$/);\n\tif (propertyType === \"paint\" && transitionMatch && layerSpec[transitionMatch[1]] && layerSpec[transitionMatch[1]].transition) return validateSpec({\n\t\tkey,\n\t\tvalue,\n\t\tvalueSpec: styleSpec.transition,\n\t\tstyle,\n\t\tstyleSpec\n\t});\n\tconst valueSpec = options.valueSpec || layerSpec[propertyKey];\n\tif (!valueSpec) return [new ValidationError(key, value, `unknown property \"${propertyKey}\"`)];\n\tlet tokenMatch;\n\tif (getType(value) === \"string\" && supportsPropertyExpression(valueSpec) && !valueSpec.tokens && (tokenMatch = /^{([^}]+)}$/.exec(value))) return [new ValidationError(key, value, `\"${propertyKey}\" does not support interpolation syntax\\nUse an identity property function instead: \\`{ \"type\": \"identity\", \"property\": ${JSON.stringify(tokenMatch[1])} }\\`.`)];\n\tconst errors = [];\n\tif (options.layerType === \"symbol\") {\n\t\tif (propertyKey === \"text-font\" && isFunction(deepUnbundle(value)) && unbundle(value.type) === \"identity\") errors.push(new ValidationError(key, value, \"\\\"text-font\\\" does not support identity functions\"));\n\t}\n\treturn errors.concat(validateSpec({\n\t\tkey: options.key,\n\t\tvalue,\n\t\tvalueSpec,\n\t\tstyle,\n\t\tstyleSpec,\n\t\texpressionContext: \"property\",\n\t\tpropertyType,\n\t\tpropertyKey\n\t}));\n}\n//#endregion\n//#region src/validate/validate_paint_property.ts\nfunction validatePaintProperty(options) {\n\treturn validateProperty(options, \"paint\");\n}\n//#endregion\n//#region src/validate/validate_layout_property.ts\nfunction validateLayoutProperty(options) {\n\treturn validateProperty(options, \"layout\");\n}\n//#endregion\n//#region src/validate/validate_layer.ts\nfunction validateLayer(options) {\n\tlet errors = [];\n\tconst layer = options.value;\n\tconst key = options.key;\n\tconst style = options.style;\n\tconst styleSpec = options.styleSpec;\n\tif (getType(layer) !== \"object\") return [new ValidationError(key, layer, `object expected, ${getType(layer)} found`)];\n\tif (!layer.type && !layer.ref) errors.push(new ValidationError(key, layer, \"either \\\"type\\\" or \\\"ref\\\" is required\"));\n\tlet type = unbundle(layer.type);\n\tconst ref = unbundle(layer.ref);\n\tif (layer.id) {\n\t\tconst layerId = unbundle(layer.id);\n\t\tfor (let i = 0; i < options.arrayIndex; i++) {\n\t\t\tconst otherLayer = style.layers[i];\n\t\t\tif (unbundle(otherLayer.id) === layerId) errors.push(new ValidationError(key, layer.id, `duplicate layer id \"${layer.id}\", previously used at line ${otherLayer.id.__line__}`));\n\t\t}\n\t}\n\tif (\"ref\" in layer) {\n\t\t[\n\t\t\t\"type\",\n\t\t\t\"source\",\n\t\t\t\"source-layer\",\n\t\t\t\"filter\",\n\t\t\t\"layout\"\n\t\t].forEach((p) => {\n\t\t\tif (p in layer) errors.push(new ValidationError(key, layer[p], `\"${p}\" is prohibited for ref layers`));\n\t\t});\n\t\tlet parent;\n\t\tstyle.layers.forEach((layer) => {\n\t\t\tif (unbundle(layer.id) === ref) parent = layer;\n\t\t});\n\t\tif (!parent) errors.push(new ValidationError(key, layer.ref, `ref layer \"${ref}\" not found`));\n\t\telse if (parent.ref) errors.push(new ValidationError(key, layer.ref, \"ref cannot reference another ref layer\"));\n\t\telse type = unbundle(parent.type);\n\t} else if (type !== \"background\") if (!layer.source) errors.push(new ValidationError(key, layer, \"missing required property \\\"source\\\"\"));\n\telse {\n\t\tconst source = style.sources && style.sources[layer.source];\n\t\tconst sourceType = source && unbundle(source.type);\n\t\tif (!source) errors.push(new ValidationError(key, layer.source, `source \"${layer.source}\" not found`));\n\t\telse if (sourceType === \"vector\" && type === \"raster\") errors.push(new ValidationError(key, layer.source, `layer \"${layer.id}\" requires a raster source`));\n\t\telse if (sourceType !== \"raster-dem\" && type === \"hillshade\") errors.push(new ValidationError(key, layer.source, `layer \"${layer.id}\" requires a raster-dem source`));\n\t\telse if (sourceType !== \"raster-dem\" && type === \"color-relief\") errors.push(new ValidationError(key, layer.source, `layer \"${layer.id}\" requires a raster-dem source`));\n\t\telse if (sourceType === \"raster\" && type !== \"raster\") errors.push(new ValidationError(key, layer.source, `layer \"${layer.id}\" requires a vector source`));\n\t\telse if (sourceType === \"vector\" && !layer[\"source-layer\"]) errors.push(new ValidationError(key, layer, `layer \"${layer.id}\" must specify a \"source-layer\"`));\n\t\telse if (sourceType === \"raster-dem\" && type !== \"hillshade\" && type !== \"color-relief\") errors.push(new ValidationError(key, layer.source, \"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.\"));\n\t\telse if (type === \"line\" && layer.paint && layer.paint[\"line-gradient\"] && (sourceType !== \"geojson\" || !source.lineMetrics)) errors.push(new ValidationError(key, layer, `layer \"${layer.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`));\n\t}\n\tif (type === \"raster\" && layer.paint?.resampling && layer.paint?.[\"raster-resampling\"]) errors.push(new ValidationError(key, layer.paint, `layer \"${layer.id}\" redundantly specifies \"resampling\" and \"raster-resampling\" paint properties, but only one is allowed. It is advised to use \"resampling\".`));\n\terrors = errors.concat(validateObject({\n\t\tkey,\n\t\tvalue: layer,\n\t\tvalueSpec: styleSpec.layer,\n\t\tstyle: options.style,\n\t\tstyleSpec: options.styleSpec,\n\t\tvalidateSpec: options.validateSpec,\n\t\tobjectElementValidators: {\n\t\t\t\"*\"() {\n\t\t\t\treturn [];\n\t\t\t},\n\t\t\ttype() {\n\t\t\t\treturn options.validateSpec({\n\t\t\t\t\tkey: `${key}.type`,\n\t\t\t\t\tvalue: layer.type,\n\t\t\t\t\tvalueSpec: styleSpec.layer.type,\n\t\t\t\t\tstyle: options.style,\n\t\t\t\t\tstyleSpec: options.styleSpec,\n\t\t\t\t\tvalidateSpec: options.validateSpec,\n\t\t\t\t\tobject: layer,\n\t\t\t\t\tobjectKey: \"type\"\n\t\t\t\t});\n\t\t\t},\n\t\t\tfilter: validateFilter,\n\t\t\tlayout(options) {\n\t\t\t\treturn validateObject({\n\t\t\t\t\tlayer,\n\t\t\t\t\tkey: options.key,\n\t\t\t\t\tvalue: options.value,\n\t\t\t\t\tstyle: options.style,\n\t\t\t\t\tstyleSpec: options.styleSpec,\n\t\t\t\t\tvalidateSpec: options.validateSpec,\n\t\t\t\t\tobjectElementValidators: { \"*\"(options) {\n\t\t\t\t\t\treturn validateLayoutProperty(extendBy({ layerType: type }, options));\n\t\t\t\t\t} }\n\t\t\t\t});\n\t\t\t},\n\t\t\tpaint(options) {\n\t\t\t\treturn validateObject({\n\t\t\t\t\tlayer,\n\t\t\t\t\tkey: options.key,\n\t\t\t\t\tvalue: options.value,\n\t\t\t\t\tstyle: options.style,\n\t\t\t\t\tstyleSpec: options.styleSpec,\n\t\t\t\t\tvalidateSpec: options.validateSpec,\n\t\t\t\t\tobjectElementValidators: { \"*\"(options) {\n\t\t\t\t\t\treturn validatePaintProperty(extendBy({ layerType: type }, options));\n\t\t\t\t\t} }\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}));\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_string.ts\nfunction validateString(options) {\n\tconst value = options.value;\n\tconst key = options.key;\n\tconst type = getType(value);\n\tif (type !== \"string\") return [new ValidationError(key, value, `string expected, ${type} found`)];\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_raster_dem_source.ts\nfunction validateRasterDEMSource(options) {\n\tconst sourceName = options.sourceName ?? \"\";\n\tconst rasterDEM = options.value;\n\tconst styleSpec = options.styleSpec;\n\tconst rasterDEMSpec = styleSpec.source_raster_dem;\n\tconst style = options.style;\n\tlet errors = [];\n\tconst rootType = getType(rasterDEM);\n\tif (rasterDEM === void 0) return errors;\n\telse if (rootType !== \"object\") {\n\t\terrors.push(new ValidationError(\"source_raster_dem\", rasterDEM, `object expected, ${rootType} found`));\n\t\treturn errors;\n\t}\n\tconst isCustomEncoding = unbundle(rasterDEM.encoding) === \"custom\";\n\tconst customEncodingKeys = [\n\t\t\"redFactor\",\n\t\t\"greenFactor\",\n\t\t\"blueFactor\",\n\t\t\"baseShift\"\n\t];\n\tconst encodingName = options.value.encoding ? `\"${options.value.encoding}\"` : \"Default\";\n\tfor (const key in rasterDEM) if (!isCustomEncoding && customEncodingKeys.includes(key)) errors.push(new ValidationError(key, rasterDEM[key], `In \"${sourceName}\": \"${key}\" is only valid when \"encoding\" is set to \"custom\". ${encodingName} encoding found`));\n\telse if (rasterDEMSpec[key]) errors = errors.concat(options.validateSpec({\n\t\tkey,\n\t\tvalue: rasterDEM[key],\n\t\tvalueSpec: rasterDEMSpec[key],\n\t\tvalidateSpec: options.validateSpec,\n\t\tstyle,\n\t\tstyleSpec\n\t}));\n\telse errors.push(new ValidationError(key, rasterDEM[key], `unknown property \"${key}\"`));\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_source.ts\nconst objectElementValidators = { promoteId: validatePromoteId };\nfunction validateSource(options) {\n\tconst value = options.value;\n\tconst key = options.key;\n\tconst styleSpec = options.styleSpec;\n\tconst style = options.style;\n\tconst validateSpec = options.validateSpec;\n\tif (!value.type) return [new ValidationError(key, value, \"\\\"type\\\" is required\")];\n\tconst type = unbundle(value.type);\n\tlet errors;\n\tswitch (type) {\n\t\tcase \"vector\":\n\t\tcase \"raster\":\n\t\t\terrors = validateObject({\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t\tvalueSpec: styleSpec[`source_${type.replace(\"-\", \"_\")}`],\n\t\t\t\tstyle: options.style,\n\t\t\t\tstyleSpec,\n\t\t\t\tobjectElementValidators,\n\t\t\t\tvalidateSpec\n\t\t\t});\n\t\t\treturn errors;\n\t\tcase \"raster-dem\":\n\t\t\terrors = validateRasterDEMSource({\n\t\t\t\tsourceName: key,\n\t\t\t\tvalue,\n\t\t\t\tstyle: options.style,\n\t\t\t\tstyleSpec,\n\t\t\t\tvalidateSpec\n\t\t\t});\n\t\t\treturn errors;\n\t\tcase \"geojson\":\n\t\t\terrors = validateObject({\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t\tvalueSpec: styleSpec.source_geojson,\n\t\t\t\tstyle,\n\t\t\t\tstyleSpec,\n\t\t\t\tvalidateSpec,\n\t\t\t\tobjectElementValidators\n\t\t\t});\n\t\t\tif (value.cluster) for (const prop in value.clusterProperties) {\n\t\t\t\tconst [operator, mapExpr] = value.clusterProperties[prop];\n\t\t\t\tconst reduceExpr = typeof operator === \"string\" ? [\n\t\t\t\t\toperator,\n\t\t\t\t\t[\"accumulated\"],\n\t\t\t\t\t[\"get\", prop]\n\t\t\t\t] : operator;\n\t\t\t\terrors.push(...validateExpression({\n\t\t\t\t\tkey: `${key}.${prop}.map`,\n\t\t\t\t\tvalue: mapExpr,\n\t\t\t\t\tvalidateSpec,\n\t\t\t\t\texpressionContext: \"cluster-map\"\n\t\t\t\t}));\n\t\t\t\terrors.push(...validateExpression({\n\t\t\t\t\tkey: `${key}.${prop}.reduce`,\n\t\t\t\t\tvalue: reduceExpr,\n\t\t\t\t\tvalidateSpec,\n\t\t\t\t\texpressionContext: \"cluster-reduce\"\n\t\t\t\t}));\n\t\t\t}\n\t\t\treturn errors;\n\t\tcase \"video\": return validateObject({\n\t\t\tkey,\n\t\t\tvalue,\n\t\t\tvalueSpec: styleSpec.source_video,\n\t\t\tstyle,\n\t\t\tvalidateSpec,\n\t\t\tstyleSpec\n\t\t});\n\t\tcase \"image\": return validateObject({\n\t\t\tkey,\n\t\t\tvalue,\n\t\t\tvalueSpec: styleSpec.source_image,\n\t\t\tstyle,\n\t\t\tvalidateSpec,\n\t\t\tstyleSpec\n\t\t});\n\t\tcase \"canvas\": return [new ValidationError(key, null, \"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\", \"source.canvas\")];\n\t\tdefault: return validateEnum({\n\t\t\tkey: `${key}.type`,\n\t\t\tvalue: value.type,\n\t\t\tvalueSpec: { values: [\n\t\t\t\t\"vector\",\n\t\t\t\t\"raster\",\n\t\t\t\t\"raster-dem\",\n\t\t\t\t\"geojson\",\n\t\t\t\t\"video\",\n\t\t\t\t\"image\"\n\t\t\t] },\n\t\t\tstyle,\n\t\t\tvalidateSpec,\n\t\t\tstyleSpec\n\t\t});\n\t}\n}\nfunction validatePromoteId({ key, value }) {\n\tif (getType(value) === \"string\") return validateString({\n\t\tkey,\n\t\tvalue\n\t});\n\telse {\n\t\tconst errors = [];\n\t\tfor (const prop in value) errors.push(...validateString({\n\t\t\tkey: `${key}.${prop}`,\n\t\t\tvalue: value[prop]\n\t\t}));\n\t\treturn errors;\n\t}\n}\n//#endregion\n//#region src/validate/validate_light.ts\nfunction validateLight(options) {\n\tconst light = options.value;\n\tconst styleSpec = options.styleSpec;\n\tconst lightSpec = styleSpec.light;\n\tconst style = options.style;\n\tlet errors = [];\n\tconst rootType = getType(light);\n\tif (light === void 0) return errors;\n\telse if (rootType !== \"object\") {\n\t\terrors = errors.concat([new ValidationError(\"light\", light, `object expected, ${rootType} found`)]);\n\t\treturn errors;\n\t}\n\tfor (const key in light) {\n\t\tconst transitionMatch = key.match(/^(.*)-transition$/);\n\t\tif (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) errors = errors.concat(options.validateSpec({\n\t\t\tkey,\n\t\t\tvalue: light[key],\n\t\t\tvalueSpec: styleSpec.transition,\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle,\n\t\t\tstyleSpec\n\t\t}));\n\t\telse if (lightSpec[key]) errors = errors.concat(options.validateSpec({\n\t\t\tkey,\n\t\t\tvalue: light[key],\n\t\t\tvalueSpec: lightSpec[key],\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle,\n\t\t\tstyleSpec\n\t\t}));\n\t\telse errors = errors.concat([new ValidationError(key, light[key], `unknown property \"${key}\"`)]);\n\t}\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_sky.ts\nfunction validateSky(options) {\n\tconst sky = options.value;\n\tconst styleSpec = options.styleSpec;\n\tconst skySpec = styleSpec.sky;\n\tconst style = options.style;\n\tconst rootType = getType(sky);\n\tif (sky === void 0) return [];\n\telse if (rootType !== \"object\") return [new ValidationError(\"sky\", sky, `object expected, ${rootType} found`)];\n\tlet errors = [];\n\tfor (const key in sky) if (skySpec[key]) errors = errors.concat(options.validateSpec({\n\t\tkey,\n\t\tvalue: sky[key],\n\t\tvalueSpec: skySpec[key],\n\t\tstyle,\n\t\tstyleSpec\n\t}));\n\telse errors = errors.concat([new ValidationError(key, sky[key], `unknown property \"${key}\"`)]);\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_terrain.ts\nfunction validateTerrain(options) {\n\tconst terrain = options.value;\n\tconst styleSpec = options.styleSpec;\n\tconst terrainSpec = styleSpec.terrain;\n\tconst style = options.style;\n\tlet errors = [];\n\tconst rootType = getType(terrain);\n\tif (terrain === void 0) return errors;\n\telse if (rootType !== \"object\") {\n\t\terrors = errors.concat([new ValidationError(\"terrain\", terrain, `object expected, ${rootType} found`)]);\n\t\treturn errors;\n\t}\n\tfor (const key in terrain) if (terrainSpec[key]) errors = errors.concat(options.validateSpec({\n\t\tkey,\n\t\tvalue: terrain[key],\n\t\tvalueSpec: terrainSpec[key],\n\t\tvalidateSpec: options.validateSpec,\n\t\tstyle,\n\t\tstyleSpec\n\t}));\n\telse errors = errors.concat([new ValidationError(key, terrain[key], `unknown property \"${key}\"`)]);\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_formatted.ts\nfunction validateFormatted(options) {\n\tif (validateString(options).length === 0) return [];\n\treturn validateExpression(options);\n}\n//#endregion\n//#region src/validate/validate_image.ts\nfunction validateImage(options) {\n\tif (validateString(options).length === 0) return [];\n\treturn validateExpression(options);\n}\n//#endregion\n//#region src/validate/validate_padding.ts\nfunction validatePadding(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tif (getType(value) === \"array\") {\n\t\tif (value.length < 1 || value.length > 4) return [new ValidationError(key, value, `padding requires 1 to 4 values; ${value.length} values found`)];\n\t\tconst arrayElementSpec = { type: \"number\" };\n\t\tlet errors = [];\n\t\tfor (let i = 0; i < value.length; i++) errors = errors.concat(options.validateSpec({\n\t\t\tkey: `${key}[${i}]`,\n\t\t\tvalue: value[i],\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tvalueSpec: arrayElementSpec\n\t\t}));\n\t\treturn errors;\n\t} else return validateNumber({\n\t\tkey,\n\t\tvalue,\n\t\tvalueSpec: {}\n\t});\n}\n//#endregion\n//#region src/validate/validate_number_array.ts\nfunction validateNumberArray(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tif (getType(value) === \"array\") {\n\t\tconst arrayElementSpec = { type: \"number\" };\n\t\tif (value.length < 1) return [new ValidationError(key, value, \"array length at least 1 expected, length 0 found\")];\n\t\tlet errors = [];\n\t\tfor (let i = 0; i < value.length; i++) errors = errors.concat(options.validateSpec({\n\t\t\tkey: `${key}[${i}]`,\n\t\t\tvalue: value[i],\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tvalueSpec: arrayElementSpec\n\t\t}));\n\t\treturn errors;\n\t} else return validateNumber({\n\t\tkey,\n\t\tvalue,\n\t\tvalueSpec: {}\n\t});\n}\n//#endregion\n//#region src/validate/validate_color_array.ts\nfunction validateColorArray(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tif (getType(value) === \"array\") {\n\t\tif (value.length < 1) return [new ValidationError(key, value, \"array length at least 1 expected, length 0 found\")];\n\t\tlet errors = [];\n\t\tfor (let i = 0; i < value.length; i++) errors = errors.concat(validateColor({\n\t\t\tkey: `${key}[${i}]`,\n\t\t\tvalue: value[i],\n\t\t\tvalueSpec: {}\n\t\t}));\n\t\treturn errors;\n\t} else return validateColor({\n\t\tkey,\n\t\tvalue,\n\t\tvalueSpec: {}\n\t});\n}\n//#endregion\n//#region src/validate/validate_variable_anchor_offset_collection.ts\nfunction validateVariableAnchorOffsetCollection(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tconst type = getType(value);\n\tconst styleSpec = options.styleSpec;\n\tif (type !== \"array\" || value.length < 1 || value.length % 2 !== 0) return [new ValidationError(key, value, \"variableAnchorOffsetCollection requires a non-empty array of even length\")];\n\tlet errors = [];\n\tfor (let i = 0; i < value.length; i += 2) {\n\t\terrors = errors.concat(validateEnum({\n\t\t\tkey: `${key}[${i}]`,\n\t\t\tvalue: value[i],\n\t\t\tvalueSpec: styleSpec[\"layout_symbol\"][\"text-anchor\"]\n\t\t}));\n\t\terrors = errors.concat(validateArray({\n\t\t\tkey: `${key}[${i + 1}]`,\n\t\t\tvalue: value[i + 1],\n\t\t\tvalueSpec: {\n\t\t\t\tlength: 2,\n\t\t\t\tvalue: \"number\"\n\t\t\t},\n\t\t\tvalidateSpec: options.validateSpec,\n\t\t\tstyle: options.style,\n\t\t\tstyleSpec\n\t\t}));\n\t}\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_sprite.ts\nfunction validateSprite(options) {\n\tlet errors = [];\n\tconst sprite = options.value;\n\tconst key = options.key;\n\tif (!Array.isArray(sprite)) return validateString({\n\t\tkey,\n\t\tvalue: sprite\n\t});\n\telse {\n\t\tconst allSpriteIds = [];\n\t\tconst allSpriteURLs = [];\n\t\tfor (const i in sprite) {\n\t\t\tif (sprite[i].id && allSpriteIds.includes(sprite[i].id)) errors.push(new ValidationError(key, sprite, `all the sprites' ids must be unique, but ${sprite[i].id} is duplicated`));\n\t\t\tallSpriteIds.push(sprite[i].id);\n\t\t\tif (sprite[i].url && allSpriteURLs.includes(sprite[i].url)) errors.push(new ValidationError(key, sprite, `all the sprites' URLs must be unique, but ${sprite[i].url} is duplicated`));\n\t\t\tallSpriteURLs.push(sprite[i].url);\n\t\t\terrors = errors.concat(validateObject({\n\t\t\t\tkey: `${key}[${i}]`,\n\t\t\t\tvalue: sprite[i],\n\t\t\t\tvalueSpec: {\n\t\t\t\t\tid: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true\n\t\t\t\t\t},\n\t\t\t\t\turl: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvalidateSpec: options.validateSpec\n\t\t\t}));\n\t\t}\n\t\treturn errors;\n\t}\n}\n//#endregion\n//#region src/validate/validate_projection.ts\nfunction validateProjection(options) {\n\tconst projection = options.value;\n\tconst styleSpec = options.styleSpec;\n\tconst projectionSpec = styleSpec.projection;\n\tconst style = options.style;\n\tconst rootType = getType(projection);\n\tif (projection === void 0) return [];\n\telse if (rootType !== \"object\") return [new ValidationError(\"projection\", projection, `object expected, ${rootType} found`)];\n\tlet errors = [];\n\tfor (const key in projection) if (projectionSpec[key]) errors = errors.concat(options.validateSpec({\n\t\tkey,\n\t\tvalue: projection[key],\n\t\tvalueSpec: projectionSpec[key],\n\t\tstyle,\n\t\tstyleSpec\n\t}));\n\telse errors = errors.concat([new ValidationError(key, projection[key], `unknown property \"${key}\"`)]);\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate_projectiondefinition.ts\nfunction validateProjectionDefinition(options) {\n\tconst key = options.key;\n\tlet value = options.value;\n\tvalue = value instanceof String ? value.valueOf() : value;\n\tconst type = getType(value);\n\tif (type === \"array\" && !isProjectionDefinitionValue(value) && !isPropertyValueSpecification(value)) return [new ValidationError(key, value, `projection expected, invalid array ${JSON.stringify(value)} found`)];\n\telse if (![\"array\", \"string\"].includes(type)) return [new ValidationError(key, value, `projection expected, invalid type \"${type}\" found`)];\n\treturn [];\n}\nfunction isPropertyValueSpecification(value) {\n\tif ([\n\t\t\"interpolate\",\n\t\t\"step\",\n\t\t\"literal\"\n\t].includes(value[0])) return true;\n\treturn false;\n}\nfunction isProjectionDefinitionValue(value) {\n\treturn Array.isArray(value) && value.length === 3 && typeof value[0] === \"string\" && typeof value[1] === \"string\" && typeof value[2] === \"number\";\n}\n//#endregion\n//#region src/util/is_object_literal.ts\nfunction isObjectLiteral(anything) {\n\treturn Boolean(anything) && anything.constructor === Object;\n}\n//#endregion\n//#region src/validate/validate_state.ts\nfunction validateState(options) {\n\tif (!isObjectLiteral(options.value)) return [new ValidationError(options.key, options.value, `object expected, ${getType(options.value)} found`)];\n\treturn [];\n}\n//#endregion\n//#region src/validate/validate_font_faces.ts\nfunction validateFontFaces(options) {\n\tconst key = options.key;\n\tconst value = options.value;\n\tconst validateSpec = options.validateSpec;\n\tconst styleSpec = options.styleSpec;\n\tconst style = options.style;\n\tif (!isObjectLiteral(value)) return [new ValidationError(key, value, `object expected, ${getType(value)} found`)];\n\tconst errors = [];\n\tfor (const fontName in value) {\n\t\tconst fontValue = value[fontName];\n\t\tconst fontValueType = getType(fontValue);\n\t\tif (fontValueType === \"string\") errors.push(...validateString({\n\t\t\tkey: `${key}.${fontName}`,\n\t\t\tvalue: fontValue\n\t\t}));\n\t\telse if (fontValueType === \"array\") {\n\t\t\tconst fontFaceSpec = {\n\t\t\t\turl: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\t\"unicode-range\": {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\tvalue: \"string\"\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (const [i, fontFace] of fontValue.entries()) errors.push(...validateObject({\n\t\t\t\tkey: `${key}.${fontName}[${i}]`,\n\t\t\t\tvalue: fontFace,\n\t\t\t\tvalueSpec: fontFaceSpec,\n\t\t\t\tstyleSpec,\n\t\t\t\tstyle,\n\t\t\t\tvalidateSpec\n\t\t\t}));\n\t\t} else errors.push(new ValidationError(`${key}.${fontName}`, fontValue, `string or array expected, ${fontValueType} found`));\n\t}\n\treturn errors;\n}\n//#endregion\n//#region src/validate/validate.ts\nconst VALIDATORS = {\n\t\"*\"() {\n\t\treturn [];\n\t},\n\tarray: validateArray,\n\tboolean: validateBoolean,\n\tnumber: validateNumber,\n\tcolor: validateColor,\n\tconstants: validateConstants,\n\tenum: validateEnum,\n\tfilter: validateFilter,\n\tfunction: validateFunction,\n\tlayer: validateLayer,\n\tobject: validateObject,\n\tsource: validateSource,\n\tlight: validateLight,\n\tsky: validateSky,\n\tterrain: validateTerrain,\n\tprojection: validateProjection,\n\tprojectionDefinition: validateProjectionDefinition,\n\tstring: validateString,\n\tformatted: validateFormatted,\n\tresolvedImage: validateImage,\n\tpadding: validatePadding,\n\tnumberArray: validateNumberArray,\n\tcolorArray: validateColorArray,\n\tvariableAnchorOffsetCollection: validateVariableAnchorOffsetCollection,\n\tsprite: validateSprite,\n\tstate: validateState,\n\tfontFaces: validateFontFaces\n};\n/**\n* Main recursive validation function used internally.\n* You should use `validateStyleMin` in the browser or `validateStyle` in node env.\n* @param options - the options object\n* @param options.key - string representing location of validation in style tree. Used only\n* for more informative error reporting.\n* @param options.value - current value from style being evaluated. May be anything from a\n* high level object that needs to be descended into deeper or a simple\n* scalar value.\n* @param options.valueSpec - current spec being evaluated. Tracks value.\n* @param options.styleSpec - current full spec being evaluated.\n* @param options.validateSpec - the validate function itself\n* @param options.style - the style object\n* @param options.objectElementValidators - optional object of functions that will be called\n* @returns an array of errors, or an empty array if no errors are found.\n*/\nfunction validate(options) {\n\tconst value = options.value;\n\tconst valueSpec = options.valueSpec;\n\tconst styleSpec = options.styleSpec;\n\toptions.validateSpec = validate;\n\tif (valueSpec.expression && isFunction(unbundle(value))) return validateFunction(options);\n\telse if (valueSpec.expression && isExpression(deepUnbundle(value))) return validateExpression(options);\n\telse if (valueSpec.type && VALIDATORS[valueSpec.type]) return VALIDATORS[valueSpec.type](options);\n\telse return validateObject(extendBy({}, options, { valueSpec: valueSpec.type ? styleSpec[valueSpec.type] : valueSpec }));\n}\n//#endregion\n//#region src/validate/validate_glyphs_url.ts\nfunction validateGlyphsUrl(options) {\n\tconst value = options.value;\n\tconst key = options.key;\n\tconst errors = validateString(options);\n\tif (errors.length) return errors;\n\tif (value.indexOf(\"{fontstack}\") === -1) errors.push(new ValidationError(key, value, \"\\\"glyphs\\\" url must include a \\\"{fontstack}\\\" token\"));\n\tif (value.indexOf(\"{range}\") === -1) errors.push(new ValidationError(key, value, \"\\\"glyphs\\\" url must include a \\\"{range}\\\" token\"));\n\treturn errors;\n}\n//#endregion\n//#region src/validate_style.min.ts\n/**\n* Validate a MapLibre style against the style specification.\n* Use this when running in the browser.\n*\n* @param style - The style to be validated.\n* @param styleSpec - The style specification to validate against.\n* If omitted, the latest style spec is used.\n* @returns an array of errors, or an empty array if no errors are found.\n* @example\n* const validate = require('@maplibre/maplibre-gl-style-spec/').validateStyleMin;\n* const errors = validate(style);\n*/\nfunction validateStyleMin(style, styleSpec = latest) {\n\tlet errors = [];\n\terrors = errors.concat(validate({\n\t\tkey: \"\",\n\t\tvalue: style,\n\t\tvalueSpec: styleSpec.$root,\n\t\tstyleSpec,\n\t\tstyle,\n\t\tvalidateSpec: validate,\n\t\tobjectElementValidators: {\n\t\t\tglyphs: validateGlyphsUrl,\n\t\t\t\"*\"() {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t}\n\t}));\n\tif (style[\"constants\"]) errors = errors.concat(validateConstants({\n\t\tkey: \"constants\",\n\t\tvalue: style[\"constants\"],\n\t\tstyle,\n\t\tstyleSpec,\n\t\tvalidateSpec: validate\n\t}));\n\treturn sortErrors(errors);\n}\nvalidateStyleMin.source = wrapCleanErrors(injectValidateSpec(validateSource));\nvalidateStyleMin.sprite = wrapCleanErrors(injectValidateSpec(validateSprite));\nvalidateStyleMin.glyphs = wrapCleanErrors(injectValidateSpec(validateGlyphsUrl));\nvalidateStyleMin.light = wrapCleanErrors(injectValidateSpec(validateLight));\nvalidateStyleMin.sky = wrapCleanErrors(injectValidateSpec(validateSky));\nvalidateStyleMin.terrain = wrapCleanErrors(injectValidateSpec(validateTerrain));\nvalidateStyleMin.state = wrapCleanErrors(injectValidateSpec(validateState));\nvalidateStyleMin.layer = wrapCleanErrors(injectValidateSpec(validateLayer));\nvalidateStyleMin.filter = wrapCleanErrors(injectValidateSpec(validateFilter));\nvalidateStyleMin.paintProperty = wrapCleanErrors(injectValidateSpec(validatePaintProperty));\nvalidateStyleMin.layoutProperty = wrapCleanErrors(injectValidateSpec(validateLayoutProperty));\nfunction injectValidateSpec(validator) {\n\treturn function(options) {\n\t\treturn validator(Object.assign({}, options, { validateSpec: validate }));\n\t};\n}\nfunction sortErrors(errors) {\n\treturn [].concat(errors).sort((a, b) => {\n\t\treturn a.line - b.line;\n\t});\n}\nfunction wrapCleanErrors(inner) {\n\treturn function(...args) {\n\t\treturn sortErrors(inner.apply(this, args));\n\t};\n}\n//#endregion\n//#region node_modules/json-stringify-pretty-compact/index.js\nconst stringOrChar = /(\"(?:[^\\\\\"]|\\\\.)*\")|[:,]/g;\nfunction stringify(passedObj, options = {}) {\n\tconst indent = JSON.stringify([1], void 0, options.indent === void 0 ? 2 : options.indent).slice(2, -3);\n\tconst maxLength = indent === \"\" ? Infinity : options.maxLength === void 0 ? 80 : options.maxLength;\n\tlet { replacer } = options;\n\treturn (function _stringify(obj, currentIndent, reserved) {\n\t\tif (obj && typeof obj.toJSON === \"function\") obj = obj.toJSON();\n\t\tconst string = JSON.stringify(obj, replacer);\n\t\tif (string === void 0) return string;\n\t\tconst length = maxLength - currentIndent.length - reserved;\n\t\tif (string.length <= length) {\n\t\t\tconst prettified = string.replace(stringOrChar, (match, stringLiteral) => {\n\t\t\t\treturn stringLiteral || `${match} `;\n\t\t\t});\n\t\t\tif (prettified.length <= length) return prettified;\n\t\t}\n\t\tif (replacer != null) {\n\t\t\tobj = JSON.parse(string);\n\t\t\treplacer = void 0;\n\t\t}\n\t\tif (typeof obj === \"object\" && obj !== null) {\n\t\t\tconst nextIndent = currentIndent + indent;\n\t\t\tconst items = [];\n\t\t\tlet index = 0;\n\t\t\tlet start;\n\t\t\tlet end;\n\t\t\tif (Array.isArray(obj)) {\n\t\t\t\tstart = \"[\";\n\t\t\t\tend = \"]\";\n\t\t\t\tconst { length } = obj;\n\t\t\t\tfor (; index < length; index++) items.push(_stringify(obj[index], nextIndent, index === length - 1 ? 0 : 1) || \"null\");\n\t\t\t} else {\n\t\t\t\tstart = \"{\";\n\t\t\t\tend = \"}\";\n\t\t\t\tconst keys = Object.keys(obj);\n\t\t\t\tconst { length } = keys;\n\t\t\t\tfor (; index < length; index++) {\n\t\t\t\t\tconst key = keys[index];\n\t\t\t\t\tconst keyPart = `${JSON.stringify(key)}: `;\n\t\t\t\t\tconst value = _stringify(obj[key], nextIndent, keyPart.length + (index === length - 1 ? 0 : 1));\n\t\t\t\t\tif (value !== void 0) items.push(keyPart + value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (items.length > 0) return [\n\t\t\t\tstart,\n\t\t\t\tindent + items.join(`,\\n${nextIndent}`),\n\t\t\t\tend\n\t\t\t].join(`\\n${currentIndent}`);\n\t\t}\n\t\treturn string;\n\t})(passedObj, \"\", 0);\n}\n//#endregion\n//#region src/format.ts\nfunction sortKeysBy(obj, reference) {\n\tconst result = {};\n\tfor (const key in reference) if (obj[key] !== void 0) result[key] = obj[key];\n\tfor (const key in obj) if (result[key] === void 0) result[key] = obj[key];\n\treturn result;\n}\n/**\n* Format a MapLibre Style. Returns a stringified style with its keys\n* sorted in the same order as the reference style.\n*\n* The optional `space` argument is passed to\n* [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)\n* to generate formatted output.\n*\n* If `space` is unspecified, a default of `2` spaces will be used.\n*\n* @private\n* @param {Object} style a MapLibre Style\n* @param {number} [space] space argument to pass to `JSON.stringify`\n* @returns {string} stringified formatted JSON\n* @example\n* var fs = require('fs');\n* var format = require('maplibre-gl-style-spec').format;\n* var style = fs.readFileSync('./source.json', 'utf8');\n* fs.writeFileSync('./dest.json', format(style));\n* fs.writeFileSync('./dest.min.json', format(style, 0));\n*/\nfunction format(style, space = 2) {\n\tstyle = sortKeysBy(style, latest.$root);\n\tif (style.layers) style.layers = style.layers.map((layer) => sortKeysBy(layer, latest.layer));\n\treturn stringify(style, { indent: space });\n}\n//#endregion\n//#region src/migrate/v8.ts\nfunction eachLayout(layer, callback) {\n\tfor (const k in layer) if (k.indexOf(\"layout\") === 0) callback(layer[k], k);\n}\nfunction eachPaint(layer, callback) {\n\tfor (const k in layer) if (k.indexOf(\"paint\") === 0) callback(layer[k], k);\n}\nfunction resolveConstant(style, value) {\n\tif (typeof value === \"string\" && value[0] === \"@\") return resolveConstant(style, style.constants[value]);\n\telse return value;\n}\nfunction isFunction$1(value) {\n\treturn Array.isArray(value.stops);\n}\nfunction renameProperty(obj, from, to) {\n\tobj[to] = obj[from];\n\tdelete obj[from];\n}\nfunction migrateV8(style) {\n\tstyle.version = 8;\n\teachSource(style, (source) => {\n\t\tif (source.type === \"video\" && source[\"url\"] !== void 0) renameProperty(source, \"url\", \"urls\");\n\t\tif (source.type === \"video\") source.coordinates.forEach((coord) => {\n\t\t\treturn coord.reverse();\n\t\t});\n\t});\n\teachLayer(style, (layer) => {\n\t\teachLayout(layer, (layout) => {\n\t\t\tif (layout[\"symbol-min-distance\"] !== void 0) renameProperty(layout, \"symbol-min-distance\", \"symbol-spacing\");\n\t\t});\n\t\teachPaint(layer, (paint) => {\n\t\t\tif (paint[\"background-image\"] !== void 0) renameProperty(paint, \"background-image\", \"background-pattern\");\n\t\t\tif (paint[\"line-image\"] !== void 0) renameProperty(paint, \"line-image\", \"line-pattern\");\n\t\t\tif (paint[\"fill-image\"] !== void 0) renameProperty(paint, \"fill-image\", \"fill-pattern\");\n\t\t});\n\t});\n\teachProperty(style, {\n\t\tpaint: true,\n\t\tlayout: true\n\t}, (property) => {\n\t\tconst value = resolveConstant(style, property.value);\n\t\tif (isFunction$1(value)) value.stops.forEach((stop) => {\n\t\t\tstop[1] = resolveConstant(style, stop[1]);\n\t\t});\n\t\tproperty.set(value);\n\t});\n\tdelete style[\"constants\"];\n\teachLayer(style, (layer) => {\n\t\teachLayout(layer, (layout) => {\n\t\t\tdelete layout[\"text-max-size\"];\n\t\t\tdelete layout[\"icon-max-size\"];\n\t\t});\n\t\teachPaint(layer, (paint) => {\n\t\t\tif (paint[\"text-size\"]) {\n\t\t\t\tif (!layer.layout) layer.layout = {};\n\t\t\t\tlayer.layout[\"text-size\"] = paint[\"text-size\"];\n\t\t\t\tdelete paint[\"text-size\"];\n\t\t\t}\n\t\t\tif (paint[\"icon-size\"]) {\n\t\t\t\tif (!layer.layout) layer.layout = {};\n\t\t\t\tlayer.layout[\"icon-size\"] = paint[\"icon-size\"];\n\t\t\t\tdelete paint[\"icon-size\"];\n\t\t\t}\n\t\t});\n\t});\n\tfunction migrateFontStack(font) {\n\t\tfunction splitAndTrim(string) {\n\t\t\treturn string.split(\",\").map((s) => {\n\t\t\t\treturn s.trim();\n\t\t\t});\n\t\t}\n\t\tif (Array.isArray(font)) return font;\n\t\telse if (typeof font === \"string\") return splitAndTrim(font);\n\t\telse if (typeof font === \"object\") {\n\t\t\tfont.stops.forEach((stop) => {\n\t\t\t\tstop[1] = splitAndTrim(stop[1]);\n\t\t\t});\n\t\t\treturn font;\n\t\t} else throw new Error(\"unexpected font value\");\n\t}\n\teachLayer(style, (layer) => {\n\t\teachLayout(layer, (layout) => {\n\t\t\tif (layout[\"text-font\"]) layout[\"text-font\"] = migrateFontStack(layout[\"text-font\"]);\n\t\t});\n\t});\n\tlet firstSymbolLayer = 0;\n\tfor (let i = style.layers.length - 1; i >= 0; i--) if (style.layers[i].type !== \"symbol\") {\n\t\tfirstSymbolLayer = i + 1;\n\t\tbreak;\n\t}\n\tconst symbolLayers = style.layers.splice(firstSymbolLayer);\n\tsymbolLayers.reverse();\n\tstyle.layers = style.layers.concat(symbolLayers);\n\treturn style;\n}\n//#endregion\n//#region src/migrate/expressions.ts\n/**\n* Migrate the given style object in place to use expressions. Specifically,\n* this will convert (a) \"stop\" functions, and (b) legacy filters to their\n* expression equivalents.\n* @param style The style object to migrate.\n* @returns The migrated style object.\n*/\nfunction expressions$1(style) {\n\tconst converted = [];\n\teachLayer(style, (layer) => {\n\t\tif (layer.filter) layer.filter = convertFilter(layer.filter);\n\t});\n\teachProperty(style, {\n\t\tpaint: true,\n\t\tlayout: true\n\t}, ({ path, key, value, reference, set }) => {\n\t\tif (isExpression(value) || key.endsWith(\"-transition\") || reference === null) return;\n\t\tif (typeof value === \"object\" && !Array.isArray(value)) {\n\t\t\tset(convertFunction(value, reference));\n\t\t\tconverted.push(path.join(\".\"));\n\t\t} else if (reference.tokens && typeof value === \"string\") set(convertTokenString(value));\n\t});\n\treturn style;\n}\n//#endregion\n//#region src/migrate/migrate_colors.ts\n/**\n* Migrate color style values to supported format.\n*\n* @param colorToMigrate Color value to migrate, could be a string or an expression.\n* @returns Color style value in supported format.\n*/\nfunction migrateColors(colorToMigrate) {\n\treturn JSON.parse(migrateHslColors(JSON.stringify(colorToMigrate)));\n}\n/**\n* Created to migrate from colors supported by the former CSS color parsing\n* library `csscolorparser` but not compliant with the CSS Color specification,\n* like `hsl(900, 0.15, 90%)`.\n*\n* @param colorToMigrate Serialized color style value.\n* @returns A serialized color style value in which all non-standard hsl color values\n* have been converted to a format that complies with the CSS Color specification.\n*\n* @example\n* migrateHslColors('\"hsl(900, 0.15, 90%)\"'); // returns '\"hsl(900, 15%, 90%)\"'\n* migrateHslColors('\"hsla(900, .15, .9)\"'); // returns '\"hsl(900, 15%, 90%)\"'\n* migrateHslColors('\"hsl(900, 15%, 90%)\"'); // returns '\"hsl(900, 15%, 90%)\"' - no changes\n*/\nfunction migrateHslColors(colorToMigrate) {\n\treturn colorToMigrate.replace(/\"hsla?\\((.+?)\\)\"/gi, (match, hslArgs) => {\n\t\tconst argsMatch = hslArgs.match(/^(.+?)\\s*,\\s*(.+?)\\s*,\\s*(.+?)(?:\\s*,\\s*(.+))?$/i);\n\t\tif (argsMatch) {\n\t\t\tlet [h, s, l, a] = argsMatch.slice(1);\n\t\t\t[s, l] = [s, l].map((v) => v.endsWith(\"%\") ? v : `${parseFloat(v) * 100}%`);\n\t\t\treturn `\"hsl${typeof a === \"string\" ? \"a\" : \"\"}(${[\n\t\t\t\th,\n\t\t\t\ts,\n\t\t\t\tl,\n\t\t\t\ta\n\t\t\t].filter(Boolean).join(\",\")})\"`;\n\t\t}\n\t\treturn match;\n\t});\n}\n//#endregion\n//#region src/migrate.ts\n/**\n* Migrate a Mapbox/MapLibre GL Style to the latest version.\n*\n* @param style - a MapLibre Style\n* @returns a migrated style\n* @example\n* const fs = require('fs');\n* const migrate = require('@maplibre/maplibre-gl-style-spec').migrate;\n* const style = fs.readFileSync('./style.json', 'utf8');\n* fs.writeFileSync('./style.json', JSON.stringify(migrate(style)));\n*/\nfunction migrate(style) {\n\tlet migrated = false;\n\tif (style.version === 7) {\n\t\tstyle = migrateV8(style);\n\t\tmigrated = true;\n\t}\n\tif (style.version === 8) {\n\t\tmigrated = !!expressions$1(style);\n\t\tmigrated = true;\n\t}\n\teachProperty(style, {\n\t\tpaint: true,\n\t\tlayout: true\n\t}, ({ value, reference, set }) => {\n\t\tif (reference?.type === \"color\") set(migrateColors(value));\n\t});\n\tif (!migrated) throw new Error(`Cannot migrate from ${style.version}`);\n\treturn style;\n}\n//#endregion\n//#region src/expression/visibility.ts\nconst visibilitySpec = {\n\ttype: \"enum\",\n\t\"property-type\": \"data-constant\",\n\texpression: {\n\t\tinterpolated: false,\n\t\tparameters: [\"global-state\"]\n\t},\n\tvalues: {\n\t\tvisible: {},\n\t\tnone: {}\n\t},\n\ttransition: false,\n\tdefault: \"visible\"\n};\nvar VisibilityExpressionClass = class {\n\tconstructor(visibility, rootKey, globalState) {\n\t\tthis._rootKey = rootKey;\n\t\tthis._globalState = globalState;\n\t\tthis.setValue(visibility);\n\t}\n\tevaluate() {\n\t\treturn this._literalValue ?? this._compiledValue.evaluate({});\n\t}\n\tsetValue(visibility) {\n\t\tif (visibility === null || visibility === void 0 || visibility === \"visible\" || visibility === \"none\") {\n\t\t\tthis._literalValue = visibility === \"none\" ? \"none\" : \"visible\";\n\t\t\tthis._compiledValue = void 0;\n\t\t\tthis._globalStateRefs = /* @__PURE__ */ new Set();\n\t\t\treturn;\n\t\t}\n\t\tconst compiled = createExpression(visibility, this._rootKey, visibilitySpec, this._globalState);\n\t\tif (compiled.result === \"error\") {\n\t\t\tthis._literalValue = \"visible\";\n\t\t\tthis._compiledValue = void 0;\n\t\t\tthrow new Error(compiled.value.map((err) => `${err.key}: ${err.message}`).join(\", \"));\n\t\t}\n\t\tthis._literalValue = void 0;\n\t\tthis._compiledValue = compiled.value;\n\t\tthis._globalStateRefs = findGlobalStateRefs(compiled.value.expression);\n\t}\n\tgetGlobalStateRefs() {\n\t\treturn this._globalStateRefs;\n\t}\n};\n/**\n* Creates a visibility expression from a visibility specification.\n* @param visibility - the visibility specification, literal or expression\n* @param rootKey - location of the visibility value in the style JSON\n* (e.g. `layers[3].layout.visibility`), used to prefix runtime warnings\n* @param globalState - the global state object\n* @returns visibility expression object\n*/\nfunction createVisibility(visibility, rootKey, globalState) {\n\treturn new VisibilityExpressionClass(visibility, rootKey, globalState);\n}\n//#endregion\n//#region src/index.ts\nconst expression = {\n\tStyleExpression,\n\tStylePropertyFunction,\n\tZoomConstantExpression,\n\tZoomDependentExpression,\n\tcreateExpression,\n\tcreatePropertyExpression,\n\tisExpression,\n\tisExpressionFilter,\n\tisZoomExpression,\n\tnormalizePropertyExpression\n};\nconst styleFunction = {\n\tconvertFunction,\n\tcreateFunction,\n\tisFunction\n};\nconst visit = {\n\teachLayer,\n\teachProperty,\n\teachSource\n};\n//#endregion\nexport { Color, ColorArray, ColorType, CompoundExpression, EvaluationContext, FormatExpression, Formatted, FormattedSection, FormattedType, Interpolate, Literal, NullType, NumberArray, Padding, ParsingError, ProjectionDefinition, ProjectionDefinitionType, ResolvedImage, Step, StyleExpression, StylePropertyFunction, ValidationError, VariableAnchorOffsetCollection, ZoomConstantExpression, ZoomDependentExpression, classifyRings, convertFilter, convertFunction, createExpression, createFunction, createPropertyExpression, createVisibility as createVisibilityExpression, derefLayers, diff, emptyStyle, expression, expressions, featureFilter, format, styleFunction as function, groupByLayout, interpolateFactory as interpolates, isExpression, isFunction, isZoomExpression, latest, latest as v8, migrate, normalizePropertyExpression, supportsPropertyExpression, typeToString as toString, typeOf, validate, validateStyleMin, visit };\n\n//# sourceMappingURL=index.mjs.map",null,null,null,null,null,"/**\n * A standalone point geometry with useful accessor, comparison, and\n * modification methods.\n *\n * @class\n * @param {number} x the x-coordinate. This could be longitude or screen pixels, or any other sort of unit.\n * @param {number} y the y-coordinate. This could be latitude or screen pixels, or any other sort of unit.\n *\n * @example\n * const point = new Point(-77, 38);\n */\nexport default function Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n /**\n * Clone this point, returning a new point that can be modified\n * without affecting the old one.\n * @return {Point} the clone\n */\n clone() { return new Point(this.x, this.y); },\n\n /**\n * Add this point's x & y coordinates to another point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n add(p) { return this.clone()._add(p); },\n\n /**\n * Subtract this point's x & y coordinates to from point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n sub(p) { return this.clone()._sub(p); },\n\n /**\n * Multiply this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n multByPoint(p) { return this.clone()._multByPoint(p); },\n\n /**\n * Divide this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n divByPoint(p) { return this.clone()._divByPoint(p); },\n\n /**\n * Multiply this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {number} k factor\n * @return {Point} output point\n */\n mult(k) { return this.clone()._mult(k); },\n\n /**\n * Divide this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {number} k factor\n * @return {Point} output point\n */\n div(k) { return this.clone()._div(k); },\n\n /**\n * Rotate this point around the 0, 0 origin by an angle a,\n * given in radians\n * @param {number} a angle to rotate around, in radians\n * @return {Point} output point\n */\n rotate(a) { return this.clone()._rotate(a); },\n\n /**\n * Rotate this point around p point by an angle a,\n * given in radians\n * @param {number} a angle to rotate around, in radians\n * @param {Point} p Point to rotate around\n * @return {Point} output point\n */\n rotateAround(a, p) { return this.clone()._rotateAround(a, p); },\n\n /**\n * Multiply this point by a 4x1 transformation matrix\n * @param {[number, number, number, number]} m transformation matrix\n * @return {Point} output point\n */\n matMult(m) { return this.clone()._matMult(m); },\n\n /**\n * Calculate this point but as a unit vector from 0, 0, meaning\n * that the distance from the resulting point to the 0, 0\n * coordinate will be equal to 1 and the angle from the resulting\n * point to the 0, 0 coordinate will be the same as before.\n * @return {Point} unit vector point\n */\n unit() { return this.clone()._unit(); },\n\n /**\n * Compute a perpendicular point, where the new y coordinate\n * is the old x coordinate and the new x coordinate is the old y\n * coordinate multiplied by -1\n * @return {Point} perpendicular point\n */\n perp() { return this.clone()._perp(); },\n\n /**\n * Return a version of this point with the x & y coordinates\n * rounded to integers.\n * @return {Point} rounded point\n */\n round() { return this.clone()._round(); },\n\n /**\n * Return the magnitude of this point: this is the Euclidean\n * distance from the 0, 0 coordinate to this point's x and y\n * coordinates.\n * @return {number} magnitude\n */\n mag() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * Judge whether this point is equal to another point, returning\n * true or false.\n * @param {Point} other the other point\n * @return {boolean} whether the points are equal\n */\n equals(other) {\n return this.x === other.x &&\n this.y === other.y;\n },\n\n /**\n * Calculate the distance from this point to another point\n * @param {Point} p the other point\n * @return {number} distance\n */\n dist(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n /**\n * Calculate the distance from this point to another point,\n * without the square root step. Useful if you're comparing\n * relative distances.\n * @param {Point} p the other point\n * @return {number} distance\n */\n distSqr(p) {\n const dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * Get the angle from the 0, 0 coordinate to this point, in radians\n * coordinates.\n * @return {number} angle\n */\n angle() {\n return Math.atan2(this.y, this.x);\n },\n\n /**\n * Get the angle from this point to another point, in radians\n * @param {Point} b the other point\n * @return {number} angle\n */\n angleTo(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n /**\n * Get the angle between this point and another point, in radians\n * @param {Point} b the other point\n * @return {number} angle\n */\n angleWith(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n /**\n * Find the angle of the two vectors, solving the formula for\n * the cross product a x b = |a||b|sin(θ) for θ.\n * @param {number} x the x-coordinate\n * @param {number} y the y-coordinate\n * @return {number} the angle in radians\n */\n angleWithSep(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n /** @param {[number, number, number, number]} m */\n _matMult(m) {\n const x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n /** @param {Point} p */\n _add(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n /** @param {Point} p */\n _sub(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n /** @param {number} k */\n _mult(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n /** @param {number} k */\n _div(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n /** @param {Point} p */\n _multByPoint(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n\n /** @param {Point} p */\n _divByPoint(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n\n _unit() {\n this._div(this.mag());\n return this;\n },\n\n _perp() {\n const y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n /** @param {number} angle */\n _rotate(angle) {\n const cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n /**\n * @param {number} angle\n * @param {Point} p\n */\n _rotateAround(angle, p) {\n const cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y),\n y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n\n _round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n },\n\n constructor: Point\n};\n\n/**\n * Construct a point from an array if necessary, otherwise if the input\n * is already a Point, return it unchanged.\n * @param {Point | [number, number] | {x: number, y: number}} p input value\n * @return {Point} constructed point.\n * @example\n * // this\n * var point = Point.convert([0, 1]);\n * // is equivalent to\n * var point = new Point(0, 1);\n */\nPoint.convert = function (p) {\n if (p instanceof Point) {\n return /** @type {Point} */ (p);\n }\n if (Array.isArray(p)) {\n return new Point(+p[0], +p[1]);\n }\n if (p.x !== undefined && p.y !== undefined) {\n return new Point(+p.x, +p.y);\n }\n throw new Error('Expected [x, y] or {x, y} point format');\n};\n","\nimport Point from '@mapbox/point-geometry';\n\n/** @import {PbfReader} from 'pbf' */\n/** @import {Feature} from 'geojson' */\n\nexport class VectorTileFeature {\n /**\n * @param {PbfReader} pbf\n * @param {number} end\n * @param {number} extent\n * @param {string[]} keys\n * @param {(number | string | boolean)[]} values\n */\n constructor(pbf, end, extent, keys, values) {\n // Public\n\n /** @type {Record<string, number | string | boolean>} */\n this.properties = Object.create(null);\n\n this.extent = extent;\n /** @type {0 | 1 | 2 | 3} */\n this.type = 0;\n\n /** @type {number | undefined} */\n this.id = undefined;\n\n /** @private */\n this._pbf = pbf;\n /** @private */\n this._geometry = -1;\n /** @private */\n this._keys = keys;\n /** @private */\n this._values = values;\n\n while (pbf.pos < end) {\n const tag = pbf.readVarint();\n if (tag === 8) this.id = pbf.readVarint();\n else if (tag === 18) {\n const tagsEnd = pbf.readVarint() + pbf.pos;\n while (pbf.pos < tagsEnd) {\n const key = keys[pbf.readVarint()];\n const value = values[pbf.readVarint()];\n this.properties[key] = value;\n }\n } else if (tag === 24) this.type = /** @type {0 | 1 | 2 | 3} */ (pbf.readVarint());\n else if (tag === 34) {\n this._geometry = pbf.pos;\n pbf.skip(tag);\n } else pbf.skip(tag);\n }\n }\n\n loadGeometry() {\n if (this._geometry < 0) throw new Error('feature has no geometry');\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n\n /** @type Point[][] */\n const lines = [];\n\n /** @type Point[] | undefined */\n let line;\n\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n if (length === 0) continue;\n }\n\n length--;\n\n if (cmd === 1) { // moveTo\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (line) lines.push(line);\n line = [new Point(x, y)];\n\n } else if (cmd === 2) { // lineTo\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (line) line.push(new Point(x, y));\n\n } else if (cmd === 7) {\n\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].clone()); // closePolygon\n }\n\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n }\n\n bbox() {\n if (this._geometry < 0) throw new Error('feature has no geometry');\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1,\n length = 0,\n x = 0,\n y = 0,\n x1 = Infinity,\n x2 = -Infinity,\n y1 = Infinity,\n y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n if (length === 0) continue;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n\n } else if (cmd !== 7) {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return [x1, y1, x2, y2];\n }\n\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} z\n * @return {Feature}\n */\n toGeoJSON(x, y, z) {\n const size = this.extent * Math.pow(2, z),\n x0 = this.extent * x,\n y0 = this.extent * y,\n vtCoords = this.loadGeometry();\n\n /** @param {Point} p */\n function projectPoint(p) {\n return [\n (p.x + x0) * 360 / size - 180,\n 360 / Math.PI * Math.atan(Math.exp((1 - (p.y + y0) * 2 / size) * Math.PI)) - 90\n ];\n }\n\n /** @param {Point[]} line */\n function projectLine(line) {\n return line.map(projectPoint);\n }\n\n /** @type {Feature[\"geometry\"]} */\n let geometry;\n\n if (this.type === 1) {\n const points = [];\n for (const line of vtCoords) {\n points.push(line[0]);\n }\n const coordinates = projectLine(points);\n geometry = points.length === 1 ?\n {type: 'Point', coordinates: coordinates[0]} :\n {type: 'MultiPoint', coordinates};\n\n } else if (this.type === 2) {\n\n const coordinates = vtCoords.map(projectLine);\n geometry = coordinates.length === 1 ?\n {type: 'LineString', coordinates: coordinates[0]} :\n {type: 'MultiLineString', coordinates};\n\n } else if (this.type === 3) {\n const polygons = classifyRings(vtCoords);\n const coordinates = [];\n for (const polygon of polygons) {\n coordinates.push(polygon.map(projectLine));\n }\n geometry = coordinates.length === 1 ?\n {type: 'Polygon', coordinates: coordinates[0]} :\n {type: 'MultiPolygon', coordinates};\n } else {\n\n throw new Error('unknown feature type');\n }\n\n /** @type {Feature} */\n const result = {\n type: 'Feature',\n geometry,\n properties: this.properties\n };\n\n if (this.id != null) {\n result.id = this.id;\n }\n\n return result;\n }\n}\n\n/** @type {['Unknown', 'Point', 'LineString', 'Polygon']} */\nVectorTileFeature.types = ['Unknown', 'Point', 'LineString', 'Polygon'];\n\n/** classifies an array of rings into polygons with outer rings and holes\n * @param {Point[][]} rings\n */\nexport function classifyRings(rings) {\n const len = rings.length;\n\n if (len <= 1) return [rings];\n\n const polygons = [];\n let polygon, ccw;\n\n for (let i = 0; i < len; i++) {\n const area = signedArea(rings[i]);\n if (area === 0) continue;\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) polygons.push(polygon);\n polygon = [rings[i]];\n\n } else if (polygon) {\n polygon.push(rings[i]);\n }\n }\n if (polygon) polygons.push(polygon);\n\n return polygons;\n}\n\n/** @param {Point[]} ring */\nfunction signedArea(ring) {\n let sum = 0;\n for (let i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n}\n\nexport class VectorTileLayer {\n /**\n * @param {PbfReader} pbf\n * @param {number} [end]\n */\n constructor(pbf, end) {\n // Public\n this.version = 1;\n this.name = '';\n this.extent = 4096;\n this.length = 0;\n\n /** @private */\n this._pbf = pbf;\n\n /** @private\n * @type {string[]} */\n this._keys = [];\n\n /** @private\n * @type {(number | string | boolean)[]} */\n this._values = [];\n\n /** @private\n * @type {number[]} */\n this._features = [];\n\n if (end === undefined) end = pbf.length;\n while (pbf.pos < end) {\n const tag = pbf.readVarint();\n if (tag === 10) this.name = pbf.readString();\n else if (tag === 18) {\n this._features.push(pbf.pos);\n pbf.skip(tag);\n } else if (tag === 26) this._keys.push(pbf.readString());\n else if (tag === 34) this._values.push(readValueMessage(pbf));\n else if (tag === 40) this.extent = pbf.readVarint();\n else if (tag === 120) this.version = pbf.readVarint();\n else pbf.skip(tag);\n }\n\n this.length = this._features.length;\n }\n\n /** return feature `i` from this layer as a `VectorTileFeature`\n * @param {number} i\n */\n feature(i) {\n if (i < 0 || i >= this._features.length) throw new Error('feature index out of bounds');\n\n this._pbf.pos = this._features[i];\n\n const end = this._pbf.readVarint() + this._pbf.pos;\n return new VectorTileFeature(this._pbf, end, this.extent, this._keys, this._values);\n }\n}\n\n/**\n * @param {PbfReader} pbf\n */\nfunction readValueMessage(pbf) {\n let value = null;\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const tag = pbf.readVarint();\n value =\n tag === 10 ? pbf.readString() :\n tag === 21 ? pbf.readFloat() :\n tag === 25 ? pbf.readDouble() :\n tag === 32 ? pbf.readVarint(true) :\n tag === 40 ? pbf.readVarint() :\n tag === 48 ? pbf.readSVarint() :\n tag === 56 ? pbf.readBoolean() :\n (pbf.skip(tag), null);\n }\n if (value == null) {\n throw new Error('unknown feature value');\n }\n\n return value;\n}\n\nexport class VectorTile {\n /**\n * @param {PbfReader} pbf\n * @param {number} [end]\n */\n constructor(pbf, end = pbf.length) {\n /** @type {Record<string, VectorTileLayer>} */\n const layers = Object.create(null);\n while (pbf.pos < end) {\n const tag = pbf.readVarint();\n if (tag === 26) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length) layers[layer.name] = layer;\n } else pbf.skip(tag);\n }\n this.layers = layers;\n }\n}\n","\nconst SHIFT_LEFT_32 = (1 << 16) * (1 << 16);\nconst SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\n// Threshold chosen based on both benchmarking and knowledge about browser string\n// data structures (which currently switch structure types at 12 bytes or more)\nconst TEXT_DECODER_MIN_LENGTH = 12;\nconst utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');\n\nconst PBF_VARINT = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nconst PBF_FIXED64 = 1; // 64-bit: double, fixed64, sfixed64\nconst PBF_BYTES = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nconst PBF_FIXED32 = 5; // 32-bit: float, fixed32, sfixed32\n\nexport class PbfReader {\n /**\n * @param {Uint8Array | ArrayBuffer} buf\n */\n constructor(buf) {\n this.buf = ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf);\n this.dataView = new DataView(this.buf.buffer, this.buf.byteOffset, this.buf.byteLength);\n this.pos = 0;\n this.type = 0;\n this._valueStart = -1;\n this.length = this.buf.length;\n }\n\n /**\n * @template T\n * @param {(tag: number, result: T, pbf: PbfReader) => void} readField\n * @param {T} result\n * @param {number} [end]\n */\n readFields(readField, result, end = this.length) {\n let field;\n while ((field = this.nextField(end))) {\n readField(field, result, this);\n }\n return result;\n }\n\n /**\n * @template T\n * @param {(tag: number, result: T, pbf: PbfReader) => void} readField\n * @param {T} result\n */\n readMessage(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n }\n\n readFixed32() {\n const val = this.dataView.getUint32(this.pos, true);\n this.pos += 4;\n return val;\n }\n\n readSFixed32() {\n const val = this.dataView.getInt32(this.pos, true);\n this.pos += 4;\n return val;\n }\n\n // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n readFixed64() {\n const val = this.dataView.getUint32(this.pos, true) + this.dataView.getUint32(this.pos + 4, true) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n }\n\n readSFixed64() {\n const val = this.dataView.getUint32(this.pos, true) + this.dataView.getInt32(this.pos + 4, true) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n }\n\n readFloat() {\n const val = this.dataView.getFloat32(this.pos, true);\n this.pos += 4;\n return val;\n }\n\n readDouble() {\n const val = this.dataView.getFloat64(this.pos, true);\n this.pos += 8;\n return val;\n }\n\n /**\n * @param {boolean} [isSigned]\n */\n readVarint(isSigned) {\n const buf = this.buf;\n const b0 = buf[this.pos++];\n if (b0 < 0x80) return b0;\n\n let val = b0 & 0x7f, b;\n b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n b = buf[this.pos]; val |= (b & 0x0f) << 28;\n\n return readVarintRemainder(val, isSigned, this);\n }\n\n readSVarint() {\n const num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n }\n\n readBoolean() {\n return Boolean(this.readVarint());\n }\n\n readString() {\n const end = this.readVarint() + this.pos;\n const pos = this.pos;\n this.pos = end;\n\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n // longer strings are fast with the built-in browser TextDecoder API\n return utf8TextDecoder.decode(this.buf.subarray(pos, end));\n }\n // short strings are fast with our custom implementation\n return readUtf8(this.buf, pos, end);\n }\n\n readBytes() {\n const end = this.readVarint() + this.pos,\n buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n }\n\n // verbose for performance reasons; doesn't affect gzipped size\n\n /**\n * @param {number[]} [arr]\n * @param {boolean} [isSigned]\n */\n readPackedVarint(arr = [], isSigned) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readVarint(isSigned));\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedSVarint(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readSVarint());\n return arr;\n }\n /** @param {boolean[]} [arr] */\n readPackedBoolean(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readBoolean());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedFloat(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readFloat());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedDouble(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readDouble());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedFixed32(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readFixed32());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedSFixed32(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readSFixed32());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedFixed64(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readFixed64());\n return arr;\n }\n /** @param {number[]} [arr] */\n readPackedSFixed64(arr = []) {\n const end = this.readPackedEnd();\n while (this.pos < end) arr.push(this.readSFixed64());\n return arr;\n }\n readPackedEnd() {\n return this.type === PBF_BYTES ? this.readVarint() + this.pos : this.pos + 1;\n }\n\n /**\n * Advance to the next field. Returns the field number, or 0 at end-of-message.\n * @param {number} [end]\n */\n nextField(end = this.length) {\n if (this.pos === this._valueStart) this.skip(this.type);\n if (this.pos >= end) return 0;\n const tag = this.readVarint();\n this.type = tag & 0x7;\n this._valueStart = this.pos;\n return tag >>> 3;\n }\n\n /** @param {number} val */\n skip(val) {\n const type = val & 0x7;\n if (type === PBF_VARINT) while (this.buf[this.pos++] > 0x7f) {}\n else if (type === PBF_BYTES) this.pos = this.readVarint() + this.pos;\n else if (type === PBF_FIXED32) this.pos += 4;\n else if (type === PBF_FIXED64) this.pos += 8;\n else throw new Error(`Unimplemented type: ${type}`);\n }\n}\n\nexport class PbfWriter {\n /**\n * @param {Uint8Array | ArrayBuffer} [buf]\n */\n constructor(buf = new Uint8Array(16)) {\n this.buf = ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf);\n this.dataView = new DataView(this.buf.buffer, this.buf.byteOffset, this.buf.byteLength);\n this.pos = 0;\n this.length = this.buf.length;\n }\n\n /**\n * @param {number} tag\n * @param {number} type\n */\n writeTag(tag, type) {\n this.writeVarint((tag << 3) | type);\n }\n\n /** @param {number} min */\n realloc(min) {\n let length = this.length || 16;\n\n while (length < this.pos + min) length *= 2;\n\n if (length !== this.length) {\n const buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.dataView = new DataView(buf.buffer);\n this.length = length;\n }\n }\n\n finish() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n }\n\n /** @param {number} val */\n writeFixed32(val) {\n this.realloc(4);\n this.dataView.setInt32(this.pos, val, true);\n this.pos += 4;\n }\n\n /** @param {number} val */\n writeSFixed32(val) {\n this.realloc(4);\n this.dataView.setInt32(this.pos, val, true);\n this.pos += 4;\n }\n\n /** @param {number} val */\n writeFixed64(val) {\n this.realloc(8);\n this.dataView.setInt32(this.pos, val & -1, true);\n this.dataView.setInt32(this.pos + 4, Math.floor(val * SHIFT_RIGHT_32), true);\n this.pos += 8;\n }\n\n /** @param {number} val */\n writeSFixed64(val) {\n this.realloc(8);\n this.dataView.setInt32(this.pos, val & -1, true);\n this.dataView.setInt32(this.pos + 4, Math.floor(val * SHIFT_RIGHT_32), true);\n this.pos += 8;\n }\n\n /** @param {number} val */\n writeVarint(val) {\n val = +val || 0;\n\n if (val >= 0 && val < 0x80) {\n if (this.pos >= this.length) this.realloc(1);\n this.buf[this.pos++] = val;\n return;\n }\n\n if (val > 0xfffffff || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n\n this.realloc(4);\n\n this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = (val >>> 7) & 0x7f;\n }\n\n /** @param {number} val */\n writeSVarint(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n }\n\n /** @param {boolean} val */\n writeBoolean(val) {\n this.writeVarint(+val);\n }\n\n /** @param {string} str */\n writeString(str) {\n str = String(str);\n this.realloc(str.length * 4);\n\n this.pos++; // reserve 1 byte for short string length\n\n const startPos = this.pos;\n // write the string directly to the buffer and see how much was written\n this.pos = writeUtf8(this.buf, str, this.pos);\n const len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n }\n\n /** @param {number} val */\n writeFloat(val) {\n this.realloc(4);\n this.dataView.setFloat32(this.pos, val, true);\n this.pos += 4;\n }\n\n /** @param {number} val */\n writeDouble(val) {\n this.realloc(8);\n this.dataView.setFloat64(this.pos, val, true);\n this.pos += 8;\n }\n\n /** @param {Uint8Array} buffer */\n writeBytes(buffer) {\n const len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n this.buf.set(buffer, this.pos);\n this.pos += len;\n }\n\n /**\n * @template T\n * @param {(obj: T, pbf: PbfWriter) => void} fn\n * @param {T} obj\n */\n writeRawMessage(fn, obj) {\n this.pos++; // reserve 1 byte for short message length\n\n // write the message directly to the buffer and see how much was written\n const startPos = this.pos;\n fn(obj, this);\n const len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n }\n\n /**\n * @template T\n * @param {number} tag\n * @param {(obj: T, pbf: PbfWriter) => void} fn\n * @param {T} obj\n */\n writeMessage(tag, fn, obj) {\n this.writeTag(tag, PBF_BYTES);\n this.writeRawMessage(fn, obj);\n }\n\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedVarint(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedVarint, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedSVarint(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedSVarint, arr);\n }\n /**\n * @param {number} tag\n * @param {boolean[]} arr\n */\n writePackedBoolean(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedBoolean, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedFloat(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedFloat, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedDouble(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedDouble, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedFixed32(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedFixed32, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedSFixed32(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedSFixed32, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedFixed64(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedFixed64, arr);\n }\n /**\n * @param {number} tag\n * @param {number[]} arr\n */\n writePackedSFixed64(tag, arr) {\n if (arr.length) this.writeMessage(tag, writePackedSFixed64, arr);\n }\n\n /**\n * @param {number} tag\n * @param {Uint8Array} buffer\n */\n writeBytesField(tag, buffer) {\n this.writeTag(tag, PBF_BYTES);\n this.writeBytes(buffer);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeFixed32Field(tag, val) {\n this.writeTag(tag, PBF_FIXED32);\n this.writeFixed32(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeSFixed32Field(tag, val) {\n this.writeTag(tag, PBF_FIXED32);\n this.writeSFixed32(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeFixed64Field(tag, val) {\n this.writeTag(tag, PBF_FIXED64);\n this.writeFixed64(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeSFixed64Field(tag, val) {\n this.writeTag(tag, PBF_FIXED64);\n this.writeSFixed64(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeVarintField(tag, val) {\n this.writeTag(tag, PBF_VARINT);\n this.writeVarint(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeSVarintField(tag, val) {\n this.writeTag(tag, PBF_VARINT);\n this.writeSVarint(val);\n }\n /**\n * @param {number} tag\n * @param {string} str\n */\n writeStringField(tag, str) {\n this.writeTag(tag, PBF_BYTES);\n this.writeString(str);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeFloatField(tag, val) {\n this.writeTag(tag, PBF_FIXED32);\n this.writeFloat(val);\n }\n /**\n * @param {number} tag\n * @param {number} val\n */\n writeDoubleField(tag, val) {\n this.writeTag(tag, PBF_FIXED64);\n this.writeDouble(val);\n }\n /**\n * @param {number} tag\n * @param {boolean} val\n */\n writeBooleanField(tag, val) {\n this.writeVarintField(tag, +val);\n }\n}\n\n/**\n * @param {number} l\n * @param {boolean | undefined} s\n * @param {PbfReader} p\n */\nfunction readVarintRemainder(l, s, p) {\n const buf = p.buf;\n let h, b;\n\n b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n throw new Error('Expected varint not more than 10 bytes');\n}\n\n/**\n * @param {number} low\n * @param {number} high\n * @param {boolean} [isSigned]\n */\nfunction toNum(low, high, isSigned) {\n return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\n/**\n * @param {number} val\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarint(val, pbf) {\n let low, high;\n\n if (val >= 0) {\n low = (val % 0x100000000) | 0;\n high = (val / 0x100000000) | 0;\n } else {\n low = ~(-val % 0x100000000);\n high = ~(-val / 0x100000000);\n\n if (low ^ 0xffffffff) {\n low = (low + 1) | 0;\n } else {\n low = 0;\n high = (high + 1) | 0;\n }\n }\n\n if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n throw new Error('Given varint doesn\\'t fit into 10 bytes');\n }\n\n pbf.realloc(10);\n\n writeBigVarintLow(low, high, pbf);\n writeBigVarintHigh(high, pbf);\n}\n\n/**\n * @param {number} high\n * @param {number} low\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarintLow(low, high, pbf) {\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos] = low & 0x7f;\n}\n\n/**\n * @param {number} high\n * @param {PbfWriter} pbf\n */\nfunction writeBigVarintHigh(high, pbf) {\n const lsb = (high & 0x07) << 4;\n\n pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f;\n}\n\n/**\n * @param {number} startPos\n * @param {number} len\n * @param {PbfWriter} pbf\n */\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n const extraLen =\n len <= 0x3fff ? 1 :\n len <= 0x1fffff ? 2 :\n len <= 0xfffffff ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n\n // if 1 byte isn't enough for encoding message length, shift the data to the right\n pbf.realloc(extraLen);\n pbf.buf.copyWithin(startPos + extraLen, startPos, pbf.pos);\n}\n\n/**\n * Packed varints often dominate encode time, so write the bytes inline\n * through a local buffer pointer rather than calling writeVarint per element,\n * falling back to writeVarint only for negatives or near the buffer's end.\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedVarint(arr, pbf) {\n const n = arr.length;\n let buf = pbf.buf, pos = pbf.pos, limit = pbf.length;\n for (let i = 0; i < n; i++) {\n let val = arr[i];\n if (val < 0 || pos + 10 > limit) { // slow path: grows the buffer, handles 10-byte values\n pbf.pos = pos;\n pbf.writeVarint(val);\n buf = pbf.buf; pos = pbf.pos; limit = pbf.length;\n continue;\n }\n while (val > 0x7f) { buf[pos++] = (val % 0x80) | 0x80; val = Math.floor(val / 0x80); }\n buf[pos++] = val;\n }\n pbf.pos = pos;\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSVarint(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFloat(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedDouble(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]);\n}\n/**\n * @param {boolean[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedBoolean(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFixed32(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSFixed32(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedFixed64(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]);\n}\n/**\n * @param {number[]} arr\n * @param {PbfWriter} pbf\n */\nfunction writePackedSFixed64(arr, pbf) {\n for (let i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]);\n}\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\n/**\n * @param {Uint8Array} buf\n * @param {number} pos\n * @param {number} end\n */\nfunction readUtf8(buf, pos, end) {\n let str = '';\n let i = pos;\n\n while (i < end) {\n const b0 = buf[i];\n let c = null; // codepoint\n let bytesPerSequence =\n b0 > 0xEF ? 4 :\n b0 > 0xDF ? 3 :\n b0 > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence > end) break;\n\n let b1, b2, b3;\n\n if (bytesPerSequence === 1) {\n if (b0 < 0x80) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 0xC0) === 0x80) {\n c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n if (c <= 0x7F) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n if (c <= 0xFFFF || c >= 0x110000) {\n c = null;\n }\n }\n }\n\n if (c === null) {\n c = 0xFFFD;\n bytesPerSequence = 1;\n\n } else if (c > 0xFFFF) {\n c -= 0x10000;\n str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n c = 0xDC00 | c & 0x3FF;\n }\n\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n\n return str;\n}\n\n/**\n * @param {Uint8Array} buf\n * @param {string} str\n * @param {number} pos\n */\nfunction writeUtf8(buf, str, pos) {\n for (let i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i); // code point\n\n if (c > 0xD7FF && c < 0xE000) {\n if (lead) {\n if (c < 0xDC00) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = c;\n continue;\n } else {\n c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n lead = null;\n }\n } else {\n if (c > 0xDBFF || (i + 1 === str.length)) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = null;\n }\n\n if (c < 0x80) {\n buf[pos++] = c;\n } else {\n if (c < 0x800) {\n buf[pos++] = c >> 0x6 | 0xC0;\n } else {\n if (c < 0x10000) {\n buf[pos++] = c >> 0xC | 0xE0;\n } else {\n buf[pos++] = c >> 0x12 | 0xF0;\n buf[pos++] = c >> 0xC & 0x3F | 0x80;\n }\n buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n }\n buf[pos++] = c & 0x3F | 0x80;\n }\n }\n return pos;\n}\n",null,null,null,null,null,null,null,null],"names":["Color","classifyRings","MaplibreColor"],"mappings":"AAAA;AACA,IAAI,UAAU,GAAG;AACjB,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,KAAK,EAAE;AACR,EAAE,SAAS,EAAE;AACb,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,CAAC,CAAC;AACf,GAAG;AACH,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9B,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AAC7B,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE;AACb,GAAG;AACH,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACxC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9B,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,QAAQ,EAAE,GAAG;AAChB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9B,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1B,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;AACxC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;AAClC,EAAE,SAAS,EAAE;AACb,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACvC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;AACxC,EAAE,QAAQ,EAAE;AACZ,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ;AACA,EAAE;AACF,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;AACvC,CAAC,MAAM,EAAE;AACT,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,mBAAmB;AACrB,EAAE,gBAAgB;AAClB,EAAE,cAAc;AAChB,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE;AAC3B,GAAG;AACH,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7B,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE;AACd,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,GAAG;AACP,IAAI;AACJ;AACA,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE;AACX,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACtC,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE;AACX,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG;AACpB,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE;AAC3B,GAAG;AACH,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7B,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE;AACd,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,GAAG;AACP,IAAI;AACJ;AACA,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE;AACX,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrC,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG;AACpB,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE;AAC/B,GAAG;AACH,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7B,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE;AACd,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,GAAG;AACP,IAAI;AACJ;AACA,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrC,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG;AACpB,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE;AAC5B,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrC,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACxC,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC1C,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACtC,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW;AACpC,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE;AAC1B,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,OAAO,EAAE;AACb;AACA;AACA,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,MAAM,EAAE;AACV,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE;AAC1B,GAAG;AACH,EAAE,KAAK,EAAE;AACT,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,OAAO,EAAE;AACb;AACA;AACA,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,IAAI,EAAE;AACR,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,UAAU,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,gBAAgB,EAAE,EAAE;AACxB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,cAAc,EAAE,EAAE;AACtB,IAAI,YAAY,EAAE;AAClB,IAAI;AACJ,GAAG,UAAU,EAAE;AACf,GAAG;AACH,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AAC7B,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AACtC,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO;AAC5B,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,aAAa;AACf,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,gBAAgB;AAClB,EAAE,uBAAuB;AACzB,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,kBAAkB;AACpB,EAAE,qBAAqB;AACvB,EAAE;AACF,EAAE;AACF,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE;AACpC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,WAAW,EAAE;AACd,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,cAAc;AACjC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,cAAc;AACjC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE;AACjC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE;AAC1C,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,WAAW,EAAE;AACd,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,OAAO,EAAE;AACb,IAAI;AACJ,GAAG,SAAS,EAAE,OAAO;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACzC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,IAAI;AAClB,GAAG,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACzC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,cAAc;AACjC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,aAAa,EAAE;AACnB,IAAI;AACJ,GAAG,SAAS,EAAE,OAAO;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;AAC/C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AACtD,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,aAAa,EAAE;AACnB,IAAI;AACJ,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC3C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,kCAAkC;AAC9C,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC3C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE;AACd,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI;AACJ,IAAI;AACJ,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE;AACf,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,EAAE,eAAe,EAAE;AACvB,KAAK,MAAM;AACX,KAAK,OAAO;AACZ,KAAK;AACL,KAAK;AACL,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,eAAe;AAC1B,GAAG,QAAQ,EAAE,IAAI;AACjB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,QAAQ,EAAE,GAAG;AAChB,GAAG,OAAO,EAAE,SAAS;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;AACjB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE;AACf,IAAI,YAAY;AAChB,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE;AACxC,IAAI,EAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;AACjD,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,cAAc,EAAE;AACpB,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,gBAAgB,EAAE,EAAE;AACxB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,WAAW;AACtB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,QAAQ,EAAE,IAAI;AACjB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,SAAS,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;AAC/D,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,qBAAqB,EAAE;AACzB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,OAAO,EAAE;AACb,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,eAAe,EAAE,aAAa;AACjC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC;AACA,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,MAAM;AAClB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,cAAc,EAAE;AACpB,IAAI;AACJ,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAChE,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,6BAA6B,EAAE;AACjC,GAAG,MAAM,EAAE,gCAAgC;AAC3C,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAChE,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,cAAc,EAAE;AACpB,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC;AAC9D,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,OAAO,EAAE,SAAS;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;AAC9E,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,MAAM;AAClB,GAAG,QAAQ,EAAE;AACb,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAChE,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,QAAQ,EAAE,GAAG;AAChB,GAAG,OAAO,EAAE,SAAS;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,IAAI;AAClB,GAAG,UAAU,EAAE;AACf,IAAI,YAAY;AAChB,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE;AACxC,IAAI,EAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;AACjD,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,WAAW,EAAE;AACjB,IAAI;AACJ,GAAG,SAAS,EAAE,MAAM;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC;AAC5D,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AACtD,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,aAAa,EAAE;AACnB,IAAI;AACJ,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC3C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,cAAc;AACjC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE;AAChC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE;AACnC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE;AACxC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,cAAc;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE,EAAE;AACJ,CAAC,MAAM,EAAE;AACT,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,KAAK;AACxB,GAAG,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACnC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,GAAG,EAAE,EAAE;AACV,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,GAAG,EAAE,EAAE;AACV,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,MAAM,EAAE;AACX;AACA,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,YAAY,EAAE,EAAE;AACnB,GAAG,SAAS,EAAE;AACd;AACA,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;AACxC,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,aAAa,EAAE;AACnB,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE;AACX,IAAI;AACJ,GAAG,SAAS,EAAE;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,UAAU,EAAE;AACf;AACA,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9B,EAAE,QAAQ,EAAE;AACZ,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,OAAO,EAAE,iBAAiB;AAC5B,EAAE,SAAS,EAAE;AACb,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,SAAS,EAAE,UAAU;AACxB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB;AACA,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE;AACd,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI;AACJ,IAAI;AACJ,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB;AACA,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB;AACA,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,eAAe,EAAE,eAAe;AACnC,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB;AACA,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,UAAU,EAAE;AACf,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE;AACd;AACA,EAAE;AACF,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE;AACvB,EAAE,MAAM,EAAE,sBAAsB;AAChC,EAAE,SAAS,EAAE,UAAU;AACvB,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,YAAY,EAAE;AAChB,GAAG,cAAc,EAAE,IAAI;AACvB,GAAG,YAAY,EAAE,CAAC,MAAM;AACxB;AACA,EAAE,EAAE;AACJ,CAAC,KAAK,EAAE;AACR,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,EAAE,sBAAsB;AACxB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,iBAAiB;AACnB,EAAE,oBAAoB;AACtB,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,IAAI;AAClB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc;AACzC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACpE,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,gBAAgB,CAAC;AACjC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,eAAe;AAC1B,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,sBAAsB,EAAE;AACzB,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC;AAClD,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,0BAA0B,EAAE;AAC9B,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iCAAiC,EAAE;AACrC,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,0BAA0B,CAAC;AAC3C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,eAAe;AAC1B,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,qBAAqB,EAAE;AACzB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,uBAAuB,CAAC;AACxC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kCAAkC,EAAE;AACtC,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,SAAS,EAAE,IAAI;AAClB,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc;AACzC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AACxC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,gBAAgB,CAAC;AACjC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,aAAa;AACzB,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AACxC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,eAAe;AAC1B,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,UAAU,EAAE;AACf,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7B,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3B,IAAI;AACJ,KAAK,QAAQ,EAAE,SAAS;AACxB,KAAK,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI;AACjC;AACA,IAAI;AACJ,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,eAAe;AAClC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,kBAAkB,CAAC;AACnC,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,UAAU;AACxB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,qBAAqB,EAAE;AACzB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,qBAAqB,EAAE;AACzB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE;AACd,IAAI,aAAa;AACjB,IAAI,CAAC,QAAQ,CAAC;AACd,IAAI,CAAC,iBAAiB,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,oBAAoB;AACxB,IAAI,EAAE;AACN,IAAI,WAAW;AACf,IAAI,EAAE;AACN,IAAI,MAAM;AACV,IAAI,EAAE;AACN,IAAI,MAAM;AACV,IAAI,EAAE;AACN,IAAI,QAAQ;AACZ,IAAI,CAAC;AACL,IAAI;AACJ,IAAI;AACJ,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,iBAAiB;AACpC,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,kBAAkB;AAChC,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC/C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,aAAa,EAAE,IAAI;AACtB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,kBAAkB;AAChC,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE;AAClB,KAAK,MAAM;AACX,KAAK,SAAS;AACd,KAAK;AACL;AACA,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,QAAQ;AACpB,GAAG,UAAU,EAAE,CAAC,YAAY,CAAC;AAC7B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC/C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,gBAAgB,EAAE;AACpB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,QAAQ,EAAE,GAAG;AAChB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,OAAO,EAAE,SAAS;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,SAAS,EAAE;AACf,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,SAAS,EAAE;AACf,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,OAAO,EAAE,cAAc;AAC1B,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,kCAAkC,EAAE;AACtC,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,iCAAiC,EAAE;AACrC,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,+BAA+B,EAAE;AACnC,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,UAAU,EAAE;AAChB,IAAI;AACJ,GAAG,SAAS,EAAE,UAAU;AACxB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,YAAY;AACvB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,2BAA2B,EAAE;AAC/B,GAAG,MAAM,EAAE,YAAY;AACvB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,kBAAkB,EAAE;AACxB,IAAI;AACJ,GAAG,SAAS,EAAE,UAAU;AACxB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,SAAS,EAAE;AACf,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,oBAAoB,EAAE;AACvB,EAAE,sBAAsB,EAAE;AAC1B,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,WAAW;AAC9B,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,QAAQ,EAAE;AACb,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,SAAS,EAAE;AACf,IAAI;AACJ,GAAG,SAAS,EAAE,QAAQ;AACtB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,gBAAgB,EAAE;AACnB,EAAE,kBAAkB,EAAE;AACtB,GAAG,MAAM,EAAE,OAAO;AAClB,GAAG,SAAS,EAAE,SAAS;AACvB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC;AAC9C,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,eAAe;AAC1B,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,YAAY,EAAE;AACjB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,YAAY,EAAE,CAAC,MAAM;AACzB,IAAI;AACJ,GAAG,eAAe,EAAE;AACpB;AACA,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,GAAG;AACjB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,MAAM,EAAE,QAAQ;AACnB,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,SAAS,EAAE,CAAC;AACf,GAAG,OAAO,EAAE;AACZ;AACA,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;AAC5C,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;AAC5C,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;AACxD,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;AAC3C,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;AAC9C,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,eAAe;AACvC,EAAE;AACF,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;AACzC,CAAC,aAAa,EAAE;AAChB,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,OAAO,EAAE,oBAAoB;AAC/B,EAAE,SAAS,EAAE;AACb,EAAE;AACF,CAAC,kBAAkB,EAAE;AACrB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,QAAQ,EAAE;AACZ,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE;AACzB,IAAI,WAAW,EAAE,CAAC;AAClB,KAAK,YAAY,EAAE,EAAE;AACrB,KAAK,aAAa,EAAE;AACpB,KAAK,CAAC;AACN,IAAI,YAAY,EAAE;AAClB,IAAI,EAAE;AACN,GAAG,aAAa,EAAE,EAAE,QAAQ,EAAE;AAC9B,IAAI,WAAW,EAAE,CAAC;AAClB,KAAK,YAAY,EAAE,CAAC,MAAM,CAAC;AAC3B,KAAK,aAAa,EAAE;AACpB,KAAK,CAAC;AACN,IAAI,YAAY,EAAE,CAAC;AACnB,KAAK,MAAM,EAAE,MAAM;AACnB,KAAK,MAAM,EAAE;AACb,KAAK;AACL,IAAI,EAAE;AACN,GAAG,cAAc,EAAE,EAAE,QAAQ,EAAE;AAC/B,IAAI,WAAW,EAAE,CAAC;AAClB,KAAK,YAAY,EAAE;AACnB,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM;AACN,MAAM;AACN,KAAK,aAAa,EAAE;AACpB,KAAK,CAAC;AACN,IAAI,YAAY,EAAE;AAClB,KAAK;AACL,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,MAAM,EAAE;AACd,MAAM;AACN,KAAK;AACL,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,MAAM,EAAE;AACd,MAAM;AACN,KAAK;AACL,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,MAAM,EAAE;AACd,MAAM;AACN,KAAK;AACL,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,MAAM,EAAE;AACd;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA,MAAM,MAAM,GAAG,UAAU;AA4XzB;AACA;AACA,IAAI,sBAAsB,GAAG,cAAc,KAAK,CAAC;AACjD,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;AAC3B,EAAE,KAAK,CAAC,OAAO,CAAC;AAChB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC;AACxB,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AACpC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE;AACpB,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU;AAC7E,CAAC;AACD,CAAC,MAAM,CAAC,QAAQ,EAAE;AAClB,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;AAClC,CAAC;AACD,CAAC,GAAG,CAAC,IAAI,EAAE;AACX,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrD,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAChD,CAAC;AACD,CAAC,GAAG,CAAC,IAAI,EAAE;AACX,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AACtC,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK;AACpD,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AACjC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;AACvC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AACnC,MAAM,wBAAwB,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE;AACjE,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AACnC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AACnC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;AACzC,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE;AAC3C,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;AACvC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;AAC7C,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;AAC/C,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE;AACnD,MAAM,kCAAkC,GAAG,EAAE,IAAI,EAAE,gCAAgC,EAAE;AACrF,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC5B,CAAC,OAAO;AACR,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,QAAQ;AACV,EAAE;AACF,EAAE;AACF;AACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAC5B,EAAE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9C,EAAE,OAAO,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,IAAI;AACxB;AACA,MAAM,gBAAgB,GAAG;AACzB,CAAC,QAAQ;AACT,CAAC,UAAU;AACX,CAAC,UAAU;AACX,CAAC,WAAW;AACZ,CAAC,SAAS;AACV,CAAC,wBAAwB;AACzB,CAAC,aAAa;AACd,CAAC,UAAU;AACX,CAAC,KAAK,CAAC,SAAS,CAAC;AACjB,CAAC,WAAW;AACZ,CAAC,eAAe;AAChB,CAAC,cAAc;AACf,CAAC,iBAAiB;AAClB,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE;AACnC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,IAAI;AACpC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AACrC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,OAAO,QAAQ,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI;AAC7L,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI;AACjD,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AACrC,EAAE,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI;AAC1F,CAAC;AACD,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF;AACA,SAAS,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE;AAC7C,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;AAC1D;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE;AACnD,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACjC,EAAE,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,QAAQ,KAAK,IAAI;AAC5C,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxD,OAAO,IAAI,CAAC,KAAK,QAAQ,EAAE,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ;AACtG,OAAO,OAAO,CAAC,KAAK,OAAO,QAAQ;AACnC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE;AACtC,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,CAAC,KAAK,QAAQ;AACnJ,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;AACrC;AACA;AACA;AACA,MAAM,EAAE,GAAG,MAAM;AACjB,MAAM,EAAE,GAAG,CAAC;AACZ,MAAM,EAAE,GAAG,MAAM;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACtB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACvB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG;AAC7B,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;AAC7B,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG;AACpB,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG;AAC5B,CAAC,OAAO,KAAK;AACb;AACA,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACpC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACf,CAAC,IAAI,CAAC,EAAE,CAAC;AACT,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,MAAM;AACN,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;AAChE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AACD,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;AACvB,CAAC,OAAO;AACR,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACf,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,EAAE;AACF,EAAE;AACF;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,CAAC,OAAO,CAAC,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC;AACnE;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACjD;AACA,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;AACvF,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,CAAC,OAAO;AACR,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AACvD,EAAE,OAAO,CAAC,UAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AACtD,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AACtD,EAAE;AACF,EAAE;AACF;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI;AAClE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1C;AACA,SAAS,QAAQ,CAAC,QAAQ,EAAE;AAC5B,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC5C,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,OAAO;AACR,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG;AACxE,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF;AACA,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACpC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO;AAC/B,CAAC,OAAO,QAAQ,CAAC;AACjB,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACjB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACjB,EAAE;AACF,EAAE,CAAC;AACH;AACA,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACpC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,IAAI,GAAG;AACT,CAAC,CAAC,IAAI,GAAG;AACT,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACf,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;AAC7B,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AACD,CAAC,OAAO;AACR,EAAE,CAAC,CAAC,CAAC,CAAC;AACN,EAAE,CAAC,CAAC,CAAC,CAAC;AACN,EAAE,CAAC,CAAC,CAAC,CAAC;AACN,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAC7E,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AACzD,CAAC;AACD,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE;AAC7B,CAAC,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;AAC1D;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,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;AACnC,CAAC,IAAI,KAAK,KAAK,aAAa,EAAE,OAAO;AACrC,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;AACpD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB;AACpC,EAAE,OAAO;AACT,GAAG,CAAC,GAAG,GAAG;AACV,GAAG,CAAC,GAAG,GAAG;AACV,GAAG,CAAC,GAAG,GAAG;AACV,GAAG;AACH,GAAG;AACH,CAAC;AACD,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,EAAE,IAAI,8CAA8C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClE,GAAG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,GAAG,IAAI,CAAC,GAAG,CAAC;AACZ,GAAG,OAAO;AACV,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;AAC7C,IAAI;AACJ,EAAE;AACF,CAAC;AACD,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC9B,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,mIAAmI,CAAC;AACnK,EAAE,IAAI,QAAQ,EAAE;AAChB,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ;AAC/D,GAAG,MAAM,SAAS,GAAG;AACrB,IAAI,EAAE,IAAI,GAAG;AACb,IAAI,EAAE,IAAI,GAAG;AACb,IAAI;AACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACb,GAAG,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE;AAC/F,IAAI,MAAM,SAAS,GAAG;AACtB,KAAK,EAAE;AACP,KAAK,EAAE;AACP,KAAK;AACL,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,IAAI,MAAM,QAAQ,GAAG,SAAS,KAAK,KAAK,GAAG,GAAG,GAAG,SAAS,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;AAC3E,IAAI,IAAI,QAAQ,EAAE;AAClB,KAAK,MAAM,IAAI,GAAG;AAClB,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;AAC/B,MAAM;AACN,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AAC3C,IAAI;AACJ,GAAG;AACH,GAAG;AACH,EAAE;AACF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,iIAAiI,CAAC;AAChK,CAAC,IAAI,QAAQ,EAAE;AACf,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ;AAClD,EAAE,MAAM,SAAS,GAAG;AACpB,GAAG,EAAE,IAAI,GAAG;AACZ,GAAG,EAAE,IAAI,GAAG;AACZ,GAAG;AACH,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACZ,EAAE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE;AAC9F,GAAG,MAAM,IAAI,GAAG;AAChB,IAAI,CAAC,CAAC;AACN,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACrB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACrB,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;AAC7B,IAAI;AACJ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACnD,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AAC9C;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;AACrC,CAAC,OAAO,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C;AACA,SAAS,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG;AACpB,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,EAAE;AACJ,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,oBAAoB,EAAE;AACvB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,gBAAgB,EAAE;AACnB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,CAAC;AACH,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,OAAO,EAAE;AACV,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,EAAE;AACJ,EAAE;AACF,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE;AACF;AACA,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AACxC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AAC9B;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AACvC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC3B,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAkC,CAAC,UAAU,EAAE;AACxD,CAAC,OAAO,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,KAAK;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,IAAIA,OAAK,GAAG,MAAM,KAAK,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,EAAE;AACvD,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK;AAChB,EAAE,IAAI,CAAC,aAAa,EAAE;AACtB,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK;AAClB,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK;AAClB,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK;AAClB,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC3C,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,CAAC;AACL,EAAE;AACF,CAAC;AACD,CAAC;AACD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC;AACA,CAAC;AACD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC;AACA,CAAC;AACD,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C;AACA,CAAC;AACD,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,KAAK,EAAE,OAAO,KAAK;AAC1C,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,EAAE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AACnC,EAAE,IAAI,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI;AAC7B,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ;AACzB,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACrC,GAAG,CAAC,GAAG,CAAC;AACR,GAAG,CAAC,GAAG,CAAC;AACR,GAAG,CAAC,GAAG,CAAC;AACR,GAAG;AACH,GAAG,CAAC;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE;AACvC,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9D,EAAE,OAAO,SAAS;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,GAAG;AACZ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG;AAC/B,EAAE,OAAO,CAAC,KAAK,EAAE;AACjB,GAAG,CAAC;AACJ,GAAG,CAAC;AACJ,GAAG;AACH,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE;AACnD,EAAE,QAAQ,QAAQ;AAClB,GAAG,KAAK,KAAK,EAAE;AACf,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AAC3C,GAAG;AACH,GAAG,KAAK,KAAK,EAAE;AACf,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG;AACpD,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG;AAClD,IAAI,IAAI,GAAG,EAAE,MAAM;AACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtC,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;AACzB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG;AAC3C,UAAU,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG;AACzD,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;AACxB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7B,KAAK,GAAG,GAAG,IAAI;AACf,KAAK,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;AACvD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7B,KAAK,GAAG,GAAG,IAAI;AACf,KAAK,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;AACvD,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG;AACpB,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;AACtC,KAAK,GAAG;AACR,KAAK,MAAM,IAAI,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACrD,KAAK,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,KAAK,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AACxC,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AAC3C,GAAG;AACH,GAAG,KAAK,KAAK,EAAE;AACf,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5E,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AAC3C,GAAG;AACH;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,MAAM;AACrB,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,EAAE,MAAM,EAAE;AACxD,EAAE,IAAI,aAAa,EAAE,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,SAAS,GAAG,MAAM;AAC/E,OAAO,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,QAAQ,GAAG,MAAM;AAChE,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;AACpE,GAAG,WAAW,EAAE,IAAI,CAAC,WAAW;AAChC,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,CAAC;AACD,CAAC,cAAc,GAAG;AAClB,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,MAAM;AACnF,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,sBAAsB,GAAG;AAC/B,CAAC,QAAQ;AACT,CAAC,QAAQ;AACT,CAAC;AACD,CAAC;AACD,IAAI,gBAAgB,GAAG,MAAM;AAC7B,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE;AACtE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,EAAE,IAAI,CAAC,aAAa,GAAG,aAAa;AACpC,CAAC;AACD,CAAC;AACD,IAAI,SAAS,GAAG,MAAM,SAAS,CAAC;AAChC,CAAC,WAAW,CAAC,QAAQ,EAAE;AACvB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,CAAC;AACD,CAAC,OAAO,UAAU,CAAC,WAAW,EAAE;AAChC,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,CAAC,OAAO,GAAG;AACX,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7C,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AACxH,CAAC;AACD,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE;AACtB,EAAE,IAAI,IAAI,YAAY,SAAS,EAAE,OAAO,IAAI;AAC5C,OAAO,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;AAC3C,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9D,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,OAAO,EAAE,OAAO,KAAK;AAC5C,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC;AACpD,GAAG,KAAK;AACR,GAAG,KAAK;AACR,GAAG,KAAK;AACR,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,EAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxD,EAAE,QAAQ,KAAK,CAAC,MAAM;AACtB,GAAG,KAAK,CAAC;AACT,IAAI,KAAK,GAAG;AACZ,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC;AACZ,KAAK;AACL,IAAI;AACJ,GAAG,KAAK,CAAC;AACT,IAAI,KAAK,GAAG;AACZ,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC;AACZ,KAAK;AACL,IAAI;AACJ,GAAG,KAAK,CAAC;AACT,IAAI,KAAK,GAAG;AACZ,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC,CAAC;AACb,KAAK,KAAK,CAAC,CAAC;AACZ,KAAK;AACL,IAAI;AACJ;AACA,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AAC3B,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,EAAE,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,MAAM,WAAW,CAAC;AACpC,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,WAAW,EAAE,OAAO,KAAK;AAChD,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AAChE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,EAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxD,EAAE,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC;AAC/B,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,EAAE,OAAO,IAAI,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC;AAClC,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,UAAU,EAAE,OAAO,KAAK;AAC/C,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,GAAG,MAAM,UAAU,GAAGA,OAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,GAAG,IAAI,CAAC,UAAU,EAAE;AACpB,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;AACtC,EAAE;AACF,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC3B,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAChC,GAAG,MAAM,UAAU,GAAGA,OAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC,GAAG,IAAI,CAAC,UAAU,EAAE;AACpB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1B,EAAE;AACF,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AAC/B,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE;AACnD,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,2CAA2C,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAC/K,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACxH,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AAC/B,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,YAAY,GAAG,cAAc,KAAK,CAAC;AACvC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC5B,EAAE,KAAK,CAAC,OAAO,CAAC;AAChB,EAAE,IAAI,CAAC,IAAI,GAAG,cAAc;AAC5B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,CAAC;AACD,CAAC,MAAM,GAAG;AACV,EAAE,OAAO,IAAI,CAAC,OAAO;AACrB,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA,MAAM,OAAO,mBAAmB,IAAI,GAAG,CAAC;AACxC,CAAC,QAAQ;AACT,CAAC,MAAM;AACP,CAAC,OAAO;AACR,CAAC,KAAK;AACN,CAAC,QAAQ;AACT,CAAC,UAAU;AACX,CAAC,WAAW;AACZ,CAAC,aAAa;AACd,CAAC;AACD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,8BAA8B,GAAG,MAAM,8BAA8B,CAAC;AAC1E,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,8BAA8B,EAAE,OAAO,KAAK;AACnE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3E,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/B,GAAG,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACrE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC5I,EAAE;AACF,EAAE,OAAO,IAAI,8BAA8B,CAAC,KAAK,CAAC;AAClD,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACtC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;AAChC,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM;AAC5B,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,qDAAqD,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACzK,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACjD,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,8DAA8D,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACpL,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,EAAE;AACF,EAAE,OAAO,IAAI,8BAA8B,CAAC,MAAM,CAAC;AACnD,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,aAAa,GAAG,MAAM,aAAa,CAAC;AACxC,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AACpC,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,IAAI;AAClB,CAAC;AACD,CAAC,OAAO,UAAU,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AACxB,EAAE,OAAO,IAAI,aAAa,CAAC;AAC3B,GAAG,IAAI;AACP,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,oBAAoB,GAAG,MAAM,oBAAoB,CAAC;AACtD,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE;AACnC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI;AACtE,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,GAAG,IAAI,CAAC,IAAI;AACZ,GAAG,IAAI,CAAC,EAAE;AACV,GAAG,IAAI,CAAC;AACR,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,EAAE,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE;AACrB,EAAE,IAAI,KAAK,YAAY,oBAAoB,EAAE,OAAO,KAAK;AACzD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/M,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC;AAClN,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACjF,CAAC;AACD,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,GAAG;AAC1M,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE,GAAG;AACL,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,+CAA+C,CAAC;AAC/D,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,EAAE;AAC7G,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE,CAAC;AACH,EAAE;AACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,+BAA+B,CAAC;AAC9C,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAYA,OAAK,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,8BAA8B,IAAI,KAAK,YAAY,aAAa,EAAE,OAAO,IAAI;AACta,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAC5D,EAAE,OAAO,IAAI;AACb,CAAC,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,EAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK;AACjE,EAAE,OAAO,IAAI;AACb,CAAC,CAAC,MAAM,OAAO,KAAK;AACpB;AACA,SAAS,MAAM,CAAC,KAAK,EAAE;AACvB,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,QAAQ;AACpC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,UAAU;AACtD,MAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,OAAO,WAAW;AACxD,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,UAAU;AACtD,MAAM,IAAI,KAAK,YAAYA,OAAK,EAAE,OAAO,SAAS;AAClD,MAAM,IAAI,KAAK,YAAY,oBAAoB,EAAE,OAAO,wBAAwB;AAChF,MAAM,IAAI,KAAK,YAAY,QAAQ,EAAE,OAAO,YAAY;AACxD,MAAM,IAAI,KAAK,YAAY,SAAS,EAAE,OAAO,aAAa;AAC1D,MAAM,IAAI,KAAK,YAAY,OAAO,EAAE,OAAO,WAAW;AACtD,MAAM,IAAI,KAAK,YAAY,WAAW,EAAE,OAAO,eAAe;AAC9D,MAAM,IAAI,KAAK,YAAY,UAAU,EAAE,OAAO,cAAc;AAC5D,MAAM,IAAI,KAAK,YAAY,8BAA8B,EAAE,OAAO,kCAAkC;AACpG,MAAM,IAAI,KAAK,YAAY,aAAa,EAAE,OAAO,iBAAiB;AAClE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,EAAE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,EAAE,IAAI,QAAQ;AACd,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5B,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC;AAC9B,QAAQ,IAAI,QAAQ,KAAK,CAAC,EAAE;AAC5B,QAAQ;AACR,IAAI,QAAQ,GAAG,SAAS;AACxB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,EAAE,OAAO,KAAK,CAAC,QAAQ,IAAI,SAAS,EAAE,MAAM,CAAC;AAC7C,CAAC,CAAC,MAAM,OAAO,UAAU;AACzB;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,CAAC,MAAM,IAAI,GAAG,OAAO,KAAK;AAC1B,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE;AAC9B,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC;AAC5F,MAAM,IAAI,KAAK,YAAYA,OAAK,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,8BAA8B,IAAI,KAAK,YAAY,aAAa,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE;AAChT,MAAM,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC;AACA;AACA;AACA,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,8DAA8D,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC1I,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY;AACvC,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,KAAK,OAAO,QAAQ,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ;AAC7J,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACjC,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,KAAK;AACnB,CAAC;AACD,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,OAAO,GAAG;AAChB,CAAC,MAAM,EAAE,UAAU;AACnB,CAAC,MAAM,EAAE,UAAU;AACnB,CAAC,OAAO,EAAE,WAAW;AACrB,CAAC,MAAM,EAAE;AACT,CAAC;AACD,IAAI,SAAS,GAAG,MAAM,SAAS,CAAC;AAChC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC9B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC;AAC9E,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,IAAI,IAAI;AACV,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACxB,GAAG,IAAI,QAAQ;AACf,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,4EAA4E,EAAE,CAAC,CAAC;AAClL,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,MAAM,QAAQ,GAAG,SAAS;AAC9B,GAAG,IAAI,CAAC;AACR,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,qEAAqE,EAAE,CAAC,CAAC;AAC3M,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACf,IAAI,CAAC,EAAE;AACP,GAAG;AACH,GAAG,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACvB,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,GAAG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACrD,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,EAAE;AACF,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;AACjD,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3C,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK;AAC5D,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACtL,EAAE;AACF,EAAE,MAAM,IAAI,KAAK,EAAE;AACnB,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;AACtD,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,KAAK,GAAG;AACd,CAAC,YAAY,EAAE,WAAW;AAC1B,CAAC,UAAU,EAAE,SAAS;AACtB,CAAC,WAAW,EAAE,UAAU;AACxB,CAAC,WAAW,EAAE;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC;AAC9B,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC9B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC;AAC9E,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;AAC/F,EAAE,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;AAC1H,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC1B,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,GAAG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACrD,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,EAAE;AACF,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;AAChD,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;AACxB,GAAG,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7D,GAAG,KAAK,OAAO,EAAE;AACjB,IAAI,IAAI,KAAK;AACb,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,KAAK,GAAG,IAAI;AACjB,KAAK,IAAI,KAAK,YAAYA,OAAK,EAAE,OAAO,KAAK;AAC7C,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACzC,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC;AACrB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,mEAAmE,CAAC;AACxK,WAAW,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAIA,OAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5F,KAAK;AACL,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,kCAAkC,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAChJ,GAAG;AACH,GAAG,KAAK,SAAS,EAAE;AACnB,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACrC,KAAK,IAAI,GAAG,EAAE,OAAO,GAAG;AACxB,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,oCAAoC,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACzI,GAAG;AACH,GAAG,KAAK,aAAa,EAAE;AACvB,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzC,KAAK,IAAI,GAAG,EAAE,OAAO,GAAG;AACxB,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,wCAAwC,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7I,GAAG;AACH,GAAG,KAAK,YAAY,EAAE;AACtB,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,KAAK,IAAI,GAAG,EAAE,OAAO,GAAG;AACxB,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,uCAAuC,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5I,GAAG;AACH,GAAG,KAAK,gCAAgC,EAAE;AAC1C,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,MAAM,IAAI,GAAG,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7D,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;AAC1B,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,2DAA2D,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAChK,GAAG;AACH,GAAG,KAAK,QAAQ,EAAE;AAClB,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACjC,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9B,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC;AACjC,KAAK,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9B,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AACrB,KAAK,OAAO,GAAG;AACf,IAAI;AACJ,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7F,GAAG;AACH,GAAG,KAAK,WAAW,EAAE,OAAO,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,GAAG,KAAK,eAAe,EAAE,OAAO,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACnG,GAAG,KAAK,sBAAsB,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjE,GAAG,SAAS,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;AACtD,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,aAAa,GAAG;AACtB,CAAC,SAAS;AACV,CAAC,OAAO;AACR,CAAC,YAAY;AACb,CAAC;AACD,CAAC;AACD,IAAI,iBAAiB,GAAG,MAAM;AAC9B,CAAC,WAAW,GAAG;AACf,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI;AAC1B,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC9B,EAAE,IAAI,CAAC,gBAAgB,mBAAmB,IAAI,GAAG,EAAE;AACnD,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI;AAC7B,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI;AACvB,CAAC;AACD,CAAC,EAAE,GAAG;AACN,EAAE,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI;AACtE,CAAC;AACD,CAAC,YAAY,GAAG;AAChB,EAAE,OAAO,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AAC3H,CAAC;AACD,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI;AAClF,CAAC;AACD,CAAC,WAAW,GAAG;AACf,EAAE,OAAO,IAAI,CAAC,SAAS;AACvB,CAAC;AACD,CAAC,UAAU,GAAG;AACd,EAAE,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACtD,CAAC;AACD,CAAC,UAAU,CAAC,KAAK,EAAE;AACnB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/C,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,GAAG,MAAM,GAAGA,OAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC3C,EAAE;AACF,EAAE,OAAO,MAAM;AACf,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,MAAM,cAAc,CAAC;AAC1C,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AAClG,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,EAAE,IAAI,CAAC,WAAW,GAAG,cAAc;AACnC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AAC1D,EAAE,IAAI,KAAK,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AACpF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AACnC,CAAC;AACD,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACvB,EAAE,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;AAClI,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AACtB,EAAE,SAAS,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;AAClD,GAAG,IAAI,cAAc,KAAK,QAAQ,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;AAC7E,QAAQ,IAAI,cAAc,KAAK,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;AACjF,QAAQ,OAAO,MAAM;AACrB,EAAE;AACF,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3B,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,oGAAoG,CAAC;AACjJ,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,4CAA4C,EAAE,OAAO,EAAE,CAAC,gEAAgE,CAAC,EAAE,CAAC,CAAC;AAC7I,IAAI,OAAO,IAAI;AACf,GAAG;AACH,GAAG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjC,GAAG,IAAI,IAAI,EAAE;AACb,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC5B,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,KAAK,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;AACvC,KAAK,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI;AAC/B,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,KAAK,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC;AACjQ,UAAU,IAAI,sBAAsB,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AACvG,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM;AACN,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AACrI,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM;AACN,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,KAAK,QAAQ,CAAC,IAAI,IAAI;AAClE,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM;AACN,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gCAAgC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC;AACvM,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,IAAI;AAC9D,IAAI;AACJ,IAAI,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AAC1G,KAAK,MAAM,EAAE,GAAG,IAAI,iBAAiB,EAAE;AACvC,KAAK,IAAI;AACT,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3B,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,GAAG;AACH,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;AAC7G,EAAE,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC;AAC3G,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC;AACjH,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,6BAA6B,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvC,EAAE,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI;AAC9E,EAAE,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK;AACnE,EAAE,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AAC5G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AACvB,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC3B,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,EAAE,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC;AACpB,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC/B,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClC,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrD,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,yCAAyC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACnH,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,GAAG,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9G,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kEAAkE,EAAE,CAAC,CAAC;AAC9H,GAAG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClD,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC1B,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;AACtG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC1B,EAAE,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AAClC,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AACpC,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC;AACpB,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE;AACpC,EAAE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI;AAClC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,eAAe,GAAG,eAAe;AACxC,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC;AAC9I,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kEAAkE,CAAC,EAAE,CAAC,CAAC;AAC3K,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3C,CAAC;AACD,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AAClB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACtC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,gCAAgC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5G,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACrD,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;AACnF,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACnC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI;AACtB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACtD,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,2BAA2B,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7F,EAAE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,2BAA2B,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC3H,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,0CAA0C,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAClI,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AAClB,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,IAAI,GAAG,WAAW;AACzB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,gCAAgC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5G,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACrD,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACvD,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AACvC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE;AAChC,GAAG,WAAW;AACd,GAAG,UAAU;AACb,GAAG,UAAU;AACb,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,iFAAiF,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnJ,EAAE,OAAO,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;AAC9C,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,KAAK;AAC7B,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACjC,GAAG,SAAS;AACZ,GAAG,QAAQ;AACX,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,iFAAiF,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACnK,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,kEAAkE,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACzM,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/C,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU;AACxB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACpI,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACrD,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACvD,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AACvC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE;AAChC,GAAG,WAAW;AACd,GAAG,UAAU;AACb,GAAG,UAAU;AACb,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,iFAAiF,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnJ,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,GAAG,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC1D,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC9B,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;AAC/D,EAAE,CAAC,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1D,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACjC,GAAG,SAAS;AACZ,GAAG,QAAQ;AACX,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,iFAAiF,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACnK,EAAE,IAAI,SAAS;AACf,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9D,EAAE,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC/C,GAAG,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACvD,GAAG,IAAI,QAAQ,KAAK,EAAE,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM;AACtD,EAAE,CAAC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/F,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,kEAAkE,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACvJ,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC;AACxB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;AACtE,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU;AACxB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC;AAC1F,EAAE,IAAI,SAAS;AACf,EAAE,IAAI,UAAU;AAChB,EAAE,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY;AACtG,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC;AAChD,GAAG,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,qCAAqC,CAAC;AAC5F,GAAG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC/B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,2CAA2C,CAAC;AACtI,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC3L,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,+CAA+C,CAAC;AACjJ,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAClD,SAAS,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI;AAC7E,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,+BAA+B,CAAC;AAC/G,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;AACzC,GAAG;AACH,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC;AACrD,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,GAAG,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI;AACzC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACvB,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACpD,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACzB,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC;AACrF,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC7B,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AACvG,EAAE,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;AAC3E,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC9G,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACpB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AAC3F,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC;AACtB,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC;AACzF,EAAE,IAAI,UAAU;AAChB,EAAE,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY;AACtG,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;AACtD,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AACzB,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;AAC/D,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,GAAG,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI;AACzC,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC;AACrF,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC7B,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AAC7D,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;AAClD,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzG,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrC,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClD,GAAG,EAAE,CAAC,IAAI,CAAC;AACX,GAAG,EAAE,CAAC,UAAU,CAAC;AACjB,EAAE;AACF,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACpB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AACjG,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC;AACxB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrD,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACpI,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACpD,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC1D,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI;AACxC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;AAC/B,GAAG,KAAK,CAAC,SAAS,CAAC;AACnB,GAAG,UAAU;AACb,GAAG;AACH,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,iEAAiE,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClI,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,GAAG,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACzD,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC7B,GAAG,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;AACzE,EAAE,CAAC,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;AACrE,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClD,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3D,EAAE,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AACxF,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,iEAAiE,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACnJ,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;AACrB,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACtD,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACnC,CAAC,IAAI,UAAU,GAAG,CAAC;AACnB,CAAC,IAAI,UAAU,GAAG,SAAS;AAC3B,CAAC,IAAI,YAAY,GAAG,CAAC;AACrB,CAAC,IAAI,YAAY,EAAE,SAAS;AAC5B,CAAC,OAAO,UAAU,IAAI,UAAU,EAAE;AAClC,EAAE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;AAC1D,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AACpC,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;AACrC,EAAE,IAAI,YAAY,IAAI,KAAK,EAAE;AAC7B,GAAG,IAAI,YAAY,KAAK,SAAS,IAAI,KAAK,GAAG,SAAS,EAAE,OAAO,YAAY;AAC3E,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC;AAChC,EAAE,CAAC,MAAM,IAAI,YAAY,GAAG,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,CAAC;AAChE,OAAO,MAAM,IAAI,YAAY,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC5D,CAAC;AACD,CAAC,OAAO,CAAC;AACT;AACA;AACA;AACA,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC;AACtB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACtC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;AAClB,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,EAAE;AAC3C,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,EAAE;AACF,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpH,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC;AAChG,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACrD,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACzB,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,IAAI,UAAU,GAAG,IAAI;AACvB,EAAE,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY;AACtG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,GAAG,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9C,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAG,MAAM,QAAQ,GAAG,CAAC;AACrB,GAAG,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC;AACzB,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,2IAA2I,EAAE,QAAQ,CAAC;AAC7M,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,6GAA6G,EAAE,QAAQ,CAAC;AACzM,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;AAC5D,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,GAAG,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI;AACzC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,EAAE;AACF,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACxD,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1D,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzD,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM;AACjC,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjF,EAAE,OAAO,OAAO,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClF,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,EAAE,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;AACvD,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;AACzD,CAAC;AACD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACxC,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AACnB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;AAChC,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AACnB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;AAChC,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,CAAC,OAAO,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,EAAE;AAC1C,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AACtB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AACtB,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9B,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC9C,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAClE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AAC5C,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE;AAC5B,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AACf,EAAE;AACF,EAAE,IAAI,EAAE,GAAG,CAAC;AACZ,EAAE,IAAI,EAAE,GAAG,CAAC;AACZ,EAAE,CAAC,GAAG,CAAC;AACP,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/B,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC1C,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE;AACnC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AACrB,QAAQ,EAAE,GAAG,CAAC;AACd,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;AACrB,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,WAAW,GAAG,MAAM,WAAW,CAAC;AACpC,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/D,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,aAAa,GAAG,aAAa;AACpC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;AAClB,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,EAAE;AAC3C,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,EAAE;AACF,CAAC;AACD,CAAC,OAAO,mBAAmB,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAChE,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC,GAAG,wBAAwB,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;AACjH,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AAChG,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE;AAClD,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,aAAa;AACxC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3F,EAAE;AACF,EAAE,OAAO,CAAC;AACV,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI;AACtD,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC;AACxI,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACvE,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AAC/C,GAAG,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;AAChC,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,CAAC,EAAE,CAAC,CAAC;AACjH,GAAG,aAAa,GAAG;AACnB,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI;AACJ,IAAI;AACJ,EAAE,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE;AAClD,GAAG,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,GAAG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,yFAAyF,EAAE,CAAC,CAAC;AAC3N,GAAG,aAAa,GAAG;AACnB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI;AACJ,IAAI;AACJ,EAAE,CAAC,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7F,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpH,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC;AAChG,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC;AAC7C,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACzB,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,IAAI,UAAU,GAAG,IAAI;AACvB,EAAE,IAAI,CAAC,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,iBAAiB,KAAK,OAAO,CAAC,YAAY,IAAI,cAAc,EAAE,UAAU,GAAG,SAAS;AAC1I,OAAO,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY;AAC3G,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACxB,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAG,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC;AACzB,GAAG,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC;AACzB,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kJAAkJ,EAAE,QAAQ,CAAC;AACpN,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,oHAAoH,EAAE,QAAQ,CAAC;AAChN,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;AAC5D,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,GAAG,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI;AACzC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,EAAE;AACF,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,CAAC;AACjc,EAAE,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACxF,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1D,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzD,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM;AACjC,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACjC,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACpF,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClD,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtD,EAAE,QAAQ,IAAI,CAAC,QAAQ;AACvB,GAAG,KAAK,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7C,IAAI,KAAK,QAAQ,EAAE,OAAO,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACxE,IAAI,KAAK,OAAO,EAAE,OAAOA,OAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACvE,IAAI,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3E,IAAI,KAAK,YAAY,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACjF,IAAI,KAAK,aAAa,EAAE,OAAO,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACnF,IAAI,KAAK,gCAAgC,EAAE,OAAO,8BAA8B,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACnI,IAAI,KAAK,OAAO,EAAE,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACtE,IAAI,KAAK,sBAAsB,EAAE,OAAO,oBAAoB,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AACrG;AACA,GAAG,KAAK,iBAAiB,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;AACjD,IAAI,KAAK,OAAO,EAAE,OAAOA,OAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9E,IAAI,KAAK,YAAY,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;AACxF;AACA,GAAG,KAAK,iBAAiB,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;AACjD,IAAI,KAAK,OAAO,EAAE,OAAOA,OAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9E,IAAI,KAAK,YAAY,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;AACxF;AACA;AACA,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,EAAE,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;AACvD,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;AACzD,CAAC;AACD,CAAC;AACD;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,SAAS,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE;AACvE,CAAC,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU;AAC3C,CAAC,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU;AACpC,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC;AAC/B,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,QAAQ,GAAG,UAAU;AAClD,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9E;AACA,MAAM,kBAAkB,GAAG;AAC3B,CAAC,KAAK,EAAEA,OAAK,CAAC,WAAW;AACzB,CAAC,MAAM,EAAE,iBAAiB;AAC1B,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW;AAC7B,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW;AACrC,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW;AACnC,CAAC,8BAA8B,EAAE,8BAA8B,CAAC,WAAW;AAC3E,CAAC,KAAK,EAAE;AACR,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC;AAC9B,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC;AAC9E,EAAE,IAAI,UAAU,GAAG,IAAI;AACvB,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;AAC3C,EAAE,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,UAAU,GAAG,YAAY;AAC9E,EAAE,MAAM,UAAU,GAAG,EAAE;AACvB,EAAE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAC3G,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,GAAG,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI;AACzC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,EAAE;AACF,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AACpD,EAAE,OAAO,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;AACpK,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,IAAI,MAAM,GAAG,IAAI;AACnB,EAAE,IAAI,QAAQ,GAAG,CAAC;AAClB,EAAE,IAAI,kBAAkB;AACxB,EAAE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/B,GAAG,QAAQ,EAAE;AACb,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC7B,GAAG,IAAI,MAAM,IAAI,MAAM,YAAY,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACvE,IAAI,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,CAAC,IAAI;AAC7D,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;AAClE,GAAG;AACH,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE;AACxB,EAAE;AACF,EAAE,OAAO,MAAM;AACf,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;AACtD,CAAC;AACD,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE;AACpC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AACpK,MAAM,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AACtF;AACA,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,CAAC,OAAO,CAAC,KAAK,CAAC;AACf;AACA,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,CAAC,OAAO,CAAC,KAAK,CAAC;AACf;AACA,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,CAAC,OAAO,CAAC,GAAG,CAAC;AACb;AACA,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,CAAC,OAAO,CAAC,GAAG,CAAC;AACb;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,CAAC,OAAO,CAAC,IAAI,CAAC;AACd;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,CAAC,OAAO,CAAC,IAAI,CAAC;AACd;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AAC7B;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC3B;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC3B;AACA,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACnC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC5B;AACA,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACnC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE;AAC/D,CAAC,MAAM,iBAAiB,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;AACrD,CAAC,OAAO,MAAM,UAAU,CAAC;AACzB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE;AACvC,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG;AACjB,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG;AACjB,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG;AACjB,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC3B,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW;AAC1B,GAAG,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;AACnF,EAAE;AACF,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC;AACvG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACjD,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACxB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0CAA0C,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACrJ,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACjD,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACxB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0CAA0C,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACrJ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3M,GAAG,IAAI,iBAAiB,EAAE;AAC1B,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;AACjH,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;AACtH,GAAG;AACH,GAAG,IAAI,QAAQ,GAAG,IAAI;AACtB,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC;AACpM,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;AACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC9B,GAAG;AACH,GAAG,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;AACzD,EAAE;AACF,EAAE,QAAQ,CAAC,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrC,GAAG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrC,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrD,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,yDAAyD,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1O,GAAG;AACH,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACvE,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxF,GAAG;AACH,GAAG,OAAO,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACvH,EAAE;AACF,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACf,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACf,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,EAAE;AACF,EAAE,aAAa,GAAG;AAClB,GAAG,OAAO,IAAI;AACd,EAAE;AACF,EAAE;AACF;AACA,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC;AAClD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC;AACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACnD,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACtD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;AAC/D,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;AAClE;AACA;AACA,IAAI,kBAAkB,GAAG,MAAM,kBAAkB,CAAC;AAClD,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,EAAE,MAAM,EAAE;AACxD,EAAE,IAAI,CAAC,IAAI,GAAG,YAAY;AAC1B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,aAAa,GAAG,aAAa;AACpC,EAAE,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AAC9C,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;AACvE,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC;AACjI,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;AAC/H,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI;AACjC,EAAE,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;AAC9I,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,IAAI;AACtC,EAAE,IAAI,MAAM,GAAG,IAAI;AACnB,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzB,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC3D,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,EAAE;AACF,EAAE,OAAO,IAAI,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,EAAE,MAAM,CAAC;AAC1E,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9I,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AACxB,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,YAAY,GAAG,MAAM,YAAY,CAAC;AACtC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,EAAE;AACnF,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC5C,EAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC5C,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACxE,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACtD,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC;AACrI,EAAE,IAAI,MAAM,GAAG,IAAI;AACnB,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzB,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC3D,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC3B,EAAE;AACF,EAAE,IAAI,QAAQ,GAAG,IAAI;AACrB,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AAC3B,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC/D,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC7B,EAAE;AACF,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACvB,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACvD,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AACzB,EAAE;AACF,EAAE,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC;AACjH,EAAE,IAAI,iBAAiB,GAAG,IAAI;AAC9B,EAAE,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;AACtC,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACnF,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI;AACtC,EAAE;AACF,EAAE,IAAI,iBAAiB,GAAG,IAAI;AAC9B,EAAE,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;AACtC,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACnF,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI;AACtC,EAAE;AACF,EAAE,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;AAC/F,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE;AAC7E,GAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS;AACrE,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM;AACjE,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM;AACrD,GAAG,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM;AAChG,GAAG,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;AAC1F,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACxD,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACxD,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,gBAAgB,GAAG,MAAM,gBAAgB,CAAC;AAC9C,CAAC,WAAW,CAAC,QAAQ,EAAE;AACvB,EAAE,IAAI,CAAC,IAAI,GAAG,aAAa;AAC3B,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC;AAC9E,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC;AACxI,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,IAAI,oBAAoB,GAAG,KAAK;AAClC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,GAAG,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI,oBAAoB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC/E,IAAI,oBAAoB,GAAG,KAAK;AAChC,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;AAC3B,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC5D,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC5B,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG,IAAI;AACnB,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE;AAC1B,KAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AAC3B,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;AAC3B,KAAK,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AAC/D,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG,IAAI;AAC5B,IAAI,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE;AAC/B,KAAK,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,sEAAsE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/O,KAAK,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACxE,KAAK,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI;AACpC,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,IAAI,cAAc,CAAC,KAAK,GAAG,KAAK;AAChC,IAAI,cAAc,CAAC,IAAI,GAAG,IAAI;AAC9B,IAAI,cAAc,CAAC,SAAS,GAAG,SAAS;AACxC,IAAI,cAAc,CAAC,aAAa,GAAG,aAAa;AAChD,GAAG,CAAC,MAAM;AACV,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;AACxD,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI;AAC7B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI;AAClC,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,eAAe,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC;AACvL,IAAI,oBAAoB,GAAG,IAAI;AAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC;AAClB,KAAK,OAAO;AACZ,KAAK,KAAK,EAAE,IAAI;AAChB,KAAK,IAAI,EAAE,IAAI;AACf,KAAK,SAAS,EAAE,IAAI;AACpB,KAAK,aAAa,EAAE;AACpB,KAAK,CAAC;AACN,GAAG;AACH,EAAE;AACF,EAAE,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC;AACvC,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,eAAe,GAAG,CAAC,OAAO,KAAK;AACvC,GAAG,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzD,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,iBAAiB,EAAE,OAAO,IAAI,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9L,GAAG,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrT,EAAE,CAAC;AACH,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC1D,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;AACtB,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;AACvD,EAAE;AACF,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,eAAe,GAAG,MAAM,eAAe,CAAC;AAC5C,CAAC,WAAW,CAAC,KAAK,EAAE;AACpB,EAAE,IAAI,CAAC,IAAI,GAAG,iBAAiB;AAC/B,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACxE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AACpD,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;AAC5D,EAAE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC;AAClC,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrD,EAAE,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAC5D,EAAE,IAAI,KAAK,IAAI,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE;AAC1G,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC;AAC1B,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE;AACzB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU;AACxB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3G,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACzB,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,qDAAqD,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACnN,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACvC,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AACzD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,MAAM;AACpD,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,wDAAwD,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1I,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,MAAM,GAAG,IAAI;AACnB,SAAS,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE;AAC1C,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC;AACpF;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE;AAClD,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW;AAC1D,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW;AAC1D,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG;AACzB;AACA,SAAS,uBAAuB,CAAC,SAAS,EAAE;AAC5C,CAAC,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG;AAC7B;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG;AAC3F;AACA,SAAS,gBAAgB,CAAC,SAAS,EAAE;AACrC,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE;AACzF;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE;AACpC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AACvC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AACvC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AACvC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AACvC,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;AACjC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1G;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;AACpC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAC/D;AACA,SAAS,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7C,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AAClE,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI;AAC9D,CAAC,OAAO,KAAK;AACb;AACA,SAAS,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;AAC/C,CAAC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI;AAC7I,CAAC,OAAO,KAAK;AACb;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,GAAG,KAAK,EAAE;AACpE,CAAC,IAAI,MAAM,GAAG,KAAK;AACnB,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACrE,EAAE,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,gBAAgB;AAC3E,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM;AACjE,CAAC;AACD,CAAC,OAAO,MAAM;AACd;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,CAAC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,IAAI;AACpF,CAAC,OAAO,KAAK;AACb;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE;AAChD,CAAC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK;AAChF,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK;AAChH,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAClD,CAAC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,IAAI;AACxF,CAAC,OAAO,KAAK;AACb;AACA,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACtB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/B,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/B,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,IAAI;AAC9D,CAAC,OAAO,KAAK;AACb;AACA;AACA;AACA,SAAS,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;AACtD,CAAC,MAAM,OAAO,GAAG,EAAE;AACnB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,EAAE,MAAM,IAAI,GAAG,EAAE;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,GAAG,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AACjE,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,EAAE;AACF,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACpB,CAAC;AACD,CAAC,OAAO,OAAO;AACf;AACA,SAAS,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;AACvD,CAAC,MAAM,QAAQ,GAAG,EAAE;AACpB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,EAAE,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;AACjE,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,CAAC;AACD,CAAC,OAAO,QAAQ;AAChB;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnD,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,MAAM,aAAa,GAAG,SAAS,GAAG,EAAE;AACtC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,GAAG,CAAC;AAClH,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,GAAG,CAAC;AAC/H,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;AACf,CAAC;AACD,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACpB;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;AAC7B,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ;AAC9B;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;AACjE,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM;AACpD,CAAC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC5D,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC5D,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,CAAC;AACD,CAAC,OAAO,UAAU;AAClB;AACA,SAAS,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC/D,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM;AACpD,CAAC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC5D,CAAC,MAAM,SAAS,GAAG,EAAE;AACrB,CAAC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC9B,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;AAC5B,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,EAAE;AACF,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1B,CAAC;AACD,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;AACjD,EAAE,SAAS,CAAC,QAAQ,CAAC;AACrB,EAAE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;AACnG,CAAC;AACD,CAAC,OAAO,SAAS;AACjB;AACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE;AACpD,CAAC,MAAM,SAAS,GAAG;AACnB,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,MAAM,QAAQ,GAAG;AAClB,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE;AACpC,CAAC,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;AACtF,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;AAClF,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK;AACtD,EAAE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK;AAC3F,CAAC;AACD,CAAC,IAAI,eAAe,CAAC,IAAI,KAAK,cAAc,EAAE;AAC9C,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;AACxF,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;AAClF,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK;AACtD,EAAE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK;AAC7F,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE;AACnD,CAAC,MAAM,QAAQ,GAAG;AAClB,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,MAAM,QAAQ,GAAG;AAClB,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE;AACpC,CAAC,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;AACtF,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC/E,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK;AACrD,EAAE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK;AAC7F,CAAC;AACD,CAAC,IAAI,eAAe,CAAC,IAAI,KAAK,cAAc,EAAE;AAC9C,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;AACxF,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC/E,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK;AACrD,EAAE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK;AAC/F,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC;AAC1B,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AAClC,EAAE,IAAI,CAAC,IAAI,GAAG,WAAW;AACzB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,6DAA6D,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACzI,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACxB,GAAG,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC7C,IAAI,MAAM,cAAc,GAAG,EAAE;AAC7B,IAAI,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC5C,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,QAAQ;AACnD,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7D,KAAK,IAAI,IAAI,KAAK,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;AACrE,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1D,KAAK,IAAI,EAAE,cAAc;AACzB,KAAK,WAAW,EAAE;AAClB,KAAK,CAAC;AACN,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;AAC1C,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;AACtC,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,cAAc,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;AACnG,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAChH,EAAE;AACF,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC;AAChH,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;AAC3D,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,OAAO,EAAE,OAAO,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;AACxF,QAAQ,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE,OAAO,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;AACjG,EAAE;AACF,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,SAAS,GAAG,MAAM;AACtB,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACxE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AAChC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,CAAC;AACD,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC;AACD,CAAC,GAAG,GAAG;AACP,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,MAAM;AACtC,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAChC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;AACxB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,EAAE;AACF,EAAE,OAAO,GAAG;AACZ,CAAC;AACD,CAAC,IAAI,GAAG;AACR,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,CAAC;AACD,CAAC,GAAG,CAAC,GAAG,EAAE;AACV,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;AAChC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;AACxB,EAAE,OAAO,GAAG,GAAG,CAAC,EAAE;AAClB,GAAG,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9B,GAAG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;AACpC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO;AACtB,GAAG,GAAG,GAAG,MAAM;AACf,EAAE;AACF,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AAClB,CAAC;AACD,CAAC,KAAK,CAAC,GAAG,EAAE;AACZ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;AAChC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;AACrC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;AACxB,EAAE,OAAO,GAAG,GAAG,UAAU,EAAE;AAC3B,GAAG,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC,GAAG,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC;AAC9B,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK;AAC1F,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9B,GAAG,GAAG,GAAG,SAAS;AAClB,EAAE;AACF,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AAClB,CAAC;AACD,CAAC;AAkED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,eAAa,CAAC,KAAK,EAAE,QAAQ,EAAE;AACxC,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,QAAQ,GAAG,EAAE;AACpB,CAAC,IAAI,OAAO;AACZ,CAAC,IAAI,GAAG;AACR,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC3B,EAAE,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;AACxC,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;AACpC,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE;AACxB,GAAG,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC;AACnB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,CAAC;AACD,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAMpC,CAAC,OAAO,QAAQ;AAChB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,CAAC,IAAI,GAAG,GAAG,CAAC;AACZ,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;AAC3E,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACd,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACd,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AACD,CAAC,OAAO,GAAG;AACX;AACA;AACA;AACA,MAAM,EAAE,GAAG,QAAQ;AACnB,MAAM,EAAE,GAAG,CAAC,GAAG,aAAa;AAC5B,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG;AACzB,IAAI,UAAU,GAAG,MAAM;AACvB,CAAC,WAAW,CAAC,GAAG,EAAE;AAClB,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1B,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACpC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AACjD,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM;AAC1B,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAChB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AAC7C,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;AACpC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE;AACtB,EAAE,IAAI,OAAO,GAAG,QAAQ;AACxB,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5C,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACnD,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE;AAC1C,GAAG,IAAI,CAAC,GAAG,CAAC;AACZ,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC9F,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACtB,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AAC1B,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AAC1B,IAAI;AACJ,GAAG;AACH,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE;AAC5B,GAAG,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACnC,GAAG,IAAI,MAAM,GAAG,OAAO,EAAE;AACzB,IAAI,OAAO,GAAG,MAAM;AACpB,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,GAAG,CAAC;AACZ,GAAG;AACH,EAAE;AACF,EAAE,OAAO;AACT,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,GAAG,KAAK,EAAE,IAAI;AACd,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AACnC,GAAG;AACH,CAAC;AACD,CAAC,IAAI,CAAC,GAAG,EAAE;AACX,EAAE,OAAO,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG;AAC/B,EAAE,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG;AAC9B,EAAE,OAAO,GAAG;AACZ,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,aAAa,GAAG,GAAG;AACzB,MAAM,iBAAiB,GAAG,EAAE;AAC5B,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE;AACvC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;AACpD;AACA,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;AACnC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7C,CAAC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;AACjC,CAAC,IAAI,MAAM,EAAE;AACb,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACtC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACpC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AACD,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACrC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;AACvC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;AAChD,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ;AACX,EAAE,CAAC;AACH,EAAE;AACF,CAAC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9E,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;AACtG;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AACjD,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG;AAC3D,CAAC,IAAI,EAAE,GAAG,CAAC;AACX,CAAC,IAAI,EAAE,GAAG,CAAC;AACX,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACxC;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACjD,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;AACpD,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AACjD;AACA,SAAS,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;AACzD,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3G,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3G,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9B;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACjE,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,QAAQ;AAC/F,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9C,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACtB,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,GAAG,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;AACxD,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACzE,EAAE;AACF,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AACzE,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;AAC9F,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC3F,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;AACvD,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;AACvD,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AAC7B,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC9B,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;AACrD,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAClE,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;AAC5D,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;AACjD,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;AACpG,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC3C,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,EAAE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;AAChG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;AACxD,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACzE,EAAE;AACF,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACxC,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,IAAI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,IAAI;AAC5G,CAAC,OAAO,KAAK;AACb;AACA,SAAS,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,QAAQ,EAAE;AACzF,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC;AACvC,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC;AACvC,CAAC,IAAI,eAAe,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AACvH,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACjC,EAAE,IAAI,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;AACpD,CAAC,CAAC,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;AAC1D,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;AACrG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,EAAE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;AACtG,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACtB,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;AACxD,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACzE,EAAE;AACF,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC3E,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;AAC9E,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;AACzC,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,EAAE,CAAC;AACH;AACA,SAAS,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9F,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACzB,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;AACnG,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;AACzC,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE;AACF,EAAE,CAAC;AACH;AACA,SAAS,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,QAAQ,EAAE;AAC7F,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;AACnF,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,QAAQ;AACpC,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC;AAClC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,EAAE,CAAC,EAAE,eAAe,CAAC;AACrB,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC;AACzC,CAAC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;AAC/B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3B,EAAE,MAAM,SAAS,GAAG,MAAM,GAAG,iBAAiB,GAAG,aAAa;AAC9D,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE;AACxC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;AACrD,GAAG,IAAI,MAAM,EAAE;AACf,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;AACzE,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,QAAQ;AAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrD,IAAI,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC;AACtE,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,IAAI,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC;AAChC,GAAG;AACH,EAAE,CAAC,MAAM;AACT,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE;AACF,CAAC;AACD,CAAC,OAAO,QAAQ;AAChB;AACA,SAAS,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,QAAQ,EAAE;AAC/G,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,QAAQ;AACpC,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC;AAClC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;AAC1B,EAAE,CAAC,EAAE,eAAe,CAAC;AACrB,CAAC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;AAC/B,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC5B,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC5B,EAAE,MAAM,UAAU,GAAG,OAAO,GAAG,iBAAiB,GAAG,aAAa;AAChE,EAAE,MAAM,UAAU,GAAG,OAAO,GAAG,iBAAiB,GAAG,aAAa;AAChE,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,UAAU,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE;AAChF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;AAClG,GAAG,IAAI,QAAQ;AACf,GAAG,IAAI,OAAO,IAAI,OAAO,EAAE;AAC3B,IAAI,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;AAC9E,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,GAAG,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;AACnC,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,IAAI,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjD,KAAK,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC;AACjE,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC5C,KAAK,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,QAAQ;AACxC,IAAI;AACJ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE;AACnC,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,IAAI,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjD,KAAK,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC;AACjE,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC5C,KAAK,IAAI,QAAQ,KAAK,CAAC,EAAE,OAAO,QAAQ;AACxC,IAAI;AACJ,GAAG,CAAC,MAAM;AACV,IAAI,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;AAClF,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,GAAG;AACH,EAAE,CAAC,MAAM;AACT,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACjD,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACjD,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACrG,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACrG,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACrG,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACrG,EAAE;AACF,CAAC;AACD,CAAC,OAAO,QAAQ;AAChB;AACA,SAAS,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE;AAClD,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE;AAClC,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACtG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,GAAG;AACxC,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACpC,EAAE,QAAQ,QAAQ,CAAC,IAAI;AACvB,GAAG,KAAK,OAAO;AACf,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,0BAA0B,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvH,IAAI;AACJ,GAAG,KAAK,YAAY;AACpB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,0BAA0B,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpH,IAAI;AACJ,GAAG,KAAK,SAAS;AACjB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3G,IAAI;AACJ;AACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE;AACvD,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE;AAChC,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACpG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,GAAG;AACtC,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACpC,EAAE,QAAQ,QAAQ,CAAC,IAAI;AACvB,GAAG,KAAK,OAAO;AACf,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,0BAA0B,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACtH,IAAI;AACJ,GAAG,KAAK,YAAY;AACpB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,0BAA0B,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACnH,IAAI;AACJ,GAAG,KAAK,SAAS;AACjB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1G,IAAI;AACJ;AACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,yBAAyB,CAAC,GAAG,EAAE,UAAU,EAAE;AACpD,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;AACnC,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,GAAG;AACxE,CAAC,MAAM,QAAQ,GAAGA,eAAa,CAAC,WAAc,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACjE,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC/B,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AAC5E,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,IAAI,IAAI,GAAG,QAAQ;AACpB,CAAC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACpE,EAAE,QAAQ,QAAQ,CAAC,IAAI;AACvB,GAAG,KAAK,OAAO;AACf,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvG,IAAI;AACJ,GAAG,KAAK,YAAY;AACpB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpG,IAAI;AACJ,GAAG,KAAK,SAAS;AACjB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/F,IAAI;AACJ;AACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACpF,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,SAAS;AAClB,GAAG,WAAW,EAAE;AAChB,GAAG;AACH,CAAC,CAAC,CAAC;AACH,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AAC1F,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,YAAY;AACrB,GAAG,WAAW,EAAE;AAChB,GAAG;AACH,CAAC,CAAC,CAAC;AACH,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAChF,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,OAAO;AAChB,GAAG,WAAW,EAAE;AAChB,GAAG;AACH,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClB;AACA,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC;AAC9B,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AAClC,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU;AACxB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,+DAA+D,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3I,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACxB,GAAG,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvJ,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxG,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,aAAa,IAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClH,EAAE;AACF,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC;AAClH,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;AAC3D,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,OAAO,EAAE,OAAO,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3F,QAAQ,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE,OAAO,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1G,QAAQ,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE,OAAO,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;AACpG,EAAE;AACF,EAAE,OAAO,GAAG;AACZ,CAAC;AACD,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC;AACD;AACA;AACA,IAAI,WAAW,GAAG,MAAM,WAAW,CAAC;AACpC,CAAC,WAAW,CAAC,GAAG,EAAE;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS;AACvB,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3G,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC;AACpG,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,gDAAgD,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjI,EAAE,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC;AAC7B,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW;AAC9C,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AACxE,EAAE,OAAO,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI;AAC9C,CAAC;AACD,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC;AACD;AACA;AACA,MAAM,WAAW,GAAG;AACpB,CAAC,IAAI,EAAE,MAAM;AACb,CAAC,IAAI,EAAE,SAAS;AAChB,CAAC,GAAG,EAAE,WAAW;AACjB,CAAC,GAAG,EAAE,QAAQ;AACd,CAAC,IAAI,EAAE,kBAAkB;AACzB,CAAC,IAAI,EAAE,eAAe;AACtB,CAAC,KAAK,EAAE,SAAS;AACjB,CAAC,EAAE,EAAE,EAAE;AACP,CAAC,OAAO,EAAE,SAAS;AACnB,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,QAAQ,EAAE,QAAQ;AACnB,CAAC,QAAQ,EAAE,kBAAkB;AAC7B,CAAC,MAAM,EAAE,gBAAgB;AACzB,CAAC,KAAK,EAAE,eAAe;AACvB,CAAC,EAAE,EAAE,EAAE;AACP,CAAC,UAAU,EAAE,OAAO;AACpB,CAAC,WAAW,EAAE,WAAW;AACzB,CAAC,iBAAiB,EAAE,WAAW;AAC/B,CAAC,iBAAiB,EAAE,WAAW;AAC/B,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,GAAG,EAAE,GAAG;AACT,CAAC,OAAO,EAAE,OAAO;AACjB,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,MAAM,EAAE,SAAS;AAClB,CAAC,eAAe,EAAE,YAAY;AAC9B,CAAC,MAAM,EAAE,SAAS;AAClB,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,MAAM,EAAE,SAAS;AAClB,CAAC,YAAY,EAAE,QAAQ;AACvB,CAAC,UAAU,EAAE,QAAQ;AACrB,CAAC,WAAW,EAAE,QAAQ;AACtB,CAAC,WAAW,EAAE,QAAQ;AACtB,CAAC,GAAG,EAAE,GAAG;AACT,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,QAAQ,EAAE,QAAQ;AACnB,CAAC,cAAc,EAAE;AACjB,CAAC;AACD;AACA;AACA,IAAI,kBAAkB,GAAG,MAAM,kBAAkB,CAAC;AAClD,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;AAC9C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC3B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,CAAC;AACD,CAAC,QAAQ,CAAC,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC;AACD,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,CAAC;AACD,CAAC,aAAa,GAAG;AACjB,EAAE,OAAO,KAAK;AACd,CAAC;AACD,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,EAAE,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;AACvD,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;AAChI,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI;AAC1E,EAAE,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS;AAChH,EAAE,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjI,EAAE,IAAI,gBAAgB,GAAG,IAAI;AAC7B,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE;AAC9C,GAAG,gBAAgB,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;AACnH,GAAG,MAAM,UAAU,GAAG,EAAE;AACxB,GAAG,IAAI,cAAc,GAAG,KAAK;AAC7B,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI;AAC5E,IAAI,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;AACnF,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,KAAK,cAAc,GAAG,IAAI;AAC1B,KAAK;AACL,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,GAAG;AACH,GAAG,IAAI,cAAc,EAAE;AACvB,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC9B,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AAC7C,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3G,KAAK;AACL,IAAI;AACJ,GAAG;AACH,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI;AACpE,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;AAC7B,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;AACnE,GAAG;AACH,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;AACvH,EAAE;AACF,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAC7E,OAAO;AACP,GAAG,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACnI,GAAG,MAAM,WAAW,GAAG,EAAE;AACzB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;AACjE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC5B,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C,GAAG;AACH,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAC5G,EAAE;AACF,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC,OAAO,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE;AACxC,EAAE,kBAAkB,CAAC,WAAW,GAAG,WAAW;AAC9C,EAAE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB;AACrE,CAAC;AACD,CAAC;AACD,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE;AACtC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACpB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACpB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACpB,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,CAAC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC3C,CAAC,IAAI,KAAK,EAAE,MAAM,IAAI,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C,CAAC,OAAO,IAAID,OAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AAC1D;AACA,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM;AACzC;AACA,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACnB,CAAC,OAAO,OAAO,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,CAAC;AAC3C;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAChB,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;AAC7B,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChB,CAAC;AACD,CAAC,OAAO,KAAK;AACb;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,CAAC,OAAO,EAAE,IAAI,EAAE;AAChB;AACA,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE;AACzC,CAAC,KAAK,EAAE;AACR,EAAE,SAAS;AACX,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;AACrB,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAC/C,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,UAAU;AACZ,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AACtB,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG;AAC3C,GAAG,OAAO;AACV,IAAI,CAAC,GAAG,GAAG;AACX,IAAI,CAAC,GAAG,GAAG;AACX,IAAI,CAAC,GAAG,GAAG;AACX,IAAI;AACJ,IAAI;AACJ,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,SAAS;AACX,EAAE;AACF,GAAG,UAAU;AACb,GAAG,UAAU;AACb,GAAG;AACH,GAAG;AACH,EAAE;AACF,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,SAAS;AACX,EAAE;AACF,GAAG,UAAU;AACb,GAAG,UAAU;AACb,GAAG,UAAU;AACb,GAAG;AACH,GAAG;AACH,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClL,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClL,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,SAAS;AACX,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;AAC/D,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU;AACzB,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY;AAC3B,EAAE;AACF,CAAC,EAAE,EAAE;AACL,EAAE,SAAS;AACX,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;AACjB,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC;AACvB,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI;AACzC,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI;AACpC,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI;AACvC,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,SAAS;AACX,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;AACnE,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,OAAO,CAAC,UAAU,CAAC;AACrB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AACjB,GAAG,IAAI,MAAM,GAAG,CAAC;AACjB,GAAG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtD,GAAG,OAAO,MAAM;AAChB,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,OAAO,CAAC,UAAU,CAAC;AACrB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AACjB,GAAG,IAAI,MAAM,GAAG,CAAC;AACjB,GAAG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtD,GAAG,OAAO,MAAM;AAChB,EAAE;AACF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5I,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG;AACnD,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG;AACnD,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,MAAM,IAAI,CAAC;AACb,EAAE;AACF,CAAC,EAAE,EAAE;AACL,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,MAAM,IAAI,CAAC;AACb,EAAE;AACF,CAAC,CAAC,EAAE;AACJ,EAAE,UAAU;AACZ,EAAE,EAAE;AACJ,EAAE,MAAM,IAAI,CAAC;AACb,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC5D,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,EAAE;AACF,CAAC,EAAE,EAAE;AACL,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,OAAO,CAAC,UAAU,CAAC;AACrB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjE,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,OAAO,CAAC,UAAU,CAAC;AACrB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjE,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC5B,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,EAAE;AACF,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACzB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnD,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/B,EAAE;AACF,CAAC,gBAAgB,EAAE;AACnB,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACzC,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACzB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AACnB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE;AACrB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACzB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AACnB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,EAAE;AACF,CAAC,aAAa,EAAE;AAChB,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE;AACrB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACzB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AACnB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE;AACrB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,EAAE;AACF,EAAE;AACF,CAAC,WAAW,EAAE;AACd,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACzB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AACnB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,EAAE;AACF,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE;AACrB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACpB,GAAG,OAAO,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,EAAE;AACF,EAAE;AACF,CAAC,YAAY,EAAE;AACf,EAAE,WAAW;AACb,EAAE,CAAC,SAAS,CAAC;AACb,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK;AACtB,GAAG,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE;AACjC,GAAG,OAAO,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM;AAC/C,EAAE;AACF,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,WAAW;AACb,EAAE,EAAE;AACJ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK;AAC7C,EAAE;AACF,CAAC,gBAAgB,EAAE;AACnB,EAAE,WAAW;AACb,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACrB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI;AACvD,EAAE;AACF,CAAC,cAAc,EAAE;AACjB,EAAE,WAAW;AACb,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI;AAC7C,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAChC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;AACjE,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAChC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACzF,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AACvI,GAAG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;AAC/D,GAAG,OAAO,IAAI;AACd,EAAE,CAAC,CAAC;AACJ,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AACvI,GAAG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;AAC7D,GAAG,OAAO,KAAK;AACf,EAAE,CAAC,CAAC;AACJ,EAAE;AACF,CAAC,GAAG,EAAE;AACN,EAAE,WAAW;AACb,EAAE,CAAC,WAAW,CAAC;AACf,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;AAC/B,EAAE;AACF,CAAC,qBAAqB,EAAE;AACxB,EAAE,WAAW;AACb,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;AAChB,GAAG,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB;AACzE,GAAG,IAAI,iBAAiB,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnE,GAAG,OAAO,IAAI;AACd,EAAE;AACF,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW;AAC3C,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,UAAU;AACZ,EAAE,CAAC,UAAU,CAAC;AACd,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW;AAC3C,EAAE;AACF,CAAC,MAAM,EAAE;AACT,EAAE,UAAU;AACZ,EAAE,OAAO,CAAC,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5E,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,KAAK,CAAC,UAAU,CAAC;AACnB,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChE,EAAE;AACF,CAAC,IAAI,EAAE;AACP,EAAE,UAAU;AACZ,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;AACjC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACnE,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,UAAU;AACZ,EAAE,CAAC,YAAY,CAAC;AAChB,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc;AAC5D;AACA,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,SAAS,EAAE;AACvC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnF,MAAM,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACnD;AACA,SAAS,oBAAoB,CAAC,UAAU,EAAE;AAC1C,CAAC,IAAI,UAAU,YAAY,GAAG,EAAE,OAAO,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC;AACvF,MAAM,IAAI,UAAU,YAAY,kBAAkB,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,KAAK;AAC/F,MAAM,IAAI,UAAU,YAAY,kBAAkB,EAAE,OAAO,KAAK;AAChE,MAAM,IAAI,UAAU,YAAY,MAAM,EAAE,OAAO,KAAK;AACpD,MAAM,IAAI,UAAU,YAAY,QAAQ,EAAE,OAAO,KAAK;AACtD,MAAM,IAAI,UAAU,YAAY,WAAW,EAAE,OAAO,KAAK;AACzD,CAAC,MAAM,gBAAgB,GAAG,UAAU,YAAY,QAAQ,IAAI,UAAU,YAAY,SAAS;AAC3F,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AACjC,EAAE,IAAI,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,IAAI,oBAAoB,CAAC,KAAK,CAAC;AAC1F,OAAO,gBAAgB,GAAG,gBAAgB,IAAI,KAAK,YAAY,OAAO;AACtE,CAAC,CAAC,CAAC;AACH,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,KAAK;AACpC,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE;AAC9E,EAAE,MAAM;AACR,EAAE,iBAAiB;AACnB,EAAE,WAAW;AACb,EAAE,eAAe;AACjB,EAAE,aAAa;AACf,EAAE;AACF,EAAE,CAAC;AACH;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,CAAC,IAAI,CAAC,YAAY,kBAAkB,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;AAC3D,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,OAAO,KAAK;AACnD,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;AAChE,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;AACjG,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAChD,CAAC;AACD,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,OAAO,KAAK;AACtC,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,OAAO,KAAK;AACxC,CAAC,IAAI,MAAM,GAAG,IAAI;AAClB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACtB,EAAE,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK;AACvD,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,MAAM;AACd;AACA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,CAAC,IAAI,CAAC,YAAY,kBAAkB,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,OAAO,KAAK;AAC9C,CAAC;AACD,CAAC,IAAI,MAAM,GAAG,IAAI;AAClB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACtB,EAAE,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK;AACrD,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,MAAM;AACd;AACA,SAAS,wBAAwB,CAAC,CAAC,EAAE,UAAU,EAAE;AACjD,CAAC,IAAI,CAAC,YAAY,kBAAkB,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AACrF,CAAC,IAAI,MAAM,GAAG,IAAI;AAClB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACtB,EAAE,IAAI,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK;AAC1E,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,MAAM;AACd;AACA;AACA;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,CAAC,OAAO;AACR,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE;AACF,EAAE;AACF;AACA,SAAS,KAAK,CAAC,KAAK,EAAE;AACtB,CAAC,OAAO;AACR,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA,SAAS,0BAA0B,CAAC,IAAI,EAAE;AAC1C,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,yBAAyB;AACtG;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;AAC5E;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY;AACzD;AACA;AACA;AACA,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE;AACrC,CAAC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC,OAAO,MAAM;AACd;AACA;AACA;AACA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,CAAC,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,QAAQ;AAC3C,MAAM,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,QAAQ;AAChD,MAAM,IAAI,GAAG,YAAY,OAAO,EAAE,OAAO,SAAS;AAClD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO;AAC5C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,OAAO,MAAM;AACrC,MAAM,OAAO,OAAO,GAAG;AACvB;AACA;AACA;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,CAAC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU;AAC5G;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,CAAC,OAAO,CAAC;AACT;AACA,SAAS,gBAAgB,CAAC,YAAY,EAAE;AACxC,CAAC,QAAQ,YAAY,CAAC,IAAI;AAC1B,EAAE,KAAK,OAAO,EAAE,OAAOA,OAAK,CAAC,KAAK;AAClC,EAAE,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,KAAK;AACtC,EAAE,KAAK,aAAa,EAAE,OAAO,WAAW,CAAC,KAAK;AAC9C,EAAE,KAAK,YAAY,EAAE,OAAO,UAAU,CAAC,KAAK;AAC5C,EAAE,SAAS,OAAO,IAAI;AACtB;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,CAAC,QAAQ,IAAI;AACb,EAAE,KAAK,aAAa,EAAE,OAAO,2BAA2B;AACxD,EAAE,KAAK,UAAU,EAAE,OAAO,wBAAwB;AAClD,EAAE,KAAK,aAAa,EAAE,OAAO,2BAA2B;AACxD,EAAE,KAAK,UAAU,EAAE,OAAO,wBAAwB;AAClD,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA;AACA,SAAS,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE;AAClD,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC,KAAK,IAAI,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC/F,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM;AACnF,CAAC,MAAM,aAAa,GAAG,uBAAuB,IAAI,CAAC,gBAAgB;AACnE,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,KAAK,qBAAqB,CAAC,YAAY,CAAC,GAAG,aAAa,GAAG,UAAU,CAAC;AACnG,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE;AACd,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;AACvC,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC1E,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;AAC1E,OAAO,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;AACzD,CAAC;AACD,CAAC,IAAI,UAAU,CAAC,UAAU,IAAI,CAAC,kCAAkC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5J,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC;AACxC,CAAC,IAAI,WAAW;AAChB,CAAC,IAAI,kBAAkB;AACvB,CAAC,IAAI,IAAI,KAAK,aAAa,EAAE;AAC7B,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACnC,EAAE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACrE,EAAE,kBAAkB,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD,CAAC,IAAI,uBAAuB,EAAE;AAC9B,EAAE,MAAM,gBAAgB,GAAG,EAAE;AAC7B,EAAE,MAAM,SAAS,GAAG,EAAE;AACtB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,GAAG,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;AAC5B,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE;AAC1C,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG;AAC7B,KAAK,IAAI;AACT,KAAK,IAAI,EAAE,UAAU,CAAC,IAAI;AAC1B,KAAK,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAClC,KAAK,OAAO,EAAE,UAAU,CAAC,OAAO;AAChC,KAAK,KAAK,EAAE;AACZ,KAAK;AACL,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,GAAG;AACH,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,EAAE;AACF,EAAE,MAAM,oBAAoB,GAAG,EAAE;AACjC,EAAE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACrI,EAAE,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,WAAW;AACpB,GAAG,iBAAiB;AACpB,GAAG,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACvF,GAAG,SAAS,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE;AAClC,IAAI,OAAO,2BAA2B,CAAC;AACvC,KAAK,KAAK,EAAE,oBAAoB;AAChC,KAAK,IAAI,EAAE,UAAU,CAAC;AACtB,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;AACrD,GAAG;AACH,GAAG;AACH,CAAC,CAAC,MAAM,IAAI,aAAa,EAAE;AAC3B,EAAE,MAAM,iBAAiB,GAAG,IAAI,KAAK,aAAa,GAAG;AACrD,GAAG,IAAI,EAAE,aAAa;AACtB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,MAAM,GAAG,UAAU,CAAC,IAAI,GAAG;AACxD,GAAG,GAAG,IAAI;AACV,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,QAAQ;AACjB,GAAG,iBAAiB;AACpB,GAAG,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACvF,GAAG,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,GAAG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB;AACnG,GAAG;AACH,CAAC,CAAC,MAAM,OAAO;AACf,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE;AACvB,GAAG,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM;AACjG,GAAG,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;AACpF,GAAG,OAAO,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,CAAC;AACpF,EAAE;AACF,EAAE;AACF;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,CAAC;AAC3B,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,CAAC;AAC3B,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,CAAC;AAC3B;AACA,SAAS,2BAA2B,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;AAC5F,CAAC,OAAO,UAAU,CAAC,OAAO,KAAK,KAAK,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;AACpH;AACA,SAAS,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE;AACnE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;AAC7F,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM;AAClC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,MAAM,KAAK,GAAG,yBAAyB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC5F,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC;AACA,SAAS,2BAA2B,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE;AACtE,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC;AAC9D,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;AAC7F,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM;AAClC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,MAAM,KAAK,GAAG,yBAAyB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC5F,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,gBAAgB;AACzE,CAAC,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE;AAC5E,EAAE,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;AACjE,EAAE,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;AACjE,EAAE,IAAI,cAAc,KAAK,MAAM,IAAI,cAAc,KAAK,MAAM,EAAE;AAC9D,EAAE,OAAO,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;AACzE,CAAC,CAAC,EAAE;AACJ,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;AAClE;AACA,SAAS,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE;AACnE,CAAC,QAAQ,YAAY,CAAC,IAAI;AAC1B,EAAE,KAAK,OAAO;AACd,GAAG,KAAK,GAAGA,OAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,GAAG;AACH,EAAE,KAAK,WAAW;AAClB,GAAG,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjD,GAAG;AACH,EAAE,KAAK,eAAe;AACtB,GAAG,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrD,GAAG;AACH,EAAE,KAAK,SAAS;AAChB,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,KAAK,YAAY;AACnB,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AAClC,GAAG;AACH,EAAE,KAAK,aAAa;AACpB,GAAG,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,GAAG;AACH,EAAE,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;AACpI;AACA,CAAC,OAAO,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE;AAClE,CAAC,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU;AAC3C,CAAC,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU;AACpC,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC;AAC/B,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,QAAQ,GAAG,UAAU;AAClD,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9E;AACA;AACA;AACA,IAAI,eAAe,GAAG,MAAM;AAC5B,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE;AAC7D,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE;AAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,EAAE;AAC3C,EAAE,IAAI,CAAC,aAAa,GAAG,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI;AAC1E,EAAE,IAAI,CAAC,WAAW,GAAG,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,IAAI;AAC9F,EAAE,IAAI,CAAC,YAAY,GAAG,WAAW;AACjC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO;AACzB,CAAC;AACD,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AAC5G,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;AACnC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;AACnC,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,YAAY;AAC7C,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS;AACvC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI;AAC3D,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB;AACrD,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,CAAC;AACD,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AACxF,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;AACnC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI;AAC3C,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI;AACrD,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS;AACvC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI;AAC3D,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI;AAC7D,EAAE,IAAI;AACN,GAAG,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACxD,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC,aAAa;AAC1G,GAAG,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;AACrO,GAAG,OAAO,GAAG;AACb,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,MAAM,IAAI,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;AACvD,GAAG,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AACxC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;AACzC,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9H,GAAG;AACH,GAAG,OAAO,IAAI,CAAC,aAAa;AAC5B,EAAE;AACF,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE;AACpE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC;AAC9I;AACA,SAAS,YAAY,CAAC,UAAU,EAAE;AAClC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE;AAC1E,CAAC,aAAa,CAAC,OAAO,CAAC;AACvB,CAAC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,EAAE,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;AAChI,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;AACxJ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACzC,CAAC,OAAO,OAAO,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAChF;AACA,IAAI,sBAAsB,GAAG,MAAM;AACnC,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE;AAC5C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU;AACpC,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,UAAU,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC;AACxF,EAAE,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC;AACnE,EAAE,IAAI,CAAC,YAAY,GAAG,WAAW;AACjC,CAAC;AACD,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AAC5G,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACzI,CAAC;AACD,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AACxF,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACrH,CAAC;AACD,CAAC;AACD,IAAI,uBAAuB,GAAG,MAAM;AACpC,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE;AAC1E,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,EAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU;AACpC,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC;AACtF,EAAE,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC;AACnE,EAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC5C,EAAE,IAAI,CAAC,YAAY,GAAG,WAAW;AACjC,CAAC;AACD,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AAC5G,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACzI,CAAC;AACD,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE;AACxF,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACrH,CAAC;AACD,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,OAAO,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACjH,OAAO,OAAO,CAAC;AACf,CAAC;AACD,CAAC;AAID,SAAS,wBAAwB,CAAC,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE;AACvF,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC;AACzF,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,OAAO,UAAU;AACrD,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU;AAC3C,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,MAAM,CAAC;AAC1D,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAC5J,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAC/I,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;AACxC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC,EAAE,EAAE,sGAAsG,CAAC,CAAC,CAAC;AAC1L,MAAM,IAAI,SAAS,YAAY,sBAAsB,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;AAChF,MAAM,IAAI,SAAS,YAAY,WAAW,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC,EAAE,EAAE,+DAA+D,CAAC,CAAC,CAAC;AACnM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,OAAO,CAAC,uBAAuB,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACtM,CAAC,MAAM,iBAAiB,GAAG,SAAS,YAAY,WAAW,GAAG,SAAS,CAAC,aAAa,GAAG,MAAM;AAC9F,CAAC,OAAO,OAAO,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,CAAC,GAAG,IAAI,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;AACnQ;AACA,IAAI,qBAAqB,GAAG,MAAM,qBAAqB,CAAC;AACxD,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE;AACjD,EAAE,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC/B,EAAE,IAAI,CAAC,eAAe,mBAAmB,IAAI,GAAG,EAAE;AAClD,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI;AAC1B,EAAE,aAAa,CAAC,OAAO,CAAC;AACxB,EAAE,IAAI,CAAC,WAAW,GAAG,UAAU;AAC/B,EAAE,IAAI,CAAC,cAAc,GAAG,aAAa;AACrC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO;AACzB,EAAE,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;AACrD,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE;AAC3B,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;AAClE,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AACrB,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,mBAAmB;AACnD,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS;AAC/B,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB;AAC/C,EAAE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,QAAQ;AACnC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC5B,EAAE,IAAI;AACN,GAAG,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC;AAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7D,GAAG,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACjC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AACxC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;AACzC,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1H,GAAG;AACH,GAAG,OAAO,IAAI,CAAC,aAAa;AAC5B,EAAE;AACF,CAAC;AACD,CAAC,OAAO,WAAW,CAAC,UAAU,EAAE;AAChC,EAAE,OAAO,IAAI,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC;AAC1G,CAAC;AACD,CAAC,OAAO,SAAS,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO;AACT,GAAG,WAAW,EAAE,KAAK,CAAC,WAAW;AACjC,GAAG,cAAc,EAAE,KAAK,CAAC,cAAc;AACvC,GAAG,QAAQ,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,CAAC;AACD,CAAC;AACD,SAAS,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE;AACjF,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC;AACvF,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AAC/B,EAAE,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;AACzF,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5H,EAAE,OAAO,UAAU,CAAC,KAAK;AACzB,CAAC,CAAC,MAAM;AACR,EAAE,IAAI,QAAQ,GAAG,KAAK;AACtB,EAAE,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,GAAGA,OAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAChG,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACnI,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3I,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,YAAY,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AACzI,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,gCAAgC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC;AAClJ,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,sBAAsB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;AACnI,EAAE,OAAO;AACT,GAAG,eAAe,kBAAkB,IAAI,GAAG,EAAE;AAC7C,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,IAAI,EAAE,UAAU;AACnB,GAAG,QAAQ,EAAE,MAAM;AACnB,GAAG;AACH,CAAC;AACD;AACA,SAAS,aAAa,CAAC,UAAU,EAAE;AACnC,CAAC,IAAI,MAAM,GAAG,IAAI;AAClB,CAAC,IAAI,UAAU,YAAY,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;AACzE,MAAM,IAAI,UAAU,YAAY,QAAQ,EAAE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;AAC7E,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC;AAC7B,EAAE,IAAI,MAAM,EAAE;AACd,CAAC;AACD,MAAM,IAAI,CAAC,UAAU,YAAY,IAAI,IAAI,UAAU,YAAY,WAAW,KAAK,UAAU,CAAC,KAAK,YAAY,kBAAkB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,MAAM,GAAG,UAAU;AACtL,CAAC,IAAI,MAAM,YAAY,sBAAsB,EAAE,OAAO,MAAM;AAC5D,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AACjC,EAAE,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;AAC1C,EAAE,IAAI,WAAW,YAAY,sBAAsB,EAAE,MAAM,GAAG,WAAW;AACzE,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,MAAM,GAAG,IAAI,sBAAsB,CAAC,EAAE,EAAE,sGAAsG,CAAC;AAClL,OAAO,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,GAAG,IAAI,sBAAsB,CAAC,EAAE,EAAE,6FAA6F,CAAC;AAClM,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,MAAM;AACd;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE,OAAO,mBAAmB,IAAI,GAAG,EAAE,EAAE;AAC9E,CAAC,IAAI,UAAU,YAAY,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACnE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,KAAK;AAC3C,EAAE,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC;AAC/C,CAAC,CAAC,CAAC;AACH,CAAC,OAAO,OAAO;AACf;AACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,KAAK,EAAE,SAAS;AAClB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,OAAO,EAAE,WAAW;AACtB,EAAE,SAAS,EAAE,aAAa;AAC1B,EAAE,OAAO,EAAE,WAAW;AACtB,EAAE,WAAW,EAAE,eAAe;AAC9B,EAAE,UAAU,EAAE,cAAc;AAC5B,EAAE,oBAAoB,EAAE,wBAAwB;AAChD,EAAE,aAAa,EAAE,iBAAiB;AAClC,EAAE,8BAA8B,EAAE;AAClC,EAAE;AACF,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AACrF,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;AACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,IAAIA,OAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC,QAAQ,IAAI,CAAC,IAAI;AAClB,EAAE,KAAK,OAAO,EAAE,OAAOA,OAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACxD,EAAE,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AAC5D,EAAE,KAAK,aAAa,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACpE,EAAE,KAAK,YAAY,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AAClE,EAAE,KAAK,gCAAgC,EAAE,OAAO,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1G,EAAE,KAAK,sBAAsB,EAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACtF,EAAE,SAAS,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;AAC/D;AACA;AACA,SAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE;AAC9C,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE;AACxG,CAAC,OAAO;AACR,EAAE,IAAI;AACN,EAAE,cAAc;AAChB,EAAE,SAAS;AACX,EAAE,YAAY;AACd,EAAE,iBAAiB;AACnB,EAAE,WAAW;AACb,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,CAAC,IAAI,SAAS,GAAG,KAAK;AACtB,CAAC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC/B,EAAE,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;AAC9C,EAAE,IAAI,cAAc,KAAK,YAAY,EAAE,OAAO,YAAY;AAC1D,EAAE,IAAI,cAAc,KAAK,QAAQ,EAAE,SAAS,GAAG,IAAI;AACnD,CAAC;AACD,CAAC,OAAO,SAAS,GAAG,QAAQ,GAAG,SAAS;AACxC;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,CAAC,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,OAAO,SAAS;AAClD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,QAAQ;AACnE,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;AAClB,EAAE,KAAK,KAAK;AACZ,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,QAAQ;AACzF,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,YAAY;AACxD,EAAE,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ;AAC/H,EAAE,KAAK,KAAK;AACZ,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ;AAC9B,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,GAAG;AACV,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,GAAG;AACV,EAAE,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ;AACzH,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ;AAC9B,EAAE,KAAK,KAAK;AACZ,EAAE,KAAK,KAAK,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,SAAS,OAAO,YAAY;AAC9B;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,QAAQ;AAC3C;AACA,SAAS,2BAA2B,CAAC,QAAQ,EAAE;AAC/C,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC;AACnD,CAAC,IAAI,QAAQ,KAAK,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;AACtC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;AACzB;AACA,SAAS,mCAAmC,CAAC,MAAM,EAAE;AACrD,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;AAClB,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,GAAG;AACV,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,GAAG;AACV,EAAE,KAAK,IAAI;AACX,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI;AACxE,GAAG,OAAO;AACV,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,CAAC;AACZ,IAAI;AACJ,EAAE,KAAK,IAAI;AACX,EAAE,KAAK,KAAK,EAAE;AACd,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI;AACtE,GAAG,MAAM,UAAU,GAAG;AACtB,IAAI,IAAI;AACR,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,IAAI;AACJ,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU;AAC9D,EAAE;AACF,EAAE,KAAK,KAAK;AACZ,EAAE,KAAK,MAAM,EAAE;AACf,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI;AACxE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI;AAChE,GAAG,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU;AAC/D,EAAE;AACF,EAAE,SAAS,OAAO,IAAI;AACtB;AACA;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE;AACvC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/K,CAAC,MAAM,UAAU,GAAG,mCAAmC,CAAC,MAAM,CAAC;AAC/D,CAAC,IAAI,UAAU,EAAE,OAAO,CAAC,iFAAiF,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxK,CAAC,OAAO,CAAC,iFAAiF,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;AAC1I;AACA,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AACzC,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;AACvC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO;AACxC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1B,EAAE,YAAY,EAAE;AAChB,EAAE;AACF,CAAC,OAAO,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE;AAClD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI;AAC7D,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;AAClB,EAAE,KAAK,KAAK;AACZ,EAAE,KAAK,KAAK;AACZ,EAAE,KAAK,MAAM;AACb,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AAClD,IAAI,IAAI,UAAU,EAAE,OAAO,UAAU;AACrC,GAAG;AACH,GAAG;AACH,EAAE,KAAK,GAAG,EAAE;AACZ,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AACjD,GAAG,IAAI,UAAU,EAAE,OAAO,UAAU;AACpC,GAAG;AACH,EAAE;AACF,EAAE,KAAK,MAAM;AACb,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AAClD,IAAI,IAAI,UAAU,EAAE,OAAO,UAAU;AACrC,GAAG;AACH,GAAG;AACH;AACA,CAAC,OAAO,IAAI;AACZ;AACA,SAAS,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE;AACrD,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACjD,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACpD,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACrF;AACA,MAAM,UAAU,GAAG;AACnB,CAAC,IAAI,EAAE,SAAS;AAChB,CAAC,OAAO,EAAE,KAAK;AACf,CAAC,UAAU,EAAE,KAAK;AAClB,CAAC,eAAe,EAAE,aAAa;AAC/B,CAAC,UAAU,EAAE;AACb,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS;AAChC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;AACrD,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,OAAO;AAClD,EAAE,MAAM,EAAE,MAAM,IAAI;AACpB,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,kBAAkB,EAAE,sBAAsB,IAAI,GAAG;AACnD,EAAE;AACF,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AAClE,MAAM,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC;AACjD,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;AAC5E,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvH,MAAM,OAAO;AACb,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC;AACtC,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU;AACzE,EAAE;AACF;AACA,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AACvB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK;AACzC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,OAAO,IAAI;AACpE,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI;AACnG,CAAC,OAAO,KAAK;AACb;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AACzB,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AACrB,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,KAAK;AAC5C,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AACntB;AACA,SAAS,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;AACpD,CAAC,QAAQ,QAAQ;AACjB,EAAE,KAAK,OAAO,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;AACnD,EAAE,KAAK,KAAK,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;AAC/C,EAAE,SAAS,OAAO;AAClB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjB,GAAG,QAAQ;AACX,GAAG;AACH,GAAG;AACH;AACA;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACpD;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;AACzC,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;AACtC,CAAC,QAAQ,QAAQ;AACjB,EAAE,KAAK,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9D,EAAE,KAAK,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1D,EAAE,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;AACjG,GAAG,iBAAiB;AACpB,GAAG,QAAQ;AACX,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,GAAG;AACH,OAAO,OAAO;AACd,GAAG,iBAAiB;AACpB,GAAG,QAAQ;AACX,GAAG,CAAC,SAAS,EAAE,MAAM;AACrB,GAAG;AACH;AACA;AACA,SAAS,cAAc,CAAC,QAAQ,EAAE;AAClC,CAAC,QAAQ,QAAQ;AACjB,EAAE,KAAK,OAAO,EAAE,OAAO,IAAI;AAC3B,EAAE,KAAK,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;AACtC,EAAE,SAAS,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC1C;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;AACrB;;MC7oQa,KAAK,CAAA;AACT,IAAA,MAAM;AAEd,IAAA,WAAA,CACC,GAAG,IACsF,EAAA;AAEzF,QAAA,QAAQ,IAAI,CAAC,MAAM;AAClB,YAAA,KAAK,CAAC;AACL,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,YAAYE,OAAa,EAAE;AACrC,oBAAA,MAAM,KAAK,GAAkB,IAAI,CAAC,CAAC,CAAC;AACpC,oBAAA,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AACjB,wBAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC1B;oBACD;oBAEA,IAAI,CAAC,MAAM,GAAG;AACb,wBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACrC,wBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACrC,wBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;qBACzB;oBACD;gBACD;gBACA,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAChC,oBAAA,MAAM,KAAK,GAAW,IAAI,CAAC,CAAC,CAAC;AAC7B,oBAAA,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC1B,wBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;4BACvB,IAAI,CAAC,MAAM,GAAG;gCACb,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG;6BACH;4BACD;wBACD;AAAO,6BAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,IAAI,CAAC,MAAM,GAAG;gCACb,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BACtB;4BACD;wBACD;oBACD;gBACD;gBACA;AACD,YAAA,KAAK,CAAC;gBACL,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C;AACD,YAAA,KAAK,CAAC;gBACL,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClD;;QAGF,MAAM,KAAK,CACV,+BAA+B;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,YAAA,2FAA2F,CAC5F;QAED,SAAS,GAAG,CAAC,IAAY,EAAA;AACxB,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B;IACD;AAEO,IAAA,WAAW,WAAW,GAAA;QAC5B,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B;AAEA,IAAA,IAAW,GAAG,GAAA;QACb,OAAO,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE;IACjI;AAEA,IAAA,IAAW,GAAG,GAAA;AACb,QAAA,OAAO,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAC7E;AAEA,IAAA,IAAW,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG;IAC5B;AAEA,IAAA,IAAW,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtB;IAEA,IAAW,KAAK,CAAC,IAAY,EAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D;IAEO,KAAK,GAAA;QACX,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC;AACA;AAED,SAAS,GAAG,CAAC,GAAW,EAAA;IACvB,IAAI,GAAG,GAAG,CAAC;QAAE,GAAG,GAAG,CAAC;IACpB,IAAI,GAAG,GAAG,GAAG;QAAE,GAAG,GAAG,GAAG;AACxB,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;AACtD,IAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACxC;;AC/FA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,SAAU,mBAAmB,CAAC,MAAY,EAAE,MAAc,EAAA;IAC/D,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAAE,QAAA,OAAO,MAAM;;IAGpD,MAAM,OAAO,GAAS,EAAE;AACxB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;AAC1C,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;AAC1C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACxC,QAAA,IAAI,GAAG,GAAG,KAAK,EAAE;;AAEhB,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjF;aAAO;AACN,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;QAC5C;IACD;IAEA,MAAM,MAAM,GAAS,EAAE;;IAGvB,MAAM,CAAC,IAAI,CAAC;AACX,QAAA,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;AACxC,QAAA,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;AACxC,KAAA,CAAC;;AAGF,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE;AAC1B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAE;QAEtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,QAAA,IAAI,IAAI,GAAG,KAAK,EAAE;;YAEjB,MAAM,CAAC,IAAI,CAAC;AACX,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AAC/B,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AAC/B,aAAA,CAAC;QACH;aAAO;AACN,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;AACpB,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;AACpB,YAAA,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;;YAErC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO;AACjF,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,UAAU;YACjC,MAAM,CAAC,IAAI,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBAC5B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;AAC5B,aAAA,CAAC;QACH;IACD;;AAGA,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE;IAC1C,MAAM,CAAC,IAAI,CAAC;AACX,QAAA,CAAC,EAAE,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AACrC,QAAA,CAAC,EAAE,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AACrC,KAAA,CAAC;AAEF,IAAA,OAAO,MAAM;AACd;AAEM,SAAU,aAAa,CAAC,QAAmB,EAAA;;AAEhD,IAAA,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAA,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;;AAGlC,IAAA,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,IAAA,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAE5B,IAAA,OAAO,MAAM;AACd;AAEA,SAAS,iBAAiB,CAAC,QAAmB,EAAE,UAAkB,EAAA;AACjE,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAE,GAAG,KAAK,CAAC,UAAU,CAAE;YAAE,GAAG,CAAC,OAAO,EAAE;IAC3E;AACD;AAEA,SAAS,WAAW,CAAC,QAAmB,EAAA;AACvC,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB;AAC5C,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE;YACV,IAAI,GAAG,EAAE;AACT,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACvB;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACf;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW;IAClC,MAAM,MAAM,GAAc,EAAE;AAC5B,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC3B,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE;AACtB,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChB,QAAA,MAAM,KAAK,GAAY,CAAC,GAAG,GAAG,CAAC;QAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,UAAU,GAAG;cACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;cAC3D,SAAS;QACZ,OAAO,UAAU,EAAE;AAClB,YAAA,IAAI,IAAyB;AAC7B,YAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;gBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,GAAG,CAAC;oBACR;gBACD;YACD;AACA,YAAA,IAAI,CAAC,IAAI;gBAAE;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACjB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;YAC1D,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,YAAA,UAAU,GAAG;kBACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;kBAC3D,SAAS;QACb;AACA,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACnB;AAEA,IAAA,OAAO,MAAM;AACd;SAEgB,cAAc,CAAC,MAAiB,EAAE,KAAK,GAAG,KAAK,EAAA;IAC9D,IAAI,CAAC,GAAG,EAAE;AACV,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,CAAC,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;AACtB,YAAA,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,YAAA,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,YAAA,IAAI,EAAE,KAAK,CAAC,EAAE;gBACb,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9B,gBAAA,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG;YAC1C;AAAO,iBAAA,IAAI,EAAE,KAAK,CAAC,EAAE;gBACpB,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9B,gBAAA,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG;YAC1C;iBAAO;AACN,gBAAA,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;AACrD,gBAAA,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACnD,gBAAA,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG;YAC1C;YACA,EAAE,GAAG,CAAC;YACN,EAAE,GAAG,CAAC;QACP;AACA,QAAA,IAAI,KAAK;YAAE,CAAC,IAAI,GAAG;IACpB;AACA,IAAA,OAAO,CAAC;AACT;AAEM,SAAU,SAAS,CAAC,MAAc,EAAA;AACvC,IAAA,IAAI,MAAM,GAAG,EAAE,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC;AAC3B,IAAA,IAAI,QAAQ;QAAE,MAAM,GAAG,CAAC,MAAM;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACrC,IAAA,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE;IACxB,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;AAClE;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG,IAAI;AAC5B,MAAM,cAAc,GAAG,GAAG;AAC1B,MAAM,gBAAgB,GAAG,GAAG;AAC5B,MAAM,oBAAoB,GAAG,IAAI;AAEjC;AACA;AACA;AACA,MAAM,qBAAqB,GAAG,GAAG;MAEpB,WAAW,CAAA;AACP,IAAA,KAAK;AAEL,IAAA,MAAM;AAEb,IAAA,IAAI;AAEb,IAAA,gBAAgB;AAEP,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAGhC;AAEM,IAAA,iBAAiB,GAAG,IAAI,GAAG,EAGjC;AAEM,IAAA,cAAc,GAAG,IAAI,GAAG,EAAiD;AACzE,IAAA,eAAe,GAAG,IAAI,GAAG,EAAgD;AAElF,IAAA,WAAA,CAAmB,GAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW;IAC1C;AAEO,IAAA,kBAAkB,CAAC,KAAsB,EAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,QAAA,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IAC9B;IAEO,YAAY,CAAC,EAAU,EAAE,QAAgC,EAAA;AAC/D,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;;;;;;;QAQ3B,MAAM,UAAU,GAA6C,EAAE;QAC/D,MAAM,aAAa,GAA6C,EAAE;AAClE,QAAA,IAAI,cAAkC;AACtC,QAAA,IAAI,iBAAqC;QACzC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AACrC,YAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;gBAAE;AAExB,YAAA,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAClD,kBAAE;kBACA,yBAAyB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,EAAA,CAAI;YAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;;AAGrF,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,YAAA,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;gBACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,GAAG,WAAW;AAC/C,gBAAA,IAAI,GAAG,KAAK,cAAc,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAG,SAAS,GAAG,WAAW,CAAA,CAAE,EAAE,CAAC;oBACxF,cAAc,GAAG,GAAG;gBACrB;gBACA,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAE;gBAChD,KAAK,MAAM,IAAI,IAAI,KAAK;AAAE,oBAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACpD;;;;;;;;YASA,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;gBACxD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;AAClD,gBAAA,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE;oBAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,GAAG,SAAS,GAAG,WAAW;AACtD,oBAAA,IAAI,GAAG,KAAK,iBAAiB,EAAE;wBAC9B,aAAa,CAAC,IAAI,CAAC;AAClB,4BAAA,QAAQ,EAAE,EAAE;AACZ,4BAAA,KAAK,EAAE,CAAA,YAAA,EAAe,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,WAAW,CAAA,CAAE;AAC/G,yBAAA,CAAC;wBACF,iBAAiB,GAAG,GAAG;oBACxB;oBACA,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAE;oBACtD,KAAK,MAAM,IAAI,IAAI,KAAK;AAAE,wBAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD;YACD;AACD,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3C,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE;AAC7C,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,CAAK,CAAC;QAC1E;QACA,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,CAAK,CAAC;QAC1E;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;IAEO,eAAe,CAAC,EAAU,EAAE,QAAgC,EAAA;AAClE,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;;;QAI3B,MAAM,MAAM,GAA6C,EAAE;AAC3D,QAAA,IAAI,UAA8B;QAClC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AACrC,YAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;gBAAE;YACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;gBAAE;AAE1C,YAAA,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAClD,kBAAE;kBACA,yBAAyB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,EAAA,CAAI;YAC7D,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC;kBACxB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;kBAClE,EAAE;;;;;AAKL,YAAA,MAAM,WAAW,GAChB,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/E,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,GAAG,WAAW;YACpD,MAAM,WAAW,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAA,UAAA,EAAa,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;YAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAA,cAAA,EAAiB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;AAC5F,YAAA,MAAM,GAAG,GAAG;AACX,gBAAA,KAAK,CAAC,GAAG;gBACT,YAAY;AACZ,gBAAA,KAAK,CAAC,GAAG;AACT,gBAAA,KAAK,CAAC,IAAI;AACV,gBAAA,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,UAAU;AACV,aAAA,CAAC,IAAI,CAAC,IAAI,CAAC;AAEZ,YAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACvB,gBAAA,MAAM,KAAK,GAAG;oBACb,aAAa;AACb,oBAAA,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC;oBAC/B,CAAA,gBAAA,EAAmB,KAAK,CAAC,GAAG,CAAA,CAAA,CAAG;oBAC/B,CAAA,iBAAA,EAAoB,KAAK,CAAC,IAAI,CAAA,CAAA,CAAG;AACjC,oBAAA,CAAA,mBAAA,EAAsB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;iBACjD;AACD,gBAAA,IAAI,YAAY;AAAE,oBAAA,KAAK,CAAC,IAAI,CAAC,qBAAqB,YAAY,CAAA,CAAA,CAAG,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC;AACX,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU;AAC7D,iBAAA,CAAC;gBACF,UAAU,GAAG,GAAG;YACjB;YACA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE;YAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;gBAClF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3C,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE;AACzC,YAAA,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;AACtC,YAAA,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,CAAK,CAAC;QAC7C;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;;AAGA,IAAA,aAAa,CAAC,IAAY,EAAA;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,GAAG,eAAe,CAAC;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE;AACT,YAAA,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAA,UAAA,EAAa,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE;YAC5E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QACtC;QACA,OAAO,GAAG,CAAC,QAAQ;IACpB;IAEO,WAAW,CAAC,EAAU,EAAE,QAAkC,EAAA;AAChE,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;;;QAI3B,MAAM,MAAM,GAAoD,EAAE;AAClE,QAAA,IAAI,UAA8B;QAClC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AACrC,YAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;gBAAE;YACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;gBAAE;AAE3C,YAAA,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAClD,kBAAE;kBACA,yBAAyB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,EAAA,CAAI;YAC7D,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;AAChD,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC;;;;;YAKvC,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;AAClF,YAAA,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC;YAC9C,MAAM,WAAW,GAAG;AACnB,kBAAE,CAAA,CAAA,EAAI,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;kBAC5D,EAAE;YACL,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;YACrF,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAEtF,YAAA,IAAI,GAAG,KAAK,UAAU,EAAE;gBACvB,MAAM,CAAC,IAAI,CAAC;AACX,oBAAA,MAAM,EAAE,EAAE;AACV,oBAAA,KAAK,EAAE,CAAA,GAAA,EAAM,aAAa,CAAA,EAAA,EAAK,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAG,WAAW,CAAA,EAAG,SAAS,CAAA,EAAG,WAAW,CAAA,CAAE;AACxF,iBAAA,CAAC;gBACF,UAAU,GAAG,GAAG;YACjB;YACA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE;YACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACjC,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC;AAAE,oBAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3C,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE;YACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,YAAA,EAAe,SAAS,CAAC,CAAC,CAAC,CAAA,MAAA,EAAS,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA,GAAA,CAAK,CAAC;YAChF;QACD;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;IAEO,UAAU,CAAC,EAAU,EAAE,QAAiC,EAAA;AAC9D,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;AAE3B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE;YAEvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,YAAA,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;gBAAE;YAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE;AAChC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE;AAChD,YAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAE1C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gCAAgC;AAC3E,YAAA,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AAEzD,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5C,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5C,YAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAE1C,YAAA,MAAM,KAAK,GAAa;AACvB,gBAAA,CAAA,GAAA,EAAM,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,CAAG;AACtB,gBAAA,CAAA,GAAA,EAAM,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,CAAG;AACtB,gBAAA,CAAA,aAAA,EAAgB,SAAS,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;AACxC,gBAAA,CAAA,WAAA,EAAc,QAAQ,CAAA,CAAA,CAAG;AACzB,gBAAA,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,CAAG;AAC5B,gBAAA,CAAA,mBAAA,EAAsB,QAAQ,CAAA,CAAA,CAAG;aACjC;YAED,IAAI,EAAE,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,CAAG,CAAC;YACjD,IAAI,EAAE,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,CAAG,CAAC;AAEjD,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,KAAK,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;YAC5F;YAEA,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5C,YAAA,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;AAC/C,gBAAA,KAAK,CAAC,IAAI,CACT,2BAA2B,EAC3B,WAAW,SAAS,CAAC,GAAG,CAAA,CAAA,CAAG,EAC3B,CAAA,cAAA,EAAiB,SAAS,GAAG,EAC7B,yBAAyB,CACzB;AACD,gBAAA,IAAI,SAAS,CAAC,KAAK,GAAG,GAAG;AAAE,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;YAC1F;YAEA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;AAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;YAE1E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,OAAA,CAAS,CAAC;QAC3E;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;AAEO,IAAA,SAAS,CAAC,EAAU,EAAE,QAAgC,EAAE,WAAwB,EAAA;AACtF,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;QAE3B,MAAM,QAAQ,GAAa,EAAE;QAE7B,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE;AACxC,YAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;gBAAE;YAExB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3C,YAAA,IAAI,CAAC,MAAM;gBAAE;YAEb,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE;AAChC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE;YAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU;AAC5C,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK;AAClC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK;AAEnC,YAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;AACtE,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ;AAClD,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ;YAElD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;;AAG5D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AAC/C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;AAChD,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY;YACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACzC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE;oBACnC,KAAK,EAAE,CAAA,aAAA,EAAgB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA,CAAE;AAC3D,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,MAAM,EAAE,IAAI;oBACZ,IAAI,EAAE,MAAM,CAAC,YAAY;AACzB,iBAAA,CAAC;YACH;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE;;AAGrD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAA,EAAG,KAAK,CAAC,KAAK,CAAA,EAAA,EAAK,QAAQ,CAAA,CAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE;oBAClC,QAAQ,EAAE,UAAU,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,CAAE;oBAC5C,UAAU,EAAE,QAAQ,CAAC,KAAK;AAC1B,oBAAA,CAAC,EAAE,IAAI;AACP,oBAAA,CAAC,EAAE,IAAI;AACP,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,MAAM,EAAE,IAAI;AACZ,iBAAA,CAAC;YACH;YACA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAE;;AAGlD,YAAA,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAA,OAAA,EAAU,WAAW,CAAC,KAAK,CAAC,GAAG;YACnE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;;YAGrF,IAAI,UAAU,GAAG,EAAE;AACnB,YAAA,IAAI,KAAK,CAAC,GAAG,EAAE;gBACd,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5C,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;gBAC1D,MAAM,SAAS,GAAG;AACjB,sBAAE,CAAA,KAAA,EAAQ,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACrE,sBAAE,CAAA,KAAA,EAAQ,SAAS,CAAC,GAAG,EAAE;gBAE1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACxC,oBAAA,MAAM,QAAQ,GAAG,CAAA,IAAA,EAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,CAAE;oBAC1D,MAAM,gBAAgB,GACrB,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG,CAAA,gBAAA,EAAmB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAChF,oBAAA,IAAI,OAAe;oBACnB,IAAI,OAAO,EAAE;wBACZ,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;wBAC/C,MAAM,gBAAgB,GACrB,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG,CAAA,gBAAA,EAAmB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;wBAChF,OAAO;AACN,4BAAA,CAAA,YAAA,EAAe,QAAQ,CAAA,qCAAA,CAAuC;;gCAE9D,CAAA,8HAAA,CAAgI;;AAEhI,gCAAA,CAAA,mDAAA,EAAsD,UAAU,CAAA,qBAAA,CAAuB;AACvF,gCAAA,CAAA,sBAAA,EAAyB,SAAS,CAAC,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAA,sBAAA,CAAwB;gCAClF,CAAA,wEAAA,CAA0E;;AAE1E,gCAAA,CAAA,sBAAA,EAAyB,SAAS,CAAC,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAA,sBAAA,CAAwB;gCAClF,CAAA,yEAAA,CAA2E;gCAC3E,CAAA,uDAAA,CAAyD;AACzD,gCAAA,CAAA,SAAA,CAAW;oBACb;yBAAO;wBACN,OAAO;AACN,4BAAA,CAAA,YAAA,EAAe,QAAQ,CAAA,sEAAA,CAAwE;;gCAE/F,CAAA,8HAAA,CAAgI;;AAEhI,gCAAA,CAAA,sBAAA,EAAyB,SAAS,CAAC,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAA,kBAAA,CAAoB;gCAC9E,CAAA,oDAAA,CAAsD;AACtD,gCAAA,CAAA,SAAA,CAAW;oBACb;AACA,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAC1D;AACA,gBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE;AACxD,gBAAA,UAAU,GAAG,CAAA,cAAA,EAAiB,QAAQ,CAAA,EAAA,CAAI;YAC3C;AAEA,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,gBAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CACvB,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EACtC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CACtC;gBACD,QAAQ,CAAC,IAAI,CACZ,CAAA,qBAAA,EAAwB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;AAClF,oBAAA,CAAA,wBAAA,EAA2B,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAA,CAAA,EAAI,WAAW,CAAA,EAAG,UAAU,CAAA,CAAA,CAAG;AAC5G,oBAAA,CAAA,kBAAA,EAAqB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,IAAA,CAAM;AACrD,oBAAA,CAAA,QAAA,CAAU,CACX;YACF;iBAAO;AACN,gBAAA,QAAQ,CAAC,IAAI,CACZ,2BAA2B,SAAS,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,QAAQ,IAAI,WAAW,CAAA,EAAG,UAAU,CAAA,CAAA,CAAG;AAC3G,oBAAA,CAAA,kBAAA,EAAqB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,IAAA,CAAM;AACrD,oBAAA,CAAA,IAAA,CAAM,CACP;YACF;QACD;AAEA,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;AAE3B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,SAAS,CAAC,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;AAEO,IAAA,eAAe,CAAC,EAAU,EAAE,KAAmB,EAAE,KAAkB,EAAA;AACzE,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AACxB,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;YAAE;QAExB,MAAM,OAAO,GAAa,EAAE;AAC5B,QAAA,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,WAAA,EAAc,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,IAAA,CAAM,CAAC;AACpF,QAAA,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;AACrF,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;AACjF,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;AAC3D,YAAA,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAA,WAAA,EAAc,MAAM,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;QAClD;AAEA,QAAA,IAAI,MAAM,GAAG,CAAA,IAAA,EAAO,SAAS,CAAC,EAAE,CAAC,CAAA,WAAA,EAAc,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;AACvE,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;QAElE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,CAAA,CAAG,CAAC;AAE/B,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;AAChD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAC1D,IAAI,KAAK,GAAG,CAAA,GAAA,EAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA,KAAA,EAAQ,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA,SAAA,EAAY,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAA,UAAA,EAAa,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAA,CAAA,CAAG;AAC5N,YAAA,IAAI,SAAS;gBAAE,KAAK,IAAI,oCAAoC;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,KAAK,CAAA,GAAA,CAAK,CAAC;QACrC;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB;IAEO,SAAS,GAAA;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;;QAGhC,MAAM,WAAW,GAAG,CAAC,CAAA,+BAAA,EAAkC,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,cAAA,CAAgB,CAAC;QACvF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE;AACnD,YAAA,WAAW,CAAC,IAAI,CACf,CAAA,WAAA,EAAc,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,CAAM,CACtJ;QACF;QACA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE;AAClD,YAAA,MAAM,MAAM,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,OAAO;AACrC,YAAA,WAAW,CAAC,IAAI,CACf,CAAA,cAAA,EAAiB,SAAS,CAAC,MAAM,CAAC,CAAA,eAAA,EAAkB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,eAAA,CAAiB,EAC3H,CAAA,YAAA,EAAe,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,qBAAA,EAAwB,SAAS,CAAC,MAAM,CAAC,CAAA,qBAAA,EAAwB,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA,KAAA,EAAQ,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,iBAAA,CAAmB,CACrM;QACF;AACA,QAAA,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;AACvD,YAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1B;AACA,QAAA,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE;;;;;;YAMjE,WAAW,CAAC,IAAI,CACf,CAAA,YAAA,EAAe,QAAQ,CAAA,kDAAA,EAAqD,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,EAAA,CAAI;AAC9F,gBAAA,CAAA,8BAAA,EAAiC,MAAM,CAAA,IAAA,CAAM;gBAC7C,CAAA,mDAAA,EAAsD,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,MAAM,CAAC,oBAAoB,CAAC,CAAA,0BAAA,CAA4B;AACtJ,gBAAA,CAAA,SAAA,CAAW,CACZ;QACF;AAEA,QAAA,MAAM,KAAK,GAAG;AACb,YAAA,CAAA,kBAAA,EAAqB,CAAC,CAAA,CAAA,EAAI,CAAC,YAAY,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,gFAAA,CAAkF;AACxI,YAAA,CAAA,UAAA,EAAa,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,SAAA,CAAW;YAChD,CAAA,iCAAA,CAAmC;SACnC;QACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CACT,CAAA,2BAAA,EAA8B,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA,GAAA,CAAK,CAC3I;QACF;AACA,QAAA,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC1C,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;AACA;AAED,SAAS,QAAQ,CAAC,KAAY,EAAA;AAC7B,IAAA,IAAI,IAAI,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,GAAG,GAAG;AAChC,IAAA,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG;QAAE,IAAI,IAAI,CAAA,eAAA,EAAkB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;AAC5E,IAAA,OAAO,IAAI;AACZ;AAEA,SAAS,UAAU,CAAC,KAAY,EAAE,KAAa,EAAA;IAC9C,IAAI,IAAI,GAAG,CAAA,QAAA,EAAW,KAAK,CAAC,GAAG,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA,CAAG;AAC1D,IAAA,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG;QAAE,IAAI,IAAI,CAAA,iBAAA,EAAoB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;AAC9E,IAAA,OAAO,IAAI;AACZ;AAEA,SAAS,YAAY,CAAC,CAAS,EAAA;IAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACrC;AAEA,SAAS,WAAW,CAAC,CAAS,EAAA;AAC7B,IAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE;AAClD;AAEA,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAA;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAChD;AAEA,SAAS,WAAW,CAAC,CAAmB,EAAA;AACvC,IAAA,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACzC;AAEA,SAAS,aAAa,CAAC,MAAc,EAAA;IACpC,QAAQ,MAAM;AACb,QAAA,KAAK,MAAM;AACV,YAAA,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;AAC5B,QAAA,KAAK,OAAO;AACX,YAAA,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;AAC1B,QAAA,KAAK,KAAK;AACT,YAAA,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AACtC,QAAA,KAAK,QAAQ;AACZ,YAAA,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AACrC,QAAA,KAAK,UAAU;AACd,YAAA,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACrC,QAAA,KAAK,WAAW;AACf,YAAA,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC;AACnC,QAAA,KAAK,aAAa;AACjB,YAAA,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpC,QAAA,KAAK,cAAc;AAClB,YAAA,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAClC,QAAA;AACC,YAAA,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAE/B;AAEA,SAAS,aAAa,CAAC,MAAc,EAAE,CAAS,EAAE,CAAS,EAAA;IAC1D,QAAQ,MAAM;AACb,QAAA,KAAK,MAAM;YACV,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAA,KAAK,OAAO;YACX,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,QAAA,KAAK,KAAK;YACT,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnB,QAAA,KAAK,QAAQ;YACZ,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,QAAA,KAAK,UAAU;AACd,YAAA,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,QAAA,KAAK,WAAW;AACf,YAAA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,QAAA,KAAK,aAAa;AACjB,YAAA,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,QAAA,KAAK,cAAc;AAClB,YAAA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,QAAA;YACC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;;AAE1B;AAEA,SAAS,SAAS,CAAC,CAAS,EAAA;AAC3B,IAAA,OAAO;AACL,SAAA,OAAO,CAAC,IAAI,EAAE,OAAO;AACrB,SAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,SAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,SAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1B;;MCvmBa,OAAO,CAAA;AACZ,IAAA,CAAC;AAED,IAAA,CAAC;IAER,WAAA,CAAmB,CAAS,EAAE,CAAS,EAAA;AACtC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;IACX;IAEO,MAAM,GAAA;QACZ,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;IACpC;AAEO,IAAA,KAAK,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,CAAC,IAAI,MAAM;AAChB,QAAA,IAAI,CAAC,CAAC,IAAI,MAAM;AAChB,QAAA,OAAO,IAAI;IACZ;AAEO,IAAA,SAAS,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAClB,QAAA,OAAO,IAAI;IACZ;IAEO,gBAAgB,GAAA;AACtB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC;AAC9C,QAAA,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;IAC/F;AACA;MAEY,OAAO,CAAA;AACH,IAAA,IAAI;AAEJ,IAAA,EAAE;AAEF,IAAA,UAAU;AAEV,IAAA,QAAQ;AAER,IAAA,QAAQ;AAExB,IAAA,KAAK;AAEL,IAAA,WAAA,CAAmB,GAMlB,EAAA;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;IAC7B;IAEO,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK;QACjC,IAAI,IAAI,GAAG,QAAQ;QACnB,IAAI,IAAI,GAAG,QAAQ;AACnB,QAAA,IAAI,IAAI,GAAG,CAAC,QAAQ;AACpB,QAAA,IAAI,IAAI,GAAG,CAAC,QAAQ;QACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACtB,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,oBAAA,IAAI,GAAG,KAAK,CAAC,CAAC;AAClC,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,oBAAA,IAAI,GAAG,KAAK,CAAC,CAAC;AAClC,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,oBAAA,IAAI,GAAG,KAAK,CAAC,CAAC;AAClC,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,oBAAA,IAAI,GAAG,KAAK,CAAC,CAAC;AACnC,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK;IAClB;AAEO,IAAA,WAAW,CAAC,IAAU,EAAA;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;QAClC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAC1C,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAC1C,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAC1C,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;AAC1C,QAAA,OAAO,IAAI;IACZ;AACA;;ACvGK,SAAU,iBAAiB,CAChC,KAAa,EACb,MAAc,EACd,MAAwB,EACxB,IAAY,EACZ,OAAgB,EAAA;AAEhB,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,QAAQ,CAAC;AACjE,IAAA,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,SAAA,gBAAgB;AAChB,SAAA,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;AACvB,IAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;AAE7C,IAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ;AACjC,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ;AAClC,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAClE,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAClE,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAClE,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAElE,IAAA,MAAM,YAAY,GAAG,CAAC,IAAI,SAAS;IACnC,MAAM,KAAK,GAAe,EAAE;AAC5B,IAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,YAAY,IAAI,YAAY;AACnE,QAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY;gBAAE;YAChC,KAAK,CAAC,IAAI,CAAC;AACV,gBAAA,CAAC,EAAE,QAAQ;gBACX,CAAC;AACD,gBAAA,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,QAAQ;AAC5D,gBAAA,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,QAAQ;AAC7D,aAAA,CAAC;QACH;IACD;AAEA,IAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;AACtC;AAOO,eAAe,OAAO,CAC5B,GAAW,EACX,CAAS,EACT,CAAS,EACT,CAAS,EAAA;AAET,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjG,IAAA,IAAI;AACH,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAAE,YAAA,OAAO,IAAI;AAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE;AAC3C,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B;AACtF,QAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE;IAC/B;IAAE,OAAO,KAAc,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,CAAA,qBAAA,EAAwB,OAAO,CAAA,CAAE,EAAE,KAAK,CAAC;AACtD,QAAA,OAAO,IAAI;IACZ;AACD;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;AACd,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;AACd;;AAEA,KAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG;AACV,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3D,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AACjC,eAAe,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AACjC,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,EAAE;AACZ,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,CAAC,EAAE;AACf,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/B,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7B,QAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,CAAC,EAAE;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,CAAC,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;AACnC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,IAAI,CAAC;;AAEL;AACA,IAAI,QAAQ,CAAC,CAAC,EAAE;AAChB,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,IAAI,CAAC,CAAC,EAAE;AACZ,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,IAAI,CAAC,CAAC,EAAE;AACZ,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,KAAK,CAAC,CAAC,EAAE;AACb,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;AACnB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,IAAI,CAAC,CAAC,EAAE;AACZ,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;AACnB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,WAAW,CAAC,CAAC,EAAE;AACnB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,YAAY,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,YAAY,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AAC3C,YAAY,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,YAAY,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;;AAEL,IAAI,WAAW,EAAE;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE;AAC5B,QAAQ,6BAA6B,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,QAAQ,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AAChD,QAAQ,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AAC7D,CAAC;;AC/TD;AACA;;AAEO,MAAM,iBAAiB,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAChD;;AAEA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAE7C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC;;AAErB;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,SAAS;;AAE3B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;;AAE7B,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE;AACrD,iBAAiB,IAAI,GAAG,KAAK,EAAE,EAAE;AACjC,gBAAgB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,GAAG;AAC1D,gBAAgB,OAAO,GAAG,CAAC,GAAG,GAAG,OAAO,EAAE;AAC1C,oBAAoB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AACtD,oBAAoB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC1D,oBAAoB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK;AAChD,gBAAgB;AAChB,YAAY,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,iCAAiC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9F,iBAAiB,IAAI,GAAG,KAAK,EAAE,EAAE;AACjC,gBAAgB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG;AACxC,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,IAAI;;AAEJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AAC1E,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS;;AAEhC,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE9C;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;;AAExB;AACA,QAAQ,IAAI,IAAI;;AAEhB,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,IAAI,CAAC,GAAG,CAAC;;AAEjB,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,IAAI,MAAM,IAAI,CAAC,EAAE;AAC7B,gBAAgB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE;AAC/C,gBAAgB,GAAG,GAAG,MAAM,GAAG,GAAG;AAClC,gBAAgB,MAAM,GAAG,MAAM,IAAI,CAAC;AACpC,gBAAgB,IAAI,MAAM,KAAK,CAAC,EAAE;AAClC,YAAY;;AAEZ,YAAY,MAAM,EAAE;;AAEpB,YAAY,IAAI,GAAG,KAAK,CAAC,EAAE;AAC3B,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAExC,YAAY,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AAClC,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEpD,YAAY,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;;AAElC;AACA,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/C,gBAAgB;;AAEhB,YAAY,CAAC,MAAM;AACnB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;AACzD,YAAY;AACZ,QAAQ;;AAER,QAAQ,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAElC,QAAQ,OAAO,KAAK;AACpB,IAAI;;AAEJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AAC1E,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS;;AAEhC,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,GAAG;AAC9C,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB,YAAY,MAAM,GAAG,CAAC;AACtB,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,EAAE,GAAG,QAAQ;AACzB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC1B,YAAY,EAAE,GAAG,QAAQ;AACzB,YAAY,EAAE,GAAG,CAAC,QAAQ;;AAE1B,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,IAAI,MAAM,IAAI,CAAC,EAAE;AAC7B,gBAAgB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE;AAC/C,gBAAgB,GAAG,GAAG,MAAM,GAAG,GAAG;AAClC,gBAAgB,MAAM,GAAG,MAAM,IAAI,CAAC;AACpC,gBAAgB,IAAI,MAAM,KAAK,CAAC,EAAE;AAClC,YAAY;;AAEZ,YAAY,MAAM,EAAE;;AAEpB,YAAY,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AACxC,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;;AAElC,YAAY,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AAClC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;AACzD,YAAY;AACZ,QAAQ;;AAER,QAAQ,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/B,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAChC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAChC,YAAY,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;;AAE1C;AACA,QAAQ,SAAS,YAAY,CAAC,CAAC,EAAE;AACjC,YAAY,OAAO;AACnB,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG;AAC7C,gBAAgB,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG;AAC7F,aAAa;AACb,QAAQ;;AAER;AACA,QAAQ,SAAS,WAAW,CAAC,IAAI,EAAE;AACnC,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AACzC,QAAQ;;AAER;AACA,QAAQ,IAAI,QAAQ;;AAEpB,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AAC7B,YAAY,MAAM,MAAM,GAAG,EAAE;AAC7B,YAAY,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACzC,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;AACnD,YAAY,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1C,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC;;AAEjD,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;;AAEpC,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;AACzD,YAAY,QAAQ,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC;AAC/C,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACjE,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,CAAC;;AAEtD,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AACpC,YAAY,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;AACpD,YAAY,MAAM,WAAW,GAAG,EAAE;AAClC,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1D,YAAY;AACZ,YAAY,QAAQ,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC;AAC/C,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9D,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC;AACnD,QAAQ,CAAC,MAAM;;AAEf,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AACnD,QAAQ;;AAER;AACA,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,QAAQ;AACpB,YAAY,UAAU,EAAE,IAAI,CAAC;AAC7B,SAAS;;AAET,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE;AAC7B,YAAY,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAC/B,QAAQ;;AAER,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;;AAEA;AACA,iBAAiB,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC;;AAEvE;AACA;AACA;AACO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM;;AAE5B,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;;AAEhC,IAAI,MAAM,QAAQ,GAAG,EAAE;AACvB,IAAI,IAAI,OAAO,EAAE,GAAG;;AAEpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE;;AAExB,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;;AAE7C,QAAQ,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE;AAC9B,YAAY,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/C,YAAY,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAEhC,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAY,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEvC,IAAI,OAAO,QAAQ;AACnB;;AAEA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;AAC9E,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;;AAEO,MAAM,eAAe,CAAC;AAC7B;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC1B;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC;;AAEvB;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;;AAEvB;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEvB;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;;AAEzB;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;;AAE3B,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM;AAC/C,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE;AACxD,iBAAiB,IAAI,GAAG,KAAK,EAAE,EAAE;AACjC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,YAAY,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AACpE,iBAAiB,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACzE,iBAAiB,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE;AAC/D,iBAAiB,IAAI,GAAG,KAAK,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE;AACjE,iBAAiB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAQ;;AAER,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;AAC3C,IAAI;;AAEJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,CAAC,EAAE;AACf,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;;AAE/F,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;;AAEzC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AAC1D,QAAQ,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;AAC3F,IAAI;AACJ;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE1C,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC1B,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE;AACpC,QAAQ,KAAK;AACb,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE;AACzC,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE;AACxC,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE;AACzC,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7C,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE;AACzC,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE;AAC1C,YAAY,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE;AAC1C,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACjC,IAAI;AACJ,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,QAAQ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AAChD,IAAI;;AAEJ,IAAI,OAAO,KAAK;AAChB;;AAEO,MAAM,UAAU,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;AACvC;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,EAAE,EAAE;AAC5B,gBAAgB,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AAClF,gBAAgB,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK;AAC5D,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,IAAI;AACJ;;AChXA,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;;AAG3C;AACA;AACA,MAAM,uBAAuB,GAAG,EAAE;AAClC,MAAM,eAAe,GAAG,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC;;AAE5F,MAAM,UAAU,IAAI,CAAC,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,SAAS,KAAK,CAAC,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;;AAEf,MAAM,SAAS,CAAC;AACvB;AACA;AACA;AACA,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACtE,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/F,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC;AACrB,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;AACrC,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACrD,QAAQ,IAAI,KAAK;AACjB,QAAQ,QAAQ,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;AAC9C,YAAY,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAC1C,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/E,IAAI;;AAEJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3D,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC1D,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ;;AAEA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,aAAa;AACzH,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,aAAa;AACxH,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ,IAAI,SAAS,GAAG;AAChB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,GAAG;AAClB,IAAI;;AAEJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClC,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;;AAEhC,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAC9B,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,GAAG;AAC9E,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,GAAG;AAC9E,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,GAAG;AAC9E,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE;;AAEpD,QAAQ,OAAO,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;AACvD,IAAI;;AAEJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;AACrC,QAAQ,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACxD,IAAI;;AAEJ,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACzC,IAAI;;AAEJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG;AAChD,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;;AAEtB,QAAQ,IAAI,GAAG,GAAG,GAAG,IAAI,uBAAuB,IAAI,eAAe,EAAE;AACrE;AACA,YAAY,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,QAAQ;AACR;AACA,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3C,IAAI;;AAEJ,IAAI,SAAS,GAAG;AAChB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG;AAChD,YAAY,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACrD,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,QAAQ,OAAO,MAAM;AACrB,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,GAAG,GAAG,EAAE,EAAE,QAAQ,EAAE;AACzC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClE,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,GAAG,GAAG,EAAE,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,GAAG,GAAG,EAAE,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,GAAG,GAAG,EAAE,EAAE;AAC9B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACzD,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,GAAG,GAAG,EAAE,EAAE;AAC/B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,GAAG,GAAG,EAAE,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,kBAAkB,CAAC,GAAG,GAAG,EAAE,EAAE;AACjC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,GAAG,GAAG,EAAE,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ;AACA,IAAI,kBAAkB,CAAC,GAAG,GAAG,EAAE,EAAE;AACjC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5D,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;AACpF,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/D,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC;AACrC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG;AACnC,QAAQ,OAAO,GAAG,KAAK,CAAC;AACxB,IAAI;;AAEJ;AACA,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,QAAQ,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG;AAC9B,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;AACtE,aAAa,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG;AAC5E,aAAa,IAAI,IAAI,KAAK,WAAW,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACpD,aAAa,IAAI,IAAI,KAAK,WAAW,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACpD,aAAa,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,IAAI;AACJ;;AA6UA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG;AACrB,IAAI,IAAI,CAAC,EAAE,CAAC;;AAEZ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;AAEhF,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACpC,IAAI,OAAO,QAAQ,GAAG,IAAI,GAAG,WAAW,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,WAAW,KAAK,GAAG,KAAK,CAAC,CAAC;AACnG;;AA8JA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACjC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,GAAG,GAAG;;AAEf,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,IAAI,gBAAgB;AAC5B,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC;AACzB,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC;AACzB,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;;AAE7B,QAAQ,IAAI,CAAC,GAAG,gBAAgB,GAAG,GAAG,EAAE;;AAExC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;;AAEtB,QAAQ,IAAI,gBAAgB,KAAK,CAAC,EAAE;AACpC,YAAY,IAAI,EAAE,GAAG,IAAI,EAAE;AAC3B,gBAAgB,CAAC,GAAG,EAAE;AACtB,YAAY;AACZ,QAAQ,CAAC,MAAM,IAAI,gBAAgB,KAAK,CAAC,EAAE;AAC3C,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AACtC,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AACpD,gBAAgB,IAAI,CAAC,IAAI,IAAI,EAAE;AAC/B,oBAAoB,CAAC,GAAG,IAAI;AAC5B,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,MAAM,IAAI,gBAAgB,KAAK,CAAC,EAAE;AAC3C,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AAC9D,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AACxE,gBAAgB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE;AAChE,oBAAoB,CAAC,GAAG,IAAI;AAC5B,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,MAAM,IAAI,gBAAgB,KAAK,CAAC,EAAE;AAC3C,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AACtF,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAC9F,gBAAgB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,EAAE;AAClD,oBAAoB,CAAC,GAAG,IAAI;AAC5B,gBAAgB;AAChB,YAAY;AACZ,QAAQ;;AAER,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE;AACxB,YAAY,CAAC,GAAG,MAAM;AACtB,YAAY,gBAAgB,GAAG,CAAC;;AAEhC,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE;AAC/B,YAAY,CAAC,IAAI,OAAO;AACxB,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;AACjE,YAAY,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK;AAClC,QAAQ;;AAER,QAAQ,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,IAAI,gBAAgB;AAC7B,IAAI;;AAEJ,IAAI,OAAO,GAAG;AACd;;AChyBA,MAAM,WAAW,GAAG,IAAI;AACxB,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW;AAQ3E,eAAe,gBAAgB,CACrC,MAAwB,EACxB,GAAc,EACd,aAA4B,EAAA;AAE5B,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC1B,IAAA,IAAI,CAAC,KAAK;QAAE;IAEZ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI;IAEjC,MAAM,EACL,SAAS,EACT,QAAQ,EACR,KAAK,EAAE,eAAe,GACtB,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;IAElE,MAAM,OAAO,CAAC,GAAG,CAChB,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAmB;QACvE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAE5C,QAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9D,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE;AACd,gBAAA,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;AACxD,gBAAA,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAClC;AAEA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG;AACf,qBAAA,YAAY;AACZ,qBAAA,GAAG,CAAC,CAAC,IAAI,KACT,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KACd,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAC7E,CACD;AAEF,gBAAA,IAAI,IAAwC;AAC5C,gBAAA,IAAI,IAAe;AACnB,gBAAA,QAAQ,UAAU,CAAC,IAAI;oBACtB,KAAK,aAAa,CAAC,OAAO;AACzB,wBAAA,MAAM,KAAK,CAAC,qCAAqC,CAAC;oBACnD,KAAK,aAAa,CAAC,KAAK;wBACvB,IAAI,GAAG,OAAO;AACd,wBAAA,IAAI,GAAG,QAAQ,CAAC,MAAM;wBACtB;oBACD,KAAK,aAAa,CAAC,UAAU;wBAC5B,IAAI,GAAG,YAAY;AACnB,wBAAA,IAAI,GAAG,QAAQ,CAAC,WAAW;wBAC3B;oBACD,KAAK,aAAa,CAAC,OAAO;wBACzB,IAAI,GAAG,SAAS;AAChB,wBAAA,IAAI,GAAG,QAAQ,CAAC,QAAQ;wBACxB;;;gBAIF,IAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,oBAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC5B,wBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;4BAC3B,IAAI;4BACJ,QAAQ,EAAE,CAAC,IAAI,CAAC;4BAChB,EAAE,EAAE,UAAU,CAAC,EAAE;4BACjB,UAAU,EAAE,UAAU,CAAC,UAAU;AACjC,yBAAA,CAAC;AACF,wBAAA,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAAE,4BAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBACnE;gBACD;qBAAO;AACN,oBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;wBAC3B,IAAI;wBACJ,QAAQ;wBACR,EAAE,EAAE,UAAU,CAAC,EAAE;wBACjB,UAAU,EAAE,UAAU,CAAC,UAAU;AACjC,qBAAA,CAAC;AACF,oBAAA,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAAE,wBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnE;YACD;QACD;IACD,CAAC,CAAC,CACF;AACF;;ACrFM,SAAU,iBAAiB,CAAC,OAA2B,EAAA;AAC5D,IAAA,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO;IAChF,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9C,MAAM,QAAQ,GAAa,QAAQ,IAAI;AACtC,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,eAAe,EAAE,EAAE;KACnB;AACD,IAAA,QAAQ,CAAC,eAAe,KAAK,EAAE;AAC/B,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AAEtD,IAAA,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI;AACjC,IAAA,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE;IAE3E,SAAS,YAAY,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAA,OAAO,IAAI,OAAO,CACjB,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,SAAS,GAAG,KAAK,GAAG,CAAC,EACvD,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,SAAS,GAAG,MAAM,GAAG,CAAC,CACxD;IACF;IAEA,SAAS,WAAW,CACnB,IAAwC,EACxC,QAAqB,EACrB,EAAW,EACX,UAAmC,EAAA;AAEnC,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAC/D,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;AAC5D,QAAA,OAAO,OAAO;IACf;IAEA,SAAS,aAAa,CAAC,QAAqB,EAAA;QAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD;IAEA,SAAS,UAAU,CAClB,IAAwC,EACxC,QAAqB,EACrB,EAAW,EACX,UAAmC,EAAA;QAEnC,QAAQ,IAAI;YACX,KAAK,OAAO,EAAE;AACb,gBAAA,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC;AACxD,gBAAA,IAAI,CAAC;AAAE,oBAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9B;YACD;YACA,KAAK,YAAY,EAAE;AAClB,gBAAA,MAAM,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC;gBAC7D,IAAI,CAAC,EAAE;AACN,oBAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CACnB,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CACjF;gBACF;gBACA;YACD;YACA,KAAK,SAAS,EAAE;gBACf,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,KAAI;AACpC,oBAAA,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC;oBAE/B,IAAI,IAAI,GAAG,CAAC;AACZ,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;AAC/B,wBAAA,IAAI,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;AAC/B,wBAAA,IAAI,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;oBAChC;AAEA,oBAAA,IAAI,IAAI,GAAG,CAAC,KAAK,OAAO;wBAAE,IAAI,CAAC,OAAO,EAAE;AACzC,gBAAA,CAAC,CAAC;AACF,gBAAA,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC;gBAC1D,IAAI,CAAC,EAAE;AACN,oBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;;;oBAGzB,QAAQ,CAAC,eAAgB,CAAC,IAAI,CAC7B,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAC7D;oBACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CACnB,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CACjF;gBACF;gBACA;YACD;;IAEF;AAEA,IAAA,SAAS,eAAe,CACvB,IAAc,EACd,EAA+B,EAC/B,UAAmC,EAAA;AAEnC,QAAA,QAAQ,IAAI,CAAC,IAAI;AAChB,YAAA,KAAK,OAAO;AACX,gBAAA,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;gBAChF;AACD,YAAA,KAAK,YAAY;gBAChB,UAAU,CACT,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAU,CAAC,CAAC,CAAC,EACvD,EAAE,EACF,UAAU,CACV;gBACD;AACD,YAAA,KAAK,YAAY;gBAChB,UAAU,CACT,YAAY,EACZ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAU,CAAC,CAAC,CAAC,EACvD,EAAE,EACF,UAAU,CACV;gBACD;AACD,YAAA,KAAK,iBAAiB;AACrB,gBAAA,UAAU,CACT,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAU,CAAC,CAAC,CAAC,EACzE,EAAE,EACF,UAAU,CACV;gBACD;AACD,YAAA,KAAK,SAAS;AACb,gBAAA,UAAU,CACT,SAAS,EACT,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAU,CAAC,CAAC,CAAC,EACzE,EAAE,EACF,UAAU,CACV;gBACD;AACD,YAAA,KAAK,cAAc;AAClB,gBAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,oBAAA,UAAU,CACT,SAAS,EACT,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAU,CAAC,CAAC,CAAC,EAChE,EAAE,EACF,UAAU,CACV;gBACF;gBACA;AACD,YAAA,KAAK,oBAAoB;AACxB,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,oBAAA,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;gBACnC;gBACA;;IAEH;AAEA,IAAA,QAAQ,IAAI,CAAC,IAAI;AAChB,QAAA,KAAK,mBAAmB;AACvB,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9B,gBAAA,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;YACtD;YACA;AACD,QAAA,KAAK,SAAS;AACb,YAAA,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC9D;AACD,QAAA;AACC,YAAA,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;YACpC;;AAEH;;AC/KO,eAAe,cAAc,CAAC,GAAc,EAAE,UAAkB,EAAA;IACtE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CACsB;IAEjE,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC/C,QAAA,MAAM,KAAK,CACV,CAAA,uBAAA,EAA0B,UAAU,CAAA,8CAAA,CAAgD,CACpF;IACF;IAEA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE;IAClC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,iBAAiB,CACvD,KAAK,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,OAAO,CACd;IAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAgC;AAC1E,QAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;AAEtB,QAAA,MAAM,MAAM,GACX,OAAO,MAAM,KAAK;AACjB,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC5C,cAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;QAE3D,OAAO;AACN,YAAA,CAAC,EAAE,OAAO;AACV,YAAA,CAAC,EAAE,OAAO;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,MAAM,EAAE,QAAQ;YAChB,OAAO;SACP;IACF,CAAC,CAAC,CACF;AAED,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAyB,IAAI,KAAK,IAAI,CAAC;AACvE;;ACrBA,eAAe,eAAe,CAC7B,GAAW,EAAA;IAEX,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACvD,QAAA,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,KAAA,CAAO,CAAC;AACpB,QAAA,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,IAAA,CAAM,CAAC;AACnB,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE;AAAE,QAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE;AAChF;AAEO,eAAe,eAAe,CAAC,KAAyB,EAAA;AAC9D,IAAA,MAAM,KAAK,GAAgB,IAAI,GAAG,EAAE;AACpC,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;IAEzB,MAAM,OAAO,GAAkC,EAAE;AACjD,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC/B,QAAA,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC7C;AAAO,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACjC,QAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC,CAAC,GAAG;AACV,aAAA,CAAC;QACH;IACD;AAEA,IAAA,MAAM,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAI;AACjC,QAAA,IAAI;;AAEH,YAAA,MAAM,UAAU,GAAG,CAAC,MAAM,eAAe,CAAC,GAAG,GAAG,CAAA,GAAA,CAAK,CAAC,MAAM,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,UAAU;gBAAE;AACjB,YAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,UAAU;YAElD,MAAM,IAAI,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,CAAoC;AAC3E,YAAA,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE;AACrD,YAAA,MAAM,MAAM,GACX,OAAO,MAAM,KAAK;kBACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC5C,kBAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,YAAA,MAAM,YAAY,GAAG,CAAA,sBAAA,EAAyB,MAAM,EAAE;;YAGtD,IAAI,UAAU,GAAG,CAAC;YAClB,IAAI,WAAW,GAAG,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACxC,gBAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AACxD,gBAAA,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5D;AAEA,YAAA,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,CAAA,EAAG,EAAE,GAAG;AAC/C,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjD,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,IAAI,EAAE,EAAE;oBAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,CAAC,EAAE,KAAK,CAAC,CAAC;AACV,oBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;AACjC,oBAAA,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK;oBACvB,YAAY;oBACZ,UAAU;oBACV,WAAW;AACX,iBAAA,CAAC;YACH;QACD;AAAE,QAAA,MAAM;;QAER;IACD,CAAC,CAAC,CACF;AAED,IAAA,OAAO,KAAK;AACb;;ACvFO,eAAe,gBAAgB,CAAC,GAAc,EAAA;IACpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI;AACjC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK;AAE7B,IAAA,MAAM,aAAa,GAAkB,IAAI,GAAG,EAAE;IAE9C,MAAM,YAAY,GAAoB,EAAE;AACxC,IAAA,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC/D,MAAM,MAAM,GAAG,UAAqC;AAEpD,QAAA,QAAQ,MAAM,CAAC,IAAI;AAClB,YAAA,KAAK,QAAQ;AACZ,gBAAA,YAAY,CAAC,IAAI,CAChB,gBAAgB,CACf,MAA2E,EAC3E,GAAG,EACH,aAAa,CACb,CACD;gBACD;AACD,YAAA,KAAK,SAAS;AACb,gBAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AAChB,oBAAA,iBAAiB,CAAC;wBACjB,UAAU;wBACV,IAAI,EAAE,MAAM,CAAC,IAAe;wBAC5B,KAAK;wBACL,MAAM;wBACN,IAAI;wBACJ,MAAM;wBACN,aAAa;AACb,qBAAA,CAAC;gBACH;gBACA;;IAEH;AACA,IAAA,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAE/B,IAAA,OAAO,aAAa;AACrB;;ACpCA;;AAEG;MACU,8BAA8B,CAAA;AACzB,IAAA,UAAU;AACV,IAAA,OAAO;IAExB,WAAA,CAAY,UAAmC,EAAE,OAAyB,EAAA;AACzE,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACvB;AAEA,IAAA,QAAQ,CACP,OAAgB,EAChB,YAA0B,EAC1B,SAA4B,EAC5B,eAA0B,EAAA;AAE1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC9B,IAAI,CAAC,OAAO,EACZ,OAAO,EACP,YAAY,EACZ,SAAS,EACT,eAAe,CACV;IACP;AACA;AAED;;AAEG;AACH,MAAM,mBAAmB,CAAA;IACP,MAAM,GAA4B,EAAE;AAErD,IAAA,GAAG,CAAC,IAAY,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB;IAEA,GAAG,CAAC,IAAY,EAAE,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;IAC1B;AACA;AAED;;;;;;;AAOG;MACU,UAAU,CAAA;AACb,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,WAAW;AACX,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,QAAQ;AACjB,IAAA,KAAK;AACL,IAAA,MAAM;AAEW,IAAA,gBAAgB;AAChB,IAAA,iBAAiB;AACjB,IAAA,UAAU;AAE3B,IAAA,WAAA,CAAY,IAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAmB,EAAE;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,EAAE;AACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,GAAI,IAAgC,CAAC,MAAgB;AAChE,YAAA,IAAI,CAAC,WAAW,GAAI,IAAgC,CAAC,cAAc,CAAW;AAC9E,YAAA,IAAI,CAAC,MAAM,GAAI,IAAgC,CAAC,MAAyC;AACzF,YAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,CAAA,OAAA,CAAS,CAAC;QACvE;AAEA,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,CAAW;;QAGlE,MAAM,SAAS,GACd,MACA,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QACvB,IAAI,SAAS,EAAE;AACd,YAAA,MAAM,WAAW,GAA4B,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7D,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACzD,gBAAA,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC;AAC7B,gBAAA,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,GAAG,GAAG;AACxD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpF;QACD;;QAGA,MAAM,UAAU,GACf,MACA,CAAC,CAAA,OAAA,EAAU,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QACxB,IAAI,UAAU,EAAE;YACf,MAAM,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAA4B;AACnE,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC1D,IAAI,IAAI,KAAK,YAAY;oBAAE;AAC3B,gBAAA,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;AAC9B,gBAAA,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,GAAG,GAAG;AACxD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrF;QACD;IACD;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;QAC5D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AAC7D,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM;IAClC;IAEA,WAAW,CAAC,MAAwB,EAAE,eAAyB,EAAA;AAC9D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAmB,EAAE;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,EAAE;QAEvC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YACvF;iBAAO;AACN,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvE;QACD;QAEA,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAClD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YACxF;iBAAO;AACN,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxE;QACD;IACD;AACA;AAEK,SAAU,gBAAgB,CAAC,IAAwB,EAAA;AACxD,IAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC;AAC5B;AAEM,SAAU,cAAc,CAAC,MAA4B,EAAA;AAC1D,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpC;;ACxJA,SAAS,aAAa,CAAC,IAAY,EAAE,UAAmC,EAAA;IACvE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAW,KAAI;AACtD,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QAC7B,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,EAAE;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACjF,QAAA,OAAO,EAAE;AACV,IAAA,CAAC,CAAC;AACH;AAEO,eAAe,SAAS,CAAC,GAAc,EAAA;AAC7C,IAAA,MAAM,MAAM,CAAC,GAAG,CAAC;AACjB,IAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;AAChC;AAEA,SAAS,WAAW,CAAC,aAA4B,EAAE,UAAsB,EAAA;AACxE,IAAA,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;AACzF;AAEA,eAAe,MAAM,CAAC,GAAc,EAAA;AACnC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG;AACxB,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI;IACzB,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,gBAAgB,CAAC,GAAG,CAAC;QACrB,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAiB,CAAC;AACzF,KAAA,CAAC;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IACpD,MAAM,eAAe,GAAa,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,YAAY,GAAG,EAAE;AAEvB,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACrC,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE;QAE/B,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,eAAe,CAAC;AAEjD,QAAA,SAAS,aAAa,CAAC,GAAY,EAAE,GAAW,EAAE,OAAiB,EAAA;YAClE,MAAM,MAAM,GAAG,GAAkC;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK,EAAE;gBACvE,MAAM,WAAW,GAAG,KAAgD;AACpE,gBAAA,OAAO,WAAW,CAAC,QAAQ,CAC1B,OAAO,IAAK,EAAc,EAC1B,YAAY,EACZ,SAAS,EACT,eAAe,CACf;YACF;AACA,YAAA,OAAO,KAAK;QACb;AAEA,QAAA,SAAS,QAAQ,CAAC,GAAW,EAAE,OAAiB,EAAA;YAC/C,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC;QACrD;AAEA,QAAA,SAAS,SAAS,CAAC,GAAW,EAAE,OAAiB,EAAA;YAChD,OAAO,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;QACtD;AAEA,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE;AAE7B,QAAA,QAAQ,UAAU,CAAC,IAAI;AACtB,YAAA,KAAK,YAAY;gBAChB;oBACC,QAAQ,CAAC,kBAAkB,CAAC;AAC3B,wBAAA,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAkB;AACpD,wBAAA,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAW;AACjD,qBAAA,CAAC;gBACH;gBACA;AACD,YAAA,KAAK,MAAM;gBACV;;;;oBAIC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;AAC3D,oBAAA,MAAM,QAAQ,GAAG;AAChB,wBAAA,IAAI,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;AACjC,wBAAA,IAAI,YAAY,EAAE,WAAW,IAAI,EAAE,CAAC;qBACpC;AACD,oBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE;AAC3B,oBAAA,MAAM,eAAe,GAAG,UAAU,CAAC;0BAChC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;0BAC3E,QAAQ;AAEX,oBAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;wBAAE;AAElC,oBAAA,QAAQ,CAAC,YAAY,CACpB,OAAO,EACP,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;wBAChC,OAAO;AACP,wBAAA;AACC,4BAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAkB;AACvD,4BAAA,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAW;AACpD,4BAAA,SAAS,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAqB;;;AAGlE,4BAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAA8B;;AAElF,4BAAA,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAY;AAChD,yBAAA;AACD,qBAAA,CAAC,CACF;gBACF;gBACA;AACD,YAAA,KAAK,MAAM;gBACV;;;;oBAIC,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;AACxD,oBAAA,MAAM,WAAW,GAAG;AACnB,wBAAA,IAAI,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC;AACjC,wBAAA,IAAI,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;qBACrC;AACD,oBAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;wBAAE;AAC9B,oBAAA,MAAM,kBAAkB,GAAG,UAAU,CAAC;0BACnC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;0BAC9E,WAAW;AAEd,oBAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;wBAAE;AAErC,oBAAA,QAAQ,CAAC,eAAe,CACvB,OAAO,EACP,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;wBACnC,OAAO;AACP,wBAAA;AACC,4BAAA,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAW;AAC9C,4BAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAkB;AACvD,4BAAA,SAAS,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAqB;AAClE,4BAAA,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAgC;AAClE,4BAAA,SAAS,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAyB;AACtE,4BAAA,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAgC;AACpE,4BAAA,UAAU,EAAE,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAW;AAC5D,4BAAA,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAW;AAClD,4BAAA,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAW;AACpD,4BAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAW;AAChD,yBAAA;AACD,qBAAA,CAAC,CACF;gBACF;gBACA;AACD,YAAA,KAAK,QAAQ;gBACZ;oBACC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC;AAC1D,oBAAA,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;AACxC,wBAAA,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAW;AAC7C,wBAAA,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAW;AAClD,wBAAA,aAAa,EAAE,QAAQ,CAAC,uBAAuB,CAAW;AAC1D,wBAAA,aAAa,EAAE,QAAQ,CAAC,uBAAuB,CAAW;AAC1D,wBAAA,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAW;AACnD,wBAAA,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAW;AAC/C,wBAAA,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAyB;AACjE,qBAAA,CAAC;gBACH;gBACA;AACD,YAAA,KAAK,QAAQ;gBACZ;oBACC,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM;AAC7D,oBAAA,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;wBAAE;AACpC,oBAAA,MAAM,aAAa,GAAG,UAAU,CAAC;0BAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;0BACzE,MAAM;AAET,oBAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;wBAAE;AAEhC,oBAAA,QAAQ,CAAC,WAAW,CACnB,OAAO,EACP,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;wBAC9B,OAAO;AACP,wBAAA;AACC,4BAAA,KAAK,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAkB;AACzD,4BAAA,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAW;AACtD,4BAAA,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAW;AACpD,4BAAA,SAAS,EAAE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAqB;AACpE,4BAAA,WAAW,EAAE,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAW;AAC/D,4BAAA,WAAW,EAAE,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAkB;AACtE,yBAAA;AACD,qBAAA,CAAC,CACF;gBACF;gBACA;AACD,YAAA,KAAK,QAAQ;gBACZ;oBACC,IAAI,CAAC,GAAG,CAAC,YAAY;wBAAE;oBACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;AACvD,oBAAA,MAAM,WAAW,GAAG;AACnB,wBAAA,IAAI,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAC3B,wBAAA,IAAI,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;AAChC,wBAAA,IAAI,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;qBAC7B;AACD,oBAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;wBAAE;AAC9B,oBAAA,MAAM,cAAc,GAAG,UAAU,CAAC;0BAC/B,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;0BAC9E,WAAW;AAEd,oBAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;wBAAE;;AAGjC,oBAAA,QAAQ,CAAC,SAAS,CACjB,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ,EAClB,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;wBAClC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;AAClD,wBAAA,MAAM,QAAQ,GACb,SAAS,IAAI;8BACV,aAAa,CACZ,SAAoC,CAAC,QAAQ,EAAE,EAChD,OAAO,CAAC,UAAU;8BAElB,EAAE;wBACN,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,4BAAA,OAAO,EAAE;wBACtD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE;wBAC9C,OAAO;AACN,4BAAA;gCACC,OAAO;AACP,gCAAA;AACC,oCAAA,KAAK,EAAE,QAAQ;AACf,oCAAA,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAW;AAC/C,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAW;AACnD,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAqB;AAC7D,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAW;AACnD,oCAAA,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAW;oCACpD,GAAG,EAAE,WAAW,CAAC,GAAG;AACpB,oCAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAkB;AACvD,oCAAA,SAAS,EAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAkB;AAChE,oCAAA,SAAS,EAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAW;AACzD,iCAAA;AACD,6BAAA;yBACD;AACF,oBAAA,CAAC,CAAC,EACF,WAAW,CACX;;AAGD,oBAAA,QAAQ,CAAC,UAAU,CAClB,CAAA,EAAG,OAAO,CAAA,OAAA,CAAS,EACnB,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;wBAClC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;AAClD,wBAAA,MAAM,OAAO,GACZ,SAAS,IAAI,IAAI,GAAI,SAAoC,CAAC,QAAQ,EAAE,GAAG,EAAE;wBAC1E,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;AACvD,wBAAA,IAAI,CAAC,IAAI;AAAE,4BAAA,OAAO,EAAE;wBACpB,OAAO;AACN,4BAAA;gCACC,OAAO;AACP,gCAAA;oCACC,IAAI;AACJ,oCAAA,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAW;AAC/C,oCAAA,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAa;AACjD,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAW;AACnD,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAqB;AAC7D,oCAAA,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAW;AACnD,oCAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAkB;AACvD,oCAAA,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAW;AACpD,oCAAA,SAAS,EAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAkB;AAChE,oCAAA,SAAS,EAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAW;AACzD,iCAAA;AACD,6BAAA;yBACD;oBACF,CAAC,CAAC,CACF;gBACF;gBACA;AACD,YAAA,KAAK,cAAc;AACnB,YAAA,KAAK,gBAAgB;AACrB,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,WAAW;gBACf;AACD,YAAA;gBACC,MAAM,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;IAE7D;AACD;;ACpRO,eAAe,WAAW,CAAC,OAQjC,EAAA;AACA,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI;AACnC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;IAErC,IAAI,KAAK,IAAI,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;IACzD,IAAI,MAAM,IAAI,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;IAE3D,OAAO,MAAM,SAAS,CAAC;QACtB,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,QAAA,IAAI,EAAE;AACL,YAAA,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5C,YAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;AACvB,SAAA;AACD,QAAA,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;AAC3C,KAAA,CAAC;AACH;;;;","x_google_ignoreList":[0,6,7,8]}