diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000000000000000000000000000000..f832369010a4bc9098e217f3c4ab69f2fbe41ee5 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +ANTHROPIC_API_KEY= +DATABASE_URL= diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..ab75452d355ca6604aa771fc0cc198a0cebb5005 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.pt filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +data/era5land_dar.json filter=lfs diff=lfs merge=lfs -text +*.faiss filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..62ce0df689cf2fc4a8914339f1480960ca95a030 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +__pycache__/ +*.pyc +*.pyo +.env +.venv +venv/ +node_modules/ +dist/ +.DS_Store +*.log +.cache/ +.vercel/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..85d3e1b3472ae5995110ac4335b3c0764947d423 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM python:3.11-slim AS builder + +# Install Node.js for frontend build +RUN apt-get update && apt-get install -y --no-install-recommends curl && \ + curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ + apt-get install -y --no-install-recommends nodejs && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +WORKDIR /app/frontend +COPY frontend/package.json frontend/package-lock.json* ./ +RUN npm ci --production=false +COPY frontend/ ./ +RUN VITE_API_URL="" npm run build + +# ── Production stage ── +FROM python:3.11-slim + +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends \ + libgomp1 ca-certificates curl \ + && rm -rf /var/lib/apt/lists/* + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY config.py . +COPY src/ src/ +COPY models/ models/ +COPY --from=builder /app/frontend/dist frontend/dist + +RUN adduser --disabled-password --gecos '' appuser && chown -R appuser:appuser /app +USER appuser + +EXPOSE 7860 + +HEALTHCHECK --interval=30s --timeout=10s --retries=5 --start-period=60s \ + CMD curl -f http://localhost:7860/health || exit 1 + +CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"] diff --git a/config.py b/config.py new file mode 100644 index 0000000000000000000000000000000000000000..18ddb53212e35f50fce801e9db14d539984bf08d --- /dev/null +++ b/config.py @@ -0,0 +1,181 @@ +""" +Climate Risk Index Engine — Configuration + +Extreme heat parametric insurance for East African cities. +Zones are real neighborhoods with outdoor worker populations +vulnerable to heat stress. +""" + +from dataclasses import dataclass, field + +REGION_NAME = "East Africa" +TIMEZONE = "Africa/Nairobi" +LOCALE = "en-KE" +CURRENCY = "USD" +CURRENCY_SYMBOL = "$" + +# Data source configuration +NASA_POWER_URL = "https://power.larc.nasa.gov/api/temporal/daily/point" +OVERPASS_URL = "https://overpass-api.de/api/interpreter" + +# Heat thresholds for parametric triggers +HEAT_THRESHOLDS = { + "critical": {"temp_c": 37, "wbgt_c": 32, "consecutive_days": 3}, + "warning": {"temp_c": 35, "wbgt_c": 30, "consecutive_days": 2}, + "watch": {"temp_c": 33, "wbgt_c": 28, "consecutive_days": 1}, +} + +# Payout per event per worker (USD) +PAYOUT_PER_EVENT_USD = { + "critical": 15, + "warning": 10, + "watch": 5, +} + + +@dataclass +class UrbanZone: + zone_id: str + name: str + city: str + country: str + latitude: float + longitude: float + elevation_m: float + area_km2: float + population_est: int + settlement_type: str # formal, informal, mixed, commercial + worker_population_est: int # estimated informal/outdoor workers + outdoor_exposure_pct: float # % of workers with outdoor exposure + heat_vulnerability: str # high, moderate, low + hot_months: list = field(default_factory=list) # months of peak heat + notes: str = "" + + +# Real urban zones in East Africa — same 20 zones, now with heat context +# Dar es Salaam: hottest + most humid (coastal, sea level, WBGT danger) +# Kampala: moderate heat (equatorial but 1140-1260m elevation, Lake Victoria moderates) +# Nairobi: cooler (1620-1780m highland elevation) +# Kigali: moderate (1420-1580m, "city of eternal spring") +ZONES: list[UrbanZone] = [ + # -- Nairobi, Kenya (elevation 1620-1780m, relatively cool) -- + UrbanZone("NBO-KIB", "Kibera", "Nairobi", "Kenya", + -1.3133, 36.7876, 1720, 2.5, 250000, "informal", + 45000, 0.72, "moderate", + [1, 2, 3, 10, 12], "Largest informal settlement. Tin roofs amplify heat. Many outdoor traders."), + UrbanZone("NBO-EAS", "Eastleigh", "Nairobi", "Kenya", + -1.2750, 36.8500, 1660, 3.2, 180000, "mixed", + 22000, 0.55, "moderate", + [1, 2, 3, 10, 12], "Dense commercial area. Street vendors and market porters exposed."), + UrbanZone("NBO-MAT", "Mathare", "Nairobi", "Kenya", + -1.2583, 36.8583, 1620, 1.8, 200000, "informal", + 38000, 0.70, "moderate", + [1, 2, 3, 10, 12], "Valley settlement. Poor ventilation in densely packed structures."), + UrbanZone("NBO-SBC", "South B/C", "Nairobi", "Kenya", + -1.3100, 36.8350, 1680, 4.5, 120000, "formal", + 8000, 0.30, "low", + [1, 2, 3, 10, 12], "Formal residential area. Mostly indoor workers."), + UrbanZone("NBO-WES", "Westlands", "Nairobi", "Kenya", + -1.2667, 36.8100, 1740, 5.0, 90000, "commercial", + 5000, 0.20, "low", + [1, 2, 3, 10, 12], "Commercial district. Air-conditioned offices predominate."), + UrbanZone("NBO-KAN", "Kangemi", "Nairobi", "Kenya", + -1.2600, 36.7450, 1780, 3.0, 150000, "mixed", + 18000, 0.58, "moderate", + [1, 2, 3, 10, 12], "Peri-urban. Construction workers and jua kali artisans."), + + # -- Dar es Salaam, Tanzania (sea level, hottest + most humid) -- + UrbanZone("DAR-JAN", "Jangwani", "Dar es Salaam", "Tanzania", + -6.8000, 39.2700, 12, 2.0, 80000, "informal", + 25000, 0.82, "high", + [1, 2, 3, 10, 11, 12], "Low-lying informal area. Tin roofs, no shade, extreme UHI. Outdoor labor dominant."), + UrbanZone("DAR-MSA", "Msasani", "Dar es Salaam", "Tanzania", + -6.7600, 39.2650, 18, 4.0, 95000, "mixed", + 15000, 0.55, "high", + [1, 2, 3, 10, 11, 12], "Coastal mixed area. Fish market workers, beach traders exposed."), + UrbanZone("DAR-KIN", "Kinondoni", "Dar es Salaam", "Tanzania", + -6.7700, 39.2400, 35, 6.5, 200000, "formal", + 18000, 0.45, "moderate", + [1, 2, 3, 10, 11, 12], "Mixed residential. Some tree cover but humidity remains high."), + UrbanZone("DAR-TEM", "Temeke", "Dar es Salaam", "Tanzania", + -6.8600, 39.2800, 22, 5.5, 170000, "mixed", + 30000, 0.75, "high", + [1, 2, 3, 10, 11, 12], "Industrial zone. Port workers, construction crews, outdoor factories."), + UrbanZone("DAR-KIG", "Kigamboni", "Dar es Salaam", "Tanzania", + -6.8700, 39.3200, 8, 7.0, 110000, "mixed", + 20000, 0.70, "high", + [1, 2, 3, 10, 11, 12], "Coastal peninsula. Fishing, salt panning, construction — all outdoor."), + + # -- Kampala, Uganda (1140-1260m, Lake Victoria moderates) -- + UrbanZone("KLA-BWA", "Bwaise", "Kampala", "Uganda", + 0.3500, 32.5650, 1140, 1.5, 120000, "informal", + 22000, 0.75, "moderate", + [1, 2, 3, 12], "Wetland settlement. High humidity from swamp. Outdoor traders predominate."), + UrbanZone("KLA-NAT", "Natete", "Kampala", "Uganda", + 0.3050, 32.5550, 1150, 2.0, 85000, "mixed", + 12000, 0.60, "moderate", + [1, 2, 3, 12], "Market area. Porters, boda-boda riders, street vendors."), + UrbanZone("KLA-NAK", "Nakivubo", "Kampala", "Uganda", + 0.3100, 32.5850, 1160, 1.8, 70000, "mixed", + 10000, 0.65, "moderate", + [1, 2, 3, 12], "Commercial corridor. Taxi park workers, hawkers exposed to heat."), + UrbanZone("KLA-LUB", "Lubaga", "Kampala", "Uganda", + 0.3000, 32.5600, 1220, 3.5, 100000, "formal", + 7000, 0.35, "low", + [1, 2, 3, 12], "Hillside residential. Some elevation relief from heat."), + UrbanZone("KLA-MAK", "Makindye", "Kampala", "Uganda", + 0.2900, 32.5950, 1260, 4.0, 95000, "formal", + 5500, 0.25, "low", + [1, 2, 3, 12], "Elevated residential. Better ventilation, more tree cover."), + + # -- Kigali, Rwanda (1420-1580m, moderate) -- + UrbanZone("KGL-NYA", "Nyabugogo", "Kigali", "Rwanda", + -1.9400, 30.0550, 1420, 1.2, 45000, "mixed", + 8000, 0.68, "moderate", + [1, 2, 8, 9], "Valley area. Bus terminal workers, market traders. Valley traps heat."), + UrbanZone("KGL-KIC", "Kicukiro", "Kigali", "Rwanda", + -1.9800, 30.0700, 1520, 4.0, 120000, "formal", + 6000, 0.30, "low", + [1, 2, 8, 9], "Residential district. Mostly indoor employment."), + UrbanZone("KGL-GAS", "Gasabo", "Kigali", "Rwanda", + -1.9300, 30.0900, 1580, 5.0, 150000, "formal", + 5000, 0.22, "low", + [1, 2, 8, 9], "Administrative district on higher ground. Cooler, shaded."), + UrbanZone("KGL-NYM", "Nyamirambo", "Kigali", "Rwanda", + -1.9700, 30.0400, 1480, 2.5, 80000, "mixed", + 9000, 0.60, "moderate", + [1, 2, 8, 9], "Dense residential. Hillside construction workers, market sellers."), +] + +ZONE_MAP: dict[str, UrbanZone] = {z.zone_id: z for z in ZONES} + +# Cities for grouping +CITIES = ["Nairobi", "Dar es Salaam", "Kampala", "Kigali"] + +# Hot season definitions (month numbers) +HOT_SEASONS = { + "Nairobi": {"dry_hot": [1, 2, 3], "secondary_hot": [10, 12]}, + "Dar es Salaam": {"hot_humid": [1, 2, 3, 10, 11, 12]}, + "Kampala": {"hot_dry": [1, 2, 3, 12]}, + "Kigali": {"hot_dry": [1, 2, 8, 9]}, +} + +# NASA POWER parameters to fetch +NASA_POWER_PARAMS = [ + "T2M", # Temperature at 2m (C) + "T2M_MAX", # Max temperature (C) + "T2M_MIN", # Min temperature (C) + "RH2M", # Relative humidity (%) + "WS2M", # Wind speed at 2m (m/s) + "ALLSKY_SFC_SW_DWN", # Solar radiation (for heat load) +] + +# Pipeline step names +PIPELINE_STEPS = [ + "ingest", + "heal", + "index", + "calibrate", + "explain", + "notify", +] diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000000000000000000000000000000000000..122fa3be28f836b773c4d25492911879d6538016 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,16 @@ + + + + + + + Climate Risk Index Engine + + + + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..4b393329b333e04ba93603e52defb0f5e6b0b265 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,3366 @@ +{ + "name": "climate-risk-engine", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "climate-risk-engine", + "version": "1.0.0", + "dependencies": { + "@tanstack/react-query": "^5.62.0", + "lucide-react": "^0.468.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-joyride": "^2.9.3", + "react-router-dom": "^7.1.1", + "recharts": "^2.15.0" + }, + "devDependencies": { + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "vite": "^6.0.5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@gilbarbara/deep-equal": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.3.1.tgz", + "integrity": "sha512-I7xWjLs2YSVMc5gGx1Z3ZG1lgFpITPndpi8Ku55GeEIKpACCPQNS/OTqQbxgTCfq0Ncvcc+CrFov96itVh6Qvw==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz", + "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz", + "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz", + "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz", + "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz", + "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz", + "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz", + "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz", + "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz", + "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz", + "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz", + "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz", + "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz", + "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz", + "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz", + "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz", + "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz", + "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz", + "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz", + "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz", + "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz", + "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz", + "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz", + "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz", + "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz", + "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tanstack/query-core": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", + "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", + "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.95.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001774", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.12.tgz", + "integrity": "sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001782", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz", + "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/deep-diff": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", + "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.328.tgz", + "integrity": "sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", + "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lite": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-1.2.1.tgz", + "integrity": "sha512-pgF+L5bxC+10hLBgf6R2P4ZZUBOQIIacbdo8YvuCP8/JvsWxG7aZ9p10DYuLtifFci4l3VITphhMlMV4Y+urPw==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.468.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.468.0.tgz", + "integrity": "sha512-6koYRhnM2N0GGZIdXzSeiNwguv1gt/FAjZOiPl76roBi3xKEXa4WmfpxgQwTTL4KipXjefrnf3oV4IsYhi4JFA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-floater": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/react-floater/-/react-floater-0.7.9.tgz", + "integrity": "sha512-NXqyp9o8FAXOATOEo0ZpyaQ2KPb4cmPMXGWkx377QtJkIXHlHRAGer7ai0r0C1kG5gf+KJ6Gy+gdNIiosvSicg==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "is-lite": "^0.8.2", + "popper.js": "^1.16.0", + "prop-types": "^15.8.1", + "tree-changes": "^0.9.1" + }, + "peerDependencies": { + "react": "15 - 18", + "react-dom": "15 - 18" + } + }, + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.1.2.tgz", + "integrity": "sha512-jk+qzItoEb0D0xSSmrKDDzf9sheQj/BAPxlgNxgmOaA3mxpUa6ndJLYGZKsJnIVEQSD8zcTbyILz7I0HcnBCRA==", + "license": "MIT" + }, + "node_modules/react-floater/node_modules/is-lite": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-0.8.2.tgz", + "integrity": "sha512-JZfH47qTsslwaAsqbMI3Q6HNNjUuq6Cmzzww50TdP5Esb6e1y2sK2UAaZZuzfAzpoI2AkxoPQapZdlDuP6Vlsw==", + "license": "MIT" + }, + "node_modules/react-floater/node_modules/tree-changes": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.9.3.tgz", + "integrity": "sha512-vvvS+O6kEeGRzMglTKbc19ltLWNtmNt1cpBoSYLj/iEcPVvpJasemKOlxBrmZaCtDJoF+4bwv3m01UKYi8mukQ==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.1.1", + "is-lite": "^0.8.2" + } + }, + "node_modules/react-innertext": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-innertext/-/react-innertext-1.1.5.tgz", + "integrity": "sha512-PWAqdqhxhHIv80dT9znP2KvS+hfkbRovFp4zFYHFFlOoQLRiawIic81gKb3U1wEyJZgMwgs3JoLtwryASRWP3Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">=0.0.0 <=99", + "react": ">=0.0.0 <=99" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-joyride": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/react-joyride/-/react-joyride-2.9.3.tgz", + "integrity": "sha512-1+Mg34XK5zaqJ63eeBhqdbk7dlGCFp36FXwsEvgpjqrtyywX2C6h9vr3jgxP0bGHCw8Ilsp/nRDzNVq6HJ3rNw==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.3.1", + "deep-diff": "^1.0.2", + "deepmerge": "^4.3.1", + "is-lite": "^1.2.1", + "react-floater": "^0.7.9", + "react-innertext": "^1.1.5", + "react-is": "^16.13.1", + "scroll": "^3.0.1", + "scrollparent": "^2.1.0", + "tree-changes": "^0.11.2", + "type-fest": "^4.27.0" + }, + "peerDependencies": { + "react": "15 - 18", + "react-dom": "15 - 18" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.13.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.2.tgz", + "integrity": "sha512-tX1Aee+ArlKQP+NIUd7SE6Li+CiGKwQtbS+FfRxPX6Pe4vHOo6nr9d++u5cwg+Z8K/x8tP+7qLmujDtfrAoUJA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.13.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.13.2.tgz", + "integrity": "sha512-aR7SUORwTqAW0JDeiWF07e9SBE9qGpByR9I8kJT5h/FrBKxPMS6TiC7rmVO+gC0q52Bx7JnjWe8Z1sR9faN4YA==", + "license": "MIT", + "dependencies": { + "react-router": "7.13.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", + "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.4", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.60.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", + "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.0", + "@rollup/rollup-android-arm64": "4.60.0", + "@rollup/rollup-darwin-arm64": "4.60.0", + "@rollup/rollup-darwin-x64": "4.60.0", + "@rollup/rollup-freebsd-arm64": "4.60.0", + "@rollup/rollup-freebsd-x64": "4.60.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", + "@rollup/rollup-linux-arm-musleabihf": "4.60.0", + "@rollup/rollup-linux-arm64-gnu": "4.60.0", + "@rollup/rollup-linux-arm64-musl": "4.60.0", + "@rollup/rollup-linux-loong64-gnu": "4.60.0", + "@rollup/rollup-linux-loong64-musl": "4.60.0", + "@rollup/rollup-linux-ppc64-gnu": "4.60.0", + "@rollup/rollup-linux-ppc64-musl": "4.60.0", + "@rollup/rollup-linux-riscv64-gnu": "4.60.0", + "@rollup/rollup-linux-riscv64-musl": "4.60.0", + "@rollup/rollup-linux-s390x-gnu": "4.60.0", + "@rollup/rollup-linux-x64-gnu": "4.60.0", + "@rollup/rollup-linux-x64-musl": "4.60.0", + "@rollup/rollup-openbsd-x64": "4.60.0", + "@rollup/rollup-openharmony-arm64": "4.60.0", + "@rollup/rollup-win32-arm64-msvc": "4.60.0", + "@rollup/rollup-win32-ia32-msvc": "4.60.0", + "@rollup/rollup-win32-x64-gnu": "4.60.0", + "@rollup/rollup-win32-x64-msvc": "4.60.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scroll/-/scroll-3.0.1.tgz", + "integrity": "sha512-pz7y517OVls1maEzlirKO5nPYle9AXsFzTMNJrRGmT951mzpIBy7sNHOg5o/0MQd/NqliCiWnAi0kZneMPFLcg==", + "license": "MIT" + }, + "node_modules/scrollparent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz", + "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==", + "license": "ISC" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-changes": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.11.3.tgz", + "integrity": "sha512-r14mvDZ6tqz8PRQmlFKjhUVngu4VZ9d92ON3tp0EGpFBE6PAHOq8Bx8m8ahbNoGE3uI/npjYcJiqVydyOiYXag==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.3.1", + "is-lite": "^1.2.1" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000000000000000000000000000000000000..9d6dbb12561e24e1e696b1b3567d2b083f6be7af --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,30 @@ +{ + "name": "climate-risk-engine", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tanstack/react-query": "^5.62.0", + "lucide-react": "^0.468.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-joyride": "^2.9.3", + "react-router-dom": "^7.1.1", + "recharts": "^2.15.0" + }, + "devDependencies": { + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "vite": "^6.0.5" + } +} diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 0000000000000000000000000000000000000000..2e7af2b7f1a6f391da1631d93968a9d487ba977d --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg new file mode 100644 index 0000000000000000000000000000000000000000..32ac3e57bd251db808841e858ece152ed0ead775 --- /dev/null +++ b/frontend/public/vite.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 0000000000000000000000000000000000000000..d1bb87ba51ec148e0bc86f699ab307a437c2dd4f --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,143 @@ +import { useCallback, useEffect, useState } from 'react' +import { Routes, Route, useNavigate, useSearchParams } from 'react-router-dom' +import Joyride, { type CallBackProps, STATUS, EVENTS, ACTIONS } from 'react-joyride' +import { Thermometer } from 'lucide-react' +import Sidebar from './components/Sidebar' +import Dashboard from './pages/Dashboard' +import Zones from './pages/Zones' +import HeatMonitor from './pages/HeatMonitor' +import ProgramDesigner from './pages/ProgramDesigner' +import Notifications from './pages/Notifications' +import Pipeline from './pages/Pipeline' +import { tourSteps, tourStyles } from './lib/tour' + +// Map tour step indices to routes for page navigation +const stepRoutes: Record = { + 0: '/', // hero + 1: '/', // stage cards + 2: '/', // metrics + 3: '/', // nav-zones link + 4: '/zones', // zones metrics + 5: '/zones', // nav-heat-monitor link + 6: '/heat-monitor', // heat monitor metrics + 7: '/heat-monitor', // heat monitor tabs + 8: '/heat-monitor', // nav-calibrate link + 9: '/calibrate', // calibrate controls + 10: '/calibrate', // calibrate results + 11: '/calibrate', // nav-alerts link + 12: '/alerts', // alerts feed + 13: '/', // final — nav-home +} + +export default function App() { + const [searchParams] = useSearchParams() + const [runTour, setRunTour] = useState(false) + const [stepIndex, setStepIndex] = useState(0) + const navigate = useNavigate() + + useEffect(() => { + const forced = searchParams.get('tour') === 'true' + const seen = localStorage.getItem('heat_tour_v2') === '1' + if (forced || !seen) { + const timer = setTimeout(() => { + setRunTour(true) + setStepIndex(0) + localStorage.setItem('heat_tour_v2', '1') + }, 1500) + return () => clearTimeout(timer) + } + }, []) // eslint-disable-line react-hooks/exhaustive-deps + + // Relaunch from tour button + useEffect(() => { + function handleRelaunch() { + navigate('/') + setTimeout(() => { + setStepIndex(0) + setRunTour(true) + }, 400) + } + window.addEventListener('relaunch-tour', handleRelaunch) + return () => window.removeEventListener('relaunch-tour', handleRelaunch) + }, [navigate]) + + const handleJoyrideCallback = useCallback( + (data: CallBackProps) => { + const { status, action, index, type } = data + + if (status === STATUS.FINISHED || status === STATUS.SKIPPED || action === ACTIONS.CLOSE) { + setRunTour(false) + setStepIndex(0) + return + } + + if (type === EVENTS.STEP_AFTER) { + const nextIndex = action === ACTIONS.PREV ? index - 1 : index + 1 + const nextRoute = stepRoutes[nextIndex] + + if (nextRoute !== undefined) { + const currentRoute = stepRoutes[index] + if (nextRoute !== currentRoute) { + navigate(nextRoute) + // Give the page time to render before advancing + setTimeout(() => setStepIndex(nextIndex), 400) + return + } + } + setStepIndex(nextIndex) + } + }, + [navigate] + ) + + return ( +
+ + +
+
+ +
+
+ + } /> + } /> + } /> + } /> + } /> + } /> + +
+
+ + +
+ ) +} diff --git a/frontend/src/components/Layout.tsx b/frontend/src/components/Layout.tsx new file mode 100644 index 0000000000000000000000000000000000000000..acd58514a737dbd83d0e64830581021d83114669 --- /dev/null +++ b/frontend/src/components/Layout.tsx @@ -0,0 +1,17 @@ +import type { ReactNode } from 'react' +import Sidebar from './Sidebar' + +interface Props { + children: ReactNode +} + +export default function Layout({ children }: Props) { + return ( +
+ +
+ {children} +
+
+ ) +} diff --git a/frontend/src/components/LoadingState.tsx b/frontend/src/components/LoadingState.tsx new file mode 100644 index 0000000000000000000000000000000000000000..86b60620afc4f8604d9e2ab701c9946081cc7e7b --- /dev/null +++ b/frontend/src/components/LoadingState.tsx @@ -0,0 +1,33 @@ +interface LoadingProps { + message?: string +} + +export function LoadingSpinner({ message = 'Loading...' }: LoadingProps) { + return ( +
+
+

{message}

+
+ ) +} + +interface ErrorProps { + message?: string + onRetry?: () => void +} + +export function ErrorState({ message = 'Failed to load data', onRetry }: ErrorProps) { + return ( +
+
+ ! +
+

{message}

+ {onRetry && ( + + )} +
+ ) +} diff --git a/frontend/src/components/MetricCard.tsx b/frontend/src/components/MetricCard.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a59e3e8a65712b17a13427c6dafa905f81caa373 --- /dev/null +++ b/frontend/src/components/MetricCard.tsx @@ -0,0 +1,77 @@ +import { useEffect, useRef, useState } from 'react' + +interface Props { + label: string + value: string | number | undefined | null + subtitle?: string + className?: string +} + +function useCountUp(target: string | number | undefined | null, duration = 600) { + const [display, setDisplay] = useState('--') + const hasAnimated = useRef(false) + + useEffect(() => { + if (target === null || target === undefined) { + setDisplay('--') + return + } + + const str = String(target) + + if (hasAnimated.current) { + setDisplay(str) + return + } + + const match = str.match(/(\d+)/) + if (!match) { + setDisplay(str) + hasAnimated.current = true + return + } + + const num = parseInt(match[1], 10) + if (num === 0) { + setDisplay(str) + hasAnimated.current = true + return + } + + const prefix = str.slice(0, match.index) + const suffix = str.slice((match.index ?? 0) + match[1].length) + const start = performance.now() + + function tick(now: number) { + const elapsed = now - start + const progress = Math.min(elapsed / duration, 1) + const eased = 1 - Math.pow(1 - progress, 3) + const current = Math.round(num * eased) + setDisplay(`${prefix}${current}${suffix}`) + + if (progress < 1) { + requestAnimationFrame(tick) + } else { + hasAnimated.current = true + } + } + + requestAnimationFrame(tick) + }, [target, duration]) + + return display +} + +export default function MetricCard({ label, value, subtitle, className = '' }: Props) { + const display = useCountUp(value) + + return ( +
+
{label}
+
{display}
+ {subtitle && ( +

{subtitle}

+ )} +
+ ) +} diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..aa5a400245073caf0a1a0b8ac6a4bbc6ea06e618 --- /dev/null +++ b/frontend/src/components/Sidebar.tsx @@ -0,0 +1,73 @@ +import { NavLink } from 'react-router-dom' +import { + Home, + MapPin, + Thermometer, + SlidersHorizontal, + Bell, + Settings, +} from 'lucide-react' + +const NAV_ITEMS = [ + { to: '/', label: 'Home', icon: Home, tourId: 'nav-home' }, + { to: '/zones', label: 'Zones', icon: MapPin, tourId: 'nav-zones' }, + { to: '/heat-monitor', label: 'Heat Monitor', icon: Thermometer, tourId: 'nav-heat-monitor' }, + { to: '/calibrate', label: 'Program Design', icon: SlidersHorizontal, tourId: 'nav-calibrate' }, + { to: '/alerts', label: 'Alerts', icon: Bell, tourId: 'nav-alerts' }, + { to: '/pipeline', label: 'Pipeline', icon: Settings, tourId: 'nav-pipeline' }, +] + +export default function Sidebar() { + return ( + + ) +} diff --git a/frontend/src/components/StatusBadge.tsx b/frontend/src/components/StatusBadge.tsx new file mode 100644 index 0000000000000000000000000000000000000000..70704835e8f4fd7f0ae79423c061af043e33a328 --- /dev/null +++ b/frontend/src/components/StatusBadge.tsx @@ -0,0 +1,33 @@ +interface Props { + status: string + className?: string +} + +const STATUS_MAP: Record = { + critical: { className: 'badge-red' }, + warning: { className: 'badge-orange' }, + watch: { className: 'badge-amber' }, + normal: { className: 'badge-green' }, + active: { className: 'badge-blue' }, + sent: { className: 'badge-green' }, + failed: { className: 'badge-red' }, + ok: { className: 'badge-green' }, + partial: { className: 'badge-amber' }, + dry_run: { className: 'badge-slate', label: 'dry run' }, + high: { className: 'badge-red' }, + moderate: { className: 'badge-amber' }, + low: { className: 'badge-green' }, + poor: { className: 'badge-red' }, + good: { className: 'badge-green' }, +} + +export default function StatusBadge({ status, className = '' }: Props) { + const config = STATUS_MAP[status] ?? { className: 'badge-slate' } + const label = config.label ?? status + + return ( + + {label} + + ) +} diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000000000000000000000000000000000000..2c8e47f39f366a68edac0f3c3281df84fdda4c14 --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,308 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + html { + -webkit-tap-highlight-color: transparent; + } + + body { + @apply min-h-screen bg-cream font-sans text-[#1a1a1a] antialiased; + margin: 0; + } + + h1, h2, h3, h4, h5, h6 { + @apply font-serif font-semibold text-[#1a1a1a]; + } + + h1 { @apply font-bold; } + + p, li, td, span, label { + color: #555; + } + + /* Custom scrollbar — warm tones */ + ::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + ::-webkit-scrollbar-track { + @apply bg-transparent; + } + + ::-webkit-scrollbar-thumb { + @apply rounded-full; + background: #d4cfc7; + } + + ::-webkit-scrollbar-thumb:hover { + background: #b8b3a9; + } +} + +@layer components { + /* ── Cards ── */ + .card { + @apply bg-white rounded-[10px] border border-warm-border; + transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; + } + + .card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); + border-color: #ccc8c0; + } + + .card-body { + @apply p-5; + } + + /* ── Metric cards ── */ + .metric-card { + @apply bg-white rounded-[10px] border border-warm-border p-5; + transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; + } + + .metric-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); + border-color: #ccc8c0; + } + + .metric-card .metric-label { + @apply uppercase text-[0.72rem] font-sans font-medium text-warm-muted; + letter-spacing: 1.2px; + } + + .metric-card .metric-value { + @apply font-serif font-bold text-[#1a1a1a] text-2xl mt-1; + } + + /* ── Buttons ── */ + .btn { + @apply inline-flex items-center justify-center gap-2 rounded-md px-4 py-2.5 + font-sans font-semibold text-sm uppercase transition-all duration-150 ease-in-out + focus:outline-none focus:ring-2 focus:ring-offset-2 + disabled:opacity-50 disabled:cursor-not-allowed; + letter-spacing: 0.5px; + } + + .btn-primary { + @apply inline-flex items-center justify-center gap-2 rounded-md px-4 py-2.5 + font-sans font-semibold text-sm uppercase transition-all duration-150 ease-in-out + focus:outline-none focus:ring-2 focus:ring-offset-2 + disabled:opacity-50 disabled:cursor-not-allowed + bg-gold text-white hover:bg-gold-hover + focus:ring-gold active:bg-gold-hover; + letter-spacing: 0.5px; + box-shadow: 0 1px 2px rgba(0,0,0,0.06); + } + + .btn-primary:hover { + transform: translateY(-1px); + box-shadow: 0 3px 8px rgba(212, 160, 25, 0.25); + } + + .btn-secondary { + @apply inline-flex items-center justify-center gap-2 rounded-md px-4 py-2.5 + font-sans font-semibold text-sm uppercase transition-all duration-150 ease-in-out + focus:outline-none focus:ring-2 focus:ring-offset-2 + disabled:opacity-50 disabled:cursor-not-allowed + bg-white text-[#555] border border-warm-border + hover:bg-warm-header-bg focus:ring-warm-border active:bg-warm-header-bg; + letter-spacing: 0.5px; + } + + /* ── Inputs ── */ + .input { + @apply block w-full rounded-md border border-warm-border px-3.5 py-2.5 + text-sm text-[#1a1a1a] font-sans placeholder-[#888] + focus:border-gold focus:ring-2 focus:ring-gold/20 + focus:outline-none transition-colors duration-150; + } + + /* ── Badges / pills ── */ + .badge { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 + text-xs font-semibold font-sans; + } + + .badge-green { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(42, 157, 143, 0.18); + color: #2a9d8f; + border: 1px solid rgba(42, 157, 143, 0.44); + } + + .badge-amber { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(212, 160, 25, 0.18); + color: #d4a019; + border: 1px solid rgba(212, 160, 25, 0.44); + } + + .badge-red { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(230, 57, 70, 0.18); + color: #e63946; + border: 1px solid rgba(230, 57, 70, 0.44); + } + + .badge-blue { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(21, 101, 192, 0.18); + color: #1565C0; + border: 1px solid rgba(21, 101, 192, 0.44); + } + + .badge-slate { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(136, 136, 136, 0.18); + color: #888; + border: 1px solid rgba(136, 136, 136, 0.44); + } + + .badge-orange { + @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold font-sans; + background: rgba(230, 126, 34, 0.18); + color: #e67e22; + border: 1px solid rgba(230, 126, 34, 0.44); + } + + /* ── Tables ── */ + .table-container { + @apply overflow-x-auto rounded-[10px] border border-warm-border bg-white; + } + + .table-container table { + @apply w-full text-sm text-left font-sans; + } + + .table-container thead { + @apply border-b border-warm-border; + background: #f5f3ef; + } + + .table-container th { + @apply px-4 py-3 font-semibold text-warm-muted text-xs uppercase; + letter-spacing: 1.2px; + } + + .table-container td { + @apply px-4 py-3 border-b border-warm-border/50; + color: #555; + } + + .table-container tbody tr:last-child td { + @apply border-b-0; + } + + .table-container tbody tr:hover { + background: rgba(250, 248, 245, 0.6); + } + + /* ── Tabs (bottom-border style) ── */ + .page-title { + font-size: 2rem; + font-weight: 700; + font-family: 'Source Serif 4', serif; + color: #1a1a1a; + line-height: 1.2; + margin: 0; + } + + .page-caption { + font-size: 0.88rem; + color: #888; + margin-top: 6px; + } + + .tab-list { + @apply flex border-b border-warm-border gap-0; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + scrollbar-width: none; + } + .tab-list::-webkit-scrollbar { display: none; } + + .tab-item { + @apply px-4 py-2.5 text-sm font-sans font-medium text-warm-body cursor-pointer + border-b-2 border-transparent transition-colors duration-150 + hover:text-[#1a1a1a] hover:border-warm-border; + white-space: nowrap; + flex-shrink: 0; + } + + .tab-item.active { + @apply text-gold border-gold font-semibold; + } + + /* ── Stage cards (Dashboard) ── */ + .stage-card { + @apply bg-white rounded-[14px] border border-warm-border relative overflow-hidden; + padding: 22px 20px 16px; + text-decoration: none; + color: inherit; + font-family: 'DM Sans', sans-serif; + transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94); + } + + .stage-card:hover { + border-color: #ccc8c0; + box-shadow: 0 8px 28px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.03); + transform: translateY(-3px); + } + + /* ── Section headers ── */ + .section-header { + @apply uppercase text-[0.78rem] font-sans font-semibold text-warm-muted pb-2 mb-4; + letter-spacing: 1.5px; + border-bottom: 2px solid #d4a019; + } +} + +@layer utilities { + .animate-fade-in { + animation: fadeIn 0.2s ease-out; + } + + .animate-slide-up { + animation: slideUp 0.3s ease-out both; + } + + .animate-stagger > * { + animation: slideUp 0.3s ease-out both; + } + .animate-stagger > *:nth-child(1) { animation-delay: 0ms; } + .animate-stagger > *:nth-child(2) { animation-delay: 50ms; } + .animate-stagger > *:nth-child(3) { animation-delay: 100ms; } + .animate-stagger > *:nth-child(4) { animation-delay: 150ms; } + .animate-stagger > *:nth-child(5) { animation-delay: 200ms; } + .animate-stagger > *:nth-child(6) { animation-delay: 250ms; } + + .animate-tab-enter { + animation: tabEnter 0.15s ease-out both; + } + + @keyframes fadeIn { + from { opacity: 0; transform: translateY(4px); } + to { opacity: 1; transform: translateY(0); } + } + + @keyframes slideUp { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } + } + + @keyframes tabEnter { + from { opacity: 0; transform: translateY(4px); } + to { opacity: 1; transform: translateY(0); } + } +} + +/* Joyride tooltip overrides */ +.__floater__body { + font-family: 'DM Sans', system-ui, sans-serif !important; +} diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..20ad1396c0d2a4feed5615558dfd6390d270d20d --- /dev/null +++ b/frontend/src/lib/api.ts @@ -0,0 +1,340 @@ +import { useQuery, keepPreviousData } from '@tanstack/react-query' + +const BASE_URL = import.meta.env.VITE_API_URL ?? '' + +async function fetchJson(path: string): Promise { + const res = await fetch(`${BASE_URL}${path}`) + if (!res.ok) throw new Error(`API error: ${res.status} ${res.statusText}`) + return res.json() as Promise +} + +// ── Types (matched to actual API response field names) ────────────────── + +export interface Zone { + zone_id: string + name: string + city: string + country: string + latitude: number + longitude: number + elevation_m: number + settlement_type: string + worker_population_est: number + outdoor_exposure_pct: number + heat_vulnerability: string + risk_level: string + current_temp_c: number + current_wbgt_c: number + current_heat_index_c: number + max_temp_c: number + max_wbgt_c: number + consecutive_hot_days: number + total_days_above_33: number + heat_risk_score: number + grid_temp_c: number + uhi_delta_c: number + corrected_temp_c: number + trigger_probability_7d: number + prediction_confidence: number + model_tier: string + enrolled_workers: number + data_quality: number + last_updated: string +} + +export interface ZonesResponse { + zones: Zone[] + total: number + cities: string[] +} + +export interface DailyHeat { + date: string + temp_c: number + grid_temp_c: number + uhi_delta_c: number + humidity_pct: number + wbgt_c: number + heat_index_c: number +} + +export interface IndexData { + zone_id: string + zone_name: string + city: string + temp_current: number + wbgt_current: number + heat_index_current: number + consecutive_hot_days: number + heat_risk_score: number + risk_level: string + grid_temp_c: number + uhi_delta_c: number + trigger_probability_7d: number + prediction_confidence: number + model_tier: string + daily_history: DailyHeat[] +} + +export interface IndicesResponse { + indices: IndexData[] + total: number +} + +export interface Trigger { + trigger_id: string + zone_id: string + zone_name: string + city: string + trigger_level: string + trigger_date: string + heat_risk_score: number + max_temp_c: number + max_wbgt_c: number + consecutive_days: number + total_days_above: number + settlement_type: string + payout_per_worker_usd: number + enrolled_workers: number + total_payout_usd: number + status: string +} + +export interface TriggersResponse { + triggers: Trigger[] + total: number + active: number + by_level: Record +} + +export interface BasisRisk { + zone_id: string + zone_name: string + city: string + overall_score: number + false_positive_rate: number + false_negative_rate: number + correlation: number + settlement_type: string + heat_vulnerability: string + recommendation: string +} + +export interface BasisRiskResponse { + assessments: BasisRisk[] + total: number + avg_score: number +} + +export interface Notification { + id: string + zone_id: string + zone_name: string + city: string + trigger_level: string + channel: string + language: string + recipient_count: number + message_preview: string + status: string + delivered_at: string + cost_estimate: number +} + +export interface NotificationsResponse { + notifications: Notification[] + total: number + by_language: Record +} + +export interface PipelineStep { + step: string + status: string + duration_s: number +} + +export interface PipelineRun { + run_id: string + started_at: string + ended_at: string + status: string + duration_s: number + zones_processed: number + triggers_found: number + notifications_sent: number + total_cost_usd: number + steps: PipelineStep[] +} + +export interface PipelineRunsResponse { + runs: PipelineRun[] + total: number +} + +export interface PipelineStats { + total_runs: number + successful_runs: number + success_rate: number + zones_monitored: number + cities: number + active_triggers: number + total_enrolled: number + total_cost_usd: number + avg_cost_per_run_usd: number + last_run: string | null + data_sources: string[] +} + +export interface EnrolledResponse { + by_zone: { zone_id: string; zone_name: string; city: string; enrolled: number }[] + total_enrolled: number +} + +export interface CalibrateParams { + temp_threshold: number + consecutive_days: number + wbgt_threshold: number + payout_usd: number + budget_usd: number + worker_contribution_usd: number +} + +export interface CalibrateZoneResult { + zone_id: string + zone_name: string + city: string + settlement_type: string + heat_vulnerability: string + enrolled_workers: number + days_above_temp: number + days_above_wbgt: number + consecutive_days_temp: number + consecutive_days_wbgt: number + trigger_events: number + events_per_year: number + annual_payout_per_worker: number + annual_payout_total: number + basis_risk_score: number + triggered: boolean + actuarial_cost_per_worker: number + cost_breakdown: Record + allocated_budget: number + workers_covered: number + coverage_pct: number + priority_rank: number +} + +export interface CalibrateSummary { + total_zones: number + zones_triggered: number + total_trigger_days: number + avg_events_per_year: number + total_annual_cost: number + avg_cost_per_worker: number + total_enrolled: number + avg_basis_risk: number +} + +export interface CalibrateAllocation { + budget_usd: number + worker_contribution_usd: number + workers_covered: number + overall_coverage_pct: number + zones_fully_funded: number + zones_partially_funded: number + zones_unfunded: number + stretch_analysis: Record +} + +export interface CalibrateResponse { + zones: CalibrateZoneResult[] + summary: CalibrateSummary + allocation: CalibrateAllocation + thresholds: CalibrateParams +} + +// ── Query hooks ────────────────────────────────────────────────────────── + +const STALE_5MIN = 5 * 60 * 1000 + +export function useZones() { + return useQuery({ + queryKey: ['zones'], + queryFn: () => fetchJson('/api/zones'), + staleTime: STALE_5MIN, + }) +} + +export function useIndices() { + return useQuery({ + queryKey: ['indices'], + queryFn: () => fetchJson('/api/indices'), + staleTime: STALE_5MIN, + }) +} + +export function useTriggers() { + return useQuery({ + queryKey: ['triggers'], + queryFn: () => fetchJson('/api/triggers'), + staleTime: STALE_5MIN, + }) +} + +export function useBasisRisk() { + return useQuery({ + queryKey: ['basis-risk'], + queryFn: () => fetchJson('/api/basis-risk'), + staleTime: STALE_5MIN, + }) +} + +export function useNotifications() { + return useQuery({ + queryKey: ['notifications'], + queryFn: () => fetchJson('/api/notifications'), + staleTime: STALE_5MIN, + }) +} + +export function usePipelineRuns() { + return useQuery({ + queryKey: ['pipeline-runs'], + queryFn: () => fetchJson('/api/pipeline/runs'), + staleTime: STALE_5MIN, + }) +} + +export function usePipelineStats() { + return useQuery({ + queryKey: ['pipeline-stats'], + queryFn: () => fetchJson('/api/pipeline/stats'), + staleTime: STALE_5MIN, + }) +} + +export function useEnrolled() { + return useQuery({ + queryKey: ['enrolled'], + queryFn: () => fetchJson('/api/enrolled-workers'), + staleTime: STALE_5MIN, + }) +} + +export function useCalibrateQuery(params: CalibrateParams) { + const qs = new URLSearchParams({ + temp_threshold: String(params.temp_threshold), + consecutive_days: String(params.consecutive_days), + wbgt_threshold: String(params.wbgt_threshold), + payout_usd: String(params.payout_usd), + budget_usd: String(params.budget_usd), + worker_contribution_usd: String(params.worker_contribution_usd), + }) + + return useQuery({ + queryKey: ['calibrate', params.temp_threshold, params.consecutive_days, params.wbgt_threshold, params.payout_usd, params.budget_usd, params.worker_contribution_usd], + queryFn: () => fetchJson(`/api/calibrate?${qs.toString()}`), + staleTime: 60 * 1000, + placeholderData: keepPreviousData, + }) +} diff --git a/frontend/src/lib/tour.ts b/frontend/src/lib/tour.ts new file mode 100644 index 0000000000000000000000000000000000000000..1f0ab41d23f1c4d7ae3b8b944c1aa2c48db86364 --- /dev/null +++ b/frontend/src/lib/tour.ts @@ -0,0 +1,198 @@ +import type { Step } from 'react-joyride' + +export const tourSteps: Step[] = [ + // ── Dashboard ── + { + target: '[data-tour="hero"]', + title: 'Welcome to the Heat Risk Engine', + content: + 'This dashboard monitors an extreme heat insurance pipeline for urban workers across East Africa. ' + + 'It pulls real satellite temperature data from NASA, calculates heat stress indices like WBGT, ' + + 'and triggers payout notifications to enrolled workers when dangerous heat thresholds are breached — ' + + 'across 20 neighborhoods in Nairobi, Dar es Salaam, Kampala, and Kigali.', + placement: 'bottom', + disableBeacon: true, + }, + { + target: '[data-tour="stage-cards"]', + title: 'Three-stage pipeline', + content: + 'Climate temperature data flows through heat index calculation to trigger calibration. ' + + 'Each stage runs automatically on a scheduled pipeline.', + placement: 'bottom', + disableBeacon: true, + }, + { + target: '[data-tour="metrics"]', + title: 'Live metrics', + content: + 'Active triggers, zones monitored, enrolled workers, and pipeline run counts ' + + 'update after each pipeline execution.', + placement: 'top', + disableBeacon: true, + }, + // ── Navigate to Zones ── + { + target: '[data-tour="nav-zones"]', + title: 'Zone coverage', + content: 'Next: the 20 urban zones across East African cities.', + placement: 'right', + disableBeacon: true, + }, + { + target: '[data-tour="zones-metrics"]', + title: 'Heat-vulnerable zones', + content: + 'Urban neighborhoods where outdoor workers face the highest heat exposure. ' + + 'Each zone has its own heat vulnerability profile, worker population estimate, and enrollment count.', + placement: 'bottom', + disableBeacon: true, + }, + // ── Navigate to Heat Monitor ── + { + target: '[data-tour="nav-heat-monitor"]', + title: 'Heat monitoring', + content: 'Next: real-time temperature, WBGT, and heat index tracking.', + placement: 'right', + disableBeacon: true, + }, + { + target: '[data-tour="heat-monitor-metrics"]', + title: 'Heat index monitoring', + content: + 'Temperature and WBGT values classify each zone from normal through caution, warning, to critical. ' + + 'Consecutive hot days track sustained heat events that trigger payouts.', + placement: 'bottom', + disableBeacon: true, + }, + { + target: '[data-tour="heat-monitor-tabs"]', + title: 'Temperature trends', + content: + 'The trends tab shows 90-day temperature history for each zone, revealing heat wave patterns ' + + 'and the buildup to trigger events.', + placement: 'top', + disableBeacon: true, + }, + // ── Navigate to Program Designer ── + { + target: '[data-tour="nav-calibrate"]', + title: 'Program design', + content: 'Next: the program design tool with actuarial pricing and budget allocation.', + placement: 'right', + disableBeacon: true, + }, + { + target: '[data-tour="program-controls"]', + title: 'Design the product', + content: + 'Enter your total budget and payout amount. The model does the actuarial pricing \u2014 ' + + 'calculating what it costs to cover each zone based on predicted trigger frequency, ' + + 'basis risk, and worker exposure. Then it optimizes allocation: highest-impact zones get funded first.', + placement: 'bottom', + disableBeacon: true, + }, + { + target: '[data-tour="program-results"]', + title: 'Allocation results', + content: + 'Results update live as you move the sliders. Zones are ranked by priority, ' + + 'with actuarial cost per worker, allocated budget, and coverage percentage for each zone.', + placement: 'top', + disableBeacon: true, + }, + // ── Navigate to Alerts ── + { + target: '[data-tour="nav-alerts"]', + title: 'Worker heat alerts', + content: 'Next: how workers are notified of heat danger and payouts.', + placement: 'right', + disableBeacon: true, + }, + { + target: '[data-tour="alerts-feed"]', + title: 'Multilingual alerts', + content: + 'SMS and WhatsApp notifications are sent in English and Swahili. ' + + 'Each message includes the temperature reading, heat danger level, and payout amount.', + placement: 'top', + disableBeacon: true, + }, + // ── Final ── + { + target: '[data-tour="nav-home"]', + title: 'The hard problems remain', + content: + 'The full chain from satellite temperature data to worker payout notification, automated. ' + + 'The hard part is still human: enrolling informal workers who need coverage most, ' + + 'building trust in a product that pays based on a weather station reading, ' + + 'and making sure people actually rest when it\u2019s dangerous to work. ' + + 'That\u2019s where the investment should go.', + placement: 'right', + disableBeacon: true, + }, +] + +export const tourStyles = { + options: { + zIndex: 10000, + arrowColor: '#1a1a1a', + backgroundColor: '#1a1a1a', + primaryColor: '#d4a019', + textColor: '#e0dcd5', + overlayColor: 'rgba(0, 0, 0, 0.45)', + }, + tooltip: { + borderRadius: 10, + padding: '20px 22px', + maxWidth: 380, + fontFamily: '"DM Sans", system-ui, sans-serif', + fontSize: '0.88rem', + lineHeight: 1.6, + }, + tooltipTitle: { + fontFamily: '"Source Serif 4", Georgia, serif', + fontWeight: 700, + fontSize: '1.05rem', + color: '#d4a019', + marginBottom: 8, + }, + tooltipContent: { + padding: '8px 0 0', + }, + buttonNext: { + backgroundColor: '#d4a019', + color: '#fff', + borderRadius: 6, + fontFamily: '"DM Sans", system-ui, sans-serif', + fontWeight: 600, + fontSize: '0.8rem', + letterSpacing: '0.5px', + textTransform: 'uppercase' as const, + padding: '8px 18px', + }, + buttonBack: { + color: '#888', + fontFamily: '"DM Sans", system-ui, sans-serif', + fontWeight: 500, + fontSize: '0.8rem', + marginRight: 8, + }, + buttonSkip: { + color: '#666', + fontFamily: '"DM Sans", system-ui, sans-serif', + fontSize: '0.75rem', + }, + spotlight: { + borderRadius: 10, + }, + beacon: { + display: 'none', + }, + beaconInner: { + display: 'none', + }, + beaconOuter: { + display: 'none', + }, +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 0000000000000000000000000000000000000000..ffebbca64e69ff384cfa0dd85f8ebd6b2de12fbd --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,25 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { BrowserRouter } from 'react-router-dom' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import App from './App' +import './index.css' + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 60_000, + retry: 1, + }, + }, +}) + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + + + + + +) diff --git a/frontend/src/pages/Dashboard.tsx b/frontend/src/pages/Dashboard.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a6f7d690a508afbaf13898e05c839e230cf1e4df --- /dev/null +++ b/frontend/src/pages/Dashboard.tsx @@ -0,0 +1,168 @@ +import { useState } from 'react' +import { Link } from 'react-router-dom' +import { Satellite, Thermometer, SlidersHorizontal, ChevronDown, ChevronRight, ArrowRight } from 'lucide-react' +import MetricCard from '../components/MetricCard' +import StatusBadge from '../components/StatusBadge' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { usePipelineStats, usePipelineRuns } from '../lib/api' + +export default function Dashboard() { + const stats = usePipelineStats() + const runs = usePipelineRuns() + const [showRuns, setShowRuns] = useState(false) + + if (stats.isLoading) return + if (stats.isError) return stats.refetch()} /> + + const s = stats.data + + return ( +
+ {/* Hero */} +
+

Extreme Heat Risk Engine

+

+ Parametric insurance triggers for urban workers in East Africa +

+
+ + {/* Stage Cards */} +
+
Pipeline Stages
+
+ +
+
+ +
+

Climate Data + UHI Correction

+
+

+ NASA POWER grid temperatures corrected with ML urban heat island model per zone +

+
+ {s?.data_sources?.join(' + ')} + UHI Model +
+ + +
+ +
+ + +
+
+ +
+

Heat Wave Prediction

+
+

+ 7-day trigger probability forecasts with model confidence scoring per zone +

+
+ Prediction + WBGT + Heat Index +
+ + +
+ +
+ + +
+
+ +
+

Program Design

+
+

+ Actuarial pricing and budget allocation across zones with priority-ranked coverage +

+
+ Pricing + Budget + Allocation +
+ +
+
+ + {/* Metrics */} +
+
Current Status
+
+ + + + +
+
+ + {/* Run History (collapsible) */} +
+ + {showRuns && ( +
+ {runs.isLoading ? ( + + ) : runs.isError ? ( + runs.refetch()} /> + ) : ( +
+ + + + + + + + + + + + + + + {runs.data?.runs.map((run) => ( + + + + + + + + + + + ))} + +
Run IDDateStatusDurationZonesTriggersNotificationsCost (USD)
{run.run_id}{new Date(run.started_at).toLocaleDateString()}{run.duration_s.toFixed(0)}s{run.zones_processed}{run.triggers_found}{run.notifications_sent}${run.total_cost_usd.toFixed(4)}
+
+ )} +
+ )} +
+
+ ) +} diff --git a/frontend/src/pages/HeatMonitor.tsx b/frontend/src/pages/HeatMonitor.tsx new file mode 100644 index 0000000000000000000000000000000000000000..efe5d4c7fea633ac076886b9cc9941a22de2be70 --- /dev/null +++ b/frontend/src/pages/HeatMonitor.tsx @@ -0,0 +1,334 @@ +import { useState } from 'react' +import { + LineChart, + Line, + XAxis, + YAxis, + CartesianGrid, + Tooltip, + ReferenceLine, + ResponsiveContainer, +} from 'recharts' +import MetricCard from '../components/MetricCard' +import StatusBadge from '../components/StatusBadge' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { useIndices } from '../lib/api' + +function tempColor(temp: number): string { + if (temp > 37) return '#e63946' + if (temp > 35) return '#d35400' + if (temp > 33) return '#e67e22' + if (temp > 30) return '#d4a019' + return '#2a9d8f' +} + +function wbgtColor(wbgt: number): string { + if (wbgt > 32) return '#e63946' + if (wbgt > 30) return '#e67e22' + if (wbgt > 28) return '#d4a019' + return '#2a9d8f' +} + +export default function HeatMonitor() { + const indices = useIndices() + const [activeTab, setActiveTab] = useState<'current' | 'trends'>('current') + const [selectedZone, setSelectedZone] = useState('') + + if (indices.isLoading) return + if (indices.isError) return indices.refetch()} /> + + const data = indices.data?.indices ?? [] + const criticalCount = data.filter((d) => d.risk_level === 'critical').length + const wbgtDanger = data.filter((d) => d.wbgt_current > 32).length + const avgTemp = data.length > 0 + ? data.reduce((sum, d) => sum + d.temp_current, 0) / data.length + : 0 + + // Default to first zone for trends chart + const zoneId = selectedZone || (data.length > 0 ? data[0].zone_id : '') + const selectedData = data.find((d) => d.zone_id === zoneId) + const chartData = selectedData?.daily_history.map((d) => ({ + date: new Date(d.date).toLocaleDateString('en', { month: 'short', day: 'numeric' }), + temp: d.temp_c, + gridTemp: d.grid_temp_c, + wbgt: d.wbgt_c, + humidity: d.humidity_pct, + })) ?? [] + + return ( +
+ {/* Title */} +
+

Heat Monitor

+

+ Temperature, WBGT, and heat index tracking across all zones +

+
+ + {/* Metrics */} +
+
+ + + + +
+
+ + {/* Tabs */} +
+
+ + +
+
+ + {activeTab === 'current' && ( +
+
+ + + + + + + + + + + + + + + + {data.map((idx) => { + const pct = (idx.trigger_probability_7d ?? 0) * 100 + const probColor = pct > 70 ? '#e63946' : pct > 50 ? '#e67e22' : pct > 20 ? '#d4a019' : '#2a9d8f' + const tier = idx.model_tier ?? 'climatology' + const tierColor = tier === 'full_model' ? '#2a9d8f' : tier === 'persistence' ? '#d4a019' : '#888' + const tierLabel = tier === 'full_model' ? 'Full Model' : tier === 'persistence' ? 'Persistence' : 'Climatology' + return ( + + + + + + + + + + + + ) + })} + +
ZoneTemp (°C)WBGT (°C)Heat IndexConsecutive Hot Days7-Day TriggerConfidenceModelRisk Level
+
{idx.zone_name}
+
{idx.city}
+
+ + {idx.temp_current.toFixed(1)} + + + + {idx.wbgt_current.toFixed(1)} + + {idx.heat_index_current.toFixed(1)}{idx.consecutive_hot_days} +
+
+
+
+ + {pct?.toFixed(0)}% + +
+
{((idx.prediction_confidence ?? 0) * 100).toFixed(0)}% + + {tierLabel} + +
+
+ + {/* Temperature color legend */} +
+ Temp: + {[ + { label: '<30°C Safe', color: '#2a9d8f' }, + { label: '30-33°C Caution', color: '#d4a019' }, + { label: '33-35°C Warning', color: '#e67e22' }, + { label: '35-37°C Danger', color: '#d35400' }, + { label: '>37°C Extreme', color: '#e63946' }, + ].map((item) => ( + + + {item.label} + + ))} +
+
+ WBGT: + {[ + { label: '<28°C Safe', color: '#2a9d8f' }, + { label: '28-30°C Caution', color: '#d4a019' }, + { label: '30-32°C Danger', color: '#e67e22' }, + { label: '>32°C Extreme', color: '#e63946' }, + ].map((item) => ( + + + {item.label} + + ))} +
+
+ )} + + {activeTab === 'trends' && ( +
+ {/* Zone selector */} +
+ + + {selectedData && ( + + + + )} +
+ + {/* Temperature Chart */} +
+

+ 90-Day Temperature History: {selectedData?.zone_name} +

+

+ Current:{' '} + + {selectedData?.temp_current.toFixed(1)}°C + + {' / WBGT: '} + + {selectedData?.wbgt_current.toFixed(1)}°C + +

+ + + + + + { + const labels: Record = { temp: 'Corrected Temp (°C)', gridTemp: 'Grid Temp (°C)', wbgt: 'WBGT (°C)', humidity: 'Humidity (%)' } + return [typeof value === 'number' ? value.toFixed(1) : value, labels[name] ?? name] + }} + /> + + + + + + + +
+ + + Grid Temp (°C) + + + + UHI-Corrected Temp (°C) + + + + WBGT (°C) + + + + 35°C threshold + +
+
+
+ )} +
+ ) +} diff --git a/frontend/src/pages/Notifications.tsx b/frontend/src/pages/Notifications.tsx new file mode 100644 index 0000000000000000000000000000000000000000..ca7392583e09c36f756c7488d5734cdd57e84408 --- /dev/null +++ b/frontend/src/pages/Notifications.tsx @@ -0,0 +1,106 @@ +import MetricCard from '../components/MetricCard' +import StatusBadge from '../components/StatusBadge' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { useNotifications } from '../lib/api' + +const LANG_LABELS: Record = { + en: 'English', + sw: 'Swahili', +} + +export default function Notifications() { + const notifications = useNotifications() + + if (notifications.isLoading) return + if (notifications.isError) return notifications.refetch()} /> + + const data = notifications.data?.notifications ?? [] + const byLang = notifications.data?.by_language ?? {} + const sentCount = data.filter((n) => n.status === 'sent').length + const channels = [...new Set(data.map((n) => n.channel))] + const deliveryRate = data.length > 0 ? Math.round((sentCount / data.length) * 100) : 0 + const languages = Object.keys(byLang) + + return ( +
+ {/* Title */} +
+

Heat Alerts

+

+ Worker heat alerts sent via SMS and WhatsApp in English and Swahili +

+
+ + {/* Metrics */} +
+
+ + LANG_LABELS[l] ?? l).join(', ')} + /> + + +
+
+ + {/* Notification Feed */} +
+
Alert Feed
+
+ {data.map((n) => ( +
+
+
+

+ {n.zone_name} +

+

{n.city}

+
+
+ + {LANG_LABELS[n.language] ?? n.language} +
+
+ +

+ {n.message_preview} +

+ +
+
+ + {n.channel} + + {n.recipient_count.toLocaleString()} recipients +
+
+ + {new Date(n.delivered_at).toLocaleString()} +
+
+
+ ))} +
+ {data.length === 0 && ( +
+ No heat alerts sent yet. +
+ )} +
+
+ ) +} diff --git a/frontend/src/pages/Pipeline.tsx b/frontend/src/pages/Pipeline.tsx new file mode 100644 index 0000000000000000000000000000000000000000..284491b0dc483ab576d87a2a3c72475c189f0699 --- /dev/null +++ b/frontend/src/pages/Pipeline.tsx @@ -0,0 +1,387 @@ +import { useState } from 'react' +import { ChevronDown, ChevronRight } from 'lucide-react' +import MetricCard from '../components/MetricCard' +import StatusBadge from '../components/StatusBadge' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { usePipelineRuns, usePipelineStats } from '../lib/api' + +const STATUS_COLOR: Record = { + ok: '#2a9d8f', success: '#2a9d8f', completed: '#2a9d8f', + partial: '#f4a261', running: '#1976D2', + failed: '#e63946', error: '#e63946', +} + +const STEP_LABELS: Record = { + ingest: 'Data Ingestion', + heal: 'Data Healing', + index: 'Heat Index Calculation', + calibrate: 'Trigger Calibration', + explain: 'Alert Generation', + notify: 'Worker Notification', +} + +// --------------------------------------------------------------------------- +// Architecture Diagram +// --------------------------------------------------------------------------- + +const ARCH_STEPS = [ + { + num: 1, name: 'Ingest', table: 'daily_readings', color: '#2E7D32', + desc: 'Fetch temperature and humidity from satellite sources', + options: [ + { label: 'NASA POWER', note: 'T2M, T2M_MAX, RH2M — free, no auth', active: true }, + { label: 'Custom Station Data', note: 'Your own weather stations or CSV files' }, + ], + }, + { + num: 2, name: 'Heal', table: 'healed_readings', color: '#1565C0', + desc: 'Validate and repair temperature anomalies', + options: [ + { label: 'Claude AI Agent', note: '5 diagnostic tools, reasoning logged', active: true }, + { label: 'Rule-Based', note: 'Zero-cost fallback, same output format' }, + ], + }, + { + num: 3, name: 'Index', table: 'heat_indices', color: '#7B1FA2', + desc: 'Calculate WBGT, Heat Index, consecutive day counts', + options: [ + { label: 'WBGT (Liljegren)', note: 'Simplified outdoor wet bulb globe temperature', active: true }, + { label: 'NWS Heat Index', note: 'Rothfusz regression, "feels like" temperature', active: true }, + { label: 'Consecutive Days', note: 'Run-length above configurable threshold', active: true }, + ], + }, + { + num: 4, name: 'Calibrate', table: 'trigger_events', color: '#E65100', + desc: 'Detect trigger events and estimate basis risk', + options: [ + { label: 'Composite Scoring', note: 'Temp 30% + WBGT 25% + Duration 20% + Vulnerability 15% + Exposure 10%', active: true }, + { label: 'Basis Risk Model', note: 'Urban heat island, worker exposure simulation', active: true }, + ], + }, + { + num: 5, name: 'Explain', table: 'explanations', color: '#C62828', + desc: 'Generate plain-language heat alerts in English + Swahili', + options: [ + { label: 'Claude + Knowledge Base', note: 'WHO/ILO heat guidance, zone-specific context', active: true }, + { label: 'Template-Based', note: 'Zero-cost fallback with pre-written alerts' }, + ], + }, + { + num: 6, name: 'Notify', table: 'notifications', color: '#d4a019', + desc: 'Deliver alerts and payout notifications to enrolled workers', + options: [ + { label: 'Console', note: 'Dry-run, always works', active: true }, + { label: 'Twilio SMS', note: 'Live delivery to worker phones' }, + { label: 'WhatsApp', note: 'Via Twilio Business API' }, + ], + }, +] + +function ArchitectureDiagram() { + return ( +
+ {ARCH_STEPS.map((s, i) => ( +
+
+
+ {s.num} +
+
+
+ {s.name} + {s.table} +
+
{s.desc}
+
+ {s.options.map(opt => ( +
+ {opt.label} + {opt.active && {'\u2713'}} +
+ ))} +
+
+
+ {i < ARCH_STEPS.length - 1 && ( +
+ )} +
+ ))} +
+ ) +} + +// --------------------------------------------------------------------------- +// Build Your Own Tab +// --------------------------------------------------------------------------- + +function BuildYourOwnTab() { + return ( +
+
+

+ This pipeline is designed to be forked and adapted for any region. The architecture separates + globally portable components (NASA POWER ingestion, WBGT calculation, Claude healing, notification delivery) + from region-specific configuration (zone definitions, temperature thresholds, payout tiers, knowledge base). +

+

+ To adapt for a new region, you need to customize these files: +

+
+ +
Region-Specific Files
+
+ {[ + { file: 'config.py', desc: 'Zone definitions: GPS coordinates, worker populations, heat vulnerability, payout tiers' }, + { file: 'src/healing/healer.py', desc: 'Historical temperature norms for your cities (monthly averages, standard deviations)' }, + { file: 'src/explanation/knowledge_base.py', desc: 'Local heat safety guidance, emergency contacts, zone-specific context, language translations' }, + { file: 'src/calibration/basis_risk.py', desc: 'Urban heat island estimates, worker exposure patterns for your settlement types' }, + ].map(item => ( +
+ {item.file} +

{item.desc}

+
+ ))} +
+ +
Globally Portable (No Changes Needed)
+
+ {[ + { file: 'src/ingestion/nasa_power.py', desc: 'Works anywhere on earth — just provide lat/lon coordinates' }, + { file: 'src/indexing/heat_index.py', desc: 'WBGT and Heat Index calculations are physics-based, universally applicable' }, + { file: 'src/indexing/heat_risk.py', desc: 'Composite scoring with parameterizable thresholds — configure via config.py' }, + { file: 'src/notification/sender.py', desc: 'Console, SMS, or WhatsApp — plug in Twilio credentials' }, + ].map(item => ( +
+ {item.file} +

{item.desc}

+
+ ))} +
+
+ ) +} + +// --------------------------------------------------------------------------- +// Main Component +// --------------------------------------------------------------------------- + +export default function Pipeline() { + const runs = usePipelineRuns() + const stats = usePipelineStats() + const [activeTab, setActiveTab] = useState<'architecture' | 'runs' | 'build'>('architecture') + const [expandedRun, setExpandedRun] = useState(null) + + if (runs.isLoading || stats.isLoading) return + if (runs.isError) return runs.refetch()} /> + if (stats.isError) return stats.refetch()} /> + + const runsData = runs.data?.runs ?? [] + const s = stats.data + + const TABS = ['Architecture', 'Pipeline Runs', 'Build Your Own'] + + return ( +
+
+

Pipeline

+

+ 6-step automated pipeline: ingest, heal, index, calibrate, explain, notify +

+
+ + {/* Stats */} +
+
+ + + + +
+
+ + {/* Tabs */} +
+ {TABS.map((tab, i) => ( + + ))} +
+ + {/* Architecture Tab */} + {activeTab === 'architecture' && ( +
+ +
+ )} + + {/* Pipeline Runs Tab */} + {activeTab === 'runs' && ( +
+ {/* Cost Summary */} +
+
+
+

+ Total Pipeline Cost +

+

+ ${s?.total_cost_usd?.toFixed(2)} +

+
+
+

+ Average per Run +

+

+ ${s?.avg_cost_per_run_usd?.toFixed(4)} +

+
+
+

+ Last Run +

+

+ {s?.last_run ? new Date(s.last_run).toLocaleDateString() : '--'} +

+
+
+
+ + {/* Run History */} +
Run History
+
+ + + + + + + + + + + + + + + {runsData.map((run) => ( + + setExpandedRun(expandedRun === run.run_id ? null : run.run_id)} + > + + + + + + + + + + + {expandedRun === run.run_id && ( + + + + )} + + ))} +
Run IDDateStatusDurationZonesTriggersNotificationsCost (USD)
+ {expandedRun === run.run_id ? ( + + ) : ( + + )} + {run.run_id}{new Date(run.started_at).toLocaleDateString()}{run.duration_s.toFixed(0)}s{run.zones_processed}{run.triggers_found}{run.notifications_sent}${run.total_cost_usd.toFixed(4)}
+
+

+ Pipeline Steps +

+
+ {run.steps.map((step, i) => ( +
+
+ Step {i + 1} +
+
+ {STEP_LABELS[step.step] ?? step.step} +
+ +
+ {step.duration_s.toFixed(1)}s +
+
+ ))} +
+
+
+
+
+ )} + + {/* Build Your Own Tab */} + {activeTab === 'build' && ( +
+ +
+ )} +
+ ) +} diff --git a/frontend/src/pages/ProgramDesigner.tsx b/frontend/src/pages/ProgramDesigner.tsx new file mode 100644 index 0000000000000000000000000000000000000000..7924b202cba238e18ca32fb3f88e822c2f60ddcd --- /dev/null +++ b/frontend/src/pages/ProgramDesigner.tsx @@ -0,0 +1,296 @@ +import { useState, useEffect, useRef } from 'react' +import MetricCard from '../components/MetricCard' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { useCalibrateQuery } from '../lib/api' +import type { CalibrateParams } from '../lib/api' + +function formatUsd(n: number | undefined): string { + if (n == null) return '--' + return '$' + n.toLocaleString(undefined, { maximumFractionDigits: 0 }) +} + +function rankColor(rank: number): string { + if (rank <= 5) return '#2a9d8f' + if (rank <= 10) return '#d4a019' + return '#888' +} + +export default function ProgramDesigner() { + const [params, setParams] = useState({ + temp_threshold: 35, + consecutive_days: 2, + wbgt_threshold: 30, + payout_usd: 10, + budget_usd: 500000, + worker_contribution_usd: 0, + }) + + // Debounced params for API calls + const [debouncedParams, setDebouncedParams] = useState(params) + const debounceTimer = useRef | null>(null) + + useEffect(() => { + if (debounceTimer.current) clearTimeout(debounceTimer.current) + debounceTimer.current = setTimeout(() => { + setDebouncedParams(params) + }, 300) + return () => { + if (debounceTimer.current) clearTimeout(debounceTimer.current) + } + }, [params]) + + const calibrate = useCalibrateQuery(debouncedParams) + + const updateParam = (key: K, value: CalibrateParams[K]) => { + setParams((prev) => ({ ...prev, [key]: value })) + } + + const summary = calibrate.data?.summary + const allocation = calibrate.data?.allocation + const zones = calibrate.data?.zones ?? [] + const sortedZones = [...zones].sort((a, b) => (a.priority_rank ?? 99) - (b.priority_rank ?? 99)) + + return ( +
+ {/* Title */} +
+

Program Design

+

+ Set budget, payout, and thresholds. The model prices each zone actuarially and allocates budget by priority. +

+
+ + {/* Controls */} +
+
+ {/* Budget */} +
+
+ + + {formatUsd(params.budget_usd)} + +
+ updateParam('budget_usd', Number(e.target.value))} + className="w-full h-1.5 bg-warm-border rounded-lg appearance-none cursor-pointer accent-gold" + /> +
+ $100K + $5M +
+
+ + {/* Payout per event */} +
+
+ + + ${params.payout_usd} + +
+ updateParam('payout_usd', Number(e.target.value))} + className="w-full h-1.5 bg-warm-border rounded-lg appearance-none cursor-pointer accent-gold" + /> +
+ $1 + $50 +
+
+ + {/* Worker contribution */} +
+
+ + + ${params.worker_contribution_usd} + +
+ updateParam('worker_contribution_usd', Number(e.target.value))} + className="w-full h-1.5 bg-warm-border rounded-lg appearance-none cursor-pointer accent-gold" + /> +
+ $0 + $20 +
+
+ + {/* Temperature threshold */} +
+
+ + + {params.temp_threshold}°C + +
+ updateParam('temp_threshold', Number(e.target.value))} + className="w-full h-1.5 bg-warm-border rounded-lg appearance-none cursor-pointer accent-gold" + /> +
+ 30°C + 45°C +
+
+ + {/* Consecutive days */} +
+
+ + + {params.consecutive_days} + +
+ updateParam('consecutive_days', Number(e.target.value))} + className="w-full h-1.5 bg-warm-border rounded-lg appearance-none cursor-pointer accent-gold" + /> +
+ 1 day + 7 days +
+
+
+
+ + {/* Results */} +
+ {calibrate.isLoading ? ( + + ) : calibrate.isError ? ( + calibrate.refetch()} /> + ) : ( + <> + {/* Allocation Summary */} +
+ + + + +
+ + {/* Zone Allocation Table */} +
+ + + + + + + + + + + + + + + + {sortedZones.map((z) => { + const unfunded = (z.allocated_budget ?? 0) === 0 + return ( + + + + + + + + + + + + ) + })} + +
RankZoneCityActuarial Cost/WorkerAllocated BudgetWorkers CoveredCoverage %Events/YearBasis Risk
+ + {z.priority_rank ?? '--'} + + {z.zone_name}{z.city}${z.actuarial_cost_per_worker?.toFixed(2) ?? '--'}{formatUsd(z.allocated_budget)}{z.workers_covered?.toLocaleString() ?? '0'} + = 80 ? '#2a9d8f' : (z.coverage_pct ?? 0) >= 40 ? '#d4a019' : '#e63946', + }} + > + {z.coverage_pct?.toFixed(1) ?? '0'}% + + {z.events_per_year?.toFixed(1)} + 0.3 ? '#e63946' : z.basis_risk_score > 0.2 ? '#e67e22' : '#2a9d8f', + }} + > + {z.basis_risk_score?.toFixed(3)} + +
+
+ {sortedZones.length === 0 && ( +
+ No zones triggered at current thresholds. Try lowering the temperature threshold. +
+ )} + + )} +
+
+ ) +} diff --git a/frontend/src/pages/Zones.tsx b/frontend/src/pages/Zones.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b549d8b23d606669ceb81fad52e047ec1c96bb42 --- /dev/null +++ b/frontend/src/pages/Zones.tsx @@ -0,0 +1,244 @@ +import { useState } from 'react' +import MetricCard from '../components/MetricCard' +import StatusBadge from '../components/StatusBadge' +import { LoadingSpinner, ErrorState } from '../components/LoadingState' +import { useZones, useEnrolled } from '../lib/api' + +function tempColor(temp: number): string { + if (temp > 37) return '#e63946' + if (temp > 35) return '#d35400' + if (temp > 33) return '#e67e22' + if (temp > 30) return '#d4a019' + return '#2a9d8f' +} + +function wbgtColor(wbgt: number): string { + if (wbgt > 32) return '#e63946' + if (wbgt > 30) return '#e67e22' + if (wbgt > 28) return '#d4a019' + return '#2a9d8f' +} + +export default function Zones() { + const zones = useZones() + const enrolled = useEnrolled() + const [cityFilter, setCityFilter] = useState('all') + const [activeTab, setActiveTab] = useState<'zones' | 'exposure'>('zones') + + if (zones.isLoading) return + if (zones.isError) return zones.refetch()} /> + + const cities = zones.data?.cities ?? [] + const allZones = zones.data?.zones ?? [] + const filtered = cityFilter === 'all' ? allZones : allZones.filter((z) => z.city === cityFilter) + const totalWorkers = allZones.reduce((sum, z) => sum + z.worker_population_est, 0) + + const enrolledByZone = enrolled.data?.by_zone ?? [] + + return ( +
+ {/* Title */} +
+

Zones

+

+ 20 heat-vulnerable urban zones across East African cities +

+
+ + {/* Metrics */} +
+
+ + + z.heat_vulnerability === 'high' || z.heat_vulnerability === 'critical').length} + subtitle="zones at elevated risk" + /> + +
+
+ + {/* Tabs */} +
+
+ + +
+
+ + {activeTab === 'zones' && ( +
+ {/* City filter */} +
+ + +
+ + {/* Zone table */} +
+ + + + + + + + + + + + + + + + + + {filtered.map((z) => ( + + + + + + + + + + + + + + ))} + +
ZoneCitySettlementHeat VulnerabilityWorkersGrid TempUHICorrectedWBGT (°C)7d TriggerRisk Level
{z.name}{z.city}{z.settlement_type}{z.worker_population_est.toLocaleString()} + + {z.grid_temp_c?.toFixed(1)}°C + + + 4 ? '#e63946' : (z.uhi_delta_c ?? 0) > 2 ? '#e67e22' : '#d4a019' }} + > + +{z.uhi_delta_c?.toFixed(1)}°C + + + + {z.corrected_temp_c?.toFixed(1)}°C + + + + {z.current_wbgt_c.toFixed(1)} + + + {(() => { + const pct = (z.trigger_probability_7d ?? 0) * 100 + const color = pct > 70 ? '#e63946' : pct > 50 ? '#e67e22' : pct > 20 ? '#d4a019' : '#2a9d8f' + return ( +
+
+
+
+ + {pct?.toFixed(0)}% + +
+ ) + })()} +
+
+
+ )} + + {activeTab === 'exposure' && ( +
+ {enrolled.isLoading ? ( + + ) : enrolled.isError ? ( + enrolled.refetch()} /> + ) : ( +
+ + + + + + + + + + + + + + {allZones.map((z) => { + const enrolledZone = enrolledByZone.find((e) => e.zone_id === z.zone_id) + const enrolledCount = enrolledZone?.enrolled ?? 0 + const enrollmentRate = z.worker_population_est > 0 + ? Math.round((enrolledCount / z.worker_population_est) * 100) + : 0 + return ( + + + + + + + + + + ) + })} + +
ZoneCityWorker PopulationOutdoor ExposureHeat VulnerabilityEnrolled WorkersEnrollment Rate
{z.name}{z.city}{z.worker_population_est.toLocaleString()}{z.outdoor_exposure_pct}%{enrolledCount.toLocaleString()} + + {enrollmentRate}% + +
+
+ )} +
+ )} +
+ ) +} diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b54b4c9828041fb637462a87f5b67d20fa035c2a --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1,9 @@ +/// + +interface ImportMetaEnv { + readonly VITE_API_URL: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 0000000000000000000000000000000000000000..30350ee93fccf20e79db4bbb666df32fdae3d507 --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,50 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + colors: { + cream: '#faf8f5', + gold: { + DEFAULT: '#d4a019', + hover: '#b8880f', + light: '#f0d97a', + dark: '#a67c10', + }, + warm: { + border: '#e0dcd5', + muted: '#888888', + 'muted-light': '#999999', + body: '#555555', + 'body-light': '#666666', + 'header-bg': '#f5f3ef', + }, + sidebar: { + DEFAULT: '#1a1a1a', + end: '#222018', + hover: '#2a2a3e', + }, + success: '#2a9d8f', + warning: '#d4a019', + error: '#e63946', + info: '#1565C0', + }, + fontFamily: { + serif: ['"Source Serif 4"', 'Georgia', 'serif'], + sans: ['"DM Sans"', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'], + }, + borderRadius: { + DEFAULT: '10px', + }, + letterSpacing: { + 'section': '1.5px', + 'label': '1.2px', + 'btn': '0.5px', + }, + }, + }, + plugins: [], +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..1997b7ea9f5264ca79d6594c5cec4295c0b88271 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "esModuleInterop": true + }, + "include": ["src"] +} diff --git a/frontend/tsconfig.tsbuildinfo b/frontend/tsconfig.tsbuildinfo new file mode 100644 index 0000000000000000000000000000000000000000..18fa3b040dd6a250804a225aed43e20e3262a1d2 --- /dev/null +++ b/frontend/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/Layout.tsx","./src/components/LoadingState.tsx","./src/components/MetricCard.tsx","./src/components/Sidebar.tsx","./src/components/StatusBadge.tsx","./src/lib/api.ts","./src/lib/tour.ts","./src/pages/Dashboard.tsx","./src/pages/HeatMonitor.tsx","./src/pages/Notifications.tsx","./src/pages/Pipeline.tsx","./src/pages/ProgramDesigner.tsx","./src/pages/Zones.tsx"],"version":"5.6.3"} \ No newline at end of file diff --git a/frontend/vercel.json b/frontend/vercel.json new file mode 100644 index 0000000000000000000000000000000000000000..834956b8f7d1a3942c105450dc0fec6d0a8d3929 --- /dev/null +++ b/frontend/vercel.json @@ -0,0 +1,8 @@ +{ + "buildCommand": "npm run build", + "outputDirectory": "dist", + "framework": "vite", + "rewrites": [ + { "source": "/((?!api/).*)", "destination": "/index.html" } + ] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..913b89106cf53a8366f479be5f934641f35bcb77 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + server: { + port: 5173, + proxy: { + '/api': { + target: 'http://localhost:7860', + changeOrigin: true, + }, + '/health': { + target: 'http://localhost:7860', + changeOrigin: true, + }, + }, + }, +}) diff --git a/models/heat_predictor_xgb.json b/models/heat_predictor_xgb.json new file mode 100644 index 0000000000000000000000000000000000000000..d51d3eceb99dac7c2f6faab745e1df5066a232fe --- /dev/null +++ b/models/heat_predictor_xgb.json @@ -0,0 +1 @@ +{"learner":{"attributes":{"scikit_learn":"{\"_estimator_type\": \"classifier\"}"},"feature_names":[],"feature_types":[],"gradient_booster":{"model":{"cats":{"enc":[],"feature_segments":[],"sorted_idx":[]},"gbtree_model_param":{"num_parallel_tree":"1","num_trees":"150"},"iteration_indptr":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],"tree_info":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"trees":[{"base_weights":[1.48935895E-8,-3.851469E-1,3.111636E0,-1.0926435E0,3.903851E-1,-4.624623E-1,3.6772668E0,-1.1561898E0,-4.4916523E-1,-9.102781E-1,1.9057523E0,2.2004187E-1,-6.413762E-1,7.0845164E-2,4.2868505E0,-1.1840605E-1,-9.8977333E-1,3.1340832E-1,-7.464983E-1,-1.0628446E0,6.337608E-2,8.045387E-1,2.624057E0,-9.001884E-1,4.9138275E-1,-3.410805E-1,1.9211644E0,3.086245E0,4.5323806E0,-1.0188482E-1,-4.8697203E-2,7.5709224E-2,-1.872259E-2,-3.3007596E-2,-9.123192E-2,-1.1073067E-1,-2.6898695E-2,-5.8790367E-2,1.3361834E-1,-4.2873707E-2,9.9478096E-2,3.2943022E-1,1.9169123E-1,2.7911443E-2,-1.0518356E-1,-4.152073E-2,1.5743677E-1,1.8039836E-1,-5.5840272E-2,4.7954105E-2,2.7418834E-1,1.3290578E-1,3.8215646E-1,2.4634182E-1,4.620866E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":0,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.3213528E3,9.4616327E2,4.330044E2,3.634851E1,1.6238909E3,1.5722538E1,4.048794E2,2.6309814E0,1.8978731E1,6.595706E1,2.9883362E2,0E0,8.921405E0,2.1741644E1,3.248242E1,0E0,1.3124466E0,5.449588E0,3.826458E0,1.3239471E1,5.1378216E1,3.6004074E1,1.0261035E2,4.5670776E0,6.5700893E0,1.1951664E1,4.8237553E0,3.3553406E1,1.2186035E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.1997198E1,-1.159346E-1,-2.344914E-1,9.0701383E-1,-2.3030567E-1,5E-1,-3.049212E-1,6.680639E-1,4.2573756E-1,-4.327756E-1,2.750313E1,2.2004187E-1,3.38775E1,3.4152542E1,1.9245158E-1,-1.1840605E-1,1.6036962E0,9.562348E-1,2.0949066E-1,3.0834862E1,2.8495266E1,-6.021328E-2,8.0647993E-1,-1.2262189E0,8.163012E1,7.1680595E1,-4.862727E-1,3.837446E1,-4.8166803E-1,-1.0188482E-1,-4.8697203E-2,7.5709224E-2,-1.872259E-2,-3.3007596E-2,-9.123192E-2,-1.1073067E-1,-2.6898695E-2,-5.8790367E-2,1.3361834E-1,-4.2873707E-2,9.9478096E-2,3.2943022E-1,1.9169123E-1,2.7911443E-2,-1.0518356E-1,-4.152073E-2,1.5743677E-1,1.8039836E-1,-5.5840272E-2,4.7954105E-2,2.7418834E-1,1.3290578E-1,3.8215646E-1,2.4634182E-1,4.620866E-1],"split_indices":[0,8,8,7,7,11,7,7,5,7,0,0,0,0,8,0,4,7,6,0,0,7,7,4,2,2,7,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.9349838E3,1.7226382E3,2.1234563E2,9.006191E2,8.2201904E2,2.9038717E1,1.833069E2,8.189477E2,8.1671394E1,4.4256122E2,3.7945786E2,1.1168737E0,2.7921844E1,2.6665361E1,1.5664154E2,6.9623114E2,1.227165E2,2.2895912E1,5.8775482E1,3.8252927E2,6.0031963E1,1.5063835E2,2.288195E2,2.2895912E1,5.025932E0,2.2477083E1,4.1882763E0,2.8899109E1,1.2774243E2,1.15037994E2,7.678507E0,1.1866783E1,1.1029128E1,1.7590761E1,4.118472E1,3.618671E2,2.0662165E1,4.0067844E1,1.9964119E1,1.9964119E1,1.3067422E2,1.15596436E2,1.13223076E2,2.512966E0,2.0382946E1,3.0714028E0,1.954529E0,1.3960922E0,2.1080992E1,2.0941381E0,2.0941381E0,9.353818E0,1.954529E1,6.422024E0,1.2132041E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-1.0081084E-2,-6.6466314E-1,1.247954E0,5.4107845E-1,-9.36913E-1,-8.224942E-1,1.8750356E0,-8.761823E-1,1.0070685E0,-1.0324826E0,-4.381521E-2,2.2093435E-1,-9.941485E-1,-5.139635E-1,2.511092E0,-9.537018E-1,-1.6367385E-1,-5.746288E-1,1.4402655E0,-1.1184635E0,1.4416923E-1,-6.144671E-1,1.7629316E0,-5.0645215E-3,2.0338984E-1,-1.0556681E0,4.4928044E-1,-5.95895E-1,1.5684463E0,1.5470809E0,2.7870033E0,-9.682806E-2,-1.2243511E-2,6.5311305E-2,-8.999755E-2,-7.8849465E-2,1.6763544E-2,1.1576598E-1,2.1357207E-1,-1.1590835E-1,-7.36939E-2,-3.5041593E-2,1.0291791E-1,-9.735483E-3,-7.4191466E-2,2.8925693E-1,9.9184744E-2,5.7260733E-2,-3.701407E-2,-8.331277E-2,-1.1553674E-1,1.8518913E-1,-1.9271336E-2,3.57573E-2,-7.697416E-2,3.451207E-2,1.8526883E-1,9.9016145E-2,2.7799496E-1,2.529974E-1,3.2792038E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":1,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,-1,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.5969893E3,4.1923145E2,8.632727E2,1.5647849E2,8.880542E1,2.7979065E1,7.7584607E2,3.093338E0,1.2263141E2,9.5291626E1,1.0590797E2,9.316452E0,1.2308823E1,1.9362328E1,1.02805176E2,5.2194214E-1,4.78546E0,6.312809E0,2.5010284E1,1.2727661E1,2.8775818E1,5.0688515E0,1.8613312E1,4.68143E0,0E0,1.8801422E0,5.8942475E0,1.7620655E1,8.780403E-1,6.032129E1,3.1157227E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,-1,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.8713701E1,5.421243E1,-2.344914E-1,-1.159346E-1,8.0392796E-1,6.90042E1,-3.6171374E-1,2.750313E1,2.5818441E-2,8.9963084E-1,0E0,3.1772726E1,3.38775E1,3.430553E1,2.2611569E-1,1.5041918E0,9.4651514E-1,2.6556627E1,2.7682554E1,6.2876284E-1,5.591699E-2,-3.6734554E-1,2.5157377E-1,-2.5881904E-1,2.0338984E-1,1E0,-2.2347833E-1,7.1680595E1,4.1644497E1,3.837446E1,3.3476425E1,-9.682806E-2,-1.2243511E-2,6.5311305E-2,-8.999755E-2,-7.8849465E-2,1.6763544E-2,1.1576598E-1,2.1357207E-1,-1.1590835E-1,-7.36939E-2,-3.5041593E-2,1.0291791E-1,-9.735483E-3,-7.4191466E-2,2.8925693E-1,9.9184744E-2,5.7260733E-2,-3.701407E-2,-8.331277E-2,-1.1553674E-1,1.8518913E-1,-1.9271336E-2,3.57573E-2,-7.697416E-2,3.451207E-2,1.8526883E-1,9.9016145E-2,2.7799496E-1,2.529974E-1,3.2792038E-1],"split_indices":[0,2,8,8,8,2,7,0,7,7,7,0,0,0,8,4,4,0,0,7,8,3,6,9,0,11,4,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.9372933E3,1.2745763E3,6.627171E2,2.3459837E2,1.0399779E3,1.5398618E2,5.0873093E2,5.7831013E1,1.7676735E2,9.393073E2,1.0067053E2,2.1713009E1,1.3227316E2,1.0700751E2,4.0172342E2,5.1851192E1,5.9798193E0,3.793433E1,1.3883302E2,8.753899E2,6.3917416E1,7.700788E1,2.366265E1,2.0193012E1,1.5199962E0,1.2712373E2,5.149432E0,1.0364354E2,3.3639667E0,9.086297E1,3.1086047E2,5.0795517E1,1.0556779E0,2.8885279E0,3.0912917E0,2.940088E1,8.533451E0,1.0061261E2,3.8220417E1,7.8931537E2,8.6074524E1,4.1390507E1,2.2526909E1,1.5575385E1,6.14325E1,8.483307E0,1.5179342E1,7.5995455E0,1.2593468E1,4.222623E1,8.48975E1,1.02514E0,4.1242924E0,1.5820209E1,8.782333E1,1.051723E0,2.3122437E0,6.3831654E1,2.7031311E1,2.0825096E2,1.026095E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-1.5291319E-2,-9.738858E-1,6.957492E-1,-1.0952663E0,-3.5182185E-2,-8.482843E-1,1.5611016E0,-1.1363575E0,-8.894717E-1,-4.2657173E-1,1.188685E0,-1.0365329E0,-2.0994006E-1,8.0833113E-1,2.0556238E0,-1.1427557E-1,-5.397191E-1,-1.0428886E0,-7.125973E-1,-8.5360116E-1,2.3061294E-2,-8.611891E-2,1.4999155E0,-1.0822383E0,-3.405193E-1,-3.8786992E-1,1.7145014E0,-3.7306687E-1,1.0218647E0,2.1927233E0,1.3742113E0,6.072218E-2,-8.5124694E-2,-2.9646093E-2,-1.0843565E-1,-4.1888278E-2,-1.11855924E-1,-9.807893E-2,-1.8574333E-2,7.642406E-2,-4.7099903E-2,2.7521813E-1,1.0297443E-1,-2.0292798E-2,-1.0918947E-1,8.791744E-2,-5.9861153E-2,-8.009132E-2,1.680641E-2,-6.8204366E-2,2.3259512E-1,7.594292E-2,-6.576945E-2,7.0367396E-2,1.4986803E-1,2.2672155E-1,1.2204852E-1,1.059351E-1,2.2681773E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":2,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,33,35,37,39,-1,41,43,45,47,49,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3090562E3,9.315289E1,1.474644E3,5.1134644E0,4.586108E1,4.7450806E1,2.6152405E2,1.6738892E0,2.652565E0,1.3935647E1,1.6097092E1,9.368622E0,3.202849E1,7.1509094E1,3.678784E1,0E0,3.468815E0,1.6860199E0,6.838707E0,2.9776325E0,1.364435E1,0E0,9.2431755E0,2.2133484E0,6.923063E0,1.957426E1,1.3216181E1,1.4648079E1,3.521521E1,2.279834E1,1.843747E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,34,36,38,40,-1,42,44,46,48,50,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-1.159346E-1,9.14128E-1,-3.049212E-1,6.680639E-1,3.1681175E1,-5.7377225E-1,2.8713701E1,8.176704E-1,2.7717335E1,-4.2140488E-2,9.3383723E-1,3.1309187E1,5.8658296E-1,0E0,9.796137E-1,-1.1427557E-1,1.8092202E-1,2.2853502E1,1E0,9.8594815E-1,9.53681E-1,-8.611891E-2,7.3239716E1,-2.824803E0,7.8532936E1,2.8376825E1,1.6036962E0,-3.6734554E-1,2.750313E1,9.946708E-1,3.894311E1,6.072218E-2,-8.5124694E-2,-2.9646093E-2,-1.0843565E-1,-4.1888278E-2,-1.11855924E-1,-9.807893E-2,-1.8574333E-2,7.642406E-2,-4.7099903E-2,2.7521813E-1,1.0297443E-1,-2.0292798E-2,-1.0918947E-1,8.791744E-2,-5.9861153E-2,-8.009132E-2,1.680641E-2,-6.8204366E-2,2.3259512E-1,7.594292E-2,-6.576945E-2,7.0367396E-2,1.4986803E-1,2.2672155E-1,1.2204852E-1,1.059351E-1,2.2681773E-1],"split_indices":[8,7,7,7,0,7,0,3,0,3,7,0,3,7,7,0,6,1,11,7,7,0,2,4,2,0,4,3,0,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.9185709E3,8.168964E2,1.1016744E3,7.232133E2,9.368306E1,3.9568326E2,7.059912E2,5.9907385E2,1.2413947E2,7.147651E1,2.2206545E1,3.0508847E2,9.059479E1,2.8095346E2,4.2503775E2,5.9181226E2,7.261648E0,6.3856003E1,6.0283466E1,3.6198917E1,3.527759E1,2.6942449E0,1.95123E1,2.857679E2,1.9320559E1,8.3658356E1,6.9364276E0,4.289348E1,2.3805998E2,3.519981E2,7.303964E1,1.3483394E0,5.9133086E0,3.7897213E0,6.006628E1,3.6156193E1,2.4127277E1,3.0014366E1,6.1845512E0,1.3891295E1,2.1386297E1,4.001372E0,1.5510929E1,3.343316E0,2.8242462E2,2.9540164E0,1.6366543E1,4.774472E1,3.591364E1,1.3865328E0,5.549895E0,8.280058E0,3.4613422E1,1.4426451E2,9.379547E1,3.2571048E2,2.6287619E1,5.5631046E1,1.74086E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-1.8760286E-2,-9.573365E-1,6.004523E-1,-1.0780511E0,-9.162721E-2,-8.3484817E-1,1.2940627E0,-1.1187747E0,-8.7050307E-1,-3.0216402E-1,1.5320127E0,-1.0092602E0,-2.2876711E-1,7.9191524E-1,1.7968639E0,-1.1238712E-1,-6.2278265E-1,-1.1255129E-1,-7.4648887E-1,-7.7986175E-1,1.5031445E-1,2.4240902E-1,1.8981869E0,-1.088305E0,-5.1733756E-1,-3.648796E-1,2.066274E0,-2.071829E-1,9.5305705E-1,1.950637E0,1.4090159E0,5.5757817E-2,-9.6923284E-2,-5.9652746E-2,-1.0962142E-1,-9.4357155E-2,-1.7657978E-2,-6.356289E-2,4.7593806E-2,9.654538E-2,-6.6043906E-2,6.033063E-2,2.143644E-1,-2.1313906E-2,-1.0996373E-1,-8.381795E-2,-3.0936745E-3,-7.409565E-2,1.2095256E-2,3.777276E-2,2.4119098E-1,4.2545933E-2,-5.2985765E-2,1.4281674E-1,6.44771E-2,1.5463464E-1,2.0951235E-1,9.5208265E-2,1.7957386E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":3,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,-1,33,35,37,39,41,43,45,47,49,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.0983115E3,7.84021E1,1.1346356E3,4.597351E0,3.226018E1,3.9048157E1,1.9249548E2,6.842041E-1,2.7216263E0,1.809578E1,4.6596603E0,1.0645355E1,2.7096643E1,6.2352478E1,2.0093262E1,0E0,3.7349303E0,0E0,3.475914E0,3.8453999E0,1.1449065E1,2.9512093E0,1.344101E0,2.219635E0,6.499139E0,1.4789877E1,1.9319782E0,1.1338815E1,4.7798553E1,1.262854E1,1.814096E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,-1,34,36,38,40,42,44,46,48,50,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-1.3301471E-1,9.0701383E-1,-3.294085E-1,6.680639E-1,3.38775E1,-5.7377225E-1,2.967978E1,8.176704E-1,5E-1,-4.2140488E-2,9.634706E-1,3E1,7.243951E-1,8.606997E-3,9.209713E-1,-1.1238712E-1,1.8092202E-1,-1.1255129E-1,1E0,9.796137E-1,2.7378668E1,-1.7701136E-3,-7.0710677E-1,-2.824803E0,-7.7488405E-1,2.8376825E1,2.820763E1,-1.7973603E-1,4.3709436E-1,1.9667289E-1,3.606382E1,5.5757817E-2,-9.6923284E-2,-5.9652746E-2,-1.0962142E-1,-9.4357155E-2,-1.7657978E-2,-6.356289E-2,4.7593806E-2,9.654538E-2,-6.6043906E-2,6.033063E-2,2.143644E-1,-2.1313906E-2,-1.0996373E-1,-8.381795E-2,-3.0936745E-3,-7.409565E-2,1.2095256E-2,3.777276E-2,2.4119098E-1,4.2545933E-2,-5.2985765E-2,1.4281674E-1,6.44771E-2,1.5463464E-1,2.0951235E-1,9.5208265E-2,1.7957386E-1],"split_indices":[8,7,7,7,0,7,0,3,11,3,7,0,3,7,7,0,6,0,11,7,0,3,9,4,7,0,1,3,5,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.8878125E3,7.5017816E2,1.1376343E3,6.581591E2,9.2019066E1,3.7058093E2,7.670534E2,5.465322E2,1.11626884E2,8.2177086E1,9.841977E0,2.872529E2,8.332801E1,3.8506448E2,3.819889E2,5.3972046E2,6.811748E0,3.3881287E1,7.77456E1,3.9622578E1,4.255451E1,2.5440986E0,7.2978783E0,2.4644104E2,4.081187E1,7.945667E1,3.8713403E0,5.344062E1,3.3162387E2,2.7065198E2,1.11336914E2,1.4073801E0,5.404368E0,5.630699E1,2.1438606E1,3.072171E1,8.9008665E0,1.2187073E1,3.0367435E1,1.3742164E0,1.1698822E0,1.7139608E0,5.5839176E0,3.4034967E0,2.4303754E2,2.4155249E1,1.6656622E1,4.4491337E1,3.496534E1,1.0133986E0,2.8579416E0,1.7942898E1,3.5497723E1,1.2907277E2,2.025511E2,7.4340546E1,1.9631145E2,5.2622536E1,5.8714382E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-2.0852227E-2,-9.635859E-1,5.1234347E-1,-1.0614185E0,-1.645979E-1,-8.6822665E-1,1.0661345E0,-1.1070617E-1,-8.3965784E-1,8.454877E-1,-4.9037343E-1,-9.948689E-1,-2.674007E-1,4.2492637E-1,1.3748056E0,-1.1063788E-1,-7.134076E-1,-3.46983E-1,1.0630559E0,-1.009717E0,-1.5817776E-1,-1.0384163E0,-1.3641608E-1,-4.5642787E-1,1.042204E0,-4.4388396E-1,5.817763E-1,1.1894363E0,1.8190848E0,-5.6289136E-2,-1.0774652E-1,3.1942535E-2,-7.570746E-2,1.5450998E-1,4.2197835E-2,-1.0462554E-1,-1.6851828E-2,-2.9477546E-2,9.804633E-2,-1.0738428E-1,-7.651257E-2,-8.763556E-2,6.2195238E-2,-8.147093E-2,-2.0815102E-2,7.3192655E-3,2.4251024E-1,1.4069709E-2,-7.165385E-2,-1.4932948E-2,7.03409E-2,1.4239614E-1,8.7503575E-2,1.8485002E-1,-3.4562987E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":4,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.3050635E2,5.209912E1,9.0495135E2,5.09906E0,2.480978E1,2.553389E1,1.6653394E2,0E0,2.7735214E0,5.154688E0,9.620509E0,1.0313599E1,1.5426588E1,3.7846333E1,4.474048E1,0E0,3.4828644E0,1.2257228E0,4.2449436E0,4.9770927E-1,5.850943E0,1.7539368E0,8.767895E0,4.5869856E0,1.0438875E1,6.9144735E0,2.0921013E1,2.8598083E1,9.1033325E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-1.8399835E-1,9.0701383E-1,-3.9359027E-1,6.680639E-1,3.0554688E-1,3E1,2.8191822E1,-1.1070617E-1,5E-1,-8.660254E-1,-1.7973603E-1,-4.559067E-1,7.243951E-1,-1.11659005E-1,3.3476425E1,-1.1063788E-1,1E0,2.3605953E-1,6.705331E1,3.837446E1,3.38775E1,-6.016241E-1,2.621471E1,-7.7488405E-1,-5.4524046E-1,-2.3714872E-1,3.872228E-2,8.0647993E-1,8.592834E1,-5.6289136E-2,-1.0774652E-1,3.1942535E-2,-7.570746E-2,1.5450998E-1,4.2197835E-2,-1.0462554E-1,-1.6851828E-2,-2.9477546E-2,9.804633E-2,-1.0738428E-1,-7.651257E-2,-8.763556E-2,6.2195238E-2,-8.147093E-2,-2.0815102E-2,7.3192655E-3,2.4251024E-1,1.4069709E-2,-7.165385E-2,-1.4932948E-2,7.03409E-2,1.4239614E-1,8.7503575E-2,1.8485002E-1,-3.4562987E-3],"split_indices":[8,7,7,7,5,0,0,0,11,9,3,7,3,7,0,0,11,3,2,1,0,7,0,7,7,3,8,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.8491766E3,6.677438E2,1.1814329E3,5.946081E2,7.313567E1,3.3807153E2,8.433614E2,4.8980362E2,1.04804504E2,1.7446499E1,5.568917E1,2.7867627E2,5.9395256E1,2.748296E2,5.6853174E2,3.1176502E1,7.3628E1,2.6002035E0,1.4846296E1,2.0929373E1,3.47598E1,2.6502264E2,1.3653641E1,5.247285E1,6.922406E0,4.1748703E1,2.330809E2,4.0374994E2,1.6478183E2,5.3892715E1,1.9735285E1,1.0747681E0,1.5254354E0,7.6693444E0,7.1769514E0,1.9824505E1,1.1048679E0,3.1698221E1,3.0615778E0,2.3201706E2,3.300558E1,6.832042E0,6.8215985E0,2.0544376E1,3.1928476E1,4.6894126E0,2.2329938E0,1.3432633E1,2.8316069E1,3.321365E1,1.9986725E2,2.2922894E2,1.74521E2,1.622105E2,2.5713265E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-2.2368427E-2,-9.394903E-1,4.5678025E-1,-1.042629E0,-1.5129787E-1,-8.3975136E-1,9.277322E-1,-1.0918432E0,-8.0947506E-1,-7.73603E-1,3.1423137E-1,-9.717451E-1,-2.4544121E-1,5.4192257E-1,1.3138384E0,-7.726235E-1,-1.0981125E0,-1.0890237E-1,-6.810033E-1,-9.2363966E-1,2.9692608E-1,-4.526598E-1,5.780879E-1,-1.0176702E0,-1.2767185E-1,-3.8427708E-1,1.3041587E0,-2.3005852E-1,6.814056E-1,1.1338174E0,1.5851022E0,9.338478E-2,-1.01332046E-1,-1.10230125E-1,-6.59676E-2,-5.3022552E-2,-1.0601681E-1,-9.846849E-2,3.1516414E-2,7.7726156E-2,-3.9255973E-2,8.155416E-2,-7.446487E-2,1.4785181E-1,2.2279127E-2,-1.0557492E-1,-7.323422E-2,-8.493226E-2,5.4626413E-2,-8.042199E-2,-1.10583E-2,3.0994192E-2,1.7564672E-1,2.6870681E-2,-4.6034586E-2,1.0350448E-1,3.5322748E-2,1.2639733E-1,5.560956E-2,1.6099583E-1,-3.2095504E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":5,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,35,37,39,41,43,45,47,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.9460504E2,5.0285583E1,7.260206E2,5.4103394E0,2.1382854E1,2.4628876E1,1.2914551E2,5.230713E-2,2.8308258E0,5.3363285E0,8.852371E0,9.91214E0,1.3183247E1,4.7291824E1,1.9445251E1,5.892693E0,7.910156E-2,0E0,3.4866714E0,2.4191093E0,1.8387756E0,4.839331E0,9.916393E0,1.8946533E0,7.5213423E0,6.2179785E0,1.7376738E0,7.90378E0,4.2691925E1,1.9222626E1,6.9259033E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,36,38,40,42,44,46,48,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-1.8399835E-1,9.0701383E-1,-3.9359027E-1,6.680639E-1,-5.6546368E-2,3E1,2.967978E1,-9.6793777E-1,5E-1,3.837446E1,2.7378668E1,-4.559067E-1,8.176704E-1,8.606997E-3,3.3476425E1,-4.5627186E-1,8.176704E-1,-1.0890237E-1,1E0,9.4651514E-1,-2.7103993E-1,-4.92201E-3,6.19975E1,-6.016241E-1,2.621471E1,-7.7488405E-1,-7.41222E-1,-2.3714872E-1,8.263542E-1,9.7601056E-1,8.592834E1,9.338478E-2,-1.01332046E-1,-1.10230125E-1,-6.59676E-2,-5.3022552E-2,-1.0601681E-1,-9.846849E-2,3.1516414E-2,7.7726156E-2,-3.9255973E-2,8.155416E-2,-7.446487E-2,1.4785181E-1,2.2279127E-2,-1.0557492E-1,-7.323422E-2,-8.493226E-2,5.4626413E-2,-8.042199E-2,-1.10583E-2,3.0994192E-2,1.7564672E-1,2.6870681E-2,-4.6034586E-2,1.0350448E-1,3.5322748E-2,1.2639733E-1,5.560956E-2,1.6099583E-1,-3.2095504E-3],"split_indices":[8,7,7,7,3,0,0,7,11,1,0,7,3,7,0,3,3,0,11,4,4,3,2,7,0,7,7,3,7,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.8062548E3,6.195105E2,1.1867444E3,5.4753955E2,7.197092E1,3.160034E2,8.7074097E2,4.4906735E2,9.8472206E1,3.0516127E1,4.145479E1,2.5805533E2,5.7948063E1,4.3673996E2,4.3400098E2,1.1042597E1,4.3802475E2,2.8651375E1,6.982083E1,2.6885311E1,3.630815E0,1.0428657E1,3.102613E1,2.4454428E2,1.351103E1,5.3873318E1,4.074746E0,6.673574E1,3.7000424E2,2.6398822E2,1.7001277E2,1.009039E0,1.0033558E1,4.323798E2,5.644961E0,5.1671616E1,1.8149218E1,2.5818188E1,1.0671239E0,2.0649476E0,1.5658674E0,1.6161486E0,8.812509E0,7.884086E0,2.3142044E1,2.133686E2,3.1175682E1,6.398873E0,7.1121573E0,2.0492397E1,3.338092E1,1.8010697E0,2.2736764E0,2.1027256E1,4.5708485E1,1.7705684E2,1.9294739E2,2.1447986E2,4.9508347E1,1.6744366E2,2.569107E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-2.3308886E-2,-9.161435E-1,4.0995106E-1,-1.0248893E0,-1.3871911E-1,-8.117022E-1,8.1616086E-1,-1.0780437E0,-7.797955E-1,-7.426002E-1,2.809399E-1,-9.493431E-1,-2.249506E-1,1.9459912E-1,1.0148536E0,-7.4335533E-1,-1.0847982E0,-9.393315E-1,-5.365677E-1,-8.9674646E-1,2.711001E-1,-4.2198488E-1,5.079635E-1,-9.97752E-1,-1.1985695E-1,-4.0223768E-1,8.817796E-1,5.065951E-1,-8.166214E-2,8.39269E-1,1.3424792E0,8.525237E-2,-9.9564455E-2,-1.0893303E-1,-6.318165E-2,-8.580771E-3,-9.8616004E-2,-1.1837627E-2,-1.0440586E-1,-9.605904E-2,2.9588977E-2,-3.6963403E-2,7.162847E-2,7.3604554E-2,-7.1293704E-2,1.3690838E-1,1.8918816E-2,-1.0641652E-1,-8.0393575E-2,-8.230242E-2,4.8211362E-2,-6.6974774E-2,-9.279268E-3,5.094846E-3,1.9917883E-1,-9.887172E-2,5.825826E-2,-2.0956637E-2,5.1305216E-2,4.2890063E-3,9.323182E-2,1.19856335E-1,1.6248822E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":6,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.817343E2,4.853601E1,5.8951166E2,5.738098E0,1.8408081E1,2.374025E1,1.09841125E2,1.2582397E-1,3.1284752E0,4.886917E0,7.0915337E0,9.514862E0,1.166954E1,1.8750935E1,3.7699646E1,5.4123755E0,1.3702393E-1,2.1216812E0,8.240816E0,2.2660904E0,1.6027071E0,4.2535357E0,8.807435E0,2.0608215E0,6.4781303E0,4.109271E0,7.5304575E0,1.2174797E1,8.930316E0,3.272058E1,7.556122E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-1.8399835E-1,9.0701383E-1,-3.9359027E-1,6.680639E-1,-5.6546368E-2,3E1,2.750313E1,-9.6793777E-1,2.9916637E1,3.837446E1,2.7378668E1,-4.559067E-1,7.243951E-1,5.0932945E1,3.261837E1,-4.5627186E-1,8.176704E-1,2.2853502E1,1E0,9.4651514E-1,-2.0782702E-1,-4.92201E-3,5E-1,2.7161894E1,2.621471E1,1.8129073E-1,-5.4524046E-1,-8.1676394E-2,9.8522013E-1,4.3035382E-3,1.5783356E0,8.525237E-2,-9.9564455E-2,-1.0893303E-1,-6.318165E-2,-8.580771E-3,-9.8616004E-2,-1.1837627E-2,-1.0440586E-1,-9.605904E-2,2.9588977E-2,-3.6963403E-2,7.162847E-2,7.3604554E-2,-7.1293704E-2,1.3690838E-1,1.8918816E-2,-1.0641652E-1,-8.0393575E-2,-8.230242E-2,4.8211362E-2,-6.6974774E-2,-9.279268E-3,5.094846E-3,1.9917883E-1,-9.887172E-2,5.825826E-2,-2.0956637E-2,5.1305216E-2,4.2890063E-3,9.323182E-2,1.19856335E-1,1.6248822E-1],"split_indices":[8,7,7,7,3,0,0,7,1,1,0,7,3,2,0,3,3,1,11,4,3,3,11,0,0,3,7,8,8,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.7603932E3,5.7478937E2,1.1856039E3,5.0397513E2,7.081421E1,2.956013E2,8.900026E2,4.1136285E2,9.261227E1,2.8718836E1,4.2095375E1,2.3893391E2,5.666737E1,2.1606749E2,6.739351E2,1.0334588E1,4.0102826E2,5.4199963E1,3.8412308E1,2.5028328E1,3.690508E0,1.0066882E1,3.2028492E1,2.2556694E2,1.3366975E1,4.939184E1,7.275525E0,1.010795E2,1.14988E2,4.4109863E2,2.3283647E2,1.085978E0,9.2486105E0,3.9566492E2,5.3633637E0,2.9663303E0,5.123363E1,2.1735064E1,1.6677244E1,2.3941275E1,1.0870525E0,1.5825382E0,2.1079695E0,1.714229E0,8.352653E0,7.7630463E0,2.4265446E1,1.6465541E2,6.0911537E1,5.9958973E0,7.371078E0,2.586641E1,2.3525433E1,4.759204E0,2.516321E0,4.3072915E0,9.67722E1,9.516799E1,1.9820005E1,4.629921E1,3.9479944E2,1.5770984E2,7.512664E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"63","size_leaf_vector":"1"}},{"base_weights":[-2.3904163E-2,-9.037213E-1,3.6484003E-1,-1.0094668E0,-1.4357394E-1,-7.2478545E-1,7.3894083E-1,-1.0677902E0,-7.5050104E-1,6.4222425E-1,-4.5316544E-1,-9.420717E-1,-2.6731926E-1,1.8212956E-1,9.130343E-1,-1.0725491E0,-6.1106133E-1,-1.0637593E-1,-6.1097926E-1,1.0078614E0,9.236132E-2,-9.8467445E-1,-1.6805297E-1,-1.0446734E0,-5.4899704E-1,4.8237267E-1,-4.7176662E-1,4.3217474E-1,-9.115643E-2,7.3675245E-1,1.1916822E0,-6.7788474E-2,-1.0776085E-1,-8.959147E-2,4.007184E-2,-4.5635406E-2,-1.0289117E-1,1.4509912E-1,-1.9949544E-2,-3.2091293E-2,1.4142147E-1,-3.2407057E-2,-1.0390606E-1,1.1827934E-2,-7.259362E-2,-2.4997935E-2,-1.0561003E-1,-6.680925E-2,7.760995E-2,-4.0755235E-2,1.0013802E-1,-5.925671E-2,1.0204768E-1,-8.7646425E-2,5.1060863E-2,-1.6944556E-2,9.82919E-2,2.9427733E-3,8.2669646E-2,1.0896846E-1,1.5716112E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":7,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,35,37,39,41,43,45,47,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.869024E2,4.2123383E1,4.8568146E2,6.168396E0,1.6197248E1,3.003447E1,8.576611E1,1.5814209E-1,3.2045174E0,3.70537E0,7.031184E0,7.741562E0,1.5480165E1,1.4553356E1,3.2282288E1,6.4697266E-3,2.141192E0,0E0,3.6252136E0,6.3065605E0,5.1773167E0,2.5157738E-1,5.215983E0,1.2106323E0,7.586075E0,1.04851265E1,1.4790632E1,1.1849918E1,8.76951E0,2.6448364E1,8.361664E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,36,38,40,42,44,46,48,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.0089056E-1,9.0701383E-1,-3.294085E-1,6.680639E-1,3.0554688E-1,2.8495266E1,2.750313E1,8.176704E-1,5E-1,6.705331E1,-1.7973603E-1,-6.016241E-1,7.1680595E1,5.1510418E1,3.2177994E1,-9.6793777E-1,3.294085E-1,-1.0637593E-1,1E0,7.0710677E-1,8.1396324E1,4.8880367E1,1.3814843E-1,-2.824803E0,6.0125667E-1,1.6737083E-1,3.4152542E1,-6.450845E-2,9.986668E-1,4.3035382E-3,4.2809454E-1,-6.7788474E-2,-1.0776085E-1,-8.959147E-2,4.007184E-2,-4.5635406E-2,-1.0289117E-1,1.4509912E-1,-1.9949544E-2,-3.2091293E-2,1.4142147E-1,-3.2407057E-2,-1.0390606E-1,1.1827934E-2,-7.259362E-2,-2.4997935E-2,-1.0561003E-1,-6.680925E-2,7.760995E-2,-4.0755235E-2,1.0013802E-1,-5.925671E-2,1.0204768E-1,-8.7646425E-2,5.1060863E-2,-1.6944556E-2,9.82919E-2,2.9427733E-3,8.2669646E-2,1.0896846E-1,1.5716112E-1],"split_indices":[8,7,7,7,5,0,0,3,11,2,3,7,2,2,0,7,7,0,11,9,2,2,3,4,3,3,0,8,8,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.7140055E3,5.2484235E2,1.1891631E3,4.6045908E2,6.438329E1,3.0368805E2,8.854751E2,3.7326935E2,8.718973E1,1.7893072E1,4.649022E1,2.0517513E2,9.851292E1,2.1139783E2,6.740773E2,3.680857E2,5.183649E0,2.4825804E1,6.2363922E1,1.0246574E1,7.6464977E0,1.53747835E1,3.1115435E1,1.6139066E2,4.378447E1,2.0817486E1,7.769543E1,1.10089325E2,1.01308495E2,4.151094E2,2.5896783E2,6.367531E0,3.6171817E2,4.1342273E0,1.0494218E0,4.7048878E1,1.5315047E1,7.3479156E0,2.8986583E0,6.4021163E0,1.2443812E0,1.6988088E0,1.3675975E1,2.1082748E1,1.0032687E1,2.6119933E0,1.5877867E2,4.0628708E1,3.1557624E0,7.7476296E0,1.3069856E1,7.2434586E1,5.260841E0,5.6498137E0,1.04439514E2,9.521084E1,6.0976562E0,4.6980366E1,3.6812906E2,2.0720786E2,5.1759975E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-2.4209158E-2,-8.816777E-1,3.2996082E-1,-9.9316233E-1,-1.3257112E-1,-7.8667545E-1,6.34682E-1,-1.0563042E0,-7.214571E-1,-7.356007E-1,2.4244876E-1,-9.401432E-1,-1.6367283E-1,2.2597545E-1,8.308111E-1,-1.0614682E0,-5.842428E-1,-8.973366E-1,-4.6054947E-1,-8.585715E-1,4.842487E-2,6.558676E-1,-6.938404E-2,-1.0042944E0,-5.871066E-1,-4.321157E-1,4.0978333E-1,-3.2521033E-1,3.5516986E-1,7.0247877E-1,1.1578733E0,-6.515864E-2,-1.0669484E-1,-8.754023E-2,3.738193E-2,-2.6095628E-3,-9.4946794E-2,-5.1246267E-3,-1.0145346E-1,-1.00334875E-1,-1.2386582E-2,-7.22329E-2,8.1232525E-2,6.637795E-2,-4.853277E-2,-5.8575213E-2,-1.0410994E-1,-7.833125E-2,-2.0490747E-2,-8.879617E-2,-1.337755E-2,-7.446106E-3,1.5941893E-1,1.0451197E-2,-5.8970686E-2,6.499121E-2,1.2602228E-2,8.6717494E-2,4.8353713E-2,1.1816893E-1,-9.603077E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":8,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,-1,41,43,45,47,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.069477E2,4.061795E1,4.0248532E2,6.5219116E0,1.4734066E1,2.4104858E1,7.425418E1,2.144165E-1,3.4053879E0,4.154999E0,5.2584686E0,4.0161133E0,8.083251E0,2.165754E1,2.5510254E1,6.274414E-2,1.981106E0,2.1850166E0,8.011805E0,2.3227444E0,0E0,4.356379E0,7.6271877E0,2.0195007E0,2.365056E0,4.7049694E0,9.80537E0,6.649937E0,1.6502321E1,1.5914169E1,5.3453064E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,-1,42,44,46,48,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.0089056E-1,9.0701383E-1,-4.2500034E-1,6.680639E-1,-5.6546368E-2,3E1,2.8191822E1,8.176704E-1,2.9916637E1,3.38775E1,3.0554688E-1,-6.016241E-1,4.7501048E-1,2.5818441E-2,3.3476425E1,-9.6793777E-1,3.294085E-1,2.2853502E1,1E0,4.4280532E-1,4.842487E-2,-9.659258E-1,4.926798E-2,-4.8166803E-1,2.7161894E1,-7.7488405E-1,-5.4524046E-1,-1.7973603E-1,8.0647993E-1,8.0647993E-1,8.592834E1,-6.515864E-2,-1.0669484E-1,-8.754023E-2,3.738193E-2,-2.6095628E-3,-9.4946794E-2,-5.1246267E-3,-1.0145346E-1,-1.00334875E-1,-1.2386582E-2,-7.22329E-2,8.1232525E-2,6.637795E-2,-4.853277E-2,-5.8575213E-2,-1.0410994E-1,-7.833125E-2,-2.0490747E-2,-8.879617E-2,-1.337755E-2,-7.446106E-3,1.5941893E-1,1.0451197E-2,-5.8970686E-2,6.499121E-2,1.2602228E-2,8.6717494E-2,4.8353713E-2,1.1816893E-1,-9.603077E-3],"split_indices":[8,7,7,7,3,0,0,3,1,0,5,7,3,7,0,7,7,1,11,6,0,9,3,3,0,7,7,3,7,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.6673374E3,4.8693845E2,1.1803989E3,4.2357477E2,6.336367E1,2.5272362E2,9.2767535E2,3.4135843E2,8.2216324E1,2.392727E1,3.94364E1,2.0236488E2,5.0358738E1,3.0151367E2,6.261617E2,3.3642953E2,4.9289126E0,4.7653503E1,3.4562824E1,2.2005138E1,1.9221325E0,1.6481905E1,2.2954496E1,1.6968608E2,3.2678802E1,3.4469536E1,1.5889202E1,5.696501E1,2.4454866E2,4.5196716E2,1.7419452E2,6.0206122E0,3.304089E2,3.8462865E0,1.0826262E0,2.7751174E0,4.4878384E1,2.0505306E1,1.4057518E1,1.807728E1,3.927858E0,1.3115972E0,1.5170307E1,8.093188E0,1.4861307E1,1.5082672E1,1.5460341E2,2.0900057E1,1.1778746E1,1.2853625E1,2.1615911E1,1.1943312E1,3.945891E0,2.1934053E1,3.503096E1,1.0616157E2,1.383871E2,2.5624744E2,1.9571973E2,1.7100417E2,3.1903644E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-2.4471097E-2,-8.600754E-1,2.988139E-1,-9.772868E-1,-1.2373526E-1,-7.606807E-1,5.6782836E-1,-1.0456331E0,-6.927399E-1,-7.069772E-1,2.156821E-1,-9.201837E-1,-1.5026663E-1,1.1759556E-1,7.124322E-1,-1.0512382E0,-5.585055E-1,-1.0422137E-1,-5.425638E-1,-9.297126E-1,1.4863352E-2,-1.6507939E-1,4.8384514E-1,-9.888632E-1,-5.571214E-1,8.440962E-1,-2.8913307E-1,3.6215568E-1,-1.060727E-1,6.000157E-1,1.0554885E0,-6.256687E-2,-1.05718866E-1,-8.607409E-2,4.1752245E-2,-3.8610365E-2,-1.0007607E-1,-2.540725E-2,-1.03069045E-1,-7.61236E-2,5.251331E-2,5.880646E-2,-6.918714E-2,7.7216886E-2,3.038435E-3,-5.5728476E-2,-1.0284243E-1,-7.553127E-2,-1.8876577E-2,-1.5681557E-2,1.3641374E-1,6.9580875E-2,-4.1715942E-2,-9.574237E-2,4.2646155E-2,-5.832514E-2,5.5277613E-3,3.9336975E-3,6.626748E-2,9.624499E-2,1.477406E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":9,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,35,37,39,41,43,45,47,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.3862863E2,3.897177E1,3.341384E2,6.8719177E0,1.2692315E1,2.2986465E1,6.0744812E1,2.6745605E-1,3.5603294E0,3.7979593E0,4.24665E0,4.139618E0,7.2034855E0,1.2527971E1,2.6631592E1,1.19262695E-1,2.0390143E0,0E0,3.7049618E0,9.6631145E-1,2.9874291E0,7.393368E0,3.1403952E0,2.105667E0,2.209218E0,3.5614524E0,5.960775E0,9.682815E0,9.273761E0,1.8762619E1,5.3759766E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,36,38,40,42,44,46,48,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.0089056E-1,9.0701383E-1,-4.2500034E-1,6.680639E-1,-5.6546368E-2,3E1,2.750313E1,8.176704E-1,5E-1,3.1772726E1,2.6177326E-1,-6.016241E-1,7.1680595E1,5.0932945E1,3.3476425E1,-9.6793777E-1,3.4561232E-1,-1.0422137E-1,1E0,4.8880367E1,-2.2236104E-1,4.926798E-2,6.705331E1,-4.8166803E-1,2.7161894E1,3.0834862E1,1.07381344E-1,-8.1676394E-2,2.5139853E1,4.3035382E-3,3.5996723E1,-6.256687E-2,-1.05718866E-1,-8.607409E-2,4.1752245E-2,-3.8610365E-2,-1.0007607E-1,-2.540725E-2,-1.03069045E-1,-7.61236E-2,5.251331E-2,5.880646E-2,-6.918714E-2,7.7216886E-2,3.038435E-3,-5.5728476E-2,-1.0284243E-1,-7.553127E-2,-1.8876577E-2,-1.5681557E-2,1.3641374E-1,6.9580875E-2,-4.1715942E-2,-9.574237E-2,4.2646155E-2,-5.832514E-2,5.5277613E-3,3.9336975E-3,6.626748E-2,9.624499E-2,1.477406E-1],"split_indices":[8,7,7,7,3,0,0,3,11,0,4,7,2,2,0,7,7,0,11,2,3,3,2,3,0,0,8,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.6217671E3,4.519467E2,1.1698204E3,3.8960217E2,6.2344505E1,2.3651096E2,9.333095E2,3.119896E2,7.76126E1,2.2536215E1,3.980829E1,1.8711086E2,4.940011E1,2.2732687E2,7.059826E2,3.0729572E2,4.6938686E0,2.154212E1,5.6070484E1,1.7002E1,5.5342135E0,1.660932E1,2.3198969E1,1.5589664E2,3.1214216E1,5.431194E0,4.3968914E1,1.0829613E2,1.1903075E2,5.338077E2,1.7217497E2,5.701185E0,3.0159454E2,3.67423E0,1.0196385E0,4.3171425E1,1.2899059E1,2.667819E0,1.4334182E1,2.0001845E0,3.5340292E0,6.7881403E0,9.82118E0,1.3752129E1,9.44684E0,1.4357272E1,1.4153937E2,1.9611748E1,1.16024685E1,2.095837E0,3.3353565E0,4.547656E0,3.9421257E1,4.3868957E0,1.0390923E2,2.9417217E1,8.961353E1,5.382297E1,4.7998468E2,1.4375595E2,2.841902E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-2.4537656E-2,-8.3848107E-1,2.7095398E-1,-9.5623857E-1,-8.376818E-2,-6.330748E-1,5.3639376E-1,-1.0356282E0,-6.5651244E-1,-9.921427E-2,1.2862182E-1,-9.584692E-1,-2.9377922E-1,3.2043657E-1,8.041934E-1,-1.041715E0,-5.332408E-1,-8.906489E-1,-4.052838E-1,-4.3974783E-2,6.287168E-1,-1.0339911E0,-5.8468014E-1,-7.539904E-1,-2.6331507E-2,-3.1649077E-1,3.9152062E-1,9.021114E-1,4.1955966E-1,-6.0014177E-2,-1.0481888E-1,4.292376E-2,-8.4573425E-2,3.32655E-4,-9.552642E-2,-9.62942E-3,-9.96501E-2,3.18681E-2,-3.868942E-2,1.4480394E-1,8.45582E-3,1.2564957E-2,-1.05156235E-1,-7.381484E-2,-5.5756937E-3,-9.005705E-2,-8.108773E-3,-1.284647E-2,9.992912E-2,2.838484E-2,-6.737232E-2,6.179775E-2,1.6724207E-2,9.7084016E-2,4.1365966E-2,1.9940382E-2,9.907334E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":10,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.800414E2,3.7322144E1,2.785386E2,7.980438E0,1.1297894E1,2.8820862E1,5.1603302E1,3.1906128E-1,4.282772E0,0E0,4.15448E0,3.1813583E0,1.604047E1,2.2674614E1,1.4673523E1,1.7575073E-1,2.0089428E0,2.3153706E0,7.1962457E0,4.6598635E0,5.375964E0,2.379013E0,1.9754648E0,4.6537895E0,8.881456E0,1.1034344E1,2.2676666E1,1.0263397E1,1.0235214E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.0089056E-1,9.14128E-1,-3.049212E-1,6.680639E-1,-2.5235417E-1,2.7096775E1,3.1283539E1,8.176704E-1,2.7717335E1,-9.921427E-2,1.1775804E0,-5.4524046E-1,-7.961829E-1,0E0,9.796137E-1,-9.6793777E-1,1.8092202E-1,2.2853502E1,1E0,3.0489114E-1,5E-1,-2.9623878E0,2.5886595E1,3.6826653E1,7.243951E-1,-1.7973603E-1,8.263542E-1,9.880227E-1,3.4152542E1,-6.0014177E-2,-1.0481888E-1,4.292376E-2,-8.4573425E-2,3.32655E-4,-9.552642E-2,-9.62942E-3,-9.96501E-2,3.18681E-2,-3.868942E-2,1.4480394E-1,8.45582E-3,1.2564957E-2,-1.05156235E-1,-7.381484E-2,-5.5756937E-3,-9.005705E-2,-8.108773E-3,-1.284647E-2,9.992912E-2,2.838484E-2,-6.737232E-2,6.179775E-2,1.6724207E-2,9.7084016E-2,4.1365966E-2,1.9940382E-2,9.907334E-2],"split_indices":[8,7,7,7,3,0,1,3,0,0,4,7,7,7,7,7,6,1,11,6,11,4,0,1,3,3,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.5781807E3,4.198499E2,1.1583308E3,3.629517E2,5.68982E1,2.625974E2,8.9573334E2,2.850058E2,7.794589E1,1.0086737E1,4.6811466E1,1.3311313E2,1.2948428E2,4.970789E2,3.9865448E2,2.8053342E2,4.472394E0,3.9027977E1,3.8917915E1,3.5478813E1,1.1332652E1,1.09269615E2,2.3843517E1,4.6922718E1,8.256156E1,4.95599E1,4.4751898E2,3.1668826E2,8.1966194E1,5.40728E0,2.7512613E2,1.0046101E0,3.4677837E0,2.6946776E0,3.63333E1,2.6323341E1,1.2594572E1,1.7277552E1,1.8201262E1,3.8598838E0,7.4727683E0,1.5391687E0,1.0773045E2,1.817456E1,5.668956E0,3.825188E1,8.670841E0,7.588005E1,6.6815157E0,1.8565493E1,3.0994408E1,2.2180463E2,2.2571436E2,2.767587E2,3.9929577E1,6.0136154E1,2.1830044E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-2.4332337E-2,-8.386135E-1,2.3932457E-1,-1.0266609E0,-4.0341225E-1,-7.0862323E-1,4.538495E-1,-1.0332198E0,-5.226752E-1,-7.852617E-1,-2.0370962E-1,-8.7516224E-1,-1.2843204E-1,2.3795691E-1,6.820971E-1,-1.03982545E-1,-6.305338E-1,4.007111E-2,-8.3505236E-2,-4.402911E-1,-9.3584436E-1,-4.9593146E-3,-7.4067116E-1,-9.939973E-1,-6.273743E-1,-5.8595055E-1,1.6142152E-1,4.7315657E-1,7.89338E-2,6.0934526E-1,1.1185361E0,2.1072183E-2,-8.8722736E-2,8.645035E-2,-6.830069E-2,-5.9530097E-3,-9.686957E-2,-1.4360443E-2,8.983207E-2,-8.9401096E-2,4.800761E-2,-1.0339051E-1,-5.6485187E-2,3.6444806E-2,-7.659171E-2,5.7811048E-2,-1.02647655E-1,-3.13379E-2,5.5732973E-2,1.8139299E-2,6.8342954E-2,-5.3923655E-2,1.528966E-2,-5.8721453E-2,6.2992826E-2,8.039733E-2,1.2722187E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":11,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,-1,-1,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.3007962E2,3.0360992E1,2.3651883E2,3.2580566E-1,8.617817E0,2.0636032E1,4.6539917E1,2.9449463E-2,1.8889902E0,1.6230984E0,8.206525E0,4.284134E0,6.600939E0,1.8237085E1,1.3929199E1,0E0,1.6331913E0,0E0,0E0,4.958723E0,7.0188904E-1,7.2868586E0,4.3182354E0,1.3159103E0,8.075039E0,1.046169E1,5.967863E0,1.1955242E1,1.3465277E1,1.0137878E1,2.0976639E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,-1,-1,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.344914E-1,6.9328123E-1,-4.2500034E-1,8.176704E-1,2.692554E1,3E1,2.967978E1,6.680639E-1,1.8092202E-1,5.253826E1,1E0,2.7E1,-7.7488405E-1,5.0932945E1,3.509805E1,-1.03982545E-1,-7.0710677E-1,4.007111E-2,-8.3505236E-2,7.638886E-1,2.2882362E1,3.1772726E1,4.0627525E1,-5.4524046E-1,-4.0857756E-1,1.07381344E-1,1.717397E-1,-7.008488E-2,2.5272247E1,-3.6972454E-1,1.4187909E0,2.1072183E-2,-8.8722736E-2,8.645035E-2,-6.830069E-2,-5.9530097E-3,-9.686957E-2,-1.4360443E-2,8.983207E-2,-8.9401096E-2,4.800761E-2,-1.0339051E-1,-5.6485187E-2,3.6444806E-2,-7.659171E-2,5.7811048E-2,-1.02647655E-1,-3.13379E-2,5.5732973E-2,1.8139299E-2,6.8342954E-2,-5.3923655E-2,1.528966E-2,-5.8721453E-2,6.2992826E-2,8.039733E-2,1.2722187E-1],"split_indices":[8,7,7,3,0,0,0,7,6,2,11,0,7,2,0,0,9,0,0,7,0,0,1,7,3,8,3,3,0,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.5355299E3,3.750476E2,1.1604823E3,2.6093875E2,1.14108864E2,2.1373257E2,9.467497E2,2.5654993E2,4.3888164E0,3.8177635E1,7.593123E1,1.6567E2,4.806258E1,4.8759274E2,4.5915698E2,2.5085269E2,5.697232E0,1.0379266E0,3.35089E0,1.2793307E1,2.5384329E1,5.615523E1,1.9775995E1,1.09935326E2,5.5734665E1,1.8243942E1,2.9818638E1,1.9589021E2,2.9170255E2,3.956077E2,6.354928E1,1.3738472E0,4.3233843E0,1.6047388E0,1.1188568E1,1.018835E0,2.4365494E1,4.9411972E1,6.7432613E0,1.7806898E1,1.9690976E0,9.929255E1,1.0642781E1,6.631246E0,4.910342E1,4.922977E0,1.3320965E1,1.36532135E1,1.6165424E1,8.28268E1,1.13063416E2,3.0499712E1,2.6120282E2,6.224546E0,3.8938315E2,2.2902664E1,4.0646614E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-2.3997778E-2,-8.166681E-1,2.1707289E-1,-1.0176156E0,-3.775744E-1,-6.9481504E-1,4.0579754E-1,-1.0247458E0,-4.9871427E-1,-7.5854504E-1,-1.8720113E-1,-8.604105E-1,-8.810064E-2,2.8758648E-1,7.7636164E-1,-1.0319892E-1,-6.055108E-1,3.7416723E-2,-8.1606865E-2,-4.1152766E-1,-9.161729E-1,-3.4797085E-3,-7.1232826E-1,-2.4900624E-1,-9.233156E-1,-4.195421E-1,2.648637E-1,4.8070204E-2,4.0362737E-1,9.615935E-1,5.9084594E-1,2.2610724E-2,-8.7125055E-2,7.738249E-2,-6.5489605E-2,-5.6672427E-3,-9.50908E-2,-1.30907325E-2,7.841621E-2,-9.496307E-2,1.686893E-2,-7.80528E-2,7.1788184E-2,-9.988683E-2,-5.3997077E-2,7.234389E-4,-7.885398E-2,-1.0209798E-2,1.1464931E-1,-7.016433E-2,1.0553176E-2,-9.426138E-3,4.6719268E-2,1.0083132E-1,7.7979723E-3,6.6676706E-2,-3.2658886E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":12,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,-1,-1,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.8644568E2,3.0459717E1,1.9810915E2,3.7405396E-1,7.933111E0,1.9764786E1,4.1524384E1,8.885193E-2,1.7432474E0,1.6343346E0,7.288183E0,5.7323303E0,5.1949997E0,2.010693E1,7.332199E0,0E0,1.6139362E0,0E0,0E0,4.3438334E0,6.7665863E-1,5.822345E0,4.253996E0,8.696249E0,3.5209656E0,3.5960321E0,7.123968E0,1.0304005E1,1.5477959E1,4.604721E0,8.399059E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,-1,-1,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.344914E-1,6.9328123E-1,-4.327756E-1,8.176704E-1,2.692554E1,3.0246916E1,3.261837E1,6.680639E-1,1.8092202E-1,5.253826E1,1E0,-4.8166803E-1,3.059098E-1,2.750313E1,2.9755145E-1,-1.0319892E-1,-4.1453156E-1,3.7416723E-2,-8.1606865E-2,7.638886E-1,2.2882362E1,3.1772726E1,3.38775E1,2.8788435E1,-6.152846E-1,3.6538506E1,-5.5243534E-1,-6.450845E-2,4.3035382E-3,8.0789614E-1,9.9053246E-1,2.2610724E-2,-8.7125055E-2,7.738249E-2,-6.5489605E-2,-5.6672427E-3,-9.50908E-2,-1.30907325E-2,7.841621E-2,-9.496307E-2,1.686893E-2,-7.80528E-2,7.1788184E-2,-9.988683E-2,-5.3997077E-2,7.234389E-4,-7.885398E-2,-1.0209798E-2,1.1464931E-1,-7.016433E-2,1.0553176E-2,-9.426138E-3,4.6719268E-2,1.0083132E-1,7.7979723E-3,6.6676706E-2,-3.2658886E-2],"split_indices":[8,7,7,3,0,0,0,7,6,2,11,3,3,0,6,0,3,0,0,7,0,0,0,1,7,1,7,8,8,5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.497085E3,3.4856668E2,1.1485183E3,2.3822673E2,1.1033996E2,1.9647934E2,9.5203894E2,2.34036E2,4.190739E0,3.5771114E1,7.456884E1,1.5402257E2,4.245677E1,7.231333E2,2.2890564E2,2.2862433E2,5.4116673E0,1.0696505E0,3.1210887E0,1.2301075E1,2.347004E1,5.59876E1,1.8581244E1,1.4831045E1,1.3919153E2,2.1798689E1,2.0658083E1,2.364659E2,4.8666742E2,1.12447174E2,1.1645846E2,1.3466238E0,4.0650434E0,1.7240851E0,1.057699E1,1.0138714E0,2.2456167E1,4.8908756E1,7.078842E0,1.4577034E1,4.004209E0,9.694491E0,5.1365542E0,1.1493379E2,2.425773E1,1.056258E1,1.1236108E1,1.5210989E1,5.447095E0,1.6035572E1,2.2043033E2,5.504363E1,4.3162378E2,1.06666245E2,5.7809334E0,1.0781E2,8.648456E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-2.3597557E-2,-9.048908E-1,1.704684E-1,-1.0134636E0,-5.8603984E-1,-7.993692E-1,3.3140495E-1,-1.0223901E-1,-4.1892576E-1,-8.3653444E-1,-3.4085006E-1,-9.478439E-1,-3.0454624E-1,-4.635618E-3,4.4677323E-1,4.2289253E-2,-7.718747E-2,3.831698E-2,-9.107521E-1,-7.4738026E-2,-9.6167386E-2,1.4754768E-1,-9.6885496E-1,1.2567548E-1,-4.1755125E-1,2.6834002E-1,-1.5585667E-1,3.576071E-1,7.546202E-1,-6.693645E-2,9.177842E-2,-9.38125E-2,-7.1794665E-3,-8.589047E-2,2.819544E-2,-6.0903307E-2,9.466203E-2,-6.6853836E-3,-9.9784516E-2,5.8665812E-2,-5.367274E-2,-1.6265193E-2,4.905223E-2,-6.193943E-2,-5.7660053E-3,7.168379E-2,2.9094031E-2,6.616563E-2,1.2170807E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":13,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,29,31,33,-1,35,37,-1,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.4995451E2,8.536453E0,1.8722498E2,6.085663E-1,3.9752426E0,1.2257835E1,3.98582E1,0E0,1.6884724E0,2.2181034E0,5.998203E0,3.1553116E0,7.738885E0,1.0928676E1,2.073787E1,0E0,0E0,2.8480997E0,6.4536095E-1,7.7389393E0,0E0,2.590404E0,3.2948608E0,0E0,4.9678555E0,9.118019E0,7.718184E0,1.4049049E1,6.545723E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,17,17,18,18,19,19,21,21,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,30,32,34,-1,36,38,-1,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-5.7377225E-1,8.176704E-1,2.7717335E1,3.3649826E1,2.750313E1,-1.0223901E-1,1.8092202E-1,2.2853502E1,1E0,-2.824803E0,-4.8166803E-1,2.4158949E-1,3.3476425E1,4.2289253E-2,-7.718747E-2,-4.377557E-1,1.4187909E0,5E-1,-9.6167386E-2,2.3123316E1,-6.661945E-1,1.2567548E-1,7.737807E1,5E-1,-1.6280702E-1,5.0252426E1,3.5996723E1,-6.693645E-2,9.177842E-2,-9.38125E-2,-7.1794665E-3,-8.589047E-2,2.819544E-2,-6.0903307E-2,9.466203E-2,-6.6853836E-3,-9.9784516E-2,5.8665812E-2,-5.367274E-2,-1.6265193E-2,4.905223E-2,-6.193943E-2,-5.7660053E-3,7.168379E-2,2.9094031E-2,6.616563E-2,1.2170807E-1],"split_indices":[8,7,7,3,0,1,0,0,6,1,11,4,3,6,0,0,0,3,4,11,0,0,3,0,2,11,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.4595724E3,2.6274243E2,1.19683E3,1.9437631E2,6.836612E1,1.697733E2,1.0270566E3,1.9079211E2,3.5842001E0,3.262425E1,3.5741875E1,1.2988498E2,3.9888317E1,2.6273407E2,7.643226E2,1.0002751E0,2.583925E0,2.5890584E0,3.0035189E1,2.5802282E1,9.939593E0,2.3311353E0,1.2755384E2,2.0090895E0,3.7879227E1,9.338546E1,1.693486E2,5.9433765E2,1.6998492E2,1.5670207E0,1.0220377E0,2.8971716E1,1.0634726E0,7.626942E0,1.817534E1,1.3195652E0,1.0115702E0,4.074847E0,1.23479E2,3.6023414E0,3.4276886E1,3.1856926E1,6.152853E1,2.867595E1,1.4067265E2,9.150654E1,5.0283112E2,1.4355768E2,2.6427242E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-2.2938842E-2,-8.8835686E-1,1.5481414E-1,-1.0054284E0,-5.593904E-1,-7.7594966E-1,2.9877505E-1,-1.0151266E-1,-3.981197E-1,-9.6109813E-1,-3.9729968E-1,-1.0150005E0,-4.3693838E-1,1.6330609E-1,5.423918E-1,4.2786665E-2,-7.690467E-2,-1.00773536E-1,-7.7170725E-3,5.293562E-1,-4.774713E-1,-2.0361723E-2,-1.025153E-1,8.5587996E-1,-5.584128E-1,-1.929345E-1,2.4326843E-1,8.383807E-1,4.237033E-1,1.5100431E-1,-4.059595E-2,-5.5753935E-2,2.7975759E-2,-7.103976E-2,1.7126735E-1,-7.252299E-2,-4.603937E-3,-3.4751322E-2,1.137863E-2,5.083089E-2,4.5939535E-3,1.01241924E-1,6.4203694E-2,-6.1104037E-2,4.8099943E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":14,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,31,-1,-1,33,35,37,39,41,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.1974245E2,8.8116455E0,1.5903745E2,6.457825E-1,3.924736E0,1.2444748E1,3.3809593E1,0E0,1.6915834E0,6.770592E-1,3.8803768E0,5.5332184E-1,1.1081943E1,1.8890732E1,1.252449E1,0E0,0E0,0E0,0E0,4.6144676E0,2.9126453E0,0E0,0E0,9.529378E0,5.293949E0,5.815475E0,2.8254898E1,2.9008408E0,1.5928528E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,20,20,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,32,-1,-1,34,36,38,40,42,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-5.7377225E-1,8.176704E-1,5E-1,3.0192533E1,3.0917042E1,-1.0151266E-1,6.90042E1,3.336089E1,-9.659258E-1,-2.9623878E0,-4.8166803E-1,2.5818441E-2,1.0490705E-1,4.2786665E-2,-7.690467E-2,-1.00773536E-1,-7.7170725E-3,-7.3994614E-2,1.5783356E0,-2.0361723E-2,-1.025153E-1,-9.796137E-1,3.1309187E1,2.8624723E1,8.0647993E-1,2.892339E-1,-2.9671282E-1,1.5100431E-1,-4.059595E-2,-5.5753935E-2,2.7975759E-2,-7.103976E-2,1.7126735E-1,-7.252299E-2,-4.603937E-3,-3.4751322E-2,1.137863E-2,5.083089E-2,4.5939535E-3,1.01241924E-1,6.4203694E-2,-6.1104037E-2,4.8099943E-2],"split_indices":[8,7,7,3,11,1,0,0,2,1,9,4,3,7,5,0,0,0,0,3,4,0,0,7,0,0,7,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.4265759E3,2.4240274E2,1.1841731E3,1.7726271E2,6.514004E1,1.5803363E2,1.0261395E3,1.7381552E2,3.4471936E0,1.7310425E1,4.7829617E1,9.151126E1,6.652236E1,6.605147E2,3.6562482E2,1.0207233E0,2.4264703E0,1.630983E1,1.0005944E0,3.362435E0,4.4467182E1,1.3911011E0,9.012016E1,5.1943707E0,6.132799E1,1.20822975E2,5.396917E2,1.0291315E2,2.6271167E2,1.3414443E0,2.0209908E0,4.045342E1,4.013763E0,1.8971374E0,3.2972333E0,4.595173E1,1.5376263E1,8.024748E1,4.0575485E1,2.2965578E2,3.1003595E2,5.2352077E1,5.056107E1,1.3276635E1,2.4943503E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"45","size_leaf_vector":"1"}},{"base_weights":[-2.2249665E-2,-8.7078357E-1,1.4058274E-1,-9.975146E-1,-5.30309E-1,-7.527133E-1,2.6994726E-1,-1.0081019E-1,-3.7748936E-1,-9.4634515E-1,-3.698006E-1,-1.0073445E0,-4.1040707E-1,1.7811084E-1,5.830349E-1,-7.49092E-2,4.2543E-2,-9.959295E-2,-1.0446404E-2,-2.1340802E-1,-9.4380826E-2,-1.938622E-2,-1.0183944E-1,7.3513734E-1,-5.300515E-1,-3.2136106E-1,2.2525494E-1,5.0909144E-1,1.108811E0,-5.698505E-2,4.4196047E-2,-6.917613E-2,1.4130245E-1,-6.986866E-2,-4.1857585E-3,-4.2755153E-2,6.058171E-2,-1.342748E-2,2.8713217E-2,-6.6445917E-3,6.1746724E-2,3.00003E-2,1.23841524E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":15,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,-1,-1,31,33,35,37,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.928796E2,9.168732E0,1.3556345E2,6.871643E-1,3.863657E0,1.2524475E1,2.9336151E1,0E0,1.6104258E0,6.024914E-1,4.0334344E0,5.615082E-1,9.299049E0,1.8748089E1,8.446556E0,0E0,0E0,0E0,0E0,9.214069E0,0E0,0E0,0E0,7.3288007E0,4.864105E0,7.034507E0,1.617414E1,1.2830925E1,2.5351372E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,-1,-1,32,34,36,38,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-5.7377225E-1,8.176704E-1,5E-1,3.0192533E1,3.261837E1,-1.0081019E-1,3.294085E-1,3.3273617E1,1E0,-2.9623878E0,-4.8166803E-1,2.5272247E1,2.6952436E0,-7.49092E-2,4.2543E-2,-9.959295E-2,-1.0446404E-2,3.0278439E1,-9.4380826E-2,-1.938622E-2,-1.0183944E-1,-9.796137E-1,3.1309187E1,9.9053246E-1,4.3035382E-3,1.9667289E-1,-8.660254E-1,-5.698505E-2,4.4196047E-2,-6.917613E-2,1.4130245E-1,-6.986866E-2,-4.1857585E-3,-4.2755153E-2,6.058171E-2,-1.342748E-2,2.8713217E-2,-6.6445917E-3,6.1746724E-2,3.00003E-2,1.23841524E-1],"split_indices":[8,7,7,3,11,1,0,0,7,1,11,4,3,0,4,0,0,0,0,1,0,0,0,7,0,8,8,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.3940845E3,2.2375095E2,1.1703335E3,1.6165146E2,6.2099495E1,1.4743532E2,1.02289825E3,1.583221E2,3.3293648E0,1.5925319E1,4.6174175E1,8.343084E1,6.400447E1,7.921189E2,2.3077936E2,2.3218284E0,1.0075363E0,1.4866731E1,1.0585877E0,3.7365467E1,8.808709E0,1.3666003E0,8.206424E1,5.5661964E0,5.843828E1,6.781639E1,7.243025E2,2.0405061E2,2.672875E1,2.4286818E1,1.307865E1,1.7861097E0,3.7800868E0,4.31143E1,1.5323978E1,6.1330975E1,6.485419E0,1.0618105E2,6.1812146E2,3.2396034E1,1.7165457E2,4.149312E0,2.2579437E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-2.159303E-2,-8.533934E-1,1.2755498E-1,-9.897169E-1,-5.0439703E-1,-6.2016684E-1,2.611417E-1,-1.0012402E-1,-3.5806423E-1,-9.316688E-1,-3.4715468E-1,-8.020958E-1,-9.137978E-2,1.7727494E-1,5.4670465E-1,3.9831888E-2,-7.3613994E-2,-9.848546E-2,-9.228848E-3,-1.9707574E-1,-9.312302E-2,-9.6671414E-1,-5.288738E-1,-4.7818094E-1,1.7006658E-1,-2.2229798E-1,2.2428365E-1,4.8032856E-1,1.0665128E0,-6.528956E-2,2.705898E-2,-1.02473736E-1,-6.0848493E-2,-6.504661E-2,3.144107E-2,5.317046E-2,-6.359579E-2,-2.962391E-2,5.068487E-2,2.190697E-2,-4.135677E-2,-5.699508E-3,2.8577013E-2,8.512484E-2,3.58384E-2,2.2446945E-2,1.1073603E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":16,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,31,33,35,37,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6957986E2,9.388443E0,1.1594928E2,7.2172546E-1,3.7356768E0,1.6858673E1,2.3473763E1,0E0,1.4987701E0,6.0817623E-1,3.827479E0,5.3727875E0,4.7516317E0,1.4367416E1,7.180084E0,0E0,0E0,0E0,0E0,8.207285E0,0E0,1.0482101E0,5.474331E0,3.3477292E0,4.5935407E0,6.906587E0,1.1820122E1,8.719662E0,5.915699E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,32,34,36,38,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-4.2500034E-1,8.176704E-1,5E-1,3E1,3.261837E1,-1.0012402E-1,6.90042E1,3.0761253E1,1E0,-8.311706E-1,1.8129073E-1,-8.1676394E-2,3.5996723E1,3.9831888E-2,-7.3613994E-2,-9.848546E-2,-9.228848E-3,2.7717335E1,-9.312302E-2,8.464167E1,7.5106926E1,1.4101002E-1,-7.5266683E-1,2.0949066E-1,2.5818441E-2,7.105293E1,-9.659258E-1,-6.528956E-2,2.705898E-2,-1.02473736E-1,-6.0848493E-2,-6.504661E-2,3.144107E-2,5.317046E-2,-6.359579E-2,-2.962391E-2,5.068487E-2,2.190697E-2,-4.135677E-2,-5.699508E-3,2.8577013E-2,8.512484E-2,3.58384E-2,2.2446945E-2,1.1073603E-1],"split_indices":[8,7,7,3,11,0,0,0,2,0,11,7,3,8,0,0,0,0,0,0,0,2,2,6,7,6,7,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.3650255E3,2.0682698E2,1.1581985E3,1.474103E2,5.9416695E1,1.7500491E2,9.831936E2,1.4419464E2,3.2156568E0,1.4659003E1,4.475769E1,1.2982265E2,4.518227E1,7.6124506E2,2.2194856E2,1.0538228E0,2.161834E0,1.3622525E1,1.0364778E0,3.667215E1,8.08554E0,7.9428276E1,5.0394363E1,1.7888237E1,2.7294035E1,7.973875E1,6.815063E2,1.9852257E2,2.3425991E1,1.8370699E1,1.830145E1,6.675522E1,1.2673061E1,4.4243584E1,6.1507807E0,2.0968578E0,1.5791379E1,1.1496483E1,1.5797551E1,2.4064032E1,5.5674713E1,1.2226417E2,5.592421E2,4.763876E1,1.508838E2,1.3843254E0,2.2041666E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-2.0937946E-2,-8.356773E-1,1.1572806E-1,-9.819117E-1,-4.795342E-1,-7.0645547E-1,2.2087875E-1,-9.9446945E-2,-3.3963478E-1,-9.169535E-1,-3.26092E-1,-9.93117E-1,-3.5842484E-1,-3.6733538E-2,3.1118575E-1,-7.1712226E-2,3.9487433E-2,-9.774117E-2,-1.0290335E-2,-1.8250099E-1,-9.185896E-2,-1.3869633E-2,-1.0062805E0,6.759444E-1,-4.7948578E-1,2.4755801E-1,-1.5536112E-1,2.7149794E-1,8.030684E-1,-6.256324E-2,2.3992525E-2,-4.468411E-2,-1.01976775E-1,-6.5434135E-2,1.208707E-1,-6.503106E-2,-3.174247E-3,4.6344814E-3,5.5325884E-2,-5.073785E-4,-4.0252384E-2,1.3093794E-3,3.3550803E-2,8.799405E-2,2.4207842E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":17,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,-1,31,33,35,37,39,41,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.4913863E2,9.549271E0,9.93296E1,7.546234E-1,3.591075E0,1.2644905E1,2.3690285E1,0E0,1.424398E0,6.130247E-1,3.6148047E0,6.577759E-1,7.890107E0,8.97837E0,1.44963E1,0E0,0E0,0E0,0E0,7.082538E0,0E0,0E0,6.990051E-2,5.571704E0,4.161227E0,4.798775E0,6.96838E0,1.1556988E1,2.1917992E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,-1,32,34,36,38,40,42,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-5.7377225E-1,8.176704E-1,5E-1,3.0192533E1,2.750313E1,-9.9446945E-2,3.294085E-1,7.3379074E1,1E0,-2.9623878E0,-4.8166803E-1,4.7215916E1,3.509805E1,-7.1712226E-2,3.9487433E-2,-9.774117E-2,-1.0290335E-2,2.7717335E1,-9.185896E-2,-1.3869633E-2,-6.830691E-1,-9.796137E-1,3.1309187E1,-7.008488E-2,3.6053684E-1,1.11659005E-1,4.485371E-1,-6.256324E-2,2.3992525E-2,-4.468411E-2,-1.01976775E-1,-6.5434135E-2,1.208707E-1,-6.503106E-2,-3.174247E-3,4.6344814E-3,5.5325884E-2,-5.073785E-4,-4.0252384E-2,1.3093794E-3,3.3550803E-2,8.799405E-2,2.4207842E-2],"split_indices":[8,7,7,3,11,1,0,0,7,2,11,4,3,2,0,0,0,0,0,0,0,0,3,7,0,3,6,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.3375334E3,1.9139723E2,1.1461362E3,1.3443881E2,5.6958412E1,1.2931229E2,1.016824E3,1.3132285E2,3.1159637E0,1.3499465E1,4.345895E1,6.989145E1,5.9420837E1,2.6408398E2,7.5274E2,2.073829E0,1.0421348E0,1.2379391E1,1.1200746E0,3.603414E1,7.4248066E0,1.2354811E0,6.865597E1,5.7456164E0,5.367522E1,7.743171E1,1.8665228E2,6.979754E2,5.4764565E1,1.7351313E1,1.8682829E1,2.4196868E0,6.6236275E1,1.577775E0,4.1678414E0,3.8524708E1,1.5150515E1,4.7390644E1,3.004106E1,1.167083E2,6.9943985E1,1.3881075E2,5.591647E2,4.7664574E1,7.099991E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"45","size_leaf_vector":"1"}},{"base_weights":[-2.0316321E-2,-8.17458E-1,1.04781486E-1,-9.740776E-1,-4.5527086E-1,-6.82477E-1,1.9947787E-1,-9.877226E-2,-3.2232717E-1,-9.016598E-1,-3.060049E-1,-9.85858E-1,-3.35034E-1,9.866214E-2,3.8903853E-1,-7.0718125E-2,4.1431464E-2,-9.660568E-2,-9.793799E-3,-1.6888049E-1,-9.058318E-2,-1.3196993E-2,-1.0001827E0,-6.193983E-1,6.0721606E-2,3.0170867E-1,6.831166E-3,6.570904E-1,2.8570217E-1,-4.795125E-2,3.70309E-2,-4.2800922E-2,-1.0149014E-1,-8.315539E-2,2.6399542E-2,7.627528E-2,-4.5598615E-2,1.813508E-2,8.849455E-2,-3.4771036E-2,7.913956E-3,1.14746824E-1,5.7931405E-2,-6.5560035E-2,3.3187985E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":18,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,-1,31,33,35,37,39,41,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3110803E2,9.672836E0,8.4867E1,7.810135E-1,3.4364061E0,1.2556778E1,1.9364647E1,0E0,1.432521E0,6.014147E-1,3.4057665E0,6.600456E-1,6.62179E0,1.2381389E1,9.566948E0,0E0,0E0,0E0,0E0,6.2817936E0,0E0,0E0,1.0066986E-1,6.616686E0,9.551571E0,1.4356457E1,1.1777501E1,3.0430984E0,1.1342737E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,-1,32,34,36,38,40,42,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-5.7377225E-1,8.176704E-1,5E-1,3.0192533E1,3.0917042E1,-9.877226E-2,3.4561232E-1,7.3379074E1,1E0,-2.9623878E0,-8.311706E-1,5.0252426E1,1.0490705E-1,-7.0718125E-2,4.1431464E-2,-9.660568E-2,-9.793799E-3,2.8802359E1,-9.058318E-2,-1.3196993E-2,-6.830691E-1,3.6826653E1,1E0,2.8713701E1,2.1516098E-2,1.4518325E-1,-3.049212E-1,-4.795125E-2,3.70309E-2,-4.2800922E-2,-1.0149014E-1,-8.315539E-2,2.6399542E-2,7.627528E-2,-4.5598615E-2,1.813508E-2,8.849455E-2,-3.4771036E-2,7.913956E-3,1.14746824E-1,5.7931405E-2,-6.5560035E-2,3.3187985E-2],"split_indices":[8,7,7,3,11,1,0,0,7,2,11,4,7,2,5,0,0,0,0,0,0,0,3,1,11,0,8,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.3128938E3,1.7733763E2,1.1355562E3,1.2262277E2,5.471486E1,1.2125935E2,1.01429675E3,1.1960328E2,3.0194962E0,1.2447933E1,4.226693E1,6.3753483E1,5.750587E1,6.631358E2,3.5116095E2,2.0095909E0,1.0099053E0,1.1337549E1,1.1103839E0,3.544542E1,6.8215094E0,1.2203724E0,6.253311E1,3.3133316E1,2.4372557E1,2.0580252E2,4.5733328E2,9.621721E1,2.5494374E2,2.2559412E1,1.2886005E1,2.3226314E0,6.021048E1,2.6764294E1,6.369023E0,1.0131328E1,1.4241228E1,1.7168436E2,3.411817E1,7.682708E1,3.8050623E2,1.1288715E1,8.492849E1,1.1304829E1,2.436389E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"45","size_leaf_vector":"1"}},{"base_weights":[-1.9631669E-2,-7.986211E-1,9.490314E-2,-9.661261E-1,-4.3130624E-1,-6.763415E-1,1.785527E-1,-9.890552E-2,-4.6086615E-1,-8.862231E-1,-2.863346E-1,-9.940322E-1,-3.2680354E-1,-4.455115E-2,2.57627E-1,-8.2971685E-2,3.4514733E-2,-9.525719E-2,-6.787605E-3,5.793898E-1,-3.72683E-1,-4.5706743E-1,-1.01004176E-1,6.9951916E-1,-4.6042478E-1,1.897845E-1,-1.7862652E-1,2.2249062E-1,7.2026974E-1,1.4866297E-1,-3.696485E-2,8.067452E-2,-4.3002956E-2,-6.219829E-2,-2.5617767E-3,-6.1849635E-2,1.170628E-1,-7.416069E-2,-1.0843868E-2,-1.9309258E-2,3.8111188E-2,-6.1674345E-2,-1.0410477E-2,3.3559687E-2,9.450923E-3,-1.1484032E-2,7.6594464E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":19,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,31,33,-1,35,37,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.152055E2,9.766754E0,7.275548E1,8.517456E-1,3.2840996E0,1.19314995E1,1.7944313E1,0E0,2.299733E0,6.133232E-1,3.367391E0,3.1188965E-2,7.733335E0,8.417989E0,1.2041958E1,0E0,0E0,0E0,0E0,4.1786284E0,2.9808712E0,2.3213148E-1,0E0,4.8360615E0,4.71179E0,7.2232313E0,5.4943686E0,1.00882225E1,2.091961E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,20,20,21,21,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,32,34,-1,36,38,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-6.016241E-1,6.261546E-1,5E-1,3.0192533E1,2.750313E1,-9.890552E-2,3.4561232E-1,3.0672857E1,-9.659258E-1,-6.830691E-1,-4.8166803E-1,2.4158949E-1,3.509805E1,-8.2971685E-2,3.4514733E-2,-9.525719E-2,-6.787605E-3,-7.3994614E-2,2.2853502E1,2.6024084E1,-1.01004176E-1,-9.796137E-1,3.0414398E1,5E-1,2.462332E1,8.0647993E-1,4.2397475E-1,1.4866297E-1,-3.696485E-2,8.067452E-2,-4.3002956E-2,-6.219829E-2,-2.5617767E-3,-6.1849635E-2,1.170628E-1,-7.416069E-2,-1.0843868E-2,-1.9309258E-2,3.8111188E-2,-6.1674345E-2,-1.0410477E-2,3.3559687E-2,9.450923E-3,-1.1484032E-2,7.6594464E-2],"split_indices":[8,7,7,3,11,1,0,0,7,0,9,3,3,6,0,0,0,0,0,3,1,1,0,7,0,11,0,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.2893821E3,1.6451154E2,1.1248705E3,1.1186705E2,5.264448E1,1.0937288E2,1.0154976E3,1.0609488E2,5.7721763E0,1.1486644E1,4.1157837E1,5.6330727E1,5.3042152E1,2.6585077E2,7.4964685E2,3.939816E0,1.8323605E0,1.0473471E1,1.0131737E0,3.2149546E0,3.7942883E1,2.4863794E0,5.3844345E1,5.6223917E0,4.741976E1,9.659953E1,1.6925124E2,6.9810846E2,5.153844E1,1.3540663E0,1.8608884E0,1.1533996E0,3.6789482E1,1.4793192E0,1.0070602E0,1.3980975E0,4.224294E0,2.5745886E1,2.1673876E1,3.21843E1,6.441523E1,2.354617E1,1.4570506E2,3.6972977E2,3.2837866E2,2.5941005E0,4.894434E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-1.8864058E-2,-7.780895E-1,8.573358E-2,-9.5799464E-1,-4.0390795E-1,-4.2703635E-1,1.9696549E-1,-9.8290265E-2,-4.393662E-1,-6.9097614E-1,-1.786107E-1,-9.0740484E-1,-1.9273561E-1,3.4773958E-1,5.3377047E-2,-8.1403725E-2,3.166174E-2,3.237421E-2,-8.0114985E-1,3.335942E-1,-4.838909E-1,-1.0033947E-1,-6.704225E-1,-6.2461394E-1,-4.1509293E-2,1.8292557E-1,5.5992234E-1,-2.2686874E-2,3.6587384E-1,-9.185416E-2,-3.242346E-2,8.279415E-2,-8.243907E-2,-1.61324E-2,-7.85654E-2,2.2305965E-3,-7.683434E-2,-8.305394E-2,2.5077924E-2,3.3809662E-2,-1.7426608E-2,-3.949235E-2,2.9462362E-2,6.9598444E-2,1.1366818E-3,-6.220899E-2,1.3447612E-3,1.1539423E-2,1.042982E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":20,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,29,31,33,-1,35,37,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.008447E2,9.963913E0,6.375218E1,9.0010834E-1,3.2173262E0,2.225616E1,1.985503E1,0E0,2.1082911E0,2.7596207E0,4.897622E0,8.074913E-1,8.806028E0,1.5550495E1,1.1212697E1,0E0,0E0,0E0,8.4775925E-1,7.496418E0,1.7602758E0,0E0,1.4939661E0,6.517558E0,5.1603575E0,1.6472336E1,1.4561001E1,8.239676E0,1.5539551E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,18,18,19,19,20,20,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,30,32,34,-1,36,38,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-2.8023067E-1,6.261546E-1,2.7717335E1,2.621471E1,8.0647993E-1,-9.8290265E-2,3.4561232E-1,2.2853502E1,-2.5881904E-1,-6.016241E-1,-8.311706E-1,3.099409E1,1.2577815E0,-8.1403725E-2,3.166174E-2,3.237421E-2,8.660254E-1,3.945198E-1,2.963074E1,-1.0033947E-1,-4.9712646E-1,3.6826653E1,6.559347E1,0E0,9.880227E-1,2.4961687E1,9.9325687E-1,-9.185416E-2,-3.242346E-2,8.279415E-2,-8.243907E-2,-1.61324E-2,-7.85654E-2,2.2305965E-3,-7.683434E-2,-8.305394E-2,2.5077924E-2,3.3809662E-2,-1.7426608E-2,-3.949235E-2,2.9462362E-2,6.9598444E-2,1.1366818E-3,-6.220899E-2,1.3447612E-3,1.1539423E-2,1.042982E-1],"split_indices":[8,7,7,3,0,0,7,0,7,1,9,7,7,1,4,0,0,0,9,6,0,0,3,1,2,7,8,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.2680336E3,1.5276256E2,1.115271E3,1.0210879E2,5.065377E1,1.9829738E2,9.1697363E2,9.657539E1,5.533396E0,2.1364588E1,2.9289185E1,6.406897E1,1.3422842E2,4.4660126E2,4.703724E2,3.6484199E0,1.8849759E0,1.9026245E0,1.9461964E1,1.0903066E1,1.8386118E1,4.3297306E1,2.077166E1,3.3999866E1,1.00228546E2,2.5240585E2,1.9419539E2,3.7903903E2,9.1333374E1,1.4874601E1,4.5873613E0,7.8408136E0,3.0622518E0,9.628464E0,8.757654E0,2.6681783E0,1.8103481E1,2.756644E1,6.433427E0,2.556915E1,7.46594E1,4.047586E1,2.1193E2,1.5538531E2,3.8810078E1,2.0628878E1,3.5841016E2,6.752469E1,2.3808685E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-1.8302625E-2,-7.577376E-1,7.761807E-2,-9.496257E-1,-3.812112E-1,-4.0167403E-1,1.7830974E-1,-9.766546E-2,-4.1875866E-1,-8.6367905E-1,-2.3597766E-1,-8.927481E-1,-1.773091E-1,3.1618744E-1,4.8101958E-2,2.9900888E-2,-8.103826E-2,-9.3959466E-2,-5.308363E-3,-9.657682E-2,-8.843249E-2,-9.986638E-2,-6.4234626E-1,-5.9887725E-1,-3.7419155E-2,1.7086159E-1,5.254046E-1,-1.3992774E-3,4.6916187E-1,-4.280702E-2,3.656698E-2,2.0654069E-3,-7.4216016E-2,-8.111772E-2,2.248846E-2,3.1261988E-2,-1.5446422E-2,-3.3613633E-2,2.753695E-2,6.529711E-2,2.8221034E-3,3.1080693E-2,-6.4044963E-3,8.956633E-3,6.233541E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":21,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,-1,31,33,35,37,39,41,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.85026E1,9.989922E0,5.338476E1,9.4322205E-1,3.3024454E0,2.1006588E1,1.6386347E1,0E0,2.017781E0,6.394434E-1,3.5150867E0,9.4963455E-1,7.82693E0,1.3396206E1,9.818668E0,0E0,0E0,0E0,0E0,5.352642E0,0E0,0E0,1.3809433E0,5.9703865E0,4.1864705E0,1.4039466E1,1.1482075E1,8.283144E0,2.8446712E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,-1,32,34,36,38,40,42,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-2.8023067E-1,6.261546E-1,5E-1,2.621471E1,8.0647993E-1,-9.766546E-2,-9.1928595E-1,7.3379074E1,1E0,-6.016241E-1,-8.311706E-1,3.1353733E1,3.4152542E1,2.9900888E-2,-8.103826E-2,-9.3959466E-2,-5.308363E-3,3.0278439E1,-8.843249E-2,-9.986638E-2,-4.9712646E-1,3.6826653E1,6.495508E1,8.606997E-3,9.880227E-1,1.668292E-1,2.0949066E-1,-4.280702E-2,3.656698E-2,2.0654069E-3,-7.4216016E-2,-8.111772E-2,2.248846E-2,3.1261988E-2,-1.5446422E-2,-3.3613633E-2,2.753695E-2,6.529711E-2,2.8221034E-3,3.1080693E-2,-6.4044963E-3,8.956633E-3,6.233541E-2],"split_indices":[8,7,7,3,11,0,7,0,8,2,11,7,7,1,0,0,0,0,0,1,0,0,3,1,2,7,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.2459674E3,1.4227742E2,1.10369E3,9.323847E1,4.9038944E1,1.9109398E2,9.12596E2,8.792221E1,5.3162627E0,1.0201753E1,3.8837193E1,5.8993717E1,1.3210027E2,4.4254962E2,4.700464E2,1.9601654E0,3.3560975E0,9.182621E0,1.0191308E0,3.2910156E1,5.927039E0,3.93578E1,1.9635918E1,3.2095917E1,1.0000435E2,2.622222E2,1.8032742E2,4.2149112E2,4.8555256E1,1.920879E1,1.3701365E1,2.6731236E0,1.6962795E1,2.5531271E1,6.5646434E0,2.4641047E1,7.5363304E1,4.443566E1,2.1778653E2,1.4325735E2,3.707007E1,6.977805E1,3.5171307E2,1.4482538E1,3.4072716E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"45","size_leaf_vector":"1"}},{"base_weights":[-1.7636513E-2,-7.3713267E-1,7.038374E-2,-9.4084626E-1,-3.5976073E-1,-7.8551644E-1,1.19611874E-1,-9.7025655E-2,-3.9841974E-1,-8.4753644E-1,-2.2020926E-1,-9.1414404E-1,2.0200506E-1,-3.3150512E-1,1.5269183E-1,-7.920898E-2,3.3385556E-2,-9.2802085E-2,-5.0524804E-3,-8.858517E-2,-8.7103665E-2,-1.0010675E-1,-5.137049E-1,1.2859006E0,-8.454254E-2,-4.7871315E-1,3.108013E-1,1.2376564E-1,5.4763615E-1,-5.1214363E-2,2.364298E-2,6.987759E-2,-7.348814E-2,2.0619677E-1,2.5215581E-2,2.655687E-2,-6.2734306E-2,9.8701805E-2,-8.446455E-2,-1.3654776E-2,1.6588857E-2,6.2818065E-2,-3.593775E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":22,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,-1,-1,29,-1,-1,31,33,-1,35,37,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.7664116E1,9.9375E0,4.614034E1,9.884033E-1,3.1134124E0,7.7513847E0,1.5485057E1,0E0,2.0314457E0,6.2239647E-1,3.2677588E0,1.3265724E0,9.810806E0,6.8597836E0,1.094861E1,0E0,0E0,0E0,0E0,4.7453856E0,0E0,0E0,3.5938795E0,2.8278155E0,0E0,6.5977745E0,1.1647437E1,9.888942E0,5.0119343E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,19,19,22,22,23,23,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,-1,-1,30,-1,-1,32,34,-1,36,38,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-3.975428E-1,6.680639E-1,-8.311706E-1,6.261546E-1,5E-1,3.6826653E1,2.5272247E1,-9.7025655E-2,3.4561232E-1,7.3379074E1,1E0,8.464167E1,-9.8292655E-1,9.6684784E-1,4.0627525E1,-7.920898E-2,3.3385556E-2,-9.2802085E-2,-5.0524804E-3,2.7717335E1,-8.7103665E-2,-1.0010675E-1,-5.426533E-1,2.9224489E0,-8.454254E-2,4.3936573E1,-2.5235417E-1,4.3035382E-3,8.615817E1,-5.1214363E-2,2.364298E-2,6.987759E-2,-7.348814E-2,2.0619677E-1,2.5215581E-2,2.655687E-2,-6.2734306E-2,9.8701805E-2,-8.446455E-2,-1.3654776E-2,1.6588857E-2,6.2818065E-2,-3.593775E-2],"split_indices":[8,7,7,3,11,1,0,0,7,2,11,2,7,8,1,0,0,0,0,0,0,0,3,4,0,2,3,8,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.2245162E3,1.326699E2,1.0918463E3,8.518957E1,4.748034E1,5.856989E1,1.0332765E3,8.005999E1,5.1295753E0,9.433621E0,3.8046715E1,5.18859E1,6.6839886E0,6.997631E1,9.633001E2,3.2829719E0,1.8466034E0,8.419065E0,1.0145556E0,3.2591488E1,5.4552283E0,4.139939E1,1.0486507E1,3.1729279E0,3.511061E0,5.7136166E1,1.2840147E1,8.987854E2,6.451474E1,1.3900564E1,1.8690924E1,1.2846651E0,9.201842E0,1.2442038E0,1.9287239E0,9.379656E0,4.7756508E1,8.191753E0,4.648394E0,1.24869385E2,7.73916E2,5.953531E1,4.9794297E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-1.6951427E-2,-7.2832733E-1,6.2312286E-2,-1.0020858E-1,-4.3860698E-1,-7.687923E-1,1.0725312E-1,-9.563525E-2,-2.7821362E-1,-9.0383166E-1,1.9072121E-1,-1.7197916E-1,1.5328763E-1,-8.1837684E-2,-8.915771E-1,-9.967177E-2,-4.918601E-1,1.1374031E0,-8.280275E-2,-6.940388E-1,-4.068787E-2,2.863254E-1,3.478799E-2,1.0032641E-2,-8.779284E-2,-2.638991E-2,-9.67288E-2,6.369636E-2,-7.165393E-2,1.8276009E-1,2.0990066E-2,-3.1199893E-2,-7.959234E-2,-1.2858949E-2,4.3070626E-2,1.43985795E-2,4.8485E-2,-5.5559553E-2,6.133541E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":23,"left_children":[1,3,5,-1,7,9,11,-1,13,15,17,19,21,23,25,-1,27,29,-1,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.822787E1,9.181564E0,4.0753395E1,0E0,4.7756834E0,7.426159E0,1.33166485E1,0E0,5.6800947E0,1.394371E0,8.399308E0,1.0033697E1,1.3991129E1,5.494508E0,2.903967E-1,0E0,3.2552679E0,2.4518676E0,0E0,8.974867E-1,4.9598913E0,1.1749184E1,7.4139657E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,-1,8,10,12,-1,14,16,18,20,22,24,26,-1,28,30,-1,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-1.0020858E-1,5E-1,3.6826653E1,-2.3030567E-1,-9.563525E-2,4.1320515E-1,8.464167E1,-9.8292655E-1,2.621471E1,8.0647993E-1,1E0,-4.0857756E-1,-9.967177E-2,-5.426533E-1,3.7789318E1,-8.280275E-2,-3.441575E-1,5.7315964E-1,3.099409E1,2.4961687E1,1.0032641E-2,-8.779284E-2,-2.638991E-2,-9.67288E-2,6.369636E-2,-7.165393E-2,1.8276009E-1,2.0990066E-2,-3.1199893E-2,-7.959234E-2,-1.2858949E-2,4.3070626E-2,1.43985795E-2,4.8485E-2,-5.5559553E-2,6.133541E-3],"split_indices":[8,7,7,0,11,1,7,0,6,2,7,0,7,11,3,0,3,1,0,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.2082032E3,1.20304634E2,1.0878986E3,6.059204E1,5.9712593E1,5.4982555E1,1.032916E3,1.2949476E1,4.6763115E1,4.8250008E1,6.732546E0,1.4579982E2,8.871162E2,3.6280792E1,1.0482322E1,3.821451E1,1.0035498E1,3.4293337E0,3.303212E0,2.8437243E1,1.1736257E2,4.1725455E2,4.6986163E2,3.0236057E1,6.0447373E0,1.6111093E0,8.871213E0,1.3612704E0,8.674228E0,1.4097898E0,2.019544E0,6.842387E0,2.1594854E1,9.953023E1,1.7832346E1,2.4402036E2,1.7323419E2,1.9361265E1,4.5050037E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-1.6384386E-2,-7.0682347E-1,5.626494E-2,-9.986954E-2,-4.158715E-1,-7.487552E-1,9.690576E-2,-9.474235E-2,-2.6118943E-1,-9.9463545E-2,-1.588579E-1,5.5008177E-2,3.531107E-1,-7.68282E-2,-8.734572E-1,4.0451133E-1,-9.0425305E-2,-1.791522E-1,9.876959E-2,8.32578E-1,2.6382643E-1,8.983309E-3,-8.6549744E-2,-2.5149463E-2,-9.528227E-2,1.3542232E-1,-1.2672226E-2,-6.856691E-2,-4.695158E-3,2.2582164E-2,-1.068523E-3,9.853502E-2,-7.2358705E-2,1.691101E-2,8.13859E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":24,"left_children":[1,3,5,-1,7,9,11,-1,13,-1,15,17,19,21,23,25,-1,27,29,31,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.986257E1,9.233227E0,3.5407322E1,0E0,4.571744E0,7.386957E0,1.1026288E1,0E0,5.2135005E0,0E0,7.2919574E0,9.092248E0,5.9636383E0,4.947802E0,2.9002953E-1,5.2595162E0,0E0,9.328804E0,1.0387325E1,5.9933243E0,6.282233E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,8,8,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20],"right_children":[2,4,6,-1,8,10,12,-1,14,-1,16,18,20,22,24,26,-1,28,30,32,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-9.986954E-2,5E-1,8.464167E1,3.3476425E1,-9.474235E-2,4.1320515E-1,-9.9463545E-2,-9.6793777E-1,-2.1352091E-1,7.105293E1,1E0,-4.0857756E-1,-9.882014E-2,-9.0425305E-2,2.621471E1,8.0647993E-1,9.750645E-1,3.5996723E1,8.983309E-3,-8.6549744E-2,-2.5149463E-2,-9.528227E-2,1.3542232E-1,-1.2672226E-2,-6.856691E-2,-4.695158E-3,2.2582164E-2,-1.068523E-3,9.853502E-2,-7.2358705E-2,1.691101E-2,8.13859E-2],"split_indices":[8,7,7,0,11,2,0,0,6,0,7,7,2,11,3,8,0,0,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1916414E3,1.1261836E2,1.079023E3,5.5005962E1,5.7612396E1,5.1018394E1,1.0280045E3,1.1831041E1,4.5781357E1,3.5524853E1,1.549354E1,8.84565E2,1.4343956E2,3.6051342E1,9.730014E0,9.08467E0,6.4088693E0,1.3879597E2,7.4576904E2,2.1210669E1,1.2222889E2,3.0493551E1,5.5577908E0,1.5728545E0,8.157159E0,2.7030656E0,6.3816047E0,2.7861214E1,1.1093476E2,3.4464813E2,4.011209E2,1.9648537E1,1.5621316E0,1.05388336E2,1.6840555E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"35","size_leaf_vector":"1"}},{"base_weights":[-1.5713543E-2,-6.848884E-1,5.0855383E-2,-9.9532016E-2,-3.9390624E-1,-7.280602E-1,8.769604E-2,-9.382899E-2,-2.4514928E-1,-9.89887E-2,-1.4606631E-1,-2.8182587E-1,1.1342227E-1,-7.220289E-2,-8.5535634E-1,3.658669E-1,-8.990217E-2,-3.755228E-1,4.815323E-1,9.995125E-2,8.0275387E-1,-5.4139227E-2,2.0785576E-2,-2.3961911E-2,-9.384937E-2,-2.7568316E-2,1.147602E-1,-3.6068198E-3,-6.292509E-2,1.3224857E-1,-9.0000615E-2,-7.2688917E-3,1.4985924E-2,9.0622194E-2,2.1232506E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":25,"left_children":[1,3,5,-1,7,9,11,-1,13,-1,15,17,19,21,23,25,-1,27,29,31,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.249829E1,9.239674E0,3.0828623E1,0E0,4.361046E0,7.249737E0,9.772005E0,0E0,4.7800817E0,0E0,6.584911E0,4.971197E0,8.821333E0,4.953357E0,2.8905344E-1,5.5181303E0,0E0,5.163595E0,1.0206113E1,8.121846E0,9.213772E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,8,8,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20],"right_children":[2,4,6,-1,8,10,12,-1,14,-1,16,18,20,22,24,26,-1,28,30,32,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-9.9532016E-2,5E-1,8.464167E1,2.5272247E1,-9.382899E-2,4.1320515E-1,-9.89887E-2,1.07381344E-1,9.9053246E-1,3.5996723E1,2.7885567E1,-4.0857756E-1,3.223534E-1,-8.990217E-2,5.0932945E1,-2.5235417E-1,1.11659005E-1,9.7601056E-1,-5.4139227E-2,2.0785576E-2,-2.3961911E-2,-9.384937E-2,-2.7568316E-2,1.147602E-1,-3.6068198E-3,-6.292509E-2,1.3224857E-1,-9.0000615E-2,-7.2688917E-3,1.4985924E-2,9.0622194E-2,2.1232506E-2],"split_indices":[8,7,7,0,11,2,0,0,6,0,8,8,0,1,3,3,0,2,3,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.17673E3,1.0562825E2,1.0711017E3,4.9935E1,5.5693253E1,4.752507E1,1.02357666E3,1.0813427E1,4.4879826E1,3.229526E1,1.5229809E1,6.5975426E1,9.5760126E2,3.5840225E1,9.0396E0,9.371936E0,5.857873E0,5.9215233E1,6.7601957E0,9.403694E2,1.7231833E1,1.30477915E1,2.2792435E1,1.5371644E0,7.502436E0,5.5030594E0,3.8688765E0,2.5817286E1,3.3397945E1,4.228822E0,2.5313733E0,2.1078206E2,7.2958734E2,1.4207267E1,3.0245664E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"35","size_leaf_vector":"1"}},{"base_weights":[-1.5064655E-2,-6.6246426E-1,4.5788936E-2,-9.919287E-2,-3.7231472E-1,-7.075994E-1,7.916711E-2,-9.289086E-2,-2.2939204E-1,-9.8509185E-2,-1.3630044E-1,6.2060416E-2,5.9781027E-1,-6.690528E-2,-8.372278E-1,3.5085207E-1,-8.812443E-2,-1.08577676E-1,1.1266219E-1,7.613051E-1,-1.24186605E-1,9.1542965E-3,-8.5585184E-2,-2.2825705E-2,-9.2422895E-2,1.12633586E-1,-1.2575147E-2,-1.4464377E-2,4.128544E-2,2.8118214E-2,-4.909468E-5,9.6980385E-2,-1.569704E-2,-8.3694406E-2,6.879879E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":26,"left_children":[1,3,5,-1,7,9,11,-1,13,-1,15,17,19,21,23,25,-1,27,29,31,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.5957233E1,9.211819E0,2.6875782E1,0E0,4.1537514E0,7.0547485E0,9.031984E0,0E0,4.389058E0,0E0,6.110503E0,8.566179E0,3.933632E0,4.653602E0,2.874055E-1,3.9782815E0,0E0,4.3304143E0,1.4579354E1,5.2561874E0,4.5496616E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,8,8,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20],"right_children":[2,4,6,-1,8,10,12,-1,14,-1,16,18,20,22,24,26,-1,28,30,32,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-9.919287E-2,5E-1,8.464167E1,7.5271255E-1,-9.289086E-2,4.1320515E-1,-9.8509185E-2,-9.6793777E-1,1.11659005E-1,3.8908517E-1,1E0,-4.0857756E-1,-9.882014E-2,-8.812443E-2,5.8658296E-1,8.0647993E-1,9.817894E-1,3.0246916E1,9.1542965E-3,-8.5585184E-2,-2.2825705E-2,-9.2422895E-2,1.12633586E-1,-1.2575147E-2,-1.4464377E-2,4.128544E-2,2.8118214E-2,-4.909468E-5,9.6980385E-2,-1.569704E-2,-8.3694406E-2,6.879879E-2],"split_indices":[8,7,7,0,11,2,3,0,6,0,7,7,6,11,3,8,0,3,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1647582E3,9.922738E1,1.0655308E3,4.5333065E1,5.3894314E1,4.4347664E1,1.02118317E3,9.887877E0,4.400644E1,2.9361727E1,1.4985936E1,9.896603E2,3.152286E1,3.559993E1,8.4065075E0,9.380575E0,5.605361E0,2.2609212E2,7.635682E2,2.5658173E1,5.8646884E0,3.0382103E1,5.217828E0,1.503844E0,6.902663E0,3.0517704E0,6.328805E0,2.1214145E2,1.3950664E1,3.061425E2,4.5742566E2,2.0864643E1,4.793529E0,3.1072736E0,2.7574148E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"35","size_leaf_vector":"1"}},{"base_weights":[-1.4384856E-2,-6.398569E-1,4.1302174E-2,-9.884903E-2,-3.520693E-1,-6.8618333E-1,7.155393E-2,-6.9778895E-1,-1.2450472E-1,-9.824657E-2,-1.2906997E-1,3.918387E-2,3.2987636E-1,1.758313E-1,-8.150584E-1,1.1896288E0,-2.5226894E-1,3.9119157E-1,-8.8460304E-2,2.030688E-1,-7.08939E-3,3.9646593E-1,-2.3442379E-1,-5.7839025E-2,9.169496E-2,-2.9419018E-2,-9.549017E-2,2.3982649E-1,-5.3513568E-2,-9.298383E-2,-4.66489E-3,-2.4563944E-2,1.1245699E-1,9.926347E-3,7.04672E-2,-2.5581423E-2,4.026907E-3,9.1742404E-2,3.0782953E-2,-9.2460044E-2,7.593722E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":27,"left_children":[1,3,5,-1,7,9,11,13,15,-1,17,19,21,23,25,27,29,31,-1,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.024168E1,9.128624E0,2.3402376E1,0E0,4.105993E0,6.881626E0,8.51356E0,2.288394E0,5.9006405E0,0E0,6.5928903E0,6.8817077E0,4.354561E0,2.3752372E0,1.0766335E0,7.8095355E0,4.307073E0,4.995591E0,0E0,1.0333405E1,8.355533E0,4.418886E0,9.34363E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,-1,8,10,12,14,16,-1,18,20,22,24,26,28,30,32,-1,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-9.884903E-2,2.7885567E1,1E0,3.38775E1,2.2853502E1,4.327756E-1,-9.824657E-2,1.07381344E-1,4.9885063E1,9.8522013E-1,-3.3929232E-1,5.253826E1,7.737807E1,-8.660254E-1,3.223534E-1,-8.8460304E-2,2.8713701E1,2.6776005E1,7.105293E1,4.071323E-1,-5.7839025E-2,9.169496E-2,-2.9419018E-2,-9.549017E-2,2.3982649E-1,-5.3513568E-2,-9.298383E-2,-4.66489E-3,-2.4563944E-2,1.1245699E-1,9.926347E-3,7.04672E-2,-2.5581423E-2,4.026907E-3,9.1742404E-2,3.0782953E-2,-9.2460044E-2,7.593722E-2],"split_indices":[8,7,7,0,1,11,0,1,7,0,8,2,8,3,2,2,10,3,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1535929E3,9.345247E1,1.0601404E3,4.1157906E1,5.229456E1,4.1459198E1,1.0186812E3,1.9938042E1,3.2356518E1,2.6566954E1,1.4892246E1,9.062694E2,1.1241181E2,2.3005195E0,1.7637522E1,2.1306233E0,3.0225895E1,9.1048565E0,5.7873907E0,1.9879904E2,7.0747034E2,1.0081292E2,1.1598891E1,1.2490038E0,1.0515157E0,4.3899984E0,1.3247522E1,1.0231547E0,1.1074686E0,6.21705E0,2.4008846E1,5.2291594E0,3.8756964E0,1.657048E2,3.3094234E1,1.1245569E2,5.9501465E2,1.329885E1,8.751407E1,6.8861732E0,4.712718E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-1.3460893E-2,-6.156303E-1,3.7335273E-2,-9.849749E-2,-3.2925662E-1,-6.6510236E-1,6.4807974E-2,-9.147882E-2,-1.8975398E-1,-9.758627E-2,-1.10116266E-1,5.336484E-2,7.419099E-1,-3.3412635E-2,-8.11618E-1,3.174171E-1,-8.5718215E-2,-2.6827607E-1,7.378334E-2,3.3166525E-1,9.39131E-1,1.1672963E-2,-8.3868355E-2,-1.9575668E-2,-9.0560265E-2,7.536787E-2,-4.3206744E-2,-3.6188867E-2,4.6740364E-2,4.2287555E-2,5.0337734E-3,7.5590156E-2,-3.8155995E-2,1.04200065E-1,4.6644382E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":28,"left_children":[1,3,5,-1,7,9,11,-1,13,-1,15,17,19,21,23,25,-1,27,29,31,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.499837E1,9.0901985E0,2.0410643E1,0E0,4.0443583E0,6.7590904E0,7.8373218E0,0E0,4.149974E0,0E0,5.196619E0,6.5924635E0,1.0492449E0,4.374978E0,3.19839E-1,3.7706337E0,0E0,4.298267E0,7.6873918E0,2.408308E0,3.9690018E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,8,8,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20],"right_children":[2,4,6,-1,8,10,12,-1,14,-1,16,18,20,22,24,26,-1,28,30,32,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.132786E-1,3.4561232E-1,-8.311706E-1,-9.849749E-2,5E-1,8.464167E1,3.5996723E1,-9.147882E-2,4.1320515E-1,-9.758627E-2,-9.6793777E-1,2.5139853E1,2.039778E0,1E0,-4.0857756E-1,9.025015E1,-8.5718215E-2,9.9053246E-1,-2.0741408E0,1.7594163E0,3.9300016E-1,1.1672963E-2,-8.3868355E-2,-1.9575668E-2,-9.0560265E-2,7.536787E-2,-4.3206744E-2,-3.6188867E-2,4.6740364E-2,4.2287555E-2,5.0337734E-3,7.5590156E-2,-3.8155995E-2,1.04200065E-1,4.6644382E-2],"split_indices":[8,7,7,0,11,2,0,0,6,0,7,0,4,11,3,2,0,8,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1424388E3,8.800874E1,1.05443E3,3.7370907E1,5.0637833E1,3.881355E1,1.0156165E3,8.673832E0,4.1964E1,2.4395256E1,1.4418293E1,9.997986E2,1.5817941E1,3.4375473E1,7.588526E0,9.536073E0,4.8822203E0,5.8956223E1,9.408424E2,6.006129E0,9.811811E0,2.9694075E1,4.681399E0,1.412907E0,6.1756186E0,6.0240083E0,3.5120642E0,5.2751827E1,6.204392E0,5.8139587E1,8.827028E2,3.7285185E0,2.2776105E0,7.068989E0,2.7428226E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"35","size_leaf_vector":"1"}},{"base_weights":[-1.2786841E-2,-6.421011E-1,3.0307285E-2,-9.792688E-2,-3.6022526E-1,-6.652409E-1,5.732445E-2,-4.5116332E-1,5.2719927E-1,-9.759565E-2,-1.2960394E-1,3.6475893E-2,3.9904767E-1,4.0930006E-1,-5.591798E-1,2.335532E-1,-7.682415E-2,3.1561783E-1,-8.603654E-2,-1.591349E-1,7.104577E-2,4.7935352E-1,-3.9962432E-1,-6.4543225E-2,1.2225639E-1,4.3579534E-2,-6.482553E-2,-2.5199223E-2,9.2552565E-2,2.0115476E-2,-2.9360933E-2,-9.152367E-3,1.3714193E-2,7.729753E-2,3.1973284E-2,-1.2543952E-1,4.4692E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":29,"left_children":[1,3,5,-1,7,9,11,13,15,-1,17,19,21,23,25,-1,-1,27,-1,29,31,33,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.081408E1,6.56789E0,2.0026657E1,0E0,3.566214E0,6.5059814E0,7.286819E0,3.7559762E0,1.1854904E1,0E0,5.406704E0,6.550434E0,3.9647598E0,4.914865E0,3.3081532E0,0E0,0E0,3.8818984E0,0E0,7.110402E0,8.850134E0,2.2794771E0,4.8444543E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,-1,8,10,12,14,16,-1,18,20,22,24,26,-1,-1,28,-1,30,32,34,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-5.049611E-1,3.4561232E-1,-8.311706E-1,-9.792688E-2,3.207702E1,1E0,4.0627525E1,4.327756E-1,2.8594188E-2,-9.759565E-2,-9.6793777E-1,4.3035382E-3,8.615817E1,2.608725E1,5.123741E1,2.335532E-1,-7.682415E-2,3.223534E-1,-8.603654E-2,2.0519462E-1,1.6280702E-1,4.1240208E1,1.06329784E-1,-6.4543225E-2,1.2225639E-1,4.3579534E-2,-6.482553E-2,-2.5199223E-2,9.2552565E-2,2.0115476E-2,-2.9360933E-2,-9.152367E-3,1.3714193E-2,7.729753E-2,3.1973284E-2,-1.2543952E-1,4.4692E-2],"split_indices":[8,7,7,0,0,11,1,7,3,0,7,8,2,0,2,0,0,3,0,6,7,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1345054E3,7.1818726E1,1.0626866E3,3.1575438E1,4.0243286E1,3.8851234E1,1.0238354E3,3.6948612E1,3.2946742E0,2.4067793E1,1.4783442E1,9.6600604E2,5.7829353E1,3.8098624E0,3.313875E1,1.0400127E0,2.2546613E0,9.539517E0,5.2439237E0,1.4453929E2,8.214668E2,5.290919E1,4.9201655E0,1.7485342E0,2.0613282E0,2.4031456E0,3.0735603E1,5.2450514E0,4.294466E0,3.9150288E1,1.05389E2,2.3733508E2,5.841317E2,1.7280033E1,3.5629154E1,2.2084603E0,2.7117052E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"37","size_leaf_vector":"1"}},{"base_weights":[-1.1947901E-2,-6.169613E-1,2.7203854E-2,-9.7532235E-2,-3.3393717E-1,-6.442432E-1,5.1779475E-2,-4.240088E-1,5.00697E-1,-9.692651E-2,-1.18061155E-1,3.6876004E-2,5.1125103E-1,3.6764532E-1,-5.310337E-1,2.0326595E-1,-7.482152E-2,2.6769814E-1,-8.4264666E-2,2.759622E-2,6.941873E-1,6.612173E-1,-1.4913015E-1,1.3217819E-1,-4.5311842E-2,3.9317753E-2,-6.211557E-2,6.459445E-2,-4.246074E-2,1.26541555E-2,-2.9634319E-3,-1.3331197E-2,7.74607E-2,8.540488E-2,-1.8109871E-2,-6.78496E-2,7.988209E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":30,"left_children":[1,3,5,-1,7,9,11,13,15,-1,17,19,21,23,25,-1,-1,27,-1,29,31,33,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.6677282E1,6.6168423E0,1.749276E1,0E0,3.2017655E0,6.2874384E0,6.9770083E0,3.2821507E0,9.809124E0,0E0,4.539102E0,6.023302E0,3.2696037E0,4.4595966E0,2.9515362E0,0E0,0E0,3.110127E0,0E0,5.5411034E0,1.0182347E0,4.422785E0,3.9249864E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,-1,8,10,12,14,16,-1,18,20,22,24,26,-1,-1,28,-1,30,32,34,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-5.049611E-1,3.4561232E-1,-8.311706E-1,-9.7532235E-2,3.207702E1,8.464167E1,7.5271255E-1,4.327756E-1,2.8594188E-2,-9.692651E-2,-9.6793777E-1,3.5996723E1,3.8908517E-1,-7.0710677E-1,5.123741E1,2.0326595E-1,-7.482152E-2,9.025015E1,-8.4264666E-2,2.4643119E-1,-9.659258E-1,9.817894E-1,3.207702E1,1.3217819E-1,-4.5311842E-2,3.9317753E-2,-6.211557E-2,6.459445E-2,-4.246074E-2,1.26541555E-2,-2.9634319E-3,-1.3331197E-2,7.74607E-2,8.540488E-2,-1.8109871E-2,-6.78496E-2,7.988209E-2],"split_indices":[8,7,7,0,0,2,3,7,3,0,7,0,6,10,2,0,0,2,0,6,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.124517E3,6.74501E1,1.0570669E3,2.8684336E1,3.876577E1,3.6433308E1,1.02063354E3,3.5433823E1,3.3319473E0,2.2001152E1,1.4432154E1,9.8961456E2,3.101899E1,3.929857E0,3.1503965E1,1.2145683E0,2.117379E0,9.829574E0,4.6025796E0,9.7686536E2,1.2749201E1,2.5277454E1,5.7415347E0,1.5349966E0,2.3948603E0,2.5003076E0,2.9003656E1,6.3999047E0,3.4296694E0,3.5752783E2,6.193376E2,1.0710142E0,1.1678186E1,2.0557333E1,4.7201223E0,3.8665698E0,1.874965E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"37","size_leaf_vector":"1"}},{"base_weights":[-1.1020098E-2,-5.9144056E-1,2.4441916E-2,-9.711959E-2,-3.0843383E-1,-6.2266195E-1,4.6796694E-2,-5.289945E-1,4.45385E-2,-9.665447E-2,-1.04782544E-1,-8.137727E-2,9.3514286E-2,3.2506967E-1,-6.559023E-1,9.4598037E-1,-3.870749E-1,2.9267707E-1,-8.471369E-2,1.4180088E-1,-2.1123902E-1,1.1581601E-1,-3.376101E-1,-6.351358E-2,1.4145474E-1,2.2733143E-2,-8.606254E-2,1.760784E-1,-6.214447E-2,8.480389E-2,-6.0281135E-2,-2.4228815E-2,8.4683925E-2,-2.3198584E-2,3.2512795E-2,-7.937867E-2,-1.5949847E-2,2.0163797E-2,1.8920144E-3,-8.791785E-2,3.3219084E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":31,"left_children":[1,3,5,-1,7,9,11,13,15,-1,17,19,21,23,25,27,29,31,-1,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.304597E1,6.6291237E0,1.5297801E1,0E0,3.0134802E0,6.1880245E0,6.1224174E0,2.7834716E0,6.4713893E0,0E0,4.736931E0,7.951274E0,7.2393003E0,4.8072076E0,3.9887037E0,7.953735E0,3.5277076E0,3.3630571E0,0E0,7.0056853E0,5.093308E0,5.9234877E0,1.3745569E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,-1,8,10,12,14,16,-1,18,20,22,24,26,28,30,32,-1,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-5.049611E-1,3.4561232E-1,-8.311706E-1,-9.711959E-2,2.8860441E1,1E0,2.750313E1,4.327756E-1,-3.431097E-2,-9.665447E-2,1.07381344E-1,2.4158949E-1,9.946708E-1,2.608725E1,5.253826E1,1E0,6.403007E1,3.223534E-1,-8.471369E-2,5E-1,-1.500554E-1,8.4061843E-1,1.023664E-1,-6.351358E-2,1.4145474E-1,2.2733143E-2,-8.606254E-2,1.760784E-1,-6.214447E-2,8.480389E-2,-6.0281135E-2,-2.4228815E-2,8.4683925E-2,-2.3198584E-2,3.2512795E-2,-7.937867E-2,-1.5949847E-2,2.0163797E-2,1.8920144E-3,-8.791785E-2,3.3219084E-2],"split_indices":[8,7,7,0,0,11,0,7,3,0,8,6,8,0,2,11,2,3,0,11,8,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1179647E3,6.346877E1,1.054496E3,2.6063498E1,3.7405273E1,3.431536E1,1.0201806E3,2.271361E1,1.4691663E1,2.010132E1,1.4214043E1,2.723157E2,7.4786487E2,2.7364433E0,1.9977167E1,4.370975E0,1.0320687E1,9.652043E0,4.5619993E0,1.0013445E2,1.7218126E2,7.117766E2,3.608828E1,1.6761792E0,1.0602641E0,3.7383635E0,1.6238804E1,2.7947853E0,1.5761899E0,1.0988357E0,9.221851E0,5.1974373E0,4.454606E0,3.2863476E1,6.727098E1,1.287539E1,1.5930586E2,3.7688425E2,3.3489233E2,1.9781404E1,1.6306875E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-1.0513807E-2,-4.4978637E-1,3.1319726E-2,-1.4676794E-1,-9.3443793E-1,-1.8649238E-1,8.266449E-2,-4.1666812E-1,1.6976163E-1,-9.747948E-1,7.945134E-3,2.0524777E-1,-3.0405775E-1,-8.092022E-2,1.4385846E-1,-1.486612E-1,-1.14618294E-1,7.406448E-1,-4.083565E-1,-9.980142E-2,-9.320468E-3,-3.4984627E-1,4.3838236E-1,-4.8118868E-1,-7.03409E-3,-1.7338467E-1,2.2084254E-1,1.9106136E-1,-8.3477974E-2,-8.651686E-2,1.0807097E-2,1.233693E-1,2.8470581E-2,-6.526791E-2,4.344552E-2,-7.1333736E-2,5.3339694E-3,-3.9835474E-3,7.423141E-2,6.2123133E-4,-6.592538E-2,3.4992598E-2,-2.822046E-2,1.11955844E-1,-1.9921051E-2,-2.3939153E-2,4.8238754E-2,1.2669565E-2,3.948731E-2,2.0237315E-2,-2.9133787E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":32,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,-1,31,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.0433367E1,1.4061821E1,1.1372143E1,5.2543893E0,1.5917397E0,8.998161E0,8.244844E0,6.289407E0,9.753522E0,6.3708496E-1,0E0,6.026621E0,7.8694305E0,6.303724E0,6.442889E0,4.7496576E0,0E0,2.9676437E0,3.346097E0,0E0,0E0,2.0868058E0,4.739465E0,8.138247E0,5.689295E0,5.981093E0,6.508052E0,6.4599686E0,6.218755E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,-1,32,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5272247E1,6.047431E1,4.3035382E-3,6.776148E-1,9.880227E-1,5.7252533E1,1.11659005E-1,4.2110088E-1,-3.0864313E-1,9.796137E-1,7.945134E-3,2.692554E1,3.0917042E1,4.2809454E-1,4.338055E-1,-6.040605E-1,-1.14618294E-1,9.5844936E-1,4.171936E-1,-9.980142E-2,-9.320468E-3,-4.2140488E-2,-2.5881904E-1,2.0036687E-1,5.9864648E-2,4.7215916E1,2.978087E1,3.438336E1,-9.355376E-2,-8.651686E-2,1.0807097E-2,1.233693E-1,2.8470581E-2,-6.526791E-2,4.344552E-2,-7.1333736E-2,5.3339694E-3,-3.9835474E-3,7.423141E-2,6.2123133E-4,-6.592538E-2,3.4992598E-2,-2.822046E-2,1.11955844E-1,-1.9921051E-2,-2.3939153E-2,4.8238754E-2,1.2669565E-2,3.948731E-2,2.0237315E-2,-2.9133787E-2],"split_indices":[0,2,8,8,8,2,7,8,3,7,0,0,0,3,6,3,0,5,7,0,0,3,9,6,3,2,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1101732E3,9.568475E1,1.0144885E3,5.9676243E1,3.600851E1,1.9302322E2,8.214653E2,3.2039913E1,2.7636332E1,3.4667175E1,1.3413342E0,4.438429E1,1.4863893E2,2.2354875E2,5.9791656E2,2.4312017E1,7.7278943E0,1.3763724E1,1.3872607E1,3.364887E1,1.0183077E0,1.2979485E1,3.1404806E1,9.272316E1,5.5915764E1,1.7144191E2,5.2106842E1,4.952459E2,1.0267062E2,5.788134E0,1.8523884E1,5.793192E0,7.9705324E0,1.09297695E1,2.9428375E0,6.4212103E0,6.5582743E0,1.2541094E1,1.886371E1,2.5069073E1,6.765409E1,2.422223E1,3.1693531E1,2.5280373E0,1.6891388E2,1.8912212E1,3.3194633E1,3.7761353E2,1.17632385E2,4.323702E1,5.9433605E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-9.940229E-3,-7.4641997E-1,1.2593816E-2,-8.143651E-1,9.463402E-3,-4.4459456E-1,4.3029536E-2,-8.641684E-1,-1.7448357E-1,7.697004E-2,-6.355774E-2,-9.3471813E-1,-1.329088E-1,2.819136E-2,4.6177128E-1,-9.554045E-2,-5.82332E-1,-6.1618906E-2,4.4241767E-2,-3.1465148E-3,-9.7146235E-2,8.4468913E-1,-2.9042765E-1,-4.9874997E-1,3.905826E-2,1.0883049E0,2.6325807E-1,4.962959E-2,-8.798303E-2,1.2369662E-1,-2.7485559E-2,-3.886476E-2,5.758471E-2,-7.6404095E-2,5.6529354E-2,1.6760921E-2,-1.9357483E-4,3.345149E-2,1.370529E-1,-2.906301E-2,7.0366375E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":33,"left_children":[1,3,5,7,9,11,13,15,17,-1,-1,19,21,23,25,-1,27,-1,-1,-1,-1,29,31,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.8291502E1,1.6882477E0,1.4906414E1,8.0636024E-1,2.2973616E0,1.0090597E1,6.2253084E0,1.5365982E-1,1.2050235E0,0E0,0E0,8.266163E-1,6.71897E0,5.578051E0,3.9789343E0,0E0,3.4253175E0,0E0,0E0,0E0,0E0,3.0143733E0,3.3676906E0,5.9891624E0,5.017379E0,1.2290945E0,6.8791595E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,11,11,12,12,13,13,14,14,16,16,21,21,22,22,23,23,24,24,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,-1,20,22,24,26,-1,28,-1,-1,-1,-1,30,32,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.206671E-1,6.261546E-1,-6.016241E-1,6.680639E-1,-9.1928595E-1,3.0192533E1,7.243951E-1,3.9359027E-1,2.8753588E1,7.697004E-2,-6.355774E-2,-6.830691E-1,-4.8166803E-1,-7.790238E-1,5.0932945E1,-9.554045E-2,4.327756E-1,-6.1618906E-2,4.4241767E-2,-3.1465148E-3,-9.7146235E-2,-7.1767694E-1,1E0,7.709227E1,1.9353612E-1,2.8376825E1,3.0246916E1,4.962959E-2,-8.798303E-2,1.2369662E-1,-2.7485559E-2,-3.886476E-2,5.758471E-2,-7.6404095E-2,5.6529354E-2,1.6760921E-2,-1.9357483E-4,3.345149E-2,1.370529E-1,-2.906301E-2,7.0366375E-2],"split_indices":[8,3,7,7,8,1,3,7,0,0,0,3,3,3,2,0,7,0,0,0,0,7,9,2,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.1006057E3,3.1721706E1,1.068884E3,2.9034477E1,2.6872292E0,6.58665E1,1.0030175E3,2.6612646E1,2.4218328E0,1.1447649E0,1.5424644E0,2.4827124E1,4.103938E1,9.697226E2,3.3294937E1,1.8298977E1,8.313667E0,1.4119916E0,1.0098412E0,1.0430496E0,2.3784075E1,5.089614E0,3.5949768E1,1.8686953E1,9.5103564E2,6.9325686E0,2.636237E1,1.6528308E0,6.6608367E0,3.6913273E0,1.3982867E0,3.2784008E1,3.1657588E0,1.5183336E1,3.5036154E0,2.2920264E2,7.21833E2,2.4838245E0,4.4487443E0,1.1827403E1,1.4534967E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-9.157693E-3,-7.27796E-1,1.1436376E-2,-9.4805196E-2,-4.1366738E-1,-4.1928515E-1,3.8960155E-2,3.7569863E-1,-7.423961E-1,-9.2661446E-1,-1.1961672E-1,1.854747E-1,2.892885E-5,9.9933404E-1,-6.1301824E-2,-3.6163423E-2,-9.050447E-2,-2.9907234E-3,-9.664976E-2,7.3201E-1,-2.6808876E-1,1.15671694E-1,1.0668598E0,-1.7477444E-1,4.5012217E-2,-5.8194913E-2,2.3384431E-1,-5.0847597E-2,4.542787E-2,-5.295208E-2,1.0633576E-1,-6.008018E-2,-4.4782806E-4,-3.848389E-2,2.2566741E-2,1.5682484E-1,1.6431928E-2,4.5154903E-2,-2.3923827E-2,-3.1527575E-2,7.227757E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":34,"left_children":[1,3,5,-1,7,9,11,13,15,17,19,21,23,25,-1,27,-1,-1,-1,29,31,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6229671E1,1.7215576E0,1.2659901E1,0E0,4.0066977E0,9.640898E0,5.723189E0,3.6263509E0,1.1708841E0,8.176346E-1,5.4401646E0,1.2835861E1,6.249124E0,8.512529E0,0E0,9.2662877E-1,0E0,0E0,0E0,3.2487495E0,3.1589324E0,1.089415E1,6.6822987E0,6.6752687E0,6.2318654E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,-1,8,10,12,14,16,18,20,22,24,26,-1,28,-1,-1,-1,30,32,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.206671E-1,3.4561232E-1,-6.016241E-1,-9.4805196E-2,4.327756E-1,3.0192533E1,1.2395207E-1,7.2521194E1,-4.1453156E-1,-6.830691E-1,-4.8166803E-1,9.966589E-1,3.872228E-2,2.7885567E1,-6.1301824E-2,2.6434412E1,-9.050447E-2,-2.9907234E-3,-9.664976E-2,-9.796137E-1,1.8129073E-1,2.845517E1,3.0783129E1,1.3265605E-1,-3.049212E-1,-5.8194913E-2,2.3384431E-1,-5.0847597E-2,4.542787E-2,-5.295208E-2,1.0633576E-1,-6.008018E-2,-4.4782806E-4,-3.848389E-2,2.2566741E-2,1.5682484E-1,1.6431928E-2,4.5154903E-2,-2.3923827E-2,-3.1527575E-2,7.227757E-3],"split_indices":[8,7,7,0,7,1,5,2,3,3,3,7,8,1,0,0,0,0,0,7,3,0,1,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0950602E3,2.9550306E1,1.0655099E3,1.6184362E1,1.3365945E1,6.3143253E1,1.0023667E3,3.887685E0,9.47826E0,2.2670563E1,4.0472687E1,2.0963983E2,7.9272687E2,2.3773978E0,1.5102873E0,2.0030782E0,7.4751816E0,1.0399015E0,2.1630663E1,5.4249897E0,3.50477E1,1.9530363E2,1.4336209E1,1.6165526E2,6.310716E2,1.3493923E0,1.0280054E0,1.0016675E0,1.0014107E0,1.0040842E0,4.420905E0,1.4927718E1,2.0119982E1,3.473792E1,1.605657E2,8.742111E0,5.5940986E0,1.4525214E1,1.4713005E2,4.3654324E1,5.8741724E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-8.624086E-3,-7.094144E-1,1.0209737E-2,-9.421077E-2,-3.9156616E-1,-3.9652547E-1,3.528117E-2,3.553917E-1,-7.2347087E-1,-9.1806877E-1,-1.1026448E-1,2.1881206E-2,4.2192215E-1,1.1390175E-1,-4.252231E-1,-3.5163106E-3,-8.936694E-2,-2.8426384E-3,-9.613064E-2,6.3589746E-1,-2.4924195E-1,1.375177E-2,6.3510096E-1,1.0097662E0,2.3460425E-1,-5.4983526E-2,-7.7185817E-3,1.5021123E-2,1.510682E-1,-3.458742E-2,5.376199E-2,-4.6239533E-2,2.3499911E-3,-1.4420229E-2,7.184363E-2,3.1923782E-2,1.2752452E-1,-2.6568204E-2,6.410635E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":35,"left_children":[1,3,5,-1,7,9,11,13,15,17,19,21,23,-1,25,-1,-1,-1,-1,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.43685665E1,1.7383757E0,1.0829451E1,0E0,3.6668847E0,9.104797E0,5.1714516E0,3.4828033E0,1.122704E0,8.079529E-1,4.404744E0,4.8143992E0,3.4452963E0,0E0,9.563947E-2,0E0,0E0,0E0,0E0,2.6243198E0,2.8652174E0,4.447572E0,9.242406E-1,1.0187812E0,5.5918903E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,14,14,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,-1,8,10,12,14,16,18,20,22,24,-1,26,-1,-1,-1,-1,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.206671E-1,3.4561232E-1,-6.016241E-1,-9.421077E-2,4.327756E-1,3.0192533E1,7.243951E-1,-7.0710677E-1,-4.1453156E-1,-6.830691E-1,-4.8166803E-1,3.5996723E1,5.0932945E1,1.1390175E-1,-3.323579E-1,-3.5163106E-3,-8.936694E-2,-2.8426384E-3,-9.613064E-2,1.8044683E-1,1E0,-7.790238E-1,-9.659258E-1,2.8376825E1,3.0246916E1,-5.4983526E-2,-7.7185817E-3,1.5021123E-2,1.510682E-1,-3.458742E-2,5.376199E-2,-4.6239533E-2,2.3499911E-3,-1.4420229E-2,7.184363E-2,3.1923782E-2,1.2752452E-1,-2.6568204E-2,6.410635E-2],"split_indices":[8,7,7,0,7,1,3,10,3,3,3,0,2,0,4,0,0,0,0,4,9,3,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0870977E3,2.7491604E1,1.059606E3,1.4738033E1,1.27535715E1,6.0662308E1,9.989437E2,3.901779E0,8.851792E0,2.0714727E1,3.9947582E1,9.665038E2,3.2439903E1,1.718012E0,2.183767E0,1.9940726E0,6.8577194E0,1.0369178E0,1.9677809E1,5.7108455E0,3.4236736E1,9.5486755E2,1.1636224E1,6.7781E0,2.5661804E1,1.181075E0,1.002692E0,4.4254937E0,1.2853516E0,3.0991232E1,3.2455056E0,1.8225199E1,9.366424E2,1.0535599E0,1.0582664E1,2.4938715E0,4.284229E0,1.1658458E1,1.40033455E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-7.819194E-3,-7.091353E-1,8.982274E-3,-7.945644E-1,1.0426252E-1,-2.901399E-1,3.8825586E-2,-9.383101E-2,-4.7680414E-1,6.8798386E-2,-5.4588836E-2,-8.4310454E-1,-1.5810972E-1,1.1785039E-1,-3.8133763E-2,4.1371204E-2,-7.488169E-1,-9.902881E-2,2.8793318E-2,-6.966106E-1,-2.972387E-2,-6.83295E-3,2.2387138E-1,-2.3145226E-1,2.3848513E-2,-8.5471034E-2,-7.260023E-3,3.476595E-2,-8.1161976E-2,1.05008245E-1,-1.202114E-2,6.467265E-2,-5.4910625E-3,-1.4137896E-3,3.936307E-2,-1.1224486E-1,-4.067034E-3,3.3104006E-2,-6.9706277E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":36,"left_children":[1,3,5,7,9,11,13,-1,15,-1,-1,17,19,21,23,-1,25,-1,-1,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.2765163E1,1.8441038E0,9.459873E0,6.056061E-1,1.625296E0,6.885659E0,5.863083E0,0E0,2.5416126E0,0E0,0E0,3.3314962E0,5.4299593E0,6.2875066E0,5.862368E0,0E0,4.688139E-1,0E0,0E0,2.0996861E0,6.448646E0,6.93253E0,1.0390474E1,2.0142347E1,1.068614E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,11,11,12,12,13,13,14,14,16,16,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,-1,16,-1,-1,18,20,22,24,-1,26,-1,-1,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.3249406E-1,6.261546E-1,-4.2500034E-1,3.9359027E-1,-9.1928595E-1,5E-1,7.961829E-1,-9.383101E-2,4.327756E-1,6.8798386E-2,-5.4588836E-2,-4.559067E-1,2.820763E1,2.8860441E1,9.0701383E-1,4.1371204E-2,-1.8369701E-16,-9.902881E-2,2.8793318E-2,-5.790878E-1,6.535205E1,-2.5997322E0,1.9667289E-1,2.6464819E1,5.0932945E1,-8.5471034E-2,-7.260023E-3,3.476595E-2,-8.1161976E-2,1.05008245E-1,-1.202114E-2,6.467265E-2,-5.4910625E-3,-1.4137896E-3,3.936307E-2,-1.1224486E-1,-4.067034E-3,3.3104006E-2,-6.9706277E-3],"split_indices":[8,3,7,7,8,11,7,0,7,0,0,7,1,0,7,0,10,0,0,3,2,4,7,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0818008E3,2.4346304E1,1.0574545E3,2.2053259E1,2.2930453E0,9.51396E1,9.623148E2,1.3839692E1,8.213566E0,1.1775874E0,1.1154578E0,1.7299732E1,7.7839874E1,4.7452408E2,4.8779077E2,1.7999512E0,6.4136147E0,1.54178295E1,1.8819019E0,1.4133305E1,6.370657E1,2.1849915E2,2.5602493E2,1.1776271E2,3.7002805E2,5.3170257E0,1.0965892E0,1.2014434E0,1.2931861E1,4.1058536E0,5.9600716E1,1.4118812E1,2.0438033E2,1.06968124E2,1.4905681E2,1.9907343E1,9.785537E1,8.5790955E1,2.842371E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-7.458981E-3,-7.1191525E-1,7.5247455E-3,-8.102573E-1,1.4103444E-1,-3.551974E-1,2.860193E-2,-3.8772696E-1,-8.8566504E-2,3.9196383E-2,-1.623984E-2,-9.0323585E-1,-8.751702E-2,2.071215E-2,5.936373E-1,-7.447788E-2,4.8617866E-2,-2.7086164E-3,-9.523309E-2,5.9434664E-1,-2.21312E-1,1.0163803E-2,4.0648928E-1,1.5035589E-1,8.32438E-1,8.916354E-2,-5.5693626E-2,-5.59133E-2,3.063543E-3,-4.3427277E-2,1.9095371E-3,5.818526E-2,-3.579162E-2,6.37024E-2,-5.5366226E-2,9.597782E-2,3.3353824E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":37,"left_children":[1,3,5,7,9,11,13,15,-1,-1,-1,17,19,21,23,-1,-1,-1,-1,25,27,29,31,33,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1361255E1,1.9946222E0,8.071393E0,3.017397E-1,3.049537E-1,8.426638E0,4.434306E0,1.8738741E0,0E0,0E0,0E0,7.880058E-1,3.7863271E0,4.0030937E0,1.3250289E0,0E0,0E0,0E0,0E0,2.8385932E0,2.9295816E0,3.817277E0,3.7181363E0,2.41418E0,2.3150253E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,11,11,12,12,13,13,14,14,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,16,-1,-1,-1,18,20,22,24,-1,-1,-1,-1,26,28,30,32,34,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.4410397E-1,6.261546E-1,-6.016241E-1,-2.0435398E0,1.5502654E0,3.0192533E1,3.5996723E1,-1.7138305E-1,-8.8566504E-2,3.9196383E-2,-1.623984E-2,-6.830691E-1,-4.8166803E-1,7.5271255E-1,2.039778E0,-7.447788E-2,4.8617866E-2,-2.7086164E-3,-9.523309E-2,8.875895E1,1.8129073E-1,-7.790238E-1,3.8908517E-1,1.7594163E0,3.9300016E-1,8.916354E-2,-5.5693626E-2,-5.59133E-2,3.063543E-3,-4.3427277E-2,1.9095371E-3,5.818526E-2,-3.579162E-2,6.37024E-2,-5.5366226E-2,9.597782E-2,3.3353824E-2],"split_indices":[8,3,7,4,4,1,0,3,0,0,0,3,3,3,4,0,0,0,0,2,3,3,6,4,6,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0748398E3,2.14169E1,1.0534229E3,1.9247755E1,2.1691453E0,5.6980476E1,9.964424E2,3.8449836E0,1.5402771E1,1.0275934E0,1.1415521E0,1.7919165E1,3.906131E1,9.8374274E2,1.2699674E1,2.834606E0,1.0103775E0,1.0331577E0,1.6886005E1,5.8427086E0,3.32186E1,9.585591E2,2.5183643E1,5.0167685E0,7.6829057E0,4.82286E0,1.0198488E0,1.3670037E1,1.9548565E1,1.7945889E1,9.406132E2,2.0678564E1,4.5050807E0,3.0225346E0,1.9942337E0,5.3847113E0,2.2981944E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"37","size_leaf_vector":"1"}},{"base_weights":[-6.963116E-3,-3.4518135E-1,2.093033E-2,-9.826904E-2,-8.925781E-1,-1.4665113E-1,5.916535E-2,-3.4621978E-1,1.7285497E-1,-9.49884E-1,7.849281E-3,1.696947E-1,-2.4860659E-1,-6.2336143E-2,1.037151E-1,-9.1054395E-2,-1.0946349E-1,6.6517526E-1,-3.704895E-1,-9.843511E-2,-9.000124E-3,-2.0958701E-1,4.4030586E-1,-3.8173696E-1,5.941562E-2,1.2282215E0,-8.058342E-2,1.4555196E-1,-9.570049E-2,2.1526612E-2,-6.832439E-2,1.4231402E-1,3.583451E-2,3.5166584E-2,-6.410479E-2,9.055977E-2,-3.6807273E-2,-1.5840651E-2,7.444039E-2,-4.9617507E-2,1.8570265E-2,5.9196163E-2,-8.262159E-3,1.6557269E-1,2.1403337E-2,-1.6621368E-2,1.8141663E-2,1.2926104E-2,8.525337E-2,1.7289067E-2,-2.9090349E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":38,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,-1,31,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.01191E1,1.09573965E1,6.3593035E0,3.9213052E0,1.4812813E0,5.9900455E0,4.378516E0,5.693472E0,7.7645316E0,6.211262E-1,0E0,4.766638E0,5.758315E0,5.216817E0,4.947846E0,4.4486523E0,0E0,3.0023823E0,2.9613104E0,0E0,0E0,3.8046904E0,5.015751E0,6.442587E0,3.3071494E0,9.860101E-1,4.8589654E0,5.524458E0,5.4589157E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,-1,32,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5272247E1,6.047431E1,4.3035382E-3,6.776148E-1,9.880227E-1,5.7252533E1,1.11659005E-1,4.2110088E-1,-3.0864313E-1,9.741005E-1,7.849281E-3,2.650092E1,3.1681175E1,4.5971794E1,4.338055E-1,3.572735E-1,-1.0946349E-1,8.60961E-1,-7.0710677E-1,-9.843511E-2,-9.000124E-3,1.2628217E-1,2.3614627E-1,9.8787147E-1,-8.22366E-1,2.107737E-1,4.071323E-1,4.2515442E-1,-9.355376E-2,2.1526612E-2,-6.832439E-2,1.4231402E-1,3.583451E-2,3.5166584E-2,-6.410479E-2,9.055977E-2,-3.6807273E-2,-1.5840651E-2,7.444039E-2,-4.9617507E-2,1.8570265E-2,5.9196163E-2,-8.262159E-3,1.6557269E-1,2.1403337E-2,-1.6621368E-2,1.8141663E-2,1.2926104E-2,8.525337E-2,1.7289067E-2,-2.9090349E-2],"split_indices":[0,2,8,8,8,2,7,8,3,7,0,1,0,2,6,6,0,8,9,0,0,6,6,5,4,6,3,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0708463E3,8.071937E1,9.901269E2,5.6440483E1,2.4278887E1,1.834115E2,8.067154E2,2.9335417E1,2.7105064E1,2.2946558E1,1.3323281E0,4.454221E1,1.3886928E2,2.1632587E2,5.903895E2,2.2713215E1,6.6222024E0,1.41025915E1,1.3002474E1,2.1923056E1,1.0235028E0,1.8640985E1,2.5901224E1,9.6794426E1,4.207486E1,2.0915143E0,2.1423436E2,4.8823022E2,1.021593E2,1.5389312E1,7.3239036E0,3.015407E0,1.1087184E1,3.4620461E0,9.540427E0,1.7329586E0,1.6908028E1,8.885812E0,1.7015413E1,8.065414E1,1.614029E1,8.192126E0,3.3882732E1,1.0263278E0,1.0651864E0,1.6173848E2,5.2495872E1,4.7838956E2,9.840664E0,4.3045204E1,5.9114094E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-6.2836423E-3,-6.7411476E-1,6.464725E-3,-7.83167E-1,1.709258E-1,-4.7794342E-1,1.8707562E-2,-9.1952614E-2,-4.4654468E-1,4.0288113E-2,-1.3422826E-2,-9.331154E-2,-7.870741E-3,1.1595675E-2,5.63715E-1,4.7376256E-2,-8.2157165E-2,3.5716915E-1,-8.009048E-2,1.574499E-2,-8.1031686E-1,7.771334E-1,7.823298E-2,1.0450703E-1,-9.876838E-3,-4.2903027E-3,7.311868E-3,-9.307089E-3,-9.834527E-2,9.337661E-2,3.709356E-2,-4.1325722E-2,7.515543E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":39,"left_children":[1,3,5,7,9,11,13,-1,15,-1,-1,-1,17,19,21,-1,-1,23,-1,25,27,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.078613E0,1.9745684E0,6.217378E0,4.0966988E-1,2.7377883E-1,5.522253E0,3.9548323E0,0E0,2.838377E0,0E0,0E0,0E0,4.2584863E0,3.4568038E0,1.3010287E0,0E0,0E0,3.267336E0,0E0,3.3874435E0,5.407567E-1,2.2740173E-1,2.0067806E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22],"right_children":[2,4,6,8,10,12,14,-1,16,-1,-1,-1,18,20,22,-1,-1,24,-1,26,28,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.4410397E-1,6.261546E-1,-8.311706E-1,3.9359027E-1,1.2246469E-16,8.464167E1,3.5996723E1,-9.1952614E-2,4.327756E-1,4.0288113E-2,-1.3422826E-2,-9.331154E-2,-9.6793777E-1,8.848554E1,9.1060466E-1,4.7376256E-2,-8.2157165E-2,-9.882014E-2,-8.009048E-2,6.118864E-1,-2.5881904E-1,5E-1,7.0710677E-1,1.0450703E-1,-9.876838E-3,-4.2903027E-3,7.311868E-3,-9.307089E-3,-9.834527E-2,9.337661E-2,3.709356E-2,-4.1325722E-2,7.515543E-2],"split_indices":[8,3,7,7,9,2,0,0,7,0,0,0,7,2,7,0,0,8,0,8,9,9,9,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0648346E3,1.8974325E1,1.0458602E3,1.687042E1,2.1039033E0,2.4843597E1,1.02101666E3,1.0774324E1,6.096097E0,1.0133646E0,1.0905387E0,1.2121392E1,1.2722205E1,1.008873E3,1.2143668E1,1.6887264E0,4.4073706E0,9.088372E0,3.6338334E0,1.0047813E3,4.0916615E0,8.018139E0,4.1255293E0,3.1076035E0,5.980768E0,4.9699738E2,5.0778394E2,1.094609E0,2.9970524E0,4.8493857E0,3.1687531E0,2.6080365E0,1.5174928E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-5.9003104E-3,-4.445103E-1,1.2093074E-2,-7.29711E-2,-8.5059696E-1,-1.3819039E-1,4.6063017E-2,2.9563E-1,-5.880731E-1,-9.3956554E-1,4.0231388E-2,1.382236E-1,-2.3482223E-1,3.8572125E-2,6.3181096E-1,-2.5553322E-1,1.1777856E0,2.828705E-1,-8.9167064E-1,-2.8929323E-2,-9.814458E-2,-3.040592E-1,3.6273575E-1,-3.9250875E-1,9.442251E-3,4.7096103E-2,-4.7542262E-1,7.522268E-1,5.445282E-3,-7.248342E-2,5.2541472E-2,-3.618222E-2,1.717533E-1,-6.4677864E-2,9.62716E-2,-2.5307167E-2,-9.8976664E-2,4.5957346E-2,-7.549285E-2,-5.1945793E-3,8.0805086E-2,8.625813E-3,-5.8295157E-2,3.2812055E-2,-2.4579115E-2,4.1142753E-3,1.0768818E-1,-8.222043E-2,5.062672E-2,9.127986E-2,3.508819E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":40,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,33,35,-1,-1,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.391131E0,6.259465E0,5.2220373E0,4.535828E0,2.5990047E0,5.0702457E0,3.6352398E0,7.1354904E0,2.8744817E0,2.3088455E-1,0E0,5.024091E0,5.4008274E0,3.6351082E0,6.8670845E-1,3.8527257E0,5.261399E0,2.7225847E0,2.2527313E-1,0E0,0E0,6.2709174E0,6.187504E0,7.8163843E0,4.6312213E0,4.934037E0,5.0262904E0,2.3279905E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,34,36,-1,-1,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5.7252533E1,4.3035382E-3,7.638886E-1,9.813065E-1,5.7252533E1,3.5996723E1,4.171936E-1,4.3936573E1,5.8486794E1,4.0231388E-2,-5.6546368E-2,3.0917042E1,8.615817E1,9.1060466E-1,5.45408E1,5E-1,5E-1,-3.678486E0,-2.8929323E-2,-9.814458E-2,5E-1,2.5881904E-1,2.0036687E-1,5.9864648E-2,8.5373924E1,4.2809454E-1,5E-1,5.445282E-3,-7.248342E-2,5.2541472E-2,-3.618222E-2,1.717533E-1,-6.4677864E-2,9.62716E-2,-2.5307167E-2,-9.8976664E-2,4.5957346E-2,-7.549285E-2,-5.1945793E-3,8.0805086E-2,8.625813E-3,-5.8295157E-2,3.2812055E-2,-2.4579115E-2,4.1142753E-3,1.0768818E-1,-8.222043E-2,5.062672E-2,9.127986E-2,3.508819E-2],"split_indices":[0,2,8,7,7,2,0,7,2,2,0,3,0,2,7,2,11,11,4,0,0,11,9,6,3,2,3,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0615535E3,4.0898567E1,1.02065497E3,2.1973831E1,1.8924734E1,1.8760777E2,8.330472E2,1.3056688E1,8.917142E0,1.790351E1,1.0212256E0,4.848544E1,1.3912233E2,8.235806E2,9.466583E0,8.4731E0,4.5835886E0,2.3225663E0,6.594576E0,1.5617623E0,1.6341747E1,1.6205917E1,3.2279526E1,8.417543E1,5.49469E1,8.110389E2,1.2541719E1,7.5823116E0,1.884271E0,5.337468E0,3.1356318E0,1.2753496E0,3.3082387E0,1.0015894E0,1.3209767E0,1.3547932E0,5.239783E0,6.0090857E0,1.0196831E1,1.7172077E1,1.5107447E1,2.411021E1,6.0065216E1,2.4309309E1,3.0637589E1,8.074111E2,3.6278126E0,9.387904E0,3.1538146E0,4.505418E0,3.076894E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-5.4423255E-3,-6.384002E-1,5.5241063E-3,-7.561023E-1,1.8157291E-1,-1.8008836E-1,3.394379E-2,-2.8208008E-1,-8.502542E-1,4.0285207E-2,-1.217187E-2,-6.66251E-1,-7.481993E-2,1.185139E-1,-3.0990468E-2,-6.849965E-2,4.8689183E-2,-9.122779E-2,-3.7000197E-1,-3.8657635E-1,-9.302476E-2,1.7560942E-1,-2.2930461E-1,-1.358083E-2,2.3609705E-1,-4.902141E-1,-1.2277715E-2,-5.3769667E-2,-5.389245E-4,-8.062757E-3,-8.524283E-2,4.3764513E-2,-6.0771387E-2,9.795122E-3,-4.657299E-2,2.8204678E-2,-1.71551E-2,3.171327E-2,-2.778667E-2,-6.668349E-2,5.051857E-2,2.1630114E-2,-4.891346E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":41,"left_children":[1,3,5,7,9,11,13,15,17,-1,-1,19,21,23,25,-1,-1,-1,27,29,-1,31,33,35,37,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.348827E0,1.8774524E0,5.4983535E0,4.7249317E-1,2.5504464E-1,7.03354E0,4.9666986E0,1.6166325E0,4.4309616E-2,0E0,0E0,1.4499397E0,4.4854383E0,6.103288E0,4.393991E0,0E0,0E0,0E0,1.8961677E-1,1.8713448E0,0E0,9.3801155E0,5.577385E0,8.730087E0,8.744431E0,3.8568673E0,4.139072E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,11,11,12,12,13,13,14,14,18,18,19,19,21,21,22,22,23,23,24,24,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,-1,20,22,24,26,-1,-1,-1,28,30,-1,32,34,36,38,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.4410397E-1,6.261546E-1,-2.8023067E-1,-2.0435398E0,1.5502654E0,2.621471E1,7.638886E-1,2.574218E1,3.015653E-1,4.0285207E-2,-1.217187E-2,6.228961E1,7.14022E1,2.8860441E1,2.4961687E1,-6.849965E-2,4.8689183E-2,-9.122779E-2,3.062668E-1,8.311068E-2,-9.302476E-2,2.9224489E0,-6.8077344E-1,-7.062995E-1,9.946708E-1,-2.6740888E-2,-3.8190868E-1,-5.3769667E-2,-5.389245E-4,-8.062757E-3,-8.524283E-2,4.3764513E-2,-6.0771387E-2,9.795122E-3,-4.657299E-2,2.8204678E-2,-1.71551E-2,3.171327E-2,-2.778667E-2,-6.668349E-2,5.051857E-2,2.1630114E-2,-4.891346E-3],"split_indices":[8,3,7,4,4,0,7,0,3,0,0,2,2,0,0,0,0,0,6,3,0,4,7,4,8,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0572041E3,1.7030453E1,1.0401736E3,1.49608135E1,2.0696394E0,1.3740804E2,9.0276556E2,3.1413276E0,1.1819486E1,1.0068114E0,1.0628281E0,2.350865E1,1.1389938E2,3.9173996E2,5.110256E2,2.1329405E0,1.008387E0,9.670923E0,2.148563E0,1.2611992E1,1.0896658E1,4.340325E1,7.049613E1,1.8490233E2,2.0683763E2,1.9021767E1,4.9200385E2,1.1465356E0,1.0020272E0,8.320542E0,4.29145E0,3.285422E1,1.0549029E1,2.9813917E1,4.0682217E1,6.412063E1,1.2078169E2,1.7899829E2,2.7839336E1,1.6435572E1,2.586196E0,6.7286125E1,4.247177E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-5.413689E-3,-6.1775035E-1,4.667381E-3,-7.393076E-1,1.7117658E-1,-1.5461078E-1,3.2848723E-2,-3.8142195E-1,-9.007962E-2,3.9777588E-2,-1.2938321E-2,-6.541498E-1,-6.586745E-2,1.16450876E-1,-2.7985275E-2,-7.679247E-2,2.6309842E-1,-4.104711E-1,-9.199349E-2,-3.8979456E-1,6.8266056E-3,1.9643415E-2,2.6954967E-1,-6.995366E-3,-3.955081E-1,9.2140056E-2,-5.2088946E-2,-7.08352E-2,6.3279658E-3,1.6548786E-2,-8.9421935E-2,3.0724777E-2,-1.4640537E-2,2.0346357E-2,-2.2411766E-2,3.9700516E-2,-9.768299E-3,-1.5331998E-2,5.076927E-3,-7.003596E-2,1.6408289E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":42,"left_children":[1,3,5,7,9,11,13,15,-1,-1,-1,17,19,21,23,-1,25,27,-1,29,31,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.5050926E0,1.7633576E0,4.661004E0,5.220146E-1,2.6196262E-1,6.8773766E0,4.4897513E0,1.7941519E0,0E0,0E0,0E0,1.1403465E0,3.1503198E0,5.504311E0,3.942394E0,0E0,2.100875E0,2.0251667E0,0E0,7.0151844E0,5.115881E0,1.0298437E1,6.775282E0,4.105494E0,4.825243E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,11,11,12,12,13,13,14,14,16,16,17,17,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,16,-1,-1,-1,18,20,22,24,-1,26,28,-1,30,32,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.4410397E-1,6.261546E-1,-2.3030567E-1,-7.0710677E-1,1.5041918E0,2.5886595E1,7.638886E-1,3.9359027E-1,-9.007962E-2,3.9777588E-2,-1.2938321E-2,6.228961E1,5E-1,3.099409E1,4.7911406E-1,-7.679247E-2,4.7115952E-1,5.720818E-1,-9.199349E-2,6.433841E1,7.14022E1,5.45408E1,9.880227E-1,9.0701383E-1,6.54774E-1,9.2140056E-2,-5.2088946E-2,-7.08352E-2,6.3279658E-3,1.6548786E-2,-8.9421935E-2,3.0724777E-2,-1.4640537E-2,2.0346357E-2,-2.2411766E-2,3.9700516E-2,-9.768299E-3,-1.5331998E-2,5.076927E-3,-7.003596E-2,1.6408289E-2],"split_indices":[8,3,7,10,4,0,7,7,0,0,0,2,11,1,6,0,7,5,0,2,2,2,8,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.052329E3,1.6067879E1,1.0362611E3,1.39771805E1,2.0906987E0,1.5510977E2,8.811513E2,5.391229E0,8.585951E0,1.0075969E0,1.0831017E0,2.2437445E1,1.3267232E2,3.7074057E2,5.1041074E2,3.2505116E0,2.1407175E0,1.3032909E1,9.404534E0,2.3517122E1,1.091552E2,2.2781613E2,1.4292444E2,4.837991E2,2.6611628E1,1.0683593E0,1.0723581E0,7.697649E0,5.335261E0,1.1514082E1,1.2003039E1,3.6530228E1,7.262497E1,1.2997063E2,9.78455E1,1.0604004E2,3.68844E1,1.3646443E2,3.473347E2,1.7064016E1,9.547613E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-5.3448766E-3,-5.537413E-1,4.6293284E-3,-8.973398E-2,-2.0269673E-1,-4.1092798E-1,1.4063523E-2,7.778442E-1,-8.64364E-2,-9.166716E-2,2.3581538E-2,5.5075053E-2,-6.590092E-2,2.1301945E-1,-2.7379918E-1,4.0656987E-1,-8.0388546E-2,-6.270708E-1,6.7399E-2,-2.0817555E-1,6.346251E-2,3.1511784E-2,-6.288034E-2,-1.57542E-2,8.814142E-2,-8.5367896E-2,7.5326286E-2,3.4237944E-2,4.342771E-3,-2.643109E-5,-4.1626867E-2,8.154007E-4,6.308629E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":43,"left_children":[1,3,5,-1,7,9,11,13,-1,-1,15,17,19,-1,21,23,-1,25,27,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.7373486E0,2.0780973E0,4.0466056E0,0E0,7.5233927E0,5.0568113E0,3.3119261E0,7.38272E0,0E0,0E0,4.541584E0,5.6525016E0,6.3158894E0,0E0,9.4569445E-1,2.7520614E0,0E0,4.377737E0,4.3119526E0,7.0657396E0,5.647559E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,5,5,6,6,7,7,10,10,11,11,12,12,14,14,15,15,17,17,18,18,19,19,20,20],"right_children":[2,4,6,-1,8,10,12,14,-1,-1,16,18,20,-1,22,24,-1,26,28,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.206671E-1,2.6131413E1,-8.311706E-1,-8.973398E-2,7.2521194E1,1E0,3.63532E-1,-2.2347833E-1,-8.64364E-2,-9.166716E-2,1.07381344E-1,-7.790238E-1,2.918038E1,2.1301945E-1,1.8092202E-1,3.2622766E-1,-8.0388546E-2,7.9444496E1,-2.0435398E0,5.3526264E1,1E0,3.1511784E-2,-6.288034E-2,-1.57542E-2,8.814142E-2,-8.5367896E-2,7.5326286E-2,3.4237944E-2,4.342771E-3,-2.643109E-5,-4.1626867E-2,8.154007E-4,6.308629E-2],"split_indices":[8,0,7,0,2,11,6,4,0,0,8,3,0,0,6,6,0,2,4,2,9,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0474417E3,1.773666E1,1.029705E3,8.176952E0,9.559709E0,2.1913246E1,1.00779175E3,3.7809877E0,5.7787204E0,9.613744E0,1.2299503E1,6.6635046E2,3.4144125E2,1.2053692E0,2.5756185E0,8.755655E0,3.5438476E0,1.0939749E1,6.554107E2,1.62316E2,1.7912527E2,1.0109336E0,1.5646849E0,4.3070874E0,4.448568E0,9.724781E0,1.2149673E0,5.148871E1,6.03922E2,8.169433E1,8.0621666E1,1.6413979E2,1.4985489E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-5.05228E-3,-3.752319E-1,8.574555E-3,-5.0704524E-2,-8.042272E-1,-1.18970305E-1,3.7031386E-2,-6.0773456E-1,2.4869873E-1,-9.139863E-1,3.9059695E-2,1.294006E-1,-2.0846824E-1,3.0119132E-2,6.0113907E-1,-9.980446E-2,2.3477297E-1,7.6733434E-1,-3.2252488E-1,-2.426525E-2,-9.662884E-2,-2.7820024E-1,3.282707E-1,-3.2694703E-1,5.268847E-2,3.955292E-2,-3.9284986E-1,7.881304E-1,1.7936805E-1,-3.2880392E-2,7.600016E-2,-3.1237362E-2,1.2909888E-1,-6.860375E-2,5.6680977E-2,4.1033298E-2,-7.176632E-2,-4.6026675E-4,8.534727E-2,2.7880517E-3,-4.9099293E-2,8.509399E-2,-2.7348E-3,2.6827587E-3,4.6695657E-2,-5.427264E-2,7.15571E-2,1.2203267E-2,9.005913E-2,-4.658052E-2,7.174756E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":44,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,-1,29,31,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.277024E0,5.130104E0,3.6678307E0,3.8557081E0,2.4459572E0,4.1249423E0,3.202625E0,2.8833802E0,4.7378297E0,2.882824E-1,0E0,4.0997796E0,4.22231E0,3.2756915E0,6.4304256E-1,0E0,1.244484E0,5.0621576E0,2.9482474E0,0E0,0E0,5.364846E0,5.8944826E0,5.4636574E0,2.7880747E0,4.339226E0,3.3648334E0,3.8422108E-1,1.8442968E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,16,16,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,-1,30,32,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5.7252533E1,4.3035382E-3,5E-1,9.741005E-1,5.7252533E1,3.5996723E1,8.429415E-1,2.6201034E-1,5.8486794E1,3.9059695E-2,-5.6546368E-2,3.1681175E1,3.3643448E0,8.5876393E-1,-9.980446E-2,2.6676503E-1,1.8092202E-1,4.387322E-1,-2.426525E-2,-9.662884E-2,5E-1,9.922222E-1,2.0949066E-1,6.7420784E1,7.243951E-1,4.7115862E-1,2.0973608E-1,7.0710677E-1,-3.2880392E-2,7.600016E-2,-3.1237362E-2,1.2909888E-1,-6.860375E-2,5.6680977E-2,4.1033298E-2,-7.176632E-2,-4.6026675E-4,8.534727E-2,2.7880517E-3,-4.9099293E-2,8.509399E-2,-2.7348E-3,2.6827587E-3,4.6695657E-2,-5.427264E-2,7.15571E-2,1.2203267E-2,9.005913E-2,-4.658052E-2,7.174756E-2],"split_indices":[0,2,8,11,7,2,0,8,6,2,0,3,0,4,7,0,6,6,6,0,0,11,7,6,2,3,6,3,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0444824E3,3.614161E1,1.00834076E3,2.121274E1,1.492887E1,1.8335489E2,8.249859E2,7.0558114E0,1.4156929E1,1.3888123E1,1.0407475E0,4.84507E1,1.3490419E2,8.1604E2,8.945899E0,4.695778E0,2.360034E0,7.2400737E0,6.9168553E0,1.4113904E0,1.2476732E1,1.5756839E1,3.269386E1,9.262923E1,4.2274956E1,7.9912305E2,1.6916943E1,5.5962095E0,3.3496897E0,1.31886E0,1.0411738E0,2.496365E0,4.7437086E0,5.072204E0,1.8446512E0,6.1646276E0,9.592212E0,2.061763E1,1.207623E1,2.9547874E1,6.3081352E1,2.9746907E0,3.9300266E1,7.7705023E2,2.2072796E1,1.5351526E1,1.5654151E0,1.1095486E0,4.486661E0,1.5844046E0,1.7652851E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-4.5038327E-3,-3.5410243E-1,7.954637E-3,-4.694567E-2,-7.851905E-1,1.6728714E-2,-3.707531E-1,2.6369393E-1,-5.2183324E-1,-9.014675E-1,3.9493218E-2,1.0774955E-2,9.13303E-1,-6.4828956E-1,1.4842698E-1,-2.3666176E-1,1.0124885E0,2.8988597E-1,-8.375992E-1,-2.3125594E-2,-9.573989E-2,-2.7686374E-3,2.8786993E-1,-2.2254923E-2,1.1879755E0,1.1289839E-3,-8.9549327E-1,4.4462848E-1,-5.074018E-1,-7.020552E-2,5.093626E-2,-3.453681E-2,1.4450732E-1,7.8606196E-2,-2.8725475E-2,-1.8785173E-2,-9.455195E-2,6.3487486E-4,-5.069474E-2,6.6363715E-2,7.0522614E-3,1.4076912E-1,1.6660493E-2,-4.5540936E-2,7.639428E-2,-9.838994E-2,-2.0311518E-2,7.5564355E-2,-2.4243044E-3,-6.8582417E-3,-6.8399735E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":45,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,33,35,-1,-1,37,39,-1,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.5388837E0,4.711296E0,3.350967E0,3.383463E0,2.3945837E0,5.2468495E0,3.3867846E0,5.472224E0,2.559075E0,2.9695702E-1,0E0,3.6759224E0,2.2874198E0,2.419971E0,1.9290195E0,3.5457006E0,3.8963537E0,1.1632891E0,2.9661655E-1,0E0,0E0,4.299575E0,3.6810107E0,0E0,9.726753E-1,2.1424615E0,4.6825314E-1,9.769212E-1,2.0070094E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,34,36,-1,-1,38,40,-1,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5.7252533E1,8.615817E1,7.638886E-1,9.813065E-1,8.5373924E1,3.223534E-1,4.171936E-1,4.3936573E1,5.8486794E1,3.9493218E-2,4.0627525E1,-2.0089056E-1,-3.3929232E-1,-2.5881904E-1,5.45408E1,5E-1,2.5881904E-1,-3.678486E0,-2.3125594E-2,-9.573989E-2,8.305832E1,4.1240208E1,-2.2254923E-2,8.592834E1,-1.8369701E-16,4.4564334E-1,2.635529E0,3.1772726E1,-7.020552E-2,5.093626E-2,-3.453681E-2,1.4450732E-1,7.8606196E-2,-2.8725475E-2,-1.8785173E-2,-9.455195E-2,6.3487486E-4,-5.069474E-2,6.6363715E-2,7.0522614E-3,1.4076912E-1,1.6660493E-2,-4.5540936E-2,7.639428E-2,-9.838994E-2,-2.0311518E-2,7.5564355E-2,-2.4243044E-3,-6.8582417E-3,-6.8399735E-2],"split_indices":[0,2,2,7,7,2,3,7,2,2,0,1,8,3,10,2,11,9,4,0,0,2,1,0,2,10,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0404661E3,3.4859066E1,1.005607E3,2.1003006E1,1.3856058E1,9.837704E2,2.1836624E1,1.2966146E1,8.0368595E0,1.2828223E1,1.0278356E0,9.782861E2,5.4843526E0,1.4067777E1,7.768847E0,8.182452E0,4.783694E0,2.2737741E0,5.7630854E0,1.3835945E0,1.1444629E1,9.3364233E2,4.46437E1,1.1049252E0,4.3794274E0,4.1530094E0,9.914767E0,5.573598E0,2.1952493E0,5.075275E0,3.107178E0,1.2044901E0,3.5792036E0,1.027997E0,1.245777E0,1.2112514E0,4.551834E0,9.1802844E2,1.5613887E1,1.5607271E1,2.903643E1,3.292839E0,1.0865884E0,2.8501835E0,1.3028258E0,8.418775E0,1.4959925E0,2.9831636E0,2.5904343E0,1.028329E0,1.1669202E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-4.166538E-3,-5.4319566E-1,3.339421E-3,8.969061E-2,-7.4837214E-1,-1.2769532E-1,2.6001146E-2,-6.118389E-2,6.8885095E-2,-8.024175E-1,-1.2302295E-2,-5.9822756E-1,-5.379162E-2,9.569229E-2,-3.3985097E-2,-2.686814E-2,-8.8204496E-2,-3.6344618E-1,-8.9501105E-2,-3.5708377E-1,1.3117335E-2,-1.83629E-4,2.4847125E-1,-2.517076E-1,1.5444964E-2,-6.7847826E-2,1.1840878E-2,1.5183823E-2,-8.5010074E-2,2.7408917E-2,-1.2423932E-2,1.523451E-2,-2.073199E-2,5.640742E-2,9.799297E-3,-8.7773435E-2,-5.4334705E-3,2.4217641E-2,-4.9918103E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":46,"left_children":[1,3,5,7,9,11,13,-1,-1,15,-1,17,19,21,23,-1,-1,25,-1,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.205625E0,1.9208751E0,3.0492465E0,2.2658677E0,2.692604E-1,5.2329626E0,3.6626046E0,0E0,0E0,1.8123436E-1,0E0,1.0999413E0,2.6824589E0,5.934987E0,5.0745363E0,0E0,0E0,2.0694752E0,0E0,6.1219234E0,3.9438405E0,7.9284973E0,7.364193E0,1.0731075E1,5.7166405E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,9,9,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,-1,-1,16,-1,18,20,22,24,-1,-1,26,-1,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.4410397E-1,-8.660254E-1,-2.3030567E-1,2.6294086E1,7.004167E-1,2.5886595E1,8.0647993E-1,-6.118389E-2,6.8885095E-2,-2.1050386E0,-1.2302295E-2,6.228961E1,5E-1,3.099409E1,8.9198136E-1,-2.686814E-2,-8.8204496E-2,5.720818E-1,-8.9501105E-2,6.433841E1,7.14022E1,5.45408E1,2.2992286E-1,2.7130238E1,4.9885063E1,-6.7847826E-2,1.1840878E-2,1.5183823E-2,-8.5010074E-2,2.7408917E-2,-1.2423932E-2,1.523451E-2,-2.073199E-2,5.640742E-2,9.799297E-3,-8.7773435E-2,-5.4334705E-3,2.4217641E-2,-4.9918103E-3],"split_indices":[8,10,7,0,3,0,7,0,0,4,0,2,11,1,7,0,0,5,0,2,2,2,6,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0380221E3,1.3275745E1,1.0247463E3,3.3879993E0,9.887746E0,1.5041E2,8.743363E2,1.550928E0,1.8370714E0,8.840556E0,1.0471898E0,1.945414E1,1.3095586E2,4.0417563E2,4.7016064E2,1.7155566E0,7.1249995E0,1.2103692E1,7.3504467E0,2.288471E1,1.0807115E2,2.4894797E2,1.5522768E2,8.623458E1,3.8392606E2,7.072019E0,5.0316725E0,1.1601235E1,1.1283476E1,3.692319E1,7.114796E1,1.4352507E2,1.054229E2,4.922918E1,1.059985E2,1.9844568E1,6.6390015E1,8.530722E1,2.9861884E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-4.2117154E-3,-4.8169678E-1,3.3273466E-3,-1.3409393E-1,-8.73619E-2,-2.2497606E-3,4.836684E-1,-8.506199E-2,9.450727E-1,-3.6468792E-1,4.6421858E-3,4.030947E-2,7.51839E-1,1.979089E-1,-1.4957519E-1,-6.400164E-1,4.6299124E-1,2.2312962E-1,-1.3897665E-2,5.497745E-1,-5.908748E-2,9.038471E-2,2.2762699E-2,3.0733814E-2,-5.2818395E-2,-1.1411235E-2,-9.310568E-2,1.3938679E-1,-2.824319E-2,3.5412133E-2,-5.317532E-2,6.190763E-2,-2.0598888E-3,9.189124E-3,7.044925E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":47,"left_children":[1,3,5,7,-1,9,11,-1,13,15,17,19,21,-1,23,25,27,29,31,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.7256265E0,2.0744355E0,2.7320385E0,8.309733E0,0E0,2.521378E0,1.3613734E0,0E0,5.2162952E0,4.588725E0,4.016897E0,2.083237E0,3.7092352E-1,0E0,6.8845206E-1,2.1213727E0,4.058838E0,7.858074E0,3.8910224E0,1.8632114E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,5,5,6,6,8,8,9,9,10,10,11,11,12,12,14,14,15,15,16,16,17,17,18,18,19,19],"right_children":[2,4,6,8,-1,10,12,-1,14,16,18,20,22,-1,24,26,28,30,32,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.206671E-1,7.2521194E1,3.5996723E1,2.7885567E1,-8.73619E-2,-7.790238E-1,2.039778E0,-8.506199E-2,-2.2347833E-1,7.709227E1,-2.0435398E0,1.7594163E0,3.9300016E-1,1.979089E-1,-8.900276E-1,-7.0710677E-1,1E0,3.1309187E1,-6.830691E-1,2.0057541E-1,-5.908748E-2,9.038471E-2,2.2762699E-2,3.0733814E-2,-5.2818395E-2,-1.1411235E-2,-9.310568E-2,1.3938679E-1,-2.824319E-2,3.5412133E-2,-5.317532E-2,6.190763E-2,-2.0598888E-3,9.189124E-3,7.044925E-2],"split_indices":[8,2,0,1,0,3,4,0,4,2,4,4,6,0,8,10,11,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0335116E3,1.5086981E1,1.01842456E3,8.706857E0,6.3801236E0,1.00771954E3,1.0705037E1,5.35988E0,3.346977E0,1.7835949E1,9.898836E2,4.4682E0,6.236837E0,1.3056642E0,2.0413127E0,1.35539465E1,4.282002E0,7.6563774E1,9.133198E2,2.5438733E0,1.9243267E0,4.273446E0,1.963391E0,1.0103018E0,1.031011E0,5.3245964E0,8.22935E0,1.5173054E0,2.7646966E0,6.56949E1,1.0868873E1,8.610596E0,9.047092E2,1.0450388E0,1.4988345E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"35","size_leaf_vector":"1"}},{"base_weights":[-3.691665E-3,-2.26458E-1,1.2023267E-2,-6.30815E-2,-7.955968E-1,2.8623354E-1,-6.7431065E-3,-7.365038E-1,2.0935668E-2,-8.9059156E-1,1.4126374E-2,8.237866E-1,-1.5229373E-1,-8.550117E-2,4.9082156E-2,-8.784994E-2,-1.73592E-3,-2.073444E-1,5.148749E-1,-1.1453116E-2,-9.5147796E-2,1.1865305E0,9.127959E-2,-4.2663085E-1,5.808138E-1,1.5864523E-2,-2.1609806E-1,4.244468E-1,2.116557E-2,1.9806342E-2,-5.4370403E-2,1.0742694E-1,-2.2752753E-2,1.3424043E-1,-2.1495702E-2,9.6575044E-2,-2.7700514E-2,-5.1461864E-2,5.656704E-2,1.1992512E-1,-1.3276236E-3,-3.9367978E-2,8.207177E-3,-3.739816E-2,3.9659734E-3,2.3850512E-2,1.10904716E-1,-1.9404575E-2,7.317149E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":48,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,-1,-1,29,31,-1,-1,33,35,37,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.6226344E0,6.2903066E0,4.9772615E0,3.074462E0,1.4716587E0,1.4729887E1,3.9871306E0,5.9998083E-1,5.636543E0,5.462704E-1,0E0,7.3290253E0,7.2795963E0,4.9826546E0,5.5528355E0,0E0,0E0,4.7785983E0,6.8012466E0,0E0,0E0,4.3598137E0,3.6019387E0,2.562841E0,3.669559E0,5.79952E0,6.6546707E0,4.405828E0,5.5552053E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,-1,-1,30,32,-1,-1,34,36,38,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5272247E1,6.047431E1,-2.0741408E0,5.720818E-1,9.880227E-1,2.9644674E1,2.8860441E1,5.7014538E1,-1.5492159E0,1.3265605E-1,1.4126374E-2,3.5275012E-1,3.989146E-1,5.421243E1,2.913117E1,-8.784994E-2,-1.73592E-3,7.469721E-1,-2.3714872E-1,-1.1453116E-2,-9.5147796E-2,9.966589E-1,5.421243E1,9.995463E-1,4.4136447E-1,-3.1821367E-1,8.140461E-1,2.8788435E1,3.1283539E1,1.9806342E-2,-5.4370403E-2,1.0742694E-1,-2.2752753E-2,1.3424043E-1,-2.1495702E-2,9.6575044E-2,-2.7700514E-2,-5.1461864E-2,5.656704E-2,1.1992512E-1,-1.3276236E-3,-3.9367978E-2,8.207177E-3,-3.739816E-2,3.9659734E-3,2.3850512E-2,1.10904716E-1,-1.9404575E-2,7.317149E-3],"split_indices":[0,2,4,5,8,1,0,2,4,6,0,6,6,2,1,0,0,7,3,0,0,7,2,7,6,3,8,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0330366E3,6.718916E1,9.658474E2,5.306672E1,1.4122449E1,6.0953617E1,9.048938E2,5.0248623E0,4.8041855E1,1.28671465E1,1.255302E0,2.6990158E1,3.396346E1,3.751301E2,5.297637E2,4.011249E0,1.0136131E0,3.3253544E1,1.4788311E1,1.1456535E0,1.1721493E1,1.763656E1,9.353599E0,2.5019085E1,8.944374E0,2.1169603E2,1.6343408E2,3.56889E1,4.9407477E2,1.5265494E1,1.798805E1,8.178702E0,6.609608E0,1.5909284E1,1.7272764E0,2.291136E0,7.0624633E0,2.3423502E1,1.5955837E0,3.8832955E0,5.061078E0,2.8772028E1,1.82924E2,1.0076681E2,6.266728E1,2.912638E1,6.5625196E0,9.562546E1,3.984493E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-3.3031385E-3,-1.20032676E-1,2.3015993E-2,-4.415097E-1,-3.840924E-2,2.1045792E-1,4.590796E-3,-6.17218E-1,3.864621E-1,2.7943435E-1,-1.4887749E-1,1.2297615E0,-2.440759E-1,-8.745249E-2,1.281888E-2,-3.2602534E-1,-8.6135906E-1,-4.2774093E-1,1.6042539E0,4.00809E-2,7.2953135E-1,-2.5759807E-1,2.2566473E-1,7.5167217E-3,1.4371272E0,-4.249052E-1,9.844847E-1,-6.797426E-2,1.1393293E-1,-7.354371E-2,1.8988473E-2,-9.589943E-2,-4.3175645E-2,-9.201006E-2,7.8156404E-2,2.2933243E-1,1.9887114E-2,2.1664886E-2,-6.8643086E-2,1.0857983E-1,-3.1859484E-2,-8.335042E-3,-8.546684E-2,4.81865E-2,-4.276412E-2,-9.805278E-2,9.993382E-2,1.8307851E-1,4.0940534E-2,6.463658E-2,-5.439061E-2,1.3152876E-1,-3.3337645E-2,-3.173528E-3,-5.8051348E-2,1.4437784E-2,-3.132708E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":49,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,-1,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.1698267E0,4.964142E0,2.9071605E0,5.8167043E0,5.3956075E0,3.5206215E1,5.564338E0,1.9952183E0,7.9515467E0,4.2451353E0,4.692499E0,5.920189E0,1.2179467E1,0E0,6.229249E0,3.5634716E0,2.9085064E-1,3.8038769E0,2.5910492E0,3.6070986E0,5.4676476E0,9.154072E0,4.580794E0,5.291294E0,7.342407E0,6.323618E0,3.5310736E0,7.855955E0,4.4493933E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,-1,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3035382E-3,2.692554E1,1.4154029E-1,9.951053E-1,2.9194508E1,5E-1,-8.311706E-1,2.6201034E-1,-4.2140488E-2,2.8191822E1,8.0328035E-1,2.5254074E1,1.6534035E0,-8.745249E-2,6.1207073E1,8.222193E-1,8.660254E-1,-1.2017653E0,2.6512897E1,-1.8369701E-16,2.2459922E0,-9.882014E-2,-8.6314306E-2,9.025161E-2,2.9740347E1,4.3936573E1,1.24479264E-1,6.013368E1,9.962982E-1,-7.354371E-2,1.8988473E-2,-9.589943E-2,-4.3175645E-2,-9.201006E-2,7.8156404E-2,2.2933243E-1,1.9887114E-2,2.1664886E-2,-6.8643086E-2,1.0857983E-1,-3.1859484E-2,-8.335042E-3,-8.546684E-2,4.81865E-2,-4.276412E-2,-9.805278E-2,9.993382E-2,1.8307851E-1,4.0940534E-2,6.463658E-2,-5.439061E-2,1.3152876E-1,-3.3337645E-2,-3.173528E-3,-5.8051348E-2,1.4437784E-2,-3.132708E-2],"split_indices":[8,0,8,7,1,11,7,6,3,0,5,1,4,0,2,5,9,4,0,10,4,8,3,8,0,2,8,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0298715E3,1.888281E2,8.4104333E2,3.734283E1,1.5148526E2,7.434094E1,7.667024E2,3.1015425E1,6.3274064E0,3.86759E1,1.12809364E2,2.2400873E1,5.194007E1,6.1331306E0,7.605693E2,1.5209775E1,1.580565E1,4.180874E0,2.1465323E0,2.5959927E1,1.2715972E1,8.767241E1,2.5136955E1,3.3995664E0,1.9001307E1,4.5846207E1,6.093866E0,4.2294852E2,3.3762076E2,8.242914E0,6.9668603E0,1.1874634E1,3.9310164E0,3.1411338E0,1.0397402E0,1.0163789E0,1.1301533E0,2.1448889E1,4.5110393E0,9.463355E0,3.252617E0,6.874858E1,1.8923832E1,1.8244585E1,6.89237E0,1.7087301E0,1.6908362E0,1.3173818E1,5.82749E0,4.1405435E0,4.170566E1,4.8726983E0,1.2211677E0,3.960106E2,2.6937935E1,3.1577866E2,2.1842104E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-3.0568263E-3,-2.965045E-1,6.516143E-3,-3.9180543E-2,-7.2848725E-1,2.997734E-1,-3.5599435E-3,2.7555215E-1,-5.0681436E-1,-8.6750937E-1,3.9062716E-2,-1.5517004E-1,6.3245136E-1,-4.5771927E-1,8.839034E-3,5.6725115E-1,-3.8518366E-1,4.039668E-2,-7.31263E-1,-2.112565E-2,-9.3474954E-2,7.2023225E-1,-4.63873E-1,9.50697E-1,-2.6553637E-1,-7.307646E-1,7.961591E-2,3.476253E-2,-1.1442664E-1,1.0868695E-1,-2.6530465E-2,-8.204227E-2,1.7299848E-2,-9.0573594E-2,-4.143252E-3,-3.2146044E-2,1.2682396E-1,-6.849738E-2,5.8048498E-2,-2.4098728E-2,1.0998285E-1,-9.602617E-2,7.224957E-2,-8.48121E-2,6.980307E-3,1.18002765E-1,-5.032515E-2,3.3480912E-2,1.0822027E-3,-9.232837E-2,-7.0353546E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":50,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,-1,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.8912501E0,3.5857756E0,2.9471407E0,3.2942336E0,2.2184806E0,5.1124334E0,5.4374337E0,2.8125262E0,2.1300151E0,2.904234E-1,0E0,4.3327646E0,5.7776623E0,3.8231149E0,3.0084484E0,4.5025764E0,1.2880423E0,0E0,8.7189054E-1,0E0,0E0,2.8334534E0,3.064012E0,2.8407307E0,4.7028656E0,1.6670237E0,6.717825E0,5.5822062E0,5.767517E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,-1,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5.7252533E1,2.4327875E1,2.3899643E1,9.813065E-1,-1.626685E0,2.48166E1,9.158643E-1,-7.0710677E-1,5.8486794E1,3.9062716E-2,-7.0710677E-1,-5.787452E-1,9.209713E-1,4.3194726E-1,7.469721E-1,9.7110003E-1,4.039668E-2,2.404073E1,-2.112565E-2,-9.3474954E-2,9.7505856E-1,2.5625767E1,-6.450845E-2,2.4185198E1,2.3119353E-1,-3.1821367E-1,4.5971794E1,2.5494375E1,1.0868695E-1,-2.6530465E-2,-8.204227E-2,1.7299848E-2,-9.0573594E-2,-4.143252E-3,-3.2146044E-2,1.2682396E-1,-6.849738E-2,5.8048498E-2,-2.4098728E-2,1.0998285E-1,-9.602617E-2,7.224957E-2,-8.48121E-2,6.980307E-3,1.18002765E-1,-5.032515E-2,3.3480912E-2,1.0822027E-3,-9.232837E-2,-7.0353546E-3],"split_indices":[0,2,1,0,7,4,1,8,9,2,0,9,4,7,6,7,8,0,1,0,0,5,0,8,1,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0275325E3,3.1514702E1,9.9601776E2,2.043353E1,1.1081169E1,3.213054E1,9.638872E2,1.2458984E1,7.9745474E0,1.0056701E1,1.0244694E0,1.3796769E1,1.833377E1,2.4661217E1,9.39226E2,8.741366E0,3.7176178E0,1.4185303E0,6.556017E0,1.3195859E0,8.737114E0,3.2493515E0,1.0547418E1,1.3493128E1,4.840643E0,1.6113306E1,8.547911E0,7.766169E2,1.6260912E2,5.194125E0,3.5472414E0,1.8248726E0,1.892745E0,4.9827814E0,1.5732358E0,1.2626379E0,1.9867136E0,8.988569E0,1.5588479E0,1.432259E0,1.2060869E1,2.8586895E0,1.9819534E0,1.4001421E1,2.1118858E0,2.6051164E0,5.942794E0,5.6427345E1,7.201896E2,7.371619E0,1.5523749E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-2.948629E-3,-1.2758353E-1,1.8439943E-2,-5.698577E-1,-6.206651E-2,8.699167E-3,3.9209092E-1,-3.2632253E-1,-8.8466674E-2,-7.962759E-2,-3.4324948E-2,-4.433134E-2,6.870135E-2,5.18753E-1,-1.5799646E-1,-8.253668E-2,-2.3942906E-2,8.454664E-1,-6.571967E-2,-2.4580567E-3,-3.9065674E-1,2.8383266E-2,3.5132614E-1,1.0646753E0,2.5436708E-1,-7.1860963E-1,7.053919E-2,-3.203727E-2,6.9884084E-2,1.3793609E-1,2.9371148E-2,-1.466432E-4,-6.3545376E-2,4.5456877E-3,-1.9355977E-2,-6.818693E-3,-7.066165E-2,9.057652E-2,1.0092926E-3,6.479355E-2,-3.3020244E-3,2.5206512E-2,1.1882465E-1,-3.6377028E-2,5.5195887E-2,-1.1272544E-2,-9.715308E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":51,"left_children":[1,3,5,7,9,11,13,15,-1,-1,17,19,21,23,25,-1,27,29,31,33,35,37,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.7403085E0,4.3275213E0,3.190438E0,1.1913252E0,2.6665978E0,2.7275646E0,1.6337819E0,1.8617858E0,0E0,0E0,3.6046083E0,6.5993104E0,4.5720034E0,2.3758588E0,2.8956013E0,0E0,2.108075E0,9.2025876E-1,4.5746984E0,3.7359855E0,4.953177E0,5.6555734E0,5.734383E0,2.6974773E-1,2.7150598E0,4.2491782E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25],"right_children":[2,4,6,8,10,12,14,16,-1,-1,18,20,22,24,26,-1,28,30,32,34,36,38,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.3030567E-1,2.5886595E1,7.5271255E-1,6.228961E1,-2.344914E-1,5.5601746E-1,3.8908517E-1,3.525261E-1,-8.8466674E-2,-7.962759E-2,-9.882014E-2,4.6735922E-1,7.464998E1,2.7983845E1,3.0246916E1,-8.253668E-2,2.4857971E1,-1.10562116E-1,3.3643448E0,1E0,2.9088387E-1,-3.131547E0,7.930013E1,2.6538143E1,6.047431E1,1.2246469E-16,7.053919E-2,-3.203727E-2,6.9884084E-2,1.3793609E-1,2.9371148E-2,-1.466432E-4,-6.3545376E-2,4.5456877E-3,-1.9355977E-2,-6.818693E-3,-7.066165E-2,9.057652E-2,1.0092926E-3,6.479355E-2,-3.3020244E-3,2.5206512E-2,1.1882465E-1,-3.6377028E-2,5.5195887E-2,-1.1272544E-2,-9.715308E-2],"split_indices":[7,0,3,2,8,8,6,5,0,0,8,8,2,1,0,0,1,3,4,11,6,4,2,1,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0260817E3,1.4956654E2,8.7651514E2,1.8304401E1,1.3126215E2,8.552429E2,2.1272205E1,1.1468771E1,6.835631E0,3.7704298E0,1.27491714E2,4.5413513E2,4.0110782E2,1.7337149E1,3.9350567E0,3.674629E0,7.794142E0,3.4992802E0,1.2399243E2,4.0604803E2,4.808709E1,3.519942E2,4.9113613E1,4.669098E0,1.2668051E1,2.48754E0,1.4475167E0,5.922106E0,1.8720362E0,1.0161101E0,2.4831703E0,1.12327034E2,1.16654E1,3.2525818E2,8.078985E1,2.4400078E1,2.3687014E1,6.1971536E0,3.4579706E2,2.7333715E1,2.1779898E1,1.01754E0,3.6515577E0,4.0445685E0,8.623482E0,1.1583512E0,1.329189E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-2.6250072E-3,-7.742949E-2,6.880258E-4,-7.9391375E-3,2.6838577E-1,-2.5445197E-3,-6.2909675E-1,-6.776381E-2,3.3508086E-1,-7.382647E-3,4.6943715E-1,3.1628016E-2,-8.1928474E-1,9.713193E-1,1.0590067E-1,7.245925E-4,-1.4203903E-2,9.5892735E-3,6.932278E-2,-2.1203957E-2,-9.2715345E-2,-1.9827629E-2,1.3769521E-1,-6.4136885E-2,5.0552268E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":52,"left_children":[1,-1,3,5,7,9,11,-1,13,15,17,-1,19,21,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.6211567E0,0E0,2.361655E0,3.3182988E0,2.2414675E0,2.2486556E0,1.7921407E0,0E0,4.343419E0,1.9200933E0,7.688029E-1,0E0,2.866068E-1,4.046026E0,7.353928E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,12,12,13,13,14,14],"right_children":[2,-1,4,6,8,10,12,-1,14,16,18,-1,20,22,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-7.742949E-2,7.5271255E-1,8.875895E1,2.7096775E1,3.5996723E1,-9.9887973E-1,-6.776381E-2,2.848865E1,2.1730204E0,2.9701063E-1,3.1628016E-2,-7.0710677E-1,5E-1,3.0246916E1,7.245925E-4,-1.4203903E-2,9.5892735E-3,6.932278E-2,-2.1203957E-2,-9.2715345E-2,-1.9827629E-2,1.3769521E-1,-6.4136885E-2,5.0552268E-2],"split_indices":[8,0,3,2,0,0,7,0,1,4,3,0,9,11,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0240555E3,3.3829756E0,1.0206726E3,9.8974615E2,3.0926458E1,9.822199E2,7.526268E0,1.4334671E0,2.9492992E1,9.73228E2,8.9918785E0,1.1494838E0,6.3767843E0,6.952785E0,2.2540207E1,8.78714E2,9.451405E1,3.9039755E0,5.0879035E0,1.4092355E0,4.967549E0,1.9220284E0,5.030757E0,7.6431084E0,1.4897098E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"25","size_leaf_vector":"1"}},{"base_weights":[-2.438626E-3,-1.0631572E-1,2.0749323E-2,-4.0570387E-1,-3.477235E-2,-2.7667206E-2,7.9291806E-2,-5.8242106E-1,3.6498746E-1,2.4163613E-1,-1.3047945E-1,-6.1062984E-2,4.1146082E-1,1.9012445E-1,-2.3857044E-2,-2.935946E-1,-8.397362E-1,-4.0583616E-1,1.4285775E0,6.2133048E-2,8.137274E-1,-2.3674272E-1,2.2432075E-1,-2.9183056E-2,-5.0982994E-1,-9.8626055E-2,8.996632E-1,-8.234269E-2,3.7967563E-1,4.9139148E-1,-8.580401E-2,6.418697E-3,-8.744556E-2,-9.4694905E-2,-3.9465185E-2,-8.884068E-2,6.872979E-2,2.0201743E-1,1.7340126E-2,6.838142E-2,-1.54755805E-2,-2.2208743E-2,1.1715659E-1,-7.2477064E-3,-7.943893E-2,4.502031E-2,-3.960332E-2,3.385268E-3,-2.7454907E-2,-1.4178738E-1,-2.9064734E-2,7.400935E-2,-4.8029892E-2,1.2395443E-1,3.6857266E-2,2.7872805E-2,-3.3967692E-2,2.7943606E-2,7.677965E-2,5.9868097E-2,-6.97877E-2,-7.609688E-2,-5.8770697E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":53,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.46812E0,3.9910126E0,2.3767817E0,5.1116734E0,4.0529904E0,6.760496E0,4.34292E0,1.9568043E0,6.5845876E0,4.0005074E0,4.334836E0,6.1039686E0,8.204248E0,9.48469E0,6.3442283E0,3.2785618E0,3.4880352E-1,3.2615848E0,2.0993633E0,4.300538E0,3.7216735E0,7.992359E0,3.9179685E0,6.2019854E0,5.2217436E0,5.7457614E0,2.56674E0,7.1486278E0,3.9920006E0,3.1406097E0,3.1877997E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3035382E-3,2.692554E1,6.1207073E1,9.951053E-1,2.913117E1,9.9325687E-1,7.131634E1,2.6201034E-1,-4.2140488E-2,2.848865E1,8.0328035E-1,6.013368E1,3.050852E-1,3.1144794E1,1.466579E-1,-7.2055995E-1,8.660254E-1,-1.2017653E0,2.6512897E1,-2.8757261E-2,-1.994776E-2,-9.882014E-2,-8.6314306E-2,3.1077805E-1,-8.660254E-1,-1.4795592E0,5E-1,-2.3714872E-1,4.1781852E-1,8.592834E1,-2.9004998E0,6.418697E-3,-8.744556E-2,-9.4694905E-2,-3.9465185E-2,-8.884068E-2,6.872979E-2,2.0201743E-1,1.7340126E-2,6.838142E-2,-1.54755805E-2,-2.2208743E-2,1.1715659E-1,-7.2477064E-3,-7.943893E-2,4.502031E-2,-3.960332E-2,3.385268E-3,-2.7454907E-2,-1.4178738E-1,-2.9064734E-2,7.400935E-2,-4.8029892E-2,1.2395443E-1,3.6857266E-2,2.7872805E-2,-3.3967692E-2,2.7943606E-2,7.677965E-2,5.9868097E-2,-6.97877E-2,-7.609688E-2,-5.8770697E-3],"split_indices":[8,0,2,7,1,7,2,6,3,1,5,2,4,1,6,4,9,4,0,4,3,8,3,3,9,4,11,3,6,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.02275446E3,1.8598705E2,8.3676746E2,3.4971355E1,1.5101569E2,4.5828134E2,3.7848608E2,2.864698E1,6.3243766E0,3.8448658E1,1.12567024E2,4.2669226E2,3.1589092E1,1.820411E2,1.9644499E2,1.4505784E1,1.4141195E1,4.025427E0,2.29895E0,3.0109814E1,8.338845E0,8.687928E1,2.5687746E1,3.9938538E2,2.7306883E1,1.5838543E1,1.5750549E1,7.491762E1,1.0712349E2,2.0339252E1,1.7610573E2,9.527075E0,4.978709E0,1.0487398E1,3.653797E0,2.9225392E0,1.1028877E0,1.1482674E0,1.1506824E0,7.2308307E0,2.2878984E1,2.2385128E0,6.1003323E0,6.798341E1,1.8895866E1,1.9032091E1,6.655655E0,3.1843887E2,8.094648E1,4.246266E0,2.3060617E1,4.659748E0,1.1178795E1,8.790774E0,6.9597754E0,3.1140554E1,4.3777065E1,8.650254E1,2.0620949E1,1.9111694E1,1.2275586E0,5.7345433E0,1.7037119E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"63","size_leaf_vector":"1"}},{"base_weights":[-2.292581E-3,-2.7384102E-1,6.2140175E-3,-4.8146337E-2,-6.9460386E-1,2.744882E-1,-3.038113E-3,-5.614243E-1,2.1227549E-1,-8.432851E-1,3.4192633E-2,-1.3707715E-1,5.6737626E-1,-4.184684E-1,8.114058E-3,-9.6090384E-2,2.096026E-1,6.413369E-1,-2.994603E-1,-1.8805105E-2,-9.188497E-2,-8.8813573E-1,2.0823541E-1,7.8394586E-1,-5.023918E-1,-6.7529076E-1,7.168694E-2,-8.1013453E-1,1.187071E-2,-3.1470604E-2,6.861126E-2,-3.1025698E-2,1.06841125E-1,-6.47989E-2,4.868917E-2,-2.4639761E-2,-9.960922E-2,6.274898E-2,-7.39541E-2,9.3897425E-2,-7.978927E-2,-8.499737E-2,1.4545606E-2,-7.896694E-2,8.941376E-3,1.03772275E-1,-4.7142386E-2,-1.3784455E-1,2.3020105E-2,2.5817124E-2,-4.767221E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":54,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,-1,29,31,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.360632E0,2.9143279E0,2.461004E0,2.9634135E0,1.9470096E0,4.0622053E0,4.4468913E0,2.4919114E0,3.4508054E0,3.075323E-1,0E0,3.9580197E0,4.912966E0,3.2071915E0,2.8837345E0,0E0,1.0551071E0,3.7417238E0,2.357419E0,0E0,0E0,8.517027E-2,4.7460723E0,4.8230686E0,1.0003694E0,1.5191841E0,5.4899926E0,2.85227E0,3.819383E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,16,16,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,-1,30,32,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5.7252533E1,2.4327875E1,5E-1,9.911141E-1,-1.626685E0,2.48166E1,8.429415E-1,2.6201034E-1,5.8486794E1,3.4192633E-2,-8.660254E-1,-3.323579E-1,9.209713E-1,3.8152397E1,-9.6090384E-2,2.6676503E-1,1.8092202E-1,4.387322E-1,-1.8805105E-2,-9.188497E-2,-2.4940574E0,4.6805653E1,2.7590987E-1,3.9157242E-1,2.3119353E-1,-3.1821367E-1,1.9391666E-1,4.54233E1,-3.1470604E-2,6.861126E-2,-3.1025698E-2,1.06841125E-1,-6.47989E-2,4.868917E-2,-2.4639761E-2,-9.960922E-2,6.274898E-2,-7.39541E-2,9.3897425E-2,-7.978927E-2,-8.499737E-2,1.4545606E-2,-7.896694E-2,8.941376E-3,1.03772275E-1,-4.7142386E-2,-1.3784455E-1,2.3020105E-2,2.5817124E-2,-4.767221E-4],"split_indices":[0,2,1,11,7,4,1,8,6,2,0,10,4,7,2,0,6,6,6,0,0,4,2,3,4,4,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.02020245E3,3.0040947E1,9.901615E2,2.0278244E1,9.762703E0,3.205414E1,9.5810736E2,6.4364696E0,1.3841775E1,8.701048E0,1.0616549E0,1.3548213E1,1.8505926E1,2.4093025E1,9.3401434E2,4.0775633E0,2.358906E0,7.391317E0,6.450458E0,1.2604111E0,7.4406366E0,3.77203E0,9.776183E0,1.5612441E1,2.8934853E0,1.5561627E1,8.531397E0,3.2875576E0,9.307268E2,1.2847944E0,1.0741116E0,2.3743627E0,5.0169544E0,4.5914025E0,1.8590559E0,1.015839E0,2.756191E0,7.012221E0,2.763962E0,1.4589043E1,1.0233984E0,1.680091E0,1.2133942E0,1.3508485E1,2.0531418E0,2.7425315E0,5.788866E0,1.9159293E0,1.3716282E0,5.797492E1,8.727519E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-2.5548455E-3,-2.0349573E-2,1.256596E-1,-7.4997633E-3,-3.168061E-1,4.7666505E-1,2.4972258E-3,1.51901E-1,-4.027966E-2,-4.1080967E-1,1.22512855E-1,-4.5113364E-1,5.6030196E-1,9.8525934E-2,-8.80435E-1,-2.1768236E-1,2.6954263E-1,7.2372176E-2,-9.004164E-2,-1.5435864E-1,-1.3634063E0,2.5313506E-2,-9.8148696E-2,8.510496E-1,3.2509598E-1,1.6127875E-2,6.4340764E-1,-1.3938425E0,3.513057E-1,-3.6566254E-2,8.8799566E-2,-1.6344788E-3,3.8099572E-2,-6.927998E-2,9.924755E-3,4.0418175E-3,-1.6859146E-2,-4.6535075E-2,5.9811663E-2,-1.7226221E-2,-1.6370808E-1,1.091037E-1,2.4815176E-2,-3.4381304E-2,6.1703224E-2,7.256674E-2,-8.143677E-3,9.052386E-2,-4.4312645E-3,-1.6904889E-1,-2.2781847E-2,-3.329875E-2,7.637919E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":55,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,33,35,37,39,-1,-1,41,43,45,47,49,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.330039E0,3.4134014E0,5.3796196E0,4.502046E0,5.8992367E0,2.7610903E0,7.984047E0,6.448844E0,4.011666E0,8.544247E0,0E0,1.4537382E0,1.7815638E0,3.801653E0,6.331178E0,6.2215643E0,3.5727587E0,4.5818024E0,5.0896993E0,7.14969E0,2.154294E0,0E0,0E0,1.5872631E0,3.7771616E0,5.235705E0,2.0437698E0,1.9396658E0,1.2468269E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,34,36,38,40,-1,-1,42,44,46,48,50,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.3476425E1,2.9224489E0,1E0,1.2395207E-1,9.966589E-1,1.2824263E-1,9.880227E-1,2.845517E1,2.158595E-1,6.016241E-1,1.22512855E-1,7.737807E1,3.4152542E1,9.3536794E-1,4.071323E-1,9.8594815E-1,2.158595E-1,-7.513765E-1,-2.0782702E-1,-1.7213356E-2,4.6336895E1,2.5313506E-2,-9.8148696E-2,7.611043E-1,4.0519643E-1,7.117049E1,3.9300016E-1,7.993263E1,7.651066E1,-3.6566254E-2,8.8799566E-2,-1.6344788E-3,3.8099572E-2,-6.927998E-2,9.924755E-3,4.0418175E-3,-1.6859146E-2,-4.6535075E-2,5.9811663E-2,-1.7226221E-2,-1.6370808E-1,1.091037E-1,2.4815176E-2,-3.4381304E-2,6.1703224E-2,7.256674E-2,-8.143677E-3,9.052386E-2,-4.4312645E-3,-1.6904889E-1,-2.2781847E-2,-3.329875E-2,7.637919E-2],"split_indices":[0,4,11,5,7,6,8,0,6,7,0,2,0,8,3,7,6,3,3,7,2,0,0,8,4,2,6,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0191358E3,8.9566833E2,1.2346745E2,8.5944147E2,3.622691E1,3.1324438E1,9.214301E1,1.4597348E2,7.1346796E2,3.4836678E1,1.3902321E0,2.2269166E0,2.909752E1,8.390574E1,8.237273E0,3.5040314E1,1.1093317E2,2.1846028E2,4.950077E2,2.836303E1,6.473646E0,1.1811476E0,1.045769E0,1.1841477E1,1.7256044E1,7.377842E1,1.0127316E1,5.721051E0,2.5162215E0,3.1494488E1,3.5458274E0,3.1355856E1,7.957731E1,6.571927E0,2.1188835E2,1.8621579E2,3.087919E2,2.0338757E1,8.024274E0,1.5139132E0,4.959733E0,7.890827E0,3.9506502E0,5.18896E0,1.2067084E1,8.140291E0,6.563813E1,7.1057177E0,3.021599E0,4.2021894E0,1.5188619E0,1.0188059E0,1.4974157E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"53","size_leaf_vector":"1"}},{"base_weights":[-2.1970812E-3,-1.2909925E-2,2.0141447E-1,-1.216877E-1,1.1046896E-2,5.568562E-1,2.03579E-2,-5.529365E-1,-8.293105E-2,2.2778898E-2,-2.2696751E-1,-6.552879E-2,6.771388E-1,3.3511928E-1,-2.8505972E-1,2.4851313E-2,-8.924721E-2,3.1088966E-1,-1.2510113E-1,4.1831327E-3,2.586928E-1,-3.9986774E-1,3.4306118E-1,9.1347843E-1,2.0527726E-2,3.6502E-2,1.17510475E-1,-6.7932653E-1,4.862716E-1,-7.561617E-2,7.458528E-2,6.0326558E-2,-4.0489838E-2,-8.409273E-2,-7.8049446E-3,8.692826E-2,-1.5743926E-5,1.4787197E-2,1.2877542E-1,8.863688E-3,-7.467419E-2,8.08207E-2,-4.64566E-2,-1.7534254E-2,1.05426125E-1,-6.0312897E-2,5.3825796E-2,-5.259315E-2,5.5164378E-2,-1.2566704E-1,5.1420596E-3,-3.9709713E-2,7.434883E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":56,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,23,25,27,29,-1,31,33,35,37,39,41,43,45,47,-1,49,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.2218509E0,2.5226262E0,3.265307E0,2.8741124E0,2.22176E0,2.9434285E0,3.4381244E0,2.8137517E0,2.7205772E0,3.321708E0,3.8213193E0,0E0,2.477972E0,4.367488E0,5.861323E0,4.077714E0,0E0,3.572882E0,4.8709526E0,2.6402705E0,6.118841E0,5.0044084E0,3.8457365E0,1.994811E0,2.029888E0,4.347409E0,0E0,5.318304E0,1.8254912E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,24,26,28,30,-1,32,34,36,38,40,42,44,46,48,-1,50,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0627525E1,4.3035382E-3,4.1240208E1,3.4561232E-1,2.9224489E0,-4.486331E-1,2.9755145E-1,-9.6793777E-1,1.3265605E-1,5.241272E-1,3.261837E1,-6.552879E-2,1.2344109E0,2.4825178E-1,4.270487E1,-9.8867756E-1,-8.924721E-2,1.2373729E-1,1.5151279E-1,-9.951053E-1,9.951053E-1,5.6487984E1,7.1680595E1,1E0,2.0973608E-1,3.399529E-1,1.17510475E-1,8.085229E1,-8.660254E-1,-7.561617E-2,7.458528E-2,6.0326558E-2,-4.0489838E-2,-8.409273E-2,-7.8049446E-3,8.692826E-2,-1.5743926E-5,1.4787197E-2,1.2877542E-1,8.863688E-3,-7.467419E-2,8.08207E-2,-4.64566E-2,-1.7534254E-2,1.05426125E-1,-6.0312897E-2,5.3825796E-2,-5.259315E-2,5.5164378E-2,-1.2566704E-1,5.1420596E-3,-3.9709713E-2,7.434883E-2],"split_indices":[1,8,1,7,4,4,6,7,6,3,0,0,4,6,1,7,0,3,6,7,7,2,2,11,3,3,0,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.01641736E3,9.665023E2,4.9915077E1,1.7370445E2,7.9279785E2,1.614479E1,3.3770287E1,1.3229684E1,1.6047478E2,7.564175E2,3.638039E1,1.0559165E0,1.5088874E1,1.6582857E1,1.7187431E1,5.239845E0,7.9898386E0,1.4905167E1,1.4556961E2,7.0209314E2,5.4324326E1,2.81427E1,8.237688E0,1.08076E1,4.281274E0,1.3003522E1,3.5793343E0,1.1452668E1,5.734762E0,2.4918375E0,2.7480073E0,1.0694156E1,4.211011E0,7.9376025E0,1.37632E2,2.5102868E0,6.995828E2,5.0075348E1,4.248976E0,1.1994812E1,1.6147888E1,5.2266984E0,3.0109894E0,1.2093039E0,9.598296E0,1.8671547E0,2.414119E0,6.2064047E0,6.7971177E0,5.9958224E0,5.4568458E0,1.1706238E0,4.5641384E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"53","size_leaf_vector":"1"}},{"base_weights":[-1.8881715E-3,-4.916909E-2,4.097972E-2,-1.1496104E-2,-3.713707E-1,2.8578304E-2,6.4727795E-1,1.6867107E-1,-6.60222E-2,-6.1109734E-1,-1.5917078E-2,5.1290095E-1,1.4707415E-2,8.586901E-1,-2.2992855E-2,2.7929094E-1,-3.0164492E-1,-3.241903E-1,-1.3514633E-2,3.7366962E-1,-7.0777315E-1,4.4275445E-1,-8.4691006E-1,9.32713E-1,-3.144052E-1,-1.8444109E-1,5.446326E-2,1.5939038E-1,2.544129E-1,1.6275018E-2,8.052589E-2,-6.625395E-2,5.2928723E-2,-6.367212E-2,-1.0105984E-2,3.446349E-2,-5.8829295E-3,6.4498566E-2,-5.1665604E-3,-3.568207E-2,-9.416885E-2,9.909915E-2,-2.5880551E-2,5.7177406E-2,-1.4623284E-1,-2.5151705E-3,1.20404445E-1,-6.475753E-2,4.182596E-2,-7.416884E-3,-6.9305696E-2,8.0309875E-2,3.973187E-3,-6.144145E-2,9.378196E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":57,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.059748E0,5.8612914E0,3.9892373E0,4.2714643E0,4.298074E0,3.5085137E0,2.170237E0,5.340793E0,4.518332E0,3.1362915E0,8.527419E0,5.3440886E0,4.046587E0,3.4965897E0,0E0,4.914679E0,6.2642145E0,3.8648677E0,4.5368004E0,4.200406E-1,1.9473333E0,5.809864E0,7.777418E0,2.6030989E0,1.6483982E0,4.719822E0,4.663645E0,0E0,4.145179E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,-1,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.5601746E-1,4.6735922E-1,4.9060223E-1,5.1510418E1,3.0102436E1,-2.7027233E0,2.039778E0,3.528256E-1,2.750313E1,-9.659258E-1,7.3771774E1,9.158643E-1,2.6068876E1,4.9385712E-1,-2.2992855E-2,1.0741035E0,2.8942356E1,9.209713E-1,2.9061413E1,-1.1130766E0,4.6336895E1,3.062668E-1,-8.660254E-1,6.776148E-1,-4.8166803E-1,2.578542E1,2.6019388E1,1.5939038E-1,4.4822934E-1,1.6275018E-2,8.052589E-2,-6.625395E-2,5.2928723E-2,-6.367212E-2,-1.0105984E-2,3.446349E-2,-5.8829295E-3,6.4498566E-2,-5.1665604E-3,-3.568207E-2,-9.416885E-2,9.909915E-2,-2.5880551E-2,5.7177406E-2,-1.4623284E-1,-2.5151705E-3,1.20404445E-1,-6.475753E-2,4.182596E-2,-7.416884E-3,-6.9305696E-2,8.0309875E-2,3.973187E-3,-6.144145E-2,9.378196E-2],"split_indices":[8,8,6,2,0,4,4,3,0,9,2,8,1,6,0,4,0,7,1,4,2,6,10,8,3,1,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.01424524E3,4.822277E2,5.320175E2,4.3267358E2,4.9554092E1,5.2237976E2,9.637785E0,1.00036354E2,3.3263724E2,2.9165176E1,2.0388916E1,1.354261E1,5.0883713E2,7.7831144E0,1.8546698E0,8.131659E1,1.8719765E1,5.5344826E1,2.7729242E2,2.351093E0,2.6814085E1,1.3438599E1,6.9503164E0,8.8993E0,4.643311E0,8.406948E1,4.2476767E2,2.772346E0,5.010769E0,6.7638985E1,1.3677602E1,1.3192561E1,5.527203E0,2.228185E1,3.3062973E1,3.0401934E1,2.4689049E2,1.1201477E0,1.2309453E0,1.1734212E1,1.5079873E1,7.3120284E0,6.12657E0,2.124277E0,4.82604E0,2.1646988E0,6.7346005E0,3.2716887E0,1.3716222E0,7.0031815E1,1.4037668E1,7.164381E0,4.1760327E2,2.250553E0,2.7602158E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-1.563176E-3,-3.3480304E-1,4.5076823E-3,-5.934973E-1,4.108376E-1,1.8246809E-1,-1.0879662E-2,-8.617213E-2,-8.828778E-1,1.2365035E-1,-2.8541684E-1,3.3072683E-1,-3.2883528E-1,2.6432854E-1,-2.4192212E-2,-6.980515E-2,5.924358E-1,-2.112E-1,-1.1980485E-1,-9.1024406E-2,5.8128864E-2,-9.288247E-2,5.6135064E-1,-5.4324573E-1,4.0723243E-1,-2.4757522E-1,4.6305758E-1,-7.353143E-1,-1.7037284E-2,1.1186322E-1,-3.2307904E-2,-7.173208E-2,3.747838E-2,-2.0021575E-2,9.527307E-2,8.0684505E-2,4.0580067E-3,-8.939266E-2,-1.55012775E-2,-3.8780995E-2,1.154802E-1,-5.241269E-2,6.9564186E-2,7.632452E-2,-9.490161E-3,-9.055975E-2,-1.5632065E-2,-2.7490899E-2,-3.3825845E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":58,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,-1,29,31,-1,-1,-1,33,35,37,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.051337E0,3.7432604E0,2.729626E0,1.9613442E0,3.3789752E0,6.1223164E0,3.3688288E0,2.9667485E0,1.5948477E0,0E0,2.5155919E0,6.108785E0,3.1146035E0,4.4310656E0,4.4462843E0,0E0,2.026501E0,1.4556917E0,0E0,0E0,0E0,2.7397196E0,5.1173716E0,1.8527155E0,3.2455726E0,3.6297038E0,5.2501106E0,7.167516E-1,3.0576506E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,16,16,17,17,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,-1,30,32,-1,-1,-1,34,36,38,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.790238E-1,7.72457E1,-2.0435398E0,-7.0710677E-1,1E0,1E0,-5.219642E-1,2.6068876E1,-3.2323802E0,1.2365035E-1,4.520722E-1,2.5272247E1,9.979172E-1,5E-1,2.4129614E1,-6.980515E-2,3.0511335E1,5.2707773E-1,-1.1980485E-1,-9.1024406E-2,5.8128864E-2,-2.1050386E0,2.8495266E1,2.2611569E-1,-3.044823E0,-2.5881904E-1,7.498264E-1,8.660254E-1,-1.5492159E0,1.1186322E-1,-3.2307904E-2,-7.173208E-2,3.747838E-2,-2.0021575E-2,9.527307E-2,8.0684505E-2,4.0580067E-3,-8.939266E-2,-1.55012775E-2,-3.8780995E-2,1.154802E-1,-5.241269E-2,6.9564186E-2,7.632452E-2,-9.490161E-3,-9.055975E-2,-1.5632065E-2,-2.7490899E-2,-3.3825845E-4],"split_indices":[3,2,4,10,11,11,3,1,4,0,8,0,7,11,0,0,1,8,0,0,0,4,0,8,4,10,8,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.01223535E3,1.7141825E1,9.950935E2,1.287796E1,4.2638645E0,7.8329155E1,9.1676434E2,5.148932E0,7.7290277E0,1.5956718E0,2.6681926E0,6.099583E1,1.7333326E1,4.1430138E1,8.753342E2,2.6925197E0,2.4564126E0,3.0018115E0,4.7272162E0,1.5212529E0,1.1469396E0,2.171219E1,3.928364E1,1.3626114E1,3.7072122E0,1.1517236E1,2.9912903E1,7.7056527E0,8.6762854E2,1.4189837E0,1.0374289E0,1.4904029E0,1.5114086E0,2.0424149E1,1.2880416E0,2.6324692E1,1.2958949E1,6.4749265E0,7.151187E0,2.0297773E0,1.6774348E0,9.249576E0,2.2676597E0,1.9209875E1,1.0703028E1,5.5185485E0,2.1871045E0,4.2669712E1,8.2495886E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-1.4897157E-3,4.9046637E-3,-3.0491325E-1,-6.610018E-4,8.606914E-1,-5.831852E-1,1.6853492E-1,-5.5977154E-1,4.1722558E-3,-1.8401066E-2,1.0877731E0,2.8782118E-2,-8.3624774E-1,4.494621E-1,-4.773636E-1,-8.636385E-2,4.9593907E-2,-6.1156196E-3,2.2701031E-1,1.2753031E0,1.7172024E-2,-4.0395257E-1,6.740774E-2,-9.328786E-1,-1.36718275E-2,7.27055E-1,1.4218282E-3,-9.580009E-3,-6.211204E-2,2.3725173E-4,-5.751651E-2,5.8998E-2,2.3976746E-3,2.9209087E-2,1.522027E-1,-7.495909E-2,2.3047289E-2,-1.0757623E-1,-2.436252E-2,-3.0418138E-3,1.14913486E-1,-6.6392206E-2,6.384785E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":59,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,-1,-1,29,31,33,-1,35,-1,37,-1,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.9662232E0,4.728933E0,2.853894E0,2.670363E0,1.7220783E0,2.0988727E0,1.76023E0,3.145156E0,2.2476983E0,0E0,7.1114874E-1,1.6367005E0,5.153856E-1,8.013562E-1,1.0872567E-1,0E0,0E0,4.529998E0,3.1743903E0,6.0794973E-1,0E0,9.512217E-1,0E0,5.4401875E-1,0E0,1.3078952E0,1.8946978E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,17,17,18,18,19,19,21,21,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,-1,-1,30,32,34,-1,36,-1,38,-1,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.615817E1,8.5373924E1,3.223534E-1,-8.311706E-1,-2.0089056E-1,-3.3929232E-1,-2.5881904E-1,8.464167E1,4.0627525E1,-1.8401066E-2,8.592834E1,-1.8369701E-16,4.4564334E-1,2.635529E0,-9.587178E-1,-8.636385E-2,4.9593907E-2,8.305832E1,4.1240208E1,-7.0710677E-1,1.7172024E-2,-4.187959E-1,6.740774E-2,6.994583E-1,-1.36718275E-2,1.9322288E0,7.7913755E-1,-9.580009E-3,-6.211204E-2,2.3725173E-4,-5.751651E-2,5.8998E-2,2.3976746E-3,2.9209087E-2,1.522027E-1,-7.495909E-2,2.3047289E-2,-1.0757623E-1,-2.436252E-2,-3.0418138E-3,1.14913486E-1,-6.6392206E-2,6.384785E-2],"split_indices":[2,2,3,7,8,3,10,2,1,0,2,10,6,4,7,0,0,2,1,10,0,4,0,7,0,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.01163916E3,9.9172327E2,1.9915844E1,9.86308E2,5.415291E0,1.239741E1,7.518433E0,7.469082E0,9.788389E2,1.0007865E0,4.4145045E0,3.8861094E0,8.511301E0,5.4514904E0,2.0669427E0,5.9410076E0,1.5280741E0,9.3657227E2,4.2266644E1,3.3388238E0,1.0756805E0,2.5500505E0,1.3360589E0,7.1851816E0,1.3261197E0,2.9814959E0,2.4699945E0,1.021651E0,1.0452917E0,9.237886E2,1.2783715E1,1.447801E1,2.7788633E1,1.1078476E0,2.230976E0,1.5332179E0,1.0168325E0,5.486959E0,1.6982224E0,1.3989122E0,1.5825837E0,1.1875463E0,1.2824483E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-1.344204E-3,-5.8432277E-3,4.173471E-1,-1.3448423E-2,2.4172357E-1,1.2324421E-2,6.8896407E-1,-6.046653E-3,-4.0412435E-1,3.8013658E-1,-2.813854E-1,5.1763135E-1,-5.7940047E-2,8.618866E-2,1.6195817E-2,-1.0699315E-2,7.3446816E-1,1.4040048E-1,-5.962328E-1,5.5543315E-1,-3.451088E-1,-7.2079235E-1,5.287413E-2,1.0784506E-2,6.583509E-2,-5.1057674E-2,-6.645675E-4,8.16495E-4,9.797302E-2,-3.1947907E-2,7.854675E-2,-7.1251504E-2,3.8551323E-2,7.519723E-2,-2.5860308E-2,4.4172075E-2,-6.757752E-2,-9.730265E-2,-9.793459E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":60,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,-1,-1,-1,25,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.9072351E0,1.8887451E0,1.1756748E0,2.8098285E0,2.271851E0,1.89633E0,4.4592237E-1,3.2997906E0,1.9737556E0,3.2516465E0,2.8126612E0,1.2552285E-1,0E0,0E0,0E0,1.9226003E0,1.0572598E0,1.8888739E0,1.8211513E0,3.356986E0,1.677959E0,6.6694856E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,15,15,16,16,17,17,18,18,19,19,20,20,21,21],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,-1,-1,-1,26,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,7.5271255E-1,2.039778E0,8.615817E1,3.8908517E-1,1.7594163E0,3.9300016E-1,8.5373924E1,-9.741005E-1,9.817894E-1,4.611127E-1,-7.0710677E-1,-5.7940047E-2,8.618866E-2,1.6195817E-2,-8.311706E-1,-7.0710677E-1,1.8940579E0,9.7110003E-1,7.131634E1,-8.660254E-1,3.261837E1,5.287413E-2,1.0784506E-2,6.583509E-2,-5.1057674E-2,-6.645675E-4,8.16495E-4,9.797302E-2,-3.1947907E-2,7.854675E-2,-7.1251504E-2,3.8551323E-2,7.519723E-2,-2.5860308E-2,4.4172075E-2,-6.757752E-2,-9.730265E-2,-9.793459E-3],"split_indices":[0,3,4,2,6,4,6,2,7,3,6,10,0,0,0,7,10,4,8,2,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.01019836E3,1.00043427E3,9.764066E0,9.715346E2,2.8899643E1,4.33913E0,5.424936E0,9.5446674E2,1.7067907E1,2.3068977E1,5.830666E0,2.408011E0,1.9311188E0,3.6062157E0,1.81872E0,9.4948663E2,4.980083E0,4.521377E0,1.254653E1,1.8767012E1,4.3019657E0,3.851767E0,1.978899E0,1.067053E0,1.340958E0,6.6325626E0,9.4285406E2,1.5180166E0,3.4620664E0,2.9342408E0,1.5871364E0,1.1463035E1,1.0834948E0,1.5178573E1,3.5884385E0,1.1735712E0,3.1283944E0,2.3413932E0,1.5103738E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-1.077974E-3,-7.1345106E-2,1.3752277E-3,6.733445E-1,-1.2318207E-3,1.2483501E-1,-2.339931E-2,-7.959736E-2,2.5388652E-3,8.226963E-2,-1.896692E-2,-8.4874384E-2,1.0167721E-2,-3.628596E-3,1.528339E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":61,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[1.765814E0,0E0,1.7656429E0,2.3242886E0,3.0122306E0,0E0,0E0,0E0,1.7175269E0,3.930933E0,2.3530838E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-7.1345106E-2,-8.977434E-1,-7.0710677E-1,-7.4410397E-1,1.2483501E-1,-2.339931E-2,-7.959736E-2,1.8280953E-1,-7.513765E-1,3.4E1,-8.4874384E-2,1.0167721E-2,-3.628596E-3,1.528339E-2],"split_indices":[8,0,8,10,8,0,0,0,6,3,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.00886383E3,2.467661E0,1.0063962E3,2.89513E0,1.00350104E3,1.5420504E0,1.3530796E0,3.7465718E0,9.9975446E2,2.1177867E2,7.879758E2,3.4519148E0,2.0832675E2,7.1653186E2,7.144394E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-1.11499E-3,-4.43818E-2,3.788575E-2,-1.00088455E-2,-3.4040803E-1,2.6323726E-2,6.0526633E-1,1.5195598E-1,-5.9583526E-2,-5.626813E-1,-1.591642E-2,4.6455166E-1,1.3792565E-2,8.050815E-1,-2.1792082E-2,4.337458E-3,4.7435817E-1,-4.495571E-1,-2.6306631E-2,-9.617803E-1,-2.8366163E-1,5.529042E-1,-5.7691073E-1,8.408621E-1,-2.9398173E-1,-1.4779046E-1,5.5603445E-2,1.3029827E0,8.2186304E-2,4.9923442E-2,-2.4252482E-2,9.492161E-2,1.7626557E-2,5.5929157E-4,-6.778812E-2,4.3749806E-2,-4.5003607E-3,-1.2639534E-1,1.177746E-2,1.9376045E-2,-1.0740136E-1,1.2615071E-1,4.1903146E-3,8.114102E-2,-9.856289E-2,4.040846E-3,1.16086304E-1,-6.0742926E-2,3.84747E-2,9.234869E-3,-4.349153E-2,3.419053E-2,-7.223699E-4,3.181054E-2,1.6332369E-1,-9.080574E-2,7.177719E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":62,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.7037253E0,4.866856E0,3.4675937E0,3.4606454E0,3.5803432E0,2.857195E0,1.9123254E0,4.8058767E0,4.2686567E0,3.0127363E0,7.1030116E0,4.3764505E0,3.440191E0,3.0279098E0,0E0,8.710219E0,4.32254E0,2.692379E0,2.6643753E0,3.972663E0,7.29554E0,3.954382E0,7.1508965E0,2.4961634E0,1.411861E0,7.2592044E0,7.2747297E0,1.1361332E0,3.5593424E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.5601746E-1,4.6735922E-1,4.9060223E-1,5.1510418E1,3.0102436E1,-2.7027233E0,2.039778E0,9.922222E-1,5.3985374E1,-7.0710677E-1,3.019287E-1,9.158643E-1,-8.22366E-1,4.956946E-1,-2.1792082E-2,-7.901357E-1,5E-1,9.53681E-1,5.5160786E1,2.8572922E1,2.834149E1,6.3471622E1,-3.8190868E-1,5E-1,-4.8166803E-1,2.5881904E-1,7.0252746E-1,-1.1468611E-1,4.4822934E-1,4.9923442E-2,-2.4252482E-2,9.492161E-2,1.7626557E-2,5.5929157E-4,-6.778812E-2,4.3749806E-2,-4.5003607E-3,-1.2639534E-1,1.177746E-2,1.9376045E-2,-1.0740136E-1,1.2615071E-1,4.1903146E-3,8.114102E-2,-9.856289E-2,4.040846E-3,1.16086304E-1,-6.0742926E-2,3.84747E-2,9.234869E-3,-4.349153E-2,3.419053E-2,-7.223699E-4,3.181054E-2,1.6332369E-1,-9.080574E-2,7.177719E-2],"split_indices":[8,8,6,2,0,4,4,7,2,10,6,8,4,6,0,4,11,7,2,0,0,2,3,11,3,9,8,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0076559E3,4.77636E2,5.300199E2,4.2887158E2,4.8764423E1,5.204604E2,9.559494E0,1.0002287E2,3.288487E2,2.8504862E1,2.0259563E1,1.3466067E1,5.0699432E2,7.7100105E0,1.8494835E0,6.930404E1,3.0718836E1,2.4871286E1,3.0397742E2,1.0721806E1,1.7783056E1,1.0066772E1,1.019279E1,8.928218E0,4.537849E0,1.0369976E2,4.0329456E2,4.0903153E0,3.619695E0,2.2724598E1,4.657944E1,1.10045E1,1.9714334E1,8.63448E0,1.6236805E1,1.0911169E1,2.9306622E2,8.243575E0,2.4782305E0,1.1556843E1,6.226214E0,3.6025016E0,6.464271E0,2.0941596E0,8.098631E0,2.8715558E0,6.0566626E0,3.1761172E0,1.3617319E0,5.6839752E1,4.6860012E1,7.177509E1,3.3151947E2,1.5201547E0,2.5701606E0,1.2474581E0,2.372237E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-8.0338266E-4,-3.0575302E-1,4.577123E-3,-5.47839E-1,4.547805E-1,3.0995587E-1,-3.39344E-3,-2.4781092E-1,-1.0628414E0,1.3588579E-1,-3.3756563E-1,5.351599E-1,-2.753987E-1,-6.4366704E-1,1.8603301E-3,-8.059142E-1,2.2248295E-1,-2.1721272E-2,-1.2312094E-1,2.4296934E-2,-8.3628766E-2,-2.2673136E-1,8.2155114E-1,-6.9902414E-1,4.2925406E-1,1.0959001E-2,-1.3122453E-1,2.2821596E-1,-1.5079004E-2,-2.2968294E-2,-9.021771E-2,1.4321433E-1,-4.76256E-2,5.6795668E-2,-5.9988976E-2,1.17431544E-1,-2.1250397E-2,-1.014958E-1,-1.2086002E-3,1.14610575E-1,-5.319912E-2,-7.802936E-2,1.0515976E-1,4.3173756E-2,-1.1480239E-2,-1.9456727E-2,1.1745668E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":63,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,29,31,-1,-1,-1,-1,33,35,37,39,41,-1,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6547736E0,3.4685347E0,2.413643E0,1.8561606E0,3.8745196E0,3.4724305E0,3.2539208E0,2.7966282E0,4.0822554E-1,0E0,1.1708592E0,4.2349763E0,2.589097E0,3.4600337E0,3.6847339E0,5.773735E-2,5.91855E0,0E0,0E0,0E0,0E0,2.0763793E0,5.247778E0,1.1096673E0,3.020556E0,4.9125576E0,0E0,4.7205267E0,4.3075237E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,21,21,22,22,23,23,24,24,25,25,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,30,32,-1,-1,-1,-1,34,36,38,40,42,-1,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.790238E-1,7.783308E1,-6.469824E-1,-2.5881904E-1,1E0,8.695894E-1,-6.2025577E-1,2.578542E1,2.4140882E1,1.3588579E-1,6.8077344E-1,5E-1,9.750645E-1,6.2840515E1,-2.0435398E0,2.2686535E1,2.7678814E1,-2.1721272E-2,-1.2312094E-1,2.4296934E-2,-8.3628766E-2,-8.660254E-1,7.709227E1,2.834149E1,5.7874493E1,5.9788376E1,-1.3122453E-1,2.8495266E1,2.6512897E1,-2.2968294E-2,-9.021771E-2,1.4321433E-1,-4.76256E-2,5.6795668E-2,-5.9988976E-2,1.17431544E-1,-2.1250397E-2,-1.014958E-1,-1.2086002E-3,1.14610575E-1,-5.319912E-2,-7.802936E-2,1.0515976E-1,4.3173756E-2,-1.1480239E-2,-1.9456727E-2,1.1745668E-3],"split_indices":[3,2,3,10,11,8,3,1,1,0,7,11,8,2,4,0,1,0,0,0,0,10,2,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0066736E3,1.6485798E1,9.901878E2,1.2717384E1,3.768414E0,2.4223349E1,9.659645E2,8.971808E0,3.7455761E0,1.4261631E0,2.342251E0,1.7555105E1,6.668242E0,6.8727407E0,9.5909174E2,3.7765236E0,5.195285E0,1.0021884E0,2.7433877E0,1.3193195E0,1.0229315E0,4.8529754E0,1.270213E1,4.16956E0,2.498682E0,3.9695945E0,2.9031463E0,6.590806E1,8.9318365E2,1.025265E0,2.7512586E0,1.5178919E0,3.6773932E0,1.3838551E0,3.46912E0,9.369961E0,3.33217E0,2.5289469E0,1.6406132E0,1.3211308E0,1.1775512E0,2.3971174E0,1.572477E0,4.1202755E1,2.47053E1,1.1531809E2,7.7786554E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-9.325116E-4,-5.028091E-3,3.91275E-1,-7.043467E-2,-2.744226E-3,8.390371E-2,1.0431782E-1,-1.0191312E-2,2.0306721E-1,-7.15927E-2,4.8910707E-1,-5.6373687E-3,-8.2445407E-1,1.00165926E-1,9.765099E-2,-6.3767724E-2,8.832848E-2,-9.886966E-5,-5.822059E-2,-1.1845147E-1,3.3704285E-2,8.455052E-2,-1.6368609E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":64,"left_children":[1,3,5,-1,7,-1,9,11,13,-1,15,17,19,-1,21,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6191442E0,1.5909736E0,1.2509409E0,0E0,1.5272565E0,0E0,2.7143133E0,3.5599694E0,2.831572E0,0E0,3.0916958E0,2.564355E0,2.6322682E0,0E0,2.7294774E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,4,4,6,6,7,7,8,8,10,10,11,11,12,12,14,14],"right_children":[2,4,6,-1,8,-1,10,12,14,-1,16,18,20,-1,22,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,2.2030704E1,7.43043E1,-7.043467E-2,7.243951E-1,8.390371E-2,7.665543E1,7.004167E-1,4.5971794E1,-7.15927E-2,-8.660254E-1,8.875895E1,3.409344E1,1.00165926E-1,-9.659258E-1,-6.3767724E-2,8.832848E-2,-9.886966E-5,-5.822059E-2,-1.1845147E-1,3.3704285E-2,8.455052E-2,-1.6368609E-3],"split_indices":[0,0,2,0,3,0,2,3,2,0,9,2,1,0,10,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.00576074E3,9.963437E2,9.417018E0,2.242654E0,9.941011E2,2.9265614E0,6.4904566E0,9.603039E2,3.3797176E1,1.7977252E0,4.6927314E0,9.5596436E2,4.339518E0,2.949672E0,3.0847504E1,1.0560886E0,3.636643E0,9.493121E2,6.6522593E0,3.2974887E0,1.0420291E0,3.232184E0,2.761532E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"23","size_leaf_vector":"1"}},{"base_weights":[-8.2015584E-4,-6.949636E-2,1.4357851E-3,6.194682E-1,-1.0371405E-3,1.1053725E-1,-2.1601215E-2,-7.805329E-2,2.4300949E-3,-3.1348967E-4,5.407514E-1,-9.509156E-3,1.5847955E-3,-1.2184276E-2,8.152654E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":65,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[1.5760715E0,0E0,1.534444E0,1.8631284E0,2.706124E0,0E0,0E0,0E0,1.4728651E0,1.5226518E0,1.0191137E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-6.949636E-2,-8.977434E-1,-7.0710677E-1,-7.4410397E-1,1.1053725E-1,-2.1601215E-2,-7.805329E-2,4.42315E0,-2.1352091E-1,-2.5881904E-1,-9.509156E-3,1.5847955E-3,-1.2184276E-2,8.152654E-2],"split_indices":[8,0,8,10,8,0,0,0,4,7,9,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.0048285E3,2.2603781E0,1.0025681E3,3.0012329E0,9.9956683E2,1.6933591E0,1.3078737E0,3.4339654E0,9.961329E2,9.920761E2,4.056753E0,1.438122E2,8.482639E2,1.3512918E0,2.7054615E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-7.635293E-4,-4.1951153E-2,3.640814E-2,-1.0355697E-2,-3.16624E-1,2.586187E-2,5.53604E-1,1.3526957E-1,-5.5273946E-2,-5.200116E-1,-1.0568788E-2,-4.2848453E-2,1.03787504E-1,7.412396E-1,-2.1617254E-2,2.3230818E-1,-2.8713977E-1,-2.83119E-1,-7.7064894E-3,-9.196628E-1,-2.59573E-1,4.241216E-1,-7.44444E-1,1.8313665E-2,-4.1090634E-1,3.6891532E-1,1.1860017E-2,1.3706529E-1,2.067424E-1,1.2560065E-2,7.209365E-2,-6.175955E-2,4.7474537E-2,-8.062204E-2,-1.6117506E-2,1.0554879E-1,-2.2159263E-3,-1.21820174E-1,9.618515E-3,1.7689886E-2,-9.4630495E-2,8.554806E-2,-1.11971935E-2,5.509981E-2,-1.2825637E-1,-2.9346183E-2,8.500555E-3,-7.969531E-2,-1.5286701E-2,6.0665816E-2,-8.706497E-3,4.2853516E-2,-9.912454E-3,-5.766507E-2,8.1241846E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":66,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.540042E0,4.1377454E0,2.8696678E0,2.8134825E0,3.05658E0,2.784499E0,1.6793034E0,4.223703E0,3.558724E0,2.835093E0,6.9063883E0,6.234852E0,5.932447E0,2.6373396E0,0E0,4.2382555E0,5.1756716E0,3.4880614E0,4.21586E0,3.531561E0,5.944364E0,3.243478E0,6.317048E0,4.977204E0,3.809156E0,6.8477745E0,8.45463E0,0E0,3.2548785E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,-1,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.5601746E-1,4.6735922E-1,4.9060223E-1,5.1510418E1,3.0187654E1,6.1207073E1,2.039778E0,3.528256E-1,2.7574139E1,-7.0710677E-1,7.3771774E1,5.9138897E1,6.568454E1,4.9385712E-1,-2.1617254E-2,1.0741035E0,2.8942356E1,1.5600148E-1,2.763318E1,2.8572922E1,2.834149E1,3.062668E-1,-8.660254E-1,0E0,7.935716E-1,5E-1,7.383264E-1,1.3706529E-1,4.4822934E-1,1.2560065E-2,7.209365E-2,-6.175955E-2,4.7474537E-2,-8.062204E-2,-1.6117506E-2,1.0554879E-1,-2.2159263E-3,-1.21820174E-1,9.618515E-3,1.7689886E-2,-9.4630495E-2,8.554806E-2,-1.11971935E-2,5.509981E-2,-1.2825637E-1,-2.9346183E-2,8.500555E-3,-7.969531E-2,-1.5286701E-2,6.0665816E-2,-8.706497E-3,4.2853516E-2,-9.912454E-3,-5.766507E-2,8.1241846E-2],"split_indices":[8,8,6,2,0,2,4,3,0,10,2,2,2,6,0,4,0,6,0,0,0,6,10,7,8,9,8,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.00389984E3,4.7616373E2,5.277361E2,4.2797205E2,4.819168E1,5.18219E2,9.517131E0,1.0041488E2,3.2755716E2,2.8531872E1,1.9659807E1,2.756324E2,2.4258658E2,7.6817503E0,1.835381E0,8.202224E1,1.8392641E1,5.5718277E1,2.718389E2,1.0258569E1,1.8273304E1,1.26117E1,7.0481067E0,2.3717072E2,3.8461666E1,6.1680607E1,1.8090598E2,2.8092523E0,4.8724976E0,6.835238E1,1.3669866E1,1.2960579E1,5.432062E0,9.472558E0,4.624572E1,2.679718E0,2.6915918E2,7.7745695E0,2.483999E0,1.1626291E1,6.6470127E0,6.6583776E0,5.953323E0,2.0614774E0,4.9866295E0,4.119401E1,1.9597672E2,1.4572135E1,2.388953E1,4.032511E1,2.1355495E1,3.744879E1,1.4345718E2,2.1454515E0,2.7270463E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-7.429935E-4,7.357295E-2,-2.0806264E-2,3.5951577E-2,6.1125314E-1,-3.6330238E-2,1.3545349E-1,-1.3550057E-1,1.5229209E-1,9.408366E-1,-1.5302688E-1,-2.1344084E-2,-4.0552637E-1,8.3504355E-1,1.3395416E-2,-2.346049E-1,4.8842898E-1,8.1229043E-1,7.871699E-2,-4.0144898E-2,1.3387647E0,-1.0910829E-1,5.709134E-1,-5.5861283E-2,1.4134306E-1,-5.257368E-1,1.133618E-1,3.5364622E-1,9.567127E-1,-6.3717747E-1,1.4467917E-1,-4.2274367E-2,1.6328765E-2,8.552358E-2,-5.3449035E-2,-4.7865994E-2,1.04192175E-1,2.2841774E-2,-1.5408515E-2,5.8826663E-2,-5.2463796E-2,1.7521231E-1,4.924E-2,8.90159E-2,1.3773328E-3,-1.7381714E-3,-2.4931481E-2,-6.009228E-2,2.1603875E-2,-1.1595602E-1,-2.299295E-2,7.255214E-2,-2.725908E-2,1.4406067E-2,1.05648056E-1,-1.9901162E-2,-1.9915432E-1,5.4608166E-2,-3.858373E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":67,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,-1,43,45,47,49,-1,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.4964879E0,4.2939897E0,1.9219525E0,4.019435E0,3.642836E0,3.9730375E0,6.105194E0,5.158432E0,5.758449E0,3.896823E0,4.0491295E0,3.8973744E0,5.77962E0,2.839384E-1,5.387924E0,5.3889184E0,4.774E0,4.031884E0,3.833353E0,1.4692205E0,1.5977612E0,0E0,6.1099637E-1,4.2545E0,6.8671904E0,4.733726E0,0E0,1.0663894E0,4.8785353E-1,5.8919E0,3.8762927E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,22,22,23,23,24,24,25,25,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,-1,44,46,48,50,-1,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.8280953E-1,1.7819522E-1,3.4E1,2.8721085E1,1.8970186E-1,2.9224489E0,7.14022E1,9.911141E-1,2.9325552E1,2.7015806E1,3.399529E-1,1.4842422E0,9.922222E-1,-8.660254E-1,7.352553E1,1.5318099E-1,9.995463E-1,-9.659258E-1,8.958393E-1,2.5272247E1,3.2443546E1,-1.0910829E-1,6.387494E-1,7.9579645E-1,2.0644526E-1,7.0252746E-1,1.133618E-1,3.714609E-1,-1.3500726E-1,4.471589E-1,2.9755145E-1,-4.2274367E-2,1.6328765E-2,8.552358E-2,-5.3449035E-2,-4.7865994E-2,1.04192175E-1,2.2841774E-2,-1.5408515E-2,5.8826663E-2,-5.2463796E-2,1.7521231E-1,4.924E-2,8.90159E-2,1.3773328E-3,-1.7381714E-3,-2.4931481E-2,-6.009228E-2,2.1603875E-2,-1.1595602E-1,-2.299295E-2,7.255214E-2,-2.725908E-2,1.4406067E-2,1.05648056E-1,-1.9901162E-2,-1.9915432E-1,5.4608166E-2,-3.858373E-3],"split_indices":[6,6,0,1,3,4,2,7,1,0,3,4,7,10,2,6,7,10,7,0,1,0,8,4,6,8,0,6,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[1.00163995E3,2.1236311E2,7.8927686E2,1.994729E2,1.2890214E1,7.1864856E2,7.062825E1,8.057058E1,1.1890233E2,8.844957E0,4.045256E0,6.9163214E2,2.701644E1,9.624269E0,6.100398E1,7.0065445E1,1.0505134E1,1.0918519E1,1.0798381E2,2.8119612E0,6.0329967E0,1.5411474E0,2.504109E0,5.7111566E2,1.205165E2,2.5669981E1,1.3464571E0,2.7298682E0,6.8944E0,9.59631E0,5.140767E1,4.7529312E1,2.2536133E1,7.853049E0,2.6520846E0,1.4850934E0,9.433426E0,6.573348E1,4.2250328E1,1.1309165E0,1.6810447E0,3.3343494E0,2.698647E0,1.2119324E0,1.2921764E0,4.77272E2,9.384365E1,1.0374828E1,1.1014167E2,7.2390203E0,1.8430962E1,1.6133059E0,1.1165622E0,1.0210949E0,5.873305E0,8.117173E0,1.4791359E0,1.5493136E1,3.5914536E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-4.92568E-4,-6.751377E-2,1.577824E-3,-5.0683846E-3,2.1609934E-1,-1.0355805E-3,-5.454143E-1,6.0610515E-1,5.2643012E-2,-3.2664433E-3,6.729285E-1,1.1508945E-1,-8.80194E-2,-6.1968725E-2,8.847511E-1,-6.0044426E-1,4.0618315E-1,-5.195671E-5,-7.5562134E-2,1.2416757E-2,8.842863E-2,4.214656E-2,-2.0340504E-2,-1.9266112E-2,1.2742846E-1,2.4669161E-2,-1.01704575E-1,8.045125E-2,-7.7495836E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":68,"left_children":[1,-1,3,5,7,9,11,13,15,17,19,21,-1,-1,23,25,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3989744E0,0E0,1.4250598E0,2.1125362E0,1.8828375E0,1.4508812E0,1.6893597E0,3.545633E0,5.3836184E0,1.9863437E0,2.5945473E-1,4.077465E-1,0E0,0E0,3.419191E0,3.1524436E0,2.9597492E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,14,14,15,15,16,16],"right_children":[2,-1,4,6,8,10,12,14,16,18,20,22,-1,-1,24,26,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-6.751377E-2,7.5271255E-1,8.875895E1,2.848865E1,4.42315E0,-9.8292655E-1,2.7096775E1,3.0246916E1,3.9701602E0,-3.9359027E-1,-2.5881904E-1,-8.80194E-2,-6.1968725E-2,5E-1,9.025161E-2,7.131634E1,-5.195671E-5,-7.5562134E-2,1.2416757E-2,8.842863E-2,4.214656E-2,-2.0340504E-2,-1.9266112E-2,1.2742846E-1,2.4669161E-2,-1.01704575E-1,8.045125E-2,-7.7495836E-3],"split_indices":[8,0,3,2,1,4,7,0,0,4,7,9,0,0,11,8,2,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.998086E2,2.0642772E0,9.977443E2,9.6870856E2,2.9035719E1,9.625268E2,6.181782E0,7.7754607E0,2.1260258E1,9.6034314E2,2.1836417E0,2.3000736E0,3.8817081E0,1.2134489E0,6.5620117E0,7.22159E0,1.4038668E1,9.5784674E2,2.496444E0,1.0485928E0,1.1350489E0,1.007552E0,1.2925217E0,1.8766855E0,4.6853266E0,2.515107E0,4.706483E0,7.334823E0,6.7038445E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-5.2067003E-4,-6.784124E-2,1.5197714E-3,5.256225E-2,-2.486214E-2,1.8027931E-1,-6.430955E-2,-8.6454324E-2,4.302556E-2,2.1475706E-1,-7.290959E-1,-1.2915972E-1,3.1358302E-1,-3.7276555E-2,-5.2105635E-1,2.6686034E-1,-3.2785222E-2,-6.405539E-2,2.4328493E-2,-1.15767084E-1,5.3556967E-3,-1.9177174E-2,3.76735E-2,7.5543704E-3,1.2188158E-1,-3.1182894E-2,3.8624208E-3,8.042928E-2,-6.133246E-2,-2.358514E-3,6.4969465E-2,-6.5018027E-3,7.571801E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":69,"left_children":[1,-1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3838865E0,0E0,1.3448746E0,5.0910673E0,2.7569356E0,5.263E0,4.4132004E0,7.3662605E0,5.3351054E0,4.0035233E0,2.1338837E0,4.918653E0,5.602476E0,6.5036135E0,4.7795687E0,8.857683E0,6.042226E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16],"right_children":[2,-1,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-6.784124E-2,2.334258E-1,4.282872E-2,3.050852E-1,9.995463E-1,9.750645E-1,2.3101075E-1,8.141346E-1,-7.790238E-1,-5E-1,9.922222E-1,1.11659005E-1,3.7770796E-1,-5.049611E-1,1.159849E-1,4.9060223E-1,-6.405539E-2,2.4328493E-2,-1.15767084E-1,5.3556967E-3,-1.9177174E-2,3.76735E-2,7.5543704E-3,1.2188158E-1,-3.1182894E-2,3.8624208E-3,8.042928E-2,-6.133246E-2,-2.358514E-3,6.4969465E-2,-6.5018027E-3,7.571801E-2],"split_indices":[0,0,6,4,4,7,8,3,4,3,10,7,7,7,8,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.987521E2,2.00244E0,9.9674963E2,3.3929852E2,6.574511E2,1.6186763E2,1.7743088E2,3.445653E2,3.128858E2,1.5669075E2,5.176878E0,1.5200372E2,2.5427158E1,3.1051456E2,3.4050774E1,7.8523E1,2.3436281E2,4.36508E0,1.5232567E2,3.0354984E0,2.1413796E0,1.3581546E2,1.6188263E1,2.0990868E1,4.4362907E0,6.65777E1,2.4393686E2,1.713989E0,3.2336784E1,4.5182625E1,3.3340378E1,2.2605676E2,8.306057E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-4.6192895E-4,-8.3828375E-2,1.7749595E-2,-3.375556E-1,-2.9005406E-2,-2.358802E-2,6.793305E-2,-8.275817E-1,-5.0109886E-2,-1.0551606E-1,2.794304E-1,5.956225E-1,-3.8708173E-2,2.4303395E-2,2.8311637E-1,-9.5999435E-2,-3.0220088E-1,-2.952127E-1,7.546205E-1,-4.486257E-1,9.196038E-3,1.7659079E-1,1.655361E-1,7.778739E-1,-3.6149684E-2,-6.026027E-2,3.0612156E-1,2.6784018E-1,-2.961693E-2,-2.0397265E-1,4.0049973E-1,3.9419718E-2,-6.909403E-2,-6.7450695E-2,3.0753722E-2,1.1835579E-1,-3.2003753E-2,5.0846953E-2,-5.6463577E-2,3.7848085E-2,-1.464243E-2,-4.7388174E-2,3.7678964E-2,1.7628208E-2,1.218884E-1,-1.3246246E-2,6.252646E-3,-3.1374156E-2,8.2789466E-2,1.0028177E-2,1.6761696E-1,-4.6711992E-2,3.7186556E-3,9.899949E-2,-4.7965296E-2,-5.684818E-2,4.782178E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":70,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,33,35,37,39,-1,41,43,-1,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.518699E0,2.4848504E0,1.7047133E0,4.433676E0,3.5355196E0,4.2447457E0,3.476921E0,5.225649E-1,4.382439E0,4.717983E0,4.7534103E0,2.1667051E0,3.2966383E0,4.0736732E0,3.6529503E0,0E0,1.3040607E0,4.067524E0,2.7780187E0,3.621276E0,5.2699375E0,0E0,4.066903E0,2.2783408E0,0E0,3.696239E0,8.705088E0,1.309947E1,7.452404E0,4.685344E0,4.0875864E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,22,22,23,23,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,34,36,38,40,-1,42,44,-1,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3035382E-3,2.692554E1,6.1207073E1,-2.6353863E-1,8.0328035E-1,-3.044823E0,4.071323E-1,-1.3175611E0,9.951053E-1,-5.9387438E-2,5.569541E1,5.9644707E1,9.951053E-1,5E-1,-5.4524046E-1,-9.5999435E-2,2.4857971E1,7.8884065E-1,9.995463E-1,7.1767694E-1,2.9061413E1,1.7659079E-1,6.913966E1,2.3759722E1,-3.6149684E-2,5.663742E-1,3.050852E-1,9.8594815E-1,1.7553149E-1,-9.951053E-1,-3.1781703E-1,3.9419718E-2,-6.909403E-2,-6.7450695E-2,3.0753722E-2,1.1835579E-1,-3.2003753E-2,5.0846953E-2,-5.6463577E-2,3.7848085E-2,-1.464243E-2,-4.7388174E-2,3.7678964E-2,1.7628208E-2,1.218884E-1,-1.3246246E-2,6.252646E-3,-3.1374156E-2,8.2789466E-2,1.0028177E-2,1.6761696E-1,-4.6711992E-2,3.7186556E-3,9.899949E-2,-4.7965296E-2,-5.684818E-2,4.782178E-2],"split_indices":[8,0,2,3,5,4,3,4,7,3,2,2,7,11,7,0,1,5,7,7,1,0,2,0,0,5,4,7,8,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.983288E2,1.7834056E2,8.199882E2,3.0771091E1,1.4756947E2,4.4991214E2,3.700761E2,1.0681909E1,2.0089184E1,1.18766205E2,2.880327E1,9.809138E0,4.40103E2,3.0861548E2,6.1460632E1,7.8709455E0,2.8109632E0,1.5884327E1,4.2048564E0,2.902878E1,8.973742E1,1.0175853E0,2.7785686E1,8.3974085E0,1.4117298E0,4.1499103E2,2.511198E1,5.522385E1,2.5339163E2,1.1791882E1,4.966875E1,1.0019695E0,1.8089937E0,9.676265E0,6.208062E0,2.9328918E0,1.2719644E0,2.7724876E0,2.6256292E1,2.618017E1,6.355725E1,6.591495E0,2.1194191E1,4.144088E0,4.25332E0,2.612749E2,1.5371611E2,1.1659394E1,1.3452586E1,5.0309406E1,4.9144425E0,3.2771996E1,2.2061964E2,1.7259064E0,1.0065975E1,3.2190657E0,4.6449684E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-1.0521066E-4,-3.8397525E-2,3.4418087E-2,-9.135462E-3,-2.942663E-1,2.5077725E-2,4.9439967E-1,1.03494614E-1,-6.4174525E-2,-5.509917E-2,-5.166083E-1,-2.9992592E-3,1.6735385E-1,6.8407094E-1,-2.5597949E-2,1.4546482E-1,-7.1382433E-1,-6.846847E-1,-3.2247625E-2,-4.0478408E-1,4.5862973E-1,2.7780747E-1,-7.61294E-1,1.5387513E-1,-5.129246E-2,-2.0445889E-1,3.6663258E-1,1.1257557E0,2.783265E-2,-3.994189E-3,3.2807436E-2,-1.0888659E-1,3.796987E-2,4.8093196E-2,-8.3283745E-2,-7.7744187E-3,2.088423E-2,1.680154E-2,-9.76555E-2,1.1365058E-1,1.3643479E-3,-3.510896E-2,1.0736265E-1,1.6220821E-2,-8.676043E-2,-5.5612545E-2,2.5966674E-2,-1.47285955E-2,8.355986E-3,-5.7803847E-2,2.6108036E-2,-5.025444E-2,4.349081E-2,2.4294846E-2,1.4161745E-1,-8.5605145E-2,5.98132E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":71,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,-1,29,31,33,35,37,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3195974E0,3.540763E0,2.242932E0,2.6457472E0,2.5526133E0,2.0599294E0,1.6544015E0,4.9107885E0,5.6556487E0,4.5875206E0,5.0776925E0,3.277335E0,6.3720446E0,2.452375E0,0E0,4.5539474E0,3.2898915E0,2.8138838E0,3.0175111E0,5.1129665E0,3.1194272E0,3.6939995E0,2.0460224E0,7.7931557E0,4.293504E0,5.420182E0,3.5233755E0,9.6257067E-1,2.7665505E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,-1,30,32,34,36,38,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.5601746E-1,4.6735922E-1,4.9060223E-1,-8.22366E-1,2.9088387E-1,4.071323E-1,2.039778E0,4.77454E-1,2.6256735E1,3.0102436E1,-1.5492159E0,7.266075E-1,8.429415E-1,4.956946E-1,-2.5597949E-2,9.025161E-2,3.1681175E1,4.3936573E1,3.38775E1,4.7634365E1,3.385632E1,2.8294405E1,-3.8190868E-1,2.6340662E1,5.2537984E-1,3.3477272E1,2.7096775E1,-1.1468611E-1,4.4822934E-1,-3.994189E-3,3.2807436E-2,-1.0888659E-1,3.796987E-2,4.8093196E-2,-8.3283745E-2,-7.7744187E-3,2.088423E-2,1.680154E-2,-9.76555E-2,1.1365058E-1,1.3643479E-3,-3.510896E-2,1.0736265E-1,1.6220821E-2,-8.676043E-2,-5.5612545E-2,2.5966674E-2,-1.47285955E-2,8.355986E-3,-5.7803847E-2,2.6108036E-2,-5.025444E-2,4.349081E-2,2.4294846E-2,1.4161745E-1,-8.5605145E-2,5.98132E-2],"split_indices":[8,8,6,4,6,3,4,6,0,0,4,8,8,6,0,8,0,2,0,2,1,0,3,0,5,1,0,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.962004E2,4.7226477E2,5.239356E2,4.2472717E2,4.7537598E1,5.145419E2,9.393742E0,1.3913193E2,2.8559525E2,2.3503424E1,2.4034176E1,4.305545E2,8.398735E1,7.5689297E0,1.8248117E0,1.3311818E2,6.0137405E0,1.2975064E1,2.7262018E2,1.4110653E1,9.392771E0,5.627649E0,1.8406527E1,1.008311E2,3.2972342E2,2.929778E1,5.468957E1,4.096375E0,3.4725547E0,6.644086E1,6.667732E1,4.481125E0,1.5326158E0,1.2098871E0,1.1765177E1,2.299108E2,4.2709393E1,7.4017434E0,6.70891E0,3.1064663E0,6.2863045E0,3.4556494E0,2.1719995E0,1.8458751E0,1.6560652E1,1.2523717E1,8.830738E1,1.925594E2,1.37164E2,1.6120203E1,1.3177574E1,3.5198474E0,5.1169724E1,1.4686271E0,2.627748E0,1.1653575E0,2.307197E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-1.4502043E-4,-2.711447E-1,4.528948E-3,-5.0533986E-1,4.3580094E-1,2.6221338E-1,-2.2405447E-3,-2.1966755E-1,-1.0008835E0,1.2638919E-1,-3.1519035E-1,1.3630405E-1,1.4028941E-1,-6.2566096E-1,2.758899E-3,-7.616689E-1,2.084549E-1,-2.0954203E-2,-1.1673989E-1,-7.116564E-2,2.0996265E-2,3.491172E-1,-6.667261E-1,4.3063485E-3,-1.2663183E-1,1.8760315E-1,-1.1302256E-2,-2.214492E-2,-8.621688E-2,1.2842914E-1,-4.4383567E-2,5.052606E-2,-5.8679707E-2,-1.1339917E-1,2.9322535E-2,-7.364779E-2,9.5531754E-2,3.7113126E-2,-1.2425286E-2,-8.354488E-3,3.3509973E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":72,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,-1,21,23,25,27,29,-1,-1,-1,-1,31,33,35,-1,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.2607032E0,3.0141387E0,1.7074151E0,1.640135E0,3.3437555E0,3.1716225E0,2.976388E0,2.389996E0,3.5143614E-1,0E0,8.3319235E-1,0E0,4.22208E0,3.0716608E0,2.4656026E0,5.1122904E-2,4.890928E0,0E0,0E0,0E0,0E0,3.140566E0,2.669414E0,4.104308E0,0E0,3.8842628E0,2.8573432E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,12,12,13,13,14,14,15,15,16,16,21,21,22,22,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,-1,22,24,26,28,30,-1,-1,-1,-1,32,34,36,-1,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.790238E-1,7.783308E1,-6.469824E-1,-2.5881904E-1,1E0,-7.638886E-1,-6.2025577E-1,2.578542E1,2.48166E1,1.2638919E-1,4.3665123E-1,1.3630405E-1,-1.1486849E0,6.2840515E1,-2.0435398E0,2.2805813E1,2.7678814E1,-2.0954203E-2,-1.1673989E-1,-7.116564E-2,2.0996265E-2,7.709227E1,5.6670177E-1,5.9788376E1,-1.2663183E-1,2.8495266E1,2.8495266E1,-2.214492E-2,-8.621688E-2,1.2842914E-1,-4.4383567E-2,5.052606E-2,-5.8679707E-2,-1.1339917E-1,2.9322535E-2,-7.364779E-2,9.5531754E-2,3.7113126E-2,-1.2425286E-2,-8.354488E-3,3.3509973E-3],"split_indices":[3,2,3,10,11,7,3,1,1,0,8,0,4,2,4,0,1,0,0,0,0,2,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.9334033E2,1.5875188E1,9.7746515E2,1.2138991E1,3.7361965E0,2.4055225E1,9.534099E2,8.615558E0,3.523434E0,1.452078E0,2.2841187E0,1.3835952E0,2.267163E1,6.5972733E0,9.468126E2,3.4582875E0,5.15727E0,1.0051227E0,2.5183113E0,1.0991615E0,1.184957E0,1.8461761E1,4.20987E0,3.8272061E0,2.7700672E0,6.6060234E1,8.8075244E2,1.044929E0,2.4133584E0,1.580924E0,3.5763457E0,1.6216433E1,2.2453287E0,2.7096303E0,1.5002396E0,2.2782006E0,1.5490056E0,4.1466824E1,2.4593412E1,3.368485E2,5.4390393E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-3.1970328E-4,-1.5403505E-1,8.57379E-3,-4.4515215E-2,-6.687143E-1,3.6882177E-1,2.0374681E-3,9.8930754E-2,-3.4516552E-1,-8.0954164E-1,1.4967528E-2,-2.2711594E-1,7.045914E-1,-4.299317E-1,9.304176E-3,-1.3283609E-1,7.185982E-1,-7.918606E-1,2.7654344E-1,-1.1780816E-2,-8.9378245E-2,-1.02777734E-1,4.2597052E-1,1.4295961E-1,2.8057224E-1,2.6193893E-1,-6.839137E-1,-6.693742E-1,1.2960479E-2,-4.3216985E-2,4.9178556E-2,-6.959536E-2,1.0916113E-1,1.9566899E-3,-1.0402578E-1,1.0070193E-1,-4.7589425E-2,8.5371815E-2,-3.749981E-2,-1.4035656E-2,1.1963171E-1,-3.384889E-2,8.149865E-2,-8.64025E-2,4.40748E-2,-1.09111E-1,2.5931036E-2,2.3677202E-2,-3.1090731E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":73,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,33,35,-1,-1,-1,37,-1,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3593911E0,3.0358043E0,2.2127438E0,2.0143023E0,1.2127123E0,3.5109475E0,2.9053338E0,4.6712804E0,4.399535E0,3.7466478E-1,0E0,3.9889982E0,2.9666662E0,2.8699107E0,2.2667363E0,4.7058396E0,5.4182043E0,1.8380885E0,4.3458977E0,0E0,0E0,0E0,1.8438624E0,0E0,3.3119702E0,1.881341E0,2.7057981E0,2.2001536E0,3.259499E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,34,36,-1,-1,-1,38,-1,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5139853E1,6.047431E1,2.429211E1,3.572735E-1,9.880227E-1,-2.4100144E-1,2.468883E1,5.45408E1,4.4136447E-1,1.3931105E-1,1.4967528E-2,2.5881904E-1,-5E-1,2.574218E1,3.8152397E1,-1.5268004E0,1.4518325E-1,2.338416E1,4.6336895E1,-1.1780816E-2,-8.9378245E-2,-1.02777734E-1,3.1483588E-1,1.4295961E-1,2.4185198E1,-1.7138305E-1,1.9934686E-1,1.9391666E-1,4.54233E1,-4.3216985E-2,4.9178556E-2,-6.959536E-2,1.0916113E-1,1.9566899E-3,-1.0402578E-1,1.0070193E-1,-4.7589425E-2,8.5371815E-2,-3.749981E-2,-1.4035656E-2,1.1963171E-1,-3.384889E-2,8.149865E-2,-8.64025E-2,4.40748E-2,-1.09111E-1,2.5931036E-2,2.3677202E-2,-3.1090731E-4],"split_indices":[0,2,1,6,8,3,1,2,6,6,0,9,9,0,2,4,6,0,2,0,0,0,6,0,1,3,4,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.924195E2,5.338538E1,9.390341E2,4.491442E1,8.470958E0,1.5746431E1,9.2328766E2,3.0860998E1,1.4053423E1,7.2365184E0,1.2344391E0,5.7913327E0,9.955099E0,1.4312576E1,9.089751E2,2.3032179E1,7.828819E0,8.018491E0,6.0349326E0,1.0459867E0,6.1905317E0,2.343976E0,3.4473565E0,2.7985282E0,7.156571E0,3.8348258E0,1.0477751E1,3.8951118E0,9.0508E2,1.5778737E1,7.253442E0,1.4529884E0,6.37583E0,2.0952535E0,5.9232373E0,2.8904781E0,3.1444545E0,2.2043128E0,1.2430438E0,5.483E0,1.6735712E0,2.024664E0,1.810162E0,9.231155E0,1.246595E0,2.558392E0,1.3367198E0,5.971095E1,8.45369E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-3.601694E-4,-3.8267896E-3,3.465202E-1,1.0839998E-2,-1.1963094E-1,8.084085E-2,6.6084236E-2,4.307948E-1,-6.640474E-3,-4.6834823E-1,4.005264E-3,-6.7254625E-2,4.483631E-1,-5.409469E-1,5.8911824E-1,4.981628E-3,-3.4441203E-1,-8.441637E-1,-9.075064E-3,-5.5223905E-2,5.72261E-1,-6.0811337E-2,8.547475E-2,-1.15343764E-1,4.3318316E-2,8.3957106E-2,8.953444E-3,9.339554E-4,-7.936911E-2,-5.9127856E-2,2.1539781E-2,-1.16638675E-1,-5.1092084E-2,1.09356396E-1,-2.470733E-2,-9.671732E-3,9.094339E-2,1.3773559E-1,-1.5398598E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":74,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,-1,21,23,25,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1947271E0,1.6719173E0,1.2199678E0,6.4185095E0,4.7726107E0,0E0,2.3362417E0,5.6940613E0,3.2992618E0,4.992886E0,2.8144631E0,0E0,2.8160496E0,3.7312837E0,3.7439175E0,2.8372848E0,3.9908264E0,1.1138144E0,3.9570034E0,3.1215873E0,4.8268175E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,-1,22,24,26,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,2.1730204E0,7.43043E1,1.9985594E-2,2.9224566E1,8.084085E-2,7.665543E1,1.5151279E-1,9.995463E-1,4.8320037E-1,1E0,-6.7254625E-2,-8.660254E-1,5.6835983E1,3.0473907E1,8.875895E1,7.0710677E-1,9.0150166E-1,2.7457502E1,9.997685E-1,3.3431304E-1,-6.0811337E-2,8.547475E-2,-1.15343764E-1,4.3318316E-2,8.3957106E-2,8.953444E-3,9.339554E-4,-7.936911E-2,-5.9127856E-2,2.1539781E-2,-1.16638675E-1,-5.1092084E-2,1.09356396E-1,-2.470733E-2,-9.671732E-3,9.094339E-2,1.3773559E-1,-1.5398598E-2],"split_indices":[0,4,2,5,0,0,2,6,7,3,9,0,9,2,0,2,9,8,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.914313E2,9.826004E2,8.830852E0,8.7294666E2,1.0965375E2,2.624885E0,6.205966E0,3.3939205E1,8.3900745E2,2.7971554E1,8.168219E1,1.8575476E0,4.3484187E0,4.416337E0,2.9522867E1,8.120515E2,2.6955957E1,1.4922599E1,1.3048954E1,7.4789696E1,6.8924956E0,1.0700953E0,3.2783234E0,2.5984654E0,1.8178716E0,1.9211273E1,1.0311593E1,8.0862756E2,3.423938E0,1.8667637E1,8.28832E0,6.3156705E0,8.606929E0,1.6783528E0,1.1370602E1,7.256802E1,2.2216735E0,2.8436139E0,4.0488815E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-2.8942522E-4,-2.7316266E-3,4.9780884E-1,-9.2065304E-5,-5.108353E-1,-1.0051402E-2,7.880533E-1,2.6716715E-2,-5.268733E-2,1.3649222E-3,-7.856932E-2,2.2626577E-2,1.0478455E-1,2.1360503E-3,2.276359E-1,-1.7494357E-1,3.975409E-2,2.8528903E-2,-1.9537408E-3,-2.4171976E-2,4.44255E-2,-1.3562205E-2,-7.7631146E-2,-7.724363E-4,5.3070158E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":75,"left_children":[1,3,5,7,9,-1,11,13,15,-1,-1,-1,-1,17,19,21,23,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.207501E0,1.3245966E0,9.2028224E-1,1.3882601E0,7.4654114E-1,0E0,2.5538516E-1,3.220343E0,3.7637577E0,0E0,0E0,0E0,0E0,3.5777347E0,7.3341E0,3.2835636E0,4.4353023E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,13,13,14,14,15,15,16,16],"right_children":[2,4,6,8,10,-1,12,14,16,-1,-1,-1,-1,18,20,22,24,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.42315E0,9.025015E1,1.2246469E-16,3.63532E-1,-2.5881904E-1,-1.0051402E-2,3.475174E1,3.354209E-1,2.8860441E1,1.3649222E-3,-7.856932E-2,2.2626577E-2,1.0478455E-1,-9.659258E-1,2.4284972E-1,2.1392004E0,1E0,2.8528903E-2,-1.9537408E-3,-2.4171976E-2,4.44255E-2,-1.3562205E-2,-7.7631146E-2,-7.724363E-4,5.3070158E-2],"split_indices":[4,2,9,6,9,0,0,6,0,0,0,0,0,10,8,4,9,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.9052045E2,9.8667725E2,3.843213E0,9.82573E2,4.1042137E0,1.4688832E0,2.3743298E0,6.5115784E2,3.314152E2,1.7380341E0,2.3661795E0,1.3424021E0,1.0319277E0,5.810787E2,7.007915E1,1.4231169E2,1.8910349E2,4.0450462E1,5.4062823E2,2.20932E1,4.7985943E1,1.347278E2,7.5838957E0,1.733258E2,1.577769E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"25","size_leaf_vector":"1"}},{"base_weights":[-2.3535763E-4,-6.521835E-2,1.5985852E-3,6.647199E-2,-1.5931617E-2,3.2923285E-2,5.403491E-1,6.2007017E-2,-5.4179892E-2,-1.1462434E-1,1.3652201E-1,8.3742195E-1,-1.5514371E-1,1.2969726E-1,-2.0833571E-1,-1.982145E-1,1.993535E-3,4.325164E-2,-2.2366505E-2,1.3389097E-1,8.289472E-3,-7.0258477E-3,1.20831214E-1,-1.03461795E-1,5.3433903E-2,5.190102E-3,6.3409835E-2,1.6527966E-2,-5.0651904E-2,5.3253337E-3,-3.588767E-2,-1.2848729E-2,8.311561E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":76,"left_children":[1,-1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1850826E0,0E0,1.1252488E0,3.328529E0,2.325674E0,3.0366573E0,2.9918246E0,4.7285676E0,4.2328577E0,4.9930243E0,7.4053235E0,3.4049811E0,3.5783472E0,8.054154E0,5.858051E0,5.949324E0,4.0046735E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16],"right_children":[2,-1,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-6.521835E-2,1.8280953E-1,1.7819522E-1,5.5160786E1,2.8860775E1,1.8970186E-1,3.1077805E-1,6.1207073E1,-8.660254E-1,2.9061413E1,2.7015806E1,3.399529E-1,2.0554134E-1,7.1767694E-1,-3.1781703E-1,-7.0710677E-1,4.325164E-2,-2.2366505E-2,1.3389097E-1,8.289472E-3,-7.0258477E-3,1.20831214E-1,-1.03461795E-1,5.3433903E-2,5.190102E-3,6.3409835E-2,1.6527966E-2,-5.0651904E-2,5.3253337E-3,-3.588767E-2,-1.2848729E-2,8.311561E-3],"split_indices":[0,0,6,6,2,1,3,3,2,9,1,0,3,3,7,4,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8930164E2,1.7803686E0,9.8752124E2,2.0948727E2,7.78034E2,1.9663568E2,1.2851584E1,2.5592125E2,5.2211273E2,8.1068985E1,1.15566696E2,8.86214E0,3.9894445E0,2.0508974E2,5.083151E1,1.4578247E2,3.7633026E2,1.2978641E1,6.809035E1,3.9109771E0,1.1165572E2,2.8058772E0,6.0562625E0,1.5331957E0,2.4562488E0,1.786401E2,2.644964E1,2.2759811E1,2.8071697E1,5.7091545E1,8.869092E1,1.4404967E2,2.322806E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-7.55978E-5,-2.2337826E-1,4.992777E-3,-8.8634104E-1,3.7933838E-2,4.067041E-1,-3.5817956E-3,6.6745677E-3,-1.2059538E0,-3.5648116E-1,3.707366E-1,9.464348E-2,6.2097377E-1,7.190543E-2,-2.2894794E-2,-1.3660286E-1,-3.7300777E-2,2.2251835E-1,-1.12744406E-1,7.346478E-1,-2.050929E-1,-3.0438387E-1,6.763976E-1,-2.2131693E-2,7.7904737E-1,2.2588374E-1,-1.0241292E-1,-6.401175E-2,4.5262873E-2,-8.1582576E-2,6.7093685E-2,-2.78685E-2,1.14620745E-1,-6.323396E-2,6.4123206E-2,3.0340567E-2,-6.3075095E-2,1.00948036E-1,-1.6718477E-2,-2.1164315E-2,9.38239E-2,-5.3295802E-2,3.042894E-2,-1.4940429E-3,-6.6256344E-2,-3.2223014E-3,-4.774454E-2,-3.8965598E-3,2.0404365E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":77,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,29,-1,31,33,35,37,-1,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1212528E0,3.8426762E0,3.338231E0,1.9865723E0,2.3281615E0,1.2955232E0,1.3858646E0,0E0,1.2223959E-1,3.8960862E0,2.15478E0,2.3938334E0,1.7473526E0,5.2214932E0,2.1237805E0,0E0,0E0,3.1076696E0,0E0,2.854457E0,2.027319E0,1.4371493E0,1.3334416E0,0E0,1.8042021E0,6.299148E0,4.474561E0,6.1938267E0,3.8241582E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,30,-1,32,34,36,38,-1,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,5.0583378E1,1.1521257E-1,4.5971794E1,5.981809E-1,2.834149E1,5.0252426E1,6.6745677E-3,8.8406754E-1,3.198137E-1,9.5237756E-1,5E-1,-2.8023067E-1,-5E-1,7.935716E-1,-1.3660286E-1,-3.7300777E-2,-1.432141E0,-1.12744406E-1,-2.578638E-1,3.249436E1,2.5698236E1,5.5453835E1,-2.2131693E-2,-2.1772324E-1,-5.0506437E-1,3.528256E-1,7.383264E-1,1.9667289E-1,-8.1582576E-2,6.7093685E-2,-2.78685E-2,1.14620745E-1,-6.323396E-2,6.4123206E-2,3.0340567E-2,-6.3075095E-2,1.00948036E-1,-1.6718477E-2,-2.1164315E-2,9.38239E-2,-5.3295802E-2,3.042894E-2,-1.4940429E-3,-6.6256344E-2,-3.2223014E-3,-4.774454E-2,-3.8965598E-3,2.0404365E-2],"split_indices":[6,2,6,2,8,0,2,0,7,4,8,9,7,10,8,0,0,4,0,3,0,1,2,0,8,3,3,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.887117E2,2.0987125E1,9.6772455E2,5.257268E0,1.5729857E1,1.9254122E1,9.484704E2,1.5189425E0,3.7383254E0,7.166026E0,8.563831E0,8.425295E0,1.0828827E1,1.926706E2,7.557998E2,2.5988793E0,1.1394461E0,4.4987807E0,2.6672454E0,5.078516E0,3.485315E0,5.2803E0,3.144995E0,1.6479076E0,9.18092E0,1.021468E2,9.052379E1,4.714516E2,2.8434824E2,1.1097461E0,3.3890345E0,1.5601088E0,3.518407E0,2.484112E0,1.001203E0,1.8693626E0,3.4109375E0,2.1137402E0,1.0312548E0,1.225408E0,7.9555116E0,9.022822E0,9.312398E1,7.918502E1,1.1338773E1,4.3879108E2,3.266053E1,1.8628447E2,9.806377E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-2.999428E-4,-6.766265E-3,1.8042468E-1,-2.676561E-3,-7.419216E-1,5.98552E-1,-7.5296564E-3,-7.383942E-3,4.0182227E-1,-1.0627899E0,3.050145E-2,-6.21156E-2,8.331746E-1,-5.567116E-1,2.9897577E-1,-4.5839017E-3,-6.121267E-1,-3.0641243E-1,7.841636E-1,-2.686416E-2,-1.3491522E-1,1.101389E0,-1.4544958E-2,-7.945885E-1,4.960875E-2,-5.759344E-3,8.6461765E-1,-2.5446558E-2,1.612853E-4,-7.986586E-3,-7.497852E-2,2.2810197E-2,-8.580712E-2,1.0733155E-1,-4.181385E-2,1.4175802E-1,-2.6546746E-2,1.4098304E-2,-1.0777463E-1,-2.0152537E-2,9.040072E-2,9.495378E-2,2.8678626E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":78,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,-1,21,23,25,27,29,31,33,-1,-1,35,-1,37,-1,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1565727E0,2.8706558E0,2.691289E0,1.8141245E0,2.0986135E0,3.5551069E0,4.3027964E0,1.5909543E0,3.2081194E0,6.07728E-1,0E0,0E0,2.6089458E0,2.686055E0,2.835618E0,1.45268E0,2.5740087E-1,1.5407698E0,3.0208898E0,0E0,0E0,3.591381E0,0E0,2.23131E0,0E0,2.2598398E0,1.0139465E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,-1,22,24,26,28,30,32,34,-1,-1,36,-1,38,-1,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.243951E-1,7.004167E-1,2.848865E1,6.569853E-1,3.409344E1,2.7096775E1,3.0246916E1,9.025015E1,2.700327E-1,-7.0710677E-1,3.050145E-2,-6.21156E-2,3.8757253E-1,9.8867756E-1,8.695894E-1,1.088585E-1,-9.979172E-1,3.385632E1,4.2082667E-1,-2.686416E-2,-1.3491522E-1,9.817894E-1,-1.4544958E-2,-5E-1,4.960875E-2,4.4564334E-1,3.9628035E-1,-2.5446558E-2,1.612853E-4,-7.986586E-3,-7.497852E-2,2.2810197E-2,-8.580712E-2,1.0733155E-1,-4.181385E-2,1.4175802E-1,-2.6546746E-2,1.4098304E-2,-1.0777463E-1,-2.0152537E-2,9.040072E-2,9.495378E-2,2.8678626E-2],"split_indices":[3,3,1,3,1,0,0,2,6,9,0,0,6,7,8,6,7,1,6,0,0,3,0,9,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8764325E2,9.5445544E2,3.3187828E1,9.501732E2,4.2822175E0,9.614544E0,2.3573284E1,9.4021313E2,9.960045E0,3.266077E0,1.0161407E0,1.2853032E0,8.329241E0,8.151498E0,1.5421787E1,9.368829E2,3.3303142E0,3.561481E0,6.3985643E0,1.3792417E0,1.8868353E0,6.43903E0,1.8902103E0,6.8492017E0,1.3022962E0,1.0665598E1,4.7561893E0,2.1701805E1,9.15181E2,1.0090326E0,2.3212817E0,2.106735E0,1.454746E0,5.2445426E0,1.1540217E0,5.199203E0,1.2398273E0,1.7079914E0,5.14121E0,9.417583E0,1.2480145E0,3.5859122E0,1.1702769E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-3.1847262E-4,-6.347405E-2,1.4374752E-3,6.24685E-1,-1.0620242E-3,1.0449573E-1,-1.8582955E-2,-7.510263E-2,1.9429331E-3,3.3815965E-1,-1.6783916E-3,1.3879164E-1,1.8680163E-3,-4.265717E-2,2.2693363E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":79,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[1.1012082E0,0E0,1.5365975E0,1.5363058E0,2.216802E0,0E0,0E0,0E0,1.1938804E0,3.478363E0,1.6290917E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-6.347405E-2,-8.977434E-1,-7.0710677E-1,-7.4410397E-1,1.0449573E-1,-1.8582955E-2,-7.510263E-2,-6.4534813E-1,5.253826E1,-5.4884297E-1,1.3879164E-1,1.8680163E-3,-4.265717E-2,2.2693363E-4],"split_indices":[8,0,8,10,8,0,0,0,8,2,8,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.866877E2,1.7284276E0,9.849593E2,2.9400375E0,9.820192E2,1.7456315E0,1.1944059E0,2.9256237E0,9.790936E2,9.448846E0,9.696448E2,1.424353E0,8.024493E0,7.9406343E0,9.617041E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-2.766933E-4,-1.4094186E-1,7.776886E-3,-4.2372353E-2,-6.372842E-1,1.8238787E-1,-4.76399E-3,1.181078E-1,-2.7616015E-1,-7.864081E-1,1.5552116E-2,4.061212E-1,-3.2030958E-1,1.8855406E-2,-8.738611E-2,2.9050758E-1,-5.8338374E-1,-9.584976E-2,4.5340843E-2,-9.5397765E-3,-8.779954E-2,1.8956055E-1,7.9327077E-1,-5.0846565E-1,3.5483408E-1,4.196065E-2,-1.5255536E-1,-1.5317243E-1,3.8687104E-1,-1.4538946E-2,6.533367E-2,-9.2358194E-2,1.7949034E-2,-1.9147256E-2,1.1239342E-1,7.4610166E-2,-7.1016573E-3,1.0709727E-1,-7.5652055E-2,-7.391635E-2,3.3102993E-2,-2.3672214E-2,9.439766E-2,-1.7731547E-3,1.3963628E-2,2.1875594E-2,-2.7172536E-2,-8.757416E-5,-3.289275E-2,-2.5853226E-2,5.9839007E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":80,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,31,-1,33,-1,-1,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1196957E0,2.5916066E0,2.048067E0,1.7482082E0,1.1623397E0,7.178768E0,1.70572E0,3.5333278E0,4.1921997E0,3.9529133E-1,0E0,3.5227413E0,2.7034461E0,2.6991715E0,6.1216455E0,3.7318199E0,1.6761533E0,0E0,3.7425697E0,0E0,0E0,4.3179097E0,7.4387007E0,3.3324661E0,1.9373467E0,3.5003588E0,3.6426275E0,4.5863786E0,3.4247558E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,32,-1,34,-1,-1,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5139853E1,6.047431E1,-2.0741408E0,7.638886E-1,9.880227E-1,1E0,9.6793777E-1,2.4914272E1,9.14128E-1,1.3931105E-1,1.5552116E-2,9.6573997E-1,-2.3308542E0,7.930013E1,7.769377E1,-5E-1,4.327756E-1,-9.584976E-2,2.468883E1,-9.5397765E-3,-8.779954E-2,2.6392649E1,-8.230647E-2,3.916738E-1,-4.0857756E-1,3.1283539E1,-6.9328123E-1,-5E-1,9.813065E-1,-1.4538946E-2,6.533367E-2,-9.2358194E-2,1.7949034E-2,-1.9147256E-2,1.1239342E-1,7.4610166E-2,-7.1016573E-3,1.0709727E-1,-7.5652055E-2,-7.391635E-2,3.3102993E-2,-2.3672214E-2,9.439766E-2,-1.7731547E-3,1.3963628E-2,2.1875594E-2,-2.7172536E-2,-8.757416E-5,-3.289275E-2,-2.5853226E-2,5.9839007E-2],"split_indices":[0,2,4,7,8,11,7,0,7,6,0,7,4,2,2,10,7,0,1,0,0,0,3,6,3,1,7,10,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.864137E2,5.2523792E1,9.338899E2,4.4726788E1,7.7970037E0,6.1671577E1,8.722183E2,2.6814903E1,1.7911884E1,6.5693927E0,1.2276108E0,4.2810303E1,1.8861275E1,6.7890875E2,1.9330957E2,2.1995197E1,4.8197064E0,5.1021075E0,1.2809776E1,1.0077437E0,5.561649E0,2.8408829E1,1.4401474E1,1.4943533E1,3.917742E0,5.989312E2,7.9977486E1,1.7035579E2,2.2953785E1,1.0263765E1,1.1731432E1,3.187571E0,1.6321356E0,1.1178033E1,1.6317432E0,8.465318E0,1.994351E1,1.2475065E1,1.926408E0,1.181596E1,3.1275737E0,2.253351E0,1.6643909E0,3.7225482E2,2.2667644E2,1.9228725E1,6.074876E1,9.180723E1,7.854856E1,5.6109505E0,1.7342834E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-3.229936E-4,4.50142E-2,-2.3760175E-2,1.515314E-1,-5.368066E-2,-8.176376E-2,4.0241495E-2,1.8131325E-1,-6.5642434E-1,-1.1274513E-1,2.923767E-1,-3.84509E-2,-4.6779588E-1,2.5352716E-1,-3.240336E-2,2.580495E-1,-7.508868E-2,-1.05226316E-1,4.0748682E-2,-5.7160634E-1,-5.5795524E-2,6.77404E-2,1.1525855E0,-2.9545045E-1,3.290019E-2,-6.080653E-1,4.3096653E-1,-7.823493E-3,5.977229E-1,-6.156472E-2,6.8455046E-1,2.8558997E-2,-3.9906073E-2,-2.0053934E-2,7.160031E-2,-3.360968E-2,3.9607238E-2,-1.1629275E-1,-2.0120597E-2,1.5549101E-1,-9.826549E-3,3.205278E-2,-6.09261E-2,1.3403955E-1,4.5938566E-2,-6.902241E-2,-8.734827E-3,-3.2905329E-3,4.035282E-2,7.7967115E-2,-7.207455E-2,9.637299E-2,-3.962293E-2,4.8107043E-2,-2.230349E-2,-7.154731E-2,6.703486E-2,4.681797E-3,-2.7629588E-2,1.1226217E-1,1.2924491E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":81,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,35,37,39,41,43,45,47,49,51,53,55,57,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.048485E0,3.5432076E0,2.41803E0,4.016794E0,3.6156507E0,5.692812E0,4.8100495E0,3.1086183E0,1.6918132E0,3.8995986E0,4.91379E0,5.660973E0,4.594616E0,7.097818E0,4.893949E0,2.304984E0,3.8097296E0,0E0,5.5178005E-1,3.380467E0,9.383936E0,3.8826919E0,7.252693E-2,5.4496727E0,5.9183316E0,5.275243E0,2.68439E0,4.9268665E0,3.7265263E0,5.2240167E0,2.0813732E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,36,38,40,42,44,46,48,50,52,54,56,58,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.334258E-1,4.282872E-2,3.050852E-1,9.995463E-1,9.750645E-1,2.3101075E-1,8.141346E-1,8.660254E-1,-5E-1,-1.5504476E-1,1.11659005E-1,3.7770796E-1,3.323273E1,1.159849E-1,4.9060223E-1,9.946708E-1,3.6826653E1,-1.05226316E-1,-3.2925713E-1,4.744379E-1,-1.3500726E-1,1.9353612E-1,2.8260836E1,3.2622766E-1,7.829801E-1,-5.049611E-1,-2.5881904E-1,-2.1662362E-1,2.6512897E1,1.4425509E-1,1.7311317E0,2.8558997E-2,-3.9906073E-2,-2.0053934E-2,7.160031E-2,-3.360968E-2,3.9607238E-2,-1.1629275E-1,-2.0120597E-2,1.5549101E-1,-9.826549E-3,3.205278E-2,-6.09261E-2,1.3403955E-1,4.5938566E-2,-6.902241E-2,-8.734827E-3,-3.2905329E-3,4.035282E-2,7.7967115E-2,-7.207455E-2,9.637299E-2,-3.962293E-2,4.8107043E-2,-2.230349E-2,-7.154731E-2,6.703486E-2,4.681797E-3,-2.7629588E-2,1.1226217E-1,1.2924491E-2],"split_indices":[6,4,4,7,8,3,4,9,10,3,7,7,0,3,6,8,1,0,3,4,3,6,0,6,8,8,10,3,0,5,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.847323E2,3.3526694E2,6.494654E2,1.6098608E2,1.7428085E2,3.405518E2,3.089136E2,1.5601099E2,4.97509E0,1.494476E2,2.4833254E1,3.0718518E2,3.3366615E1,7.7851425E1,2.3106216E2,1.20069916E2,3.594108E1,2.8484674E0,2.1266227E0,1.5502437E1,1.3394516E2,2.0546467E1,4.286788E0,6.60693E1,2.4111586E2,2.9141895E1,4.22472E0,4.480664E1,3.3044785E1,2.2290967E2,8.152493E0,1.1578268E2,4.287238E0,3.1666012E1,4.275066E0,1.058316E0,1.0683067E0,5.146584E0,1.0355852E1,2.5261724E0,1.3141899E2,1.5343763E1,5.202703E0,2.6383424E0,1.6484458E0,2.2006262E1,4.4063038E1,2.055342E2,3.558167E1,1.743997E0,2.73979E1,2.4692922E0,1.7554278E0,1.3317669E1,3.1488974E1,1.2678776E0,3.1776909E1,1.4865833E2,7.425135E1,3.9862096E0,4.1662827E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-9.5308795E-5,1.5093932E-2,-7.3711224E-2,3.4586939E-3,3.007109E-1,2.0387914E-2,-3.056679E-1,9.147758E-3,-9.2879754E-1,-2.2009389E-1,6.9012606E-1,-1.0029451E-1,3.4991845E-1,-5.215274E-1,2.6685828E-1,2.320062E-1,-8.301452E-3,-1.3102575E-1,-3.851867E-3,7.576945E-2,-6.49211E-1,1.5388684E-1,3.4956947E-1,5.550887E-1,-1.7206337E-1,5.5656606E-1,-2.40122E-1,-3.451807E-1,-1.1648525E0,4.051051E-3,1.06560014E-1,9.592003E-2,1.7617485E-3,-9.959225E-3,5.7913195E-3,5.479383E-2,-2.5224615E-2,-9.75773E-2,2.0279922E-2,-3.5532773E-2,6.771488E-2,8.5607335E-2,-2.8081557E-2,-7.241326E-2,-8.876577E-3,-1.7422995E-2,7.973272E-2,6.4789616E-2,-7.85826E-2,1.2065114E-2,-5.400885E-2,-1.8736047E-1,-6.054109E-2,-6.453805E-2,2.3525985E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":82,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,-1,35,37,-1,39,41,43,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1017164E0,2.7132585E0,3.6845715E0,4.176162E0,6.6334343E0,4.840132E0,6.157527E0,3.0430183E0,1.5714998E0,1.8813481E0,4.8174267E0,4.291807E0,4.1098814E0,3.6483564E0,2.933444E0,8.841379E0,4.395571E0,0E0,0E0,1.5998385E0,1.8655589E0,0E0,3.5925627E0,2.5153036E0,3.6685197E0,4.4414334E0,4.9467025E0,2.7384052E0,1.744381E0,1.8837228E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,19,19,20,20,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,-1,36,38,-1,40,42,44,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3194726E-1,4.1781852E-1,7.205731E1,4.1658098E-1,2.8942356E1,6.19975E1,8.12179E1,-9.659258E-1,9.6573997E-1,5.7252533E1,-3.0236432E-1,2.4425446E1,7.305212E-1,7.9444496E1,9.634706E-1,-2.5235417E-1,-5.9387438E-2,-1.3102575E-1,-3.851867E-3,5E-1,2.8149744E1,1.5388684E-1,6.2840515E1,4.8880367E1,2.5494375E1,3.872228E-2,-3.5506827E-1,1E0,4.4999245E-1,1E0,1.06560014E-1,9.592003E-2,1.7617485E-3,-9.959225E-3,5.7913195E-3,5.479383E-2,-2.5224615E-2,-9.75773E-2,2.0279922E-2,-3.5532773E-2,6.771488E-2,8.5607335E-2,-2.8081557E-2,-7.241326E-2,-8.876577E-3,-1.7422995E-2,7.973272E-2,6.4789616E-2,-7.85826E-2,1.2065114E-2,-5.400885E-2,-1.8736047E-1,-6.054109E-2,-6.453805E-2,2.3525985E-2],"split_indices":[6,6,2,6,0,2,2,10,7,2,3,1,5,2,7,3,3,0,0,11,0,0,2,2,1,8,3,11,6,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8329034E2,8.157673E2,1.6752307E2,7.848085E2,3.09588E1,1.1982508E2,4.7697994E1,7.810325E2,3.7760384E0,1.3430982E1,1.7527817E1,8.8214386E1,3.1610695E1,3.4703E1,1.2994992E1,5.5819454E1,7.25213E2,2.3131704E0,1.462868E0,8.437209E0,4.993773E0,4.011525E0,1.3516293E1,8.041957E0,8.0172424E1,2.3453424E1,8.157271E0,2.844287E1,6.2601323E0,1.0534075E1,2.460918E0,1.1918495E1,4.390096E1,3.0466467E2,4.2054834E2,3.183783E0,5.253426E0,3.5050735E0,1.4886992E0,4.26151E0,9.254783E0,5.8951554E0,2.146801E0,9.502126E0,7.06703E1,5.8804617E0,1.7572962E1,3.0335467E0,5.1237245E0,8.502581E0,1.9940287E1,1.7253002E0,4.534832E0,2.2953744E0,8.2387E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-2.2157341E-4,-2.4990289E-1,3.9670398E-3,-4.8880723E-1,3.9976165E-1,2.5490752E-1,-2.6331241E-3,4.1869027E-3,-7.820984E-1,1.0106321E-1,-1.9901296E-1,1.22724034E-1,1.4027531E-1,-5.7786846E-1,1.8402714E-3,-5.68452E-2,5.273364E-1,-1.9525518E-1,-1.0497862E-1,-7.896769E-2,5.3533293E-2,3.3080038E-1,-6.136166E-1,3.0111909E-2,-1.2020563E-1,1.5980789E-1,-1.03251925E-2,1.0515636E-1,-1.4294835E-2,-6.1575174E-2,2.4870789E-2,-2.1056937E-2,5.922831E-2,-1.0695801E-1,2.9633403E-2,-6.949856E-2,9.147125E-2,2.4262415E-2,-3.969967E-2,-5.5843867E-2,-5.656641E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":83,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,-1,21,23,25,-1,27,29,-1,-1,-1,31,33,35,-1,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.0294752E0,2.7161655E0,1.6042236E0,1.7852736E0,1.9995587E0,2.5945807E0,2.4311454E0,1.97493E0,1.009748E0,0E0,1.8621244E0,0E0,3.5545359E0,2.80288E0,1.8043869E0,0E0,1.3593976E0,8.346906E-1,0E0,0E0,0E0,2.853429E0,2.4153652E0,3.630342E0,0E0,3.1922183E0,2.2280264E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,12,12,13,13,14,14,16,16,17,17,21,21,22,22,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,-1,22,24,26,-1,28,30,-1,-1,-1,32,34,36,-1,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.790238E-1,7.72457E1,-6.469824E-1,-7.0710677E-1,1E0,-7.638886E-1,-6.2025577E-1,2.6068876E1,-3.2323802E0,1.0106321E-1,4.520722E-1,1.22724034E-1,-1.1486849E0,6.2840515E1,-2.0435398E0,-5.68452E-2,2.7536633E1,5.2707773E-1,-1.0497862E-1,-7.896769E-2,5.3533293E-2,2.9260033E-1,5.6670177E-1,5.9788376E1,-1.2020563E-1,4.471589E-1,2.3369553E1,1.0515636E-1,-1.4294835E-2,-6.1575174E-2,2.4870789E-2,-2.1056937E-2,5.922831E-2,-1.0695801E-1,2.9633403E-2,-6.949856E-2,9.147125E-2,2.4262415E-2,-3.969967E-2,-5.5843867E-2,-5.656641E-4],"split_indices":[3,2,3,10,11,7,3,1,4,0,8,0,4,2,4,0,0,8,0,0,0,8,7,2,0,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.824248E2,1.5241203E1,9.6718365E2,1.132442E1,3.9167838E0,2.3822504E1,9.4336115E2,4.5917897E0,6.73263E0,1.5983312E0,2.3184526E0,1.488749E0,2.2333755E1,6.290457E0,9.370707E2,2.1508625E0,2.4409275E0,2.650794E0,4.0818357E0,1.2431719E0,1.0752807E0,1.8276173E1,4.0575814E0,3.6687381E0,2.6217184E0,6.613797E1,8.709327E2,1.0505023E0,1.3904251E0,1.1626523E0,1.4881418E0,6.0158205E0,1.2260353E1,2.586231E0,1.4713503E0,2.1339297E0,1.5348083E0,5.8065815E1,8.072155E0,6.353724E0,8.64579E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-3.7128394E-4,-6.235807E-2,1.264171E-3,6.350075E-2,-4.8276337E-4,-2.735396E-1,3.7634692E-3,-5.332363E-1,3.8019374E-1,2.4962763E-1,-2.6492442E-3,-2.1558048E-2,-1.0858591E-1,9.475423E-2,-1.9117696E-2,4.472295E-2,-2.6850617E-2,-5.4614574E-2,1.455402E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":84,"left_children":[1,-1,3,-1,5,7,9,11,13,15,17,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.0026574E0,0E0,1.0868121E0,0E0,1.1369463E0,2.751902E0,1.5232022E0,1.7254133E0,1.7542428E0,2.6343715E0,2.1025326E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,4,4,5,5,6,6,7,7,8,8,9,9,10,10],"right_children":[2,-1,4,-1,6,8,10,12,14,16,18,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-6.235807E-2,2.1896584E1,6.350075E-2,-7.790238E-1,7.72457E1,-6.469824E-1,-2.5881904E-1,1E0,8.695894E-1,-6.2025577E-1,-2.1558048E-2,-1.0858591E-1,9.475423E-2,-1.9117696E-2,4.472295E-2,-2.6850617E-2,-5.4614574E-2,1.455402E-4],"split_indices":[0,0,1,0,3,2,3,10,11,8,3,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8196564E2,1.5748154E0,9.803908E2,1.6985596E0,9.7869226E2,1.4015213E1,9.6467706E2,1.0162474E1,3.8527393E0,2.355738E1,9.411197E2,7.335832E0,2.826642E0,1.6028278E0,2.2499115E0,1.7152674E1,6.4047074E0,6.0644903E0,9.350552E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"19","size_leaf_vector":"1"}},{"base_weights":[-4.4526218E-4,3.967356E-3,-2.2870222E-1,-7.9400395E-4,7.090507E-1,-5.062252E-1,1.9999902E-1,-4.698564E-1,2.629623E-3,3.7203568E-1,1.23192504E-1,1.04261585E-1,-7.762843E-1,4.7408038E-1,-4.486744E-2,-8.230253E-2,4.7825214E-2,7.7724834E-3,-3.7997374E-1,-1.5350014E-2,6.842506E-1,-3.1943926E-1,6.467335E-2,-8.8601965E-1,-6.0637235E-3,7.498691E-1,7.2767544E-3,4.426099E-2,1.5135757E-4,-1.1611507E-1,-3.5938253E-3,8.662862E-2,2.1520955E-2,-5.603214E-2,9.186096E-3,-1.0319616E-1,-2.5119454E-2,4.6686376E-3,1.0531247E-1,-5.94466E-2,5.3637363E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":85,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,-1,-1,-1,27,29,-1,31,33,-1,35,-1,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.906999E-1,3.2403934E0,2.3206236E0,1.5422168E0,6.825602E-1,1.9945426E0,1.6434343E0,2.7236662E0,1.8793669E0,9.860608E-1,0E0,1.2274255E0,5.8752966E-1,7.85426E-1,0E0,0E0,0E0,2.5629506E0,3.3629212E0,0E0,1.16811275E-1,3.6485112E-1,0E0,3.8990974E-1,0E0,7.7224064E-1,1.3667517E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,17,17,18,18,20,20,21,21,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,-1,-1,-1,28,30,-1,32,34,-1,36,-1,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.615817E1,8.5373924E1,3.223534E-1,-8.311706E-1,8.660254E-1,-3.3929232E-1,-2.5881904E-1,8.464167E1,8.37946E1,-5.947267E-1,1.23192504E-1,-1.8369701E-16,4.4564334E-1,2.635529E0,-4.486744E-2,-8.230253E-2,4.7825214E-2,-6.8077344E-1,1E0,-1.5350014E-2,2.5157377E-1,2.9843912E1,6.467335E-2,6.994583E-1,-6.0637235E-3,1.9322288E0,7.7913755E-1,4.426099E-2,1.5135757E-4,-1.1611507E-1,-3.5938253E-3,8.662862E-2,2.1520955E-2,-5.603214E-2,9.186096E-3,-1.0319616E-1,-2.5119454E-2,4.6686376E-3,1.0531247E-1,-5.94466E-2,5.3637363E-2],"split_indices":[2,2,3,7,9,3,10,2,2,7,0,10,6,4,0,0,0,7,11,0,6,0,0,7,0,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8170654E2,9.640523E2,1.765425E1,9.58578E2,5.474311E0,1.0606934E1,7.047314E0,5.958654E0,9.526193E2,4.3695E0,1.1048106E0,3.4413838E0,7.16555E0,5.1432934E0,1.904021E0,4.4375887E0,1.5210651E0,9.40951E2,1.1668347E1,1.817889E0,2.551611E0,2.1630569E0,1.278327E0,6.0064673E0,1.1590829E0,2.8519585E0,2.2913349E0,1.2362322E1,9.285887E2,2.841428E0,8.826919E0,1.2280661E0,1.323545E0,1.1356404E0,1.0274165E0,4.3750815E0,1.6313856E0,1.2070429E0,1.6449156E0,1.0142632E0,1.2770716E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-4.1115255E-4,-2.5908828E-3,4.5506963E-1,1.0087668E-2,-1.02331005E-1,-1.9788848E-2,7.629374E-2,3.6869422E-1,-5.2972203E-3,-1.4742556E-1,7.933848E-1,-2.570516E-1,5.779688E-1,4.274799E-3,-2.868832E-1,-6.015338E-2,-7.6087004E-1,-2.8108433E-2,1.1995722E-1,5.490615E-2,-7.414959E-2,2.2344526E-3,9.213256E-2,1.0637328E-3,-4.3762486E-2,-4.2674664E-2,5.0595015E-2,-4.928248E-2,3.354691E-3,-9.086394E-2,-1.20935775E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":86,"left_children":[1,3,5,7,9,-1,-1,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.76569E-1,1.2387255E0,1.0927348E0,4.7978797E0,4.579196E0,0E0,0E0,4.833239E0,2.2505114E0,5.630266E0,2.7165716E0,4.1786838E0,5.1525154E0,2.2765882E0,3.259763E0,3.8234825E0,1.1306634E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16],"right_children":[2,4,6,8,10,-1,-1,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.383222E1,2.1730204E0,2.2611569E-1,1.9985594E-2,9.9843544E-1,-1.9788848E-2,7.629374E-2,2.0519462E-1,9.995463E-1,9.634706E-1,2.4680831E0,-5E-1,2.0057541E-1,8.615817E1,1.3018756E0,2.866701E1,9.9325687E-1,-2.8108433E-2,1.1995722E-1,5.490615E-2,-7.414959E-2,2.2344526E-3,9.213256E-2,1.0637328E-3,-4.3762486E-2,-4.2674664E-2,5.0595015E-2,-4.928248E-2,3.354691E-3,-9.086394E-2,-1.20935775E-2],"split_indices":[1,4,8,5,7,0,0,6,7,7,4,9,3,2,4,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.8143884E2,9.77754E2,3.6847882E0,8.6828064E2,1.0947337E2,1.2951428E0,2.3896453E0,3.477377E1,8.335069E2,1.0502151E2,4.451868E0,8.65786E0,2.611591E1,8.070572E2,2.644967E1,9.290269E1,1.2118819E1,1.3057694E0,3.1460986E0,3.1998837E0,5.457976E0,1.0381504E1,1.5734405E1,7.965641E2,1.0493106E1,2.2875887E1,3.5737824E0,1.5779504E1,7.7123184E1,9.504263E0,2.6145558E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[-3.4121991E-4,-6.2694163E-3,1.6819516E-1,-2.4348707E-3,-6.9962454E-1,5.6172353E-1,-9.432116E-3,-6.592739E-3,3.585205E-1,-9.9710196E-1,2.744405E-2,-6.0139E-2,7.800608E-1,-5.042215E-1,2.6311076E-1,-4.0721605E-3,-5.850728E-1,-2.9571605E-1,7.1841305E-1,-2.44585E-2,-1.2747912E-1,1.0310801E0,-1.2287821E-2,-7.318741E-1,4.7258187E-2,-2.1161826E-2,8.254756E-1,-2.3646329E-2,1.6851499E-4,-9.613785E-3,-7.161844E-2,2.0902906E-2,-8.179307E-2,9.887922E-2,-4.0682364E-2,1.3281928E-1,-2.4911564E-2,1.5195839E-2,-1.0094438E-1,-2.0176634E-2,8.2232736E-2,9.165876E-2,2.5385743E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":87,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,-1,21,23,25,27,29,31,33,-1,-1,35,-1,37,-1,39,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.813766E-1,2.5209064E0,2.3383343E0,1.4200206E0,1.78475E0,3.109287E0,3.366367E0,1.3606867E0,2.7494793E0,5.681119E-1,0E0,0E0,2.20933E0,2.3161016E0,2.594439E0,1.2470635E0,1.9068122E-1,1.3656003E0,2.6058164E0,0E0,0E0,3.1060977E0,0E0,2.0124187E0,0E0,1.9455653E0,5.0506353E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,-1,22,24,26,28,30,32,34,-1,-1,36,-1,38,-1,40,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.243951E-1,7.004167E-1,2.848865E1,6.569853E-1,3.409344E1,2.7096775E1,3.0246916E1,9.025015E1,2.700327E-1,-7.0710677E-1,2.744405E-2,-6.0139E-2,3.8757253E-1,9.8867756E-1,8.695894E-1,1.088585E-1,-9.979172E-1,3.385632E1,4.2082667E-1,-2.44585E-2,-1.2747912E-1,9.817894E-1,-1.2287821E-2,-5E-1,4.7258187E-2,4.4564334E-1,3.9628035E-1,-2.3646329E-2,1.6851499E-4,-9.613785E-3,-7.161844E-2,2.0902906E-2,-8.179307E-2,9.887922E-2,-4.0682364E-2,1.3281928E-1,-2.4911564E-2,1.5195839E-2,-1.0094438E-1,-2.0176634E-2,8.2232736E-2,9.165876E-2,2.5385743E-2],"split_indices":[3,3,1,3,1,0,0,2,6,9,0,0,6,7,8,6,7,1,6,0,0,3,0,9,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.801888E2,9.478127E2,3.237611E1,9.435977E2,4.2149806E0,9.396359E0,2.2979752E1,9.3382263E2,9.775028E0,3.2107682E0,1.0042121E0,1.2078044E0,8.188555E0,7.860074E0,1.5119678E1,9.307741E2,3.04857E0,3.5322294E0,6.2427993E0,1.3724142E0,1.838354E0,6.2962627E0,1.8922926E0,6.5778046E0,1.2822695E0,1.0682233E1,4.437444E0,2.1532997E1,9.092411E2,1.0111372E0,2.0374327E0,2.101122E0,1.4311075E0,5.1311193E0,1.1116798E0,5.079826E0,1.2164365E0,1.680219E0,4.8975854E0,9.424988E0,1.2572452E0,3.3068573E0,1.130587E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"43","size_leaf_vector":"1"}},{"base_weights":[-3.628837E-4,6.016292E-2,-1.669224E-2,3.0417586E-2,4.7757828E-1,-4.2996624E-1,-1.107801E-2,-1.048245E-1,1.258225E-1,7.3966914E-1,-1.3804525E-1,-7.7176434E-1,3.2321578E-1,6.0081214E-2,-4.637152E-2,3.9323908E-1,-2.0514742E-1,1.0855072E0,6.9548056E-2,-9.945E-2,1.0922543E0,-9.7062185E-2,5.2022606E-1,-1.0937518E0,9.323541E-3,-3.7111614E-2,1.0183417E-1,1.2220292E-1,-1.9225967E-1,-1.865885E-1,7.924741E-3,3.3004743E-3,1.3284646E-1,-5.384515E-2,-2.0622302E-4,-3.6522911E-3,1.3872601E-1,2.2548655E-2,-1.7164242E-2,4.9942378E-2,-5.4008167E-2,1.4448038E-1,3.4442946E-2,8.116389E-2,-4.937917E-5,-2.4100615E-2,-1.2674217E-1,-3.0476531E-2,3.0919814E-2,5.1270397E-3,5.797389E-2,-3.2283194E-2,6.6203974E-2,7.9920776E-2,-2.2210082E-2,-1.1358076E-2,8.3917E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":88,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,-1,43,45,47,-1,-1,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.698638E-1,2.5742059E0,1.7882651E0,2.5382044E0,2.3289373E0,2.909009E0,1.9201707E0,4.152658E0,6.146103E0,3.019133E0,3.225449E0,1.8716354E0,2.274551E0,3.9981456E0,3.891107E0,4.674657E0,4.6347523E0,2.1879835E0,4.171758E0,1.2796379E0,1.3506021E0,0E0,5.1984787E-1,4.7195053E-1,3.9111054E-1,0E0,0E0,6.593362E0,5.844393E0,5.171504E0,3.418979E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,22,22,23,23,24,24,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,-1,44,46,48,-1,-1,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.8280953E-1,1.7819522E-1,1.861031E-1,2.8860775E1,1.8970186E-1,8.3355576E-1,5.5160786E1,-8.660254E-1,2.913117E1,2.7015806E1,3.399529E-1,9.634706E-1,2.5818441E-2,3.1077805E-1,6.1207073E1,1.5600148E-1,5E-1,-4.5976017E-2,8.958393E-1,2.5272247E1,3.2443546E1,-9.7062185E-2,6.387494E-1,-7.0710677E-1,-4.3373916E-1,-3.7111614E-2,1.0183417E-1,2.0554134E-1,9.951053E-1,-3.3346877E-1,-7.0710677E-1,3.3004743E-3,1.3284646E-1,-5.384515E-2,-2.0622302E-4,-3.6522911E-3,1.3872601E-1,2.2548655E-2,-1.7164242E-2,4.9942378E-2,-5.4008167E-2,1.4448038E-1,3.4442946E-2,8.116389E-2,-4.937917E-5,-2.4100615E-2,-1.2674217E-1,-3.0476531E-2,3.0919814E-2,5.1270397E-3,5.797389E-2,-3.2283194E-2,6.6203974E-2,7.9920776E-2,-2.2210082E-2,-1.1358076E-2,8.3917E-3],"split_indices":[6,6,6,1,3,8,2,9,1,0,3,7,7,3,2,6,11,4,7,0,1,0,8,9,4,0,0,3,7,8,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7928253E2,2.0749706E2,7.7178546E2,1.9469576E2,1.2801295E1,9.330956E0,7.624545E2,8.049319E1,1.1420257E2,8.837422E0,3.9638724E0,6.4013276E0,2.929629E0,2.5255254E2,5.0990198E2,1.3005634E1,6.748756E1,5.312668E0,1.088899E2,2.8271096E0,6.010313E0,1.5407026E0,2.4231699E0,4.249334E0,2.1519935E0,1.6988431E0,1.2307861E0,2.0307494E2,4.9477604E1,1.4165349E2,3.6824847E2,1.0136501E1,2.8691328E0,2.4926592E1,4.2560963E1,1.3122387E0,4.000429E0,6.617223E1,4.2717667E1,1.1418141E0,1.6852955E0,3.4512641E0,2.559049E0,1.1954621E0,1.2277079E0,1.1229931E0,3.1263409E0,1.0431199E0,1.1088736E0,1.7678044E2,2.629449E1,4.34576E1,6.020007E0,4.177726E0,1.3747575E2,1.415026E2,2.2674588E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[8.839081E-5,1.5890973E-2,-6.1569396E-2,2.4060562E-2,-8.133186E-1,-9.503239E-2,-2.283333E-2,1.2139716E-3,3.9908117E-1,-1.1084836E0,3.3271722E-2,4.0596065E-1,-7.165591E-2,1.4658658E-2,-3.190942E-1,-5.0444865E-1,4.9959525E-1,-1.21308245E-1,-2.79708E-2,-6.6360694E-1,6.642039E-1,-2.3417717E-2,-4.7173157E-1,-5.82379E-4,2.7662983E-2,-4.7931973E-2,5.2030444E-2,-1.1219984E-1,3.8330168E-2,6.6007964E-2,-2.9117276E-3,2.2775424E-3,-1.0941055E-1,-4.3642145E-2,8.004355E-2,6.4579393E-3,-3.0461146E-2,-8.1049405E-2,3.78916E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":89,"left_children":[1,3,5,7,9,-1,11,13,15,17,-1,19,21,23,25,27,29,-1,-1,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.555578E-1,5.307812E0,6.8662095E0,6.631002E0,2.95478E0,0E0,4.0641184E0,3.1507356E0,4.2880754E0,2.0768929E-1,0E0,5.9241743E0,3.3448431E0,3.7688074E0,4.21328E0,3.1419277E0,3.4552097E0,0E0,0E0,1.3136184E0,2.8220053E0,3.8855085E0,5.68379E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16,19,19,20,20,21,21,22,22],"right_children":[2,4,6,8,10,-1,12,14,16,18,-1,20,22,24,26,28,30,-1,-1,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.37946E1,-3.4964746E-1,3.287209E1,5.631029E-1,-9.503239E-2,1.3931105E-1,2.9224489E0,-1.6280702E-1,2.2699699E-1,3.3271722E-2,7.3108055E1,9.951053E-1,5.241272E-1,4.5957386E-1,2.4680831E0,4.8320037E-1,-1.21308245E-1,-2.79708E-2,2.5881904E-1,3.0246916E1,1.3237942E0,8.660254E-1,-5.82379E-4,2.7662983E-2,-4.7931973E-2,5.2030444E-2,-1.1219984E-1,3.8330168E-2,6.6007964E-2,-2.9117276E-3,2.2775424E-3,-1.0941055E-1,-4.3642145E-2,8.004355E-2,6.4579393E-3,-3.0461146E-2,-8.1049405E-2,3.78916E-2],"split_indices":[11,2,8,0,3,0,6,4,7,3,0,2,7,3,6,4,3,0,0,9,0,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7870667E2,7.7963293E2,1.9907375E2,7.729882E2,6.644698E0,7.3313375E0,1.917424E2,7.295468E2,4.344141E1,5.309888E0,1.3348105E0,1.8852402E1,1.7289E2,7.0107404E2,2.8472801E1,3.9465792E0,3.949483E1,4.3030944E0,1.0067934E0,3.3612783E0,1.5491124E1,1.5523183E2,1.765818E1,6.511417E2,4.993232E1,2.426923E1,4.20357E0,2.1718783E0,1.7747008E0,3.010757E1,9.387259E0,1.6606504E0,1.700628E0,1.4635406E0,1.4027584E1,1.1881885E2,3.641298E1,1.2662615E1,4.9955645E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-2.7202896E-4,-2.4622835E-3,4.5163235E-1,9.519906E-4,-3.832405E-1,-9.566183E-3,7.542227E-2,-5.4663923E-3,2.1431093E-1,-7.389465E-1,3.2523602E-1,-1.7579579E-3,-6.7474186E-1,3.64286E-1,-4.0909666E-1,-9.555657E-1,1.680301E-2,6.3532695E-2,-4.29488E-3,1.5332339E-3,-8.413353E-3,-9.583415E-2,2.5367752E-2,1.9020028E-2,1.0163281E-1,-7.919137E-2,2.1067604E-2,-2.2102486E-2,-1.1586169E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":90,"left_children":[1,3,5,7,9,-1,-1,11,13,15,17,19,21,23,25,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.68659E-1,1.2663989E0,8.538758E-1,1.3242428E0,2.4218833E0,0E0,0E0,2.3291657E0,2.7893891E0,1.3528807E0,4.3691778E-1,1.317243E0,1.6046872E0,2.4507148E0,1.5779265E0,4.9686718E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15],"right_children":[2,4,6,8,10,-1,-1,12,14,16,18,20,22,24,26,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.42315E0,3.7357094E0,7.0252746E-1,7.243951E-1,-1.7213356E-2,-9.566183E-3,7.542227E-2,7.004167E-1,7.1680595E1,8.179863E1,3.4561232E-1,4.3194726E-1,3.409344E1,3.397678E1,4.0344193E1,-5E-1,1.680301E-2,6.3532695E-2,-4.29488E-3,1.5332339E-3,-8.413353E-3,-9.583415E-2,2.5367752E-2,1.9020028E-2,1.0163281E-1,-7.919137E-2,2.1067604E-2,-2.2102486E-2,-1.1586169E-1],"split_indices":[4,4,8,3,7,0,0,3,2,2,7,6,1,1,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.765319E2,9.728115E2,3.7203946E0,9.651549E2,7.6566277E0,1.5680766E0,2.152318E0,9.379144E2,2.7240484E1,5.068746E0,2.5878818E0,9.337432E2,4.1712146E0,2.2293036E1,4.94745E0,4.048293E0,1.020453E0,1.0109112E0,1.5769705E0,7.7398083E2,1.5976239E2,3.1705067E0,1.000708E0,1.8614843E1,3.6781921E0,2.886678E0,2.0607724E0,1.329029E0,2.719264E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-2.5624144E-4,-1.8545245E-1,4.824007E-3,-5.3917235E-1,-3.0886E-3,2.0005795E-1,-2.0928069E-3,-9.580551E-2,1.9328529E-1,-4.9961686E-1,4.3118158E-1,-1.963871E-1,4.7775394E-1,-3.7204513E-1,7.7276058E-3,-5.2458E-1,1.178631E-1,2.9546538E-1,-8.2330495E-1,8.776001E-1,6.4814435E-3,-8.834255E-2,1.0944912E-1,6.5060246E-1,-4.4276878E-1,-5.8595467E-1,1.5298455E-2,-7.339439E-1,1.1166379E-2,-6.536485E-2,-1.3492705E-2,-6.2509194E-2,9.8302E-2,-9.3116134E-2,-1.1180116E-2,1.095983E-1,6.0442444E-3,-6.8344936E-2,3.6891237E-2,4.458141E-2,-6.934019E-2,1.3737075E-1,2.8006772E-2,-7.792195E-2,2.1419583E-2,-6.965206E-2,1.2513134E-2,8.610573E-2,-4.0261593E-2,-1.2307679E-1,2.0916775E-2,6.728882E-2,6.9069036E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":91,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,29,-1,31,33,35,37,-1,39,41,43,45,47,49,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.200592E-1,1.682545E0,1.285793E0,2.9084902E0,4.14704E0,3.6804793E0,3.346295E0,0E0,3.4911287E0,2.5518003E0,1.940159E0,3.0654478E0,3.3828E0,1.982382E0,2.297096E0,6.477511E-2,0E0,2.7228959E0,4.0537024E-1,8.2535076E-1,1.8192091E0,0E0,3.1896129E0,4.1113024E0,9.780803E-1,1.2955122E0,3.6861527E0,2.2051678E0,2.516005E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20,22,22,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,30,-1,32,34,36,38,-1,40,42,44,46,48,50,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.4380617E1,5E-1,2.4327875E1,8.429415E-1,4.171936E-1,-1.626685E0,2.48166E1,-9.580551E-2,2.9869512E-1,-5.790878E-1,7.638886E-1,-8.660254E-1,-3.323579E-1,9.209713E-1,3.8152397E1,-3.5506827E-1,1.178631E-1,-2.6557355E0,9.659258E-1,2.380544E1,9.14128E-1,-8.834255E-2,4.6805653E1,7.1767694E-1,2.4238478E1,2.3119353E-1,-3.2925713E-1,1.9391666E-1,2.4900291E1,-6.536485E-2,-1.3492705E-2,-6.2509194E-2,9.8302E-2,-9.3116134E-2,-1.1180116E-2,1.095983E-1,6.0442444E-3,-6.8344936E-2,3.6891237E-2,4.458141E-2,-6.934019E-2,1.3737075E-1,2.8006772E-2,-7.792195E-2,2.1419583E-2,-6.965206E-2,1.2513134E-2,8.610573E-2,-4.0261593E-2,-1.2307679E-1,2.0916775E-2,6.728882E-2,6.9069036E-4],"split_indices":[0,11,1,8,7,4,1,0,6,3,7,10,4,7,2,3,0,4,9,0,7,0,2,7,1,4,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7595886E2,2.5109472E1,9.5084937E2,7.876104E0,1.7233368E1,3.1578941E1,9.1927045E2,4.814662E0,3.061442E0,7.970137E0,9.263231E0,1.3128787E1,1.8450153E1,2.2817305E1,8.964531E2,2.0416403E0,1.0198015E0,2.3311853E0,5.638952E0,3.996236E0,5.266995E0,3.4623399E0,9.666447E0,1.5780282E1,2.669872E0,1.43692E1,8.448105E0,3.1568396E0,8.9329626E2,1.0247035E0,1.0169368E0,1.0355498E0,1.2956356E0,4.6285844E0,1.0103672E0,2.8842223E0,1.1120137E0,1.5088953E0,3.7580998E0,7.125737E0,2.54071E0,4.4292183E0,1.1351064E1,1.6425723E0,1.0272996E0,1.2453329E1,1.9158702E0,2.4432278E0,6.0048766E0,1.8678585E0,1.2889812E0,4.7093587E0,8.885869E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"53","size_leaf_vector":"1"}},{"base_weights":[-4.2300226E-4,-5.9502404E-2,1.0798201E-3,5.786378E-1,-1.2933892E-3,9.445017E-2,-1.7849581E-2,-7.297487E-2,1.4335111E-3,2.9099238E-1,-1.7984149E-3,6.830619E-2,-3.9327633E-2,-2.861622E-2,3.415144E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":92,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[8.7287545E-1,0E0,1.3366656E0,1.2740479E0,1.931171E0,0E0,0E0,0E0,9.073751E-1,3.139949E0,1.4232281E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-5.9502404E-2,-8.977434E-1,-7.0710677E-1,-7.4410397E-1,9.445017E-2,-1.7849581E-2,-7.297487E-2,-6.4534813E-1,9.818504E-2,2.3261148E1,6.830619E-2,-3.9327633E-2,-2.861622E-2,3.415144E-4],"split_indices":[8,0,8,10,8,0,0,0,8,3,1,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.751109E2,1.46266E0,9.7364825E2,2.9907112E0,9.7065753E2,1.8495144E0,1.141197E0,2.6256995E0,9.6803186E2,9.702651E0,9.583292E2,6.1694617E0,3.5331895E0,1.6283583E1,9.420456E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-4.7034063E-4,-5.9572715E-2,9.990159E-4,5.956627E-2,-6.3285005E-4,-2.542931E-1,3.2608758E-3,-4.8597613E-1,3.8351384E-1,9.996055E-2,-1.0737779E-2,-1.6505195E-2,-1.06185175E-1,1.03421405E-1,-2.5251666E-2,4.673042E-3,7.200169E-2,-1.8310392E-2,1.0060734E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":93,"left_children":[1,-1,3,-1,5,7,9,11,13,15,17,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.542467E-1,0E0,9.461335E-1,0E0,9.617714E-1,2.361751E0,1.2995142E0,1.9020061E0,2.1159234E0,3.9730997E0,3.008935E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,4,4,5,5,6,6,7,7,8,8,9,9,10,10],"right_children":[2,-1,4,-1,6,8,10,12,14,16,18,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-5.9572715E-2,2.1896584E1,5.956627E-2,-7.790238E-1,7.783308E1,-4.0857756E-1,-2.5881904E-1,1E0,-4.22495E-1,-2.7279952E-1,-1.6505195E-2,-1.06185175E-1,1.03421405E-1,-2.5251666E-2,4.673042E-3,7.200169E-2,-1.8310392E-2,1.0060734E-3],"split_indices":[0,0,1,0,3,2,3,10,11,3,3,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7499835E2,1.4049364E0,9.735934E2,1.6682047E0,9.719252E2,1.3721437E1,9.5820374E2,1.0239864E1,3.4815733E0,1.2039569E2,8.378081E2,7.401669E0,2.8381948E0,1.4114866E0,2.0700867E0,1.1186753E2,8.528156E0,8.936861E1,7.4843945E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"19","size_leaf_vector":"1"}},{"base_weights":[-4.264096E-4,-1.9646904E-1,3.991004E-3,-7.992281E-1,4.3561984E-2,3.6318713E-1,-3.5380183E-3,6.783613E-3,-1.0911734E0,5.296555E-1,-2.0302637E-1,1.8968962E-1,7.539722E-1,6.490779E-2,-2.109661E-2,-1.2354346E-1,-3.2467127E-2,8.212359E-1,-3.53443E-2,-9.776102E-2,1.7541935E-1,-2.2078006E-1,6.971899E-1,1.3542597E-1,-4.280146E-2,2.0401368E-1,-9.33937E-2,-5.8395848E-2,4.1031945E-2,9.6366435E-2,1.5866023E-2,4.6140127E-2,-7.260748E-2,1.1843952E-2,-7.192372E-2,-1.0536307E-2,8.9681186E-2,-5.0353475E-2,2.750722E-2,-1.2652371E-3,-5.947731E-2,-2.9094883E-3,-4.3770693E-2,-2.790401E-3,1.7142883E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":94,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,29,-1,-1,31,33,35,-1,-1,37,39,41,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.4572995E-1,3.1484213E0,2.5844316E0,1.6386101E0,2.0660882E0,1.1871934E0,1.1269219E0,0E0,1.1666107E-1,1.7776264E0,3.5611498E0,3.262674E0,4.621275E0,4.2349076E0,1.7313613E0,0E0,0E0,2.8529978E-1,0E0,0E0,2.5562885E0,1.6086395E0,1.2020836E0,0E0,0E0,5.277724E0,3.6452713E0,5.1733565E0,2.5260022E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,17,17,20,20,21,21,22,22,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,30,-1,-1,32,34,36,-1,-1,38,40,42,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,5.0583378E1,1.1521257E-1,4.5971794E1,2.842455E1,1.1371429E-1,5.0252426E1,6.783613E-3,8.8406754E-1,7.0710677E-1,2.978087E1,8.120655E-2,2.3101075E-1,-5E-1,7.935716E-1,-1.2354346E-1,-3.2467127E-2,2.4172243E-1,-3.53443E-2,-9.776102E-2,9.8594815E-1,-4.3373916E-1,-1.3727877E-1,1.3542597E-1,-4.280146E-2,-5.0506437E-1,3.4644893E-1,7.383264E-1,1.9667289E-1,9.6366435E-2,1.5866023E-2,4.6140127E-2,-7.260748E-2,1.1843952E-2,-7.192372E-2,-1.0536307E-2,8.9681186E-2,-5.0353475E-2,2.750722E-2,-1.2652371E-3,-5.947731E-2,-2.9094883E-3,-4.3770693E-2,-2.790401E-3,1.7142883E-2],"split_indices":[6,2,6,2,0,6,2,0,7,9,0,4,3,10,8,0,0,3,0,0,7,4,7,0,0,3,3,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7468646E2,2.0520506E1,9.5416595E2,5.180841E0,1.5339665E1,1.861961E1,9.355463E2,1.4983755E0,3.6824653E0,4.77631E0,1.0563355E1,1.3923414E1,4.6961956E0,1.9044987E2,7.450965E2,2.5842993E0,1.098166E0,3.6433911E0,1.1329188E0,2.947446E0,7.6159096E0,8.009911E0,5.9135036E0,3.0178118E0,1.6783838E0,1.0121735E2,8.923252E1,4.656193E2,2.7947717E2,2.6247487E0,1.0186424E0,6.152369E0,1.4635406E0,5.2199306E0,2.7899795E0,1.2719575E0,4.6415462E0,8.682016E0,9.253533E1,7.773882E1,1.1493698E1,4.3322992E2,3.2389378E1,1.833388E2,9.6138374E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"45","size_leaf_vector":"1"}},{"base_weights":[-6.0394296E-4,-2.6516882E-3,4.2497736E-1,4.9008214E-4,-3.5988966E-1,-1.3269916E-2,7.028703E-1,-5.3891065E-3,1.9847815E-1,-6.968833E-1,3.069872E-1,1.9658301E-2,9.220348E-2,-2.0034015E-3,-6.209825E-1,3.364241E-1,-3.810967E-1,-9.08444E-1,1.5954206E-2,-4.00357E-3,5.7217598E-2,2.8808276E-5,-5.5552382E-2,-9.5962755E-2,1.3775527E-2,1.7213184E-2,9.828084E-2,-7.479523E-2,1.9717036E-2,-2.0556359E-2,-1.10731475E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":95,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,-1,-1,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.5082287E-1,1.0903533E0,8.1778973E-1,1.1230074E0,2.1172729E0,0E0,1.8258953E-1,1.9517388E0,2.3526144E0,1.2197344E0,3.484331E-1,0E0,0E0,1.18345E0,1.4482985E0,2.2738235E0,1.3816721E0,4.5819283E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,13,13,14,14,15,15,16,16,17,17],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,-1,-1,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.42315E0,3.7357094E0,1.2246469E-16,7.243951E-1,-1.7213356E-2,-1.3269916E-2,3.475174E1,7.004167E-1,7.1680595E1,8.179863E1,3.1934212E1,1.9658301E-2,9.220348E-2,9.025015E1,3.0348486E1,3.397678E1,4.0344193E1,-5E-1,1.5954206E-2,-4.00357E-3,5.7217598E-2,2.8808276E-5,-5.5552382E-2,-9.5962755E-2,1.3775527E-2,1.7213184E-2,9.828084E-2,-7.479523E-2,1.9717036E-2,-2.0556359E-2,-1.10731475E-1],"split_indices":[4,4,9,3,7,0,0,3,2,2,1,0,0,2,0,1,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.74001E2,9.7032587E2,3.675092E0,9.6285657E2,7.469324E0,1.3960251E0,2.2790668E0,9.360341E2,2.6822435E1,4.9320235E0,2.5373006E0,1.261611E0,1.0174558E0,9.319119E2,4.122172E0,2.2004602E1,4.817834E0,3.9063165E0,1.0257071E0,1.4668403E0,1.0704603E0,9.2906525E2,2.8466995E0,2.6670346E0,1.4551373E0,1.8554804E1,3.4497974E0,2.7682223E0,2.0496118E0,1.3099914E0,2.596325E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[-5.903359E-4,-6.29876E-2,1.2868479E-2,-1.0260997E-1,2.2539133E-1,6.5814763E-1,9.794681E-3,7.460834E-2,-2.1338671E-1,-3.3237264E-1,5.4818517E-1,-1.6864328E-2,1.17563784E-1,-8.196577E-2,1.516187E-2,2.8708312E-1,-6.00943E-1,-3.070832E-1,2.8825036E-1,-5.146319E-1,4.294049E-2,-6.707217E-2,7.5445044E-1,4.3385822E-2,-5.1353227E-2,-1.9023692E-2,6.068139E-2,1.3675767E-3,-9.3834184E-2,4.2446284E-3,-5.3174194E-2,-4.293127E-2,1.0361054E-1,9.061633E-3,-8.327978E-2,8.5724466E-2,-8.445179E-4,-3.5014015E-2,5.310878E-3,-7.6889955E-3,3.665178E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":96,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,-1,-1,23,25,27,29,31,33,-1,-1,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.1907535E-1,2.0004053E0,1.5849168E0,3.01623E0,4.0021324E0,1.8192508E0,3.5717924E0,8.716848E0,4.5209274E0,1.3872738E0,3.9797778E0,0E0,0E0,0E0,1.4953922E0,7.1296835E0,3.0334144E0,6.3002877E0,8.686284E0,1.4683702E0,0E0,0E0,9.708457E-1,2.1573157E0,2.561585E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,14,14,15,15,16,16,17,17,18,18,19,19,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,-1,-1,24,26,28,30,32,34,-1,-1,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3035382E-3,8.163012E1,-9.951053E-1,-2.843592E-1,-2.843592E-1,3.6826653E1,-8.311706E-1,7.3905716E1,9.8787147E-1,3.38775E1,-9.9325687E-1,-1.6864328E-2,1.17563784E-1,-8.196577E-2,-2.5881904E-1,2.7885567E1,-5.772916E-1,5.7252533E1,2.8260836E1,8.333955E1,4.294049E-2,-6.707217E-2,9.995463E-1,1.088585E-1,6.261546E-1,-1.9023692E-2,6.068139E-2,1.3675767E-3,-9.3834184E-2,4.2446284E-3,-5.3174194E-2,-4.293127E-2,1.0361054E-1,9.061633E-3,-8.327978E-2,8.5724466E-2,-8.445179E-4,-3.5014015E-2,5.310878E-3,-7.6889955E-3,3.665178E-2],"split_indices":[8,2,7,8,8,1,7,2,5,0,7,0,0,0,10,1,8,2,0,2,0,0,7,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7336456E2,1.720469E2,8.013177E2,1.5183011E2,2.0216799E1,2.7886271E0,7.9852905E2,5.8526745E1,9.330336E1,7.400172E0,1.28166275E1,1.3330053E0,1.4556217E0,4.158462E0,7.9437054E2,4.4960716E1,1.356603E1,7.8945625E1,1.4357737E1,6.233264E0,1.1669083E0,1.5290567E0,1.128757E1,5.5796173E2,2.3640883E2,1.819811E1,2.6762606E1,5.147893E0,8.418137E0,3.120586E1,4.7739765E1,7.5446377E0,6.813099E0,2.3941174E0,3.8391464E0,9.838268E0,1.4493021E0,1.2609142E1,5.453526E2,2.2356258E2,1.284625E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-7.137151E-4,2.0309627E-2,-4.1779224E-2,3.424728E-3,2.9801294E-1,-8.725644E-2,2.3085362E-1,6.629351E-2,-7.151503E-2,-6.0655576E-1,5.606901E-1,-5.5631477E-1,-4.6472475E-2,1.4450258E-1,1.0116379E0,2.8341296E-1,1.0261226E-2,-2.7757645E-2,-4.4181684E-1,-9.8863715E-1,4.25132E-1,1.0817229E0,2.3336275E-1,-8.2274956E-1,2.5354463E-1,-5.673982E-3,-4.6817768E-1,-2.4875844E-1,3.8118324E-1,1.5634996E-1,3.0290613E-1,-6.3045435E-2,3.3531114E-2,-4.1793473E-3,2.6552796E-2,-7.268307E-3,2.6841065E-2,-7.6814555E-2,-1.3785145E-2,-1.900854E-2,-1.1782137E-1,7.254594E-2,-9.703161E-3,2.7000183E-2,1.3579245E-1,-1.038082E-2,7.4770205E-2,7.420157E-3,-9.713956E-2,8.729341E-2,-9.892624E-2,-2.089232E-2,8.724676E-3,-2.1815225E-2,-1.2949541E-1,-8.3446905E-2,2.6668722E-2,-7.110435E-2,4.7487304E-2,-1.8904569E-2,6.343905E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":97,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,-1,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.411816E-1,3.0208042E0,4.110522E0,2.8717256E0,9.114138E0,5.396923E0,3.0521584E0,4.0291967E0,4.493787E0,3.8853223E0,4.716673E0,5.0817595E0,4.503049E0,4.179116E0,1.308876E0,3.4341297E0,3.5254939E0,3.3428295E0,2.8025846E0,7.9265213E-1,5.52602E-1,2.0920658E0,3.4019833E0,2.3692312E0,5.7556562E0,4.5470185E0,4.490378E0,5.3826146E0,3.1812963E0,0E0,6.4753795E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,-1,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.63532E-1,3.5013294E-1,4.2809454E-1,-5E-1,-2.2236104E-1,3.747536E-1,9.9325687E-1,4.9885063E1,5.038046E-1,7.352553E1,5.6835983E1,3.4268116E1,9.8522013E-1,3.0437569E1,1.0114636E0,2.4265938E1,9.6230906E-1,1.7071348E0,6.261546E-1,-7.0710677E-1,-1.3945967E0,-3.8402626E-1,7.3905716E1,-1.8491833E0,1.9746102E-1,2.7753115E1,3.7789318E1,7.0252746E-1,-9.659258E-1,1.5634996E-1,4.0068766E-1,-6.3045435E-2,3.3531114E-2,-4.1793473E-3,2.6552796E-2,-7.268307E-3,2.6841065E-2,-7.6814555E-2,-1.3785145E-2,-1.900854E-2,-1.1782137E-1,7.254594E-2,-9.703161E-3,2.7000183E-2,1.3579245E-1,-1.038082E-2,7.4770205E-2,7.420157E-3,-9.713956E-2,8.729341E-2,-9.892624E-2,-2.089232E-2,8.724676E-3,-2.1815225E-2,-1.2949541E-1,-8.3446905E-2,2.6668722E-2,-7.110435E-2,4.7487304E-2,-1.8904569E-2,6.343905E-2],"split_indices":[6,6,3,10,3,6,7,2,3,2,2,1,8,1,4,0,8,4,3,10,4,4,2,4,3,0,1,8,9,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.7235767E2,6.4345074E2,3.289069E2,6.075244E2,3.5926327E1,2.824689E2,4.6437996E1,3.3043222E2,2.770922E2,7.7902594E0,2.8136068E1,2.1584463E1,2.6088443E2,4.2880672E1,3.557325E0,6.694993E1,2.634823E2,2.4877072E2,2.8321487E1,5.715336E0,2.0749235E0,9.966651E0,1.8169418E1,1.622929E1,5.3551736E0,2.3879529E2,2.2089148E1,1.6091883E1,2.678879E1,1.3219342E0,2.2353907E0,2.998681E0,6.3951252E1,2.1954778E2,4.3934517E1,2.1666035E2,3.2110367E1,1.292186E1,1.5399628E1,1.4807346E0,4.234601E0,1.0701076E0,1.0048158E0,3.0323918E0,6.9342594E0,1.1457028E1,6.71239E0,2.3784156E0,1.3850874E1,3.772599E0,1.5825747E0,7.452826E1,1.6426703E2,1.793061E1,4.158537E0,7.242812E0,8.849071E0,1.5957977E0,2.5192991E1,1.0728649E0,1.1625258E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-7.5851515E-4,-3.5850415E-3,2.977982E-1,9.123631E-3,-1.05927296E-1,7.843066E-2,1.0494519E-2,3.2822248E-1,-4.247518E-3,-1.4787216E-1,7.196923E-1,-4.1221508E-1,6.1710745E-2,-4.9655876E-1,4.6483877E-1,4.554702E-3,-2.6607236E-1,-7.929681E-2,-9.3260914E-1,-3.0483881E-2,1.1230599E-1,-8.337399E-1,5.4092444E-2,-1.0577327E-1,3.896333E-2,-4.193044E-2,5.8647513E-2,7.6444465E-4,-7.2001025E-2,-4.803023E-2,2.0406516E-2,-4.855988E-2,1.3289883E-3,-1.2692574E-1,-1.4327362E-2,-1.2245422E-1,-1.4172308E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":98,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,21,-1,23,25,27,29,31,33,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.208694E-1,1.2539276E0,1.2669188E0,3.6616178E0,3.7942858E0,0E0,1.9850277E0,4.119766E0,1.9010208E0,5.424328E0,2.5405343E0,2.2899284E0,0E0,3.0915985E0,3.4857478E0,1.7931497E0,2.800138E0,3.5822334E0,1.9753442E0,0E0,0E0,7.91136E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,11,11,13,13,14,14,15,15,16,16,17,17,18,18,21,21],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,22,-1,24,26,28,30,32,34,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,2.1730204E0,7.43043E1,1.9985594E-2,9.9843544E-1,7.843066E-2,7.9444496E1,1.5151279E-1,9.995463E-1,9.7601056E-1,2.4680831E0,2.5208554E0,6.1710745E-2,5.6835983E1,-4.327756E-1,8.875895E1,7.0710677E-1,1.6058274E-1,9.9325687E-1,-3.0483881E-2,1.1230599E-1,2.9701063E-1,5.4092444E-2,-1.0577327E-1,3.896333E-2,-4.193044E-2,5.8647513E-2,7.6444465E-4,-7.2001025E-2,-4.803023E-2,2.0406516E-2,-4.855988E-2,1.3289883E-3,-1.2692574E-1,-1.4327362E-2,-1.2245422E-1,-1.4172308E-2],"split_indices":[0,4,2,5,7,0,2,6,7,7,4,4,0,2,7,2,9,3,7,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.704692E2,9.623463E2,8.122831E0,8.5685455E2,1.0549177E2,2.3735948E0,5.749236E0,3.3513634E1,8.2334094E2,1.01172676E2,4.319092E0,3.5770702E0,2.172166E0,4.387952E0,2.9125683E1,7.975122E2,2.5828745E1,9.405463E1,7.118047E0,1.2891045E0,3.0299873E0,2.5670607E0,1.0100095E0,2.5681324E0,1.8198195E0,3.2264273E0,2.5899256E1,7.951111E2,2.4011233E0,1.772863E1,8.100115E0,1.6667435E1,7.738719E1,4.563659E0,2.5543883E0,1.1487827E0,1.418278E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"37","size_leaf_vector":"1"}},{"base_weights":[-8.888284E-4,3.8960062E-2,-2.1511627E-2,-7.500807E-2,1.3279685E-1,-9.453324E-2,7.82912E-3,-4.338399E-2,-7.776436E-1,1.5780927E-1,-6.9932157E-1,1.17749155E-1,-1.16204895E-1,-7.5197184E-1,1.778432E-2,-6.964845E-1,-1.3283946E-2,-7.454884E-3,-1.2969142E-1,-1.5315858E-1,2.0149317E-1,-1.15627505E-1,3.930188E-2,7.013643E-1,-1.4283104E-1,2.1640832E-2,-1.0897425E0,1.7537658E-1,-1.9919634E-2,-9.030172E-2,1.8940404E-2,1.3221927E-1,-4.7034263E-3,-6.0964204E-2,7.595794E-2,4.0094308E-3,-6.7260206E-2,-1.8604646E-3,2.8171048E-2,-1.9653274E-2,1.2461859E-1,-3.6047702E-3,-4.110252E-2,-2.9673308E-2,-1.3229248E-1,3.6335267E-2,-2.309054E-2,-1.3303657E-2,4.237676E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":99,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,23,25,27,29,31,33,-1,35,37,-1,-1,39,41,-1,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.9838675E-1,3.553294E0,1.3723083E0,3.3049204E0,3.8998916E0,5.19734E0,3.4746242E0,2.838083E0,2.554813E0,2.4430957E0,3.1983974E0,0E0,4.049177E0,2.17913E0,2.6931074E0,1.3350351E0,6.3488965E0,2.120367E0,0E0,2.2796667E0,2.7618995E0,0E0,0E0,3.1266692E0,5.0403748E0,0E0,4.525957E-1,6.765769E0,2.585914E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,15,15,16,16,17,17,19,19,20,20,23,23,24,24,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,24,26,28,30,32,34,-1,36,38,-1,-1,40,42,-1,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.334258E-1,4.0987432E-1,2.7717335E1,3.927606E-1,9.997685E-1,2.3614627E-1,2.3614627E-1,2.6434412E1,1.5776967E-1,-2.3308542E0,7.267035E1,1.17749155E-1,-3.5115802E0,5.3201252E1,5.498241E1,1.2020805E-1,2.553386E1,1.159849E-1,-1.2969142E-1,1E0,5E-1,-1.15627505E-1,3.930188E-2,2.534045E1,2.679481E1,2.1640832E-2,-3.8402626E-1,3.1077805E-1,3.3081898E-1,-9.030172E-2,1.8940404E-2,1.3221927E-1,-4.7034263E-3,-6.0964204E-2,7.595794E-2,4.0094308E-3,-6.7260206E-2,-1.8604646E-3,2.8171048E-2,-1.9653274E-2,1.2461859E-1,-3.6047702E-3,-4.110252E-2,-2.9673308E-2,-1.3229248E-1,3.6335267E-2,-2.309054E-2,-1.3303657E-2,4.237676E-3],"split_indices":[6,5,0,5,7,6,6,0,6,4,2,0,4,2,2,7,1,3,0,11,11,0,0,0,1,0,4,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.694951E2,3.303259E2,6.391692E2,1.4925322E2,1.810727E2,1.8257208E2,4.565971E2,1.4384099E2,5.4122233E0,1.7657541E2,4.497279E0,2.164974E0,1.8040712E2,4.941173E0,4.516559E2,5.3618746E0,1.3847911E2,2.5880103E0,2.824213E0,2.1440826E1,1.5513458E2,3.129571E0,1.367708E0,4.8908215E0,1.755163E2,1.3707035E0,3.5704696E0,8.6491905E1,3.6516403E2,4.332481E0,1.0293937E0,2.4723964E0,1.3600671E2,1.5647467E0,1.0232636E0,1.6299572E1,5.141253E0,4.164323E1,1.13491356E2,2.0883589E0,2.8024626E0,1.2634541E2,4.9170883E1,1.3277106E0,2.242759E0,5.920497E1,2.7286934E1,1.292813E2,2.3588272E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-1.0018882E-3,1.3167997E-2,-5.6365814E-2,2.0634856E-2,-7.802686E-1,-9.283485E-2,-2.2272363E-2,-2.3195366E-6,3.667428E-1,-1.1755941E-1,1.0393813E-1,-4.244536E-1,2.1622945E-2,6.2306017E-1,-6.6245245E-3,5.3455347E-1,-1.3339022E-1,-3.2947313E-2,4.7899943E-2,5.655568E-1,-8.2316905E-1,4.744259E-1,-2.9720033E-2,8.461056E-2,-1.7193599E-2,2.102092E-2,-2.4484678E-3,-5.5580348E-2,6.249843E-2,-5.8339287E-2,7.835329E-2,8.530234E-2,-2.813068E-2,-2.063858E-2,-1.10541604E-1,-5.2520763E-2,7.063122E-2,2.4092621E-3,-5.0291803E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":100,"left_children":[1,3,5,7,9,-1,11,13,15,-1,17,19,21,23,25,27,29,-1,-1,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.6104474E-1,4.5925665E0,5.856362E0,5.473013E0,2.6485615E0,0E0,3.3859005E0,2.9918911E0,3.6900306E0,0E0,6.701587E-1,7.9143114E0,4.0454254E0,1.4977016E0,2.783784E0,3.5503883E0,5.257024E0,0E0,0E0,1.703214E0,2.1846428E0,4.478159E0,4.001944E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,19,19,20,20,21,21,22,22],"right_children":[2,4,6,8,10,-1,12,14,16,-1,18,20,22,24,26,28,30,-1,-1,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.37946E1,-3.4964746E-1,3.287209E1,2.463387E-1,-9.283485E-2,3.479076E1,-3.678486E0,4.8320037E-1,-1.1755941E-1,5.5601746E-1,2.1516098E-2,1.3931105E-1,-4.377557E-1,-2.678143E-1,-2.4702218E-1,3.4280792E-1,-3.2947313E-2,4.7899943E-2,3.4268116E1,-4.6388587E-1,7.3108055E1,9.951053E-1,8.461056E-2,-1.7193599E-2,2.102092E-2,-2.4484678E-3,-5.5580348E-2,6.249843E-2,-5.8339287E-2,7.835329E-2,8.530234E-2,-2.813068E-2,-2.063858E-2,-1.10541604E-1,-5.2520763E-2,7.063122E-2,2.4092621E-3,-5.0291803E-2],"split_indices":[11,2,8,0,3,0,1,4,3,0,8,8,6,3,8,7,6,0,0,1,3,2,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.681549E2,7.7146716E2,1.9668774E2,7.652397E2,6.22751E0,6.41393E0,1.9027382E2,7.2312244E2,4.2117207E1,4.0757227E0,2.151787E0,1.7870407E1,1.7240341E2,6.625899E0,7.164966E2,3.1484367E1,1.0632839E1,1.0546309E0,1.097156E0,5.0106115E0,1.2859796E1,1.6718615E1,1.5568478E2,5.1240096E0,1.501889E0,5.370566E1,6.627909E2,2.0171154E0,2.9467253E1,7.3764257E0,3.2564132E0,3.735372E0,1.2752396E0,4.5807934E0,8.279002E0,2.909816E0,1.3808798E1,1.406401E2,1.5044681E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-1.1437229E-3,-5.7788193E-2,2.3627873E-4,5.5226505E-2,-1.2955348E-3,-2.494154E-1,2.4597773E-3,-4.7377837E-1,3.071373E-1,2.2203608E-1,-3.3039956E-3,-9.39196E-3,-8.37084E-2,7.9671055E-2,-1.7028619E-2,4.466705E-2,-1.6706226E-2,-5.0529968E-2,4.3402393E-5],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":101,"left_children":[1,-1,3,-1,5,7,9,11,13,15,17,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.7044106E-1,0E0,8.180188E-1,0E0,8.9963275E-1,1.9430373E0,1.204888E0,1.3914964E0,1.2441598E0,2.203033E0,1.7417845E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,4,4,5,5,6,6,7,7,8,8,9,9,10,10],"right_children":[2,-1,4,-1,6,8,10,12,14,16,18,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-5.7788193E-2,2.1896584E1,5.5226505E-2,-7.790238E-1,7.72457E1,-6.469824E-1,-5E-1,1E0,7.611043E-1,-6.2025577E-1,-9.39196E-3,-8.37084E-2,7.9671055E-2,-1.7028619E-2,4.466705E-2,-1.6706226E-2,-5.0529968E-2,4.3402393E-5],"split_indices":[0,0,1,0,3,2,3,10,11,8,3,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.6684125E2,1.310702E0,9.655306E2,1.6769248E0,9.6385364E2,1.3395172E1,9.504585E2,9.652635E0,3.7425373E0,2.3351171E1,9.271073E2,5.3340573E0,4.3185773E0,1.5175731E0,2.2249641E0,1.4710523E1,8.640649E0,5.8607597E0,9.212465E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"19","size_leaf_vector":"1"}},{"base_weights":[-1.1020282E-3,-6.183495E-2,1.2009692E-2,-2.9009336E-1,-1.5156618E-2,1.713869E-1,4.5891388E-4,-7.959983E-1,-1.1903074E-2,-7.827472E-2,2.3538117E-1,8.9367014E-1,-1.6631469E-1,-7.994812E-2,5.532982E-3,-9.470503E-2,-2.4172729E-1,-2.518541E-1,7.215796E-1,-3.8527814E-1,2.0929236E-2,1.3914369E-1,1.370758E-1,-6.859817E-2,1.1342148E0,-3.5634091E-1,8.2529634E-1,5.6507222E-2,-6.517677E-2,3.4890804E-2,-6.29156E-2,1.3882662E-2,-7.520231E-2,-1.7729644E-2,1.2337368E-1,4.7821164E-2,-4.9658637E-2,3.134595E-2,-1.381878E-2,-4.583439E-2,3.3083495E-2,1.3910171E-1,-3.202037E-2,-5.1133525E-2,2.1956472E-2,9.255476E-2,2.0483024E-2,7.075813E-4,2.1433353E-2,-1.4059818E-3,-5.545907E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":102,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,-1,27,-1,29,31,33,35,37,-1,39,-1,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.7126634E-1,1.8278999E0,1.4664869E0,4.0918703E0,2.2928548E0,1.3279126E1,3.0235178E0,6.354413E-1,3.6696427E0,3.5298672E0,3.1269178E0,7.354418E0,7.3649454E0,0E0,2.6713407E0,0E0,1.0327119E0,3.167181E0,2.5867562E0,2.95673E0,4.155416E0,0E0,3.383571E0,0E0,6.1961403E0,2.9854908E0,2.0454359E-1,3.357939E0,7.760192E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,14,14,16,16,17,17,18,18,19,19,20,20,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,-1,28,-1,30,32,34,36,38,-1,40,-1,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3035382E-3,2.692554E1,1.07381344E-1,-2.6353863E-1,8.0328035E-1,5E-1,-8.311706E-1,-2.5881904E-1,9.951053E-1,-5.9387438E-2,5.569541E1,2.5254074E1,1.3018756E0,-7.994812E-2,8.000034E-2,-9.470503E-2,2.404073E1,-7.2055995E-1,-4.2140488E-2,7.1767694E-1,2.9916637E1,1.3914369E-1,6.913966E1,-6.859817E-2,3.1055065E1,7.72457E1,3.1772726E1,9.0701383E-1,9.6793777E-1,3.4890804E-2,-6.29156E-2,1.3882662E-2,-7.520231E-2,-1.7729644E-2,1.2337368E-1,4.7821164E-2,-4.9658637E-2,3.134595E-2,-1.381878E-2,-4.583439E-2,3.3083495E-2,1.3910171E-1,-3.202037E-2,-5.1133525E-2,2.1956472E-2,9.255476E-2,2.0483024E-2,7.075813E-4,2.1433353E-2,-1.4059818E-3,-5.545907E-2],"split_indices":[8,0,8,3,5,11,7,10,7,3,2,1,4,0,3,0,1,4,3,7,1,0,2,0,0,2,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.6661395E2,1.7097041E2,7.9564355E2,2.814174E1,1.4282867E2,5.2831997E1,7.428115E2,9.32406E0,1.881768E1,1.1463596E2,2.8192717E1,1.6307291E1,3.6524704E1,3.6951764E0,7.391164E2,6.770341E0,2.5537193E0,1.46739025E1,4.1437774E0,2.7292135E1,8.734383E1,1.1785793E0,2.7014137E1,1.9103395E0,1.4396951E1,3.1188566E1,5.336139E0,4.296123E2,3.095041E2,1.0509586E0,1.5027608E0,8.644301E0,6.029601E0,1.7413666E0,2.4024107E0,2.7399886E0,2.4552147E1,3.0429825E1,5.6914E1,6.297243E0,2.0716894E1,1.2273456E1,2.1234953E0,2.4663074E1,6.5254908E0,4.170584E0,1.1655554E0,3.279445E2,1.0166781E2,2.8116632E2,2.8337757E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-1.027767E-3,-2.9666277E-3,4.05867E-1,2.3355406E-5,-3.5001767E-1,-1.0683442E-2,6.9205856E-1,-9.2719905E-3,1.1152056E-1,-6.7164093E-1,2.8891176E-1,2.1945158E-2,8.184381E-2,4.3836697E-3,-1.2039726E-1,9.1825336E-2,4.8061904E-2,-1.03247106E-1,-6.7932166E-2,-4.1437903E-3,5.482402E-2,-4.78224E-5,6.41891E-2,-4.652365E-2,4.941208E-3,-1.13372905E-2,3.742596E-2,3.1248529E-2,-4.2899605E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":103,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,-1,-1,21,23,-1,25,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.6333344E-1,9.9873257E-1,7.4723566E-1,9.910504E-1,1.8834636E0,0E0,4.2692423E-3,1.3399476E0,3.72301E0,1.1866214E0,3.184432E-1,0E0,0E0,2.4396856E0,5.6813645E0,0E0,3.6903975E0,0E0,5.775324E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,13,13,14,14,16,16,18,18],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,-1,-1,22,24,-1,26,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.42315E0,3.7357094E0,7.0252746E-1,5.422571E-1,-1.7213356E-2,-1.0683442E-2,5.8825554E1,3.569624E-1,4.54233E1,3.2177994E1,3.1934212E1,2.1945158E-2,8.184381E-2,3.1581316E0,2.8942356E1,9.1825336E-2,8.695894E-1,-1.03247106E-1,2.2233489E-1,-4.1437903E-3,5.482402E-2,-4.78224E-5,6.41891E-2,-4.652365E-2,4.941208E-3,-1.13372905E-2,3.742596E-2,3.1248529E-2,-4.2899605E-2],"split_indices":[4,4,8,3,7,0,2,3,2,0,1,0,0,4,0,0,8,0,6,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.650507E2,9.614621E2,3.5886748E0,9.5424084E2,7.221233E0,1.5100965E0,2.0785782E0,8.8165546E2,7.258538E1,4.7692823E0,2.451951E0,1.0159173E0,1.0626609E0,7.860251E2,9.563036E1,4.3109775E0,6.827441E1,2.540587E0,2.2286952E0,1.4478257E0,1.0041254E0,7.810676E2,4.9574933E0,3.0979395E1,6.465096E1,4.6108036E1,2.2166367E1,1.1507775E0,1.0779177E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-7.613311E-4,1.9251723E-2,-4.0041897E-2,3.7824572E-3,2.7504623E-1,-8.0905445E-2,2.0652029E-1,5.8712464E-2,-6.1801046E-2,-5.601272E-1,5.115968E-1,-5.1219714E-1,-4.3652885E-2,1.2679476E-1,9.195441E-1,-5.0771628E-3,2.0943302E-1,-2.3458423E-2,-3.8793328E-1,-9.3106693E-1,4.1279808E-1,6.6984326E-1,-3.836782E-1,-7.1409297E-1,4.1190127E-1,-2.4393538E-2,-8.835838E-1,-3.678313E-1,2.6836476E-1,1.4146303E-1,2.6579797E-1,-8.071973E-3,2.733067E-2,4.7958296E-2,5.4068957E-3,-6.3667037E-3,2.4306579E-2,-6.934803E-2,-1.0760615E-2,-1.8551216E-2,-1.1111629E-1,-7.871226E-3,7.069289E-2,8.997316E-3,9.019645E-2,-8.862432E-2,4.451605E-2,7.1866745E-3,-8.322673E-2,1.0010274E-1,-5.516066E-2,1.2912377E-2,-1.0140309E-2,2.5318606E-2,-1.4226533E-1,-8.40329E-2,1.4786939E-2,4.884475E-2,-7.5835125E-3,-1.9876862E-2,5.8778353E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":104,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,-1,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.5953335E-1,2.531777E0,3.3023124E0,2.1817172E0,7.4952364E0,4.483679E0,2.5349178E0,3.1693835E0,3.4430351E0,3.4631765E0,4.359508E0,4.436996E0,4.172252E0,3.1176424E0,1.0904768E0,4.91837E0,4.088114E0,2.6741269E0,2.4074025E0,6.6440916E-1,4.962321E-1,3.2800741E0,2.4711704E0,1.7864113E0,3.172161E0,3.0215104E0,3.903967E0,2.5647101E0,2.6199841E0,0E0,5.9310067E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,-1,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.63532E-1,3.5013294E-1,4.2809454E-1,-5E-1,-2.2236104E-1,3.747536E-1,9.9325687E-1,9.3985605E-1,5.038046E-1,7.352553E1,9.8867756E-1,1E0,4.024931E-1,2.866701E1,1.0114636E0,9.6230906E-1,2.799612E1,1.7071348E0,6.261546E-1,-7.0710677E-1,5E-1,5E-1,-2.5881904E-1,-1.8491833E0,7.9579645E-1,-2.1662362E-1,-7.0710677E-1,8.23923E-1,2.4217467E0,1.4146303E-1,4.0068766E-1,-8.071973E-3,2.733067E-2,4.7958296E-2,5.4068957E-3,-6.3667037E-3,2.4306579E-2,-6.934803E-2,-1.0760615E-2,-1.8551216E-2,-1.1111629E-1,-7.871226E-3,7.069289E-2,8.997316E-3,9.019645E-2,-8.862432E-2,4.451605E-2,7.1866745E-3,-8.322673E-2,1.0010274E-1,-5.516066E-2,1.2912377E-2,-1.0140309E-2,2.5318606E-2,-1.4226533E-1,-8.40329E-2,1.4786939E-2,4.884475E-2,-7.5835125E-3,-1.9876862E-2,5.8778353E-2],"split_indices":[6,6,3,10,3,6,7,7,3,2,7,11,3,0,4,8,0,4,3,10,9,11,10,4,4,3,10,8,4,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.6419415E2,6.390927E2,3.2510144E2,6.036043E2,3.5488407E1,2.7945786E2,4.564358E1,3.2853876E2,2.7506558E2,7.5310683E0,2.7957336E1,2.12052E1,2.5825266E2,4.211265E1,3.5309277E0,2.3151901E2,9.701974E1,2.4708795E2,2.7977636E1,5.4834566E0,2.047612E0,2.3971926E1,3.9854116E0,1.758952E1,3.6156807E0,2.5346971E2,4.782937E0,9.015503E0,3.309715E1,1.3469733E0,2.1839545E0,1.8261015E2,4.8908855E1,3.466199E1,6.2357746E1,2.1535933E2,3.1728613E1,1.2681457E1,1.5296181E1,1.4618436E0,4.0216126E0,1.0407859E0,1.006826E0,7.249448E0,1.6722477E1,2.4379222E0,1.5474893E0,2.3502452E0,1.5239274E1,2.2195942E0,1.3960863E0,8.4447754E1,1.6902197E2,1.709125E0,3.073812E0,4.3763204E0,4.639182E0,1.9932896E1,1.3164254E1,1.050685E0,1.1332693E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"61","size_leaf_vector":"1"}},{"base_weights":[-7.357994E-4,1.1735895E-2,-6.153073E-2,1.8429575E-3,2.8211427E-1,2.8108291E-2,-2.8200966E-1,1.8765526E-1,-1.278037E-2,-3.030024E-1,5.949208E-1,2.6444638E-1,-1.1102306E-1,-4.8127565E-1,2.559447E-1,7.6755905E-1,7.239259E-3,-8.9293756E-2,4.2470522E-2,-6.511535E-1,4.2431143E-1,1.3001977E-1,2.885822E-1,4.4737715E-1,-4.6461377E-1,-1.9320293E-1,3.930246E-1,-3.213993E-1,-1.0577022E0,1.8745927E-2,9.6638374E-2,1.1563072E-1,9.813895E-3,-1.6203813E-2,5.20796E-2,6.200387E-2,-1.1040921E-2,3.3875816E-2,3.9927228E-4,2.7149577E-2,-9.9913195E-2,-1.862749E-2,7.288902E-2,2.5907587E-4,8.08025E-2,9.038437E-2,1.780479E-2,-6.741636E-2,5.9957623E-2,-9.323032E-2,-1.0844031E-2,-7.2970726E-2,7.971629E-2,4.3591056E-3,-5.0629266E-2,-1.6774695E-1,-5.444329E-2,7.3193915E-2,-1.9642143E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":105,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,-1,43,45,47,49,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.321111E-1,2.142713E0,3.2562745E0,2.1054568E0,5.3555694E0,3.9016137E0,5.2255855E0,5.909013E0,3.0409915E0,2.9383335E0,3.6786041E0,6.0670605E0,3.1755524E0,2.8929539E0,2.259956E0,3.374948E0,3.9204915E0,4.585487E0,4.7625723E0,2.6805837E0,8.812851E-1,0E0,2.132132E0,4.2194166E0,2.4787352E0,3.9716382E0,5.490901E0,1.9723468E0,1.3709421E0,1.8554952E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,-1,44,46,48,50,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3194726E-1,4.1928473E-1,7.205731E1,-9.659258E-1,2.8258408E1,-2.5881904E-1,8.12179E1,-2.5235417E-1,-5.9387438E-2,7.547337E-1,-3.0236432E-1,9.796137E-1,6.6790306E1,7.9444496E1,9.634706E-1,2.8668058E1,3.2287117E1,-7.0558363E-1,2.983369E-3,4.4971195E1,1.4154029E-1,1.3001977E-1,1.9322288E0,-1.06382236E-1,4.3628845E-1,-4.7321387E-2,4.516348E-1,-1.7533556E-1,4.4999245E-1,-8.660254E-1,9.6638374E-2,1.1563072E-1,9.813895E-3,-1.6203813E-2,5.20796E-2,6.200387E-2,-1.1040921E-2,3.3875816E-2,3.9927228E-4,2.7149577E-2,-9.9913195E-2,-1.862749E-2,7.288902E-2,2.5907587E-4,8.08025E-2,9.038437E-2,1.780479E-2,-6.741636E-2,5.9957623E-2,-9.323032E-2,-1.0844031E-2,-7.2970726E-2,7.971629E-2,4.3591056E-3,-5.0629266E-2,-1.6774695E-1,-5.444329E-2,7.3193915E-2,-1.9642143E-2],"split_indices":[6,6,2,10,1,9,2,3,3,5,3,7,2,2,7,1,0,7,3,2,8,0,4,3,3,8,6,3,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.636185E2,8.002577E2,1.6336082E2,7.729817E2,2.7275991E1,1.1676199E2,4.659883E1,5.553171E1,7.1745E2,9.512965E0,1.7763025E1,4.293276E1,7.382923E1,3.4080345E1,1.2518489E1,1.2404867E1,4.3126842E1,3.0058005E2,4.1686996E2,6.5042305E0,3.008735E0,4.3965735E0,1.3366452E1,3.463E1,8.302757E0,6.400978E1,9.819448E0,2.7899714E1,6.1806297E0,1.0154521E1,2.363968E0,7.3874645E0,5.017402E0,3.2950314E1,1.0176528E1,7.8690925E0,2.9271094E2,4.7017876E1,3.698521E2,1.8414636E0,4.662767E0,1.1306164E0,1.8781186E0,9.268467E0,4.0979853E0,1.1976313E1,2.2653688E1,7.2430315E0,1.0597256E0,5.5568657E0,5.845292E1,2.385826E0,7.433623E0,9.637992E0,1.8261723E1,1.7723413E0,4.4082885E0,1.7968767E0,8.357644E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-3.9014223E-4,-1.824837E-1,3.726956E-3,1.6813585E-1,-5.31208E-1,3.1699485E-1,-2.8200771E-3,-2.078875E-1,9.202848E-1,-9.8548365E-1,2.4319126E-1,1.5431291E-1,6.802993E-1,7.7532087E-3,-8.570611E-2,-4.3782425E-1,6.907219E-2,1.11293495E-2,1.1952803E-1,-1.18052594E-1,-1.0397704E-2,7.8178525E-2,-2.0092829E-1,-2.3049593E-1,6.393856E-1,1.2216029E-1,-3.9502658E-2,1.9015941E-1,-1.5564818E-2,-1.4557818E-1,4.9713844E-1,-5.220023E-3,-8.455034E-2,-6.90375E-2,3.8352665E-2,9.020518E-3,-6.980202E-2,-9.833015E-3,8.223101E-2,2.92665E-2,-1.8714245E-2,1.3141845E-3,-1.6215049E-2,-6.0122382E-2,-4.7266255E-3,9.01616E-2,-6.99366E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":106,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,33,35,37,-1,-1,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.2335917E-1,2.697704E0,1.9362522E0,3.414742E0,4.086801E0,1.037255E0,8.115787E-1,2.0409899E0,7.530668E-1,1.0963306E0,1.3160963E0,2.8804822E0,3.7910886E0,3.4972486E0,3.7282531E0,1.1053756E0,0E0,0E0,0E0,0E0,0E0,0E0,1.2520062E0,1.397382E0,9.9069405E-1,0E0,0E0,3.659087E0,3.0711992E0,4.262036E0,5.4632926E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,22,22,23,23,24,24,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,34,36,38,-1,-1,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,3.198137E-1,1.1521257E-1,-2.095681E-1,8.60961E-1,1.1371429E-1,2.1730204E0,-1.8369701E-16,-9.70583E-2,3.207702E1,9.5237756E-1,8.120655E-2,2.3101075E-1,1.2395207E-1,1E0,1.04200356E-1,6.907219E-2,1.11293495E-2,1.1952803E-1,-1.18052594E-1,-1.0397704E-2,7.8178525E-2,2.9541073E1,-4.3373916E-1,-1.3727877E-1,1.2216029E-1,-3.9502658E-2,4.0238228E-1,8.50873E-1,2.820763E1,9.6684784E-1,-5.220023E-3,-8.455034E-2,-6.90375E-2,3.8352665E-2,9.020518E-3,-6.980202E-2,-9.833015E-3,8.223101E-2,2.92665E-2,-1.8714245E-2,1.3141845E-3,-1.6215049E-2,-6.0122382E-2,-4.7266255E-3,9.01616E-2,-6.99366E-2],"split_indices":[6,4,6,4,8,6,4,10,3,0,8,4,3,5,9,6,0,0,0,0,0,0,0,4,7,0,0,6,4,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.629614E2,2.0333101E1,9.4262836E2,1.0397224E1,9.935878E0,1.8326134E1,9.243022E2,7.414224E0,2.9829998E0,6.0905056E0,3.8453715E0,1.3642146E1,4.6839876E0,8.205375E2,1.037647E2,6.3119054E0,1.1023186E0,1.1131138E0,1.869886E0,4.709309E0,1.3811965E0,1.3942404E0,2.451131E0,7.8999367E0,5.742209E0,3.0251434E0,1.6588444E0,9.219368E1,7.283438E2,9.477888E1,8.985828E0,3.8233955E0,2.48851E0,1.2353606E0,1.2157706E0,5.164426E0,2.7355108E0,1.2328213E0,4.5093875E0,7.267391E1,1.951977E1,6.098282E2,1.185156E2,1.591274E1,7.8866135E1,6.899811E0,2.086018E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-2.8886364E-4,1.3722325E-2,-5.508642E-2,2.0668207E-2,-7.45772E-1,-9.131213E-2,-2.3572456E-2,2.0411485E-3,3.377653E-1,-1.13817655E-1,1.14066765E-1,-4.1210216E-1,1.8337399E-2,1.4021172E-2,-2.9048193E-1,-4.6418595E-1,4.288592E-1,3.6212932E-2,-1.8323833E-2,4.4219908E-1,-7.8689873E-1,6.524909E-2,-3.9317134E-1,-4.3303156E-4,2.5262747E-2,-3.7815865E-2,9.426258E-2,-1.0350186E-1,3.835928E-2,5.7561662E-2,-3.0419568E-3,-4.7376896E-3,9.5155075E-2,-2.1129882E-2,-1.0642886E-1,-9.516584E-3,2.8088719E-2,-1.0664577E-2,-1.4529178E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":107,"left_children":[1,3,5,7,9,-1,11,13,15,-1,17,19,21,23,25,27,29,-1,-1,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.4041337E-1,4.066923E0,5.2882376E0,4.5002446E0,2.4872892E0,0E0,3.1084723E0,2.5298805E0,3.2872496E0,0E0,2.948622E-1,6.2985125E0,3.3624835E0,3.0370958E0,3.4271681E0,2.7161837E0,2.611226E0,0E0,0E0,1.6179109E0,1.8950233E0,5.4237394E0,5.259285E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,19,19,20,20,21,21,22,22],"right_children":[2,4,6,8,10,-1,12,14,16,-1,18,20,22,24,26,28,30,-1,-1,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.37946E1,-3.4964746E-1,3.287209E1,2.463387E-1,-9.131213E-2,3.479076E1,2.9224489E0,-1.6280702E-1,-1.13817655E-1,2.2027307E0,2.1516098E-2,9.880227E-1,5.241272E-1,9.922222E-1,2.4680831E0,4.8320037E-1,3.6212932E-2,-1.8323833E-2,3.945198E-1,-4.6388587E-1,6.51899E-1,2.1730204E0,-4.3303156E-4,2.5262747E-2,-3.7815865E-2,9.426258E-2,-1.0350186E-1,3.835928E-2,5.7561662E-2,-3.0419568E-3,-4.7376896E-3,9.5155075E-2,-2.1129882E-2,-1.0642886E-1,-9.516584E-3,2.8088719E-2,-1.0664577E-2,-1.4529178E-1],"split_indices":[11,2,8,0,3,0,1,4,7,0,4,8,8,3,7,4,3,0,0,6,3,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.6237305E2,7.670067E2,1.953664E2,7.6101965E2,5.9870443E0,5.9301543E0,1.8943623E2,7.197464E2,4.1273224E1,3.888665E0,2.0983791E0,1.7584473E1,1.7185176E2,6.923441E2,2.7402275E1,3.792245E0,3.748098E1,1.0250602E0,1.073319E0,5.307305E0,1.2277167E1,1.5502094E2,1.6830832E1,6.438098E2,4.8534313E1,2.6230553E1,1.1717217E0,2.134302E0,1.657943E0,2.821264E1,9.268338E0,3.1686573E0,2.1386476E0,4.5654135E0,7.711754E0,8.9213196E1,6.580774E1,1.4115131E1,2.715701E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-6.00467E-4,-2.482731E-3,3.9910787E-1,7.655605E-3,-8.5142024E-2,1.9168796E-2,8.0672644E-2,2.6020774E-1,-3.0485943E-3,-1.2181227E-1,6.39253E-1,-4.2237043E-2,4.6749666E-2,7.7432984E-1,6.2272057E-2,-3.5986697E-4,-6.9736175E-2,-6.391258E-2,-7.638484E-1,-2.7150292E-2,1.013546E-1,1.3605474E-1,2.1199856E-2,-2.9282847E-2,3.7086274E-2,6.750398E-4,-2.1385077E-2,-4.4556893E-2,1.3300715E-3,-1.0937823E-1,-6.0065584E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":108,"left_children":[1,3,5,7,9,11,-1,13,15,17,19,-1,-1,21,23,25,-1,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.242344E-1,8.033082E-1,6.832848E-1,2.3096564E0,2.8597121E0,8.6249304E-1,0E0,3.4868948E0,1.5311569E0,3.6877835E0,2.0498223E0,0E0,0E0,2.866003E0,2.9762788E0,1.2434012E0,0E0,2.7551951E0,1.843843E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,7,7,8,8,9,9,10,10,13,13,14,14,15,15,17,17,18,18],"right_children":[2,4,6,8,10,12,-1,14,16,18,20,-1,-1,22,24,26,-1,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.42315E0,2.1730204E0,9.2263955E-1,1.9985594E-2,9.9843544E-1,3.4152542E1,8.0672644E-2,1.9245158E-1,8.875895E1,9.7601056E-1,2.4680831E0,-4.2237043E-2,4.6749666E-2,2.039778E0,8.939186E-1,9.995463E-1,-6.9736175E-2,2.866701E1,9.9325687E-1,-2.7150292E-2,1.013546E-1,1.3605474E-1,2.1199856E-2,-2.9282847E-2,3.7086274E-2,6.750398E-4,-2.1385077E-2,-4.4556893E-2,1.3300715E-3,-1.0937823E-1,-6.0065584E-3],"split_indices":[4,4,8,5,7,0,0,8,2,7,4,0,0,4,8,7,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.603041E2,9.5679224E2,3.511835E0,8.530689E2,1.0372331E2,2.3595436E0,1.1522917E0,3.3738663E1,8.1933026E2,9.9517395E1,4.2059155E0,1.217942E0,1.1416014E0,8.569096E0,2.5169567E1,8.171663E2,2.163958E0,9.229377E1,7.22363E0,1.3050355E0,2.9008799E0,3.5004642E0,5.068631E0,1.1726622E1,1.3442945E1,7.9176514E2,2.5401173E1,1.4727386E1,7.756638E1,4.540767E0,2.6828625E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[-4.8405232E-4,-5.5967726E-2,8.11897E-4,2.971535E-2,-2.5599547E-2,1.4360945E-1,-3.3388022E-2,-1.0793919E-1,6.629339E-2,6.134427E-2,4.5918572E-1,-1.3873641E-1,1.234389E-1,-1.5878241E-1,2.2698191E-1,-4.25776E-2,2.7023667E-1,-1.67298E-2,2.047108E-2,8.136099E-2,8.57823E-3,6.2235177E-2,-1.7432055E-2,2.3375308E-2,-2.8982073E-2,-9.482551E-3,-5.6519818E-2,4.516647E-2,-4.496723E-2,-1.1375597E-2,4.021321E-2,8.430196E-2,1.8593613E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":109,"left_children":[1,-1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.9650745E-1,0E0,7.3304754E-1,3.299995E0,3.8038297E0,4.2203245E0,4.904814E0,4.549032E0,5.290443E0,4.327214E0,4.3881907E0,4.9138803E0,5.5111966E0,5.94261E0,5.5761914E0,4.979597E0,3.845324E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16],"right_children":[2,-1,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-5.5967726E-2,8.120655E-2,2.3614627E-1,2.2302324E-1,2.081181E-1,3.989146E-1,7.709227E1,8.5207754E-1,-2.9139644E-1,-2.3714872E-1,-4.7495106E-1,4.7550184E-1,6.994285E1,8.352659E1,9.95919E-1,8.779601E-1,-1.67298E-2,2.047108E-2,8.136099E-2,8.57823E-3,6.2235177E-2,-1.7432055E-2,2.3375308E-2,-2.8982073E-2,-9.482551E-3,-5.6519818E-2,4.516647E-2,-4.496723E-2,-1.1375597E-2,4.021321E-2,8.430196E-2,1.8593613E-2],"split_indices":[0,0,4,6,3,6,6,2,8,3,3,8,6,2,2,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.59489E2,1.2222677E0,9.582668E2,4.5748807E2,5.007787E2,1.6264941E2,2.9483865E2,2.6402628E2,2.3675243E2,1.2996437E2,3.2685036E1,1.7643434E2,1.1840431E2,2.2968456E2,3.4341713E1,1.5486963E2,8.188279E1,5.0021957E1,7.994241E1,1.6163853E1,1.6521185E1,7.1440835E0,1.6929027E2,9.380002E1,2.46043E1,1.9951982E2,3.0164742E1,2.6030724E1,8.31099E0,1.341434E2,2.0726229E1,9.350478E0,7.253231E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-3.17993E-4,-1.1335775E-1,6.493281E-3,-2.378831E-1,3.2663652E-1,2.8694284E-1,-2.001986E-3,-1.4149904E-1,-8.1015795E-1,7.4219716E-1,-6.558402E-1,7.1083754E-2,1.3894539E0,1.0895175E-2,-2.4104026E-1,-2.9943588E-1,6.2413466E-1,-9.6200965E-2,-4.391243E-3,1.0690619E0,-1.696498E-1,-9.750075E-3,-8.242566E-2,-3.5389897E-1,8.4571654E-1,5.266169E-1,2.0569609E-1,4.8802617E-1,5.8743805E-3,-5.0493133E-1,1.7404748E-1,-3.8927246E-2,5.3408474E-2,9.4498314E-2,-6.251062E-2,1.8876916E-2,1.6364652E-1,4.134357E-2,-6.65193E-2,-1.0339572E-1,-8.337421E-3,-2.7742004E-2,1.07812956E-1,9.932928E-3,7.027113E-2,-3.4317497E-2,9.0380006E-2,-5.787896E-2,1.3964316E-3,-1.2783411E-1,-1.5882505E-2,-5.1178434E-3,1.20791994E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":110,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,-1,35,37,-1,-1,39,41,43,-1,45,47,49,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.4011666E-1,3.0708675E0,2.16072E0,2.2658503E0,5.5787663E0,6.2469316E0,2.7187054E0,4.7998285E0,6.569762E-1,2.9334998E0,3.181579E-1,7.9869785E0,1.4001694E0,2.0019097E0,5.0328856E0,2.626573E0,3.3354316E0,0E0,0E0,3.1545753E0,1.2284158E0,0E0,0E0,2.8176765E0,2.5355873E0,1.7284805E-1,0E0,3.317624E0,3.9299376E0,7.2532086E0,4.3205843E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,19,19,20,20,23,23,24,24,25,25,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,-1,36,38,-1,-1,40,42,44,-1,46,48,50,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5272247E1,9.6684784E-1,2.5663958E1,9.158643E-1,-2.5235417E-1,9.821256E-1,9.946708E-1,8.3355576E-1,5.7725536E1,3.4280792E-1,-1.2874818E-1,9.5844936E-1,2.6197771E1,2.429211E1,1.06329784E-1,9.979172E-1,9.659258E-1,-9.6200965E-2,-4.391243E-3,2.4420341E1,5E-1,-9.750075E-3,-8.242566E-2,-3.8927194E-1,1.24479264E-1,-2.5881904E-1,2.0569609E-1,5E-1,2.468883E1,5E-1,7.7386476E-2,-3.8927246E-2,5.3408474E-2,9.4498314E-2,-6.251062E-2,1.8876916E-2,1.6364652E-1,4.134357E-2,-6.65193E-2,-1.0339572E-1,-8.337421E-3,-2.7742004E-2,1.07812956E-1,9.932928E-3,7.027113E-2,-3.4317497E-2,9.0380006E-2,-5.787896E-2,1.3964316E-3,-1.2783411E-1,-1.5882505E-2,-5.1178434E-3,1.20791994E-1],"split_indices":[0,8,0,8,3,8,8,8,2,6,7,5,1,1,3,7,9,0,0,0,11,0,0,3,8,10,0,11,1,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.5930347E2,5.3629345E1,9.0567413E2,4.2157463E1,1.1471882E1,2.5664055E1,8.800101E2,3.7148132E1,5.0093317E0,8.233783E0,3.2380984E0,2.235222E1,3.3118353E0,8.3586584E2,4.41442E1,3.1300327E1,5.8478055E0,3.9675684E0,1.0417631E0,5.934178E0,2.2996054E0,1.1162841E0,2.1218145E0,1.4784318E1,7.5679026E0,2.2248573E0,1.086978E0,7.7023573E0,8.281635E2,2.6854849E1,1.728935E1,2.8736135E1,2.5641925E0,4.8465877E0,1.0012181E0,2.8481426E0,3.0860353E0,1.1326059E0,1.1669995E0,3.4043226E0,1.1379995E1,1.2643371E0,6.3035655E0,1.1057812E0,1.119076E0,2.6263864E0,5.0759706E0,1.0340023E1,8.178235E2,7.4696536E0,1.9385195E1,1.4977129E1,2.3122227E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"53","size_leaf_vector":"1"}},{"base_weights":[-1.3901548E-4,-2.6857313E-3,2.7355656E-1,7.869257E-3,-8.883229E-2,7.63455E-2,-5.30098E-3,-7.7163847E-3,1.6593228E-1,-1.4034024E-1,3.946745E-1,-3.7926358E-1,5.7053488E-2,-6.967471E-1,-2.0357776E-3,9.5848495E-1,1.0347328E-1,-5.197457E-1,-5.4357618E-2,7.522066E-1,-6.4373606E-1,-8.915716E-2,3.1524062E-2,2.9526768E-2,-1.1465939E-1,4.1864727E-2,-8.330567E-4,2.533733E-2,1.0709377E-1,-2.2249898E-2,2.1323048E-2,-1.1425755E-1,-2.3924517E-2,1.6303537E-2,-2.361954E-2,1.0051205E-1,-3.1974494E-2,1.416296E-4,-9.559622E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":111,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,21,-1,23,25,27,29,31,33,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.6918445E-1,8.6555976E-1,1.2131872E0,2.090964E0,2.6429582E0,0E0,1.6448374E0,3.0244842E0,3.671813E0,3.058948E0,4.2953167E0,1.9256964E0,0E0,3.1581903E0,2.036592E0,1.603055E-1,2.6139503E0,2.7608018E0,3.1324365E0,2.5166178E0,6.3949275E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,11,11,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,22,-1,24,26,28,30,32,34,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,2.1730204E0,7.43043E1,1.6036962E0,1E0,7.63455E-2,7.9444496E1,1.1015733E-1,-1.7973603E-1,1.6058274E-1,9.6684784E-1,2.039778E0,5.7053488E-2,-5E-1,1.2395207E-1,2.8149744E1,2.8495266E1,2.3290908E0,2.8792274E-1,6.764014E-1,-1.6280702E-1,-8.915716E-2,3.1524062E-2,2.9526768E-2,-1.1465939E-1,4.1864727E-2,-8.330567E-4,2.533733E-2,1.0709377E-1,-2.2249898E-2,2.1323048E-2,-1.1425755E-1,-2.3924517E-2,1.6303537E-2,-2.361954E-2,1.0051205E-1,-3.1974494E-2,1.416296E-4,-9.559622E-2],"split_indices":[0,4,2,4,9,0,2,5,3,3,8,4,0,9,5,0,0,4,6,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.580042E2,9.501533E2,7.8509154E0,8.472534E2,1.028999E2,2.2174647E0,5.6334505E0,7.7207495E2,7.5178474E1,9.363474E1,9.265158E0,3.6223633E0,2.0110874E0,5.3184505E0,7.667565E2,4.4438524E0,7.073462E1,1.636741E1,7.7267334E1,7.09717E0,2.1679883E0,1.9213257E0,1.7010375E0,1.7665128E0,3.5519378E0,1.03382845E1,7.564182E2,1.0586922E0,3.3851602E0,1.7558811E1,5.3175808E1,4.1280494E0,1.2239361E1,3.5240078E1,4.2027256E1,5.7927794E0,1.3043903E0,1.0316843E0,1.1363039E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-1.2363621E-4,-3.3428065E-2,2.1820405E-2,-5.097156E-2,6.659935E-1,2.974554E-2,-1.4221802E0,-5.401419E-1,-2.6768565E-2,1.06428675E-1,1.04871936E-1,5.7593596E-1,1.5543515E-2,-1.773474E-1,-4.1770212E-2,4.181317E-2,-6.5006477E-1,-7.254254E-2,2.1316575E-1,-7.156944E-2,5.4043835E-1,-5.210724E-1,8.898699E-1,1.11301824E-1,-3.6478724E-2,-7.444537E-2,2.7393548E-2,-1.92649E-2,-5.87087E-4,3.3641607E-3,7.65818E-2,9.383292E-2,-2.2983937E-2,2.7652374E-2,-9.038473E-2,1.1543941E-1,-1.5648646E-2,-2.9882346E-3,1.8497702E-2,-2.3319846E-2,-7.083462E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":112,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,-1,-1,-1,25,27,29,-1,31,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.0104754E-1,4.7089143E0,6.6597E0,4.396955E0,1.987813E0,4.4596276E0,3.8019228E-1,2.1167054E0,3.9263167E0,0E0,2.1770837E0,5.481975E0,2.8061802E0,0E0,0E0,0E0,1.6083999E0,2.3994696E0,5.6596184E0,0E0,1.3931619E0,1.4323206E0,3.4186983E0,2.0677776E0,2.110388E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,16,16,17,17,18,18,20,20,21,21,22,22,23,23,24,24],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,-1,-1,-1,26,28,30,-1,32,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.525261E-1,4.9060223E-1,4.1644497E1,2.6776005E1,1.7311317E0,3.6508614E-1,8.3981316E1,4.6805653E1,9.7110003E-1,1.06428675E-1,-5E-1,5.591699E-2,2.3614627E-1,-1.773474E-1,-4.1770212E-2,4.181317E-2,5.7315964E-1,1.2577815E0,1.11659005E-1,-7.156944E-2,9.209713E-1,1.3426727E-1,4.1658098E-1,-2.9139644E-1,2.7166495E-1,-7.444537E-2,2.7393548E-2,-1.92649E-2,-5.87087E-4,3.3641607E-3,7.65818E-2,9.383292E-2,-2.2983937E-2,2.7652374E-2,-9.038473E-2,1.1543941E-1,-1.5648646E-2,-2.9882346E-3,1.8497702E-2,-2.3319846E-2,-7.083462E-4],"split_indices":[5,6,1,0,4,5,2,2,8,0,9,8,6,0,0,0,3,4,7,0,7,6,6,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.5724536E2,3.799987E2,5.7724664E2,3.716049E2,8.393791E0,5.750699E2,2.1767662E0,1.6514324E1,3.5509058E2,4.3847275E0,4.0090632E0,1.3571602E1,5.614983E2,1.0455427E0,1.1312233E0,1.4108766E0,1.5103447E1,2.987866E2,5.630399E1,1.1671419E0,2.8419213E0,2.8728666E0,1.0698735E1,1.972595E2,3.6423877E2,1.3879896E1,1.223551E0,1.0597935E2,1.9280724E2,4.329943E1,1.300456E1,1.7300732E0,1.1118481E0,1.0216385E0,1.8512282E0,8.457409E0,2.2413263E0,6.7844025E1,1.2941548E2,4.6450222E1,3.1778854E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-1.4775718E-4,-5.462367E-2,1.1087051E-3,5.552085E-1,-1.2090428E-3,-1.4455345E-2,9.3583085E-2,-7.010231E-2,1.2134579E-3,2.5359925E-2,-3.06488E-2,-7.3331664E-4,1.4830271E-2,-3.3318024E-2,3.9724432E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":113,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[6.5730727E-1,0E0,1.2282944E0,1.1963811E0,1.6163235E0,0E0,0E0,0E0,7.3214996E-1,2.1769314E0,4.298659E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-5.462367E-2,-8.977434E-1,6.4343154E-2,-7.4410397E-1,-1.4455345E-2,9.3583085E-2,-7.010231E-2,7.62446E-2,-3.431097E-2,1.159849E-1,-7.3331664E-4,1.4830271E-2,-3.3318024E-2,3.9724432E-4],"split_indices":[8,0,8,3,8,0,0,0,3,3,3,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.5609564E2,1.1990925E0,9.5489655E2,2.9839437E0,9.519126E2,1.269756E0,1.7141877E0,2.2889843E0,9.496236E2,5.403382E2,4.092854E2,4.2757684E2,1.1276139E2,4.114281E1,3.6814258E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-2.1636659E-4,1.3022671E-2,-5.205848E-2,1.9348804E-2,-6.968806E-1,-8.995833E-2,-2.277207E-2,6.456561E-3,3.880804E-1,-9.8626804E-1,3.171336E-2,-8.6080484E-2,-4.8869806E-3,3.6512157E-1,-2.5430853E-3,7.574141E-1,1.1928863E-1,-1.109512E-1,-3.0519951E-2,3.542607E-2,-3.372128E-1,3.8240422E-3,1.0566094E-1,2.1731755E-2,-2.0534643E-3,1.0070975E-1,1.4873199E-2,-6.444769E-2,2.7219161E-2,-2.3407654E-3,5.769522E-2,-9.678072E-3,-1.20779715E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":114,"left_children":[1,3,5,7,9,-1,11,13,15,17,-1,-1,19,21,23,25,27,-1,-1,29,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.5744305E-1,3.4403045E0,4.8160787E0,3.5974581E0,2.2984219E0,0E0,2.8342092E0,2.366041E0,2.4476984E0,1.2367535E-1,0E0,0E0,2.5094826E0,4.0151725E0,2.8358133E0,1.4584489E0,2.0420747E0,0E0,0E0,5.3392615E0,4.1244698E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,12,12,13,13,14,14,15,15,16,16,19,19,20,20],"right_children":[2,4,6,8,10,-1,12,14,16,18,-1,-1,20,22,24,26,28,-1,-1,30,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.37946E1,-3.4964746E-1,3.3476425E1,5.631029E-1,-8.995833E-2,-3.678486E0,-3.044823E0,3.4152542E1,1.563631E-1,3.171336E-2,-8.6080484E-2,9.8522013E-1,9.813065E-1,-2.678143E-1,7.611043E-1,-1.8399835E-1,-1.109512E-1,-3.0519951E-2,9.5237756E-1,2.1730204E0,3.8240422E-3,1.0566094E-1,2.1731755E-2,-2.0534643E-3,1.0070975E-1,1.4873199E-2,-6.444769E-2,2.7219161E-2,-2.3407654E-3,5.769522E-2,-9.678072E-3,-1.20779715E-1],"split_indices":[11,2,8,0,3,0,4,4,0,3,0,0,8,7,8,8,8,0,0,8,4,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.5590967E2,7.6205164E2,1.9385805E2,7.562849E2,5.7667074E0,5.4824905E0,1.8837555E2,7.3171875E2,2.4566132E1,4.5076427E0,1.2590646E0,2.9514444E0,1.854241E2,1.6942308E1,7.147765E2,9.582051E0,1.498408E1,3.2842588E0,1.2233839E0,1.661612E2,1.9262917E1,1.2220648E1,4.721661E0,5.3228916E1,6.6154755E2,6.3306456E0,3.2514057E0,1.9631264E0,1.3020953E1,1.5074083E2,1.5420356E1,1.5964983E1,3.2979336E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"33","size_leaf_vector":"1"}},{"base_weights":[-3.7225918E-4,-2.9228054E-2,2.4739914E-2,-3.2137558E-3,-3.7408456E-1,1.6163517E-2,4.6360272E-1,-5.637897E-1,6.4510377E-3,-5.1245826E-1,3.8216045E-1,3.9201207E-2,-1.1622224E-1,1.06026344E-1,1.5343148E-1,-8.580713E-1,8.50342E-2,1.4723529E-1,-4.593691E-2,4.292355E-1,-6.297441E-1,9.1709816E-1,-9.4436355E-2,1.04842804E-1,-7.583154E-2,-2.18856E-1,2.957855E-1,-4.5598108E-1,5.9247416E-1,-9.890667E-2,-1.7268155E-2,-5.7572264E-2,6.922035E-2,-1.8121483E-2,4.0088177E-2,-8.4929075E-3,2.1445906E-2,-3.323379E-2,8.981802E-2,-2.1368718E-2,-1.0615438E-1,1.2514397E-2,1.17062405E-1,2.3297496E-2,-3.4991584E-3,3.3421137E-3,-3.3115596E-2,-4.924975E-2,1.4025005E-4,7.424649E-2,-1.6373232E-2,3.8174707E-2,-9.8842435E-2,9.997866E-2,-1.594601E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":115,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,-1,27,29,31,33,35,37,39,41,-1,43,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.9368726E-1,3.9949255E0,1.9190723E0,2.2531474E0,3.4645329E0,1.538892E0,1.6463614E0,1.4187725E0,3.024444E0,3.2338276E0,4.7009554E0,3.2492776E0,3.2286491E0,0E0,2.303814E0,2.7266645E-1,1.645898E0,9.336732E0,3.053625E0,1.5721912E0,4.1325455E0,7.286093E-1,0E0,4.9125514E0,4.3776565E0,3.6456404E0,3.2716112E0,2.0490713E0,1.6457222E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,-1,28,30,32,34,36,38,40,42,-1,44,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.416278E-1,4.8250774E-1,4.9060223E-1,-7.790238E-1,-1.8369701E-16,9.659258E-1,2.7130238E1,9.922222E-1,-2.0782702E-1,-5.219642E-1,1.3759907E0,9.674856E-1,7.451577E1,1.06026344E-1,2.8860441E1,-1.9117528E0,6.1715023E1,7.309513E-2,3.38775E1,2.918038E1,3.019287E-1,-9.355376E-2,-9.4436355E-2,8.60961E-1,1.2395207E-1,8.3355576E-1,7.958589E1,5E-1,3.4268116E1,-9.890667E-2,-1.7268155E-2,-5.7572264E-2,6.922035E-2,-1.8121483E-2,4.0088177E-2,-8.4929075E-3,2.1445906E-2,-3.323379E-2,8.981802E-2,-2.1368718E-2,-1.0615438E-1,1.2514397E-2,1.17062405E-1,2.3297496E-2,-3.4991584E-3,3.3421137E-3,-3.3115596E-2,-4.924975E-2,1.4025005E-4,7.424649E-2,-1.6373232E-2,3.8174707E-2,-9.8842435E-2,9.997866E-2,-1.594601E-2],"split_indices":[8,8,6,3,10,9,0,7,3,3,4,4,2,0,0,4,2,8,0,0,6,3,0,8,5,8,2,11,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.552984E2,4.444396E2,5.108588E2,4.1420343E2,3.0236176E1,5.0208374E2,8.77505E0,6.0484376E0,4.08155E2,2.5831947E1,4.4042277E0,4.2826178E2,7.382197E1,2.174246E0,6.6008043E0,3.9392447E0,2.1091926E0,1.1019989E2,2.979551E2,2.566407E0,2.326554E1,3.3585112E0,1.0457168E0,2.727245E2,1.555373E2,5.947514E1,1.4346831E1,2.747944E0,3.8528602E0,2.9351847E0,1.00406E0,1.0348265E0,1.0743661E0,4.814364E1,6.205625E1,2.5973566E2,3.8219437E1,1.0890615E0,1.4773456E0,1.2610081E1,1.0655459E1,1.1766263E0,2.1818848E0,1.4196967E2,1.3075482E2,1.0953615E2,4.600114E1,2.597219E1,3.3502945E1,6.962809E0,7.384022E0,1.1778238E0,1.5701202E0,2.2853162E0,1.5675441E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-3.3930226E-4,1.7913083E-2,-3.943531E-2,3.9731544E-3,5.322669E-1,-4.9531788E-1,-1.8159885E-2,-7.4526025E-3,4.4422016E-1,-7.6733164E-2,6.617306E-1,5.3061932E-2,-8.062858E-1,-1.7603952E-1,7.6580174E-2,4.2098895E-1,-1.779073E-2,6.914386E-1,-3.7862042E-1,1.0990316E0,7.3865324E-2,7.375155E-1,-5.8049536E-1,-9.291479E-3,-8.873874E-1,-2.7536027E-2,-3.888159E-1,-2.2991681E-1,1.7636707E-1,-4.226606E-3,7.0912205E-2,-7.76348E-2,-1.2650193E-3,-2.9097388E-2,8.6666964E-2,3.3207014E-2,-7.921173E-2,1.334242E-1,1.3659598E-2,6.648936E-2,-5.4298878E-2,1.22311905E-1,-1.1883691E-2,-7.880677E-2,-2.9211824E-3,-1.4836127E-2,-9.765241E-2,-3.3599433E-2,1.1504622E-2,-2.0257056E-2,-7.4779E-2,-6.3935146E-3,-6.856651E-2,3.1806774E-2,-8.0221146E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":116,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,29,31,33,35,37,39,41,43,-1,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.8171096E-1,4.6676006E0,2.9399998E0,3.1979752E0,3.397914E0,2.3481226E0,4.3740435E0,2.753735E0,3.5332968E0,0E0,4.0727215E0,2.9563491E0,4.202304E-1,3.4535635E0,5.6342506E0,1.9852934E0,2.3546581E0,2.442031E0,1.5448116E0,1.8989725E0,3.2647746E0,1.493937E0,3.8747287E-1,0E0,3.6134338E-1,2.9258232E0,2.856382E0,3.3870406E0,3.6223216E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,30,32,34,36,38,40,42,44,-1,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[6.7420784E1,6.668731E1,3.0192533E1,3.438336E1,-2.6557355E0,-7.0710677E-1,-7.0710677E-1,-3.044823E0,9.3383723E-1,-7.6733164E-2,6.387494E-1,2.5743678E-1,1.3265605E-1,-8.660254E-1,-8.660254E-1,2.380544E1,-6.152846E-1,-9.206039E-1,2.4643119E-1,9.951053E-1,5.866767E-1,2.6256735E1,7.0628235E1,-9.291479E-3,-2.7597113E0,2.8985053E-1,3.714609E-1,1.1558638E0,5.6266326E-2,-4.226606E-3,7.0912205E-2,-7.76348E-2,-1.2650193E-3,-2.9097388E-2,8.6666964E-2,3.3207014E-2,-7.921173E-2,1.334242E-1,1.3659598E-2,6.648936E-2,-5.4298878E-2,1.22311905E-1,-1.1883691E-2,-7.880677E-2,-2.9211824E-3,-1.4836127E-2,-9.765241E-2,-3.3599433E-2,1.1504622E-2,-2.0257056E-2,-7.4779E-2,-6.3935146E-3,-6.856651E-2,3.1806774E-2,-8.0221146E-4],"split_indices":[2,2,1,1,4,10,10,4,7,0,8,6,6,10,9,0,7,4,6,7,4,0,2,0,4,5,6,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.533287E2,6.502803E2,3.0304843E2,6.3410266E2,1.6177616E1,1.2518791E1,2.9052963E2,6.1902026E2,1.5082398E1,1.0192316E0,1.5158384E1,4.830231E0,7.68856E0,1.0863561E2,1.8189401E2,1.3648898E1,6.0537134E2,1.1720673E1,3.3617263E0,8.193716E0,6.9646683E0,2.2429786E0,2.5872529E0,1.0039E0,6.68466E0,6.464629E1,4.398932E1,4.4354477E1,1.3753954E2,5.5611286E0,8.0877695E0,3.0649908E0,6.023064E2,1.6741616E0,1.0046511E1,1.3089364E0,2.0527897E0,6.274073E0,1.9196428E0,3.5170183E0,3.4476497E0,1.1580212E0,1.0849572E0,1.567525E0,1.0197277E0,1.0062593E0,5.6784005E0,2.0007074E1,4.4639217E1,2.999264E1,1.3996679E1,3.334914E1,1.1005336E1,7.73625E1,6.017704E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-5.1437516E-4,-3.1184836E-3,2.7937776E-1,1.201161E-2,-6.4079955E-2,7.510299E-2,1.6753402E-2,1.8228827E-2,-7.2981566E-1,-8.850472E-2,-3.669192E-2,-5.3626657E-1,3.700162E-1,7.0247767E-3,3.8108733E-1,-1.0719981E-1,5.596567E-3,-8.21568E-2,-1.9692687E-2,4.9380693E-3,-8.544944E-2,-4.7642063E-2,7.802455E-2,4.832837E-2,1.9820221E-4,7.04254E-2,1.12158535E-2,3.8816263E-3,-2.557608E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":117,"left_children":[1,3,5,7,9,-1,11,13,15,-1,17,19,21,23,25,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.955995E-1,8.727262E-1,1.0771346E0,3.5103245E0,4.19766E0,0E0,1.5022174E0,3.0582304E0,1.760992E0,0E0,2.4268427E0,6.031028E-1,1.9912486E0,1.7555383E0,1.8792737E0,0E0,0E0,0E0,2.49951E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,18,18],"right_children":[2,4,6,8,10,-1,12,14,16,-1,18,20,22,24,26,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,1E0,7.43043E1,8.37946E1,-3.4964746E-1,7.510299E-2,7.665543E1,3.3476425E1,2.463387E-1,-8.850472E-2,-3.678486E0,8.263542E-1,-8.660254E-1,-3.678486E0,3.4152542E1,-1.0719981E-1,5.596567E-3,-8.21568E-2,1.3237942E0,4.9380693E-3,-8.544944E-2,-4.7642063E-2,7.802455E-2,4.832837E-2,1.9820221E-4,7.04254E-2,1.12158535E-2,3.8816263E-3,-2.557608E-2],"split_indices":[0,11,2,2,8,0,2,0,3,0,4,7,9,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.521586E2,9.4436115E2,7.7974515E0,7.572271E2,1.8713405E2,2.1237164E0,5.673735E0,7.519009E2,5.3262167E0,5.030411E0,1.8210364E2,2.009655E0,3.66408E0,7.303685E2,2.1532368E1,3.4566934E0,1.8695233E0,2.8571188E0,1.7924652E2,1.0049789E0,1.0046762E0,1.1434394E0,2.5206406E0,6.658668E0,7.2370984E2,9.044739E0,1.2487629E1,1.4431415E2,3.493237E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-6.185391E-4,-6.7635356E-3,1.2124999E-1,2.3954087E-3,-1.7610154E-1,4.5826006E-1,-4.9021482E-2,-1.260512E-4,5.976515E-1,-3.0933717E-1,3.5446963E-1,-4.6917085E-2,5.966234E-1,2.3135392E-1,-2.962734E-1,3.842266E-3,-5.391422E-1,7.946853E-3,7.765856E-2,-2.6459606E-2,-5.96235E-1,9.148022E-2,3.4239164E-3,8.516239E-1,-3.7262477E-2,-4.317866E-2,1.046252E-1,-7.565947E-1,1.7185487E-1,-8.720055E-5,3.4879085E-2,-1.0297208E-1,2.9643176E-2,6.30901E-2,-2.5309443E-2,-8.808661E-2,1.5476505E-2,-2.479208E-2,7.084544E-2,-5.276281E-3,9.8032914E-2,6.093785E-2,-4.264317E-2,-5.5410076E-2,4.8817735E-2,-1.251371E-1,1.3960808E-2,4.7621246E-2,-5.0674446E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":118,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,23,25,27,29,31,-1,-1,33,35,-1,37,39,41,43,-1,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.1369976E-1,1.407416E0,2.6476223E0,1.2932866E0,3.4011688E0,2.2627723E0,2.2380688E0,1.8394212E0,2.7528405E-1,3.0479293E0,1.9268489E0,0E0,2.2763329E0,3.4517095E0,3.8081462E0,1.388569E0,2.8814762E0,0E0,0E0,3.147459E0,4.132655E0,0E0,1.422489E0,1.2092671E0,1.5034589E0,3.6233628E0,0E0,4.072896E0,2.1574602E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,15,15,16,16,19,19,20,20,22,22,23,23,24,24,25,25,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,24,26,28,30,32,-1,-1,34,36,-1,38,40,42,44,-1,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0627525E1,3.9114395E1,4.1240208E1,3.455521E1,9.7601056E-1,-3.9871642E-1,2.9755145E-1,3.4152542E1,7.5266683E-1,2.5881904E-1,-9.882014E-2,-4.6917085E-2,1.2344109E0,2.4825178E-1,8.085229E1,3.3725273E1,7.3108055E1,7.946853E-3,7.765856E-2,7.451577E1,4.0072838E1,9.148022E-2,4.0072838E1,-2.344914E-1,-5E-1,3.399529E-1,1.046252E-1,3.5996723E1,8.615817E1,-8.720055E-5,3.4879085E-2,-1.0297208E-1,2.9643176E-2,6.30901E-2,-2.5309443E-2,-8.808661E-2,1.5476505E-2,-2.479208E-2,7.084544E-2,-5.276281E-3,9.8032914E-2,6.093785E-2,-4.264317E-2,-5.5410076E-2,4.8817735E-2,-1.251371E-1,1.3960808E-2,4.7621246E-2,-5.0674446E-2],"split_indices":[1,1,1,0,7,4,6,0,7,9,8,0,4,6,2,0,2,0,0,2,1,0,1,8,9,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.5092566E2,9.061778E2,4.474785E1,8.606157E2,4.5562065E1,1.445212E1,3.0295729E1,8.579812E2,2.6345558E0,3.675038E1,8.811685E0,1.5658147E0,1.2886305E1,1.422704E1,1.6068687E1,8.5269635E2,5.2848063E0,1.0469037E0,1.5876521E0,1.9054808E1,1.7695572E1,2.7755191E0,6.0361657E0,8.944572E0,3.941732E0,1.1350246E1,2.8767931E0,7.7912045E0,8.277484E0,8.421841E2,1.0512315E1,3.183419E0,2.1013873E0,4.4278708E0,1.4626938E1,1.2706752E1,4.98882E0,4.9277635E0,1.1084025E0,1.1878481E0,7.756725E0,1.268371E0,2.673361E0,5.7645626E0,5.5856843E0,4.7645082E0,3.0266964E0,5.9203835E0,2.3571002E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-2.5379358E-4,-1.163656E-1,6.120979E-3,1.9060645E-2,-4.19474E-1,2.2068466E-1,-1.4158048E-3,-1.0437068E-1,8.542583E-1,-8.3462894E-1,5.685618E-2,-3.065069E-2,1.0444822E0,9.423666E-3,-2.030906E-1,1.4097966E-1,-5.146686E-1,-3.6820225E-2,1.4026728E0,-1.0839446E-3,-9.984761E-2,8.1100315E-1,-5.0590706E-1,-4.2087764E-1,6.088314E-1,-5.0985496E-3,1.4345181E0,4.3184468E-1,4.4010496E-3,-7.02846E-1,-1.0052871E-2,7.419529E-2,-3.1978548E-2,-8.590247E-2,-1.1930155E-2,1.8690437E-1,2.5000572E-2,1.0723128E-1,2.1354E-2,2.9404403E-3,-6.645789E-2,-6.5522015E-2,1.5918923E-3,-5.8772113E-2,8.463346E-2,1.8147354E-1,1.3605462E-2,-2.0285126E-2,7.3793575E-2,-6.2239796E-2,1.2169284E-3,-1.1072286E-1,-7.899041E-3,4.7289424E-2,-1.8908493E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":119,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,-1,35,-1,-1,37,39,41,43,-1,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.047683E-1,2.0421376E0,1.459979E0,3.7186995E0,3.0822499E0,6.3752728E0,1.9103267E0,3.2501526E0,3.6286323E0,1.1045632E0,3.8407464E0,6.356577E0,3.1454082E0,1.757855E0,4.2928963E0,5.924485E0,1.5349793E0,0E0,1.367167E0,0E0,0E0,3.70265E-1,4.6501637E-1,1.6249564E0,3.2463286E0,0E0,2.3878775E0,2.0410995E0,4.003608E0,3.0420218E0,2.957163E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,18,18,21,21,22,22,23,23,24,24,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,-1,36,-1,-1,38,40,42,44,-1,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5139853E1,3.572735E-1,2.5663958E1,3.3081898E-1,4.387322E-1,9.6230906E-1,9.946708E-1,-2.4100144E-1,2.3369553E1,2.3163027E1,4.6336895E1,9.5844936E-1,2.0644526E-1,2.4327875E1,-3.0035028E-1,9.5844936E-1,5.086709E-1,-3.6820225E-2,9.0881765E-1,-1.0839446E-3,-9.984761E-2,-2.5881904E-1,4.441841E-1,9.242907E-1,-3.0120306E-2,-5.0985496E-3,-2.2347833E-1,5E-1,2.468883E1,2.9955555E1,2.7536633E1,7.419529E-2,-3.1978548E-2,-8.590247E-2,-1.1930155E-2,1.8690437E-1,2.5000572E-2,1.0723128E-1,2.1354E-2,2.9404403E-3,-6.645789E-2,-6.5522015E-2,1.5918923E-3,-5.8772113E-2,8.463346E-2,1.8147354E-1,1.3605462E-2,-2.0285126E-2,7.3793575E-2,-6.2239796E-2,1.2169284E-3,-1.1072286E-1,-7.899041E-3,4.7289424E-2,-1.8908493E-2],"split_indices":[0,6,0,6,6,8,8,3,1,0,2,5,6,1,4,5,7,0,8,0,0,9,6,7,8,0,4,11,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.501875E2,4.8554207E1,9.016333E2,3.420764E1,1.4346565E1,2.963644E1,8.719969E2,3.0565495E1,3.642147E0,7.263613E0,7.0829515E0,2.3446009E1,6.190433E0,8.2842456E2,4.3572292E1,1.9538336E1,1.1027158E1,1.229685E0,2.4124622E0,1.3818936E0,5.8817196E0,2.8382988E0,4.2446527E0,1.4773015E1,8.672994E0,1.853608E0,4.336825E0,8.73574E0,8.1968884E2,1.1404974E1,3.2167316E1,8.214261E0,1.1324075E1,5.2669935E0,5.760164E0,1.2750713E0,1.1373909E0,1.4217138E0,1.416585E0,1.1567633E0,3.0878894E0,9.289249E0,5.4837656E0,1.1921751E0,7.4808183E0,3.0469985E0,1.2898266E0,2.9519658E0,5.7837734E0,9.065872E0,8.10623E2,6.4495597E0,4.955414E0,8.255727E0,2.391159E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-2.1629404E-4,2.7564099E-2,-2.81456E-2,1.8481887E-3,2.3588756E-1,-1.14066135E-2,-3.3672097E-1,-5.4325197E-2,1.1879075E-1,6.183655E-1,-3.9472643E-2,-2.48472E-2,3.492021E-1,-5.0987214E-1,5.416713E-1,-2.9521741E-2,-1.1568863E0,2.1422093E-1,-3.5059837E-1,3.2222682E-1,1.0157481E0,-7.063257E-1,3.7978718E-1,-1.6367575E-2,-9.05376E-1,-8.04989E-2,4.9798536E-1,3.151086E-1,-6.8192714E-1,3.980682E-2,1.02646366E-1,1.0718214E-2,-1.4466531E-2,3.713986E-2,-1.5663682E-1,-9.924943E-2,2.5171578E-2,6.413009E-2,-6.155863E-2,-8.877457E-2,5.227528E-2,1.21417575E-1,-2.7263243E-2,2.6017973E-2,-8.232478E-2,-2.0711888E-2,5.9358954E-2,-5.4424856E-4,-6.1295886E-2,-1.2772952E-1,-2.400309E-2,-4.2823823E-3,7.2237685E-2,-3.055814E-2,6.2212892E-2,-3.002266E-2,-1.2487856E-1,8.884024E-2,-7.547071E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":120,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,-1,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.3802865E-1,2.5543096E0,2.4461765E0,2.8015065E0,5.5421686E0,2.1943698E0,3.982941E0,7.8448787E0,6.2735844E0,2.2604818E0,9.047459E0,3.238255E0,3.194913E0,3.177699E0,1.053495E0,4.4668946E0,4.532201E0,5.481063E0,6.639668E0,3.8766012E0,2.6127634E0,1.6234884E0,2.623783E0,2.8159363E0,7.172015E-1,0E0,1.8549213E0,1.0068719E0,3.4304724E0,2.8619807E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,26,26,27,27,28,28,29,29],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,-1,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.638886E-1,6.9328123E-1,4.7911406E-1,2.1404222E-1,5.421243E1,4.6642E-1,9.9887973E-1,2.0057541E-1,7.930013E1,4.9885063E1,3.0278439E1,4.627964E-1,-4.7297227E-1,-2.9139644E-1,3.2443546E1,-2.095681E-1,2.7625925E1,2.4976313E1,-9.8292655E-1,1.5600148E-1,3.0761253E1,-2.4574022E0,6.1207073E1,2.8417099E0,9.455964E-1,-8.04989E-2,3.872228E-2,2.8713701E1,5.5725086E-1,5E-1,1.02646366E-1,1.0718214E-2,-1.4466531E-2,3.713986E-2,-1.5663682E-1,-9.924943E-2,2.5171578E-2,6.413009E-2,-6.155863E-2,-8.877457E-2,5.227528E-2,1.21417575E-1,-2.7263243E-2,2.6017973E-2,-8.232478E-2,-2.0711888E-2,5.9358954E-2,-5.4424856E-4,-6.1295886E-2,-1.2772952E-1,-2.400309E-2,-4.2823823E-3,7.2237685E-2,-3.055814E-2,6.2212892E-2,-3.002266E-2,-1.2487856E-1,8.884024E-2,-7.547071E-2],"split_indices":[7,7,6,3,2,6,7,3,2,2,1,6,3,3,1,4,1,1,7,6,0,4,2,4,7,0,8,0,5,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4920636E2,4.7587836E2,4.73328E2,4.2448755E2,5.1390812E1,4.499566E2,2.337139E1,2.8710977E2,1.3737778E2,2.0989933E1,3.040088E1,4.346861E2,1.5270498E1,1.9873425E1,3.497966E0,2.8179718E2,5.312595E0,1.14618614E2,2.2759167E1,1.3064694E1,7.925238E0,1.1471001E1,1.892988E1,4.315488E2,3.1372914E0,1.2400774E0,1.4030421E1,3.2860093E0,1.6587414E1,2.2504141E0,1.2475519E0,1.2886806E2,1.5292911E2,1.1422914E0,4.1703033E0,2.6865318E0,1.1193208E2,4.498885E0,1.826028E1,1.3701473E0,1.1694547E1,6.9174547E0,1.0077833E0,1.1057092E0,1.0365292E1,5.0629377E0,1.3866942E1,4.2477914E2,6.7696548E0,1.4224255E0,1.714866E0,4.3516355E0,9.678785E0,1.0890366E0,2.1969726E0,1.0826739E1,5.7606754E0,1.0310309E0,1.2193831E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-6.601259E-4,-1.7887004E-1,3.338093E-3,-6.9353133E-1,2.8294288E-2,2.765892E-1,-2.3516358E-3,8.412966E-3,-9.7258437E-1,-3.0708128E-1,3.2184198E-1,-1.2109106E-1,4.0537876E-1,5.490839E-2,-1.7178698E-2,-1.1076792E-1,-2.6906932E-2,1.3896343E-1,-9.23314E-2,6.531247E-1,-2.2792459E-1,-4.6954483E-1,5.9025694E-2,7.292385E-1,9.1163084E-2,2.3704896E-2,7.040428E-1,-5.0800662E-2,3.8729325E-2,-7.559781E-2,5.19566E-2,-2.7893553E-2,1.0337408E-1,1.7400034E-2,-5.8445133E-2,3.0945146E-2,-8.930578E-2,1.0952935E-1,1.7901553E-2,5.501433E-2,-3.0718863E-2,-2.5974814E-2,8.136356E-3,9.123102E-2,-1.3816086E-2,-2.0445934E-3,-3.7120644E-2,2.151793E-2,-1.2522207E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":121,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,29,-1,31,33,35,-1,37,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.7662674E-1,2.2413187E0,1.4449061E0,1.38813E0,1.656095E0,1.0199955E0,7.743716E-1,0E0,1.305542E-1,2.2983124E0,1.7740433E0,1.6174821E0,1.4140906E0,3.783462E0,1.3636053E0,0E0,0E0,2.2487893E0,0E0,2.3554242E0,6.887163E-1,1.6575181E0,0E0,1.2182121E0,1.7281296E0,2.9636726E0,1.62925E0,4.3960505E0,2.4678953E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,23,23,24,24,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,30,-1,32,34,36,-1,38,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,5.0583378E1,1.1521257E-1,4.5971794E1,5.981809E-1,2.7196558E1,5.0252426E1,8.412966E-3,8.8406754E-1,3.198137E-1,9.5237756E-1,9.821256E-1,1.3179931E-2,2.978087E1,7.935716E-1,-1.1076792E-1,-2.6906932E-2,-1.432141E0,-9.23314E-2,-2.578638E-1,1.2766433E-1,9.025161E-2,5.9025694E-2,3.1507803E1,-7.0710677E-1,-3.3451217E-1,3.0044113E1,7.266075E-1,2.7457502E1,-7.559781E-2,5.19566E-2,-2.7893553E-2,1.0337408E-1,1.7400034E-2,-5.8445133E-2,3.0945146E-2,-8.930578E-2,1.0952935E-1,1.7901553E-2,5.501433E-2,-3.0718863E-2,-2.5974814E-2,8.136356E-3,9.123102E-2,-1.3816086E-2,-2.0445934E-3,-3.7120644E-2,2.151793E-2,-1.2522207E-3],"split_indices":[6,2,6,2,8,0,2,0,7,4,8,8,3,0,8,0,0,4,0,3,3,8,0,1,10,3,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4778394E2,1.983762E1,9.279463E2,5.019606E0,1.4818014E1,1.7956722E1,9.0998956E2,1.5100203E0,3.5095856E0,6.894737E0,7.923278E0,4.40735E0,1.3549372E1,1.8661304E2,7.233765E2,2.4622679E0,1.0473177E0,4.4489613E0,2.4457753E0,4.8267393E0,3.0965385E0,3.1864097E0,1.2209401E0,6.0218625E0,7.5275097E0,1.7904308E2,7.569974E0,4.517778E2,2.7159872E2,1.0332144E0,3.415747E0,1.4769939E0,3.3497453E0,1.696252E0,1.4002866E0,1.217078E0,1.9693319E0,3.0212407E0,3.0006218E0,3.3205397E0,4.2069697E0,2.9671497E1,1.4937157E2,6.002405E0,1.5675684E0,4.136528E2,3.812499E1,6.041209E1,2.1118665E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-6.211717E-4,-6.7766565E-3,1.2232651E-1,1.1568114E-3,-2.0536263E-1,4.3699875E-1,-3.2538664E-2,-1.0622495E-2,1.5380336E-1,4.8433638E-1,-3.34692E-1,-4.431291E-2,5.730926E-1,-6.3066643E-1,7.305418E-2,5.120345E-3,-1.2910025E-1,2.4549948E-1,-4.8704773E-1,-1.8542096E-2,8.380476E-1,-4.0933618E-1,8.637111E-2,8.185891E-1,-1.0080481E-2,4.3966606E-2,-1.2672123E0,5.0767964E-1,-1.3633278E-1,-1.1816666E-3,3.1116018E-2,2.7410105E-2,-3.2208487E-2,9.850922E-2,1.6289635E-2,2.2829995E-2,-8.0144845E-2,7.779639E-3,1.1635166E-1,-6.610285E-2,4.8599136E-3,-4.919166E-3,9.488296E-2,5.7927467E-2,-3.8907643E-2,-1.5488088E-1,-3.7555035E-2,2.4860993E-2,9.0734266E-2,-6.42673E-2,2.0379452E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":122,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,23,25,27,29,31,33,35,-1,37,39,-1,41,43,-1,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.190382E-1,1.4255778E0,2.2217636E0,1.567654E0,3.2626324E0,2.0518916E0,2.0222592E0,1.510496E0,3.7898378E0,1.5524999E0,3.0248618E0,0E0,1.9318705E0,3.8266413E0,2.5710084E0,3.7124157E0,7.479106E0,3.2182584E0,2.016695E0,0E0,9.09245E-1,3.3504238E0,0E0,1.1167307E0,1.3351306E0,0E0,2.385931E-1,7.2179437E-1,3.4618895E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,12,12,13,13,14,14,15,15,16,16,17,17,18,18,20,20,21,21,23,23,24,24,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,24,26,28,30,32,34,36,-1,38,40,-1,42,44,-1,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0627525E1,2.9224489E0,4.1240208E1,5.241272E-1,1.50459E-1,-3.9871642E-1,4.4166693E-1,3.1077805E-1,7.555053E1,1.183853E-1,9.966589E-1,-4.431291E-2,1.2344109E0,4.1644497E1,1.9746102E-1,2.615833E-1,3.7770796E-1,-3.375229E-1,5.8658296E-1,-1.8542096E-2,5.607435E1,9.4698775E-1,8.637111E-2,-2.344914E-1,-1.11659005E-1,4.3966606E-2,8.3981316E1,9.209713E-1,3.8864103E-1,-1.1816666E-3,3.1116018E-2,2.7410105E-2,-3.2208487E-2,9.850922E-2,1.6289635E-2,2.2829995E-2,-8.0144845E-2,7.779639E-3,1.1635166E-1,-6.610285E-2,4.8599136E-3,-4.919166E-3,9.488296E-2,5.7927467E-2,-3.8907643E-2,-1.5488088E-1,-3.7555035E-2,2.4860993E-2,9.0734266E-2,-6.42673E-2,2.0379452E-2],"split_indices":[1,4,1,3,6,4,4,3,2,6,7,0,4,1,3,3,7,7,3,0,2,8,0,8,7,0,2,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.480047E2,9.037048E2,4.42999E1,8.699448E2,3.3759937E1,1.4010339E1,3.0289562E1,8.084866E2,6.1458237E1,4.897443E0,2.8862495E1,1.5741498E0,1.243619E1,3.798791E0,2.6490772E1,7.145031E2,9.398348E1,5.4304935E1,7.1533E0,1.8569899E0,3.040453E0,2.7789991E1,1.0725055E0,8.467831E0,3.9683583E0,1.5320274E0,2.2667637E0,8.149733E0,1.834104E1,6.779453E2,3.6557808E1,3.0286276E1,6.3697205E1,4.358169E0,4.9946766E1,2.2676444E0,4.8856554E0,1.2828705E0,1.7575823E0,1.7647179E1,1.0142812E1,1.1862499E0,7.2815814E0,1.3463227E0,2.6220355E0,1.1626079E0,1.1041557E0,5.9286866E0,2.2210464E0,7.012368E0,1.13286705E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-3.302637E-4,-1.11031264E-1,5.6826263E-3,-2.6325814E-2,-5.7960653E-1,1.9422229E-1,-9.304519E-4,1.9325641E-1,-1.9050375E-1,-7.4387854E-1,1.4023355E-2,3.6678382E-3,1.0899274E0,9.492307E-3,-1.9426298E-1,4.7186967E-2,1.3028865E-1,1.3238317E-1,-5.34516E-1,-1.2279039E-2,-8.408114E-2,7.838413E-1,-2.0191497E-1,9.458519E-3,1.338857E-1,5.877283E-1,6.3796397E-3,-5.973909E-1,1.853835E-2,4.1926723E-2,-3.918878E-2,6.135747E-2,-3.5350394E-2,-7.108421E-2,2.1365969E-2,-2.1347648E-2,1.07704416E-1,-7.865715E-2,4.4947388E-3,-3.288312E-2,1.1203748E-1,-2.6800374E-2,1.7356843E-3,-8.207762E-2,1.5478884E-2,9.766507E-2,-1.3020347E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":123,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,29,-1,31,33,-1,-1,35,37,-1,-1,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.318344E-1,1.9257103E0,1.1227908E0,1.5676295E0,9.839959E-1,5.2043943E0,1.7566735E0,2.9634213E0,2.8255053E0,2.70957E-1,0E0,4.354995E0,1.198863E0,1.4852067E0,3.8366103E0,3.0280857E0,0E0,3.3953469E0,1.7621102E0,0E0,0E0,1.8855207E0,3.1390102E0,0E0,0E0,2.525476E0,2.4860435E0,2.720883E0,4.424842E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,17,17,18,18,21,21,22,22,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,30,-1,32,34,-1,-1,36,38,-1,-1,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.5139853E1,6.047431E1,2.5663958E1,9.3059385E-1,9.880227E-1,9.821256E-1,9.946708E-1,5.8281124E1,-2.5997322E0,1.4391811E-1,1.4023355E-2,-2.2950435E0,2.5304247E1,2.3896278E1,6.359704E-2,-2.5235417E-1,1.3028865E-1,7.469721E-1,-1.8369701E-16,-1.2279039E-2,-8.408114E-2,1.4154029E-1,-4.0857756E-1,9.458519E-3,1.338857E-1,2.4643119E-1,2.6131413E1,7.482733E1,4.0519643E-1,4.1926723E-2,-3.918878E-2,6.135747E-2,-3.5350394E-2,-7.108421E-2,2.1365969E-2,-2.1347648E-2,1.07704416E-1,-7.865715E-2,4.4947388E-3,-3.288312E-2,1.1203748E-1,-2.6800374E-2,1.7356843E-3,-8.207762E-2,1.5478884E-2,9.766507E-2,-1.3020347E-2],"split_indices":[0,2,0,5,8,8,8,2,4,6,0,4,0,1,4,3,0,7,10,0,0,8,3,0,0,6,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4727545E2,4.7902134E1,8.993733E2,4.1462963E1,6.439174E0,2.951543E1,8.698579E2,1.7662659E1,2.3800303E1,5.215557E0,1.2236168E0,2.5165712E1,4.3497186E0,8.2626404E2,4.3593853E1,1.65293E1,1.1333584E0,1.2594445E1,1.1205858E1,1.0101129E0,4.2054443E0,4.66178E0,2.0503931E1,1.1462831E0,3.2034352E0,3.4183774E0,8.2284564E2,1.4437115E1,2.915674E1,8.97166E0,7.557641E0,6.1957636E0,6.398681E0,9.108997E0,2.0968604E0,1.1209224E0,3.5408576E0,5.4381685E0,1.5065763E1,1.3970424E0,2.0213351E0,3.075238E1,7.9209326E2,1.1060983E1,3.3761322E0,3.1701717E0,2.5986568E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-1.13058595E-4,-1.7311426E-1,3.7450525E-3,-6.532529E-1,1.9986495E-2,2.569365E-1,-1.4982369E-3,7.95365E-3,-9.1992056E-1,-2.9335335E-1,2.95032E-1,1.0353145E-1,5.9772354E-1,5.185026E-2,-1.5270685E-2,-1.0472429E-1,-2.5365008E-2,1.2087775E-1,-8.6566456E-2,6.331575E-1,-1.7000541E-1,-2.586576E-1,5.778508E-1,1.0901003E-1,-3.621215E-2,2.3062551E-2,6.624808E-1,-6.4542875E-2,1.7444577E-2,-2.312189E-2,7.542747E-2,2.021396E-2,9.186763E-2,4.3722104E-2,-5.7599075E-2,4.49927E-2,-4.18859E-2,8.778383E-2,6.2177E-3,-7.975738E-2,4.187792E-3,-2.4622273E-2,8.3353154E-2,-8.784111E-3,5.3680837E-2,2.302851E-2,-1.0435124E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":124,"left_children":[1,3,5,7,9,11,13,-1,15,17,19,21,23,25,27,-1,-1,29,-1,31,33,35,37,-1,-1,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.328262E-1,1.930655E0,1.2316402E0,1.2382026E0,1.4414039E0,9.221387E-1,6.6913825E-1,0E0,1.1193466E-1,1.9656818E0,1.50245E0,2.5870981E0,3.057109E0,3.2697268E0,1.1677972E0,0E0,0E0,1.3857244E0,0E0,4.7241545E-1,1.3668071E0,1.1801866E0,9.4364953E-1,0E0,0E0,2.8049426E0,1.507364E0,4.096365E0,2.588105E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,8,8,9,9,10,10,11,11,12,12,13,13,14,14,17,17,19,19,20,20,21,21,22,22,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,-1,16,18,20,22,24,26,28,-1,-1,30,-1,32,34,36,38,-1,-1,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,5.0583378E1,1.1521257E-1,4.5971794E1,5.981809E-1,1.1371429E-1,5.0252426E1,7.95365E-3,8.8406754E-1,3.198137E-1,6.19975E1,8.120655E-2,2.3101075E-1,2.978087E1,6.1207073E1,-1.0472429E-1,-2.5365008E-2,-1.3357483E-1,-8.6566456E-2,2.8860775E1,1.0292006E-1,-5.0506437E-1,2.9274492E1,1.0901003E-1,-3.621215E-2,-3.4964746E-1,5.160624E-1,9.986668E-1,6.2982704E1,-2.312189E-2,7.542747E-2,2.021396E-2,9.186763E-2,4.3722104E-2,-5.7599075E-2,4.49927E-2,-4.18859E-2,8.778383E-2,6.2177E-3,-7.975738E-2,4.187792E-3,-2.4622273E-2,8.3353154E-2,-8.784111E-3,5.3680837E-2,2.302851E-2,-1.0435124E-3],"split_indices":[6,2,6,2,8,6,2,0,7,4,2,4,3,0,2,0,0,4,0,1,6,3,0,0,0,8,7,8,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.461429E2,1.9682697E1,9.264602E2,4.961967E0,1.4720731E1,1.7822704E1,9.086375E2,1.5111479E0,3.450819E0,6.8502097E0,7.8705215E0,1.3189335E1,4.6333685E0,1.858747E2,7.227628E2,2.4171166E0,1.0337026E0,4.431523E0,2.4186866E0,4.347769E0,3.5227528E0,7.7364655E0,5.4528694E0,2.9727283E0,1.6606405E0,1.7849733E2,7.377352E0,2.8801416E2,4.3474866E2,3.2563288E0,1.175194E0,2.413035E0,1.9347339E0,1.3807087E0,2.142044E0,1.0930965E0,6.6433687E0,3.003376E0,2.4494936E0,3.0731192E0,1.7542421E2,1.0990741E0,6.2782784E0,2.7809384E2,9.920302E0,4.9510826E1,3.8523782E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[5.7164052E-5,-6.5159635E-3,9.899228E-2,-2.5433672E-4,-6.479197E-1,-2.8129262E-1,2.111993E-1,7.0500122E-3,-1.8962836E-1,-1.268511E0,1.626932E-1,2.0994608E-1,-6.195915E-1,2.0778684E-2,4.919932E-1,-3.8025437E-3,1.4806433E-1,5.00373E-1,-3.218144E-1,-3.9235372E-2,-1.4181888E-1,-4.6692505E-2,6.557884E-2,-8.182802E-2,6.4751244E-1,-8.4685165E-1,1.9156585E-2,2.8371814E-1,-6.859906E-1,6.0250425E-1,-2.2128567E-1,1.0113498E-3,-1.4866362E-2,-5.5987317E-2,2.1180592E-2,-2.1295004E-2,7.6237194E-2,-4.635615E-2,4.1824277E-2,-3.4131605E-2,9.759494E-2,-1.8708662E-3,-1.0778322E-1,-6.7289956E-2,3.9999686E-2,-9.0508394E-2,1.3731035E-2,2.9419804E-2,9.472418E-2,3.4236934E-2,-6.653139E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":125,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,-1,-1,-1,-1,-1,39,41,-1,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.16104E-1,3.5677807E0,2.5779324E0,1.2196975E0,4.526892E0,2.4361076E0,2.4571648E0,1.2999138E0,3.1478534E0,9.63974E-2,1.7375617E0,3.4119532E0,1.7236865E0,5.498863E0,1.5997782E0,1.5927428E0,2.8576171E0,1.2194526E0,3.1406448E0,0E0,0E0,0E0,0E0,0E0,1.973783E0,1.2807798E0,0E0,2.661852E0,1.5730731E0,1.4619241E0,1.0354527E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,24,24,25,25,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,-1,-1,-1,-1,-1,40,42,-1,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0072838E1,3.981565E1,-7.0710677E-1,2.9224489E0,1.3492717E-1,1.1140981E0,3.4280792E-1,5.241272E-1,1.50459E-1,-8.660254E-1,3.8963044E-1,-1.7138305E-1,-8.660254E-1,2.9755145E-1,9.821256E-1,3.569624E-1,-5.380052E-1,-5E-1,4.5957386E-1,-3.9235372E-2,-1.4181888E-1,-4.6692505E-2,6.557884E-2,-8.182802E-2,3.455521E1,3.6367636E-2,1.9156585E-2,7.242069E1,9.721182E-1,7.0710677E-1,4.3194726E-1,1.0113498E-3,-1.4866362E-2,-5.5987317E-2,2.1180592E-2,-2.1295004E-2,7.6237194E-2,-4.635615E-2,4.1824277E-2,-3.4131605E-2,9.759494E-2,-1.8708662E-3,-1.0778322E-1,-6.7289956E-2,3.9999686E-2,-9.0508394E-2,1.3731035E-2,2.9419804E-2,9.472418E-2,3.4236934E-2,-6.653139E-2],"split_indices":[1,1,9,4,3,4,6,3,6,10,8,3,9,6,8,3,7,9,6,0,0,0,0,0,0,3,0,2,7,9,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.45404E2,8.873816E2,5.8022404E1,8.7979315E2,7.5884776E0,1.2876223E1,4.5146183E1,8.480459E2,3.1747221E1,3.9780626E0,3.6104152E0,5.40586E0,7.4703627E0,2.7542328E1,1.7603853E1,7.883472E2,5.9698696E1,4.6563005E0,2.7090921E1,1.1088128E0,2.8692498E0,1.6090024E0,2.0014126E0,1.354017E0,4.0518427E0,5.8010817E0,1.669281E0,2.0510408E1,7.0319195E0,1.5376774E1,2.2270799E0,7.201011E2,6.824614E1,4.2882576E0,5.541044E1,1.3011034E0,3.3551974E0,2.3049704E1,4.0412183E0,1.0004786E0,3.051364E0,1.5008885E0,4.300193E0,1.7040819E0,1.8806328E1,5.475474E0,1.5564456E0,9.095695E0,6.28108E0,1.0822302E0,1.1448497E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[-1.980251E-4,-2.8148817E-2,2.3969455E-2,-4.3830043E-3,-3.4285197E-1,1.6210793E-2,4.208464E-1,-5.3851247E-1,4.510541E-3,-4.5953956E-2,-6.6947407E-1,-9.824315E-2,5.0176624E-2,9.2822915E-1,1.1281632E-1,-9.435537E-2,-3.9407223E-2,1.3055308E-1,-4.2546466E-2,9.215082E-2,-2.307746E-1,-9.226843E-1,7.540944E-2,-8.1990904E-1,-1.2339773E-2,2.9680172E-1,-8.195919E-3,1.2408286E-1,1.0196762E-2,-5.392146E-1,5.5276346E-1,-6.371658E-2,4.7863062E-2,-1.6557872E-2,3.5597984E-2,1.5928818E-2,-8.405131E-3,-5.6197017E-2,3.1246727E-2,-4.893363E-2,-1.250945E-1,-5.0139528E-2,9.777854E-2,-1.0725436E-1,2.2333046E-2,1.8470941E-2,-2.550087E-2,5.0680425E-2,-1.6339457E-2,7.536729E-2,-3.047657E-3,-8.397611E-2,6.8257316E-3,9.433029E-2,-1.642754E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":126,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,33,35,-1,37,39,41,43,45,47,49,-1,-1,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.3945675E-1,3.281548E0,1.556456E0,1.9460162E0,2.9568734E0,1.9447633E0,1.4104253E0,1.3191571E0,2.3984358E0,3.2903695E0,2.8226304E0,7.090109E0,5.5515366E0,7.83643E-1,2.355028E0,0E0,1.5588583E0,7.396826E0,2.4806151E0,0E0,2.9196172E0,9.482069E-1,2.8988216E0,3.4464521E0,4.989731E0,7.214867E0,5.330342E0,0E0,0E0,6.771921E-1,1.4922454E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,20,20,21,21,22,22,23,23,24,24,25,25,26,26,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,34,36,-1,38,40,42,44,46,48,50,-1,-1,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.416278E-1,4.8250774E-1,4.9060223E-1,-7.790238E-1,-2.2347833E-1,-8.22366E-1,2.679481E1,9.8594815E-1,-2.0782702E-1,-9.659258E-1,8.660254E-1,6.118864E-1,7.0252746E-1,-5E-1,2.8860441E1,-9.435537E-2,6.1715023E1,7.309513E-2,-2.843592E-1,9.215082E-2,3E1,3.019287E-1,5.2707773E-1,7.2157684E1,2.5881904E-1,2.5112805E-1,-7.062995E-1,1.2408286E-1,1.0196762E-2,-2.5881904E-1,3.4268116E1,-6.371658E-2,4.7863062E-2,-1.6557872E-2,3.5597984E-2,1.5928818E-2,-8.405131E-3,-5.6197017E-2,3.1246727E-2,-4.893363E-2,-1.250945E-1,-5.0139528E-2,9.777854E-2,-1.0725436E-1,2.2333046E-2,1.8470941E-2,-2.550087E-2,5.0680425E-2,-1.6339457E-2,7.536729E-2,-3.047657E-3,-8.397611E-2,6.8257316E-3,9.433029E-2,-1.642754E-2],"split_indices":[8,8,6,3,4,4,1,7,3,9,9,8,8,10,0,0,2,8,8,0,0,6,8,2,9,3,4,0,0,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4464294E2,4.3795886E2,5.066841E2,4.0815002E2,2.9808825E1,4.9798962E2,8.694496E0,5.709301E0,4.0244073E2,1.6212463E1,1.359636E1,1.1353173E2,3.844579E2,2.523835E0,6.1706614E0,2.660071E0,3.04923E0,1.08920906E2,2.935198E2,1.9610729E0,1.4251391E1,9.968907E0,3.627453E0,1.1167777E1,1.0236395E2,7.279845E1,3.1165942E2,1.4670628E0,1.0567721E0,2.3951924E0,3.7754693E0,1.3089201E0,1.74031E0,4.7192272E1,6.1728634E1,4.9579754E1,2.4394006E2,8.83222E0,5.4191713E0,5.3702083E0,4.598699E0,2.484015E0,1.1434381E0,8.967972E0,2.1998055E0,5.6623802E1,4.5740154E1,4.9917976E1,2.2880474E1,7.9227033E0,3.0373672E2,1.3465838E0,1.0486084E0,2.2399266E0,1.5355426E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-2.1651332E-4,1.1372632E-2,-5.6883596E-2,1.8478642E-3,2.4864651E-1,4.753265E-1,-8.658118E-2,7.0071737E-3,-8.21994E-1,-1.9920285E-1,5.802928E-1,7.3897994E-1,-2.790896E-2,-6.708352E-1,-4.509109E-2,1.7788525E-1,-6.4532375E-3,-1.1807751E-1,-1.9264765E-4,5.8561422E-2,-5.948165E-1,1.2970565E-1,2.943286E-1,-6.7213066E-3,1.0129478E0,-2.235024E-2,-1.0814897E-1,6.122268E-1,-7.9162486E-2,7.647967E-2,-7.64809E-5,-8.0162E-3,4.707099E-3,4.8812784E-2,-2.5222113E-2,2.6170174E-2,-8.837178E-2,-3.2162204E-2,5.9462853E-2,-3.5839234E-3,1.3492623E-1,7.738496E-2,-5.6853767E-2,-5.829255E-2,1.1486373E-1,8.6099515E-4,-3.8880266E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":127,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,-1,25,27,29,31,-1,-1,33,35,-1,37,-1,39,41,-1,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.2091225E-1,1.7735237E0,2.5783825E0,3.2176979E0,4.6139803E0,1.9244363E0,3.6759543E0,1.7307181E0,1.3839293E0,1.424777E0,3.2372274E0,1.5424719E0,0E0,2.6562862E0,3.2695541E0,5.7614584E0,2.7575843E0,0E0,0E0,1.3464378E0,1.5840496E0,0E0,2.7650075E0,0E0,1.8276482E0,2.581162E0,0E0,5.2868357E0,3.7436686E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,13,13,14,14,15,15,16,16,19,19,20,20,22,22,24,24,25,25,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,-1,26,28,30,32,-1,-1,34,36,-1,38,-1,40,42,-1,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3194726E-1,4.1781852E-1,2.4425446E1,4.1658098E-1,2.8942356E1,4.8880367E1,2.5494375E1,-9.659258E-1,9.6573997E-1,5.7252533E1,-3.0236432E-1,4.118533E1,-2.790896E-2,4.54233E1,2.591342E1,-2.5235417E-1,-5.9387438E-2,-1.1807751E-1,-1.9264765E-4,5E-1,-4.2500034E-1,1.2970565E-1,6.2840515E1,-6.7213066E-3,-3.3451217E-1,2.6605955E1,-1.0814897E-1,-8.660254E-1,7.305212E-1,7.647967E-2,-7.64809E-5,-8.0162E-3,4.707099E-3,4.8812784E-2,-2.5222113E-2,2.6170174E-2,-8.837178E-2,-3.2162204E-2,5.9462853E-2,-3.5839234E-3,1.3492623E-1,7.738496E-2,-5.6853767E-2,-5.829255E-2,1.1486373E-1,8.6099515E-4,-3.8880266E-2],"split_indices":[6,6,1,6,0,2,1,10,7,2,3,2,0,2,1,3,3,0,0,11,7,0,2,0,3,0,0,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.434854E2,7.839557E2,1.595297E2,7.546692E2,2.9286524E1,7.6382947E0,1.518914E2,7.509578E2,3.7113786E0,1.2630233E1,1.6656292E1,5.6753383E0,1.9629568E0,9.065434E0,1.4282596E2,5.3943024E1,6.970148E2,2.2758424E0,1.4355361E0,8.163338E0,4.4668946E0,3.7418044E0,1.2914487E1,1.6308823E0,4.044456E0,3.9237196E0,5.141715E0,6.202185E0,1.3662378E2,1.1822405E1,4.212062E1,2.9301E2,4.0400476E2,3.1872506E0,4.976087E0,1.1504006E0,3.316494E0,4.209435E0,8.705052E0,1.1989619E0,2.845494E0,1.4268789E0,2.4968407E0,1.8944749E0,4.30771E0,1.07206566E2,2.9417213E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-1.3504682E-4,-2.4969585E-3,2.6021317E-1,-3.7564625E-4,-3.4629586E-1,7.336553E-2,9.567861E-4,-3.3253399E-3,5.7793766E-1,-5.7451755E-1,8.27111E-3,-3.123457E-1,6.424618E-2,-1.2222942E-3,-5.4911333E-1,6.9455695E-1,1.04925595E-2,7.0527694E-3,-8.313411E-2,-6.6069853E-1,4.074312E-2,1.8189155E-2,-6.39879E-4,-9.639908E-3,-6.898022E-2,2.0147722E-2,8.58402E-2,-9.833874E-2,-8.77228E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":128,"left_children":[1,3,5,7,9,-1,11,13,15,17,-1,19,-1,21,23,25,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.8093816E-1,6.826365E-1,1.041844E0,1.5908302E0,6.0951203E-1,0E0,1.5049906E0,1.0641769E0,1.8817735E-1,7.001821E-1,0E0,1.5311582E0,0E0,8.781091E-1,1.6016698E-1,1.1938691E-1,0E0,0E0,0E0,6.1134446E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,11,11,13,13,14,14,15,15,19,19],"right_children":[2,4,6,8,10,-1,12,14,16,18,-1,20,-1,22,24,26,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,9.817894E-1,7.43043E1,9.030959E-1,3.1997198E1,7.336553E-2,2.5208554E0,9.025015E1,7.0710677E-1,2.7885567E1,8.27111E-3,7.9444496E1,6.424618E-2,-6.8077344E-1,1.2246469E-16,3.0834862E1,1.04925595E-2,7.0527694E-3,-8.313411E-2,2.9701063E-1,4.074312E-2,1.8189155E-2,-6.39879E-4,-9.639908E-3,-6.898022E-2,2.0147722E-2,8.58402E-2,-9.833874E-2,-8.77228E-3],"split_indices":[0,3,2,3,0,0,4,2,9,1,0,2,0,7,9,0,0,0,0,3,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.42682E2,9.351883E2,7.493736E0,9.304483E2,4.739971E0,2.0040984E0,5.4896374E0,9.267158E2,3.7324743E0,2.8726227E0,1.8673486E0,4.033053E0,1.4565845E0,9.2415704E2,2.5587482E0,2.6185188E0,1.1139556E0,1.0245979E0,1.8480247E0,2.7730496E0,1.2600033E0,2.446849E1,8.996886E2,1.0061883E0,1.5525601E0,1.2092003E0,1.4093184E0,1.3157587E0,1.4572909E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-5.519434E-5,-1.6488075E-1,3.5911587E-3,1.3252273E-1,-4.6440357E-1,2.4054632E-1,-1.3165774E-3,-2.0462942E-1,8.038458E-1,-8.499143E-1,1.7610101E-1,-1.2596501E-2,4.2999443E-1,-1.8957567E-1,2.244315E-3,-4.095653E-1,5.907436E-2,9.988974E-3,1.040303E-1,-1.0387124E-1,-6.8141185E-3,6.302407E-2,-2.0352042E-1,-3.5092744E-1,4.8498163E-1,7.468715E-1,4.360353E-2,2.1374601E-1,-4.8789164E-1,3.2557464E-1,-2.0853537E-3,3.5757527E-3,-7.037033E-2,-6.1335027E-2,3.2200407E-2,1.9699782E-2,-6.258666E-2,7.2533228E-3,8.572805E-2,1.0358091E-1,-2.3422748E-2,4.380084E-2,-4.9907733E-2,6.2116858E-2,-5.9375167E-2,-7.742899E-2,9.316695E-3,-1.5835647E-2,7.224052E-2,-6.912994E-2,1.1443894E-5],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":129,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,33,35,37,39,41,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.6769896E-1,1.8826773E0,1.075014E0,2.662421E0,2.7195582E0,9.0498185E-1,6.0803884E-1,1.569381E0,5.4401994E-1,9.135175E-1,9.4526124E-1,1.6854085E0,1.2845013E0,2.1301355E0,1.2473675E0,9.5069516E-1,0E0,0E0,0E0,0E0,0E0,0E0,9.16238E-1,1.0178044E0,5.6167376E-1,1.9004197E0,1.4833088E0,2.9527974E0,1.733511E0,2.3754544E0,1.3339274E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,34,36,38,40,42,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,3.198137E-1,1.1521257E-1,-2.095681E-1,8.60961E-1,2.834149E1,2.3261148E1,-1.8369701E-16,-9.70583E-2,3.207702E1,9.5237756E-1,5E-1,6.6907295E1,2.6061535E-1,2.3717247E1,-2.688676E-1,5.907436E-2,9.988974E-3,1.040303E-1,-1.0387124E-1,-6.8141185E-3,6.302407E-2,2.9541073E1,2.5698236E1,7.5651073E-1,2.5208554E0,1.2246469E-16,2.2853502E1,4.1501534E-1,-3.8190868E-1,2.380544E1,3.5757527E-3,-7.037033E-2,-6.1335027E-2,3.2200407E-2,1.9699782E-2,-6.258666E-2,7.2533228E-3,8.572805E-2,1.0358091E-1,-2.3422748E-2,4.380084E-2,-4.9907733E-2,6.2116858E-2,-5.9375167E-2,-7.742899E-2,9.316695E-3,-1.5835647E-2,7.224052E-2,-6.912994E-2,1.1443894E-5],"split_indices":[6,4,6,4,8,0,1,10,3,0,8,9,2,6,1,3,0,0,0,0,0,0,0,1,4,4,9,1,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.425861E2,1.9443996E1,9.2314215E2,1.0036283E1,9.407715E0,1.775758E1,9.053846E2,7.143737E0,2.8925455E0,5.6687994E0,3.7389157E0,8.000597E0,9.756982E0,1.5837569E1,8.89547E2,6.0658693E0,1.0778674E0,1.0849594E0,1.8075861E0,4.301359E0,1.3674401E0,1.4017844E0,2.3371313E0,4.937825E0,3.0627718E0,4.848122E0,4.90886E0,6.854207E0,8.983362E0,1.077397E1,8.78773E2,2.76226E0,3.3036094E0,1.2192106E0,1.1179206E0,1.7445674E0,3.1932576E0,2.019884E0,1.0428877E0,3.7020805E0,1.1460416E0,2.954497E0,1.9543632E0,4.7090216E0,2.1451857E0,5.7946734E0,3.188689E0,5.1250124E0,5.6489577E0,1.7992393E0,8.7697375E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}},{"base_weights":[1.2750061E-6,-2.6373615E-2,2.27982E-2,-4.957852E-3,-3.1319517E-1,1.5551878E-2,3.955112E-1,-5.090038E-1,3.1301896E-3,-1.8995789E-1,-1.1600173E0,-3.4569524E-2,7.316105E-2,8.634711E-1,1.07268564E-1,-9.074618E-2,-3.2057226E-2,1.0717462E-1,-4.6443958E-2,-7.5372475E-1,2.4553288E-2,-1.3441677E-1,-3.3486124E-2,2.0655053E-2,-3.621194E-1,3.1538427E-1,-1.3024055E-2,1.1691298E-1,7.770595E-3,-5.133056E-1,5.221906E-1,-6.1770387E-2,4.5719042E-2,1.450827E-2,-6.535387E-2,-6.082361E-2,-2.0614178E-3,-9.526124E-2,9.6447807E-4,-5.2584976E-2,4.0275175E-2,-1.0987739E-2,1.1165557E-2,-1.9081892E-2,-9.438183E-2,5.2905448E-2,-8.124024E-3,-2.227978E-2,1.1548414E-2,-8.098898E-2,6.919922E-3,9.356295E-2,-1.0647628E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":130,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,31,33,35,37,39,-1,-1,41,43,45,47,-1,-1,49,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.6758666E-1,2.6867034E0,1.3613634E0,1.6659548E0,2.9512448E0,1.4396763E0,1.2043837E0,1.1973814E0,2.0826051E0,3.371513E0,1.0680866E-1,4.834239E0,4.8449397E0,7.5537086E-1,2.0942256E0,0E0,1.4211001E0,3.8520389E0,3.956399E0,1.1742043E0,4.594093E0,0E0,0E0,2.735836E0,3.661397E0,5.203536E0,4.6621985E0,0E0,0E0,6.341296E-1,1.3332075E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,16,16,17,17,18,18,19,19,20,20,23,23,24,24,25,25,26,26,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,32,34,36,38,40,-1,-1,42,44,46,48,-1,-1,50,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.416278E-1,4.8250774E-1,4.9060223E-1,-7.790238E-1,7.555053E1,6.1207073E1,2.679481E1,9.8594815E-1,-8.22366E-1,3.141302E-1,4.0072838E1,5.9138897E1,6.568454E1,-5E-1,2.8860441E1,-9.074618E-2,6.1715023E1,4.77454E-1,2.6256735E1,3.261837E1,2.750313E1,-1.3441677E-1,-3.3486124E-2,-7.008488E-2,3.1309187E1,5E-1,-7.0710677E-1,1.1691298E-1,7.770595E-3,-2.5881904E-1,3.336089E1,-6.1770387E-2,4.5719042E-2,1.450827E-2,-6.535387E-2,-6.082361E-2,-2.0614178E-3,-9.526124E-2,9.6447807E-4,-5.2584976E-2,4.0275175E-2,-1.0987739E-2,1.1165557E-2,-1.9081892E-2,-9.438183E-2,5.2905448E-2,-8.124024E-3,-2.227978E-2,1.1548414E-2,-8.098898E-2,6.919922E-3,9.356295E-2,-1.0647628E-2],"split_indices":[8,8,6,3,2,2,1,7,4,5,1,2,2,10,0,0,2,6,0,0,0,0,0,3,0,9,10,0,0,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.419855E2,4.366484E2,5.0533707E2,4.072575E2,2.9390924E1,4.9672147E2,8.615579E0,5.45365E0,4.0180383E2,2.6725851E1,2.665072E0,2.6583682E2,2.3088466E2,2.5233305E0,6.0922484E0,2.4795218E0,2.9741282E0,1.292909E2,2.7251297E2,6.6734247E0,2.0052427E1,1.6645969E0,1.0004752E0,2.2828511E2,3.7551697E1,5.989379E1,1.7099088E2,1.4654073E0,1.0579231E0,2.3461454E0,3.7461033E0,1.2341949E0,1.7399334E0,1.2392472E2,5.36617E0,1.0987583E1,2.6152536E2,5.097438E0,1.5759867E0,8.007897E0,1.204453E1,9.3688934E1,1.3459618E2,3.003495E1,7.5167475E0,3.8707394E1,2.11864E1,6.4678116E1,1.0631275E2,1.2959507E0,1.0501946E0,1.9653364E0,1.780767E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"53","size_leaf_vector":"1"}},{"base_weights":[-4.938951E-4,-5.20373E-2,6.352668E-4,4.929927E-2,-6.780918E-4,-2.767713E-1,1.7871136E-3,1.414023E-1,-8.886889E-2,1.01476036E-1,-8.7050186E-4,-6.382293E-2,4.7682587E-2,-5.2789908E-2,2.540411E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":131,"left_children":[1,-1,3,-1,5,7,9,11,-1,-1,13,-1,-1,-1,-1],"loss_changes":[5.534779E-1,0E0,6.089804E-1,0E0,6.401039E-1,2.2554057E0,2.5110264E0,1.822872E0,0E0,0E0,1.6749021E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,4,4,5,5,6,6,7,7,10,10],"right_children":[2,-1,4,-1,6,8,10,12,-1,-1,14,-1,-1,-1,-1],"split_conditions":[2.2030704E1,-5.20373E-2,2.1896584E1,4.929927E-2,2.2760592E1,-2.6557355E0,2.2853502E1,-5.0506437E-1,-8.886889E-2,1.01476036E-1,2.3261148E1,-6.382293E-2,4.7682587E-2,-5.2789908E-2,2.540411E-4],"split_indices":[0,0,1,0,1,4,1,3,0,0,1,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4128485E2,1.0433984E0,9.4024146E2,1.5054462E0,9.3873596E2,7.322955E0,9.31413E2,4.806915E0,2.5160406E0,1.4407151E0,9.299723E2,1.1744232E0,3.6324916E0,4.991269E0,9.249811E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-5.2383123E-4,-2.7637766E-3,2.4985272E-1,6.2318416E-3,-7.690329E-2,7.146742E-2,3.8758821E-3,-8.348092E-3,1.54112E-1,-4.1668385E-1,-8.658948E-3,-2.867438E-1,6.250083E-2,-6.262072E-1,-3.3116946E-3,9.050636E-1,9.543282E-2,-5.8947873E-1,2.9379454E-1,4.9093345E-1,-6.1788984E-2,-6.0499E-1,3.9206717E-2,1.3599194E-2,-1.1910039E-1,3.9761152E-2,-9.3962776E-4,1.0160041E-1,2.673915E-2,-4.543466E-3,3.3244964E-2,-4.3577836E-3,-9.447798E-2,-2.5966225E-2,6.1881788E-2,1.5300566E-1,1.02580255E-2,-6.945663E-2,-1.9872728E-4,-8.954077E-2,-7.894441E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":132,"left_children":[1,3,5,7,9,-1,11,13,15,17,19,21,-1,23,25,27,29,31,33,35,37,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.289896E-1,6.238141E-1,9.534845E-1,1.8003769E0,2.343181E0,0E0,1.3479986E0,2.3644028E0,3.2157278E0,2.2487E0,2.2944958E0,1.338177E0,0E0,2.8067045E0,1.8463632E0,1.04208946E-1,2.3730755E0,2.6609507E0,8.756829E-1,3.197019E0,2.9498234E0,5.194684E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,6,6,7,7,8,8,9,9,10,10,11,11,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21],"right_children":[2,4,6,8,10,-1,12,14,16,18,20,22,-1,24,26,28,30,32,34,36,38,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5996723E1,2.1730204E0,7.43043E1,1.6036962E0,2.8713701E1,7.146742E-2,2.5208554E0,1.1015733E-1,-1.7973603E-1,9.659258E-1,-7.1767694E-1,7.9444496E1,6.250083E-2,-2.5881904E-1,1.2395207E-1,5E-1,6.2840515E1,2.7965948E-1,5.141653E-1,1.5896049E-1,-5.380052E-1,2.9701063E-1,3.9206717E-2,1.3599194E-2,-1.1910039E-1,3.9761152E-2,-9.3962776E-4,1.0160041E-1,2.673915E-2,-4.543466E-3,3.3244964E-2,-4.3577836E-3,-9.447798E-2,-2.5966225E-2,6.1881788E-2,1.5300566E-1,1.02580255E-2,-6.945663E-2,-1.9872728E-4,-8.954077E-2,-7.894441E-3],"split_indices":[0,4,2,4,0,0,4,5,3,9,7,2,0,9,5,9,2,6,3,6,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.409956E2,9.3363196E2,7.3635964E0,8.3342535E2,1.00206604E2,1.8888295E0,5.4747667E0,7.594887E2,7.3936646E1,1.5906123E1,8.430048E1,4.0964465E0,1.3783203E0,5.1435866E0,7.5434515E2,4.3132715E0,6.9623375E1,1.2931396E1,2.9747272E0,7.3112364E0,7.698925E1,2.8629591E0,1.2334875E0,2.5123558E0,2.6312306E0,1.0315155E1,7.4402997E2,3.1686902E0,1.1445812E0,4.4176205E1,2.5447174E1,5.5408416E0,7.390554E0,1.175003E0,1.7997241E0,1.1892587E0,6.1219773E0,5.7312226E0,7.1258026E1,1.3922057E0,1.4707533E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"41","size_leaf_vector":"1"}},{"base_weights":[-2.9237723E-4,-5.061079E-2,7.9522503E-4,5.122918E-1,-1.3792941E-3,-1.2534595E-2,8.345189E-2,-6.7547284E-2,8.082173E-4,6.2090937E-2,-9.15767E-3,1.7957069E-3,6.2490173E-2,-1.7653963E-2,1.0376521E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":133,"left_children":[1,-1,3,5,7,-1,-1,-1,9,11,13,-1,-1,-1,-1],"loss_changes":[5.1820886E-1,0E0,1.0464852E0,9.229568E-1,1.3825977E0,0E0,0E0,0E0,5.7173777E-1,3.2412333E0,2.634807E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,2,2,3,3,4,4,8,8,9,9,10,10],"right_children":[2,-1,4,6,8,-1,-1,-1,10,12,14,-1,-1,-1,-1],"split_conditions":[-9.383774E-1,-5.061079E-2,-8.977434E-1,6.4343154E-2,-7.4410397E-1,-1.2534595E-2,8.345189E-2,-6.7547284E-2,-4.0857756E-1,-4.22495E-1,-2.7695382E-1,1.7957069E-3,6.2490173E-2,-1.7653963E-2,1.0376521E-3],"split_indices":[8,0,8,3,8,0,0,0,3,3,3,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.402504E2,1.021099E0,9.392294E2,2.9829495E0,9.362464E2,1.206491E0,1.7764586E0,2.0328298E0,9.3421356E2,1.2994138E2,8.042722E2,1.2144958E2,8.491792E0,8.3212715E1,7.210595E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"15","size_leaf_vector":"1"}},{"base_weights":[-2.774207E-4,-2.5400355E-2,2.1429462E-2,-3.1419368E-3,-2.6442134E-1,5.460391E-2,-5.502158E-2,-4.7591832E-1,4.1606026E-3,-1.3301584E-1,-9.2606735E-1,1.12221405E-1,-4.903285E-2,1.781704E-1,-1.0552115E-1,-7.598454E-1,9.985856E-3,1.0264646E-1,-4.232602E-2,-2.834802E-1,6.499763E-1,-1.1039811E-1,-1.7962275E-2,8.9571387E-1,8.793311E-2,-2.4532415E-1,1.1517033E-1,-2.8343424E-2,1.1092335E0,-2.6324904E-1,4.0388297E-2,-8.693244E-2,-2.0686703E-2,8.226414E-4,4.1118972E-2,1.5763777E-3,-2.7172524E-2,1.4955868E-3,-6.758973E-2,-6.6812434E-3,9.428719E-2,2.7203484E-2,2.1211639E-1,1.985587E-2,-2.8729846E-3,-3.7923243E-2,6.042809E-2,-2.8246561E-2,3.4136605E-2,-7.47876E-2,2.0418456E-2,5.003396E-3,1.4585738E-1,1.8379452E-2,-4.0536407E-2,7.142157E-2,-3.844734E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":134,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,33,35,37,39,-1,-1,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.1374084E-1,2.3223152E0,1.2847952E0,1.3846089E0,3.1100295E0,2.1131024E0,1.825707E0,1.0731537E0,1.8144807E0,3.97702E0,5.9772825E-1,4.24375E0,4.115546E0,5.354706E0,2.9277272E0,7.454038E-2,0E0,3.6985707E0,3.592947E0,3.2541325E0,1.2162061E0,0E0,0E0,4.5597014E0,2.8633904E0,6.8369493E0,6.368118E0,4.1070237E0,1.7959495E0,3.9526505E0,3.571221E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,18,18,19,19,20,20,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,34,36,38,40,-1,-1,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.416278E-1,4.6735922E-1,-2.5881904E-1,-7.790238E-1,1.4590712E0,9.674856E-1,1.715837E-1,9.922222E-1,-8.22366E-1,-1.8369701E-16,3.287209E1,-6.680639E-1,2.463387E-1,1.5600148E-1,3.354209E-1,9.8594815E-1,9.985856E-3,3.253421E-1,5.663742E-1,3.1640187E-1,-9.355376E-2,-1.1039811E-1,-1.7962275E-2,3.0473907E1,8.60961E-1,7.0558363E-1,8.5207754E-1,4.8880367E1,-4.6364957E-1,4.8940856E-2,4.54233E1,-8.693244E-2,-2.0686703E-2,8.226414E-4,4.1118972E-2,1.5763777E-3,-2.7172524E-2,1.4955868E-3,-6.758973E-2,-6.6812434E-3,9.428719E-2,2.7203484E-2,2.1211639E-1,1.985587E-2,-2.8729846E-3,-3.7923243E-2,6.042809E-2,-2.8246561E-2,3.4136605E-2,-7.47876E-2,2.0418456E-2,5.003396E-3,1.4585738E-1,1.8379452E-2,-4.0536407E-2,7.142157E-2,-3.844734E-3],"split_indices":[8,8,10,3,4,4,6,7,4,10,0,7,3,6,6,7,0,8,5,6,3,0,0,0,8,7,8,2,4,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.4005676E2,4.3566278E2,5.0439395E2,3.9947546E2,3.6187325E1,3.5195547E2,1.5243849E2,5.100348E0,3.9437512E2,3.1193258E1,4.9940653E0,2.261456E2,1.2580988E2,2.6685349E1,1.25753136E2,3.2017927E0,1.8985552E0,1.2607224E2,2.6830286E2,2.6700321E1,4.492937E0,3.64605E0,1.3480153E0,5.720942E0,2.2042465E2,5.7080658E1,6.8729225E1,2.263448E1,4.0508676E0,6.0042786E1,6.571035E1,2.1951237E0,1.006669E0,9.731782E1,2.8754427E1,2.1483292E2,5.3469948E1,1.5712635E1,1.0987686E1,1.5272542E0,2.9656827E0,4.6012E0,1.1197417E0,1.1277953E2,1.0764513E2,4.9787212E1,7.2934446E0,2.4830395E1,4.389883E1,4.98687E0,1.764761E1,1.2882174E0,2.7626503E0,1.4412592E1,4.563019E1,6.0384755E0,5.9671875E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-3.3464188E-5,1.0732373E-2,-5.2837107E-2,4.685901E-3,3.4204304E-1,9.929864E-2,-1.4417937E-1,-1.3372809E-1,1.743923E-2,-5.424764E-1,5.517384E-1,5.0772494E-1,-1.257347E-1,-1.9731572E-1,4.6551025E-1,-5.2775003E-2,-6.9887155E-1,3.632068E-1,-5.285025E-4,-1.602904E-2,-6.465002E-2,1.0942445E0,-8.9785516E-2,1.782351E-1,1.1088301E0,-7.0981765E-1,9.060293E-2,-1.2769862E-1,-7.0272505E-1,-5.1421203E-2,8.889913E-2,-1.4045194E-2,6.251582E-2,2.2965928E-3,-8.484567E-2,4.4015694E-2,-7.5291745E-2,-3.439825E-2,1.3235806E-3,1.3074109E-1,1.663093E-2,-6.770655E-2,8.994021E-2,9.007476E-2,-1.6188322E-2,-2.7204792E-3,1.2992541E-1,8.019896E-3,-8.7966114E-2,4.6711598E-2,-4.7690537E-2,-1.5377268E-2,7.169702E-2,-8.825738E-2,2.1201708E-4,-4.3337654E-2,3.7135344E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":135,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,-1,-1,39,41,43,45,47,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.348964E-1,1.5641099E0,2.2287362E0,1.3590732E0,2.8949907E0,5.6127796E0,3.3308015E0,2.9349418E0,4.3778176E0,2.3041427E-2,4.207906E0,4.0895367E0,5.084296E0,3.1707022E0,1.8654181E0,3.5293596E0,8.8947535E-1,3.3209739E0,3.1757982E0,0E0,0E0,1.0631008E0,4.288902E0,3.8745441E0,1.6518698E0,1.5265064E0,6.6067305E0,1.930939E0,1.3958721E0,9.1805214E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,-1,-1,40,42,44,46,48,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3194726E-1,4.2515442E-1,-2.5881904E-1,2.4857971E1,2.673852E1,-1.06382236E-1,8.12179E1,3.8015953E-1,2.5414034E1,2.5881904E-1,4.744379E-1,-2.3714872E-1,2.746799E1,7.651066E1,-2.7195817E-1,9.9325687E-1,-2.4940574E0,9.068134E-1,2.5858292E1,-1.602904E-2,-6.465002E-2,3.0917042E1,2.1730204E0,5.253826E1,4.387322E-1,4.3106876E1,7.131634E1,7.5680565E1,9.741005E-1,2.2909174E0,8.889913E-2,-1.4045194E-2,6.251582E-2,2.2965928E-3,-8.484567E-2,4.4015694E-2,-7.5291745E-2,-3.439825E-2,1.3235806E-3,1.3074109E-1,1.663093E-2,-6.770655E-2,8.994021E-2,9.007476E-2,-1.6188322E-2,-2.7204792E-3,1.2992541E-1,8.019896E-3,-8.7966114E-2,4.6711598E-2,-4.7690537E-2,-1.5377268E-2,7.169702E-2,-8.825738E-2,2.1201708E-4,-4.3337654E-2,3.7135344E-2],"split_indices":[6,6,9,1,0,3,2,6,1,9,4,3,1,2,7,7,4,4,1,0,0,0,4,2,6,2,2,2,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.389339E2,7.8058215E2,1.5835175E2,7.675877E2,1.2994452E1,5.9373947E1,9.89778E1,6.3957764E1,7.0362994E2,2.1861296E0,1.0808323E1,2.0646029E1,3.8727917E1,9.166525E1,7.3125453E0,5.690052E1,7.057242E0,3.380864E1,6.698213E2,1.0113403E0,1.1747892E0,5.473744E0,5.334579E0,1.4173485E1,6.4725437E0,9.850854E0,2.8877064E1,8.166856E1,9.996693E0,3.6885774E0,3.623968E0,5.108636E1,5.8141627E0,1.3567215E0,5.7005205E0,3.219465E1,1.6139916E0,2.488509E1,6.449362E2,4.118655E0,1.3550888E0,3.5452816E0,1.7892973E0,4.008949E0,1.0164536E1,1.0522358E0,5.420308E0,1.8364637E0,8.01439E0,1.7466095E1,1.141097E1,8.001648E1,1.6520783E0,7.76358E0,2.2331123E0,1.9246643E0,1.763913E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[8.83374E-5,1.949782E-3,-3.0085406E-1,-2.7305123E-3,3.34264E-1,-4.983315E-1,2.7529055E-2,-7.13967E-4,-5.361355E-1,8.412575E-2,1.21292725E-1,5.113861E-3,-6.6401355E-2,-5.53975E-2,6.3154404E-4,-1.1546469E-2,-6.700227E-2,5.387201E-1,-1.2464481E-1,5.145503E-2,-1.1315912E-4,-1.6715715E-2,8.562614E-2,-6.8409674E-2,3.6314234E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":136,"left_children":[1,3,5,7,9,11,-1,13,15,-1,17,-1,-1,-1,19,-1,-1,21,23,-1,-1,-1,-1,-1,-1],"loss_changes":[5.2656686E-1,1.4538343E0,7.9462856E-1,9.915416E-1,1.2996937E0,4.5812213E-1,0E0,6.8499464E-1,1.1817825E-1,0E0,1.1256139E0,0E0,0E0,0E0,8.328166E-1,0E0,0E0,1.0420333E0,2.2405276E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,7,7,8,8,10,10,14,14,17,17,18,18],"right_children":[2,4,6,8,10,12,-1,14,16,-1,18,-1,-1,-1,20,-1,-1,22,24,-1,-1,-1,-1,-1,-1],"split_conditions":[9.817894E-1,8.176704E-1,3.455521E1,9.025015E1,-3.9359027E-1,2.7885567E1,2.7529055E-2,-9.259248E-1,3.0473907E1,8.412575E-2,2.816631E1,5.113861E-3,-6.6401355E-2,-5.53975E-2,-8.977434E-1,-1.1546469E-2,-6.700227E-2,2.7457502E1,3.0246916E1,5.145503E-2,-1.1315912E-4,-1.6715715E-2,8.562614E-2,-6.8409674E-2,3.6314234E-2],"split_indices":[3,3,0,2,7,1,0,8,0,0,1,0,0,0,8,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.3793585E2,9.331575E2,4.778417E0,9.211755E2,1.1981998E1,3.6592445E0,1.1191725E0,9.187036E2,2.471834E0,2.6717074E0,9.310291E0,1.007918E0,2.6513267E0,1.2323989E0,9.174712E2,1.0464166E0,1.4254173E0,3.0103605E0,6.2999306E0,2.1424813E0,9.1532874E2,1.0809829E0,1.9293777E0,2.7469523E0,3.5529783E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"25","size_leaf_vector":"1"}},{"base_weights":[7.6021905E-5,-1.5435798E-1,3.4661023E-3,1.2088769E-1,-4.3488875E-1,2.2143461E-1,-1.0263469E-3,-2.0100677E-1,7.722724E-1,-8.037526E-1,1.6638899E-1,4.6710137E-1,2.9377053E-2,-2.9351023E-1,1.0242905E-3,-3.9132378E-1,5.3589102E-2,1.4591957E-2,1.01832904E-1,-9.814011E-2,-7.527684E-3,5.9112128E-2,-1.9558519E-1,1.2709197E-1,1.00946546E-1,4.62148E-1,-2.4187057E-1,-7.157696E-1,3.4546384E-1,2.9661915E-1,-1.9038629E-3,-5.1208814E-3,-7.614629E-2,3.2499067E-2,-5.6539286E-2,6.272181E-2,-1.409542E-2,9.35456E-2,-1.1554964E-2,-8.9947574E-2,5.008085E-3,-9.937593E-2,-1.6628392E-2,-4.0311784E-2,9.219509E-2,8.967115E-2,-4.2917944E-2,-4.5312496E-4,2.9752105E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":137,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,-1,-1,-1,-1,-1,-1,33,35,-1,37,39,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.9193534E-1,1.6110233E0,9.0053564E-1,2.4554114E0,2.3989158E0,8.625309E-1,5.4121035E-1,1.3506513E0,4.4240117E-1,7.674961E-1,8.400035E-1,1.3620008E0,1.4605956E0,1.9423499E0,7.7658546E-1,8.4771466E-1,0E0,0E0,0E0,0E0,0E0,0E0,8.181119E-1,9.0768886E-1,0E0,1.412502E0,1.5271343E0,4.6228862E-1,1.7414792E0,4.217929E0,7.0054483E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,22,22,23,23,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,-1,-1,-1,-1,-1,-1,34,36,-1,38,40,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0737512E-1,3.198137E-1,1.1521257E-1,-2.095681E-1,8.60961E-1,-1.06382236E-1,1.1690347E-1,-1.8369701E-16,7.6941484E-1,3.207702E1,9.5237756E-1,1.1371429E-1,-7.0710677E-1,3.5479784E-1,1.20018564E-1,1.04200356E-1,5.3589102E-2,1.4591957E-2,1.01832904E-1,-9.814011E-2,-7.527684E-3,5.9112128E-2,1.2766433E-1,-5.0506437E-1,1.00946546E-1,5.8486794E1,2.6673935E1,6.2430664E1,9.242907E-1,6.1070385E1,3.5996723E1,-5.1208814E-3,-7.614629E-2,3.2499067E-2,-5.6539286E-2,6.272181E-2,-1.409542E-2,9.35456E-2,-1.1554964E-2,-8.9947574E-2,5.008085E-3,-9.937593E-2,-1.6628392E-2,-4.0311784E-2,9.219509E-2,8.967115E-2,-4.2917944E-2,-4.5312496E-4,2.9752105E-2],"split_indices":[6,4,6,4,8,3,6,10,7,0,8,6,10,4,6,6,0,0,0,0,0,0,3,3,0,2,1,2,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.376042E2,1.9183294E1,9.184209E2,9.970101E0,9.213193E0,1.7571701E1,9.0084924E2,7.1354136E0,2.8346875E0,5.501478E0,3.7117145E0,7.0814753E0,1.0490226E1,5.2824216E0,8.955668E2,6.043524E0,1.0918901E0,1.2488054E0,1.5858822E0,4.143768E0,1.3577106E0,1.4165357E0,2.2951787E0,5.111434E0,1.9700414E0,3.7705657E0,6.71966E0,3.1082087E0,2.1742132E0,7.800625E0,8.877662E2,3.7427347E0,2.300789E0,1.0036031E0,1.2915756E0,1.3160176E0,3.795416E0,1.7321397E0,2.0384262E0,1.4262341E0,5.2934256E0,1.5271056E0,1.5811031E0,1.0767555E0,1.0974576E0,4.1411924E0,3.6594324E0,8.8102026E2,6.7458887E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[2.460561E-4,-2.4309285E-2,2.1462796E-2,-6.4246873E-3,-2.6826668E-1,1.443836E-2,3.879337E-1,-4.7000057E-1,6.6530466E-4,-1.3209799E-1,-9.744704E-1,-7.87956E-2,4.1942965E-2,5.478495E-1,-2.5050877E-2,-7.424258E-1,7.946845E-3,1.108843E-1,-4.033561E-2,-2.8224167E-1,9.599701E-2,-2.028913E-2,-1.141868E-1,-7.514206E-1,-2.4551712E-4,2.7466136E-1,-3.6868516E-3,1.0542394E-1,1.14855945E-1,-8.5104935E-2,-1.9879185E-2,-1.5367663E-2,3.0970966E-2,9.566568E-3,-9.502902E-3,-4.828981E-2,1.4005658E-2,-9.902332E-2,2.062348E-2,1.004984E-2,-4.319439E-2,2.7970176E-3,5.4849323E-2,2.4650939E-2,-5.782974E-3,-5.365261E-2,6.521876E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":138,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,-1,29,-1,31,33,35,-1,-1,-1,37,39,41,43,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.892364E-1,1.8974733E0,1.2912351E0,1.336643E0,2.7279792E0,1.2735267E0,1.1006216E0,9.760033E-1,1.8186803E0,4.544201E0,3.6831236E-1,5.9799924E0,4.06964E0,1.6022472E0,0E0,7.837367E-2,0E0,5.7872E0,2.1910644E0,2.0745773E0,0E0,0E0,0E0,2.9110084E0,4.4947515E0,4.228489E0,4.3670554E0,0E0,2.2256567E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,15,15,17,17,18,18,19,19,23,23,24,24,25,25,26,26,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,-1,30,-1,32,34,36,-1,-1,-1,38,40,42,44,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[5.416278E-1,4.8250774E-1,4.9060223E-1,-7.790238E-1,7.440999E1,-8.22366E-1,2.039778E0,9.922222E-1,-2.0782702E-1,1E0,-3.0236432E-1,6.118864E-1,-2.095681E-1,4.9385712E-1,-2.5050877E-2,9.8594815E-1,7.946845E-3,7.309513E-2,2.0334706E-1,7.0710677E-1,9.599701E-2,-2.028913E-2,-1.141868E-1,7.2157684E1,-1.0491903E0,5.380052E-1,7.0252746E-1,1.0542394E-1,4.4822934E-1,-8.5104935E-2,-1.9879185E-2,-1.5367663E-2,3.0970966E-2,9.566568E-3,-9.502902E-3,-4.828981E-2,1.4005658E-2,-9.902332E-2,2.062348E-2,1.004984E-2,-4.319439E-2,2.7970176E-3,5.4849323E-2,2.4650939E-2,-5.782974E-3,-5.365261E-2,6.521876E-2],"split_indices":[8,8,6,3,2,4,4,7,3,11,3,8,4,6,0,7,0,8,6,9,0,0,0,2,4,7,8,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.3706024E2,4.3428812E2,5.027721E2,4.0558115E2,2.8706955E1,4.9433618E2,8.435932E0,5.12605E0,4.004551E2,2.506167E1,3.6452842E0,1.1218644E2,3.8214975E2,6.8596406E0,1.576292E0,3.1921973E0,1.9338524E0,1.0811501E2,2.923401E2,2.2684439E1,2.3772316E0,1.0442227E0,2.6010613E0,1.0835534E1,1.0135091E2,6.1823246E1,3.2032648E2,2.5005062E0,4.3591347E0,2.1892757E0,1.0029216E0,4.648639E1,6.1628624E1,8.363161E1,2.087085E2,1.5280405E1,7.404034E0,8.6455555E0,2.1899786E0,8.279624E1,1.8554663E1,3.3103195E1,2.872005E1,5.635501E1,2.6397147E2,1.9711279E0,2.3880067E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[1.05956984E-4,-1.7465523E-2,3.1944215E-2,-1.2397041E-1,1.8591523E-2,1.0571349E-1,-4.493287E-2,-3.1975347E-1,8.535269E-2,1.505649E-1,-2.6682585E-2,4.2500976E-1,3.144999E-2,-2.8955078E-1,9.7633585E-2,4.4058675E-1,-3.812083E-1,-2.990499E-1,2.1720664E-1,9.11023E-1,1.0284367E-1,-2.912251E-1,1.4491409E-2,7.6774055E-1,-3.7736315E-1,-6.0860664E-1,7.9199195E-2,-7.6481506E-2,-7.6541793E-1,1.6054045E-1,-6.0275304E-1,1.0755952E-1,-5.4958798E-2,-6.8945125E-2,-1.2925661E-2,5.7443526E-2,-4.9391914E-2,2.9283002E-2,-7.702111E-2,1.261968E-1,-2.6678024E-2,-9.566179E-2,1.6234415E-2,9.265603E-3,-5.247732E-2,3.6723881E-3,-4.448088E-2,1.6786893E-4,1.0449835E-1,-9.134435E-2,1.03537135E-1,3.9551802E-2,-7.835228E-2,-1.0081681E-2,1.9126408E-2,-6.407662E-2,6.8623596E-3,-8.7824136E-2,4.6421554E-2,-8.033506E-2,1.9680278E-2,-1.0070231E-1,2.4999447E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":139,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.244237E-1,2.3219628E0,1.8953141E0,6.293627E0,2.7055023E0,4.0276184E0,5.7457447E0,3.8695621E0,3.8504386E0,4.1028214E0,3.680305E0,9.110994E0,4.3067794E0,6.08778E0,4.693288E0,4.6076655E0,5.6447363E0,3.6022344E0,4.4213896E0,3.106462E0,7.0855865E0,4.128029E0,3.0082026E0,4.8419657E0,8.724627E0,2.0291395E0,2.652986E0,3.5633788E0,2.9932022E0,3.5316844E0,3.2883513E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.935716E-1,2.750313E1,3.6367636E-2,9.209713E-1,2.913117E1,8.5207754E-1,2.1854691E-1,-6.469824E-1,-6.450845E-2,-2.0435398E0,3.0278439E1,4.5655265E-1,-4.0148798E-1,1.530649E0,8.008825E1,7.41222E-1,-1.6038944E-1,9.3985605E-1,9.997685E-1,4.052559E-1,-3.5950303E-1,-7.0710677E-1,7.611043E-1,5E-1,1.6285462E0,2.4822248E1,5.8281124E1,2.673852E1,3.1581316E0,4.3936573E1,4.0344193E1,1.0755952E-1,-5.4958798E-2,-6.8945125E-2,-1.2925661E-2,5.7443526E-2,-4.9391914E-2,2.9283002E-2,-7.702111E-2,1.261968E-1,-2.6678024E-2,-9.566179E-2,1.6234415E-2,9.265603E-3,-5.247732E-2,3.6723881E-3,-4.448088E-2,1.6786893E-4,1.0449835E-1,-9.134435E-2,1.03537135E-1,3.9551802E-2,-7.835228E-2,-1.0081681E-2,1.9126408E-2,-6.407662E-2,6.8623596E-3,-8.7824136E-2,4.6421554E-2,-8.033506E-2,1.9680278E-2,-1.0070231E-1,2.4999447E-2],"split_indices":[8,0,3,7,1,8,3,3,8,4,1,4,7,4,2,7,3,7,7,6,3,10,8,11,4,0,2,0,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.354022E2,6.03038E2,3.323642E2,1.5190489E2,4.5113312E2,1.6941899E2,1.629452E2,7.8218445E1,7.3686455E1,1.1463835E2,3.3649478E2,3.107762E1,1.3834137E2,5.961898E1,1.03326225E2,5.387925E0,7.283052E1,1.8495947E1,5.5190506E1,5.7009373E0,1.08937416E2,4.45013E1,2.9199347E2,2.1806297E1,9.271321E0,8.788576E0,1.295528E2,4.1982193E1,1.7636786E1,9.551785E1,7.808375E0,3.2301383E0,2.1577866E0,3.1975092E1,4.0855427E1,3.018404E0,1.5477543E1,5.191772E1,3.2727847E0,4.3371544E0,1.3637826E0,4.990974E0,1.0394644E2,1.7061201E1,2.7440098E1,2.7938962E2,1.2603841E1,6.062049E0,1.5744249E1,6.9771667E0,2.2941544E0,1.1167232E0,7.6718526E0,4.974501E1,7.9807785E1,7.888709E0,3.4093487E1,1.6416298E1,1.2204866E0,2.6961987E0,9.2821655E1,5.1743884E0,2.6339865E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"63","size_leaf_vector":"1"}},{"base_weights":[-3.3139437E-4,2.2391034E-2,-2.3295876E-2,2.1403839E-1,4.688256E-3,-3.694729E-1,-1.1986338E-2,-8.3094734E-1,3.658204E-1,-7.8078456E-2,6.802194E-2,-5.4522425E-1,3.783533E-1,9.8387055E-2,-1.6491735E-2,-1.2371371E-1,1.9939663E-2,7.937831E-1,8.6329125E-2,-1.19458586E-1,5.1446724E-1,1.1643565E-1,-2.3889546E-1,-7.458755E-1,-1.0984433E-1,-3.1681832E-2,9.797363E-2,1.52798435E-2,-1.4368106E-1,1.0418331E-2,1.3688838E-1,-3.3261828E-2,5.7894178E-2,-2.8695017E-2,2.7921954E-3,7.99377E-2,-1.9740492E-2,4.6776193E-3,4.3323915E-2,-3.6422506E-2,3.744018E-2,9.887128E-3,-9.1128476E-2,-7.346752E-2,4.7995012E-2,7.029184E-3,-1.9389262E-2,-3.918964E-2,4.1596932E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":140,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,-1,27,-1,-1,29,31,33,35,37,39,41,43,-1,-1,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.8767662E-1,1.5928065E0,1.8153559E0,6.6011586E0,2.2649734E0,2.1345668E0,2.0403705E0,2.481963E0,4.1611056E0,4.654822E0,3.664425E0,9.916444E-1,1.7243817E0,0E0,1.821019E0,0E0,0E0,5.349367E0,4.838828E0,4.350532E0,2.6761818E0,4.6597166E0,2.7246594E0,1.2414031E0,2.213499E0,0E0,0E0,4.1680646E0,3.3063614E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,14,14,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,-1,28,-1,-1,30,32,34,36,38,40,42,44,-1,-1,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.638886E-1,4.5971794E1,2.4961687E1,1.5487912E-1,2.9731563E-1,-2.6740888E-2,2.5011194E1,4.3106876E1,5E-1,4.7262296E-1,9.659258E-1,3.4157076E-1,9.634706E-1,9.8387055E-2,3.1077805E-1,-1.2371371E-1,1.9939663E-2,-7.008488E-2,5.947267E-1,2.4172243E-1,3.187675E1,3.9157242E-1,3.249436E1,1.5600148E-1,9.1060466E-1,-3.1681832E-2,9.797363E-2,1E0,9.455964E-1,1.0418331E-2,1.3688838E-1,-3.3261828E-2,5.7894178E-2,-2.8695017E-2,2.7921954E-3,7.99377E-2,-1.9740492E-2,4.6776193E-3,4.3323915E-2,-3.6422506E-2,3.744018E-2,9.887128E-3,-9.1128476E-2,-7.346752E-2,4.7995012E-2,7.029184E-3,-1.9389262E-2,-3.918964E-2,4.1596932E-4],"split_indices":[7,2,0,6,5,3,0,2,11,6,9,8,7,0,3,0,0,3,7,3,0,4,0,6,7,0,0,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.3258905E2,4.6877756E2,4.638115E2,3.870229E1,4.3007526E2,1.367137E1,4.5014014E2,4.3409815E0,3.436131E1,1.8633424E2,2.4374101E2,1.1289156E1,2.382214E0,1.0483156E0,4.4909183E2,2.9695861E0,1.3713951E0,1.2848036E1,2.1513271E1,1.7491737E2,1.141687E1,2.1106749E2,3.2673534E1,7.239545E0,4.049611E0,1.3244237E0,1.0577904E0,3.6003568E2,8.905615E1,6.379533E0,6.4685035E0,1.1801422E1,9.71185E0,8.14294E1,9.348797E1,8.065804E0,3.3510664E0,1.7396362E2,3.7103855E1,2.7466728E1,5.2068086E0,1.2513175E0,5.9882274E0,1.8471187E0,2.2024925E0,2.8558997E2,7.444571E1,3.2626877E1,5.642928E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-1.5101148E-4,-6.2505463E-3,9.192919E-2,-5.8300426E-4,-5.7822907E-1,-2.6213363E-1,1.9706006E-1,6.838975E-3,-1.9333129E-1,-1.1233053E-1,1.685798E-1,1.972867E-1,-5.721307E-1,2.3674205E-2,4.5701024E-1,9.323608E-2,-1.0556531E-2,4.2580795E-1,-3.1260273E-1,-4.2271893E-2,6.386824E-2,-4.9070206E-1,8.221467E-2,-7.7288324E-1,1.7005138E-2,2.816709E-1,-5.732431E-1,5.5965567E-1,-2.0321554E-1,-1.5591482E-2,1.8372966E-2,-1.0478652E-2,1.6474323E-3,1.7113297E-3,9.214204E-2,-3.8842622E-2,8.393109E-2,7.128119E-3,-9.647699E-2,-9.415046E-2,9.279117E-3,3.726686E-3,6.6349395E-2,-7.678367E-2,1.7215231E-2,2.7065817E-2,8.927842E-2,3.1990413E-2,-6.0501326E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":141,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,29,31,33,35,-1,-1,37,-1,39,-1,41,43,45,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.2462506E-1,2.8395002E0,2.2117484E0,1.2436838E0,3.687752E0,2.066178E0,2.0316496E0,1.2592324E0,2.513473E0,0E0,1.5196193E0,3.0986326E0,1.3898077E0,4.510327E0,1.3388047E0,3.1945338E0,1.7790686E0,1.1246072E0,2.7370305E0,0E0,0E0,1.030595E0,0E0,1.084055E0,0E0,1.8778114E0,1.4160764E0,1.2901878E0,8.589866E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,23,23,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,30,32,34,36,-1,-1,38,-1,40,-1,42,44,46,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0072838E1,3.981565E1,-7.0710677E-1,2.9224489E0,1.3492717E-1,1.1140981E0,3.4280792E-1,1.2395207E-1,1.50459E-1,-1.1233053E-1,3.8963044E-1,4.4166693E-1,-8.660254E-1,2.892339E-1,9.821256E-1,2.820763E1,3.525261E-1,3.267856E1,9.966589E-1,-4.2271893E-2,6.386824E-2,-7.3377113E-3,8.221467E-2,2.9224489E0,1.7005138E-2,3.223534E-1,9.721182E-1,7.0710677E-1,4.3194726E-1,-1.5591482E-2,1.8372966E-2,-1.0478652E-2,1.6474323E-3,1.7113297E-3,9.214204E-2,-3.8842622E-2,8.393109E-2,7.128119E-3,-9.647699E-2,-9.415046E-2,9.279117E-3,3.726686E-3,6.6349395E-2,-7.678367E-2,1.7215231E-2,2.7065817E-2,8.927842E-2,3.1990413E-2,-6.0501326E-2],"split_indices":[1,1,9,4,3,4,6,5,6,0,8,4,9,6,8,1,5,1,7,0,0,4,0,4,0,3,7,9,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.320612E2,8.7502997E2,5.703122E1,8.6743585E2,7.5941095E0,1.2715199E1,4.431602E1,8.3620154E2,3.123432E1,4.098547E0,3.4955628E0,5.269422E0,7.445778E0,2.7238867E1,1.7077156E1,1.3941559E2,6.9678595E2,4.6299796E0,2.660434E1,1.5928534E0,1.9027094E0,2.6102083E0,2.6592135E0,5.8279986E0,1.6177793E0,1.9387444E1,7.8514233E0,1.491123E1,2.1659255E0,3.695274E1,1.0246285E2,1.5468279E2,5.421032E2,3.1044774E0,1.525502E0,2.5583157E1,1.0211842E0,1.5831288E0,1.0270796E0,4.804543E0,1.0234554E0,1.2490137E1,6.897306E0,6.202172E0,1.6492512E0,8.955007E0,5.956223E0,1.0294514E0,1.1364741E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"49","size_leaf_vector":"1"}},{"base_weights":[-2.1485104E-5,-1.6732406E-2,3.0297559E-2,-1.1690617E-1,1.6861184E-2,8.128249E-2,-7.243785E-2,-2.9721045E-1,7.3056616E-2,1.3375491E-1,-2.3136754E-2,5.386895E-2,9.030349E-1,-2.1836147E-1,1.1845659E-1,-1.3066335E-1,-5.878451E-1,-7.750099E-2,3.5379273E-1,7.969701E-1,8.7399036E-2,-2.6955578E-1,1.4907655E-2,6.56215E-2,-1.0942401E-1,1.0292413E-1,1.9196197E-2,-1.0994629E0,-1.6223316E-1,2.168118E-1,-7.314703E-1,-4.2655006E-2,2.7380629E-2,-7.859682E-2,9.985235E-3,3.5943937E-2,-2.4307152E-2,7.426527E-2,-1.4984804E-2,1.0819137E-1,-4.6673995E-2,-8.9925416E-2,1.4242875E-2,7.604359E-3,-4.8239257E-2,1.0305147E-2,-8.6406E-3,1.1795664E-3,2.699081E-2,-2.71277E-3,-1.5246758E-1,-5.4427637E-3,-5.2921582E-2,-1.3112319E-2,4.5845844E-2,-6.311282E-3,-1.2425249E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":142,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,-1,-1,-1,49,51,53,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.7295815E-1,2.0271225E0,1.7432684E0,5.2024326E0,2.114255E0,4.9557314E0,3.1051145E0,3.688981E0,3.1745496E0,3.4739513E0,3.1659172E0,2.9868882E0,4.403267E-1,2.9373813E0,4.216242E0,6.189581E0,3.9010096E0,3.652973E0,5.236941E0,3.1720672E0,6.0383983E0,3.3584652E0,2.6264644E0,2.3586793E0,0E0,0E0,0E0,1.6001043E0,2.3608708E0,3.7827563E0,1.7192917E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,-1,-1,-1,50,52,54,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.935716E-1,2.750313E1,6.705331E1,9.209713E-1,2.913117E1,3.409344E1,3.354209E-1,5.421243E1,2.0931464E-1,-1.8785317E0,3.0278439E1,3.249436E1,5.141653E-1,6.7597305E1,9.962982E-1,-7.008488E-2,7.093096E1,-8.660254E-1,-7.901357E-1,-8.230647E-2,-3.5950303E-1,-7.0710677E-1,7.62446E-2,6.183276E1,-1.0942401E-1,1.0292413E-1,1.9196197E-2,-2.4702218E-1,2.892339E-1,1E0,2.5818441E-2,-4.2655006E-2,2.7380629E-2,-7.859682E-2,9.985235E-3,3.5943937E-2,-2.4307152E-2,7.426527E-2,-1.4984804E-2,1.0819137E-1,-4.6673995E-2,-8.9925416E-2,1.4242875E-2,7.604359E-3,-4.8239257E-2,1.0305147E-2,-8.6406E-3,1.1795664E-3,2.699081E-2,-2.71277E-3,-1.5246758E-1,-5.4427637E-3,-5.2921582E-2,-1.3112319E-2,4.5845844E-2,-6.311282E-3,-1.2425249E-1],"split_indices":[8,0,2,7,1,1,6,2,8,4,1,0,3,2,8,3,2,10,4,3,3,10,3,2,0,0,0,7,6,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.314834E2,6.0079297E2,3.306904E2,1.5025699E2,4.5053598E2,2.2114879E2,1.0954161E2,7.6798584E1,7.34584E1,1.14261986E2,3.3627402E2,2.1504062E2,6.1081696E0,6.200207E1,4.753954E1,4.9743076E1,2.7055508E1,4.828649E1,2.5171906E1,6.4068284E0,1.07855156E2,4.415975E1,2.9211426E2,2.1379497E2,1.2456563E0,4.807458E0,1.3007114E0,2.599936E0,5.9402138E1,4.3276413E1,4.2631264E0,2.8696083E1,2.1046995E1,2.089332E1,6.1621885E0,1.2947402E1,3.533909E1,1.393678E1,1.12351265E1,5.3453984E0,1.0614305E0,4.8872986E0,1.0296786E2,1.7075567E1,2.7084187E1,1.562009E2,1.3591336E2,1.700481E2,4.3746872E1,1.0402786E0,1.5596575E0,4.6801846E1,1.260029E1,1.7924784E1,2.5351631E1,2.334093E0,1.9290332E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"57","size_leaf_vector":"1"}},{"base_weights":[-4.466259E-4,1.0109038E-2,-5.2371543E-2,-3.3436548E-3,1.395863E-1,3.7313658E-1,-8.152179E-2,-1.004889E-1,2.3826199E-2,-2.2662973E-1,2.8116956E-1,6.391587E-1,-3.809646E-1,-8.2848793E-1,-4.0685248E-2,-5.0340857E-2,-6.516347E-1,2.4775697E-1,4.4782143E-3,2.9662428E-2,-9.0914637E-1,9.2460203E-1,5.5118002E-2,1.7772369E-1,1.0474133E0,1.5572736E-3,-6.0008824E-2,6.920016E-3,-9.756869E-2,1.5192471E-1,-1.4526169E-1,-3.1723434E-3,-1.18000306E-1,-1.7924568E-2,-1.21773735E-1,3.421257E-2,-1.0045481E-1,1.8974785E-3,-2.4830943E-2,-2.1677902E-2,1.3189587E-1,-1.02786295E-1,-2.1630434E-2,2.8282154E-2,1.1770932E-1,2.027945E-2,-8.698464E-2,6.500109E-2,-5.396521E-2,1.481469E-1,2.9302208E-2,5.380137E-2,-5.3732228E-3,-2.5470305E-2,2.8203085E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":143,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,-1,-1,-1,-1,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.10469E-1,1.3486888E0,1.9820368E0,1.8556795E0,3.8423424E0,2.303181E0,4.483094E0,4.2139726E0,2.3796744E0,3.6781104E0,7.65829E0,1.3139896E0,2.964303E-1,1.0749383E0,2.8712378E0,2.9473708E0,3.186234E0,5.5061464E0,1.8619803E0,5.4151263E0,2.4895573E-1,1.8897762E0,5.679369E0,2.025337E0,8.8247967E-1,0E0,0E0,0E0,0E0,4.0199413E0,4.382826E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,-1,-1,-1,-1,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.3194726E-1,3.989146E-1,2.4723673E1,-2.9139644E-1,2.7753115E1,4.8880367E1,2.5494375E1,-3.1343856E-1,-2.1149121E-1,2.7164625E1,-2.1662362E-1,-2.2683951E-1,2.3502872E1,4.118533E1,-1.06382236E-1,3.9628035E-1,2.8860441E1,3.935483E1,3.8326302E-1,2.650092E1,1.8455367E-1,1.9245158E-1,9.6684784E-1,1.2246469E-16,-7.0710677E-1,1.5572736E-3,-6.0008824E-2,6.920016E-3,-9.756869E-2,-2.5881904E-1,9.5237756E-1,-3.1723434E-3,-1.18000306E-1,-1.7924568E-2,-1.21773735E-1,3.421257E-2,-1.0045481E-1,1.8974785E-3,-2.4830943E-2,-2.1677902E-2,1.3189587E-1,-1.02786295E-1,-2.1630434E-2,2.8282154E-2,1.1770932E-1,2.027945E-2,-8.698464E-2,6.500109E-2,-5.396521E-2,1.481469E-1,2.9302208E-2,5.380137E-2,-5.3732228E-3,-2.5470305E-2,2.8203085E-2],"split_indices":[6,6,1,3,0,2,1,3,3,1,3,3,1,2,3,6,0,1,6,1,3,8,8,9,10,0,0,0,0,9,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.293737E2,7.730317E2,1.5634204E2,7.0115576E2,7.187594E1,9.267227E0,1.4707481E2,1.5265225E2,5.485035E2,1.9872778E1,5.200316E1,6.9632454E0,2.3039813E0,6.623962E0,1.4045085E2,1.4092134E2,1.1730911E1,4.268366E1,5.0581982E2,1.5142972E1,4.729805E0,1.27165575E1,3.9286602E1,3.9425044E0,3.020741E0,1.1506456E0,1.1533357E0,1.0078019E0,5.61616E0,4.92637E1,9.118715E1,1.3964795E2,1.2733891E0,7.1124773E0,4.6184344E0,4.0368458E1,2.315202E0,4.7926068E2,2.6559145E1,1.3411336E1,1.7316362E0,3.6251075E0,1.1046977E0,4.189029E0,8.527529E0,3.4551056E1,4.7355433E0,2.4339855E0,1.508519E0,1.3056898E0,1.7150512E0,1.6559582E1,3.2704117E1,7.291542E1,1.8271727E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-6.4833456E-4,-6.533611E-3,8.842532E-2,-1.3329599E-3,-5.2662545E-1,-2.3674925E-1,1.8525758E-1,5.2744998E-3,-1.7333585E-1,-1.0086999E0,1.602102E-1,1.419693E-1,-5.441473E-1,3.2674202E-1,-1.063165E-1,8.3808355E-2,-1.056031E-2,3.9349815E-1,-2.827544E-1,-3.0703977E-2,-1.1282679E-1,-3.9206143E-2,6.0463347E-2,5.812964E-1,-4.7710088E-1,-1.1059252E0,-1.1815852E-1,1.6844824E-1,7.6721144E-1,-9.911732E-1,2.2292449E-1,1.9343853E-2,-1.0822154E-2,-3.204669E-4,-3.1169757E-2,-2.6072076E-2,6.4604096E-2,-4.087531E-2,3.80578E-2,-2.07993E-3,8.120846E-2,-6.776345E-2,-7.1419366E-3,-3.4097143E-2,-1.3296334E-1,3.248056E-2,-4.860868E-2,2.6410073E-2,-4.570524E-2,1.0048792E-2,8.547353E-2,-1.7873742E-2,-1.3015246E-1,-5.03744E-2,3.5230238E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":144,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,-1,-1,-1,-1,39,41,43,45,47,49,51,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.878744E-1,2.3602767E0,1.8600578E0,9.8426145E-1,3.0221581E0,1.6691539E0,1.891383E0,1.0382726E0,2.0983274E0,9.096527E-2,1.3233677E0,2.1592448E0,1.725102E0,2.0006568E0,4.724477E0,2.9701211E0,1.5387174E0,1.093973E0,2.4486408E0,0E0,0E0,0E0,0E0,6.419232E-1,2.2994328E-1,9.846234E-2,1.0591531E0,1.5418766E0,3.6895132E-1,8.7064934E-1,1.31343E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,-1,-1,-1,-1,40,42,44,46,48,50,52,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.0072838E1,3.981565E1,-7.0710677E-1,2.9224489E0,1.3492717E-1,7.915231E1,7.611043E-1,1.2395207E-1,1.50459E-1,-8.660254E-1,3.8963044E-1,3.691864E-1,8.085229E1,5.5601746E-1,8.60961E-1,5E-1,9.997685E-1,-5E-1,4.5957386E-1,-3.0703977E-2,-1.1282679E-1,-3.9206143E-2,6.0463347E-2,4.0627525E1,-9.659258E-1,4.1644497E1,-1.571777E-2,4.6735922E-1,-8.230647E-2,7.665543E1,7.43043E1,1.9343853E-2,-1.0822154E-2,-3.204669E-4,-3.1169757E-2,-2.6072076E-2,6.4604096E-2,-4.087531E-2,3.80578E-2,-2.07993E-3,8.120846E-2,-6.776345E-2,-7.1419366E-3,-3.4097143E-2,-1.3296334E-1,3.248056E-2,-4.860868E-2,2.6410073E-2,-4.570524E-2,1.0048792E-2,8.547353E-2,-1.7873742E-2,-1.3015246E-1,-5.03744E-2,3.5230238E-2],"split_indices":[1,1,9,4,3,2,8,5,6,10,8,3,2,8,8,9,7,9,6,0,0,0,0,1,9,1,3,8,3,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.2855963E2,8.7187946E2,5.6680187E1,8.6424005E2,7.6393943E0,1.2674092E1,4.4006096E1,8.332021E2,3.103797E1,4.21345E0,3.4259443E0,5.9194317E0,6.7546606E0,2.9547667E1,1.4458427E1,1.3908879E2,6.941133E2,4.6019044E0,2.6436066E1,1.1329396E0,3.0805101E0,1.5801537E0,1.8457906E0,3.4980414E0,2.4213903E0,2.2246885E0,4.529972E0,2.275317E1,6.794496E0,3.375655E0,1.1082773E1,8.853607E1,5.055272E1,6.7854956E2,1.556375E1,1.2726605E0,3.329244E0,2.2538677E1,3.8973885E0,1.2214134E0,2.276628E0,1.1717958E0,1.2495944E0,1.0745436E0,1.1501449E0,2.108575E0,2.4213967E0,2.0236372E1,2.516799E0,1.0377133E0,5.756783E0,1.3686726E0,2.0069823E0,1.2376662E0,9.845107E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"55","size_leaf_vector":"1"}},{"base_weights":[-9.5692964E-4,-1.6787499E-1,2.0841653E-3,-3.3678913E-1,4.6559095E-1,1.0680118E-1,-5.0159236E-3,-4.4265543E-3,-7.0804524E-1,-3.9338246E-3,6.8180054E-2,1.4373802E-2,6.7742085E-1,-2.0089163E-1,2.6798237E-3,2.849551E-1,-6.75148E-2,-9.971691E-2,-6.0889818E-2,4.8678246E-1,-1.0887001E-1,7.207651E-2,1.1584388E0,-5.536045E-1,9.932691E-2,4.9857903E-2,-3.160458E-2,5.153975E-2,-4.0565584E-2,2.4687327E-2,-3.3123232E-2,-1.4393988E-2,9.814599E-2,-2.3525823E-2,5.2292425E-2,5.3078502E-2,-5.4441463E-2,1.5269017E-1,1.3644471E-2,-8.7430984E-2,1.0634983E-2,-7.767879E-2,2.6399061E-2,1.2064843E-3,3.2677233E-2,-1.6694907E-2,1.8943975E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":145,"left_children":[1,3,5,7,9,11,13,15,17,-1,-1,19,21,23,25,27,-1,-1,29,31,33,35,37,39,41,43,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.7184354E-1,1.9364681E0,6.7950845E-1,1.6886967E0,4.5488685E-1,3.0508876E0,1.2911525E0,1.7918758E0,1.1499267E0,0E0,0E0,3.0201695E0,2.265689E0,3.483727E0,1.3356671E0,1.2371817E0,0E0,0E0,3.366239E-1,3.4882712E0,3.4157848E0,1.6007106E0,1.459548E0,3.2763047E0,2.8507953E0,3.6329503E0,3.2753391E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,11,11,12,12,13,13,14,14,15,15,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,-1,20,22,24,26,28,-1,-1,30,32,34,36,38,40,42,44,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.0589898E-1,3.207702E1,1.3114467E-1,2.842455E1,-1.06382236E-1,9.6684784E-1,1.4518325E-1,7.0710677E-1,3.0414398E1,-3.9338246E-3,6.8180054E-2,-1.3175611E0,-7.3994614E-2,5.744336E1,2.9061413E1,8.906412E-1,-6.75148E-2,-9.971691E-2,3.3273617E1,-2.006134E0,9.911141E-1,9.946708E-1,5.947332E1,2.2699699E-1,-1.159346E-1,2.8424536E1,3.1283539E1,5.153975E-2,-4.0565584E-2,2.4687327E-2,-3.3123232E-2,-1.4393988E-2,9.814599E-2,-2.3525823E-2,5.2292425E-2,5.3078502E-2,-5.4441463E-2,1.5269017E-1,1.3644471E-2,-8.7430984E-2,1.0634983E-2,-7.767879E-2,2.6399061E-2,1.2064843E-3,3.2677233E-2,-1.6694907E-2,1.8943975E-3],"split_indices":[6,0,6,0,3,8,6,9,0,0,0,4,3,2,1,4,0,0,1,4,7,8,2,3,8,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.278435E2,1.5632146E1,9.1221136E2,1.2711069E1,2.9210763E0,5.7031353E1,8.5518E2,7.2407756E0,5.470294E0,1.1210549E0,1.8000215E0,4.996358E1,7.0677714E0,3.1379908E1,8.238001E2,5.460153E0,1.7806225E0,3.4072278E0,2.063066E0,9.727423E0,4.0236156E1,3.638583E0,3.4291885E0,1.404044E1,1.7339468E1,3.465144E2,4.7728574E2,4.284285E0,1.1758682E0,1.0053589E0,1.0577071E0,4.5874133E0,5.140009E0,3.405184E1,6.184316E0,2.1659794E0,1.4726036E0,2.1573503E0,1.2718383E0,9.230208E0,4.8102307E0,2.155172E0,1.5184297E1,3.0581992E2,4.069449E1,1.291587E2,3.48127E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"47","size_leaf_vector":"1"}},{"base_weights":[-8.1451033E-4,1.3927422E-2,-3.4759678E-2,-4.4443288E-5,4.3151185E-1,-1.6039334E-1,4.135127E-2,2.8033933E-1,-1.6974658E-2,9.7614133E-1,2.0428221E-1,-1.4414984E-2,-3.6492428E-1,1.7339319E-1,-9.3617626E-2,-2.1290234E-1,4.7208893E-1,-4.6205458E-1,8.3539844E-4,1.1107954E-1,1.832408E-2,-5.281722E-1,4.8368868E-1,-5.1864606E-1,5.7793397E-2,4.1562E-1,-4.1433248E-1,-7.4096316E-1,2.182046E-1,-4.8648778E-1,-4.128574E-3,6.3629694E-2,-5.295365E-2,-4.0262487E-2,7.692688E-2,-8.946433E-2,-1.5136236E-3,1.0216254E-3,-4.6231344E-2,7.581421E-2,-1.0718384E-1,-5.5034168E-2,8.587783E-2,4.4372637E-2,-7.200121E-2,-3.0746877E-2,2.0866808E-2,8.263537E-2,-2.0178964E-2,-2.5455026E-2,-7.0462815E-2,-1.1703761E-1,2.0514574E-2,3.7380807E-2,8.95557E-4,-8.628937E-2,-8.905064E-3,1.5767476E-2,-2.3832513E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":146,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,-1,-1,39,41,43,45,47,49,51,53,55,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.649545E-1,3.7798054E0,2.6966875E0,2.985216E0,2.396287E0,3.1697018E0,3.1525786E0,3.4874048E0,4.7014856E0,4.27454E-1,3.5430675E0,2.3271492E0,1.8785753E0,3.8209634E0,3.080533E0,3.2176626E0,7.0934987E0,4.398315E0,2.4865925E0,0E0,0E0,4.2490025E0,5.1852093E0,1.8704989E0,3.1551445E0,9.6131724E-1,1.7740097E0,2.0276477E0,2.793818E0,2.3552816E0,2.78185E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,-1,-1,40,42,44,46,48,50,52,54,56,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[6.821625E1,3.438336E1,-7.0710677E-1,-2.678143E-1,3.4674423E1,-8.660254E-1,-2.5881904E-1,8.311706E-1,-1.159346E-1,2.635529E0,3.5153362E1,-2.5119007E-1,-5.9126145E-1,1.1371429E-1,-1.5008808E0,5.253826E1,-4.2140488E-2,2.8191822E1,3.3762497E1,1.1107954E-1,1.832408E-2,-5.3949195E-1,-4.3373916E-1,-8.82048E-1,7.3651146E1,-8.0544317E-1,3.714609E-1,7.8532936E1,5.6266326E-2,3.1483588E-1,1.8455367E-1,6.3629694E-2,-5.295365E-2,-4.0262487E-2,7.692688E-2,-8.946433E-2,-1.5136236E-3,1.0216254E-3,-4.6231344E-2,7.581421E-2,-1.0718384E-1,-5.5034168E-2,8.587783E-2,4.4372637E-2,-7.200121E-2,-3.0746877E-2,2.0866808E-2,8.263537E-2,-2.0178964E-2,-2.5455026E-2,-7.0462815E-2,-1.1703761E-1,2.0514574E-2,3.7380807E-2,8.95557E-4,-8.628937E-2,-8.905064E-3,1.5767476E-2,-2.3832513E-2],"split_indices":[2,1,10,8,1,10,10,7,8,4,1,8,8,6,4,2,3,0,1,0,0,4,4,8,2,4,6,2,3,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.2716595E2,6.468412E2,2.8032477E2,6.268669E2,1.9974308E1,1.0533863E2,1.7498613E2,3.4810272E1,5.9205664E2,4.9100194E0,1.5064289E1,6.2092373E1,4.3246258E1,8.8308266E1,8.667787E1,9.713558E0,2.5096714E1,2.1820124E1,5.702365E2,3.8545027E0,1.0555165E0,3.913872E0,1.1150416E1,7.003601E0,5.508877E1,2.1332648E0,4.111299E1,3.3998919E0,8.490837E1,1.5257761E1,7.142011E1,2.3639584E0,7.3496003E0,6.2742844E0,1.882243E1,1.0578753E1,1.124137E1,5.5987445E2,1.0362042E1,1.0455652E0,2.8683066E0,2.8437278E0,8.306689E0,1.0035988E0,6.0000024E0,1.5799892E1,3.928888E1,1.0778207E0,1.0554441E0,2.7728018E1,1.3384974E1,2.175466E0,1.2244259E0,4.824535E1,3.6663025E1,7.2347283E0,8.023032E0,4.2431488E1,2.898862E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"59","size_leaf_vector":"1"}},{"base_weights":[-1.005252E-3,-2.440608E-3,3.476971E-1,4.7520213E-3,-8.538612E-2,-2.712959E-2,6.8376236E-2,9.4417475E-2,-9.710968E-3,-1.2755387E-1,8.208247E-2,1.697876E-1,-1.9143577E-1,-3.768082E-3,-2.4651645E-1,-1.7467543E-2,-5.08435E-1,8.116543E-3,4.972489E-2,-5.2213717E-2,1.2933909E-2,-2.3151623E-2,4.7840044E-4,2.92546E-2,-5.0007768E-2,-1.678702E-2,2.6159747E-2,-9.6642606E-2,-1.34890145E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":147,"left_children":[1,3,5,7,9,-1,-1,11,13,15,-1,17,19,21,23,25,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.6489114E-1,5.5185634E-1,9.775819E-1,1.1051911E0,2.9251926E0,0E0,0E0,2.5826612E0,1.0322497E0,2.9846435E0,0E0,2.6933012E0,2.7372928E0,1.3980031E0,2.6008575E0,2.4120302E0,2.6022267E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,7,7,8,8,9,9,11,11,12,12,13,13,14,14,15,15,16,16],"right_children":[2,4,6,8,10,-1,-1,12,14,16,-1,18,20,22,24,26,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[4.383222E1,2.4217467E0,2.2611569E-1,1.2395207E-1,9.995463E-1,-2.712959E-2,6.8376236E-2,4.0238228E-1,9.997685E-1,7.5266683E-1,8.208247E-2,3.511237E-1,1.9322288E0,1.5734284E-1,4.3393537E-1,0E0,2.978087E1,8.116543E-3,4.972489E-2,-5.2213717E-2,1.2933909E-2,-2.3151623E-2,4.7840044E-4,2.92546E-2,-5.0007768E-2,-1.678702E-2,2.6159747E-2,-9.6642606E-2,-1.34890145E-2],"split_indices":[1,4,8,5,7,0,0,6,7,7,0,6,4,5,5,7,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.261355E2,9.233278E2,2.8076737E0,8.5051776E2,7.2810036E1,1.0557793E0,1.7518944E0,1.1736539E2,7.331524E2,7.039372E1,2.4163122E0,9.319813E1,2.4167257E1,7.1619464E2,1.6957756E1,5.542117E1,1.4972556E1,7.432982E1,1.8868313E1,1.1590425E1,1.2576833E1,2.4976677E1,6.9121796E2,5.375621E0,1.1582134E1,3.627119E1,1.9149977E1,6.0130177E0,8.959538E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[-9.1083377E-4,1.9846666E-3,-1.6692203E-1,-2.7693764E-3,7.192212E-1,-4.3400556E-1,1.702712E-1,1.0706246E-2,-6.0987353E-2,1.7418044E-2,9.034034E-1,1.0608591E-1,-7.355999E-1,4.003818E-1,-4.146966E-2,1.484375E-2,-8.6995095E-2,-5.8672065E-1,-2.3336655E-2,3.678141E-2,1.1153457E-1,-2.7002562E-2,5.4341942E-2,-8.5006845E-1,-8.787509E-3,6.4962775E-1,-6.1277095E-2,1.624837E-4,2.5230104E-2,-8.3092526E-2,5.838973E-2,-6.64798E-2,6.311148E-4,-3.062733E-2,-9.608609E-2,8.545022E-2,8.667916E-3,1.0687921E-2,-1.9636223E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":148,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,-1,27,-1,29,31,-1,-1,-1,-1,33,-1,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.4553357E-1,3.109295E0,1.5048352E0,7.116578E-1,4.4540405E-1,1.5681365E0,1.2080249E0,2.6975791E0,3.3611555E0,0E0,7.2077274E-2,8.2966363E-1,3.6987567E-1,7.3760873E-1,0E0,2.3045988E0,0E0,3.7305984E0,3.049797E0,0E0,0E0,0E0,0E0,5.7685375E-3,0E0,3.9007556E-1,9.004145E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,15,15,17,17,18,18,23,23,25,25,26,26],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,-1,28,-1,30,32,-1,-1,-1,-1,34,-1,36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.615817E1,8.5373924E1,2.463387E-1,1E0,-7.0558363E-1,-3.3929232E-1,-2.5881904E-1,8.37946E1,3.4181202E1,1.7418044E-2,4.282872E-2,-1.8369701E-16,4.287867E-1,2.635529E0,-4.146966E-2,3.287209E1,-8.6995095E-2,9.979172E-1,-2.5436728E0,3.678141E-2,1.1153457E-1,-2.7002562E-2,5.4341942E-2,1.7008229E-1,-8.787509E-3,-2.5881904E-1,4.3035382E-3,1.624837E-4,2.5230104E-2,-8.3092526E-2,5.838973E-2,-6.64798E-2,6.311148E-4,-3.062733E-2,-9.608609E-2,8.545022E-2,8.667916E-3,1.0687921E-2,-1.9636223E-2],"split_indices":[2,2,3,11,7,3,10,2,1,0,4,10,6,4,0,0,0,7,4,0,0,0,0,6,0,9,8,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.2518207E2,9.1029315E2,1.4888921E1,9.052888E2,5.0043674E0,8.147973E0,6.7409472E0,7.3579224E2,1.6949655E2,1.7554005E0,3.2489667E0,3.1518779E0,4.9960957E0,5.0643263E0,1.6766207E0,7.3333E2,2.4621863E0,1.0352786E1,1.5914377E2,1.6967174E0,1.5522493E0,1.9002264E0,1.2516516E0,3.980291E0,1.0158045E0,3.0243464E0,2.0399802E0,6.956131E2,3.7716957E1,8.805945E0,1.5468405E0,6.084126E0,1.5305965E2,1.3108286E0,2.6694624E0,1.8376604E0,1.1866858E0,1.0017657E0,1.0382144E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"39","size_leaf_vector":"1"}},{"base_weights":[-9.0996316E-4,5.6091834E-2,-1.0095311E-2,1.4335229E-2,5.8032894E-1,-1.6093712E-1,7.3419814E-3,-5.194479E-1,4.744524E-2,8.7107015E-1,-7.470675E-2,-3.2257217E-1,1.4878407E-1,2.3791671E-1,-9.652249E-3,2.4743827E-2,-8.526177E-2,1.685923E-1,-1.2409842E-1,1.3091278E0,-2.481508E-1,-5.947903E-1,1.4417914E-1,1.0571231E-2,1.3305905E-1,3.343945E-1,-7.635808E-1,-6.478929E-1,-8.482589E-4,2.2946054E-2,-5.573787E-2,2.3257162E-2,-3.6814813E-2,1.6382347E-1,3.8200967E-2,-3.5204466E-2,-1.7578349E-3,-7.186356E-2,1.1175135E-2,-7.494225E-2,3.4152735E-2,1.0584804E-1,-1.0844182E-2,-6.58659E-2,4.269678E-2,-1.1656914E-1,-1.1570858E-2,2.7799591E-2,-1.0012318E-1,2.9153987E-3,-1.0520378E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":149,"left_children":[1,3,5,7,9,11,13,15,17,19,-1,21,23,25,27,-1,-1,29,31,33,35,37,39,41,-1,43,45,47,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.8488614E-1,2.8051279E0,2.0987952E0,2.1466718E0,4.3003464E0,4.187127E0,2.8071496E0,2.0241194E0,2.3894773E0,4.354599E0,0E0,7.028692E0,4.7288146E0,5.0067644E0,3.7509253E0,0E0,0E0,3.098328E0,4.242004E0,1.2252007E0,6.933451E-2,3.1174507E0,3.9477272E0,3.482637E0,0E0,4.468623E0,1.0701454E0,3.2498057E0,2.0680537E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,11,11,12,12,13,13,14,14,17,17,18,18,19,19,20,20,21,21,22,22,23,23,25,25,26,26,27,27,28,28],"right_children":[2,4,6,8,10,12,14,16,18,20,-1,22,24,26,28,-1,-1,30,32,34,36,38,40,42,-1,44,46,48,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-4.0857756E-1,-4.22495E-1,-2.7695382E-1,-2.344914E-1,-1.3357483E-1,8.0392796E-1,-2.1149121E-1,-7.0710677E-1,7.383264E-1,9.634706E-1,-7.470675E-2,9.6573997E-1,5.6670177E-1,3.935483E1,-1.9954023E-1,2.4743827E-2,-8.526177E-2,9.9843544E-1,2.7378668E1,8.429415E-1,-4.1453156E-1,3.667547E1,2.6776005E1,-9.659258E-1,1.3305905E-1,-3.375229E-1,-5E-1,-5E-1,9.6793777E-1,2.2946054E-2,-5.573787E-2,2.3257162E-2,-3.6814813E-2,1.6382347E-1,3.8200967E-2,-3.5204466E-2,-1.7578349E-3,-7.186356E-2,1.1175135E-2,-7.494225E-2,3.4152735E-2,1.0584804E-1,-1.0844182E-2,-6.58659E-2,4.269678E-2,-1.1656914E-1,-1.1570858E-2,2.7799591E-2,-1.0012318E-1,2.9153987E-3,-1.0520378E-2],"split_indices":[3,3,3,8,4,8,3,9,8,7,0,7,7,1,3,0,0,7,0,8,3,1,0,10,0,7,10,9,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[9.240136E2,1.2752446E2,7.9648914E2,1.190678E2,8.456659E0,8.1680466E1,7.1480865E2,6.096384E0,1.1297142E2,7.219204E0,1.2374555E0,5.3643753E1,2.803671E1,4.8175266E1,6.666334E2,1.9243221E0,4.172062E0,6.622172E1,4.6749702E1,5.0665164E0,2.1526878E0,3.370945E1,1.9934303E1,2.6004425E1,2.0322852E0,4.4549736E1,3.6255295E0,8.082819E0,6.585506E2,6.172996E1,4.491754E0,1.9011742E1,2.773796E1,3.1731122E0,1.8934044E0,1.1208252E0,1.0318626E0,2.8667402E1,5.0420485E0,3.0999815E0,1.6834322E1,1.8470801E0,2.4157345E1,3.2773964E0,4.1272343E1,1.7438959E0,1.8816336E0,2.2914743E0,5.7913446E0,5.120552E2,1.4649539E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"51","size_leaf_vector":"1"}}]},"name":"gbtree"},"learner_model_param":{"base_score":"[1.6774891E-1]","boost_from_average":"1","num_class":"0","num_feature":"12","num_target":"1"},"objective":{"name":"binary:logistic","reg_loss_param":{"scale_pos_weight":"1"}}},"version":[3,2,0]} \ No newline at end of file diff --git a/models/uhi_xgb.json b/models/uhi_xgb.json new file mode 100644 index 0000000000000000000000000000000000000000..72f2a409418bbd1537f15b064525e8fa499f77ae --- /dev/null +++ b/models/uhi_xgb.json @@ -0,0 +1 @@ +{"learner":{"attributes":{"scikit_learn":"{\"_estimator_type\": \"regressor\"}"},"feature_names":[],"feature_types":[],"gradient_booster":{"model":{"cats":{"enc":[],"feature_segments":[],"sorted_idx":[]},"gbtree_model_param":{"num_parallel_tree":"1","num_trees":"100"},"iteration_indptr":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"tree_info":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"trees":[{"base_weights":[-3.735272E-8,-7.17474E-1,1.3321004E0,-1.0878589E0,-3.9956117E-1,9.895187E-1,3.3754587E0,-1.237483E0,-9.449659E-1,-6.87599E-1,-1.1757433E-1,4.1904268E-1,1.6522783E0,2.2201364E0,4.367642E0,-1.00755826E-1,-1.2810624E-1,-6.2297504E-2,-1.0091962E-1,-7.71042E-2,-5.5935305E-2,-5.2855473E-2,-4.1696E-3,6.4641507E-3,7.663363E-2,1.1649095E-1,2.1447614E-1,1.8108097E-1,2.687975E-1,3.8337728E-1,4.724624E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":0,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.780648E3,3.823711E2,1.2223896E3,3.0922363E1,1.4214047E2,5.668185E2,2.7802222E2,6.0238037E0,1.5337463E1,8.835968E0,2.7607433E1,9.940015E1,1.6407605E2,1.7729492E1,7.4248047E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,4.5E-1,8.2E-1,6.123234E-17,6.123234E-17,6.123234E-17,6.123234E-17,1E0,1E0,-5E-1,1E0,1E0,1E0,-5E-1,-1.8369701E-16,-1.00755826E-1,-1.2810624E-1,-6.2297504E-2,-1.0091962E-1,-7.71042E-2,-5.5935305E-2,-5.2855473E-2,-4.1696E-3,6.4641507E-3,7.663363E-2,1.1649095E-1,2.1447614E-1,1.8108097E-1,2.687975E-1,3.8337728E-1,4.724624E-1],"split_indices":[11,4,4,8,8,8,8,2,2,8,1,0,0,8,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.5E3,1.75E3,1.5E3,2.5E2,7.29E2,7.71E2,8.65E2,8.85E2,8.07E2,6.93E2,1.17E2,1.33E2,1.2E2,6.09E2,1.3E2,6.41E2,5.21E2,3.44E2,1.37E2,7.48E2,4E2,4.07E2,3.5E2,3.43E2,6.5E1,5.2E1,5.8E1,7.5E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.2745779E-4,-6.459057E-1,1.1998725E0,-9.793343E-1,-3.597136E-1,8.9084274E-1,3.043115E0,-1.1140482E0,-8.5068077E-1,-6.1899275E-1,-1.0588127E-1,3.7724128E-1,1.4875274E0,2.0019355E0,3.9372647E0,-9.076352E-2,-1.1531662E-1,-5.6115318E-2,-9.084338E-2,-7.316065E-2,-5.3894944E-2,-4.7608223E-2,-3.7531983E-3,5.81935E-3,6.898906E-2,1.0487504E-1,1.9309089E-1,1.6324723E-1,2.4242492E-1,3.2452044E-1,4.1583768E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":1,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.8772021E3,3.0987317E2,9.9468823E2,2.5066772E1,1.151738E2,4.5943237E2,2.257915E2,4.8477173E0,1.2398926E1,7.4117737E0,2.2400562E1,8.0557915E1,1.3298975E2,1.4453888E1,7.010498E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,4.5E-1,8.2E-1,6.123234E-17,6.123234E-17,6.123234E-17,6.123234E-17,1E0,1E0,-7.0710677E-1,1E0,1E0,1E0,-5E-1,-5E-1,-9.076352E-2,-1.1531662E-1,-5.6115318E-2,-9.084338E-2,-7.316065E-2,-5.3894944E-2,-4.7608223E-2,-3.7531983E-3,5.81935E-3,6.898906E-2,1.0487504E-1,1.9309089E-1,1.6324723E-1,2.4242492E-1,3.2452044E-1,4.1583768E-1],"split_indices":[11,4,4,8,8,8,8,2,2,8,1,0,0,8,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.5E3,1.75E3,1.5E3,2.5E2,7.29E2,7.71E2,8.65E2,8.85E2,8.07E2,6.93E2,1.17E2,1.33E2,1.2E2,6.09E2,1.3E2,6.41E2,3.56E2,5.09E2,1.37E2,7.48E2,4E2,4.07E2,3.5E2,3.43E2,6.5E1,5.2E1,3.6E1,9.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.0216616E-4,-5.8147854E-1,1.0807527E0,-8.394945E-1,-2.8010115E-1,8.0200684E-1,2.7433693E0,-9.722159E-1,-7.1548617E-1,-5.247381E-1,-3.378381E-2,3.3960977E-1,1.3392041E0,1.8051798E0,3.5490632E0,-1.0029256E-1,-7.670371E-2,-7.65803E-2,-4.28819E-2,-5.879543E-2,-3.896425E-2,-2.7790397E-2,3.5664362E-3,5.238869E-3,6.2107068E-2,9.441741E-2,1.7383794E-1,1.4124303E-1,2.1256368E-1,2.8247994E-1,3.730824E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":2,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.1444329E3,2.5256323E2,8.092964E2,2.8123169E1,9.043E1,3.7239124E2,1.8332263E2,4.5424194E0,1.2783203E1,6.201706E0,1.2708232E1,6.528739E1,1.0779285E2,1.1849121E1,7.1011963E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,6.123234E-17,6.123234E-17,6.123234E-17,6.123234E-17,4.5E-1,4.5E-1,5E-1,-5E-1,1E0,1E0,-1.8369701E-16,5E-1,-1.0029256E-1,-7.670371E-2,-7.65803E-2,-4.28819E-2,-5.879543E-2,-3.896425E-2,-2.7790397E-2,3.5664362E-3,5.238869E-3,6.2107068E-2,9.441741E-2,1.7383794E-1,1.4124303E-1,2.1256368E-1,2.8247994E-1,3.730824E-1],"split_indices":[11,1,4,8,8,8,8,4,4,7,7,0,0,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,8.42E2,9.08E2,7.52E2,7.48E2,8.07E2,6.93E2,1.17E2,1.33E2,7.29E2,1.13E2,7.71E2,1.37E2,5.1E2,2.42E2,1.65E2,5.83E2,4E2,4.07E2,3.5E2,3.43E2,5.5E1,6.2E1,3E1,1.03E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.4722535E-4,-5.234594E-1,9.7344553E-1,-7.557144E-1,-2.5217226E-1,7.2202975E-1,2.4730537E0,-8.869462E-1,-6.537067E-1,-4.7239408E-1,-3.0437725E-2,1.5625201E-1,1.0852194E0,1.6276602E0,3.1990492E0,-9.162232E-2,-6.947506E-2,-6.967828E-2,-4.0223204E-2,-5.743865E-2,-3.989337E-2,-2.5028098E-2,3.2104084E-3,2.7155192E-3,5.7306726E-2,7.384544E-2,1.4334099E-1,1.2990966E-1,2.0061043E-1,2.7554917E-1,3.501297E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":3,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.5500452E3,2.046477E2,6.583855E2,2.286023E1,7.328061E1,3.0826282E2,1.4884485E2,3.6567993E0,1.0433075E1,5.4126434E0,1.0306332E1,3.1624435E1,1.0929797E2,1.2066315E1,8.316895E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,-1.8369701E-16,6.123234E-17,-2.5881904E-1,6.123234E-17,4.5E-1,4.5E-1,-7.0710677E-1,-5E-1,7.0710677E-1,1E0,-5E-1,-1.8369701E-16,-9.162232E-2,-6.947506E-2,-6.967828E-2,-4.0223204E-2,-5.743865E-2,-3.989337E-2,-2.5028098E-2,3.2104084E-3,2.7155192E-3,5.7306726E-2,7.384544E-2,1.4334099E-1,1.2990966E-1,2.0061043E-1,2.7554917E-1,3.501297E-1],"split_indices":[11,1,4,8,8,8,8,4,4,8,7,7,0,8,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,7.62E2,9.88E2,7.52E2,7.48E2,5.87E2,9.13E2,1.17E2,1.33E2,6.58E2,1.04E2,8.42E2,1.46E2,3.12E2,4.4E2,1.65E2,5.83E2,4.49E2,1.38E2,4.59E2,4.54E2,6.5E1,5.2E1,5.8E1,7.5E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[6.611317E-4,-4.7123346E-1,8.768054E-1,-6.802977E-1,-2.2703443E-1,6.500115E-1,2.229558E0,-8.25689E-1,-6.035969E-1,-3.824631E-1,3.3339206E-2,2.6478213E-1,1.0975839E0,1.4676951E0,2.8838136E0,-8.62722E-2,-7.3618345E-2,-6.445146E-2,-3.605869E-2,-4.6579078E-2,-2.438364E-2,-2.1083005E-2,8.924409E-3,1.5317673E-3,5.0931763E-2,7.763907E-2,1.4221224E-1,1.1711551E-1,1.809279E-1,2.2414663E-1,3.0475536E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":4,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.0680652E3,1.6581982E2,5.357506E2,1.9028015E1,6.0757507E1,2.5850885E2,1.2087927E2,1.360321E0,1.1202545E1,1.07447815E1,7.690256E0,4.9282555E1,7.123816E1,9.833649E0,7.2628174E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,-2.5881904E-1,5E-1,6.123234E-17,6.123234E-17,5E-1,4.5E-1,-2.5881904E-1,-5E-1,1E0,1E0,-5E-1,5E-1,-8.62722E-2,-7.3618345E-2,-6.445146E-2,-3.605869E-2,-4.6579078E-2,-2.438364E-2,-2.1083005E-2,8.924409E-3,1.5317673E-3,5.0931763E-2,7.763907E-2,1.4221224E-1,1.1711551E-1,1.809279E-1,2.2414663E-1,3.0475536E-1],"split_indices":[11,1,4,8,8,8,8,7,4,8,7,0,0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,6.01E2,1.149E3,9.39E2,5.61E2,8.07E2,6.93E2,1.17E2,1.33E2,4.19E2,1.82E2,9.82E2,1.67E2,5.85E2,3.54E2,1.04E2,4.57E2,4E2,4.07E2,3.5E2,3.43E2,6.5E1,5.2E1,3E1,1.03E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.4615073E-4,-4.2421576E-1,7.8975266E-1,-2.3561952E-1,-6.4394116E-1,5.851918E-1,2.0098968E0,-3.7103915E-1,-9.0104565E-3,-6.877837E-1,-4.2286128E-1,1.1433174E-1,8.8746804E-1,1.3234514E0,2.5993793E0,-4.6648927E-2,-2.8278334E-2,2.497097E-2,-5.112239E-3,-7.797248E-2,-6.145351E-2,-6.140641E-2,-3.2474287E-2,-2.3314955E-4,4.9119595E-2,6.053334E-2,1.17075264E-1,1.607277E-1,9.805146E-2,2.0342267E-1,2.786229E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":5,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6771589E3,1.3456769E2,4.3586255E2,5.373014E1,1.4257935E1,2.1353552E2,9.81264E1,9.100815E0,7.160021E0,7.9457397E0,4.5094795E0,2.5853268E1,7.234216E1,9.909485E0,8.482422E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,5E-1,4.5E-1,-2.5881904E-1,6.123234E-17,-5E-1,1.16E0,-1.8369701E-16,-2.5881904E-1,7.0710677E-1,1E0,1.2246469E-16,-5E-1,-4.6648927E-2,-2.8278334E-2,2.497097E-2,-5.112239E-3,-7.797248E-2,-6.145351E-2,-6.140641E-2,-3.2474287E-2,-2.3314955E-4,4.9119595E-2,6.053334E-2,1.17075264E-1,1.607277E-1,9.805146E-2,2.0342267E-1,2.786229E-1],"split_indices":[11,2,4,8,4,8,8,8,5,8,8,7,0,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,1.095E3,6.55E2,1.25E3,2.5E2,5.87E2,9.13E2,1.17E2,1.33E2,5.24E2,5.71E2,9.1E1,5.64E2,5.5E2,7E2,8.3E1,1.67E2,4.49E2,1.38E2,4.59E2,4.54E2,6.2E1,5.5E1,3.6E1,9.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[8.0731814E-4,-3.8188288E-1,7.113299E-1,-5.538424E-1,-1.8102804E-1,5.268235E-1,1.8118585E0,-6.111785E-1,-4.191507E-1,-3.3170298E-1,-8.542768E-5,2.0585985E-1,8.9975125E-1,1.0472591E0,2.2552793E0,-6.5341614E-2,-5.1998924E-2,-1.9709347E-2,-4.539327E-2,-3.9963868E-2,-2.1828284E-2,-7.667066E-3,1.9335194E-2,2.0113196E-3,4.5507897E-2,5.6907352E-2,1.11282945E-1,1.5597712E-1,8.492583E-2,1.7690133E-1,2.490754E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":6,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3600935E3,1.1218573E2,3.54594E2,1.3266296E1,4.0922516E1,1.7947876E2,8.273694E1,4.3822937E0,3.9731522E0,6.2233887E0,1.013309E1,3.7394474E1,4.8266235E1,8.214272E0,1.3685425E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,7.0710677E-1,2.5881904E-1,6.123234E-17,-2.5881904E-1,8.660254E-1,1E0,5E-1,8.660254E-1,5E-1,-1.8369701E-16,-5E-1,5E-1,-6.5341614E-2,-5.1998924E-2,-1.9709347E-2,-4.539327E-2,-3.9963868E-2,-2.1828284E-2,-7.667066E-3,1.9335194E-2,2.0113196E-3,4.5507897E-2,5.6907352E-2,1.11282945E-1,1.5597712E-1,8.492583E-2,1.7690133E-1,2.490754E-1],"split_indices":[11,1,4,8,8,8,8,7,2,7,10,10,10,9,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,1.225E3,5.25E2,8.18E2,6.82E2,8.07E2,6.93E2,9.3E1,1.57E2,8.33E2,3.92E2,7.2E1,4.53E2,5.1E2,3.08E2,4.89E2,1.93E2,4.63E2,3.44E2,2.73E2,4.2E2,2.4E1,6.9E1,5.4E1,1.03E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[8.565707E-4,-2.3422635E-1,9.4048285E-1,-4.985624E-1,-2.8501483E-2,6.340858E-1,1.4914229E0,-5.818114E-1,-4.208094E-1,-1.76087E-1,2.2779039E-1,4.4652054E-1,1.1555387E0,1.1773793E0,2.2440736E0,-6.03244E-2,-4.3946397E-2,-4.5463134E-2,-2.285533E-2,2.02749E-3,-2.7825853E-2,6.507992E-2,3.0181701E-3,3.0238694E-2,9.591677E-2,7.926503E-2,1.4926316E-1,8.1086084E-2,1.3235542E-1,1.8030551E-1,2.5627598E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":7,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1048916E3,2.1756213E2,1.6802942E2,1.1089142E1,8.518411E1,6.2569183E1,8.1740295E1,2.3067932E0,5.8068542E0,2.8675098E1,6.877509E1,3.488143E1,1.9612457E1,1.2535034E1,9.996033E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,5E-1,6.123234E-17,5E-1,8.660254E-1,8.2E-1,4.5E-1,4.5E-1,3.5E-2,3.5E-2,8.2E-1,7.5E-1,-2.5881904E-1,-1.8369701E-16,-6.03244E-2,-4.3946397E-2,-4.5463134E-2,-2.285533E-2,2.02749E-3,-2.7825853E-2,6.507992E-2,3.0181701E-3,3.0238694E-2,9.591677E-2,7.926503E-2,1.4926316E-1,8.1086084E-2,1.3235542E-1,1.8030551E-1,2.5627598E-1],"split_indices":[0,1,8,8,8,7,4,4,4,5,5,4,4,7,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.75E3,2.25E3,6.44E2,3.56E2,8.42E2,9.08E2,1.428E3,8.22E2,4.75E2,1.69E2,2.53E2,1.03E2,7.29E2,1.13E2,7.71E2,1.37E2,4.89E2,9.39E2,2.61E2,5.61E2,3.72E2,1.03E2,8.3E1,8.6E1,7.4E1,1.79E2,4.6E1,5.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.457539E-4,-2.1083628E-1,8.474383E-1,-4.4880474E-1,-2.5632553E-2,5.1806843E-1,1.2696235E0,-4.9708444E-1,-3.3542123E-1,-2.5277424E-1,1.1926119E-1,3.6377972E-1,1.0252688E0,1.0056237E0,1.9529481E0,-3.6069382E-2,-5.1990587E-2,-3.6931578E-2,-1.4465116E-2,-7.6788007E-3,-3.0264912E-2,4.3378245E-2,-3.8816363E-3,2.329952E-2,7.203012E-2,6.6752814E-2,1.3091461E-1,7.757801E-2,1.3075045E-1,2.248596E-1,1.6636424E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":8,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.9671747E2,1.7632315E2,1.3853632E2,9.418457E0,7.411373E1,4.3763016E1,7.705023E1,3.6285706E0,3.347725E0,7.67445E0,6.838013E1,2.0068497E1,1.2429718E1,2.1050201E1,6.608612E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,2.5881904E-1,7.0710677E-1,-2.5881904E-1,8.2E-1,8.2E-1,1E0,4.5E-1,2.2E-2,3.5E-2,8.660254E-1,-1.8369701E-16,5E-1,5E-1,-3.6069382E-2,-5.1990587E-2,-3.6931578E-2,-1.4465116E-2,-7.6788007E-3,-3.0264912E-2,4.3378245E-2,-3.8816363E-3,2.329952E-2,7.203012E-2,6.6752814E-2,1.3091461E-1,7.757801E-2,1.3075045E-1,2.248596E-1,1.6636424E-1],"split_indices":[0,1,8,8,8,4,4,2,4,5,5,10,10,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.75E3,2.25E3,5.63E2,4.37E2,1.225E3,5.25E2,8.76E2,1.374E3,4.33E2,1.3E2,3.17E2,1.2E2,1.78E2,1.047E3,4.45E2,8E1,1.94E2,6.82E2,4.59E2,9.15E2,3.18E2,1.15E2,5.9E1,7.1E1,1.82E2,1.35E2,5.6E1,6.4E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0020795E-3,-1.8978712E-1,7.635861E-1,-4.040039E-1,-2.3068625E-2,5.1128906E-1,1.2172779E0,-5.008253E-1,-3.529687E-1,-1.4805864E-1,1.9398339E-1,3.4630305E-1,9.702423E-1,9.614376E-1,1.8304142E0,-5.3276397E-2,-4.2478666E-2,-3.8209505E-2,-1.8044384E-2,-2.5150064E-2,-3.8917517E-4,5.4275483E-2,3.1043717E-3,2.3029095E-2,7.59055E-2,6.5894686E-2,1.2596513E-1,6.344611E-2,1.0923364E-1,1.4401142E-1,2.1151331E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":9,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.277544E2,1.4288197E2,1.1395715E2,8.475464E0,6.109685E1,4.8503967E1,5.4241028E1,1.2356873E0,5.7098236E0,2.130957E1,4.6753166E1,2.2618088E1,1.448555E1,1.0178375E1,8.511047E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,5E-1,-2.5881904E-1,5E-1,8.660254E-1,8.2E-1,5E-1,4.5E-1,5E-1,3.5E-2,8.2E-1,7.5E-1,-2.5881904E-1,-1.8369701E-16,-5.3276397E-2,-4.2478666E-2,-3.8209505E-2,-1.8044384E-2,-2.5150064E-2,-3.8917517E-4,5.4275483E-2,3.1043717E-3,2.3029095E-2,7.59055E-2,6.5894686E-2,1.2596513E-1,6.344611E-2,1.0923364E-1,1.4401142E-1,2.1151331E-1],"split_indices":[0,1,8,8,8,7,4,7,4,10,5,4,4,7,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.75E3,2.25E3,6.44E2,3.56E2,6.01E2,1.149E3,1.428E3,8.22E2,4.75E2,1.69E2,2.53E2,1.03E2,4.19E2,1.82E2,9.82E2,1.67E2,8.31E2,5.97E2,2.61E2,5.61E2,3.72E2,1.03E2,8.3E1,8.6E1,7.4E1,1.79E2,4.6E1,5.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0416254E-3,-2.5330305E-1,4.7327092E-1,-1.3782713E-1,-3.8784337E-1,3.508293E-1,1.2035959E0,-2.4397066E-1,-1.1052886E-2,-4.2026395E-1,-2.2471198E-1,-3.0392345E-2,5.084439E-1,6.628295E-1,1.5177001E0,-3.0410606E-2,-1.4582825E-2,-7.815458E-3,1.54280085E-2,-4.528906E-2,-3.1758305E-2,-3.4948606E-2,-1.1490992E-2,-1.1002305E-2,2.4500253E-2,2.4037046E-2,6.7332886E-2,9.246122E-2,3.5723034E-2,1.187733E-1,1.7666769E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":10,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.00785E2,5.045462E1,1.5615594E2,2.3559227E1,7.844055E0,9.020471E1,4.1628113E1,5.580101E0,8.876262E0,4.0471954E0,3.398655E0,9.676106E0,4.6779877E1,7.1897507E0,1.088205E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,8.2E-1,2.5881904E-1,4.5E-1,-5E-1,-2.5881904E-1,5E-1,8.660254E-1,8.660254E-1,-1.8369701E-16,8.660254E-1,-1.8369701E-16,1.2246469E-16,-1.8369701E-16,-3.0410606E-2,-1.4582825E-2,-7.815458E-3,1.54280085E-2,-4.528906E-2,-3.1758305E-2,-3.4948606E-2,-1.1490992E-2,-1.1002305E-2,2.4500253E-2,2.4037046E-2,6.7332886E-2,9.246122E-2,3.5723034E-2,1.187733E-1,1.7666769E-1],"split_indices":[11,2,4,8,4,8,8,7,10,10,10,10,10,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.5E3,2.5E2,9.52E2,7.98E2,1.25E3,2.5E2,4.39E2,1.061E3,9.3E1,1.57E2,5.89E2,3.63E2,5.68E2,2.3E2,9.46E2,3.04E2,1.16E2,1.34E2,3.41E2,9.8E1,4.05E2,6.56E2,4.9E1,4.4E1,7E1,8.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0109583E-3,-1.567574E-1,6.316105E-1,-3.2865724E-1,-2.2970917E-2,4.1701043E-1,1.0175642E0,-3.689705E-1,-2.3407024E-1,-9.623233E-2,2.4897201E-1,2.7847615E-1,8.0245346E-1,8.1544006E-1,1.5014293E0,-3.958654E-2,-2.8787524E-2,-2.7674997E-2,-1.1557065E-2,-1.8767843E-2,5.5091474E-3,5.015051E-2,3.8862643E-3,1.1893974E-2,5.038148E-2,5.3916015E-2,1.0474441E-1,5.233214E-2,9.326259E-2,1.3364495E-1,1.9956763E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":11,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.9764178E2,9.200696E1,8.248416E1,6.590393E0,4.4870457E1,3.421765E1,3.369055E1,2.5599976E0,2.6282768E0,2.4558907E1,2.5342981E1,1.705214E1,1.0401009E1,8.20694E0,5.813141E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,5E-1,7.0710677E-1,8.660254E-1,8.660254E-1,8.2E-1,8.660254E-1,8.660254E-1,7.0710677E-1,1.16E0,5E-1,7.5E-1,-2.5881904E-1,8.660254E-1,-3.958654E-2,-2.8787524E-2,-2.7674997E-2,-1.1557065E-2,-1.8767843E-2,5.5091474E-3,5.015051E-2,3.8862643E-3,1.1893974E-2,5.038148E-2,5.3916015E-2,1.0474441E-1,5.233214E-2,9.326259E-2,1.3364495E-1,1.9956763E-1],"split_indices":[0,1,8,8,8,7,4,10,10,7,5,10,4,7,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.75E3,2.25E3,6.44E2,3.56E2,1.225E3,5.25E2,1.773E3,4.77E2,4.75E2,1.69E2,2.53E2,1.03E2,9.17E2,3.08E2,3.85E2,1.4E2,1.105E3,6.68E2,2.16E2,2.61E2,2.79E2,1.96E2,8.3E1,8.6E1,7.4E1,1.79E2,8E1,2.3E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0364258E-3,-2.0805311E-1,3.8924262E-1,-3.1669545E-1,-1.1480343E-1,2.877178E-1,9.9481845E-1,-1.7276868E-1,-3.453197E-1,-2.3853707E-1,-3.826363E-2,2.380662E-2,4.5718393E-1,5.629941E-1,1.2454304E0,1.650782E-2,-2.043333E-2,-4.003577E-2,-3.015661E-2,-2.9050866E-2,-1.8094774E-2,-9.348769E-3,9.728028E-3,-9.824211E-3,2.4073381E-2,2.0346079E-2,6.1795004E-2,9.950125E-2,4.006591E-2,9.5910095E-2,1.4622936E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":12,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.060114E2,3.289908E1,1.07367004E2,6.124161E0,1.6573801E1,6.711984E1,2.6462128E1,2.7103968E0,2.8918152E0,1.9497566E0,8.11566E0,1.5591354E1,3.7156418E1,6.193722E0,8.408417E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,4.5E-1,8.2E-1,1E0,-2.5881904E-1,-2.5881904E-1,-2.5881904E-1,-8.660254E-1,-1.8369701E-16,6.123234E-17,8.660254E-1,5E-1,-1.8369701E-16,-5E-1,-1.8369701E-16,1.650782E-2,-2.043333E-2,-4.003577E-2,-3.015661E-2,-2.9050866E-2,-1.8094774E-2,-9.348769E-3,9.728028E-3,-9.824211E-3,2.4073381E-2,2.0346079E-2,6.1795004E-2,9.950125E-2,4.006591E-2,9.5910095E-2,1.4622936E-1],"split_indices":[11,4,4,2,8,8,8,9,8,10,10,7,10,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.5E3,1.75E3,1.5E3,2.5E2,2.5E2,1.25E3,6.68E2,1.082E3,5.87E2,9.13E2,9.3E1,1.57E2,2.1E1,2.29E2,5.5E2,7E2,3.49E2,3.19E2,7.69E2,3.13E2,3.76E2,2.11E2,3.55E2,5.58E2,2.4E1,6.9E1,7E1,8.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0042014E-3,-1.2953335E-1,5.227622E-1,-2.3710631E-1,8.831167E-3,3.414315E-1,8.489121E-1,-1.3976634E-1,-2.8565076E-1,-7.545319E-2,2.1070449E-1,2.249363E-1,6.656096E-1,6.8874633E-1,1.2319236E0,-2.1387903E-2,-1.8520582E-3,-3.1084383E-2,-1.5894884E-2,-1.5809182E-2,1.284612E-2,4.1594222E-2,5.675774E-3,6.1494033E-3,4.1009057E-2,4.4444177E-2,8.715003E-2,5.4173835E-2,8.921984E-2,1.3010077E-1,4.5243144E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":13,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.4068085E2,5.9554092E1,5.891031E1,1.0596756E1,2.980875E1,2.4208817E1,2.1051788E1,6.7444096E0,4.7417984E0,2.0848394E1,1.6279758E1,1.4379515E1,7.353859E0,7.1135635E0,5.011841E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3E-1,5E-1,1E0,7.0710677E-1,8.660254E-1,8.2E-1,5E-1,4.5E-1,8.660254E-1,3.5E-2,7.5E-1,7.5E-1,5E-1,1E0,-2.1387903E-2,-1.8520582E-3,-3.1084383E-2,-1.5894884E-2,-1.5809182E-2,1.284612E-2,4.1594222E-2,5.675774E-3,6.1494033E-3,4.1009057E-2,4.4444177E-2,8.715003E-2,5.4173835E-2,8.921984E-2,1.3010077E-1,4.5243144E-2],"split_indices":[0,11,8,2,8,7,4,8,4,7,5,4,4,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.25E3,1.75E3,6.44E2,3.56E2,7.5E2,1.5E3,1.235E3,5.15E2,4.75E2,1.69E2,2.53E2,1.03E2,4.65E2,2.85E2,1.25E3,2.5E2,8.79E2,3.56E2,2.2E2,2.95E2,2.53E2,2.22E2,8.3E1,8.6E1,1.49E2,1.04E2,9.4E1,9E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.98079E-4,-1.165865E-1,4.70983E-1,1.13621645E-1,-1.6973007E-1,2.3629306E-1,6.799383E-1,4.8161303E-3,3.7453616E-1,-9.472292E-2,-2.5711697E-1,3.8364682E-2,4.2992014E-1,5.504347E-1,1.0323989E0,-9.797337E-3,2.4809754E-2,9.80777E-3,5.7463426E-2,-1.609337E-2,1.6041909E-3,-2.797843E-2,-1.4311726E-2,-8.112143E-3,2.2833306E-2,3.14445E-2,7.931138E-2,4.2425152E-2,8.62639E-2,6.017375E-2,1.13853686E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":14,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.7642508E2,4.8967842E1,4.8928085E1,2.1318287E1,2.128479E1,1.81109E1,2.3577896E1,1.3302904E1,1.2169102E1,1.28441105E1,3.838646E0,5.3526897E0,9.774231E0,1.4958641E1,5.7599487E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.5E-2,-1.8369701E-16,7.0710677E-1,1E0,7.5E-1,8.2E-1,8.660254E-1,-1.8369701E-16,5E-1,4.5E-1,5E-1,8.660254E-1,8.660254E-1,-7.0710677E-1,-9.797337E-3,2.4809754E-2,9.80777E-3,5.7463426E-2,-1.609337E-2,1.6041909E-3,-2.797843E-2,-1.4311726E-2,-8.112143E-3,2.2833306E-2,3.14445E-2,7.931138E-2,4.2425152E-2,8.62639E-2,6.017375E-2,1.13853686E-1],"split_indices":[0,5,8,8,2,4,4,7,10,8,4,7,10,10,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,7.5E2,3.25E3,4.72E2,5.28E2,5.3E2,2.2E2,1.75E3,1.5E3,2.34E2,2.38E2,3.88E2,1.4E2,3.73E2,1.57E2,9.3E1,1.27E2,1.095E3,6.55E2,1.25E3,2.5E2,1.44E2,9E1,1.82E2,5.6E1,2.78E2,1.1E2,2.9E1,1.11E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.889879E-4,-1.0492148E-1,4.2431247E-1,-1.9317935E-1,8.598447E-3,3.0457473E-1,7.6795805E-1,-2.3078768E-1,-1.0576983E-1,-4.90142E-2,2.2157228E-1,1.8973897E-1,5.720173E-1,5.7310814E-1,1.0802323E0,-2.6275864E-2,-1.6516585E-2,1.7283931E-4,-1.5904918E-2,-1.1129242E-2,1.2958424E-2,3.6062058E-2,2.7973196E-3,5.458655E-3,3.7501827E-2,4.7258865E-2,8.467268E-2,1.1058384E-1,4.8083548E-2,8.974722E-2,1.5050799E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":15,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.2426129E2,4.0087795E1,4.0954575E1,7.3753586E0,2.1495605E1,2.2741173E1,1.5079346E1,3.2567444E0,3.889205E0,1.5352756E1,1.0030931E1,1.3050903E1,5.690872E0,7.382469E0,6.2584534E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3E-1,7.0710677E-1,7.0710677E-1,8.660254E-1,8.660254E-1,5E-1,4.5E-1,1E0,8.660254E-1,1.16E0,5E-1,8.2E-1,-8.660254E-1,8.2E-1,-2.6275864E-2,-1.6516585E-2,1.7283931E-4,-1.5904918E-2,-1.1129242E-2,1.2958424E-2,3.6062058E-2,2.7973196E-3,5.458655E-3,3.7501827E-2,4.7258865E-2,8.467268E-2,1.1058384E-1,4.8083548E-2,8.974722E-2,1.5050799E-1],"split_indices":[0,11,8,8,8,7,10,4,2,10,5,10,4,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.25E3,1.75E3,7.43E2,2.57E2,1.572E3,6.78E2,1.378E3,3.72E2,5.21E2,2.22E2,1.6E2,9.7E1,1.055E3,5.17E2,2.25E2,4.53E2,1.022E3,3.56E2,2.16E2,1.56E2,3.02E2,2.19E2,1.65E2,5.7E1,2.2E1,1.38E2,7E1,2.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0012648E-3,-9.44338E-2,3.8245448E-1,9.868239E-2,-1.3901572E-1,2.1907917E-1,5.91955E-1,-3.4642693E-2,2.8033146E-1,-2.0956562E-1,-7.845921E-2,5.466058E-2,3.9289933E-1,3.176398E-1,7.3085505E-1,3.2847937E-2,-9.377586E-3,1.6052974E-2,5.5570073E-2,-2.391037E-2,-1.2332256E-2,-1.7268294E-2,-2.0182086E-3,-1.42372325E-2,1.6665427E-2,2.5313338E-2,6.0214937E-2,4.2067706E-3,5.0294608E-2,7.8929566E-2,1.5582866E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":16,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.8209258E2,3.446029E1,3.413176E1,1.8197712E1,1.3872665E1,1.6097229E1,1.6456696E1,9.349893E0,1.0401522E1,3.7942429E0,9.611411E0,6.4450617E0,7.8609886E0,7.5875616E0,9.622421E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.5E-2,2.5881904E-1,5E-1,4.5E-1,7.5E-1,-2.5881904E-1,-8.660254E-1,7.0710677E-1,8.660254E-1,-2.5881904E-1,-1.8369701E-16,5E-1,-1.8369701E-16,1E0,3.2847937E-2,-9.377586E-3,1.6052974E-2,5.5570073E-2,-2.391037E-2,-1.2332256E-2,-1.7268294E-2,-2.0182086E-3,-1.42372325E-2,1.6665427E-2,2.5313338E-2,6.0214937E-2,4.2067706E-3,5.0294608E-2,7.8929566E-2,1.5582866E-2],"split_indices":[0,5,8,10,4,4,7,9,8,10,8,10,7,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,7.5E2,3.25E3,5.63E2,4.37E2,4.33E2,3.17E2,1.5E3,1.75E3,2.9E2,2.73E2,1.48E2,2.89E2,6E1,3.73E2,2.22E2,9.5E1,1.116E3,3.84E2,6.68E2,1.082E3,1.05E2,1.85E2,1.65E2,1.08E2,6E1,8.8E1,2.62E2,2.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.56423E-4,-8.498054E-2,3.4444577E-1,8.894075E-2,-1.2513123E-1,1.3116407E-1,4.7979772E-1,-3.112438E-2,2.5252354E-1,-6.888358E-2,-1.9066387E-1,1.8420203E-2,3.3691072E-1,3.690214E-1,7.9576886E-1,2.9616997E-2,-8.4423395E-3,1.648326E-2,5.6658447E-2,-1.0438602E-2,6.5284693E-3,-2.6465297E-2,-1.6242865E-2,-1.10254865E-2,2.0383213E-2,1.7898588E-2,5.167147E-2,2.7245207E-2,6.0834892E-2,1.03200056E-1,6.010274E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":17,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.4765092E2,2.7950354E1,2.883403E1,1.4757941E1,1.1970234E1,9.040496E0,2.112764E1,7.5959015E0,8.664421E0,8.347354E0,3.0927544E0,6.05852E0,3.8260965E0,1.0350079E1,6.6483917E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.5E-2,-2.5881904E-1,5E-1,1E0,5E-1,8.2E-1,-8.660254E-1,8.660254E-1,8.660254E-1,-5E-1,5E-1,7.5E-1,8.660254E-1,1.2246469E-16,2.9616997E-2,-8.4423395E-3,1.648326E-2,5.6658447E-2,-1.0438602E-2,6.5284693E-3,-2.6465297E-2,-1.6242865E-2,-1.10254865E-2,2.0383213E-2,1.7898588E-2,5.167147E-2,2.7245207E-2,6.0834892E-2,1.03200056E-1,6.010274E-2],"split_indices":[0,5,8,10,2,7,4,9,8,8,8,10,4,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,7.5E2,3.25E3,3.89E2,6.11E2,4.33E2,3.17E2,1.75E3,1.5E3,2.52E2,1.37E2,4.54E2,1.57E2,6E1,3.73E2,2.49E2,6.8E1,1.384E3,3.66E2,4.12E2,1.088E3,1.49E2,1.03E2,7.4E1,6.3E1,3.25E2,1.29E2,6.9E1,8.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.363449E-4,-7.647058E-2,3.1033114E-1,2.1978363E-2,-1.3552512E-1,2.1509866E-1,5.8375216E-1,-7.892575E-2,1.5821978E-1,-8.241935E-2,-1.8852255E-1,1.1671467E-1,3.988806E-1,4.2174762E-1,8.4394574E-1,-1.4279964E-2,3.663531E-3,-7.006757E-3,2.3462072E-2,-1.1016165E-2,2.37452E-3,-2.1174066E-2,-1.1581415E-2,4.155327E-3,3.616137E-2,5.4130394E-2,2.6405249E-2,2.0066485E-2,5.939278E-2,6.867046E-2,1.2125235E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":18,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1979418E2,2.3264215E1,2.5939026E1,2.0647217E1,7.023449E0,1.3405857E1,1.0519417E1,6.375323E0,1.1161472E1,3.6871223E0,2.0873566E0,8.930753E0,4.830559E0,6.0094585E0,4.8470078E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1.22E0,7.0710677E-1,5E-1,1E0,7.0710677E-1,5E-1,5E-1,-5E-1,8.660254E-1,8.660254E-1,8.2E-1,1.2246469E-16,0E0,8.2E-1,-1.4279964E-2,3.663531E-3,-7.006757E-3,2.3462072E-2,-1.1016165E-2,2.37452E-3,-2.1174066E-2,-1.1581415E-2,4.155327E-3,3.616137E-2,5.4130394E-2,2.6405249E-2,2.0066485E-2,5.939278E-2,6.867046E-2,1.2125235E-1],"split_indices":[0,5,8,10,2,7,10,8,8,8,10,4,9,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.5E3,2.5E3,7.43E2,2.57E2,8.62E2,6.38E2,1.25E3,1.25E3,4.85E2,2.58E2,1.6E2,9.7E1,5.55E2,3.07E2,1.6E2,4.78E2,9.91E2,2.59E2,9.46E2,3.04E2,3.72E2,1.13E2,1.24E2,1.34E2,7.1E1,8.9E1,7E1,2.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.136207E-4,-1.0273846E-1,1.9335909E-1,-1.3354655E-1,-1.6384602E-2,1.3650674E-1,5.325703E-1,-1.5861894E-1,-3.981803E-2,1.0641236E-1,-5.521684E-2,-5.9161417E-2,2.1744598E-1,1.9542949E-1,6.4933765E-1,-1.9656671E-2,-1.08754905E-2,2.770614E-3,-1.1387428E-2,-1.7951192E-2,1.6002782E-2,-9.918074E-3,1.0856332E-3,-8.5405065E-3,3.0234853E-2,1.0515638E-2,3.549392E-2,1.5687364E-3,8.055069E-2,8.354532E-2,3.216423E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":19,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.977668E1,8.646763E0,3.369526E1,5.624275E0,4.087695E0,2.3784552E1,9.754219E0,3.554943E0,2.5384524E0,3.1866987E0,1.8921236E0,4.2002506E0,1.635896E1,7.2246985E0,1.1075287E1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,8.660254E-1,8.2E-1,8.660254E-1,1.22E0,-5E-1,-5E-1,5E-1,1E0,-7.0710677E-1,5E-1,1E0,5E-1,8.660254E-1,8.660254E-1,-1.9656671E-2,-1.08754905E-2,2.770614E-3,-1.1387428E-2,-1.7951192E-2,1.6002782E-2,-9.918074E-3,1.0856332E-3,-8.5405065E-3,3.0234853E-2,1.0515638E-2,3.549392E-2,1.5687364E-3,8.055069E-2,8.354532E-2,3.216423E-2],"split_indices":[11,10,4,8,5,8,10,7,2,8,8,10,10,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,2.395E3,8.55E2,1.5E3,2.5E2,1.889E3,5.06E2,2.05E2,6.5E2,4.39E2,1.061E3,6.5E1,1.85E2,1.071E3,8.18E2,2.65E2,2.41E2,3.2E1,1.73E2,3.9E2,2.6E2,4.1E2,2.9E1,5.85E2,4.76E2,5.1E1,1.4E1,1.17E2,6.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[8.6536066E-4,-6.3033424E-2,2.5626814E-1,-1.4072156E-2,-1.445718E-1,1.7325106E-1,4.9467286E-1,-1.2613158E-1,3.3360314E-2,-1.6465575E-1,-7.308276E-2,5.6533623E-2,2.9494363E-1,3.567185E-1,7.1626455E-1,-1.6256135E-2,-4.0836744E-3,-7.332705E-3,8.856226E-3,-1.952367E-2,-1.2532304E-2,-1.2873645E-2,8.374412E-6,5.381868E-2,4.7142012E-4,1.7639069E-2,4.6677507E-2,8.20396E-2,2.7742857E-2,8.222472E-2,3.1276796E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":20,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.16321E1,1.5970846E1,1.9725746E1,1.329766E1,2.143076E0,1.0550838E1,7.6314354E0,2.30517E0,1.0359971E1,1.3840485E0,1.347838E0,9.506838E0,7.332758E0,5.691555E0,3.9336586E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,7.0710677E-1,-5E-1,8.660254E-1,7.5E-1,5E-1,5E-1,-5E-1,5E-1,5E-1,-8.660254E-1,5E-1,-8.660254E-1,1.66E0,-1.6256135E-2,-4.0836744E-3,-7.332705E-3,8.856226E-3,-1.952367E-2,-1.2532304E-2,-1.2873645E-2,8.374412E-6,5.381868E-2,4.7142012E-4,1.7639069E-2,4.6677507E-2,8.20396E-2,2.7742857E-2,8.222472E-2,3.1276796E-2],"split_indices":[0,2,8,8,8,4,10,7,7,7,10,9,10,9,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.5E3,1.5E3,7.43E2,2.57E2,7.43E2,1.757E3,1.17E3,3.3E2,3.8E2,3.63E2,1.6E2,9.7E1,5.2E2,2.23E2,5.99E2,1.158E3,6.56E2,5.14E2,1.87E2,1.43E2,3.6E1,3.44E2,2.16E2,1.47E2,2.2E1,1.38E2,7.6E1,2.1E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[8.344413E-4,-8.507347E-2,1.6033518E-1,-1.1222093E-1,-8.98658E-3,-2.520675E-2,2.3534587E-1,-1.3267925E-1,-3.573484E-2,4.5024537E-2,-8.039156E-2,-1.8255372E-1,3.2116834E-2,1.8138847E-1,5.4216E-1,-1.6151221E-2,-9.477741E-3,-1.1079415E-2,1.3120994E-3,1.6836E-2,-5.576785E-4,-1.0816628E-2,6.9118914E-4,-2.3184728E-2,1.7323954E-2,-8.8023156E-4,2.9499382E-2,3.1921223E-3,2.6949951E-2,1.1894169E-1,4.7842737E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":21,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.853922E1,6.7141457E0,2.4375702E1,3.744461E0,3.304923E0,4.560808E0,2.0545609E1,2.050129E0,1.860666E0,3.0465162E0,8.955095E-1,2.407837E0,3.9933324E0,1.3977638E1,7.1037025E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,8.660254E-1,-5E-1,8.660254E-1,1E0,-5E-1,8.2E-1,5E-1,3.5E-1,1.22E0,8.660254E-1,7.0710677E-1,8.2E-1,-5E-1,-8.660254E-1,-1.6151221E-2,-9.477741E-3,-1.1079415E-2,1.3120994E-3,1.6836E-2,-5.576785E-4,-1.0816628E-2,6.9118914E-4,-2.3184728E-2,1.7323954E-2,-8.8023156E-4,2.9499382E-2,3.1921223E-3,2.6949951E-2,1.1894169E-1,4.7842737E-2],"split_indices":[11,10,8,8,2,10,4,7,4,5,8,7,4,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,2.395E3,8.55E2,5.04E2,1.246E3,1.889E3,5.06E2,4.87E2,3.68E2,1.34E2,3.7E2,1.061E3,1.85E2,1.071E3,8.18E2,1.99E2,3.07E2,1.41E2,3.46E2,2.79E2,8.9E1,1.18E2,1.6E1,3.21E2,4.9E1,3.94E2,6.67E2,1.5E1,1.7E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.890869E-4,-5.1975336E-2,2.1168786E-1,1.626219E-2,-9.290799E-2,1.411602E-1,4.1424942E-1,-6.317787E-2,1.2352433E-1,-5.458226E-2,-1.3115944E-1,7.580862E-2,3.1975722E-1,3.6693636E-1,9.900857E-1,1.052444E-2,-8.97337E-3,6.969241E-3,3.0482188E-2,-6.881542E-3,9.668915E-3,-1.8679552E-2,-1.1027411E-2,3.8812563E-2,2.9064263E-3,1.632385E-3,3.7998E-2,2.6538474E-2,6.0020424E-2,8.032017E-2,1.4901005E-1],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":22,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.566189E1,1.1176876E1,1.4242004E1,1.2797691E1,3.6593437E0,8.659427E0,6.665806E0,3.8692915E0,6.2151375E0,2.7001433E0,1.4330368E0,7.9598055E0,3.6302433E0,5.5260086E0,5.78598E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1.22E0,7.0710677E-1,5E-1,1E0,8.660254E-1,1E0,-8.660254E-1,8.660254E-1,1E0,-5E-1,-8.660254E-1,-8.660254E-1,8.2E-1,8.2E-1,1.052444E-2,-8.97337E-3,6.969241E-3,3.0482188E-2,-6.881542E-3,9.668915E-3,-1.8679552E-2,-1.1027411E-2,3.8812563E-2,2.9064263E-3,1.632385E-3,3.7998E-2,2.6538474E-2,6.0020424E-2,8.032017E-2,1.4901005E-1],"split_indices":[0,5,8,10,2,10,10,9,8,10,9,9,8,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.5E3,2.5E3,7.43E2,2.57E2,8.62E2,6.38E2,1.25E3,1.25E3,5.45E2,1.98E2,2.39E2,1.8E1,1.17E2,7.45E2,4.93E2,1.45E2,1.143E3,1.07E2,3.39E2,9.11E2,7E1,4.75E2,3.3E1,1.65E2,1.68E2,7.1E1,1.5E1,3E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.9204416E-4,-6.983874E-2,1.3192847E-1,-1.3084464E-1,-4.5116343E-2,2.8784836E-3,2.138623E-1,-1.545521E-1,-7.108773E-2,-7.059859E-2,2.054646E-2,-7.063884E-2,1.373941E-1,1.6769549E-1,4.795749E-1,-1.9341046E-2,-1.3169631E-2,-1.10085895E-2,2.2714786E-4,-1.0519608E-2,-3.9348914E-3,1.3409279E-2,-1.6033718E-3,-1.2172134E-2,8.995249E-3,5.312754E-2,9.738145E-3,3.2482196E-3,2.535063E-2,6.4123176E-2,3.0980116E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":23,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.6329826E1,4.897295E0,1.8513689E1,1.3164444E0,3.87499E0,6.7442703E0,1.3057636E1,5.69582E-1,7.6696444E-1,1.7992363E0,2.6936476E0,3.6286507E0,3.7464805E0,1.0596693E1,4.1376724E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,-5E-1,-2.5881904E-1,5E-1,8.660254E-1,5E-1,8.2E-1,3.5E-1,6E-1,4.5E-1,1.22E0,8.660254E-1,-8.660254E-1,-1.8369701E-16,5E-1,-1.9341046E-2,-1.3169631E-2,-1.10085895E-2,2.2714786E-4,-1.0519608E-2,-3.9348914E-3,1.3409279E-2,-1.6033718E-3,-1.2172134E-2,8.995249E-3,5.312754E-2,9.738145E-3,3.2482196E-3,2.535063E-2,6.4123176E-2,3.0980116E-2],"split_indices":[11,8,8,7,10,7,4,4,4,4,5,10,9,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,9.36E2,2.314E3,6.8E2,1.07E3,6.69E2,2.67E2,1.667E3,6.47E2,4.4E2,2.4E2,9.13E2,1.57E2,2.45E2,4.24E2,1.74E2,9.3E1,7.9E2,8.77E2,1.57E2,4.9E2,3.34E2,1.06E2,2.1E1,2.19E2,3.55E2,5.58E2,7.9E1,7.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.4033154E-4,-4.3001704E-2,1.7557664E-1,-6.666347E-2,4.3881893E-2,6.571254E-2,2.850903E-1,-1.06657654E-1,-1.4768333E-2,2.2815642E-1,1.253371E-3,5.0452113E-1,2.0240638E-2,1.8057817E-1,4.4411352E-1,-2.4130143E-2,-9.462947E-3,-6.8758163E-3,5.587959E-3,4.4954624E-2,8.496738E-3,4.4141277E-3,-4.630287E-3,-3.4388595E-3,5.8422472E-2,-7.3913136E-3,2.2618392E-2,3.8775809E-3,3.8893145E-2,3.549688E-2,6.940999E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":24,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.825368E1,8.228258E0,1.2024914E1,6.5258827E0,6.7317495E0,9.986472E0,8.246353E0,2.8534355E0,5.229391E0,5.0655994E0,1.4236364E0,2.0388832E0,8.839321E0,8.966594E0,4.1660385E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,7.5E-1,5E-1,3.5E-2,-8.660254E-1,5E-1,-8.660254E-1,3E-1,0E0,1E0,-8.660254E-1,8.660254E-1,5E-1,7.0710677E-1,-2.4130143E-2,-9.462947E-3,-6.8758163E-3,5.587959E-3,4.4954624E-2,8.496738E-3,4.4141277E-3,-4.630287E-3,-3.4388595E-3,5.8422472E-2,-7.3913136E-3,2.2618392E-2,3.8775809E-3,3.8893145E-2,3.549688E-2,6.940999E-2],"split_indices":[0,8,4,7,5,9,10,10,11,9,2,8,10,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,3.144E3,8.56E2,5E2,5E2,1.775E3,1.369E3,1.6E2,6.96E2,4.6E1,4.54E2,3.03E2,1.97E2,1.44E2,1.631E3,7.76E2,5.93E2,6.2E1,9.8E1,3.66E2,3.3E2,6E0,4E1,3.12E2,1.42E2,1.81E2,1.22E2,1.47E2,5E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.1353506E-4,-5.718004E-2,1.0820142E-1,-7.763785E-2,1.4952727E-4,5.224859E-2,2.5710458E-1,-9.356501E-2,-1.8111296E-2,4.237461E-2,-5.569327E-2,-1.5121193E-2,1.7564374E-1,1.577894E-1,4.0294418E-1,-1.6611364E-2,-8.49771E-3,-7.3774606E-3,1.8092511E-3,-2.4139308E-3,1.1647945E-2,-1.3026819E-2,-2.7102462E-3,-6.226068E-3,1.2322663E-2,1.0851237E-2,2.6130734E-2,5.466308E-2,9.960971E-3,3.466651E-2,7.222079E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":25,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.11267E1,3.8129072E0,1.4575117E1,2.269926E0,2.0207796E0,1.0593552E1,6.8598137E0,1.1634312E0,1.0230532E0,2.4081655E0,7.8323543E-1,5.388029E0,2.5594645E0,6.415634E0,3.217434E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,8.660254E-1,7.0710677E-1,8.660254E-1,1E0,7.0710677E-1,5E-1,-8.660254E-1,3.5E-1,2.5881904E-1,-5E-1,8.660254E-1,5E-1,-8.660254E-1,8.2E-1,-1.6611364E-2,-8.49771E-3,-7.3774606E-3,1.8092511E-3,-2.4139308E-3,1.1647945E-2,-1.3026819E-2,-2.7102462E-3,-6.226068E-3,1.2322663E-2,1.0851237E-2,2.6130734E-2,5.466308E-2,9.960971E-3,3.466651E-2,7.222079E-2],"split_indices":[11,10,8,8,2,7,10,10,4,8,7,10,10,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,2.395E3,8.55E2,1.273E3,4.77E2,1.889E3,5.06E2,4.87E2,3.68E2,8.24E2,4.49E2,2.85E2,1.92E2,1.98E2,1.691E3,1.99E2,3.07E2,2.57E2,2.3E2,1.01E2,2.67E2,6.15E2,2.09E2,2.53E2,1.96E2,3.6E1,2.49E2,1.65E2,2.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[6.7766424E-4,-3.601226E-2,1.4732672E-1,-9.781731E-2,-1.0895374E-2,4.939327E-2,2.449661E-1,-2.159295E-2,-1.0890095E-1,4.777249E-2,-4.6162557E-2,4.4401708E-1,8.521373E-3,1.2965122E-1,3.4473744E-1,-2.332314E-2,8.551327E-3,-1.0159395E-2,-2.0119904E-2,-2.4845263E-3,1.3727002E-2,-5.69027E-3,5.9883124E-3,-2.61043E-3,5.1345207E-2,-7.108204E-3,1.8269865E-2,-1.1509862E-5,3.3727862E-2,2.5967358E-2,5.4139167E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":26,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.6913403E1,6.2098875E0,9.559622E0,9.74288E-1,5.8907223E0,8.076858E0,5.719368E0,3.3747776E0,6.6005135E-1,6.9509583E0,2.0284536E0,1.547617E0,6.3216095E0,6.30471E0,4.3425674E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-5E-1,7.5E-1,2.2E-2,1.22E0,-8.660254E-1,0E0,-2.5881904E-1,7E-1,5E-1,1E0,-8.660254E-1,8.660254E-1,5E-1,7.0710677E-1,-2.332314E-2,8.551327E-3,-1.0159395E-2,-2.0119904E-2,-2.4845263E-3,1.3727002E-2,-5.69027E-3,5.9883124E-3,-2.61043E-3,5.1345207E-2,-7.108204E-3,1.8269865E-2,-1.1509862E-5,3.3727862E-2,2.5967358E-2,5.4139167E-2],"split_indices":[0,8,4,5,5,9,7,7,4,10,10,8,10,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.155E3,2.845E3,5E2,5E2,1.47E2,1.008E3,1.068E3,1.777E3,4.6E1,4.54E2,2.33E2,2.67E2,4.9E1,9.8E1,9.36E2,7.2E1,5.9E2,4.78E2,1.614E3,1.63E2,6E0,4E1,3.12E2,1.42E2,1.44E2,8.9E1,1.88E2,7.9E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[6.379363E-4,-3.2419413E-2,1.3276762E-1,-4.5057293E-3,-7.890822E-2,1.6155568E-1,-1.4348012E-1,-6.0858537E-2,3.0580653E-2,-1.12872005E-1,-6.0895897E-2,5.4248497E-2,2.4423553E-1,-1.5978883E-1,4.099165E-1,-1.8090595E-2,-4.8839105E-3,-4.620683E-3,6.5540816E-3,-1.6479608E-2,-1.05336895E-2,-9.75119E-3,-3.3520688E-3,-6.7351544E-3,1.5903799E-2,1.734158E-2,4.8184562E-2,-2.4014836E-2,-3.1673107E-3,7.660425E-3,5.3827047E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":27,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.1847956E1,5.191638E0,7.9837685E0,4.946879E0,9.113884E-1,8.033783E0,9.2289245E-1,1.3763502E0,4.142532E0,1.8570185E-1,9.8206234E-1,5.0567036E0,8.532112E0,9.498584E-1,8.711207E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,1E0,-2.5881904E-1,-2.5881904E-1,-1.8369701E-16,1E0,-8.660254E-1,-5E-1,-9.659258E-1,0E0,7.5E-1,8.2E-1,5E-1,7.5E-1,-1.8090595E-2,-4.8839105E-3,-4.620683E-3,6.5540816E-3,-1.6479608E-2,-1.05336895E-2,-9.75119E-3,-3.3520688E-3,-6.7351544E-3,1.5903799E-2,1.734158E-2,4.8184562E-2,-2.4014836E-2,-3.1673107E-3,7.660425E-3,5.3827047E-2],"split_indices":[0,2,9,8,8,10,8,10,7,8,7,4,4,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.5E3,1.5E3,9.06E2,9.4E1,9.59E2,1.541E3,5.18E2,9.82E2,3.95E2,5.11E2,9.2E1,2E0,8.6E1,8.73E2,4.82E2,1.059E3,6.3E1,4.55E2,4.19E2,5.63E2,1.83E2,2.12E2,3.95E2,1.16E2,5.6E1,3.6E1,1E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.8369624E-4,-2.9192772E-2,1.19599745E-1,-4.9785864E-2,2.8880876E-2,2.7045261E-2,2.0213032E-1,-6.723585E-2,1.56124495E-2,1.0147484E-1,-1.5545051E-2,-4.855993E-2,1.5038349E-1,2.3181187E-1,-1.0719566E-1,-8.468068E-3,-1.7187247E-3,2.4968978E-2,-6.14186E-4,1.9445041E-3,1.6911667E-2,-4.691686E-3,2.4907577E-3,-1.0373626E-2,1.1990177E-2,4.848896E-3,2.5173927E-2,1.2133953E-2,3.142265E-2,-1.3792129E-2,3.894206E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":28,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.7726423E1,4.786297E0,7.640747E0,3.3721533E0,3.381434E0,4.4180326E0,4.8817444E0,2.0345898E0,3.173968E0,2.2050729E0,8.273346E-1,2.745197E0,1.8467612E0,4.3593636E0,7.7087504E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,-1.8369701E-16,8.660254E-1,1.22E0,5E-1,1E0,8.660254E-1,1.2E-2,0E0,1.62E0,8.2E-1,7.5E-1,-1.8369701E-16,1E0,-8.468068E-3,-1.7187247E-3,2.4968978E-2,-6.14186E-4,1.9445041E-3,1.6911667E-2,-4.691686E-3,2.4907577E-3,-1.0373626E-2,1.1990177E-2,4.848896E-3,2.5173927E-2,1.2133953E-2,3.142265E-2,-1.3792129E-2,3.894206E-2],"split_indices":[0,10,8,8,5,7,9,7,5,7,5,4,4,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.953E3,1.047E3,4.72E2,5.28E2,2.331E3,6.22E2,3.97E2,6.5E2,2.93E2,1.79E2,4.82E2,4.6E1,1.728E3,6.03E2,5.2E1,5.7E2,1.8E2,2.17E2,3.66E2,2.84E2,2.21E2,7.2E1,9E1,8.9E1,2.07E2,2.75E2,4.4E1,2E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.515536E-4,-3.932028E-2,7.457941E-2,-1.5717208E-2,-6.682838E-2,2.9163068E-2,1.9547029E-1,-1.6005723E-1,-2.9768355E-3,-8.059999E-2,-3.4891203E-2,-2.3886109E-2,1.2635508E-1,2.906067E-1,1.0606714E-1,-9.755878E-3,-2.9260814E-2,-1.3859331E-3,1.015004E-2,-9.691661E-3,-4.8200656E-3,-7.922164E-3,-6.8014214E-4,-1.399778E-2,1.3487198E-3,1.9144593E-2,5.982842E-3,5.5661853E-3,4.0320415E-2,1.4100203E-3,2.3118308E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":29,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.4764016E1,2.1097445E0,9.608029E0,3.2195175E0,6.573672E-1,6.571707E0,4.0348034E0,1.147814E0,1.8319333E0,5.493517E-1,5.6479675E-1,3.5813398E0,1.937171E0,6.0884743E0,2.8503592E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,7.0710677E-1,-8.660254E-1,7.0710677E-1,7.0710677E-1,1.2246469E-16,6.5E-1,1E0,3.5E-1,0E0,-5E-1,1.2246469E-16,-1.8369701E-16,1.2246469E-16,-9.755878E-3,-2.9260814E-2,-1.3859331E-3,1.015004E-2,-9.691661E-3,-4.8200656E-3,-7.922164E-3,-6.8014214E-4,-1.399778E-2,1.3487198E-3,1.9144593E-2,5.982842E-3,5.5661853E-3,4.0320415E-2,1.4100203E-3,2.3118308E-2],"split_indices":[11,2,8,10,8,7,9,4,10,4,7,10,9,10,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.25E3,1.75E3,1.75E3,1.5E3,1.273E3,4.77E2,1.41E2,1.609E3,1.047E3,4.53E2,8.24E2,4.49E2,2.3E2,2.47E2,9.7E1,4.4E1,1.458E3,1.51E2,6.95E2,3.52E2,1.75E2,2.78E2,2E2,6.24E2,2.26E2,2.23E2,7.5E1,1.55E2,1.43E2,1.04E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.023009E-4,-1.1160491E-2,2.2125699E-1,-3.2959357E-2,4.97217E-2,7.284653E-1,1.7177941E-1,-5.688164E-2,8.454517E-3,4.497003E-3,1.4686395E-1,4.825977E-1,9.7524667E-1,6.66597E-2,3.1781465E-1,-7.836764E-3,-2.356361E-3,-2.6050957E-3,9.261411E-3,-1.0615385E-2,1.7313969E-3,6.385121E-3,2.208761E-2,2.6866928E-2,5.8271933E-2,6.1244972E-2,2.1202098E-1,-1.3132997E-2,1.5748654E-2,2.362657E-2,5.0742406E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":30,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.2878123E1,6.3069882E0,6.1738205E0,3.4669907E0,5.504056E0,8.642101E-1,3.5095863E0,1.5859551E0,3.725298E0,1.2158242E0,2.4311895E0,1.2188625E-1,2.8553696E0,2.4483576E0,1.3645077E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,8.660254E-1,-8.660254E-1,5E-1,3.5E-1,1.2246469E-16,5E-1,5E-1,3.5E-1,-8.660254E-1,0E0,-2.5881904E-1,7.0710677E-1,-2.5881904E-1,7.0710677E-1,-7.836764E-3,-2.356361E-3,-2.6050957E-3,9.261411E-3,-1.0615385E-2,1.7313969E-3,6.385121E-3,2.208761E-2,2.6866928E-2,5.8271933E-2,6.1244972E-2,2.1202098E-1,-1.3132997E-2,1.5748654E-2,2.362657E-2,5.0742406E-2],"split_indices":[4,10,9,8,11,7,10,7,11,8,7,8,8,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,3.498E3,1.252E3,2.1E1,2.29E2,2.217E3,1.281E3,8.55E2,3.97E2,1.2E1,9E0,1.34E2,9.5E1,1.347E3,8.7E2,9.09E2,3.72E2,8.8E1,7.67E2,1.88E2,2.09E2,5E0,7E0,8E0,1E0,4.2E1,9.2E1,6.8E1,2.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.423476E-4,-2.262888E-2,9.315727E-2,-4.633003E-2,9.380267E-3,2.0247476E-2,1.6588113E-1,-1.801168E-2,-6.7924164E-2,7.154507E-2,-2.7927421E-2,3.539261E-1,-1.42649235E-2,8.082274E-2,2.3952955E-1,-6.188852E-3,4.012365E-3,-8.4902905E-3,-7.192492E-4,3.8732109E-3,1.8207973E-2,-9.401208E-3,1.5419861E-3,3.9486185E-2,-1.8484874E-2,-1.2822814E-2,4.679372E-3,-1.3460808E-3,2.3182599E-2,1.7177885E-2,3.9659653E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":31,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.07342615E1,3.0358078E0,5.304224E0,1.4046388E0,3.9516387E0,5.7745895E0,3.119114E0,2.5430744E0,1.3440051E0,2.3105805E0,3.052238E0,1.109582E0,3.1720905E0,3.3346074E0,2.7837696E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,5E-1,7.5E-1,0E0,1.22E0,-8.660254E-1,0E0,5.8E-1,8.660254E-1,8.660254E-1,0E0,1E0,0E0,5E-1,7.0710677E-1,-6.188852E-3,4.012365E-3,-8.4902905E-3,-7.192492E-4,3.8732109E-3,1.8207973E-2,-9.401208E-3,1.5419861E-3,3.9486185E-2,-1.8484874E-2,-1.2822814E-2,4.679372E-3,-1.3460808E-3,2.3182599E-2,1.7177885E-2,3.9659653E-2],"split_indices":[0,10,4,9,5,9,7,4,8,8,9,7,9,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,2.298E3,1.702E3,5E2,5E2,9.95E2,1.303E3,6.38E2,1.064E3,4.6E1,4.54E2,2.33E2,2.67E2,5.67E2,4.28E2,1.018E3,2.85E2,4.93E2,1.45E2,4.21E2,6.43E2,4.3E1,3E0,1.58E2,2.96E2,1.44E2,8.9E1,1.88E2,7.9E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.0698995E-4,-9.181349E-3,1.8388861E-1,-5.791471E-2,1.0684259E-2,6.608671E-1,1.3746507E-1,-8.003236E-2,-4.689352E-3,-1.5575901E-2,6.791739E-2,4.3582112E-1,8.873402E-1,4.725728E-2,2.6288784E-1,-8.835356E-3,3.553368E-3,6.448597E-4,-2.5927598E-2,-1.0460357E-2,-8.111451E-4,1.1358095E-3,1.3725876E-2,6.2911273E-3,4.6165433E-2,5.427403E-2,1.9943695E-1,-1.2898725E-2,1.20200245E-2,4.1166257E-2,1.6261114E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":32,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.886781E0,4.6001463E0,5.4670553E0,1.6194792E0,5.075021E0,7.345495E-1,2.5898223E0,9.378619E-1,1.1500789E0,1.5375676E0,4.163497E0,9.619188E-2,2.732397E0,1.7510369E0,1.3652482E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,-5E-1,-8.660254E-1,5E-1,3.5E-1,1.2246469E-16,5E-1,1E0,7.5E-1,-8.660254E-1,5E-1,-9.659258E-1,7.0710677E-1,-5E-1,0E0,-8.835356E-3,3.553368E-3,6.448597E-4,-2.5927598E-2,-1.0460357E-2,-8.111451E-4,1.1358095E-3,1.3725876E-2,6.2911273E-3,4.6165433E-2,5.427403E-2,1.9943695E-1,-1.2898725E-2,1.20200245E-2,4.1166257E-2,1.6261114E-2],"split_indices":[4,8,9,7,11,7,10,10,11,10,10,7,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,1.375E3,3.375E3,2.1E1,2.29E2,9.71E2,4.04E2,2.314E3,1.061E3,1.2E1,9E0,1.34E2,9.5E1,9.06E2,6.5E1,3.88E2,1.6E1,1.78E2,2.136E3,5.85E2,4.76E2,1E0,1.1E1,8E0,1E0,3.9E1,9.5E1,3.7E1,5.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.234223E-4,-1.8666709E-2,7.722591E-2,-3.1350404E-2,2.7901426E-2,9.9472925E-2,-1.3598739E-1,-5.539095E-2,-1.6255418E-4,1.00669675E-1,-7.3979003E-3,5.752275E-2,2.1987866E-1,-1.4971888E-1,3.3501768E-1,-1.4005353E-2,-4.78349E-3,-2.2757973E-3,6.165206E-3,2.0644514E-2,3.983299E-3,-3.074672E-3,3.2460594E-3,-6.987763E-3,1.0234228E-2,1.3300431E-2,3.8864475E-2,-1.8647945E-2,1.3810092E-3,4.505968E-3,4.5746684E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":33,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.3625684E0,2.3640895E0,4.761628E0,2.3580267E0,2.202095E0,4.5686464E0,6.645801E-1,1.1294332E0,1.9149189E0,1.7935846E0,5.389131E-1,3.8557088E0,3.3790865E0,5.6163716E-1,8.5902035E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,5E-1,1.16E0,7.0710677E-1,1E0,-8.660254E-1,8.660254E-1,0E0,1.62E0,-5E-1,5E-1,8.660254E-1,7.5E-1,-1.4005353E-2,-4.78349E-3,-2.2757973E-3,6.165206E-3,2.0644514E-2,3.983299E-3,-3.074672E-3,3.2460594E-3,-6.987763E-3,1.0234228E-2,1.3300431E-2,3.8864475E-2,-1.8647945E-2,1.3810092E-3,4.505968E-3,4.5746684E-2],"split_indices":[0,8,9,7,5,8,8,10,10,9,5,10,7,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,3.144E3,8.56E2,9.06E2,9.4E1,1.775E3,1.369E3,2.79E2,5.77E2,6.73E2,2.33E2,9.2E1,2E0,1.44E2,1.631E3,1.003E3,3.66E2,1.01E2,1.78E2,3.64E2,2.13E2,1.75E2,4.98E2,1.55E2,7.8E1,7.5E1,1.7E1,1E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.9074844E-4,-7.864024E-3,1.5863031E-1,-2.4250193E-2,3.7900597E-2,5.970691E-1,1.16002984E-1,-5.700164E-2,-5.8395164E-3,4.9519907E-3,1.0866971E-1,3.858837E-1,8.1190324E-1,3.8480528E-2,2.2381058E-1,2.4333836E-3,-6.861144E-3,-3.3225303E-3,3.294363E-3,-2.7751406E-3,3.849412E-3,3.7858875E-3,1.7188199E-2,2.0040227E-2,4.7675934E-2,4.8539948E-2,1.8752186E-1,-1.2098852E-2,1.1179975E-2,3.575247E-2,1.3389622E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":34,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.6086683E0,3.5637262E0,4.6217957E0,2.109481E0,2.9211364E0,6.8483543E-1,1.913615E0,1.1905293E0,2.3812761E0,9.400503E-1,1.7749863E0,1.2358093E-1,2.561535E0,1.5919664E0,1.1063194E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,8.660254E-1,-8.660254E-1,-2.5881904E-1,3.5E-1,1.2246469E-16,5E-1,-9.659258E-1,5E-1,2.5881904E-1,0E0,-2.5881904E-1,7.0710677E-1,-2.5881904E-1,0E0,2.4333836E-3,-6.861144E-3,-3.3225303E-3,3.294363E-3,-2.7751406E-3,3.849412E-3,3.7858875E-3,1.7188199E-2,2.0040227E-2,4.7675934E-2,4.8539948E-2,1.8752186E-1,-1.2098852E-2,1.1179975E-2,3.575247E-2,1.3389622E-2],"split_indices":[4,10,9,7,11,7,10,7,8,8,7,8,8,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,3.498E3,1.252E3,2.1E1,2.29E2,1.258E3,2.24E3,8.55E2,3.97E2,1.2E1,9E0,1.34E2,9.5E1,1.57E2,1.101E3,1.313E3,9.27E2,4.33E2,4.22E2,1.88E2,2.09E2,5E0,7E0,8E0,1E0,4.2E1,9.2E1,3.7E1,5.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.155775E-4,-1.3774644E-2,8.140401E-2,-4.5150816E-2,8.219288E-3,-6.812718E-2,1.1977591E-1,-6.49547E-2,-1.1475684E-2,3.4802705E-2,-4.296729E-2,-1.7184578E-1,-1.1999138E-2,1.9923763E-1,6.251171E-2,-5.063098E-3,-1.1263269E-2,-5.200926E-3,3.9336192E-3,5.170991E-3,-6.543701E-3,-6.558038E-3,4.7086348E-4,-4.463007E-3,-3.176308E-2,-1.4344825E-2,8.021523E-3,1.3474384E-2,3.885328E-2,-2.4286367E-3,1.71306E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":35,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.781845E0,2.933924E0,4.3172445E0,1.1676607E0,3.4032807E0,8.944523E-1,2.7086325E0,7.475648E-1,1.3407775E0,2.792981E0,9.220841E-1,9.873159E-1,1.235778E0,2.9997377E0,3.2998142E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.5E-1,-1.8369701E-16,-7.0710677E-1,5E-1,1E0,1E0,0E0,3.5E-1,3E-1,1E0,3.5E-1,6.123234E-17,0E0,8.660254E-1,5E-1,-5.063098E-3,-1.1263269E-2,-5.200926E-3,3.9336192E-3,5.170991E-3,-6.543701E-3,-6.558038E-3,4.7086348E-4,-4.463007E-3,-3.176308E-2,-1.4344825E-2,8.021523E-3,1.3474384E-2,3.885328E-2,-2.4286367E-3,1.71306E-2],"split_indices":[4,10,8,8,2,0,9,11,11,9,4,10,7,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.25E3,7.5E2,1.751E3,2.499E3,1.53E2,5.97E2,1.102E3,6.49E2,1.645E3,8.54E2,5.3E1,1E2,2.49E2,3.48E2,8.49E2,2.53E2,3.61E2,2.88E2,1.408E3,2.37E2,5.79E2,2.75E2,2.9E1,2.4E1,4.1E1,5.9E1,1.87E2,6.2E1,1.94E2,1.54E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.6391026E-4,-1.740934E-2,5.4054715E-2,-5.1628202E-2,-3.589825E-3,1.2782882E-1,3.2745977E-3,-6.838056E-2,-1.114342E-2,-9.990642E-2,4.493322E-3,8.6073674E-2,2.806521E-1,-6.906648E-2,6.8041034E-2,-4.9611498E-3,-9.734121E-3,-2.220172E-3,1.1890559E-2,1.1700045E-2,-1.3877638E-2,-2.8603266E-3,3.4712926E-3,7.076292E-3,4.0877182E-2,2.1318847E-2,8.6231105E-2,1.255914E-2,-8.8987E-3,9.0859365E-4,1.7177124E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":36,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.791108E0,1.7736179E0,4.68615E0,7.310324E-1,2.0814896E0,3.2302341E0,3.4811726E0,4.099102E-1,4.5852423E-1,1.7614877E0,2.4684017E0,1.9572563E0,4.093416E0,1.3722434E0,2.3956852E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.75E-1,-5E-1,0E0,5E-1,-8.660254E-1,8.660254E-1,0E0,0E0,1E0,2.5E-1,5.5E-1,1E0,9.659258E-1,-9.659258E-1,5E-1,-4.9611498E-3,-9.734121E-3,-2.220172E-3,1.1890559E-2,1.1700045E-2,-1.3877638E-2,-2.8603266E-3,3.4712926E-3,7.076292E-3,4.0877182E-2,2.1318847E-2,8.6231105E-2,1.255914E-2,-8.8987E-3,9.0859365E-4,1.7177124E-2],"split_indices":[11,8,9,7,10,10,7,7,9,4,4,7,8,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.75E3,1.25E3,1.078E3,2.672E3,5.09E2,7.41E2,7.62E2,3.16E2,2.06E2,2.466E3,4.01E2,1.08E2,3.5E2,3.91E2,4.64E2,2.98E2,2.92E2,2.4E1,3.1E1,1.75E2,1.177E3,1.289E3,3.84E2,1.7E1,9.8E1,1E1,3.2E1,3.18E2,2.5E2,1.41E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.5164392E-4,-6.375283E-3,1.2967187E-1,-3.417162E-2,1.0185184E-2,5.333138E-1,9.049886E-2,-5.4031525E-2,6.1826496E-3,2.9409634E-2,-2.8860787E-2,3.3567423E-1,7.369139E-1,-3.504383E-2,1.4016746E-1,-4.1721645E-3,-8.747312E-3,-1.6068517E-3,1.0370444E-2,-8.610009E-3,3.9659734E-3,-5.2616033E-3,-1.1119541E-3,4.8661966E-2,2.1451851E-2,4.251972E-2,1.7711823E-1,-1.5734965E-2,3.9128594E-2,1.8275939E-2,-1.4498736E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":37,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.412595E0,2.1873295E0,3.9205165E0,1.4220741E0,2.2362468E0,6.3790464E-1,1.4390835E0,4.8581696E-1,1.2732708E0,2.3666499E0,4.136979E-1,1.3335383E-1,2.4708862E0,3.502981E0,2.030472E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,-2.5881904E-1,-8.660254E-1,5E-1,1E0,1.2246469E-16,-5E-1,7E-1,1E0,-8.660254E-1,0E0,-7.0710677E-1,7.0710677E-1,8.660254E-1,1E0,-4.1721645E-3,-8.747312E-3,-1.6068517E-3,1.0370444E-2,-8.610009E-3,3.9659734E-3,-5.2616033E-3,-1.1119541E-3,4.8661966E-2,2.1451851E-2,4.251972E-2,1.7711823E-1,-1.5734965E-2,3.9128594E-2,1.8275939E-2,-1.4498736E-2],"split_indices":[4,8,9,7,2,7,10,4,0,10,7,7,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,1.773E3,2.977E3,2.1E1,2.29E2,1.188E3,5.85E2,1.995E3,9.82E2,1.2E1,9E0,6.5E1,1.64E2,8.7E2,3.18E2,4.77E2,1.08E2,1.62E2,1.833E3,4.19E2,5.63E2,4E0,8E0,8E0,1E0,5.1E1,1.4E1,1.43E2,2.1E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.6683956E-4,-5.7409294E-3,1.1796741E-1,-1.8282669E-2,2.9286435E-2,4.9315295E-1,8.15672E-2,-4.5669165E-2,-2.8887007E-3,1.32583985E-2,1.1068495E-1,3.0750006E-1,6.8518645E-1,-1.3859662E-2,1.3554196E-1,-1.5917577E-2,-3.8446665E-3,-2.0349908E-3,3.614492E-3,-1.613074E-3,4.4530574E-3,-1.6818741E-2,1.4838344E-2,4.4768993E-2,1.9545013E-2,3.87402E-2,1.6826232E-1,1.9786265E-2,-5.903073E-3,8.041125E-3,2.810063E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":38,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.648489E0,2.0876691E0,3.3876402E0,1.4750003E0,1.6332694E0,5.7363987E-1,1.1865261E0,1.0260108E0,1.5281433E0,9.638957E-1,2.190648E0,1.1670625E-1,2.3183599E0,8.1503266E-1,1.1562786E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,8.660254E-1,-8.660254E-1,-2.5881904E-1,1E0,1.2246469E-16,-2.5881904E-1,1.2E-2,3.5E-1,2.5881904E-1,-8.660254E-1,-7.0710677E-1,7.0710677E-1,-5E-1,8.660254E-1,-1.5917577E-2,-3.8446665E-3,-2.0349908E-3,3.614492E-3,-1.613074E-3,4.4530574E-3,-1.6818741E-2,1.4838344E-2,4.4768993E-2,1.9545013E-2,3.87402E-2,1.6826232E-1,1.9786265E-2,-5.903073E-3,8.041125E-3,2.810063E-2],"split_indices":[4,10,9,7,0,7,8,5,11,8,8,7,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,3.498E3,1.252E3,2.1E1,2.29E2,1.258E3,2.24E3,1.047E3,2.05E2,1.2E1,9E0,8.3E1,1.46E2,7.4E1,1.184E3,1.548E3,6.92E2,5.4E2,5.07E2,2.4E1,1.81E2,4E0,8E0,8E0,1E0,1.4E1,6.9E1,1.07E2,3.9E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.8095777E-4,-1.4003705E-2,4.3911405E-2,-4.130907E-2,-2.976211E-3,1.077492E-1,-2.550404E-5,-5.4441314E-2,-9.570227E-3,-8.19524E-2,3.6516963E-3,1.5626756E-2,1.6332115E-1,-5.0815232E-2,7.455617E-2,-4.623076E-3,-1.1238421E-2,-2.8959783E-3,5.2296123E-3,-2.8166606E-3,-2.1964064E-2,-3.1483036E-3,2.1876267E-3,-5.056418E-3,2.782926E-2,2.7047941E-2,2.5145093E-3,-1.034383E-2,-4.0219873E-4,-9.536185E-5,2.0198746E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":39,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.146621E0,1.1293397E0,3.5088518E0,4.4920886E-1,1.3994727E0,2.608354E0,2.8144722E0,3.5779667E-1,3.8177535E-1,1.5267873E0,1.580347E0,3.3695889E0,4.7017307E0,1.0879663E0,2.896508E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.75E-1,-5E-1,0E0,5E-1,-8.660254E-1,-1.8369701E-16,1E0,1E0,8.660254E-1,6.5E-1,3.5E-1,3.5E-2,2.2E-2,0E0,5E-1,-4.623076E-3,-1.1238421E-2,-2.8959783E-3,5.2296123E-3,-2.8166606E-3,-2.1964064E-2,-3.1483036E-3,2.1876267E-3,-5.056418E-3,2.782926E-2,2.7047941E-2,2.5145093E-3,-1.034383E-2,-4.0219873E-4,-9.536185E-5,2.0198746E-2],"split_indices":[11,8,9,7,10,10,0,0,9,4,4,5,5,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.75E3,1.25E3,1.078E3,2.672E3,5.09E2,7.41E2,7.62E2,3.16E2,2.06E2,2.466E3,1.92E2,3.17E2,4.41E2,3E2,6.69E2,9.3E1,2.41E2,7.5E1,1.49E2,5.7E1,8.42E2,1.624E3,1.54E2,3.8E1,1.78E2,1.39E2,2.07E2,2.34E2,1.89E2,1.11E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.3733814E-4,-1.2613808E-2,3.956956E-2,-1.7785253E-2,4.232582E-2,9.707688E-2,-1.0359319E-5,-3.389398E-2,1.2431593E-3,-1.9948859E-2,1.0589284E-1,6.1275356E-2,2.282249E-1,-4.575803E-2,6.716732E-2,-1.1059884E-3,-7.834855E-3,-3.8845066E-3,5.719393E-3,-2.7528934E-3,1.3130373E-2,3.1398468E-2,7.044352E-3,4.7488417E-3,3.5275847E-2,1.6672902E-2,7.609401E-2,1.5875528E-2,-5.6848624E-3,-8.58753E-5,1.81969E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":40,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.5546117E0,1.0664768E0,2.8474455E0,1.0511113E0,1.2807453E0,2.3806176E0,2.2834048E0,1.8841369E0,3.5304089E0,1.9164163E-1,1.1581557E0,1.5987495E0,3.443946E0,1.0115575E0,2.350818E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.75E-1,1E0,0E0,5E-1,5.5E-1,8.660254E-1,1E0,6.123234E-17,5E-1,1E0,1.16E0,1E0,9.659258E-1,-9.659258E-1,5E-1,-1.1059884E-3,-7.834855E-3,-3.8845066E-3,5.719393E-3,-2.7528934E-3,1.3130373E-2,3.1398468E-2,7.044352E-3,4.7488417E-3,3.5275847E-2,1.6672902E-2,7.609401E-2,1.5875528E-2,-5.6848624E-3,-8.58753E-5,1.81969E-2],"split_indices":[11,10,9,9,4,10,0,10,10,8,5,7,8,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.75E3,1.25E3,3.428E3,3.22E2,5.09E2,7.41E2,1.856E3,1.572E3,1.63E2,1.59E2,4.01E2,1.08E2,4.41E2,3E2,1.227E3,6.29E2,9.16E2,6.56E2,1.56E2,7E0,2.2E1,1.37E2,3.84E2,1.7E1,9.8E1,1E1,2.2E1,4.19E2,1.89E2,1.11E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.3416364E-4,-9.939104E-3,4.1895714E-2,-1.8064093E-2,1.9889403E-2,5.9413236E-2,-1.2579155E-1,-2.9705258E-2,1.396717E-2,7.098285E-2,-4.896158E-3,1.9951148E-2,1.1822632E-1,-1.3786523E-1,2.9042307E-1,-2.5175298E-3,-9.911462E-3,-1.4583507E-3,6.63915E-3,3.2506164E-2,5.332353E-3,-2.4779995E-3,2.9040743E-3,2.5777975E-2,-3.5842418E-4,2.8040812E-3,2.2682557E-2,-1.6799023E-2,-3.0116108E-4,3.9753914E-3,3.958807E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":41,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.1513052E0,9.7002673E-1,2.9478767E0,1.1731263E0,1.085635E0,2.1026862E0,5.1743734E-1,7.228756E-1,1.2567415E0,1.2389868E0,3.9075157E-1,3.0459037E0,3.5586839E0,3.7730336E-1,6.35671E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,8.660254E-1,1.16E0,5E-1,1E0,7.2E-1,6E-1,-8.660254E-1,1.62E0,-9.659258E-1,2.5881904E-1,8.660254E-1,7.5E-1,-2.5175298E-3,-9.911462E-3,-1.4583507E-3,6.63915E-3,3.2506164E-2,5.332353E-3,-2.4779995E-3,2.9040743E-3,2.5777975E-2,-3.5842418E-4,2.8040812E-3,2.2682557E-2,-1.6799023E-2,-3.0116108E-4,3.9753914E-3,3.958807E-2],"split_indices":[0,8,9,7,5,7,8,4,4,9,5,7,8,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,3.144E3,8.56E2,9.06E2,9.4E1,2.306E3,8.38E2,2.79E2,5.77E2,5.43E2,3.63E2,9.2E1,2E0,2.166E3,1.4E2,5.43E2,2.95E2,1.7E1,2.62E2,3.64E2,2.13E2,4.8E1,4.95E2,1.99E2,1.64E2,7.5E1,1.7E1,1E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.1241947E-4,-1.1037109E-2,3.474237E-2,-1.5690004E-2,3.8392663E-2,8.556663E-2,-2.3756757E-4,-3.0368043E-2,1.6480815E-3,-1.634825E-2,9.426214E-2,5.3190313E-2,2.0418784E-1,-5.6647584E-2,5.0273027E-2,-9.856976E-4,-7.030015E-3,-3.3790895E-3,5.1109106E-3,-2.3159066E-3,1.1935754E-2,2.8197972E-2,6.2292824E-3,4.075216E-3,3.162735E-2,1.4837391E-2,6.879508E-2,-1.7636089E-2,-3.1854962E-3,1.4994218E-4,1.2249786E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":42,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.9660852E0,8.633007E-1,2.224085E0,8.726931E-1,9.8938686E-1,1.9478033E0,2.1170309E0,1.5202831E0,2.758957E0,1.5434399E-1,9.426271E-1,1.3025627E0,2.8410044E0,1.0361525E0,1.3807013E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.75E-1,1E0,0E0,5E-1,5.5E-1,8.660254E-1,0E0,6.123234E-17,5E-1,1E0,1.16E0,1E0,9.659258E-1,-7.0710677E-1,1E0,-9.856976E-4,-7.030015E-3,-3.3790895E-3,5.1109106E-3,-2.3159066E-3,1.1935754E-2,2.8197972E-2,6.2292824E-3,4.075216E-3,3.162735E-2,1.4837391E-2,6.879508E-2,-1.7636089E-2,-3.1854962E-3,1.4994218E-4,1.2249786E-2],"split_indices":[11,10,9,9,4,10,7,10,10,8,5,7,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.75E3,1.25E3,3.428E3,3.22E2,5.09E2,7.41E2,1.856E3,1.572E3,1.63E2,1.59E2,4.01E2,1.08E2,3.5E2,3.91E2,1.227E3,6.29E2,9.16E2,6.56E2,1.56E2,7E0,2.2E1,1.37E2,3.84E2,1.7E1,9.8E1,1E1,5.9E1,2.91E2,2.34E2,1.57E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.009052E-4,-3.789955E-3,7.972511E-2,-1.8777441E-2,1.3233492E-2,4.161749E-1,4.719633E-2,-2.9705983E-2,1.7959755E-2,-3.1063274E-2,2.7343934E-2,2.4690512E-1,5.9460807E-1,-5.99713E-2,8.977734E-2,3.7868824E-3,-3.7980021E-3,-8.727297E-3,5.227556E-3,1.3453351E-2,-7.0582824E-3,1.2246635E-3,1.0909832E-2,-5.700517E-3,2.7698142E-2,3.119613E-2,1.5692146E-1,-1.6470782E-2,3.0711338E-2,2.4714428E-3,2.478533E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":43,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6628178E0,1.2124125E0,2.7273774E0,1.0150836E0,1.3915788E0,5.1766205E-1,1.0549445E0,1.0905969E0,2.0990267E0,3.5303345E0,2.0821126E0,1.3461578E-1,2.2651591E0,2.5880973E0,1.6908801E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,2.5881904E-1,-8.660254E-1,8.660254E-1,-5E-1,1.2246469E-16,-5E-1,-9.659258E-1,-5E-1,1.14E0,1E0,-9.659258E-1,7.0710677E-1,8.660254E-1,7.0710677E-1,3.7868824E-3,-3.7980021E-3,-8.727297E-3,5.227556E-3,1.3453351E-2,-7.0582824E-3,1.2246635E-3,1.0909832E-2,-5.700517E-3,2.7698142E-2,3.119613E-2,1.5692146E-1,-1.6470782E-2,3.0711338E-2,2.4714428E-3,2.478533E-2],"split_indices":[4,7,9,8,9,7,10,7,10,5,0,7,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,2.526E3,2.224E3,2.1E1,2.29E2,1.947E3,5.79E2,5.37E2,1.687E3,1.2E1,9E0,6.5E1,1.64E2,2.12E2,1.735E3,1.42E2,4.37E2,1.03E2,4.34E2,1.425E3,2.62E2,1E0,1.1E1,8E0,1E0,5.1E1,1.4E1,1.17E2,4.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.1413354E-4,-9.189226E-3,2.9208528E-2,-5.7919517E-2,-5.028212E-3,4.1120972E-2,-9.98563E-2,5.5417918E-2,-8.893537E-2,-2.454286E-2,1.0827519E-2,2.105626E-2,1.18814155E-1,3.312621E-1,-1.2001058E-1,-1.6199474E-3,1.8378804E-2,-3.0172132E-3,-1.474385E-2,-4.463419E-3,4.4779186E-4,2.2895171E-4,6.931922E-3,-1.4322045E-3,6.1273593E-3,7.994031E-3,2.6474467E-2,5.3657502E-2,1.552852E-3,-1.33884195E-2,2.5336409E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":44,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3831595E0,7.6028943E-1,1.927491E0,1.0419292E0,1.0699273E0,1.7839876E0,9.6077585E-1,5.913633E-1,7.931287E-1,9.039518E-1,9.5270073E-1,1.2984904E0,1.3119631E0,3.1578875E-1,5.622872E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.75E-1,-8.660254E-1,1E0,3E-1,-1.8369701E-16,8.660254E-1,-9.659258E-1,5E-1,-1.8369701E-16,1E0,1E0,2.5881904E-1,5E-1,7.2E-1,1E0,-1.6199474E-3,1.8378804E-2,-3.0172132E-3,-1.474385E-2,-4.463419E-3,4.4779186E-4,2.2895171E-4,6.931922E-3,-1.4322045E-3,6.1273593E-3,7.994031E-3,2.6474467E-2,5.3657502E-2,1.552852E-3,-1.33884195E-2,2.5336409E-2],"split_indices":[11,10,9,4,8,8,8,7,8,1,0,7,7,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.75E3,1.25E3,2.94E2,3.456E3,1.145E3,1.05E2,6.3E1,2.31E2,1.549E3,1.907E3,9.11E2,2.34E2,4E0,1.01E2,4.1E1,2.2E1,1.16E2,1.15E2,9.15E2,6.34E2,1.665E3,2.42E2,4.85E2,4.26E2,1.86E2,4.8E1,2E0,2E0,9.8E1,3E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.944054E-4,-3.2735846E-3,6.98216E-2,-1.2063168E-2,2.1273922E-2,3.7974396E-1,3.987328E-2,-3.1497058E-2,-1.1397718E-3,2.7250797E-2,-9.596681E-2,2.223285E-1,5.464097E-1,-5.827992E-2,7.889291E-2,-1.3852201E-2,-2.4696747E-3,-1.8818502E-3,2.3893623E-3,4.4176198E-4,8.77068E-3,5.1211353E-2,-1.3624879E-2,3.639041E-2,1.1897222E-2,2.7878487E-2,1.4775167E-1,-1.5107423E-2,2.6729235E-2,2.0980465E-3,2.196174E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":45,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.2737746E0,1.0253435E0,2.3145537E0,7.427461E-1,8.806338E-1,4.5570445E-1,8.8547504E-1,9.128829E-1,9.922235E-1,1.6464329E0,1.5639498E0,1.4693093E-1,2.0799644E0,2.0343235E0,1.3400924E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[8.2E-1,8.660254E-1,-8.660254E-1,-2.5881904E-1,1E0,1.2246469E-16,-5E-1,1.2E-2,5E-1,7.0710677E-1,1.2E-2,-7.0710677E-1,7.0710677E-1,8.660254E-1,7.0710677E-1,-1.3852201E-2,-2.4696747E-3,-1.8818502E-3,2.3893623E-3,4.4176198E-4,8.77068E-3,5.1211353E-2,-1.3624879E-2,3.639041E-2,1.1897222E-2,2.7878487E-2,1.4775167E-1,-1.5107423E-2,2.6729235E-2,2.0980465E-3,2.196174E-2],"split_indices":[4,10,9,7,7,7,10,5,8,7,5,7,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,3.498E3,1.252E3,2.1E1,2.29E2,1.258E3,2.24E3,1.192E3,6E1,1.2E1,9E0,6.5E1,1.64E2,7.4E1,1.184E3,1.313E3,9.27E2,8.66E2,3.26E2,3E0,5.7E1,4E0,8E0,8E0,1E0,5.1E1,1.4E1,1.17E2,4.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.1306735E-4,2.10663E-2,-1.0710963E-2,6.6386648E-3,7.310222E-2,4.3885056E-2,-1.5471528E-2,-9.571242E-3,4.898024E-2,1.140223E-1,-3.101153E-2,-9.214128E-2,1.9724908E-1,-6.342554E-2,-5.3543635E-3,-2.8286332E-3,3.633995E-3,8.235379E-3,-5.6758797E-4,7.488496E-3,3.6163114E-2,4.687065E-3,-4.2302635E-2,2.1383224E-2,-1.17517775E-2,1.0611433E-2,3.6433436E-2,-4.2933463E-3,-2.0164153E-2,-2.8459642E-3,2.173509E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":46,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.1491913E0,1.3140869E0,8.456396E-1,9.4214505E-1,1.6224663E0,5.463038E0,1.4507699E0,8.542453E-1,6.9361347E-1,2.6184943E0,3.317172E0,1.1043996E0,1.8342938E0,1.4669886E0,1.5472406E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.16E0,8.660254E-1,-8.660254E-1,8.660254E-1,8.660254E-1,1.62E0,-5E-1,1E0,5E-1,8.2E-1,8.2E-1,-9.659258E-1,5E-1,1E0,5E-1,-2.8286332E-3,3.633995E-3,8.235379E-3,-5.6758797E-4,7.488496E-3,3.6163114E-2,4.687065E-3,-4.2302635E-2,2.1383224E-2,-1.17517775E-2,1.0611433E-2,3.6433436E-2,-4.2933463E-3,-2.0164153E-2,-2.8459642E-3,2.173509E-3],"split_indices":[5,8,9,7,9,5,9,0,9,4,4,7,8,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.75E3,3.25E3,1.371E3,3.79E2,2.6E2,2.99E3,9.92E2,3.79E2,2.72E2,1.07E2,1.38E2,1.22E2,5.2E2,2.47E3,7.05E2,2.87E2,2.35E2,1.44E2,2.36E2,3.6E1,9E1,1.7E1,1E1,1.28E2,8E1,4.2E1,4.54E2,6.6E1,1.333E3,1.137E3],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.809678E-4,-2.418315E-2,8.573271E-3,-5.5833843E-2,-3.0364385E-3,1.3831602E-2,-5.0044876E-2,-1.4297199E-1,-4.6498016E-2,1.231161E-3,-9.592637E-2,-9.914445E-3,3.3394642E-2,1.014908E-2,-1.09915964E-1,3.6718365E-2,-1.85142E-2,-1.02093825E-2,-3.857856E-3,-1.5236508E-3,2.7874366E-3,9.302036E-3,-1.1111713E-2,5.610531E-4,-5.7476866E-3,1.0585157E-2,1.5960215E-3,2.7972383E-3,-1.4643912E-2,-1.1965352E-2,2.0614143E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":47,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.006592E0,8.371349E-1,1.1568766E0,4.0091872E-1,2.9782727E-1,1.5997589E0,1.1147137E0,1.1006181E0,1.959523E-1,3.15887E-1,1.0505426E-1,1.1492814E0,2.3833172E0,4.366887E-1,5.016978E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1.58E0,1E0,-8.660254E-1,1E0,-1.8369701E-16,3.5E-1,-9.659258E-1,-8.660254E-1,5E-1,-8.660254E-1,1.52E0,2.2E-2,9.659258E-1,1E0,3.6718365E-2,-1.85142E-2,-1.02093825E-2,-3.857856E-3,-1.5236508E-3,2.7874366E-3,9.302036E-3,-1.1111713E-2,5.610531E-4,-5.7476866E-3,1.0585157E-2,1.5960215E-3,2.7972383E-3,-1.4643912E-2,-1.1965352E-2,2.0614143E-2],"split_indices":[4,5,9,9,8,10,11,7,7,8,9,5,5,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.25E3,3.75E3,5E2,7.5E2,3.442E3,3.08E2,4.7E1,4.53E2,7.18E2,3.2E1,1.555E3,1.887E3,1.54E2,1.54E2,3E0,4.4E1,5.5E1,3.98E2,4.44E2,2.74E2,2E0,3E1,1.173E3,3.82E2,3.65E2,1.522E3,1.39E2,1.5E1,1.5E2,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.4436883E-4,-6.5260767E-3,2.7805217E-2,-2.176196E-2,4.0471705E-4,3.677714E-2,-1.8866464E-1,-5.0242204E-2,-2.73351E-3,-5.9962828E-2,5.988375E-3,7.1373517E-3,1.151159E-1,-2.6165015E-1,9.180204E-2,-1.2829552E-2,-4.1879206E-3,1.10981346E-4,-8.638854E-3,-7.661847E-3,1.8720707E-2,-3.6167816E-4,4.4397116E-3,2.0233102E-2,-8.8632695E-4,1.349924E-2,-6.4355256E-3,-3.5861295E-2,-1.42274005E-2,2.9518178E-2,-4.133514E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":48,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.437114E-1,4.2250142E-1,1.9510317E0,6.7782325E-1,9.2764336E-1,2.2328887E0,8.428199E-1,3.2165992E-1,2.4155241E-1,9.7355175E-1,9.29475E-1,2.1849241E0,9.5044374E-1,3.193798E-1,1.0466555E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.5E-1,1E0,1.58E0,-8.660254E-1,7.0710677E-1,8.660254E-1,-8.660254E-1,1E0,1E0,8.660254E-1,-9.659258E-1,1E0,7.5E-1,1.66E0,-1.2829552E-2,-4.1879206E-3,1.10981346E-4,-8.638854E-3,-7.661847E-3,1.8720707E-2,-3.6167816E-4,4.4397116E-3,2.0233102E-2,-8.8632695E-4,1.349924E-2,-6.4355256E-3,-3.5861295E-2,-1.42274005E-2,2.9518178E-2,-4.133514E-2],"split_indices":[0,4,7,5,10,7,9,9,8,8,7,7,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4E3,1E3,1.25E3,2.75E3,9.61E2,3.9E1,5E2,7.5E2,2.32E2,2.518E3,6.98E2,2.63E2,3.1E1,8E0,4.7E1,4.53E2,7.18E2,3.2E1,2.18E2,1.4E1,2.015E3,5.03E2,5.2E1,6.46E2,2.37E2,2.6E1,1.6E1,1.5E1,6E0,2E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.0076597E-4,-7.975093E-3,2.0553883E-2,-2.2058422E-2,1.167857E-2,6.4878324E-3,8.557059E-2,3.783808E-2,-2.9169325E-2,-1.647244E-2,3.9813843E-2,1.0988974E-2,-6.2782966E-2,5.3076595E-2,4.9151736E-1,-1.8355519E-3,2.9910466E-2,-1.9753294E-3,-6.4368434E-3,-5.125961E-3,1.845289E-3,5.7424773E-3,-7.5148307E-3,-1.4273978E-4,4.2248457E-3,8.4654026E-2,-1.0032081E-2,1.3684725E-3,2.2823846E-2,3.33662E-2,8.6678E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":49,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.383912E-1,9.8313534E-1,1.3264254E0,8.823286E-1,1.1752456E0,3.7297636E-1,3.3771467E0,3.2354226E0,6.118851E-1,9.024412E-1,1.5065615E0,4.3554136E-1,2.5767095E0,1.6528652E0,8.362956E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.0710677E-1,5E-1,1E0,-9.659258E-1,6E-1,1.78E0,1E0,1.72E0,-1.8369701E-16,1.2246469E-16,1E0,8.660254E-1,-8.660254E-1,7.0710677E-1,5E-1,-1.8355519E-3,2.9910466E-2,-1.9753294E-3,-6.4368434E-3,-5.125961E-3,1.845289E-3,5.7424773E-3,-7.5148307E-3,-1.4273978E-4,4.2248457E-3,8.4654026E-2,-1.0032081E-2,1.3684725E-3,2.2823846E-2,3.33662E-2,8.6678E-2],"split_indices":[8,7,0,7,4,5,10,5,8,9,7,10,9,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.55E3,1.45E3,2.068E3,1.482E3,1.193E3,2.57E2,2.19E2,1.849E3,7.41E2,7.41E2,1.121E3,7.2E1,2.39E2,1.8E1,1.81E2,3.8E1,1.46E3,3.89E2,3.71E2,3.7E2,6.43E2,9.8E1,8.03E2,3.18E2,2E0,7E1,1.96E2,4.3E1,1.4E1,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.1818298E-4,4.0705353E-3,-4.1820873E-2,-3.5397161E-3,3.5002097E-2,-6.875163E-3,-9.9042386E-2,-9.202543E-3,1.7204594E-2,4.344333E-2,-1.5398332E-1,-3.591531E-2,4.409709E-2,-1.0794613E-1,1.8965907E-1,-1.7612533E-3,1.3486135E-3,4.819789E-3,-7.0018735E-4,1.7242583E-3,1.1283589E-2,-2.2977045E-2,1.6841307E-2,-7.394306E-3,4.22137E-3,1.2092442E-2,-2.4392903E-3,7.0980685E-3,-1.1713688E-2,5.4267826E-3,3.6561202E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":50,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.9093134E-1,1.0813022E0,8.171743E-1,4.332755E-1,1.453599E0,3.7904543E-1,4.1890407E-1,5.530186E-1,5.9377587E-1,1.5780152E0,9.916026E-1,4.8740584E-1,4.923067E-1,2.566296E-1,9.9271506E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,3.5E-1,8.660254E-1,1E0,5E-1,1E0,8.660254E-1,1.26E0,7.0710677E-1,8.660254E-1,6E-1,8.660254E-1,-9.659258E-1,7.5E-1,-1.7612533E-3,1.3486135E-3,4.819789E-3,-7.0018735E-4,1.7242583E-3,1.1283589E-2,-2.2977045E-2,1.6841307E-2,-7.394306E-3,4.22137E-3,1.2092442E-2,-2.4392903E-3,7.0980685E-3,-1.1713688E-2,5.4267826E-3,3.6561202E-2],"split_indices":[9,0,11,8,7,7,8,7,5,7,9,4,7,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.686E3,9.06E2,2.54E2,1.54E2,2.896E3,7.9E2,8.68E2,3.8E1,1.62E2,9.2E1,1.5E2,4E0,2.113E3,7.83E2,3.46E2,4.44E2,6.31E2,2.37E2,3.1E1,7E0,1.09E2,5.3E1,4.3E1,4.9E1,7E0,1.43E2,3E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.972464E-4,3.9832424E-2,-3.2139965E-3,2.02589E-1,-1.2968514E-2,-9.307711E-3,3.1514205E-2,-1.8956271E-3,2.8213713E-1,-1.3664791E-1,1.7516983E-1,-4.0369324E-2,-2.8700305E-3,-6.3898556E-2,5.6096047E-2,1.5214353E-2,-1.558084E-2,3.813977E-2,2.1030318E-2,-3.1563666E-2,-7.2568073E-3,9.675782E-3,3.188024E-2,-6.1312964E-4,-1.1550075E-2,-2.3048387E-3,2.0890287E-3,-1.5805136E-2,-1.2034009E-3,1.2149549E-2,1.8831909E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":51,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.943549E-1,3.5088573E0,9.7249305E-1,1.627172E0,7.2140064E0,7.8154635E-1,1.6125436E0,7.112544E-1,4.331708E-1,2.1219041E0,1.3544433E0,1.7253399E0,1.5534012E0,6.866281E-1,1.3283433E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.14E0,7.5E-1,-5E-1,1.62E0,-5E-1,-7.0710677E-1,1.8E-2,1E0,1.16E0,5E-1,1.62E0,5E-1,1E0,0E0,1.5214353E-2,-1.558084E-2,3.813977E-2,2.1030318E-2,-3.1563666E-2,-7.2568073E-3,9.675782E-3,3.188024E-2,-6.1312964E-4,-1.1550075E-2,-2.3048387E-3,2.0890287E-3,-1.5805136E-2,-1.2034009E-3,1.2149549E-2,1.8831909E-3],"split_indices":[9,5,4,7,5,9,8,5,1,5,8,5,10,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,9.9E1,3.08E2,3.908E3,6.85E2,2.8E1,7.1E1,1.86E2,1.22E2,6.7E2,3.238E3,1.4E2,5.45E2,1.4E1,1.4E1,2.8E1,4.3E1,4.8E1,1.38E2,8E1,4.2E1,4.61E2,2.09E2,1.751E3,1.487E3,4.9E1,9.1E1,1.97E2,3.48E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.7675446E-4,-1.3695904E-2,8.597863E-3,-2.234285E-2,3.943639E-3,2.253926E-3,4.5673117E-2,-1.11027565E-2,-4.7846187E-2,-9.7824205E-3,5.1458947E-2,6.2609136E-2,-3.1468065E-3,1.6820478E-1,2.3877325E-2,5.9544593E-3,-1.6216029E-3,-6.2671625E-3,1.1129244E-2,-2.9393162E-3,1.9077599E-3,7.101246E-3,-1.2680163E-2,1.5492648E-3,3.199084E-2,-1.9532887E-3,1.4572785E-3,8.361008E-3,3.8642194E-2,-3.2022644E-3,7.2943754E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":52,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.815741E-1,2.8485817E-1,7.372586E-1,3.586536E-1,4.016051E-1,8.7312424E-1,1.2191529E0,3.156049E-1,9.105865E-1,2.7109268E-1,4.900201E-1,2.6621122E0,7.142667E-1,1.241432E0,1.0720323E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.5881904E-1,5E-1,7.5E-1,7E-1,1E0,-8.660254E-1,-1.8369701E-16,2.2E-2,1E0,5E-1,1E0,1E0,5E-1,8.660254E-1,7.0710677E-1,5.9544593E-3,-1.6216029E-3,-6.2671625E-3,1.1129244E-2,-2.9393162E-3,1.9077599E-3,7.101246E-3,-1.2680163E-2,1.5492648E-3,3.199084E-2,-1.9532887E-3,1.4572785E-3,8.361008E-3,3.8642194E-2,-3.2022644E-3,7.2943754E-3],"split_indices":[8,7,4,4,0,9,8,5,10,10,10,0,10,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.866E3,3.134E3,1.252E3,6.14E2,2.677E3,4.57E2,8.7E2,3.82E2,4.77E2,1.37E2,2.19E2,2.458E3,6.8E1,3.89E2,5.8E1,8.12E2,3.5E2,3.2E1,2.84E2,1.93E2,1.24E2,1.3E1,1.86E2,3.3E1,1.277E3,1.181E3,5E1,1.8E1,1.82E2,2.07E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.6642333E-4,3.3104296E-3,-3.3917896E-2,-4.656631E-3,2.21154E-2,-1.899738E-3,-8.6374104E-2,-1.0614139E-2,2.1180063E-2,-5.4012095E-3,4.4759598E-2,-2.8253693E-2,4.4310953E-2,-9.4616145E-2,1.798102E-1,-1.5892467E-3,2.9702752E-3,-1.4758879E-2,2.7202228E-3,-4.551489E-3,3.3579916E-3,8.541098E-3,5.998134E-4,-6.252923E-3,4.2090057E-3,1.1367148E-2,-1.7612521E-3,7.5645433E-3,-1.0341806E-2,5.339128E-3,3.427429E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":53,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.2050275E-1,6.882277E-1,6.867724E-1,4.969321E-1,8.52008E-1,3.117997E-1,3.5706758E-1,5.5866146E-1,6.189087E-1,9.6788037E-1,1.1812679E0,3.9563626E-1,4.0144116E-1,2.3411584E-1,8.468941E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.6E-1,3.5E-1,8.660254E-1,-1.8369701E-16,5E-1,1E0,1E0,-9.659258E-1,7.5E-1,2.2E-2,6E-1,8.660254E-1,-9.659258E-1,7.5E-1,-1.5892467E-3,2.9702752E-3,-1.4758879E-2,2.7202228E-3,-4.551489E-3,3.3579916E-3,8.541098E-3,5.998134E-4,-6.252923E-3,4.2090057E-3,1.1367148E-2,-1.7612521E-3,7.5645433E-3,-1.0341806E-2,5.339128E-3,3.427429E-2],"split_indices":[9,11,11,9,10,7,8,10,8,4,5,4,7,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.226E3,1.366E3,2.54E2,1.54E2,2.622E3,6.04E2,6.17E2,7.49E2,1.62E2,9.2E1,1.5E2,4E0,2.319E3,3.03E2,2E1,5.84E2,3.04E2,3.13E2,3.65E2,3.84E2,1.09E2,5.3E1,4.3E1,4.9E1,7E0,1.43E2,3E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.4812703E-4,-6.0355593E-3,1.5625881E-2,-1.6251229E-2,8.22085E-3,4.503343E-3,6.703939E-2,-6.97627E-3,-5.6163225E-2,-1.4736877E-2,3.1167498E-2,2.5819885E-2,-9.033427E-3,3.7406217E-2,4.378248E-1,3.0548917E-3,-1.9788565E-3,-4.3213795E-4,-1.2253189E-2,-4.7046137E-3,1.769919E-3,7.583338E-4,9.167884E-3,1.4553857E-2,-1.1348779E-3,-6.8996265E-3,1.2303422E-3,2.6856278E-4,1.9200964E-2,3.394518E-3,5.4326303E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":54,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.8333588E-1,5.1729685E-1,8.2945055E-1,7.655149E-1,7.8170794E-1,3.447704E-1,2.8184097E0,8.0832124E-1,1.3413336E0,7.7843773E-1,1.0582196E0,2.0663514E0,9.3610346E-1,1.2877855E0,7.9066133E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.0710677E-1,5E-1,1E0,6.123234E-17,6E-1,0E0,1E0,-8.660254E-1,3.25E-1,1.2246469E-16,2.5881904E-1,1.14E0,1.14E0,7.0710677E-1,8.660254E-1,3.0548917E-3,-1.9788565E-3,-4.3213795E-4,-1.2253189E-2,-4.7046137E-3,1.769919E-3,7.583338E-4,9.167884E-3,1.4553857E-2,-1.1348779E-3,-6.8996265E-3,1.2303422E-3,2.6856278E-4,1.9200964E-2,3.394518E-3,5.4326303E-2],"split_indices":[8,7,0,8,4,9,10,7,11,9,8,5,5,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.55E3,1.45E3,2.068E3,1.482E3,1.193E3,2.57E2,1.679E3,3.89E2,7.41E2,7.41E2,4.63E2,7.3E2,2.39E2,1.8E1,4.27E2,1.252E3,2.19E2,1.7E2,3.71E2,3.7E2,5.34E2,2.07E2,1.09E2,3.54E2,1.91E2,5.39E2,1.96E2,4.3E1,4E0,1.4E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.3938651E-4,3.3107772E-2,-2.679756E-3,1.7560793E-1,-1.3115932E-2,9.988326E-3,-1.3073146E-2,-3.8459506E-3,2.4544898E-1,-1.21778995E-1,1.521939E-1,-1.3305044E-2,3.9144818E-2,-4.6548013E-2,-5.8072363E-3,-8.800176E-3,2.2806326E-2,3.2173358E-2,1.4554498E-2,-2.8674392E-2,-6.2749796E-3,7.189834E-2,1.3203263E-2,-3.4705796E-3,1.3047339E-3,-1.3891158E-2,4.6343557E-3,2.3961887E-3,-1.1843012E-2,-5.266222E-3,1.7686358E-5],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":55,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.799222E-1,2.6897528E0,6.049964E-1,1.2542686E0,5.5691237E0,1.4070466E0,6.136304E-1,5.860486E-1,5.018954E-1,1.8029654E0,1.3106153E0,6.5013564E-1,1.185677E0,2.2836175E0,5.81808E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.14E0,1.26E0,-5E-1,1.62E0,1.14E0,-5E-1,1E0,2.5881904E-1,1.16E0,-9.659258E-1,5E-1,-9.659258E-1,-1.8369701E-16,-8.660254E-1,-8.800176E-3,2.2806326E-2,3.2173358E-2,1.4554498E-2,-2.8674392E-2,-6.2749796E-3,7.189834E-2,1.3203263E-2,-3.4705796E-3,1.3047339E-3,-1.3891158E-2,4.6343557E-3,2.3961887E-3,-1.1843012E-2,-5.266222E-3,1.7686358E-5],"split_indices":[9,5,5,7,5,5,9,0,8,5,7,10,8,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,9.9E1,3.08E2,2.07E3,2.523E3,2.8E1,7.1E1,1.86E2,1.22E2,1.151E3,9.19E2,4.49E2,2.074E3,2.1E1,7E0,3.9E1,3.2E1,4.8E1,1.38E2,3E0,1.19E2,6.35E2,5.16E2,3.5E1,8.84E2,2.27E2,2.22E2,2.34E2,1.84E3],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.3240846E-4,2.9256784E-3,-3.0013122E-2,-2.2565164E-3,2.3988333E-2,-2.3244873E-3,-7.537176E-2,-6.546957E-3,1.34598715E-2,1.8506807E-1,1.47719225E-2,-2.5080344E-2,3.7584428E-2,-8.3145946E-2,1.7448315E-1,-1.2898392E-3,1.0587581E-3,3.7594752E-3,-5.3901563E-4,2.4574002E-2,-3.9799318E-2,-8.8945025E-4,7.8021544E-3,-5.5461745E-3,3.727215E-3,1.0115609E-2,-1.9110324E-3,7.163506E-3,-9.230598E-3,5.450052E-3,3.2720685E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":56,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.0746617E-1,5.0138366E-1,5.1349545E-1,2.4870336E-1,1.3437773E0,2.3252383E-1,3.155827E-1,3.1541383E-1,3.6006266E-1,1.831201E0,1.2865245E0,3.1084728E-1,3.3712178E-1,2.2069967E-1,7.378802E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,3.5E-1,8.660254E-1,-9.659258E-1,5E-1,1E0,8.660254E-1,1.26E0,1E0,7.0710677E-1,6E-1,8.660254E-1,-9.659258E-1,7.5E-1,-1.2898392E-3,1.0587581E-3,3.7594752E-3,-5.3901563E-4,2.4574002E-2,-3.9799318E-2,-8.8945025E-4,7.8021544E-3,-5.5461745E-3,3.727215E-3,1.0115609E-2,-1.9110324E-3,7.163506E-3,-9.230598E-3,5.450052E-3,3.2720685E-2],"split_indices":[9,0,11,8,7,7,8,7,5,10,8,4,7,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.686E3,9.06E2,2.54E2,1.54E2,2.896E3,7.9E2,4.8E1,8.58E2,1.62E2,9.2E1,1.5E2,4E0,2.113E3,7.83E2,3.46E2,4.44E2,4.4E1,4E0,6.25E2,2.33E2,1.09E2,5.3E1,4.3E1,4.9E1,8E0,1.42E2,3E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.1660689E-4,2.9713154E-2,-2.4030728E-3,1.5791105E-1,-1.1870995E-2,-6.7731556E-3,2.250226E-2,-2.7077156E-3,2.2041151E-1,-1.097749E-1,1.370713E-1,-1.7506514E-2,5.145511E-3,-7.4171964E-3,8.3433084E-2,1.270928E-2,-1.3232772E-2,4.7904998E-2,1.8964058E-2,-2.5948172E-2,-5.6210808E-3,1.8312393E-2,-6.05259E-3,-4.0987474E-3,-3.62942E-4,-6.9666975E-3,1.2208588E-3,-8.471373E-3,2.0962053E-3,-1.770055E-2,9.380242E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":57,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.865062E-1,2.1769228E0,5.0015587E-1,1.0044713E0,4.5208955E0,5.0015795E-1,1.2512087E0,5.047354E-1,4.8216796E-1,1.4849508E0,1.130367E0,6.7011946E-1,9.799874E-1,1.0130334E0,6.269332E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.14E0,7.5E-1,-5E-1,1.62E0,1E0,3.5E-2,1.8E-2,-2.5881904E-1,1.16E0,1E0,0E0,-8.660254E-1,-5E-1,-9.659258E-1,1.270928E-2,-1.3232772E-2,4.7904998E-2,1.8964058E-2,-2.5948172E-2,-5.6210808E-3,1.8312393E-2,-6.05259E-3,-4.0987474E-3,-3.62942E-4,-6.9666975E-3,1.2208588E-3,-8.471373E-3,2.0962053E-3,-1.770055E-2,9.380242E-3],"split_indices":[9,5,4,7,5,1,5,5,7,5,2,9,10,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,9.9E1,3.08E2,3.908E3,6.85E2,2.8E1,7.1E1,1.86E2,1.22E2,2.056E3,1.852E3,4.6E2,2.25E2,1.4E1,1.4E1,6E0,6.5E1,4.8E1,1.38E2,9.9E1,2.3E1,7.63E2,1.293E3,1.59E2,1.693E3,1.23E2,3.37E2,8E0,2.17E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.9937102E-4,2.6750113E-3,-2.7602134E-2,5.363438E-4,4.3242272E-2,-3.4236975E-2,1.4895552E-1,-6.7555537E-3,8.778168E-3,-8.025158E-2,9.2377745E-2,-2.431762E-3,-7.99665E-2,2.1874035E-2,3.3593208E-1,5.002651E-4,-2.6304252E-3,-3.1988833E-3,2.3278082E-3,-1.4112808E-3,-4.975624E-2,2.3808327E-2,6.9475668E-3,1.1093762E-3,-1.159489E-2,-7.4027786E-3,-3.700427E-2,-1.1147439E-2,2.4976525E-2,3.9627224E-2,1.7115594E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":58,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.442753E-1,3.9846498E-1,4.8421556E-1,2.623293E-1,1.4030371E0,5.743084E-1,3.490707E-1,5.324818E-1,1.2119455E0,1.8146061E0,5.34057E-1,3.6056495E-1,2.5168085E-1,3.3173174E-1,1.0864228E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.2E-1,1E0,2.5881904E-1,-5E-1,3.4E-1,6.8E-1,6.5E-1,-5E-1,9.659258E-1,-8.660254E-1,9.659258E-1,1E0,1E0,1.48E0,5.002651E-4,-2.6304252E-3,-3.1988833E-3,2.3278082E-3,-1.4112808E-3,-4.975624E-2,2.3808327E-2,6.9475668E-3,1.1093762E-3,-1.159489E-2,-7.4027786E-3,-3.700427E-2,-1.1147439E-2,2.4976525E-2,3.9627224E-2,1.7115594E-3],"split_indices":[9,4,8,7,10,11,4,4,9,7,9,8,7,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,4.363E3,2.29E2,3.94E2,1.4E1,2.315E3,2.048E3,6.5E1,1.64E2,2.33E2,1.61E2,9E0,5E0,1.446E3,8.69E2,5.37E2,1.511E3,5.7E1,8E0,2.1E1,1.43E2,2.09E2,2.4E1,1.59E2,2E0,6E0,3E0,4E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.7480401E-4,2.74893E-2,-2.2510753E-3,-1.4772607E-2,1.2553334E-1,5.676792E-3,-1.416324E-2,1.3951056E-1,-9.719798E-2,6.3486767E-1,1.0750941E-1,-1.6251748E-3,4.26556E-2,-6.277511E-2,-4.437965E-3,-7.2686264E-4,1.9669233E-2,-2.3182364E-2,-4.9040746E-3,1.7392432E-2,7.305407E-2,2.8308267E-3,2.4867639E-2,-1.6747311E-3,8.468359E-4,7.6756314E-3,8.9624804E-4,-1.2655753E-2,1.1780326E-3,-3.3104648E-3,2.7393696E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":59,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.314365E-1,1.6924138E0,4.3392885E-1,3.6505785E0,1.0609108E0,7.45049E-1,8.6771595E-1,8.4073865E-1,1.2009895E0,4.9340487E-2,1.3346307E0,3.5196728E-1,5.220886E-1,1.4566206E0,1.3979567E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.62E0,1.52E0,1.14E0,-9.659258E-1,1E0,-5E-1,-5E-1,1.16E0,7.2E-1,5E-1,1.14E0,8.2E-1,1E0,5E-1,-7.2686264E-4,1.9669233E-2,-2.3182364E-2,-4.9040746E-3,1.7392432E-2,7.305407E-2,2.8308267E-3,2.4867639E-2,-1.6747311E-3,8.468359E-4,7.6756314E-3,8.9624804E-4,-1.2655753E-2,1.1780326E-3,-3.3104648E-3,2.7393696E-3],"split_indices":[9,5,5,5,7,0,9,7,5,4,8,5,4,2,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,2.85E2,1.22E2,2.758E3,1.835E3,9.9E1,1.86E2,3E0,1.19E2,2.304E3,4.54E2,3.05E2,1.53E3,2.8E1,7.1E1,4.8E1,1.38E2,1E0,2E0,7.7E1,4.2E1,9.22E2,1.382E3,2.25E2,2.29E2,1.64E2,1.41E2,8.05E2,7.25E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.7823877E-4,2.5007538E-2,-2.0269272E-3,2.1206962E-3,1.7500423E-1,7.806279E-3,-1.0094496E-2,1.2574893E-1,-4.6179865E-2,6.81838E-2,1.4239836E-1,-1.1672852E-2,3.130154E-2,-7.4364403E-3,-6.1480764E-2,9.830578E-3,4.290569E-2,-2.0911437E-2,-7.574243E-4,-1.7341968E-2,1.8736202E-2,4.509683E-3,-1.9984208E-3,6.712187E-3,7.786637E-4,-1.8511644E-3,1.2074651E-3,-3.070633E-3,-2.4100209E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":60,"left_children":[1,3,5,7,9,11,13,15,17,-1,19,21,23,25,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.738691E-1,1.4002728E0,3.6452118E-1,2.1256232E0,7.952981E-1,9.4819427E-1,3.4428978E-1,7.9019356E-1,1.6087041E0,0E0,7.709094E-1,5.3548807E-1,7.904079E-1,5.1905394E-1,6.7765844E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,-1,20,22,24,26,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.72E0,1.26E0,1.14E0,-9.659258E-1,5E-1,1E0,1E0,1.16E0,6.81838E-2,-8.660254E-1,-8.660254E-1,0E0,5E-1,1E0,9.830578E-3,4.290569E-2,-2.0911437E-2,-7.574243E-4,-1.7341968E-2,1.8736202E-2,4.509683E-3,-1.9984208E-3,6.712187E-3,7.786637E-4,-1.8511644E-3,1.2074651E-3,-3.070633E-3,-2.4100209E-2],"split_indices":[9,5,5,5,7,10,7,7,5,0,7,8,9,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,3.54E2,5.3E1,2.07E3,2.523E3,9.9E1,2.55E2,2E0,5.1E1,1.132E3,9.38E2,2.4E3,1.23E2,9.2E1,7E0,4.8E1,2.07E2,6E0,4.5E1,1.44E2,9.88E2,3.71E2,5.67E2,1.531E3,8.69E2,1.06E2,1.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"29","size_leaf_vector":"1"}},{"base_weights":[1.7698042E-4,-4.551644E-3,1.1749116E-2,3.0192886E-2,-6.844335E-3,3.5569035E-3,4.9616374E-2,-1.789134E-2,2.5381175E-1,3.0667004E-3,-2.1802753E-2,2.255982E-2,-8.510005E-3,2.3204688E-2,3.806263E-1,1.480628E-2,-5.294194E-3,9.0929875E-3,4.2048063E-2,-1.5506453E-3,1.4561892E-3,-7.2687366E-3,-1.4219388E-3,1.1751236E-2,-6.925643E-4,-5.9418185E-3,9.6064404E-4,-8.97324E-4,1.6674666E-2,2.3653053E-2,7.367884E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":61,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.737096E-1,2.830738E-1,4.4994783E-1,2.3701E0,4.9404728E-1,2.739839E-1,2.2467406E0,1.066495E0,1.0205116E0,4.282972E-1,5.1141065E-1,1.2998837E0,6.7475396E-1,1.1100283E0,8.008344E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[7.0710677E-1,-9.659258E-1,1E0,1.72E0,1.52E0,0E0,1E0,2.2E-2,5E-1,-2.5881904E-1,1.58E0,1.14E0,1.14E0,7.0710677E-1,5E-1,1.480628E-2,-5.294194E-3,9.0929875E-3,4.2048063E-2,-1.5506453E-3,1.4561892E-3,-7.2687366E-3,-1.4219388E-3,1.1751236E-2,-6.925643E-4,-5.9418185E-3,9.6064404E-4,-8.97324E-4,1.6674666E-2,2.3653053E-2,7.367884E-2],"split_indices":[8,7,0,5,5,9,10,5,9,7,5,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.55E3,1.45E3,2.19E2,3.331E3,1.193E3,2.57E2,1.81E2,3.8E1,2.004E3,1.327E3,4.63E2,7.3E2,2.39E2,1.8E1,3.1E1,1.5E2,2E1,1.8E1,7.66E2,1.238E3,1.71E2,1.156E3,1.09E2,3.54E2,1.91E2,5.39E2,1.96E2,4.3E1,1.4E1,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.9349696E-4,2.2136348E-3,-2.2492778E-2,-1.8249841E-3,1.7661572E-2,-2.866796E-2,1.4161986E-1,3.2039714E-4,-4.284976E-2,4.6031155E-2,-6.1964006E-3,6.576439E-4,-7.08502E-2,2.6073623E-2,3.1059363E-1,-5.18805E-4,2.112289E-3,1.1041E-3,-1.924021E-2,9.01486E-3,1.8471138E-3,-7.120069E-3,9.5252006E-4,1.7341273E-3,-7.830045E-3,-6.003574E-3,-2.0102803E-2,-9.734458E-3,2.3553709E-2,3.6499664E-2,1.9289255E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":62,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.2924261E-1,2.865818E-1,4.18551E-1,3.2055992E-1,6.446376E-1,4.8866934E-1,2.8476593E-1,3.9681816E-1,1.460892E0,5.272414E-1,5.300594E-1,3.096078E-1,2.1599531E-1,2.814443E-1,8.804655E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,1.78E0,1.26E0,3.4E-1,6.8E-1,1.66E0,2.5881904E-1,9.659258E-1,-2.5881904E-1,8.660254E-1,9.659258E-1,1E0,1.48E0,-5.18805E-4,2.112289E-3,1.1041E-3,-1.924021E-2,9.01486E-3,1.8471138E-3,-7.120069E-3,9.5252006E-4,1.7341273E-3,-7.830045E-3,-6.003574E-3,-2.0102803E-2,-9.734458E-3,2.3553709E-2,3.6499664E-2,1.9289255E-3],"split_indices":[9,8,8,5,5,11,4,5,8,8,7,8,7,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.641E3,9.51E2,3.94E2,1.4E1,3.461E3,1.8E2,4.34E2,5.17E2,2.33E2,1.61E2,9E0,5E0,2.737E3,7.24E2,1.33E2,4.7E1,1.66E2,2.68E2,1E2,4.17E2,1.93E2,4E1,1.5E2,1.1E1,6E0,3E0,4E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.7578059E-4,2.2469172E-2,-1.804167E-3,-1.4204227E-2,1.0755961E-1,9.181787E-4,-2.5864208E-2,1.1052742E-1,-8.082968E-2,5.5594045E-1,9.171724E-2,-1.9473916E-2,6.45711E-3,1.650728E-1,-3.3886343E-2,8.523859E-3,3.906941E-2,2.169921E-2,-9.888171E-3,1.685133E-2,6.289118E-2,2.2035344E-3,2.1598402E-2,1.7045187E-4,-5.631127E-3,-1.0748868E-3,2.534839E-3,6.311454E-3,3.3084206E-2,-1.0449768E-2,-2.2090978E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":63,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.2078343E-1,1.2747145E0,3.009296E-1,2.3856802E0,8.227302E-1,4.6638504E-1,7.2090805E-1,6.752062E-1,1.0268224E0,7.1041584E-3,1.0343382E0,6.881949E-1,1.055687E0,3.0024838E-1,3.7165767E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.62E0,1.74E0,1.14E0,-9.659258E-1,-7.0710677E-1,-9.659258E-1,1E0,-9.659258E-1,7.2E-1,5E-1,6.123234E-17,2.5881904E-1,1E0,-5E-1,8.523859E-3,3.906941E-2,2.169921E-2,-9.888171E-3,1.685133E-2,6.289118E-2,2.2035344E-3,2.1598402E-2,1.7045187E-4,-5.631127E-3,-1.0748868E-3,2.534839E-3,6.311454E-3,3.3084206E-2,-1.0449768E-2,-2.2090978E-3],"split_indices":[9,5,5,5,7,7,7,7,7,4,8,8,8,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,2.85E2,1.22E2,4.127E3,4.66E2,9.9E1,1.86E2,3E0,1.19E2,8.81E2,3.246E3,1.8E1,4.48E2,9.2E1,7E0,1E1,1.76E2,1E0,2E0,7.7E1,4.2E1,5.6E2,3.21E2,1.699E3,1.547E3,1.2E1,6E0,6.3E1,3.85E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.9531877E-4,4.417257E-3,-9.6522495E-3,6.8887644E-3,-4.862173E-2,-1.7558001E-2,6.162737E-3,-6.3736655E-4,2.7594777E-2,9.548008E-3,-1.6184874E-1,-2.2041207E-2,6.815343E-2,-5.897189E-2,1.271982E-2,3.8066718E-3,-5.357949E-4,4.7173104E-4,8.937284E-3,-3.938528E-3,1.657526E-2,4.4759102E-2,-2.0736694E-2,-1.2880157E-3,-4.978033E-3,-1.407519E-3,1.823775E-2,2.2145582E-3,-2.1245126E-2,2.4113266E-3,-5.6187115E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":64,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[2.0796333E-1,4.5926797E-1,1.8777724E-1,5.214454E-1,1.0290213E0,3.861486E-1,2.147238E-1,4.4874674E-1,1.2602646E0,8.0146307E-1,1.5630676E0,2.4128059E-1,4.721914E-1,5.773983E-1,3.5935473E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,1.58E0,8.660254E-1,8.660254E-1,1E0,-8.660254E-1,-8.660254E-1,7.0710677E-1,5E-1,1.2E-2,1.42E0,3.5E-1,7.0710677E-1,9.659258E-1,3.8066718E-3,-5.357949E-4,4.7173104E-4,8.937284E-3,-3.938528E-3,1.657526E-2,4.4759102E-2,-2.0736694E-2,-1.2880157E-3,-4.978033E-3,-1.407519E-3,1.823775E-2,2.2145582E-3,-2.1245126E-2,2.4113266E-3,-5.6187115E-3],"split_indices":[2,7,5,10,10,7,9,9,7,10,5,5,4,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,3.345E3,1.55E2,1E3,5E2,2.454E3,8.91E2,1.03E2,5.2E1,9.51E2,4.9E1,4.5E1,4.55E2,2.66E2,2.188E3,6.51E2,2.4E2,7.9E1,2.4E1,3E0,4.9E1,7.16E2,2.35E2,2.9E1,2E1,3E1,1.5E1,3.91E2,6.4E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.8332452E-4,3.989631E-3,-8.694798E-3,-3.00425E-2,7.165284E-3,-1.5791643E-2,5.5020833E-3,-8.6905085E-2,3.967875E-2,9.535488E-3,-4.5546383E-2,-1.9843666E-2,6.1674695E-2,-5.3488407E-2,1.1440813E-2,-2.3622617E-2,-5.197279E-3,-6.935996E-4,2.1030284E-2,3.6986484E-4,3.7778746E-3,1.6404198E-3,-1.4521061E-2,-1.1593939E-3,-4.482337E-3,-1.2714603E-3,1.6500823E-2,2.000247E-3,-1.9253394E-2,2.1708102E-3,-5.0654863E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":65,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6903274E-1,3.7858316E-1,1.5131727E-1,1.1888428E0,4.0060872E-1,3.1543308E-1,1.7612654E-1,8.483838E-1,1.0751945E0,5.052945E-1,8.544295E-1,1.9566444E-1,3.8644344E-1,4.7390577E-1,2.918244E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-8.660254E-1,1.58E0,2.5881904E-1,1E0,1E0,-8.660254E-1,-7.0710677E-1,7.0710677E-1,8.660254E-1,8.660254E-1,1.42E0,3.5E-1,7.0710677E-1,9.659258E-1,-2.3622617E-2,-5.197279E-3,-6.935996E-4,2.1030284E-2,3.6986484E-4,3.7778746E-3,1.6404198E-3,-1.4521061E-2,-1.1593939E-3,-4.482337E-3,-1.2714603E-3,1.6500823E-2,2.000247E-3,-1.9253394E-2,2.1708102E-3,-5.0654863E-3],"split_indices":[2,10,5,7,7,7,9,8,8,7,10,5,4,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,2.98E2,3.202E3,1E3,5E2,1.64E2,1.34E2,3.065E3,1.37E2,9.51E2,4.9E1,4.5E1,4.55E2,3E1,1.34E2,1.06E2,2.8E1,2.541E3,5.24E2,8.5E1,5.2E1,7.16E2,2.35E2,2.9E1,2E1,3E1,1.5E1,3.91E2,6.4E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.594289E-4,1.9219057E-3,-1.9633275E-2,3.8201996E-4,3.1131208E-2,-2.5223376E-2,1.2888163E-1,-2.7947542E-3,1.4516403E-2,-7.470796E-2,7.32782E-2,1.702685E-3,-6.396087E-2,2.33917E-1,-2.4575489E-2,-2.350855E-3,1.4534999E-5,2.696404E-3,-9.205405E-3,-1.4593558E-3,-4.5381103E-2,5.2207783E-3,1.948916E-2,1.3294221E-3,-9.573433E-3,7.5981477E-3,-7.268939E-3,4.176706E-2,1.2174874E-2,-1.2037172E-2,3.7817347E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":66,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.7449352E-1,2.0657659E-1,3.428082E-1,1.9599178E-1,1.0314591E0,4.1211298E-1,2.4752499E-1,2.1705355E-1,1.0650487E0,1.4974878E0,4.126286E-1,2.6556277E-1,2.0340425E-1,1.3465106E-1,4.639113E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.2E-1,1E0,8.660254E-1,-5E-1,3.4E-1,1.48E0,-8.660254E-1,7E-1,9.659258E-1,9.659258E-1,9.659258E-1,-9.659258E-1,1E0,2.5E-1,-2.350855E-3,1.4534999E-5,2.696404E-3,-9.205405E-3,-1.4593558E-3,-4.5381103E-2,5.2207783E-3,1.948916E-2,1.3294221E-3,-9.573433E-3,7.5981477E-3,-7.268939E-3,4.176706E-2,1.2174874E-2,-1.2037172E-2,3.7817347E-3],"split_indices":[9,4,8,9,10,11,5,8,11,7,7,8,7,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,4.363E3,2.29E2,3.94E2,1.4E1,3.563E3,8E2,6.5E1,1.64E2,2.33E2,1.61E2,8E0,6E0,4.42E2,3.121E3,7.17E2,8.3E1,5.7E1,8E0,1.41E2,2.3E1,2.09E2,2.4E1,9E0,1.52E2,2E0,6E0,2E0,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.4483537E-4,1.9589623E-2,-1.5821168E-3,-1.3260833E-2,9.581435E-2,9.4033376E-4,-2.387568E-2,9.5871665E-2,-7.154954E-2,5.171388E-1,8.097175E-2,-1.7263805E-2,5.884932E-3,1.5026459E-1,-3.1191468E-2,-2.8266634E-3,1.4454027E-2,-4.3214597E-3,-2.4534617E-2,1.5799213E-2,5.841903E-2,1.6172344E-3,1.9663177E-2,6.2524073E-4,-4.61404E-3,-8.8095805E-4,2.2018515E-3,5.723911E-3,3.0155985E-2,-9.428196E-3,-2.0650064E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":67,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6796567E-1,1.0229094E0,2.583633E-1,1.8261608E0,7.2731304E-1,3.716717E-1,5.996326E-1,6.0824937E-1,9.1028243E-1,4.0278435E-3,8.961841E-1,5.992266E-1,7.69977E-1,2.5015095E-1,2.966661E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.62E0,1.74E0,1.14E0,-9.659258E-1,-7.0710677E-1,-9.659258E-1,-5E-1,1E0,7.2E-1,5E-1,6.5E-1,2.5881904E-1,1E0,-5E-1,-2.8266634E-3,1.4454027E-2,-4.3214597E-3,-2.4534617E-2,1.5799213E-2,5.841903E-2,1.6172344E-3,1.9663177E-2,6.2524073E-4,-4.61404E-3,-8.8095805E-4,2.2018515E-3,5.723911E-3,3.0155985E-2,-9.428196E-3,-2.0650064E-3],"split_indices":[9,5,5,5,7,7,7,7,0,4,8,4,8,1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,2.85E2,1.22E2,4.127E3,4.66E2,9.9E1,1.86E2,3E0,1.19E2,8.81E2,3.246E3,1.8E1,4.48E2,2.8E1,7.1E1,1.61E2,2.5E1,1E0,2E0,7.7E1,4.2E1,4.86E2,3.95E2,1.699E3,1.547E3,1.2E1,6E0,6.3E1,3.85E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.5035288E-4,3.931737E-3,-8.6696185E-3,5.9562423E-3,-3.9516505E-2,-1.4967814E-2,3.931507E-3,-6.1860017E-4,2.4045123E-2,7.832703E-3,-1.3168256E-1,-1.8684717E-2,5.6101367E-2,1.8013863E-2,-1.9609936E-2,-1.4749018E-3,8.038194E-4,3.2767304E-3,-9.531388E-3,5.7933554E-3,-1.2373618E-2,4.2556237E-2,-1.7362852E-2,-1.0167551E-3,-4.2431196E-3,-1.1179128E-3,1.4954487E-2,2.398E-3,-1.2196982E-2,-9.849918E-4,-2.3797909E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":68,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.6682594E-1,3.0818745E-1,1.1918476E-1,3.9795983E-1,6.8181384E-1,2.654696E-1,1.6644424E-1,3.0042425E-1,9.317583E-1,6.927066E-1,1.3127205E0,1.9211313E-1,3.1601804E-1,2.6516575E-1,3.983378E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,1.58E0,8.660254E-1,8.660254E-1,1E0,5E-1,-2.5881904E-1,1.78E0,1.68E0,1.2E-2,7.0710677E-1,3.5E-1,1E0,1E0,-1.4749018E-3,8.038194E-4,3.2767304E-3,-9.531388E-3,5.7933554E-3,-1.2373618E-2,4.2556237E-2,-1.7362852E-2,-1.0167551E-3,-4.2431196E-3,-1.1179128E-3,1.4954487E-2,2.398E-3,-1.2196982E-2,-9.849918E-4,-2.3797909E-2],"split_indices":[2,7,5,10,10,7,9,7,5,5,5,7,4,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,3.345E3,1.55E2,1E3,5E2,2.454E3,8.91E2,1.03E2,5.2E1,9.51E2,4.9E1,3.13E2,1.87E2,9.32E2,1.522E3,8.31E2,6E1,7.5E1,2.8E1,3E0,4.9E1,7.01E2,2.5E2,2.9E1,2E1,3.01E2,1.2E1,1.8E2,7E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.324448E-4,1.776857E-2,-1.4338745E-3,-1.1873425E-2,8.654777E-2,-4.5068087E-3,1.6078563E-2,8.637331E-2,-6.4348295E-2,1.2290143E-1,-6.853199E-2,8.0344744E-4,-2.183406E-2,-9.3502E-3,6.78776E-2,1.8147951E-2,2.2592638E-3,2.0180944E-2,-8.052562E-3,8.629556E-3,5.3308215E-2,9.5258764E-4,-2.5946194E-2,-2.2760876E-3,5.61836E-4,-7.1548834E-3,-5.379537E-5,-8.966436E-3,1.0916919E-3,-1.6899105E-2,7.7345218E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":69,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.381721E-1,8.328387E-1,2.4729657E-1,1.4800265E0,7.018619E-1,3.5969296E-1,9.0422386E-1,6.024935E-1,8.2142055E-1,1.4555E0,3.601577E-1,3.3971414E-1,9.708179E-1,7.513654E-1,5.19894E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.62E0,7.5E-1,1.14E0,1E0,6.8E-1,3.5E-2,1E0,-9.659258E-1,9.659258E-1,5E-1,-5E-1,-5E-1,-7.0710677E-1,-9.659258E-1,1.8147951E-2,2.2592638E-3,2.0180944E-2,-8.052562E-3,8.629556E-3,5.3308215E-2,9.5258764E-4,-2.5946194E-2,-2.2760876E-3,5.61836E-4,-7.1548834E-3,-5.379537E-5,-8.966436E-3,1.0916919E-3,-1.6899105E-2,7.7345218E-3],"split_indices":[9,5,4,5,2,4,5,1,7,8,8,9,7,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,2.85E2,1.22E2,3.908E3,6.85E2,9.9E1,1.86E2,9.9E1,2.3E1,2.992E3,9.16E2,4.6E2,2.25E2,3.9E1,6E1,1E1,1.76E2,9.2E1,7E0,1.7E1,6E0,5.07E2,2.485E3,2.74E2,6.42E2,9.2E1,3.68E2,8E0,2.17E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.2791474E-4,2.4526628E-2,-9.945957E-4,-1.5950266E-2,2.1278991E-1,1.9249415E-3,-1.7658722E-2,6.2317885E-3,-2.4647857E-1,6.0770772E-2,3.696116E-1,-1.2956981E-3,2.5958562E-2,9.3282335E-2,-2.634645E-2,2.1119203E-2,-3.6574535E-3,-6.0240448E-2,2.7317412E-3,5.4047447E-2,-1.8170383E-3,1.2304266E-2,5.7921942E-2,3.9180656E-4,-2.2265613E-3,-1.4135264E-3,7.3989234E-3,-1.65902E-2,1.3069555E-2,-8.773315E-3,-1.6284504E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":70,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.3699083E-1,1.679863E0,2.3268564E-1,9.322096E-1,9.072944E-1,3.150664E-1,6.8966544E-1,1.4729145E0,1.5756735E0,8.050563E-1,9.107039E-1,3.925898E-1,9.273237E-1,5.259225E-1,4.0746862E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-9.659258E-1,1.72E0,1.72E0,1E0,5E-1,1.66E0,-8.660254E-1,2.2E-2,1.14E0,-8.660254E-1,1E0,1.52E0,5E-1,-8.660254E-1,-5E-1,2.1119203E-2,-3.6574535E-3,-6.0240448E-2,2.7317412E-3,5.4047447E-2,-1.8170383E-3,1.2304266E-2,5.7921942E-2,3.9180656E-4,-2.2265613E-3,-1.4135264E-3,7.3989234E-3,-1.65902E-2,1.3069555E-2,-8.773315E-3,-1.6284504E-3],"split_indices":[7,5,5,10,9,5,9,5,5,9,0,5,10,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,2.19E2,4.781E3,1.81E2,3.8E1,4.069E3,7.12E2,1.66E2,1.5E1,2E1,1.8E1,3.589E3,4.8E2,5.1E1,6.61E2,2.8E1,1.38E2,6E0,9E0,2E0,1.8E1,9E0,9E0,2.875E3,7.14E2,2.62E2,2.18E2,6E0,4.5E1,9.2E1,5.69E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.2964342E-4,1.6397819E-3,-1.6829269E-2,-1.2188843E-3,1.4265871E-2,-2.1877175E-2,1.1722086E-1,-1.6119052E-2,2.6228572E-3,-5.261898E-3,5.8204807E-2,2.6259176E-3,-5.713549E-2,1.5244049E-2,2.6764542E-1,3.585608E-4,-9.534749E-3,-5.7517196E-4,3.583764E-3,2.3680303E-2,-1.5089161E-3,-5.4621296E-3,1.5314092E-2,3.73623E-3,-2.8489924E-3,-5.2003786E-3,-3.1178117E-2,1.0653723E-2,-2.3328578E-2,3.1533938E-2,1.4587761E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":71,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.2810475E-1,1.657961E-1,2.7932352E-1,2.1447302E-1,7.2791517E-1,3.4140545E-1,2.2601725E-1,1.1993201E0,8.2884395E-1,1.4023286E0,2.8040066E0,2.5398377E-1,1.9548225E-1,2.5174442E-1,6.781587E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,-7.0710677E-1,1.62E0,3.4E-1,6.8E-1,7.2E-1,7.2E-1,-9.659258E-1,-1.8369701E-16,-1.8369701E-16,1E0,5.8E-1,1.48E0,3.585608E-4,-9.534749E-3,-5.7517196E-4,3.583764E-3,2.3680303E-2,-1.5089161E-3,-5.4621296E-3,1.5314092E-2,3.73623E-3,-2.8489924E-3,-5.2003786E-3,-3.1178117E-2,1.0653723E-2,-2.3328578E-2,3.1533938E-2,1.4587761E-3],"split_indices":[9,9,8,8,5,11,4,4,4,7,10,8,7,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.745E3,8.47E2,3.94E2,1.4E1,7.67E2,2.978E3,5.87E2,2.6E2,2.33E2,1.61E2,9E0,5E0,6.15E2,1.52E2,2.379E3,5.99E2,2.2E1,5.65E2,1.19E2,1.41E2,1.1E2,1.23E2,1.59E2,2E0,7E0,2E0,4E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.1881104E-4,3.2200492E-3,-7.1147354E-3,-2.5957977E-2,5.942812E-3,-1.2636411E-2,3.9317957E-3,-7.62661E-2,3.5722014E-2,7.911963E-3,-3.784965E-2,-1.6022408E-2,5.208569E-2,1.7785389E-2,-1.9227568E-2,-2.198596E-2,-4.6578543E-3,1.3778947E-2,-2.9883976E-3,3.2085172E-4,3.0670532E-3,1.2745572E-3,-1.1923342E-2,-7.9348386E-4,-3.9717616E-3,9.844377E-3,-6.264608E-3,5.050324E-3,-8.1553304E-4,-1.0517996E-3,-2.138782E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":72,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.12210095E-1,2.7829072E-1,9.1603726E-2,9.3052286E-1,2.7650687E-1,2.2020249E-1,1.6108301E-1,6.931445E-1,9.0810955E-1,3.2809758E-1,5.697526E-1,1.8212293E-1,2.7210432E-1,2.669114E-1,3.1647122E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-8.660254E-1,1.58E0,2.5881904E-1,1E0,1E0,5E-1,5.8E-1,1E0,8.660254E-1,8.660254E-1,8.660254E-1,8.660254E-1,-1.8369701E-16,1E0,-2.198596E-2,-4.6578543E-3,1.3778947E-2,-2.9883976E-3,3.2085172E-4,3.0670532E-3,1.2745572E-3,-1.1923342E-2,-7.9348386E-4,-3.9717616E-3,9.844377E-3,-6.264608E-3,5.050324E-3,-8.1553304E-4,-1.0517996E-3,-2.138782E-2],"split_indices":[2,10,5,7,7,7,9,4,1,7,10,10,9,10,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,2.98E2,3.202E3,1E3,5E2,1.64E2,1.34E2,3.065E3,1.37E2,9.51E2,4.9E1,3.13E2,1.87E2,2.7E1,1.37E2,5.2E1,8.2E1,2.541E3,5.24E2,8.5E1,5.2E1,7.1E2,2.41E2,3.5E1,1.4E1,1.38E2,1.75E2,1.8E2,7E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.8431075E-5,1.4712893E-3,-1.5318773E-2,-1.0620307E-3,1.2660376E-2,-1.9917836E-2,1.0681115E-1,1.8651716E-2,-3.9028937E-3,-4.8270174E-3,5.2008756E-2,2.6321092E-3,-5.236703E-2,1.2549346E-2,2.461123E-1,-2.4268825E-3,5.0852527E-3,-4.5485552E-3,7.720683E-5,2.1424424E-2,-1.3720677E-3,-4.937692E-3,1.3732053E-2,-2.234188E-3,4.2838734E-3,-4.245835E-3,-1.7268736E-2,2.0588133E-2,-9.971883E-3,2.8985564E-2,1.3697863E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":73,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[1.05871886E-1,1.3020451E-1,2.3185593E-1,2.09864E-1,5.837604E-1,2.8917024E-1,1.9387315E-1,6.5357405E-1,6.3668644E-1,1.1485665E0,2.2642717E0,2.3592111E-1,1.8580687E-1,2.3758055E-1,5.70291E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,-8.660254E-1,1.62E0,3.4E-1,6.8E-1,3E-1,-7.0710677E-1,-9.659258E-1,-1.8369701E-16,5E-1,9.659258E-1,1.14E0,1.48E0,-2.4268825E-3,5.0852527E-3,-4.5485552E-3,7.720683E-5,2.1424424E-2,-1.3720677E-3,-4.937692E-3,1.3732053E-2,-2.234188E-3,4.2838734E-3,-4.245835E-3,-1.7268736E-2,2.0588133E-2,-9.971883E-3,2.8985564E-2,1.3697863E-3],"split_indices":[9,9,8,7,5,11,4,11,7,7,10,7,7,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.745E3,8.47E2,3.94E2,1.4E1,4.71E2,3.274E3,5.87E2,2.6E2,2.33E2,1.61E2,9E0,5E0,2.02E2,2.69E2,3.3E2,2.944E3,2.2E1,5.65E2,1.19E2,1.41E2,1.44E2,8.9E1,1.5E2,1.1E1,3E0,6E0,4E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.8279925E-5,1.4811035E-2,-1.2084033E-3,1.3081537E-1,1.1416428E-3,4.18939E-3,-9.319135E-3,4.7748208E-2,4.0016222E-1,2.5462499E-2,-1.7291296E-1,-1.1840667E-2,1.5671004E-2,-4.5457292E-2,-2.090138E-3,2.68075E-2,-2.1687409E-2,1.6177634E-2,1.2728177E-1,2.7466763E-2,1.4089249E-3,-2.1474486E-2,4.843151E-2,5.6031267E-3,-2.0528908E-3,5.0808424E-3,1.8882006E-4,-9.8936735E-3,1.7004429E-3,-2.1544776E-3,1.9511142E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":74,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[9.616168E-2,6.468199E-1,2.0116462E-1,9.429698E-1,1.5537382E0,5.079821E-1,4.795465E-1,2.0404534E0,1.8743755E0,9.087657E-1,1.3411932E0,6.8047047E-1,7.786459E-1,1.0238502E0,6.438156E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.8E-2,1.52E0,8.660254E-1,7.5E-1,1.14E0,-5E-1,-1.8369701E-16,5E-1,-9.659258E-1,1E0,-8.660254E-1,1.16E0,1E0,5E-1,2.68075E-2,-2.1687409E-2,1.6177634E-2,1.2728177E-1,2.7466763E-2,1.4089249E-3,-2.1474486E-2,4.843151E-2,5.6031267E-3,-2.0528908E-3,5.0808424E-3,1.8882006E-4,-9.8936735E-3,1.7004429E-3,-2.1544776E-3,1.9511142E-3],"split_indices":[9,5,5,8,4,5,9,8,7,7,7,8,5,2,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,4.2E1,3.65E2,2.758E3,1.835E3,3.3E1,9E0,3.21E2,4.4E1,1.151E3,1.607E3,3.05E2,1.53E3,1.8E1,1.5E1,8E0,1E0,1.3E1,3.08E2,4.2E1,2E0,1.3E2,1.021E3,4.52E2,1.155E3,1.64E2,1.41E2,8.05E2,7.25E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.293962E-4,2.8404496E-3,-6.194073E-3,-2.3345133E-2,5.283986E-3,-1.0964278E-2,3.3491806E-3,-6.897917E-2,3.2602724E-2,7.0678005E-3,-3.4386E-2,-3.237997E-3,-3.4037877E-2,6.9043334E-3,-7.437003E-2,-2.0111589E-2,-3.8125706E-3,1.1434592E-2,-4.724361E-3,2.730826E-4,2.8053557E-3,-1.1866659E-2,1.0447566E-3,-7.4406434E-4,8.294873E-3,5.6031346E-5,-5.7337726E-3,2.1420184E-3,-1.7624669E-3,-1.6084694E-3,-2.2711681E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":75,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.575104E-2,2.2413635E-1,6.836717E-2,7.656337E-1,2.2689971E-1,1.7834121E-1,1.3894162E-1,6.6501665E-1,8.8653284E-1,2.789744E-1,5.226865E-1,2.7263868E-1,2.0237142E-1,1.7128602E-1,1.9221063E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-8.660254E-1,1.58E0,2.5881904E-1,1E0,1.42E0,1E0,-7.0710677E-1,8.660254E-1,8.660254E-1,1E0,1E0,-1.8369701E-16,5E-1,8.660254E-1,-2.0111589E-2,-3.8125706E-3,1.1434592E-2,-4.724361E-3,2.730826E-4,2.8053557E-3,-1.1866659E-2,1.0447566E-3,-7.4406434E-4,8.294873E-3,5.6031346E-5,-5.7337726E-3,2.1420184E-3,-1.7624669E-3,-1.6084694E-3,-2.2711681E-2],"split_indices":[2,10,5,7,7,5,8,8,7,7,1,7,10,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,2.98E2,3.202E3,1E3,5E2,1.64E2,1.34E2,3.065E3,1.37E2,7.5E2,2.5E2,4.79E2,2.1E1,3E1,1.34E2,6.6E1,6.8E1,2.541E3,5.24E2,4.7E1,9E1,7.16E2,3.4E1,1.01E2,1.49E2,3.01E2,1.78E2,1.6E1,5E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.070507E-4,1.3534544E-2,-1.0854884E-3,-1.1411526E-2,7.142919E-2,-3.5601247E-3,1.3017192E-2,7.373904E-2,-5.6885563E-2,1.1052901E-1,-5.911952E-2,1.3117787E-3,-1.9457666E-2,-7.953933E-3,5.5736978E-2,5.1020677E-3,3.2862257E-2,2.6192734E-2,-6.8901055E-3,1.4697527E-2,-7.86103E-3,7.1269315E-4,-3.1425204E-2,-1.8905014E-3,5.442438E-4,-6.5601356E-3,3.0745272E-5,-6.454201E-3,1.2829722E-3,-1.516861E-2,6.404464E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":76,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.0094755E-2,5.900666E-1,1.6037236E-1,1.1116267E0,6.3437957E-1,3.027826E-1,6.1501837E-1,5.6228685E-1,7.3438704E-1,6.6642857E-1,4.9238676E-1,2.5004435E-1,8.3635676E-1,5.4301333E-1,3.9915812E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-8.660254E-1,1.62E0,7.5E-1,1.14E0,8.660254E-1,6.8E-1,3.5E-2,1E0,-9.659258E-1,1E0,1E0,-5E-1,-5E-1,-5E-1,-9.659258E-1,5.1020677E-3,3.2862257E-2,2.6192734E-2,-6.8901055E-3,1.4697527E-2,-7.86103E-3,7.1269315E-4,-3.1425204E-2,-1.8905014E-3,5.442438E-4,-6.5601356E-3,3.0745272E-5,-6.454201E-3,1.2829722E-3,-1.516861E-2,6.404464E-3],"split_indices":[9,5,4,5,7,4,5,7,8,2,1,9,7,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.07E2,4.593E3,2.85E2,1.22E2,3.908E3,6.85E2,9.9E1,1.86E2,9.4E1,2.8E1,2.992E3,9.16E2,4.6E2,2.25E2,9.2E1,7E0,6E0,1.8E2,7.9E1,1.5E1,2.3E1,5E0,5.07E2,2.485E3,2.74E2,6.42E2,1.23E2,3.37E2,8E0,2.17E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[9.866515E-5,1.040229E-3,-1.7723918E-2,2.102435E-3,-2.2405544E-2,1.6338842E-2,-1.0263465E-1,-1.5350936E-3,1.2397291E-2,8.81018E-3,-1.1043517E-1,1.2234195E-1,-4.6104558E-2,-2.533919E-1,-2.669979E-2,7.7556324E-5,-2.6468586E-3,-3.6956972E-4,5.545623E-3,1.5185795E-2,-2.878276E-3,-4.9345684E-3,-2.0408316E-2,5.8258064E-3,4.4329103E-2,9.886505E-4,-1.8989062E-2,-2.944897E-3,-3.264035E-2,-7.2841644E-3,2.6055727E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":77,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[8.3940715E-2,1.1836716E-1,7.276428E-1,1.7025688E-1,5.670422E-1,1.1970955E0,8.17471E-1,1.9359936E-1,8.2273304E-1,8.271415E-1,2.9885846E-1,1.3522083E0,9.196609E-1,3.8279796E-1,6.6845345E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.78E0,1E0,7.0710677E-1,8.660254E-1,1.62E0,0E0,8.660254E-1,9.659258E-1,7.0710677E-1,-5E-1,1E0,9.659258E-1,8.660254E-1,-5E-1,1E0,7.7556324E-5,-2.6468586E-3,-3.6956972E-4,5.545623E-3,1.5185795E-2,-2.878276E-3,-4.9345684E-3,-2.0408316E-2,5.8258064E-3,4.4329103E-2,9.886505E-4,-1.8989062E-2,-2.944897E-3,-3.264035E-2,-7.2841644E-3,2.6055727E-2],"split_indices":[5,7,7,10,5,9,7,7,7,9,0,8,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,4.545E3,2.05E2,1.79E2,7.1E1,3.359E3,1.186E3,1.52E2,5.3E1,6.6E1,1.13E2,2.3E1,4.8E1,3.075E3,2.84E2,8.64E2,3.22E2,3.1E1,1.21E2,3.3E1,2E1,5.6E1,1E1,8.2E1,3.1E1,6E0,1.7E1,4.2E1,6E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[8.9775174E-5,1.2411661E-3,-1.2840368E-2,6.5348526E-5,2.3545632E-2,-1.7082712E-2,9.97307E-2,1.3904269E-3,-2.375754E-2,-7.0615225E-2,6.1067272E-2,-5.503456E-3,-7.076492E-2,1.3611764E-2,2.2664048E-1,4.393784E-3,-6.0214745E-5,-3.637146E-2,-5.021275E-4,-1.531852E-3,-4.1912563E-2,4.0771007E-3,1.7860902E-2,1.6746292E-3,-4.486527E-3,-3.0357935E-3,-5.8998413E-2,-9.488991E-3,2.0008676E-2,2.6640872E-2,1.3899684E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":78,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.4469075E-2,1.20454416E-1,1.9702783E-1,1.3779226E-1,8.1691825E-1,2.4514252E-1,1.6085505E-1,3.5058707E-1,1.4631643E0,1.265497E0,3.8635164E-1,2.8625903E-1,1.4506952E0,2.2131471E-1,4.705897E-2,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.2E-1,1E0,7.5E-1,-5E-1,8.660254E-1,6.8E-1,-9.659258E-1,-9.659258E-1,9.659258E-1,9.659258E-1,6.8E-1,8.2E-1,1E0,1.48E0,4.393784E-3,-6.0214745E-5,-3.637146E-2,-5.021275E-4,-1.531852E-3,-4.1912563E-2,4.0771007E-3,1.7860902E-2,1.6746292E-3,-4.486527E-3,-3.0357935E-3,-5.8998413E-2,-9.488991E-3,2.0008676E-2,2.6640872E-2,1.3899684E-3],"split_indices":[9,4,8,11,10,8,4,7,7,7,7,4,4,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,4.363E3,2.29E2,3.94E2,1.4E1,4.134E3,2.29E2,6.5E1,1.64E2,3.25E2,6.9E1,9E0,5E0,1.84E2,3.95E3,1.1E1,2.18E2,5.7E1,8E0,1.41E2,2.3E1,2.08E2,1.17E2,6.5E1,4E0,6E0,3E0,4E0,1E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[6.474001E-5,2.5287163E-3,-5.682392E-3,-2.02679E-2,4.6559907E-3,-2.1177335E-3,-1.6612137E-2,-6.1668262E-2,3.0482672E-2,6.2600495E-3,-3.1015754E-2,1.9025546E-2,-9.51536E-3,-2.1475608E-2,1.08245544E-1,-1.0094717E-2,4.213908E-3,-8.4680686E-4,1.7314635E-2,2.5034076E-4,2.4437427E-3,1.527684E-3,-1.0554683E-2,9.778219E-3,7.306566E-4,-1.2276954E-3,4.3247226E-3,-8.608787E-4,-8.235039E-3,2.4075318E-2,-1.0855685E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":79,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.083251E-2,1.6987416E-1,5.8445E-2,6.3010633E-1,1.8346848E-1,1.7739367E-1,2.2639677E-1,6.7703134E-1,7.516418E-1,2.0930338E-1,4.7774512E-1,2.7063215E-1,1.2292634E-1,2.781334E-1,4.2832696E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-8.660254E-1,8.660254E-1,2.5881904E-1,1E0,-5E-1,1E0,7E-1,7.0710677E-1,8.660254E-1,8.660254E-1,2.5E-1,1E0,4.5E-1,0E0,-1.0094717E-2,4.213908E-3,-8.4680686E-4,1.7314635E-2,2.5034076E-4,2.4437427E-3,1.527684E-3,-1.0554683E-2,9.778219E-3,7.306566E-4,-1.2276954E-3,4.3247226E-3,-8.608787E-4,-8.235039E-3,2.4075318E-2,-1.0855685E-2],"split_indices":[2,10,10,7,7,7,7,11,8,7,10,4,8,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,2.98E2,3.202E3,1.132E3,3.68E2,1.64E2,1.34E2,3.065E3,1.37E2,2.93E2,8.39E2,3.55E2,1.3E1,1.19E2,4.5E1,1.06E2,2.8E1,2.541E3,5.24E2,8.5E1,5.2E1,3.7E1,2.56E2,7.98E2,4.1E1,2.94E2,6.1E1,8E0,5E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[6.265862E-5,9.1487134E-4,-1.6068518E-2,1.8139307E-3,-1.8929977E-2,1.4930431E-2,-9.3342714E-2,-1.1252663E-3,1.2808743E-2,9.382651E-3,-9.8798536E-2,1.1046964E-1,-4.1350774E-2,-2.313565E-1,-2.3839172E-2,2.2844035E-4,-1.4781398E-3,-1.3322599E-3,4.6375687E-3,1.3569349E-2,-2.3824966E-3,-6.3341423E-3,-2.484757E-2,5.2113268E-3,4.0281903E-2,9.4481645E-4,-1.7181832E-2,-3.196323E-3,-2.9604523E-2,-6.6822753E-3,2.4360843E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":80,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.8764426E-2,8.4800236E-2,6.026438E-1,1.4692259E-1,4.6675253E-1,9.724391E-1,6.8514097E-1,1.6710144E-1,8.418039E-1,6.4498866E-1,2.7084565E-1,1.1220579E0,7.5717115E-1,3.0010104E-1,5.7957554E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.78E0,1E0,7.0710677E-1,1.66E0,1.62E0,0E0,8.660254E-1,1.52E0,5E-1,-5E-1,7.2E-1,9.659258E-1,8.660254E-1,-5E-1,1E0,2.2844035E-4,-1.4781398E-3,-1.3322599E-3,4.6375687E-3,1.3569349E-2,-2.3824966E-3,-6.3341423E-3,-2.484757E-2,5.2113268E-3,4.0281903E-2,9.4481645E-4,-1.7181832E-2,-3.196323E-3,-2.9604523E-2,-6.6822753E-3,2.4360843E-2],"split_indices":[5,7,7,5,5,9,7,5,9,9,4,8,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,4.545E3,2.05E2,1.79E2,7.1E1,3.587E3,9.58E2,1.52E2,5.3E1,6.6E1,1.13E2,2.3E1,4.8E1,2.871E3,7.16E2,5.39E2,4.19E2,3.1E1,1.21E2,4.4E1,9E0,5.6E1,1E1,8.2E1,3.1E1,6E0,1.7E1,4.2E1,6E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.56484E-5,1.1758145E-3,-1.2523762E-2,-9.2732906E-4,1.0464965E-2,-1.63837E-2,8.995619E-2,1.7120712E-2,-3.528168E-3,-5.245902E-3,4.581947E-2,-5.7659615E-3,-6.5597974E-2,2.3380283E-1,1.6393514E-2,-2.3415058E-3,4.753419E-3,-3.9923373E-3,5.6362856E-5,1.9474652E-2,-1.3363535E-3,-4.2610294E-3,1.2022617E-2,1.450478E-3,-4.162036E-3,-2.8424494E-3,-5.4316826E-2,3.408245E-2,4.884688E-3,-9.363639E-3,1.6715666E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":81,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[7.048396E-2,8.974048E-2,1.632604E-1,1.758978E-1,4.7126192E-1,2.0602676E-1,1.5489328E-1,5.8301055E-1,4.8774126E-1,9.5719975E-1,1.7224422E0,2.3753893E-1,1.227267E0,8.232325E-2,1.9812495E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.660254E-1,1E0,-8.660254E-1,1.62E0,8.660254E-1,1.14E0,3E-1,-7.0710677E-1,-9.659258E-1,-1.8369701E-16,6.8E-1,8.2E-1,1E0,6.8E-1,-2.3415058E-3,4.753419E-3,-3.9923373E-3,5.6362856E-5,1.9474652E-2,-1.3363535E-3,-4.2610294E-3,1.2022617E-2,1.450478E-3,-4.162036E-3,-2.8424494E-3,-5.4316826E-2,3.408245E-2,4.884688E-3,-9.363639E-3,1.6715666E-2],"split_indices":[9,9,8,7,5,8,5,11,7,7,10,4,4,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.745E3,8.47E2,3.94E2,1.4E1,4.71E2,3.274E3,5.87E2,2.6E2,3.25E2,6.9E1,4E0,1E1,2.02E2,2.69E2,3.3E2,2.944E3,2.2E1,5.65E2,1.19E2,1.41E2,2.08E2,1.17E2,6.5E1,4E0,2E0,2E0,6E0,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[5.2257652E-5,8.518876E-4,-1.5083577E-2,-2.4703022E-3,6.398346E-3,2.723159E-1,-2.3233423E-2,2.987336E-3,-1.1978612E-2,-3.944835E-2,1.164462E-2,3.66598E-2,1.6128346E-2,2.439645E-3,-8.4953986E-2,-1.9128722E-4,5.6684637E-3,-1.9003162E-3,3.3642463E-3,6.746954E-3,-1.30848065E-2,-8.126578E-4,2.4120873E-3,8.510156E-3,-4.5243255E-3,-2.0995464E-2,-2.1995427E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":82,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,-1,23,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.0540285E-2,8.755958E-2,5.942345E-1,1.5426153E-1,4.285927E-1,1.4152408E-2,3.8842353E-1,4.9715707E-1,3.480261E-1,1.7971525E0,3.9437547E-1,0E0,0E0,6.896816E-1,5.62012E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,-1,24,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.78E0,5E-1,-9.659258E-1,1.52E0,-7.0710677E-1,-5E-1,7.0710677E-1,1.48E0,2.5881904E-1,2.9E-1,5.5E-1,3.66598E-2,1.6128346E-2,0E0,8.660254E-1,-1.9128722E-4,5.6684637E-3,-1.9003162E-3,3.3642463E-3,6.746954E-3,-1.30848065E-2,-8.126578E-4,2.4120873E-3,8.510156E-3,-4.5243255E-3,-2.0995464E-2,-2.1995427E-3],"split_indices":[5,8,7,5,7,9,7,5,8,11,4,0,0,9,7,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,2.971E3,1.779E3,6E0,2.44E2,1.888E3,1.083E3,1.82E2,1.597E3,2E0,4E0,1.73E2,7.1E1,1.731E3,1.57E2,9.39E2,1.44E2,8.4E1,9.8E1,6.18E2,9.79E2,6.3E1,1.1E2,2.3E1,4.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"27","size_leaf_vector":"1"}},{"base_weights":[5.418001E-5,1.0582485E-3,-1.1221469E-2,2.420485E-5,2.06735E-2,-1.4775632E-2,8.311958E-2,1.3501506E-3,-2.3814097E-2,-6.624978E-2,5.5317517E-2,-4.8186723E-3,-6.0935535E-2,2.169312E-1,1.473979E-2,3.575526E-3,-2.6116177E-5,-3.3900548E-2,-6.4345973E-4,-1.3267824E-2,1.684522E-2,2.1040043E-2,4.1778986E-3,1.3387506E-3,-3.7024373E-3,-2.6625225E-3,-5.016445E-2,3.1756964E-2,4.3982347E-3,-8.530496E-3,1.5185447E-2],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":83,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.6630813E-2,9.315944E-2,1.3836724E-1,1.3797075E-1,6.9628024E-1,1.812532E-1,1.3405263E-1,2.2924286E-1,1.2577285E0,1.0513487E0,3.3764273E-1,1.9164337E-1,1.045104E0,7.305907E-2,1.6384755E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.2E-1,1E0,7.5E-1,-5E-1,8.660254E-1,1.14E0,-9.659258E-1,-9.659258E-1,8.660254E-1,-8.660254E-1,6.8E-1,8.2E-1,1E0,6.8E-1,3.575526E-3,-2.6116177E-5,-3.3900548E-2,-6.4345973E-4,-1.3267824E-2,1.684522E-2,2.1040043E-2,4.1778986E-3,1.3387506E-3,-3.7024373E-3,-2.6625225E-3,-5.016445E-2,3.1756964E-2,4.3982347E-3,-8.530496E-3,1.5185447E-2],"split_indices":[9,4,8,11,10,8,5,7,7,8,7,4,4,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,4.363E3,2.29E2,3.94E2,1.4E1,4.134E3,2.29E2,6.5E1,1.64E2,3.25E2,6.9E1,4E0,1E1,1.84E2,3.95E3,1.1E1,2.18E2,5.1E1,1.4E1,1.2E1,1.52E2,2.08E2,1.17E2,6.5E1,4E0,2E0,2E0,6E0,4E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[4.5859222E-5,3.761366E-3,-2.9943632E-3,-8.995683E-3,2.1595491E-2,1.0582847E-2,-1.5783764E-2,3.968746E-2,-1.6222203E-2,3.5538122E-2,-2.6384845E-2,4.011857E-2,-2.107571E-2,-6.785526E-2,1.0048923E-2,-2.0659098E-3,8.531589E-3,5.373604E-4,-3.372604E-3,-1.6545014E-3,6.4682113E-3,-3.2668035E-2,-9.9015E-4,-1.3215018E-4,1.1053949E-2,1.0153753E-3,-5.8394405E-3,5.569159E-4,-1.9053906E-2,-6.118896E-4,5.3543407E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":84,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.6502398E-2,5.1232105E-1,4.7786275E-1,4.6256995E-1,6.2910247E-1,1.2491486E0,1.9067547E0,4.6986067E-1,4.3262413E-1,1.1061089E0,1.0461388E0,2.0166554E0,7.523035E-1,4.2348146E0,6.6697156E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.26E0,5E-1,6.123234E-17,-8.660254E-1,1E0,0E0,0E0,-5E-1,1E0,-2.5881904E-1,-9.659258E-1,6E-1,5.8E-1,6E-1,6.5E-1,-2.0659098E-3,8.531589E-3,5.373604E-4,-3.372604E-3,-1.6545014E-3,6.4682113E-3,-3.2668035E-2,-9.9015E-4,-1.3215018E-4,1.1053949E-2,1.0153753E-3,-5.8394405E-3,5.569159E-4,-1.9053906E-2,-6.118896E-4,5.3543407E-3],"split_indices":[5,10,10,8,10,9,9,10,1,8,7,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,2.25E3,2.75E3,1.312E3,9.38E2,1.334E3,1.416E3,1.69E2,1.143E3,7.27E2,2.11E2,6.9E2,6.44E2,4.69E2,9.47E2,7.3E1,9.6E1,5.12E2,6.31E2,2.61E2,4.66E2,1E1,2.01E2,4.35E2,2.55E2,3.51E2,2.93E2,2.94E2,1.75E2,6.91E2,2.56E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.469279E-5,2.1477938E-3,-4.8940224E-3,1.0515933E-2,-2.5037786E-3,-9.225292E-3,3.76964E-3,2.7580233E-3,6.3021295E-2,-2.1144763E-2,2.6545569E-3,-1.1416914E-2,4.9839497E-2,1.6879378E-2,-1.8146463E-2,-4.762841E-3,1.7252754E-3,4.1705295E-2,3.681355E-3,-7.1100057E-3,3.2498601E-3,-1.2415668E-3,2.0664297E-3,-1.4219418E-3,4.020934E-3,-1.2546825E-2,1.6710209E-2,4.6588564E-3,-6.6800317E-4,-1.6632272E-2,-7.0985215E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":85,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.209529E-2,1.3630277E-1,5.6359287E-2,5.093982E-1,2.1650429E-1,1.3014618E-1,1.4425081E-1,7.976202E-1,1.4784646E0,1.3100383E0,4.7902527E-1,1.4033528E-1,7.610194E-1,2.200895E-1,3.0658332E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.25E-1,1.58E0,9.659258E-1,-7.0710677E-1,1E0,5E-1,-5E-1,-8.660254E-1,1.2246469E-16,2.5881904E-1,1E0,3.5E-1,-1.8369701E-16,-9.659258E-1,-4.762841E-3,1.7252754E-3,4.1705295E-2,3.681355E-3,-7.1100057E-3,3.2498601E-3,-1.2415668E-3,2.0664297E-3,-1.4219418E-3,4.020934E-3,-1.2546825E-2,1.6710209E-2,4.6588564E-3,-6.6800317E-4,-1.6632272E-2,-7.0985215E-4],"split_indices":[2,11,5,8,7,8,9,9,9,9,8,7,4,10,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3.5E3,1.5E3,1.25E3,2.25E3,1E3,5E2,1.09E3,1.6E2,4.87E2,1.763E3,9.65E2,3.5E1,3.13E2,1.87E2,2.43E2,8.47E2,1E1,1.5E2,2.52E2,2.35E2,9.6E2,8.03E2,9.16E2,4.9E1,1.4E1,2.1E1,1.38E2,1.75E2,1.2E1,1.75E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[3.777445E-5,1.0395276E-3,-1.1211835E-2,1.7425523E-4,1.7452613E-2,-1.442629E-2,7.4182935E-2,-8.729458E-3,3.3290382E-3,-6.0478423E-2,4.851925E-2,-5.330506E-3,-5.6580566E-2,1.990213E-1,1.0694325E-2,3.4501404E-3,-1.9908447E-3,-2.1932852E-3,1.0269997E-3,-1.1251107E-3,-3.7100133E-2,8.316816E-3,-7.46055E-4,1.225914E-3,-3.6439875E-3,-2.4888755E-3,-4.6359636E-2,2.8978119E-2,4.192098E-3,-2.2710234E-2,5.7184226E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":86,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.6369588E-2,6.522578E-2,1.1333971E-1,1.2261069E-1,5.597771E-1,1.5115175E-1,1.16758816E-1,5.5258954E-1,5.653517E-1,1.0047156E0,3.206608E-1,1.7883484E-1,8.913963E-1,5.914411E-2,1.3459323E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,8.2E-1,1E0,-5E-1,-5E-1,8.660254E-1,1.14E0,1.14E0,1.14E0,9.659258E-1,1.2246469E-16,6.8E-1,8.2E-1,1E0,1.22E0,3.4501404E-3,-1.9908447E-3,-2.1932852E-3,1.0269997E-3,-1.1251107E-3,-3.7100133E-2,8.316816E-3,-7.46055E-4,1.225914E-3,-3.6439875E-3,-2.4888755E-3,-4.6359636E-2,2.8978119E-2,4.192098E-3,-2.2710234E-2,5.7184226E-3],"split_indices":[9,4,8,9,10,8,5,5,5,7,9,4,4,1,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,4.363E3,2.29E2,3.94E2,1.4E1,1.141E3,3.222E3,6.5E1,1.64E2,3.25E2,6.9E1,4E0,1E1,2.34E2,9.07E2,6.94E2,2.528E3,5.7E1,8E0,1.01E2,6.3E1,2.08E2,1.17E2,6.5E1,4E0,2E0,2E0,1E0,9E0],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.0896556E-5,3.699814E-3,-2.9893774E-3,-7.5460337E-3,1.9420898E-2,9.307407E-3,-1.4572453E-2,3.746259E-2,-1.4227781E-2,4.952142E-2,-3.2701597E-4,3.7340727E-2,-2.073962E-2,-5.9722383E-2,7.827378E-3,1.9420086E-3,1.6455367E-2,-3.6908959E-3,1.1352218E-4,-2.656792E-2,6.2589827E-3,3.8555455E-3,-8.786625E-3,-7.0633314E-4,9.323167E-3,7.7727565E-4,-5.4806345E-3,6.23126E-4,-1.6993036E-2,-2.2378238E-3,2.9349744E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":87,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.539488E-2,3.981164E-1,3.919732E-1,3.953997E-1,5.5817896E-1,1.1252688E0,1.4335514E0,3.8662136E-1,3.9866984E-1,1.5489593E0,1.936713E0,1.7155716E0,6.269295E-1,3.4173088E0,6.169481E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.26E0,5E-1,6.123234E-17,-8.660254E-1,0E0,0E0,0E0,1E0,0E0,-9.659258E-1,7E-1,5.8E-1,5.8E-1,6E-1,1.62E0,1.9420086E-3,1.6455367E-2,-3.6908959E-3,1.1352218E-4,-2.656792E-2,6.2589827E-3,3.8555455E-3,-8.786625E-3,-7.0633314E-4,9.323167E-3,7.7727565E-4,-5.4806345E-3,6.23126E-4,-1.6993036E-2,-2.2378238E-3,2.9349744E-3],"split_indices":[5,10,10,8,9,9,9,9,9,8,11,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,2.25E3,2.75E3,1.312E3,9.38E2,1.334E3,1.416E3,1.69E2,1.143E3,3.71E2,5.67E2,6.9E2,6.44E2,4.69E2,9.47E2,1.49E2,2E1,4.61E2,6.82E2,1.4E1,3.57E2,3.93E2,1.74E2,3.85E2,3.05E2,3.51E2,2.93E2,2.94E2,1.75E2,3.94E2,5.53E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.437943E-5,8.0772705E-4,-1.50023885E-2,-4.5575323E-3,3.9379373E-3,2.4922088E-1,-2.2490392E-2,2.2955246E-2,-7.1120216E-3,2.0187188E-2,-1.4850416E-3,3.4081984E-2,1.4441733E-2,2.7123402E-4,-7.718528E-2,7.3353234E-3,-4.512572E-3,-3.0882738E-4,-3.0757715E-3,9.321115E-4,1.36682065E-2,-1.7833324E-3,3.965265E-4,7.1562952E-3,-4.083635E-3,-1.908092E-2,-1.9957551E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":88,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,-1,23,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.9591614E-2,7.9808086E-2,5.0220966E-1,1.2322547E-1,2.6447615E-1,1.7978966E-2,3.050324E-1,5.145505E-1,1.5242133E-1,9.493731E-1,2.006419E-1,0E0,0E0,5.1285195E-1,4.6436748E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,-1,24,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.78E0,5.5E-1,-9.659258E-1,-8.660254E-1,3.25E-1,-5E-1,7.0710677E-1,5E-1,4.5E-1,1E0,-5E-1,3.4081984E-2,1.4441733E-2,0E0,8.660254E-1,7.3353234E-3,-4.512572E-3,-3.0882738E-4,-3.0757715E-3,9.321115E-4,1.36682065E-2,-1.7833324E-3,3.965265E-4,7.1562952E-3,-4.083635E-3,-1.908092E-2,-1.9957551E-3],"split_indices":[5,4,7,9,11,9,7,8,4,10,10,0,0,9,7,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,1.75E3,3E3,6E0,2.44E2,1.48E2,1.602E3,7.5E2,2.25E3,2E0,4E0,1.73E2,7.1E1,8.5E1,6.3E1,1.37E3,2.32E2,6.87E2,6.3E1,5.62E2,1.688E3,6.3E1,1.1E2,2.3E1,4.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"27","size_leaf_vector":"1"}},{"base_weights":[2.1575115E-5,1.0291482E-3,-1.1293351E-2,-9.096845E-4,8.909465E-3,1.8275281E-3,-3.2806452E-2,2.3057063E-3,-1.04579665E-2,1.2709294E-1,2.1575445E-3,2.4967108E-2,-3.5497792E-2,-8.663064E-2,6.1253224E-2,5.680386E-4,-1.9296615E-3,-1.3080073E-2,-5.037553E-4,1.7843518E-2,-3.6040574E-2,-2.3739503E-3,2.2946666E-3,-1.219738E-3,6.7318655E-3,3.1583502E-3,-9.304952E-3,-6.118327E-3,-1.78236E-2,3.5400465E-2,-1.0127667E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":89,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.70261E-2,7.018279E-2,1.1550872E-1,1.13220386E-1,7.2348046E-1,2.211278E-1,7.900228E-1,2.0124324E-1,6.053347E-1,1.2907434E0,4.6301043E-1,2.4950892E-1,3.8128197E-1,2.198754E-1,1.0393806E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,1E0,1.58E0,6.5E-1,-9.659258E-1,5E-1,5E-1,9.659258E-1,-9.659258E-1,1E0,0E0,6.5E-1,3.25E-1,1.2246469E-16,-7.0710677E-1,5.680386E-4,-1.9296615E-3,-1.3080073E-2,-5.037553E-4,1.7843518E-2,-3.6040574E-2,-2.3739503E-3,2.2946666E-3,-1.219738E-3,6.7318655E-3,3.1583502E-3,-9.304952E-3,-6.118327E-3,-1.78236E-2,3.5400465E-2,-1.0127667E-4],"split_indices":[9,0,5,4,7,7,7,7,7,10,9,4,11,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.686E3,9.06E2,2.54E2,1.54E2,2.758E3,9.28E2,4.8E1,8.58E2,1.57E2,9.7E1,9.8E1,5.6E1,2.386E3,3.72E2,3.9E1,8.89E2,4.4E1,4E0,3.82E2,4.76E2,8.4E1,7.3E1,4.5E1,5.2E1,7.8E1,2E1,9E0,4.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.4927111E-5,3.641781E-3,-2.9527438E-3,-6.1327256E-3,1.7305557E-2,8.120375E-3,-1.3382991E-2,7.025364E-2,-9.528197E-3,4.5063004E-2,-9.0408354E-4,3.3016894E-2,-1.85643E-2,-5.398127E-2,6.758964E-3,-5.5960505E-3,1.8150458E-2,3.7930033E-4,-2.0499553E-3,-2.4064085E-2,5.690796E-3,-4.8593795E-3,5.7407576E-3,-2.1432436E-4,9.277004E-3,-1.5316889E-2,-1.1978745E-3,5.366457E-4,-1.5314944E-2,-2.1017913E-3,2.6551576E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":90,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.383806E-2,3.0074218E-1,3.178364E-1,3.4121925E-1,4.746612E-1,8.875276E-1,1.1590865E0,7.964778E-1,1.839365E-1,1.2725981E0,1.5823215E0,1.4519405E0,5.699228E-1,2.7669625E0,5.217465E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.26E0,5E-1,6.123234E-17,-9.659258E-1,0E0,0E0,0E0,-5E-1,1E0,-9.659258E-1,1.14E0,6E-1,-9.659258E-1,6E-1,1.62E0,-5.5960505E-3,1.8150458E-2,3.7930033E-4,-2.0499553E-3,-2.4064085E-2,5.690796E-3,-4.8593795E-3,5.7407576E-3,-2.1432436E-4,9.277004E-3,-1.5316889E-2,-1.1978745E-3,5.366457E-4,-1.5314944E-2,-2.1017913E-3,2.6551576E-3],"split_indices":[5,10,10,8,9,9,9,10,1,8,5,4,7,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,2.25E3,2.75E3,1.312E3,9.38E2,1.334E3,1.416E3,5.5E1,1.257E3,3.71E2,5.67E2,6.9E2,6.44E2,4.69E2,9.47E2,2.6E1,2.9E1,5.68E2,6.89E2,1.4E1,3.57E2,3.12E2,2.55E2,4.35E2,2.55E2,2.9E1,6.15E2,2.94E2,1.75E2,3.94E2,5.53E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.7831855E-6,8.06185E-3,-1.4150849E-3,2.0914233E-1,2.7412217E-4,-4.4110645E-2,3.0896274E-4,-5.1931154E-2,2.681553E-1,8.4183805E-2,-1.0870561E-2,1.9044797E-4,-1.0276548E-1,-1.734625E-2,5.875822E-3,6.3835056E-3,-1.889757E-2,5.204442E-3,3.413683E-2,-3.2477367E-3,2.1623956E-2,5.6249383E-3,-3.1532277E-3,8.054994E-3,-3.8137778E-3,-2.047516E-2,-5.2797194E-3,1.5994905E-4,-5.734789E-3,-2.4589233E-3,9.951241E-4],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":91,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.7322245E-2,1.1759785E0,3.1292626E-1,4.4531393E-1,6.779614E-1,4.2876765E-1,4.0178898E-1,1.0725404E-1,3.4614265E-1,1.316514E0,8.89334E-1,2.9567552E-1,3.5101086E-1,7.427951E-1,3.8612735E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[2.2E-2,-9.659258E-1,-9.659258E-1,-5E-1,-8.660254E-1,6.123234E-17,-5E-1,0E0,0E0,5E-1,-5E-1,-5E-1,1.22E0,6.123234E-17,1.14E0,6.3835056E-3,-1.889757E-2,5.204442E-3,3.413683E-2,-3.2477367E-3,2.1623956E-2,5.6249383E-3,-3.1532277E-3,8.054994E-3,-3.8137778E-3,-2.047516E-2,-5.2797194E-3,1.5994905E-4,-5.734789E-3,-2.4589233E-3,9.951241E-4],"split_indices":[5,8,8,10,7,10,9,9,9,10,9,9,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,7.5E2,4.25E3,2.7E1,7.23E2,1.64E2,4.086E3,5E0,2.2E1,8.4E1,6.39E2,9.4E1,7E1,9.79E2,3.107E3,3E0,2E0,6E0,1.6E1,4.5E1,3.9E1,1.5E2,4.89E2,3E1,6.4E1,2.2E1,4.8E1,6.65E2,3.14E2,3.66E2,2.741E3],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.0827295E-5,2.8570972E-3,-4.257872E-3,1.0894092E-2,-4.2249025E-3,-1.8049942E-2,6.8967454E-3,7.7729255E-2,4.3689045E-3,-4.0822536E-2,6.315081E-3,4.677663E-2,-2.3863953E-2,-7.097128E-2,1.3359976E-2,1.3182486E-2,-5.4493393E-3,-6.189806E-5,6.1469255E-3,-2.5270884E-3,-1.2055828E-2,1.1815612E-3,-4.0741875E-3,-4.4516115E-3,1.2134192E-2,-1.4708441E-3,-6.107339E-3,9.441858E-3,-1.2671513E-2,1.9280314E-3,-4.976271E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":92,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[6.0773667E-2,1.7085691E-1,3.0796885E-1,6.128338E-1,6.158964E-1,3.3844385E-1,5.5807805E-1,9.0126663E-1,3.6516446E-1,4.3964136E-1,3.214408E-1,5.0913966E-1,2.7913365E-1,7.956189E-1,3.8326243E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.52E0,-1.8369701E-16,-1.8369701E-16,-8.660254E-1,-7.0710677E-1,-8.660254E-1,-8.660254E-1,1.22E0,1.48E0,7.5E-1,1E0,-7.0710677E-1,-2.5881904E-1,2.5E-1,1E0,1.3182486E-2,-5.4493393E-3,-6.189806E-5,6.1469255E-3,-2.5270884E-3,-1.2055828E-2,1.1815612E-3,-4.0741875E-3,-4.4516115E-3,1.2134192E-2,-1.4708441E-3,-6.107339E-3,9.441858E-3,-1.2671513E-2,1.9280314E-3,-4.976271E-3],"split_indices":[5,8,8,7,7,10,10,5,5,11,10,8,8,4,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,3E3,2E3,1.405E3,1.595E3,8.94E2,1.106E3,1.24E2,1.281E3,3.56E2,1.239E3,7.3E1,8.21E2,8.4E1,1.022E3,8.8E1,3.6E1,1.179E3,1.02E2,2.99E2,5.7E1,1.11E3,1.29E2,3.3E1,4E1,6.6E2,1.61E2,2.1E1,6.3E1,9.35E2,8.7E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[7.7717195E-6,7.456669E-4,-1.3959352E-2,-1.6598755E-3,6.283413E-3,2.306258E-1,-2.089052E-2,4.547063E-3,-9.9990005E-3,-2.6243145E-3,3.0850474E-2,3.1818535E-2,1.3196493E-2,-9.872383E-4,-6.869998E-2,-2.1432964E-4,1.630928E-3,4.947089E-4,-2.555611E-3,-2.2270451E-3,1.3143921E-3,4.91094E-3,-8.130315E-3,6.433384E-3,-3.864095E-3,-1.1489324E-2,6.6201934E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":93,"left_children":[1,3,5,7,9,11,13,15,17,19,21,-1,-1,23,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[5.1552083E-2,6.329985E-2,4.303285E-1,1.7152777E-1,3.149869E-1,1.8481582E-2,2.330656E-1,1.4955252E-1,3.289068E-1,3.2773536E-1,7.883018E-1,0E0,0E0,4.30453E-1,4.5627847E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,-1,-1,24,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1.78E0,7.0710677E-1,-9.659258E-1,6.5E-1,1.62E0,-5E-1,7.0710677E-1,1E0,1.15E0,5.8E-1,1E0,3.1818535E-2,1.3196493E-2,0E0,1E0,-2.1432964E-4,1.630928E-3,4.947089E-4,-2.555611E-3,-2.2270451E-3,1.3143921E-3,4.91094E-3,-8.130315E-3,6.433384E-3,-3.864095E-3,-1.1489324E-2,6.6201934E-3],"split_indices":[5,7,7,4,5,9,7,1,5,4,7,0,0,9,7,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.75E3,2.5E2,3.312E3,1.438E3,6E0,2.44E2,1.899E3,1.413E3,1.056E3,3.82E2,2E0,4E0,1.73E2,7.1E1,1.211E3,6.88E2,7.21E2,6.92E2,4.7E2,5.86E2,3.29E2,5.3E1,6.3E1,1.1E2,5.3E1,1.8E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"27","size_leaf_vector":"1"}},{"base_weights":[1.4595319E-5,9.2984404E-4,-1.0263527E-2,-1.5237894E-3,6.7213182E-3,1.2824701E-3,-3.3707123E-2,-3.802E-3,2.0394014E-2,5.004891E-2,4.8463984E-4,2.507631E-2,-1.9606562E-2,-7.883031E-2,4.972094E-2,-4.696394E-5,-2.3023698E-3,5.9328345E-4,1.2788466E-2,9.558282E-3,-2.647542E-2,-1.9951947E-3,7.720123E-4,5.787873E-3,-1.0709787E-2,-5.140457E-3,4.125645E-3,-5.600886E-3,-1.5876038E-2,3.157523E-2,-1.1379134E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":94,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.705414E-2,6.527748E-2,1.1075123E-1,1.6121255E-1,3.6936682E-1,1.37175E-1,5.121324E-1,1.87282E-1,4.7179154E-1,2.4907908E0,1.7700484E-1,5.6549543E-1,2.8661317E-1,1.5163058E-1,7.838107E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,3.6E-1,1.62E0,1E0,-8.660254E-1,-1.8369701E-16,5E-1,6.8E-1,6.8E-1,1E0,-5E-1,7.5E-1,6.8E-1,1.2246469E-16,-7.0710677E-1,-4.696394E-5,-2.3023698E-3,5.9328345E-4,1.2788466E-2,9.558282E-3,-2.647542E-2,-1.9951947E-3,7.720123E-4,5.787873E-3,-1.0709787E-2,-5.140457E-3,4.125645E-3,-5.600886E-3,-1.5876038E-2,3.157523E-2,-1.1379134E-3],"split_indices":[9,11,5,10,7,8,7,4,4,10,9,11,4,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,3.226E3,1.366E3,2.74E2,1.34E2,2.923E3,3.03E2,1.71E2,1.195E3,1.28E2,1.46E2,8.7E1,4.7E1,2.492E3,4.31E2,2.68E2,3.5E1,1.5E2,2.1E1,3.12E2,8.83E2,1.03E2,2.5E1,9.6E1,5E1,6.9E1,1.8E1,8E0,3.9E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.2322941E-5,-3.8633994E-3,2.2463866E-3,-5.5739675E-2,-1.0522052E-3,2.8618589E-2,-7.0106663E-4,-9.708458E-2,2.0933893E-1,8.876958E-3,-1.5447306E-2,9.675679E-2,-4.8795503E-2,-5.7173083E-3,1.4405006E-2,1.9688557E-3,-1.4864628E-2,4.3188896E-2,-1.2228421E-2,-1.8209669E-4,3.5591577E-3,-1.3833816E-2,-6.3140254E-4,6.605476E-3,2.3228997E-2,-1.0304613E-3,-2.3197113E-2,-1.6532829E-3,6.0841383E-4,-1.8765568E-4,8.662992E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":95,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.331039E-2,2.6667225E-1,2.4666001E-1,1.0505307E0,2.4826589E-1,1.6874008E0,2.16422E-1,4.9665052E-1,1.0122488E0,2.938579E-1,7.949059E-1,6.920507E-1,1.0551986E0,2.737581E-1,8.37428E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-2.5881904E-1,1.2E-2,1.8E-2,8.660254E-1,6.123234E-17,5E-1,8.660254E-1,-8.660254E-1,8.660254E-1,3.6E-1,-8.660254E-1,9.659258E-1,9.659258E-1,7.0710677E-1,1E0,1.9688557E-3,-1.4864628E-2,4.3188896E-2,-1.2228421E-2,-1.8209669E-4,3.5591577E-3,-1.3833816E-2,-6.3140254E-4,6.605476E-3,2.3228997E-2,-1.0304613E-3,-2.3197113E-2,-1.6532829E-3,6.0841383E-4,-1.8765568E-4,8.662992E-3],"split_indices":[7,5,5,8,8,9,9,7,9,11,10,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.828E3,3.172E3,9.3E1,1.735E3,3.18E2,2.854E3,8.1E1,1.2E1,1.027E3,7.08E2,1.69E2,1.49E2,2.143E3,7.11E2,2.5E1,5.6E1,7E0,5E0,7.34E2,2.93E2,4.8E1,6.6E2,1.39E2,3E1,1.24E2,2.5E1,1.118E3,1.025E3,5.81E2,1.3E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[1.5088509E-5,9.010611E-4,-9.934269E-3,-4.671457E-3,2.8710435E-3,-1.9752225E-3,-4.3155916E-2,6.25114E-2,-1.2541567E-2,-1.3215187E-2,8.378281E-3,-6.1885067E-3,1.1054363E-1,-7.7857874E-2,1.6119218E-2,1.223152E-3,2.8714601E-2,1.003933E-3,-3.7206789E-3,4.5156158E-3,-2.038107E-3,5.724666E-3,1.0186585E-4,3.6051482E-4,-5.242297E-3,-8.937157E-3,1.3684243E-2,-1.5409536E-2,-2.1896379E-3,2.2192316E-2,-4.4578565E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":96,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.4092055E-2,5.043428E-2,1.0805951E-1,6.3526773E-1,3.0078754E-1,1.5760256E-1,1.6375513E-1,1.4196073E0,5.991086E-1,3.6315277E-1,9.095037E-1,1.450864E-1,7.532017E-2,2.0994404E-1,3.846483E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[1E0,-5E-1,1.72E0,1.8E-2,1.14E0,1E0,5E-1,8.660254E-1,2.5881904E-1,-8.660254E-1,1.16E0,8.660254E-1,2.5E-1,-2.5881904E-1,-7.0710677E-1,1.223152E-3,2.8714601E-2,1.003933E-3,-3.7206789E-3,4.5156158E-3,-2.038107E-3,5.724666E-3,1.0186585E-4,3.6051482E-4,-5.242297E-3,-8.937157E-3,1.3684243E-2,-1.5409536E-2,-2.1896379E-3,2.2192316E-2,-4.4578565E-3],"split_indices":[9,9,5,5,5,8,7,7,7,8,5,8,4,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,4.592E3,4.08E2,1.199E3,3.393E3,3.3E2,7.8E1,1.25E2,1.074E3,8.65E2,2.528E3,3.19E2,1.1E1,4.9E1,2.9E1,1.03E2,2.2E1,5.61E2,5.13E2,9.4E1,7.71E2,3.3E2,2.198E3,2.64E2,5.5E1,1E0,1E1,2E1,2.9E1,6E0,2.3E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.0669302E-5,-5.542118E-3,1.5004134E-3,6.596512E-2,-1.1821926E-2,4.2702295E-3,-1.4380218E-2,3.9803416E-2,1.8539955E-1,8.045686E-3,-4.5343276E-2,-2.3519327E-3,1.3113665E-2,7.3490456E-2,-2.1113163E-2,7.757569E-3,1.8864898E-3,1.9847168E-2,1.1948049E-4,-2.7421608E-3,4.360318E-3,-1.3097492E-2,-2.4221928E-3,1.3467091E-3,-1.9185735E-3,6.876651E-4,5.2463766E-3,1.5949484E-2,-1.0991079E-2,-8.39652E-3,-1.0926607E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":97,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[4.1174058E-2,4.7273317E-1,1.7385177E-1,2.5821215E-1,6.4437634E-1,1.970942E-1,3.4883747E-1,5.4690115E-2,3.5882175E-2,7.679615E-1,6.479436E-1,5.1287496E-1,3.532998E-1,6.800091E-1,3.4865677E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.0710677E-1,2.5E-1,1.72E0,5E-1,6.123234E-17,5E-1,-8.660254E-1,-5E-1,8.660254E-1,1.2246469E-16,3.5E-2,1.2246469E-16,8.660254E-1,1E0,-5E-1,7.757569E-3,1.8864898E-3,1.9847168E-2,1.1948049E-4,-2.7421608E-3,4.360318E-3,-1.3097492E-2,-2.4221928E-3,1.3467091E-3,-1.9185735E-3,6.876651E-4,5.2463766E-3,1.5949484E-2,-1.0991079E-2,-8.39652E-3,-1.0926607E-3],"split_indices":[7,4,5,8,8,8,9,10,9,9,5,9,7,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.05E3,3.95E3,8.4E1,9.66E2,3.364E3,5.86E2,7E1,1.4E1,6.07E2,3.59E2,1.924E3,1.44E3,4.1E1,5.45E2,2.4E1,4.6E1,1.3E1,1E0,3.04E2,3.03E2,7E1,2.89E2,9.92E2,9.32E2,1.244E3,1.96E2,2.8E1,1.3E1,7.5E1,4.7E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.1905911E-5,-4.972967E-3,1.3505794E-3,5.971698E-2,-1.0654117E-2,3.8447964E-3,-1.2949916E-2,3.5958912E-2,1.681907E-1,7.2437716E-3,-4.085207E-2,-2.1170494E-3,1.1806427E-2,6.6259466E-2,-1.9019227E-2,7.012844E-3,1.701855E-3,1.8004218E-2,1.1350513E-4,-2.4688456E-3,3.925721E-3,-1.1806195E-2,-2.1808092E-3,1.2121721E-3,-1.7269228E-3,6.189547E-4,4.7244034E-3,1.4409532E-2,-9.970477E-3,5.516413E-3,-2.7106209E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":98,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.319613E-2,3.8689277E-1,1.4097618E-1,2.1300778E-1,5.229396E-1,1.597481E-1,2.8345838E-1,4.475654E-2,2.949348E-2,6.2250346E-1,5.2676326E-1,4.1552502E-1,2.865368E-1,5.569217E-1,3.290513E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[-7.0710677E-1,2.5E-1,1.72E0,5E-1,6.123234E-17,5E-1,-8.660254E-1,-5E-1,8.660254E-1,1.2246469E-16,3.5E-2,1.2246469E-16,8.660254E-1,1E0,-8.660254E-1,7.012844E-3,1.701855E-3,1.8004218E-2,1.1350513E-4,-2.4688456E-3,3.925721E-3,-1.1806195E-2,-2.1808092E-3,1.2121721E-3,-1.7269228E-3,6.189547E-4,4.7244034E-3,1.4409532E-2,-9.970477E-3,5.516413E-3,-2.7106209E-3],"split_indices":[7,4,5,8,8,8,9,10,9,9,5,9,7,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.05E3,3.95E3,8.4E1,9.66E2,3.364E3,5.86E2,7E1,1.4E1,6.07E2,3.59E2,1.924E3,1.44E3,4.1E1,5.45E2,2.4E1,4.6E1,1.3E1,1E0,3.04E2,3.03E2,7E1,2.89E2,9.92E2,9.32E2,1.244E3,1.96E2,2.8E1,1.3E1,5.3E1,4.92E2],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}},{"base_weights":[2.4991736E-5,-4.7260597E-3,1.6095132E-3,-1.1991217E-3,-9.5050186E-2,4.92027E-4,2.5439639E-2,3.4507204E-2,-3.939787E-3,-3.0458802E-1,-6.847485E-2,-1.721162E-2,2.1204185E-3,1.4350249E-1,-6.708499E-3,2.0449648E-3,3.175747E-2,1.8221325E-4,-2.1997688E-3,-1.063861E-2,-4.012606E-2,-2.9749935E-3,-1.3877804E-2,1.6693302E-3,-6.406245E-3,-1.6982554E-4,1.6086716E-3,2.1543488E-2,-3.956519E-3,5.631095E-3,-7.7623934E-3],"categories":[],"categories_nodes":[],"categories_segments":[],"categories_sizes":[],"default_left":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":99,"left_children":[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"loss_changes":[3.765585E-2,3.9841405E-1,9.9876E-2,1.18056126E-1,2.408646E-1,1.0335774E-1,6.3860685E-1,3.3572003E-1,1.1657404E-1,5.311495E-2,1.12938255E-1,4.8078844E-1,1.7511868E-1,4.8258954E-1,5.987549E-1,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0,0E0],"parents":[2147483647,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14],"right_children":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"split_conditions":[3.5E-1,1E0,1E0,-8.660254E-1,-8.660254E-1,-8.660254E-1,2.9E-1,1E0,8.660254E-1,1E0,5E-1,6.123234E-17,8.660254E-1,8.660254E-1,5E-1,2.0449648E-3,3.175747E-2,1.8221325E-4,-2.1997688E-3,-1.063861E-2,-4.012606E-2,-2.9749935E-3,-1.3877804E-2,1.6693302E-3,-6.406245E-3,-1.6982554E-4,1.6086716E-3,2.1543488E-2,-3.956519E-3,5.631095E-3,-7.7623934E-3],"split_indices":[4,8,8,10,9,10,11,7,7,2,10,8,7,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"split_type":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sum_hessian":[5E3,1.25E3,3.75E3,1.204E3,4.6E1,3.583E3,1.67E2,8.5E1,1.119E3,4E0,4.2E1,3.01E2,3.282E3,3.5E1,1.32E2,8.2E1,3E0,8.49E2,2.7E2,2E0,2E0,2.8E1,1.4E1,1.75E2,1.26E2,2.578E3,7.04E2,2.5E1,1E1,7E1,6.2E1],"tree_param":{"num_deleted":"0","num_feature":"12","num_nodes":"31","size_leaf_vector":"1"}}]},"name":"gbtree"},"learner_model_param":{"base_score":"[1.7600015E0]","boost_from_average":"1","num_class":"0","num_feature":"12","num_target":"1"},"objective":{"name":"reg:squarederror","reg_loss_param":{"scale_pos_weight":"1"}}},"version":[3,2,0]} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..b4fde89238eb862bd811eca4b1f9f153527897ae --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +fastapi==0.115.6 +uvicorn[standard]==0.34.0 +httpx>=0.27.0 +anthropic>=0.40.0 +scipy>=1.12.0 +numpy>=1.26.0 +xgboost>=2.0.0 +asyncpg>=0.30.0 +aiofiles>=24.1.0 diff --git a/run_pipeline.py b/run_pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..6dd5fa0db05fdd996007d38001fe929fb6c63408 --- /dev/null +++ b/run_pipeline.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +""" +Climate Risk Index Engine — CLI Runner + +Usage: + python run_pipeline.py # Full pipeline, console delivery + python run_pipeline.py --days 30 # Last 30 days only + python run_pipeline.py --no-claude # Rule-based healing, template explanations + python run_pipeline.py --channel sms # SMS delivery via Twilio +""" + +import argparse +import asyncio +import logging +import json +import sys +from datetime import datetime + +from src.pipeline import FloodRiskPipeline +from src.store import store + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", + datefmt="%H:%M:%S", +) + + +def main(): + parser = argparse.ArgumentParser(description="Climate Risk Index Engine") + parser.add_argument("--days", type=int, default=90, help="Days of data to fetch (default: 90)") + parser.add_argument("--no-claude", action="store_true", help="Use rule-based healing and template explanations") + parser.add_argument("--channel", default="console", choices=["console", "sms", "whatsapp"], help="Delivery channel") + parser.add_argument("--json", action="store_true", help="Output results as JSON") + args = parser.parse_args() + + pipeline = FloodRiskPipeline( + days_back=args.days, + use_claude_healer=not args.no_claude, + use_claude_explainer=not args.no_claude, + delivery_channel=args.channel, + ) + + result = asyncio.run(pipeline.run()) + + # Populate the shared store so the API can serve real data + store.update_from_pipeline(pipeline, run_result=result) + + if args.json: + print(json.dumps({ + "run_id": result.run_id, + "status": result.status, + "started_at": result.started_at, + "ended_at": result.ended_at, + "duration_s": result.duration_s, + "zones_processed": result.zones_processed, + "triggers_found": result.triggers_found, + "notifications_sent": result.notifications_sent, + "total_cost_usd": result.total_cost_usd, + "steps": [ + { + "step": s.step, + "status": s.status, + "duration_s": round(s.duration_s, 2), + "records": s.records_processed, + "errors": s.errors, + } + for s in result.steps + ], + }, indent=2)) + else: + print(f"\n{'='*60}") + print(f"Pipeline Run: {result.run_id}") + print(f"Status: {result.status.upper()}") + print(f"Duration: {result.duration_s:.1f}s") + print(f"Zones: {result.zones_processed}") + print(f"Triggers: {result.triggers_found}") + print(f"Notifications: {result.notifications_sent}") + print(f"Cost: ${result.total_cost_usd:.4f}") + print(f"{'='*60}") + for s in result.steps: + icon = "✓" if s.status == "ok" else "⚠" if s.status == "partial" else "○" if s.status == "skipped" else "✗" + print(f" {icon} {s.step:<12} {s.status:<8} {s.duration_s:>6.1f}s ({s.records_processed} records)") + if s.errors: + for e in s.errors[:3]: + print(f" └─ {e[:80]}") + print() + + +if __name__ == "__main__": + main() diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/api.py b/src/api.py new file mode 100644 index 0000000000000000000000000000000000000000..4a7dcedbabc2174dadd870f9b367af9244457cda --- /dev/null +++ b/src/api.py @@ -0,0 +1,591 @@ +""" +Extreme Heat Risk Engine — FastAPI Application + +Serves synthetic demo data for the dashboard. +When the real pipeline has been run, serves pipeline results instead. +""" + +import logging +import random +from datetime import datetime, timedelta +from pathlib import Path + +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from fastapi.responses import FileResponse + +from config import ZONES, ZONE_MAP, CITIES, HEAT_THRESHOLDS, PAYOUT_PER_EVENT_USD +from src.indexing.heat_index import calculate_wbgt, calculate_heat_index, count_consecutive_days, count_trigger_days +from src.downscaling.uhi_model import UHICorrector +from src.prediction.heat_forecast import HeatWavePredictor +from src.pricing.actuarial import ActuarialPricer +from src.pricing.budget_optimizer import BudgetOptimizer + +logger = logging.getLogger(__name__) + +app = FastAPI(title="Extreme Heat Risk Engine", version="1.0.0") + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +SEED = 42 + + +def _generate_demo_data(): + """Deterministic synthetic data for the dashboard demo, using real ML models.""" + rng = random.Random(SEED) + now = datetime(2026, 3, 29, 10, 0, 0) + + # Initialize ML models + uhi_corrector = UHICorrector() + predictor = HeatWavePredictor() + pricer = ActuarialPricer() + + # City base temperatures (ERA5-Land grid-level — before UHI correction) + city_climate = { + "Dar es Salaam": {"base_temp": 31, "temp_var": 2.5, "base_hum": 78, "hum_var": 8}, + "Kampala": {"base_temp": 28, "temp_var": 2.5, "base_hum": 68, "hum_var": 10}, + "Nairobi": {"base_temp": 25, "temp_var": 2.5, "base_hum": 55, "hum_var": 12}, + "Kigali": {"base_temp": 25, "temp_var": 2, "base_hum": 60, "hum_var": 10}, + } + + # Generate 90 days of daily data per zone + zones = [] + indices = [] + all_triggers = [] + tid = 1 + + for z in ZONES: + clim = city_climate[z.city] + + daily_grid_temps = [] + daily_temps = [] + daily_humidity = [] + daily_dates = [] + daily_wbgt = [] + daily_hi = [] + daily_uhi_deltas = [] + + for d in range(90): + date = now - timedelta(days=89 - d) + month = date.month + seasonal = 1.5 if month in z.hot_months else -0.5 + # Grid-level temperature (ERA5-Land equivalent — before UHI) + grid_temp = clim["base_temp"] + seasonal + rng.gauss(0, clim["temp_var"] * 0.4) + grid_temp = round(max(18, min(42, grid_temp)), 1) + hum = clim["base_hum"] + rng.gauss(0, clim["hum_var"] * 0.3) + hum = round(max(30, min(95, hum)), 1) + # ML UHI correction + corrected, uhi_delta, _ = uhi_corrector.correct_temperature(z, grid_temp, hour=14, month=month) + temp = round(corrected, 1) + daily_grid_temps.append(grid_temp) + wbgt = calculate_wbgt(temp, hum) + hi = calculate_heat_index(temp, hum) + + daily_temps.append(temp) + daily_humidity.append(hum) + daily_dates.append(date.strftime("%Y-%m-%d")) + daily_wbgt.append(wbgt) + daily_hi.append(hi) + daily_uhi_deltas.append(round(uhi_delta, 1)) + + # ML heat wave prediction (pass last 30 days for proper anomaly features) + pred_prob, pred_conf, pred_tier = predictor.predict( + z, daily_temps[-30:], daily_humidity[-30:], daily_wbgt[-30:], + ) + + max_temp = max(daily_temps) + max_wbgt = max(daily_wbgt) + recent_temps = daily_temps[-7:] + recent_wbgt = daily_wbgt[-7:] + current_temp = daily_temps[-1] + current_wbgt = daily_wbgt[-1] + current_hi = daily_hi[-1] + watch_temp = HEAT_THRESHOLDS["watch"]["temp_c"] + consec = count_consecutive_days(recent_temps, watch_temp) + total_above = count_trigger_days(daily_temps, watch_temp) + + # Risk level from config thresholds + recent_max = max(recent_temps) + risk_level = "normal" + for level in ("critical", "warning", "watch"): + ht = HEAT_THRESHOLDS[level] + if recent_max >= ht["temp_c"] and consec >= ht["consecutive_days"]: + risk_level = level + break + + # Composite score + temp_score = min(100, max(0, (max_temp - 28) * 10)) + wbgt_score = min(100, max(0, (max_wbgt - 25) * 12)) + vuln_score = {"high": 85, "moderate": 50, "low": 20}[z.heat_vulnerability] + exposure_score = z.outdoor_exposure_pct * 100 + composite = round(temp_score * 0.3 + wbgt_score * 0.25 + consec * 10 * 0.2 + vuln_score * 0.15 + exposure_score * 0.1, 1) + composite = min(100, max(0, composite)) + + enrolled = int(z.worker_population_est * rng.uniform(0.15, 0.45)) + + zone_data = { + "zone_id": z.zone_id, + "name": z.name, + "city": z.city, + "country": z.country, + "latitude": z.latitude, + "longitude": z.longitude, + "elevation_m": z.elevation_m, + "settlement_type": z.settlement_type, + "worker_population_est": z.worker_population_est, + "outdoor_exposure_pct": z.outdoor_exposure_pct, + "heat_vulnerability": z.heat_vulnerability, + "risk_level": risk_level, + "current_temp_c": current_temp, + "current_wbgt_c": current_wbgt, + "current_heat_index_c": current_hi, + "max_temp_c": round(max_temp, 1), + "max_wbgt_c": round(max_wbgt, 1), + "consecutive_hot_days": consec, + "total_days_above_33": total_above, + "heat_risk_score": composite, + "grid_temp_c": daily_grid_temps[-1], + "uhi_delta_c": daily_uhi_deltas[-1], + "corrected_temp_c": temp, + "trigger_probability_7d": round(pred_prob, 2), + "prediction_confidence": round(pred_conf, 2), + "model_tier": pred_tier, + "enrolled_workers": enrolled, + "data_quality": round(rng.uniform(0.80, 0.98), 2), + "last_updated": now.isoformat(), + } + zones.append(zone_data) + + # Index data with daily history + indices.append({ + "zone_id": z.zone_id, + "zone_name": z.name, + "city": z.city, + "risk_level": risk_level, + "temp_current": current_temp, + "wbgt_current": current_wbgt, + "heat_index_current": current_hi, + "consecutive_hot_days": consec, + "heat_risk_score": composite, + "grid_temp_c": daily_grid_temps[-1], + "uhi_delta_c": daily_uhi_deltas[-1], + "trigger_probability_7d": round(pred_prob, 2), + "prediction_confidence": round(pred_conf, 2), + "model_tier": pred_tier, + "daily_history": [ + {"date": daily_dates[i], "temp_c": daily_temps[i], "grid_temp_c": daily_grid_temps[i], "uhi_delta_c": daily_uhi_deltas[i], "humidity_pct": daily_humidity[i], "wbgt_c": daily_wbgt[i], "heat_index_c": daily_hi[i]} + for i in range(90) + ], + }) + + # Triggers + if risk_level != "normal": + payout = PAYOUT_PER_EVENT_USD.get(risk_level, 5) + all_triggers.append({ + "trigger_id": f"TRG-{tid:04d}", + "zone_id": z.zone_id, + "zone_name": z.name, + "city": z.city, + "trigger_level": risk_level, + "trigger_date": (now - timedelta(hours=rng.randint(2, 48))).isoformat(), + "heat_risk_score": composite, + "max_temp_c": round(max_temp, 1), + "max_wbgt_c": round(max_wbgt, 1), + "consecutive_days": consec, + "total_days_above": total_above, + "settlement_type": z.settlement_type, + "payout_per_worker_usd": payout, + "enrolled_workers": enrolled, + "total_payout_usd": payout * enrolled, + "status": "active", + }) + tid += 1 + + # Basis risk + basis_risk = [] + for z_data in zones: + zone_obj = ZONE_MAP[z_data["zone_id"]] + if zone_obj.heat_vulnerability == "high" and zone_obj.settlement_type == "informal": + score = rng.uniform(0.25, 0.40) + elif zone_obj.heat_vulnerability == "high": + score = rng.uniform(0.18, 0.32) + elif zone_obj.heat_vulnerability == "moderate": + score = rng.uniform(0.10, 0.22) + else: + score = rng.uniform(0.05, 0.15) + basis_risk.append({ + "zone_id": z_data["zone_id"], + "zone_name": z_data["name"], + "city": z_data["city"], + "overall_score": round(score, 3), + "false_positive_rate": round(score * rng.uniform(0.4, 0.7), 3), + "false_negative_rate": round(score * rng.uniform(0.3, 0.6), 3), + "correlation": round(1 - score * rng.uniform(0.8, 1.1), 3), + "settlement_type": z_data["settlement_type"], + "heat_vulnerability": z_data["heat_vulnerability"], + "recommendation": ( + "Urban heat island effect significant — consider localized temperature sensors" + if zone_obj.settlement_type == "informal" + else "Station temperature may underestimate worker-experienced heat by 2-3°C" + if score > 0.2 + else "Current calibration adequate for this zone" + ), + }) + + # Notifications + notifications = [] + nid = 1 + for trigger in all_triggers: + if trigger["trigger_level"] in ("critical", "warning"): + notifications.append({ + "id": f"NOT-{nid:04d}", + "zone_id": trigger["zone_id"], + "zone_name": trigger["zone_name"], + "city": trigger["city"], + "trigger_level": trigger["trigger_level"], + "channel": rng.choice(["sms", "whatsapp"]), + "language": rng.choice(["en", "sw"]), + "recipient_count": trigger["enrolled_workers"], + "message_preview": ( + f"HEAT ALERT [{trigger['trigger_level'].upper()}]: " + f"{trigger['zone_name']}, {trigger['city']}. " + f"Temperature {trigger['max_temp_c']}°C (WBGT {trigger['max_wbgt_c']}°C). " + f"Payout: ${trigger['payout_per_worker_usd']}." + ), + "status": "sent", + "delivered_at": trigger["trigger_date"], + "cost_estimate": round(trigger["enrolled_workers"] * 0.0075, 2), + }) + nid += 1 + notifications.append({ + "id": f"NOT-{nid:04d}", + "zone_id": trigger["zone_id"], + "zone_name": trigger["zone_name"], + "city": trigger["city"], + "trigger_level": trigger["trigger_level"], + "channel": "sms", + "language": "sw", + "recipient_count": trigger["enrolled_workers"], + "message_preview": ( + f"TAHADHARI YA JOTO [{trigger['trigger_level'].upper()}]: " + f"{trigger['zone_name']}, {trigger['city']}. " + f"Joto {trigger['max_temp_c']}°C. " + f"Malipo: ${trigger['payout_per_worker_usd']}." + ), + "status": "sent", + "delivered_at": trigger["trigger_date"], + "cost_estimate": round(trigger["enrolled_workers"] * 0.0075, 2), + }) + nid += 1 + + # Pipeline runs + pipeline_runs = [] + for i in range(15): + run_date = now - timedelta(days=i * 2) + duration = rng.uniform(30, 120) + cost = rng.uniform(0.06, 0.18) + status = "ok" if rng.random() > 0.15 else "partial" + pipeline_runs.append({ + "run_id": f"run-{1000 + i}", + "started_at": run_date.isoformat(), + "ended_at": (run_date + timedelta(seconds=duration)).isoformat(), + "status": status, + "duration_s": round(duration, 1), + "zones_processed": 20, + "triggers_found": rng.randint(0, 8), + "notifications_sent": rng.randint(0, 16), + "total_cost_usd": round(cost, 4), + "steps": [ + {"step": s, "status": "ok", "duration_s": round(duration / 6, 1)} + for s in ["ingest", "heal", "index", "calibrate", "explain", "notify"] + ], + }) + + stats = { + "total_runs": len(pipeline_runs), + "successful_runs": sum(1 for r in pipeline_runs if r["status"] == "ok"), + "success_rate": round(sum(1 for r in pipeline_runs if r["status"] == "ok") / len(pipeline_runs), 2), + "zones_monitored": len(ZONES), + "cities": len(CITIES), + "active_triggers": len(all_triggers), + "total_enrolled": sum(z["enrolled_workers"] for z in zones), + "total_cost_usd": round(sum(r["total_cost_usd"] for r in pipeline_runs), 2), + "avg_cost_per_run_usd": round(sum(r["total_cost_usd"] for r in pipeline_runs) / len(pipeline_runs), 4), + "last_run": pipeline_runs[0]["started_at"], + "data_sources": ["NASA POWER"], + } + + return { + "zones": zones, + "indices": indices, + "triggers": all_triggers, + "basis_risk": basis_risk, + "notifications": notifications, + "pipeline_runs": pipeline_runs, + "stats": stats, + } + + +_demo = _generate_demo_data() + +# Singletons for calibrate endpoint (avoid re-instantiation per request) +_actuarial_pricer = ActuarialPricer() +_budget_optimizer = BudgetOptimizer() + + +# ── API Endpoints ────────────────────────────────────────────────────────── + +@app.get("/health") +def health(): + return {"status": "ok", "service": "extreme-heat-risk-engine", "version": "1.0.0"} + + +@app.get("/api/zones") +def get_zones(): + return {"zones": _demo["zones"], "total": len(_demo["zones"]), "cities": CITIES} + + +@app.get("/api/indices") +def get_indices(): + return {"indices": _demo["indices"], "total": len(_demo["indices"])} + + +@app.get("/api/triggers") +def get_triggers(): + triggers = _demo["triggers"] + return { + "triggers": triggers, + "total": len(triggers), + "active": sum(1 for t in triggers if t["status"] == "active"), + "by_level": { + level: sum(1 for t in triggers if t["trigger_level"] == level) + for level in ["critical", "warning", "watch"] + }, + } + + +@app.get("/api/basis-risk") +def get_basis_risk(): + br = _demo["basis_risk"] + return { + "assessments": br, + "total": len(br), + "avg_score": round(sum(b["overall_score"] for b in br) / max(1, len(br)), 3), + } + + +@app.get("/api/notifications") +def get_notifications(): + notifs = _demo["notifications"] + return { + "notifications": notifs, + "total": len(notifs), + "by_language": { + lang: sum(1 for n in notifs if n["language"] == lang) + for lang in ["en", "sw"] + }, + } + + +@app.get("/api/enrolled-workers") +def get_enrolled(): + by_zone = [ + {"zone_id": z["zone_id"], "zone_name": z["name"], "city": z["city"], "enrolled": z["enrolled_workers"]} + for z in _demo["zones"] + ] + return {"by_zone": by_zone, "total_enrolled": sum(z["enrolled_workers"] for z in _demo["zones"])} + + +@app.get("/api/pipeline/runs") +def get_pipeline_runs(): + return {"runs": _demo["pipeline_runs"], "total": len(_demo["pipeline_runs"])} + + +@app.get("/api/pipeline/stats") +def get_pipeline_stats(): + return _demo["stats"] + + +@app.get("/api/calibrate") +def calibrate( + temp_threshold: float = 35.0, + consecutive_days: int = 2, + wbgt_threshold: float = 30.0, + payout_usd: float = 10.0, + budget_usd: float = 500000.0, + worker_contribution_usd: float = 0.0, +): + """Interactive calibration endpoint. + + Run heat risk scoring with custom thresholds against all zones. + Returns per-zone trigger analysis and program cost estimates. + """ + rng = random.Random(SEED) + results = [] + total_trigger_days = 0 + total_annual_cost = 0.0 + zones_triggered = 0 + + zones_by_id = {z["zone_id"]: z for z in _demo["zones"]} + basis_by_id = {b["zone_id"]: b for b in _demo["basis_risk"]} + + for idx_data in _demo["indices"]: + zone_id = idx_data["zone_id"] + zone = ZONE_MAP.get(zone_id) + if not zone: + continue + + # Extract daily temps and humidity from history + history = idx_data.get("daily_history", []) + temps = [d["temp_c"] for d in history] + humidity = [d["humidity_pct"] for d in history] + wbgts = [d["wbgt_c"] for d in history] + + # Apply custom thresholds + days_above_temp = count_trigger_days(temps, temp_threshold) + days_above_wbgt = count_trigger_days(wbgts, wbgt_threshold) + consec_temp = count_consecutive_days(temps, temp_threshold) + consec_wbgt = count_consecutive_days(wbgts, wbgt_threshold) + + # Count trigger events (consecutive runs above threshold) + trigger_events = 0 + run_length = 0 + for t in temps: + if t > temp_threshold: + run_length += 1 + else: + if run_length >= consecutive_days: + trigger_events += 1 + run_length = 0 + if run_length >= consecutive_days: + trigger_events += 1 + + # Annualize (90 days of data → multiply by 4) + events_per_year = round(trigger_events * (365 / max(len(temps), 1)), 1) + + zone_demo = zones_by_id.get(zone_id, {}) + enrolled = zone_demo.get("enrolled_workers", 0) + + annual_payout = round(events_per_year * payout_usd * enrolled, 2) + annual_per_worker = round(events_per_year * payout_usd, 2) + + br = basis_by_id.get(zone_id, {}) + basis_score = br.get("overall_score", 0.15) + + triggered = trigger_events > 0 + if triggered: + zones_triggered += 1 + total_trigger_days += days_above_temp + total_annual_cost += annual_payout + + results.append({ + "zone_id": zone_id, + "zone_name": zone.name, + "city": zone.city, + "settlement_type": zone.settlement_type, + "heat_vulnerability": zone.heat_vulnerability, + "enrolled_workers": enrolled, + "days_above_temp": days_above_temp, + "days_above_wbgt": days_above_wbgt, + "consecutive_days_temp": consec_temp, + "consecutive_days_wbgt": consec_wbgt, + "trigger_events": trigger_events, + "events_per_year": events_per_year, + "annual_payout_per_worker": annual_per_worker, + "annual_payout_total": annual_payout, + "basis_risk_score": basis_score, + "triggered": triggered, + }) + + total_enrolled = sum(r["enrolled_workers"] for r in results) + + # Actuarial pricing per zone + actuarial_results = [] + for r in results: + zone = ZONE_MAP.get(r["zone_id"]) + if not zone: + continue + ar = _actuarial_pricer.price_zone( + zone=zone, + predicted_frequency=r["events_per_year"], + basis_risk_score=r["basis_risk_score"], + payout_per_event=payout_usd, + enrolled=r["enrolled_workers"], + ) + r["actuarial_cost_per_worker"] = round(ar.cost_per_worker_year, 2) + r["cost_breakdown"] = ar.cost_breakdown + actuarial_results.append(ar) + + # Budget allocation + allocation = _budget_optimizer.optimize( + budget_usd=budget_usd, + actuarial_results=actuarial_results, + payout_per_event=payout_usd, + worker_contribution=worker_contribution_usd, + ) + + # Merge allocation into zone results + alloc_map = {a.zone_id: a for a in allocation.allocations} + for r in results: + a = alloc_map.get(r["zone_id"]) + if a: + r["allocated_budget"] = round(a.allocated_budget, 2) + r["workers_covered"] = a.workers_covered + r["coverage_pct"] = round(a.coverage_pct, 1) + r["priority_rank"] = a.priority_rank + else: + r["allocated_budget"] = 0 + r["workers_covered"] = 0 + r["coverage_pct"] = 0 + r["priority_rank"] = 99 + + return { + "zones": sorted(results, key=lambda r: r.get("priority_rank", 99)), + "summary": { + "total_zones": len(results), + "zones_triggered": zones_triggered, + "total_trigger_days": total_trigger_days, + "avg_events_per_year": round(sum(r["events_per_year"] for r in results) / max(1, len(results)), 1), + "total_annual_cost": round(total_annual_cost, 2), + "avg_cost_per_worker": round(total_annual_cost / max(1, total_enrolled), 2), + "total_enrolled": total_enrolled, + "avg_basis_risk": round(sum(r["basis_risk_score"] for r in results) / max(1, len(results)), 3), + }, + "allocation": { + "budget_usd": budget_usd, + "worker_contribution_usd": worker_contribution_usd, + "workers_covered": allocation.total_workers_covered, + "overall_coverage_pct": round(allocation.overall_coverage_pct, 1), + "zones_fully_funded": allocation.zones_fully_funded, + "zones_partially_funded": allocation.zones_partially_funded, + "zones_unfunded": allocation.zones_unfunded, + "stretch_analysis": allocation.stretch_analysis, + }, + "thresholds": { + "temp_threshold": temp_threshold, + "consecutive_days": consecutive_days, + "wbgt_threshold": wbgt_threshold, + "payout_usd": payout_usd, + }, + } + + +# ── Static file serving ─────────────────────────────────────────────────── + +dist_path = Path(__file__).parent.parent / "frontend" / "dist" +if dist_path.exists(): + app.mount("/assets", StaticFiles(directory=str(dist_path / "assets")), name="static") + + @app.get("/{path:path}") + async def serve_spa(path: str): + file_path = dist_path / path + if file_path.exists() and file_path.is_file(): + return FileResponse(str(file_path)) + return FileResponse(str(dist_path / "index.html")) diff --git a/src/calibration/__init__.py b/src/calibration/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/calibration/basis_risk.py b/src/calibration/basis_risk.py new file mode 100644 index 0000000000000000000000000000000000000000..20f01cab942a5025379135bae83dda68d4612509 --- /dev/null +++ b/src/calibration/basis_risk.py @@ -0,0 +1,386 @@ +""" +Basis risk estimation for parametric heat insurance. + +Basis risk is the mismatch between what the temperature index says happened +and what outdoor workers actually experienced. In parametric heat insurance +the key sources of basis risk are: + + 1. Urban heat island effect — informal settlements with tin roofs are + significantly hotter than the station/satellite reading + 2. Time-of-day exposure — workers are outside during 10am-4pm peak, + but daily-max temperature may occur at a different time + 3. Indoor/outdoor split — the index triggers for the whole zone but + only outdoor workers are affected + 4. Microclimate variation — shade, wind, surface type differ block to block + +Realistic basis risk ranges: + - Informal high-vulnerability zones: 0.25 - 0.40 + - Mixed/moderate zones: 0.15 - 0.28 + - Formal low-vulnerability zones: 0.08 - 0.18 + +Each zone gets a BasisRiskReport with false-positive/negative rates, +index-damage correlation, and threshold adjustment recommendations. +""" + +from __future__ import annotations + +import hashlib +import logging +import math +import random +from dataclasses import dataclass, field +from typing import Optional + +from config import HEAT_THRESHOLDS, PAYOUT_PER_EVENT_USD, ZONE_MAP, ZONES, UrbanZone + +log = logging.getLogger(__name__) + + +# -- Data containers -------------------------------------------------------- + +@dataclass +class SimulatedEvent: + """One historical event: what the index said vs. what workers experienced.""" + zone_id: str + date: str + index_triggered: bool + trigger_level: str # critical, warning, watch, none + actual_heat_stress: bool + actual_severity: float # 0.0-1.0 + index_severity: float # 0.0-1.0 + notes: str = "" + + +@dataclass +class BasisRiskReport: + """Basis risk assessment for a single zone.""" + zone_id: str + zone_name: str + city: str + settlement_type: str + heat_vulnerability: str + + # Core metrics + overall_score: float # 0-1, lower is better + false_positive_rate: float # index fired but no heat stress + false_negative_rate: float # heat stress occurred but index missed + correlation: float # Pearson r between index and actual severity + mae: float # mean absolute error + + # Trigger accuracy + total_events: int + true_positives: int + true_negatives: int + false_positives: int + false_negatives: int + trigger_accuracy: float + + # Basis risk components + uhi_adjustment: float # urban heat island temperature delta (C) + time_of_day_factor: float # mismatch from peak-hour vs daily-max + indoor_outdoor_split: float # fraction of workers truly exposed + + # Recommendations + recommendations: list[str] = field(default_factory=list) + confidence_interval: tuple[float, float] = (0.0, 1.0) + tier_accuracy: dict[str, float] = field(default_factory=dict) + + +# -- Simulation parameters -------------------------------------------------- + +# Basis risk ranges by (settlement_type, heat_vulnerability) +_RISK_RANGES: dict[tuple[str, str], tuple[float, float]] = { + ("informal", "high"): (0.30, 0.40), + ("informal", "moderate"): (0.25, 0.35), + ("informal", "low"): (0.20, 0.30), + ("mixed", "high"): (0.22, 0.32), + ("mixed", "moderate"): (0.18, 0.28), + ("mixed", "low"): (0.15, 0.22), + ("formal", "high"): (0.14, 0.22), + ("formal", "moderate"): (0.10, 0.18), + ("formal", "low"): (0.08, 0.15), + ("commercial", "high"): (0.12, 0.20), + ("commercial", "moderate"): (0.10, 0.16), + ("commercial", "low"): (0.08, 0.14), +} + +# Urban heat island temperature deltas (C above station reading) +_UHI_DELTA = { + "informal": 3.5, # tin roofs, no shade, concrete/dirt heat absorption + "mixed": 2.0, + "formal": 1.0, + "commercial": 1.5, # concrete + AC exhaust +} + +# Time-of-day exposure factor (how much 10am-4pm temps exceed daily max) +_TIME_OF_DAY = { + "high": 0.15, # workers out all day, actual exposure often higher + "moderate": 0.10, + "low": 0.05, +} + +_SIM_EVENTS = 60 # ~5 years of hot-season events + + +def _zone_seed(zone_id: str) -> int: + """Deterministic seed per zone.""" + return int(hashlib.sha256(zone_id.encode()).hexdigest()[:8], 16) + + +# -- Simulation engine ------------------------------------------------------- + +def _simulate_events(zone: UrbanZone, n: int = _SIM_EVENTS) -> list[SimulatedEvent]: + """Generate a plausible history of heat trigger events vs actual impacts.""" + rng = random.Random(_zone_seed(zone.zone_id)) + + risk_range = _RISK_RANGES.get( + (zone.settlement_type, zone.heat_vulnerability), + (0.18, 0.28), + ) + base_risk = rng.uniform(*risk_range) + + # UHI increases false negatives (station reads cooler than reality) + uhi = _UHI_DELTA.get(zone.settlement_type, 1.5) + base_risk += uhi * 0.015 # each degree of UHI adds ~1.5% basis risk + base_risk = max(0.05, min(0.55, base_risk)) + + trigger_prob = 0.30 if zone.heat_vulnerability == "high" else ( + 0.20 if zone.heat_vulnerability == "moderate" else 0.12 + ) + stress_base_prob = trigger_prob * (1.0 + 0.10 * (1 if zone.outdoor_exposure_pct > 0.6 else 0)) + + events: list[SimulatedEvent] = [] + for i in range(n): + month = rng.choice(zone.hot_months) if zone.hot_months else rng.choice([1, 2, 3]) + year = 2019 + (i // 12) + day = rng.randint(1, 28) + date = f"{year}-{month:02d}-{day:02d}" + + index_triggered = rng.random() < trigger_prob + if index_triggered: + level_roll = rng.random() + trigger_level = ( + "critical" if level_roll < 0.12 else + "warning" if level_roll < 0.45 else + "watch" + ) + index_severity = ( + rng.uniform(0.7, 1.0) if trigger_level == "critical" else + rng.uniform(0.4, 0.7) if trigger_level == "warning" else + rng.uniform(0.1, 0.4) + ) + else: + trigger_level = "none" + index_severity = rng.uniform(0.0, 0.15) + + if index_triggered: + actual_heat_stress = rng.random() < (1.0 - base_risk * 0.55) + else: + # False negative: UHI makes ground truth hotter than station + actual_heat_stress = rng.random() < (base_risk * 0.45) + + if actual_heat_stress: + noise = rng.gauss(0, base_risk * 0.4) + actual_severity = max(0.0, min(1.0, index_severity + noise + uhi * 0.03)) + if not index_triggered: + actual_severity = rng.uniform(0.15, 0.50) + else: + actual_severity = 0.0 + + notes = "" + if index_triggered and not actual_heat_stress: + notes = "False alarm: index triggered but workers did not report heat stress" + elif not index_triggered and actual_heat_stress: + notes = "Missed event: workers experienced heat stress but station temp was below threshold (likely UHI gap)" + + events.append(SimulatedEvent( + zone_id=zone.zone_id, + date=date, + index_triggered=index_triggered, + trigger_level=trigger_level, + actual_heat_stress=actual_heat_stress, + actual_severity=actual_severity, + index_severity=index_severity, + notes=notes, + )) + + return events + + +# -- Metrics computation ----------------------------------------------------- + +def _pearson_r(xs: list[float], ys: list[float]) -> float: + """Pearson correlation coefficient. Returns 0.0 if degenerate.""" + n = len(xs) + if n < 3: + return 0.0 + mean_x = sum(xs) / n + mean_y = sum(ys) / n + cov = sum((x - mean_x) * (y - mean_y) for x, y in zip(xs, ys)) + std_x = math.sqrt(sum((x - mean_x) ** 2 for x in xs)) + std_y = math.sqrt(sum((y - mean_y) ** 2 for y in ys)) + if std_x < 1e-9 or std_y < 1e-9: + return 0.0 + return cov / (std_x * std_y) + + +def _compute_report(zone: UrbanZone, events: list[SimulatedEvent]) -> BasisRiskReport: + """Compute basis risk metrics from simulated events.""" + tp = sum(1 for e in events if e.index_triggered and e.actual_heat_stress) + tn = sum(1 for e in events if not e.index_triggered and not e.actual_heat_stress) + fp = sum(1 for e in events if e.index_triggered and not e.actual_heat_stress) + fn = sum(1 for e in events if not e.index_triggered and e.actual_heat_stress) + total = len(events) + + fpr = fp / max(1, fp + tp) + fnr = fn / max(1, fn + tn) + accuracy = (tp + tn) / max(1, total) + + idx_sev = [e.index_severity for e in events] + act_sev = [e.actual_severity for e in events] + corr = _pearson_r(idx_sev, act_sev) + mae = sum(abs(i - a) for i, a in zip(idx_sev, act_sev)) / max(1, total) + + overall = 0.30 * fpr + 0.30 * fnr + 0.20 * mae + 0.20 * (1.0 - max(0, corr)) + overall = max(0.0, min(1.0, overall)) + + # UHI and time-of-day factors + uhi = _UHI_DELTA.get(zone.settlement_type, 1.5) + tod = _TIME_OF_DAY.get(zone.heat_vulnerability, 0.10) + + # Per-tier accuracy + tier_acc: dict[str, float] = {} + for level in ("critical", "warning", "watch"): + tier_events = [e for e in events if e.trigger_level == level] + if tier_events: + tier_correct = sum(1 for e in tier_events if e.actual_heat_stress) + tier_acc[level] = tier_correct / len(tier_events) + else: + tier_acc[level] = 0.0 + + # Recommendations + recs: list[str] = [] + if uhi >= 3.0: + recs.append( + f"Urban heat island effect adds ~{uhi:.1f}C in {zone.name}. " + f"Consider lowering trigger threshold by {uhi * 0.5:.1f}C for this zone." + ) + if fnr > 0.20: + recs.append( + f"Missed event rate ({fnr:.0%}) is high. Station temperature " + f"underestimates ground-level heat in {zone.settlement_type} areas. " + f"Consider adding community-reported heat stress data." + ) + if fpr > 0.25: + recs.append( + f"False positive rate ({fpr:.0%}). Consider raising threshold " + f"or adding WBGT as a secondary trigger condition." + ) + if zone.outdoor_exposure_pct > 0.7: + recs.append( + f"High outdoor exposure ({zone.outdoor_exposure_pct:.0%}). " + f"Prioritize this zone for shade structures and rest-break interventions." + ) + if zone.settlement_type == "informal": + recs.append( + "Informal settlement — tin roof temperatures can exceed ambient by 10-15C. " + "Ground-truth heat monitoring (e.g., community thermometers) would " + "significantly reduce basis risk." + ) + if not recs: + recs.append( + "Basis risk is within acceptable range. Continue monitoring " + "and recalibrate with seasonal ground-truth data." + ) + + se = math.sqrt(overall * (1 - overall) / max(1, total)) + ci_low = max(0.0, overall - 1.96 * se) + ci_high = min(1.0, overall + 1.96 * se) + + return BasisRiskReport( + zone_id=zone.zone_id, + zone_name=zone.name, + city=zone.city, + settlement_type=zone.settlement_type, + heat_vulnerability=zone.heat_vulnerability, + overall_score=round(overall, 3), + false_positive_rate=round(fpr, 3), + false_negative_rate=round(fnr, 3), + correlation=round(corr, 3), + mae=round(mae, 3), + total_events=total, + true_positives=tp, + true_negatives=tn, + false_positives=fp, + false_negatives=fn, + trigger_accuracy=round(accuracy, 3), + uhi_adjustment=uhi, + time_of_day_factor=tod, + indoor_outdoor_split=zone.outdoor_exposure_pct, + recommendations=recs, + confidence_interval=(round(ci_low, 3), round(ci_high, 3)), + tier_accuracy={k: round(v, 3) for k, v in tier_acc.items()}, + ) + + +# -- Public API --------------------------------------------------------------- + +def assess_zone(zone_id: str) -> BasisRiskReport: + """Run basis risk assessment for a single zone.""" + zone = ZONE_MAP.get(zone_id) + if zone is None: + raise ValueError(f"Unknown zone: {zone_id}") + events = _simulate_events(zone) + report = _compute_report(zone, events) + log.info( + "Basis risk for %s (%s): %.3f [FPR=%.2f, FNR=%.2f, r=%.2f, UHI=+%.1fC]", + zone.name, zone.zone_id, report.overall_score, + report.false_positive_rate, report.false_negative_rate, + report.correlation, report.uhi_adjustment, + ) + return report + + +def assess_all_zones() -> dict[str, BasisRiskReport]: + """Run basis risk assessment across every configured zone.""" + reports: dict[str, BasisRiskReport] = {} + for zone_id in ZONE_MAP: + reports[zone_id] = assess_zone(zone_id) + return reports + + +def recommended_threshold_adjustment( + report: BasisRiskReport, +) -> Optional[dict[str, dict[str, float]]]: + """Suggest adjusted trigger thresholds based on basis risk analysis. + + Returns a dict like HEAT_THRESHOLDS but with modified values, + or None if no adjustment is needed. + """ + if report.overall_score < 0.20: + return None + + adjusted = {} + for level in ("critical", "warning", "watch"): + base = HEAT_THRESHOLDS[level].copy() + if report.false_negative_rate > 0.20: + # Missing too many events: lower temperature thresholds + # Account for UHI by reducing threshold + uhi_adj = report.uhi_adjustment * 0.4 + adjusted[level] = { + "temp_c": round(base["temp_c"] - uhi_adj, 1), + "wbgt_c": round(base["wbgt_c"] - uhi_adj * 0.6, 1), + "consecutive_days": base["consecutive_days"], + } + elif report.false_positive_rate > 0.25: + # Too many false alarms: raise thresholds + factor = 1.0 + (report.false_positive_rate - 0.25) * 0.3 + adjusted[level] = { + "temp_c": round(base["temp_c"] * factor, 1), + "wbgt_c": round(base["wbgt_c"] * factor, 1), + "consecutive_days": base["consecutive_days"], + } + else: + adjusted[level] = base + + return adjusted diff --git a/src/database/__init__.py b/src/database/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/database/crud.py b/src/database/crud.py new file mode 100644 index 0000000000000000000000000000000000000000..6d8b621274d576bd29175b2acf5c2a33574f66cb --- /dev/null +++ b/src/database/crud.py @@ -0,0 +1,651 @@ +""" +Database CRUD operations for the Climate Risk Index Engine. + +Uses asyncpg for PostgreSQL when DATABASE_URL is set, with an in-memory +fallback for demo/testing. Pattern follows Weather AI 2's PgConnection. +""" + +from __future__ import annotations + +import json +import logging +import os +import uuid +from collections import defaultdict +from dataclasses import asdict, dataclass, field +from datetime import datetime, timezone +from typing import Any, Dict, List, Optional, Sequence + +from src.database.schema import get_full_ddl, get_table_names + +log = logging.getLogger(__name__) + + +# ── Connection wrapper ─────────────────────────────────────────────────── + +class PgConnection: + """ + Async PostgreSQL connection manager. + + If DATABASE_URL is not set, transparently switches to InMemoryStore + so the pipeline can run in demo mode without a database. + """ + + def __init__(self, database_url: Optional[str] = None): + self.database_url = database_url or os.environ.get("DATABASE_URL", "") + self._pool = None + self._memory: Optional[InMemoryStore] = None + + @property + def is_postgres(self) -> bool: + return bool(self.database_url) + + async def connect(self) -> None: + """Establish the connection pool or init in-memory store.""" + if self.database_url: + try: + import asyncpg + self._pool = await asyncpg.create_pool( + self.database_url, + min_size=2, + max_size=10, + command_timeout=30, + ) + log.info("Connected to PostgreSQL") + except Exception as exc: + log.warning("PostgreSQL unavailable (%s), using in-memory store", exc) + self._memory = InMemoryStore() + else: + log.info("No DATABASE_URL set, using in-memory store") + self._memory = InMemoryStore() + + async def close(self) -> None: + """Close the connection pool.""" + if self._pool: + await self._pool.close() + self._pool = None + self._memory = None + + async def init_schema(self) -> None: + """Create all tables if they don't exist.""" + if self._pool: + async with self._pool.acquire() as conn: + await conn.execute(get_full_ddl()) + log.info("Schema initialized (%d tables)", len(get_table_names())) + else: + log.info("In-memory store: schema init is a no-op") + + async def execute(self, query: str, *args) -> str: + """Execute a query, return status string.""" + if self._pool: + async with self._pool.acquire() as conn: + return await conn.execute(query, *args) + return "OK (in-memory)" + + async def fetch(self, query: str, *args) -> list[dict]: + """Fetch rows as list of dicts.""" + if self._pool: + async with self._pool.acquire() as conn: + rows = await conn.fetch(query, *args) + return [dict(r) for r in rows] + return [] + + async def fetchrow(self, query: str, *args) -> Optional[dict]: + """Fetch a single row as dict.""" + if self._pool: + async with self._pool.acquire() as conn: + row = await conn.fetchrow(query, *args) + return dict(row) if row else None + return None + + async def fetchval(self, query: str, *args) -> Any: + """Fetch a single value.""" + if self._pool: + async with self._pool.acquire() as conn: + return await conn.fetchval(query, *args) + return None + + +# ── In-memory fallback ─────────────────────────────────────────────────── + +class InMemoryStore: + """ + Simple in-memory storage for demo mode. + Stores rows as dicts keyed by table name. + """ + + def __init__(self): + self.tables: Dict[str, list[dict]] = defaultdict(list) + self._id_counters: Dict[str, int] = defaultdict(int) + + def insert(self, table: str, row: dict) -> int: + """Insert a row, returning a synthetic ID.""" + self._id_counters[table] += 1 + row_copy = dict(row) + row_copy["id"] = self._id_counters[table] + if "created_at" not in row_copy: + row_copy["created_at"] = datetime.now(timezone.utc).isoformat() + self.tables[table].append(row_copy) + return row_copy["id"] + + def query( + self, table: str, filters: Optional[Dict[str, Any]] = None, limit: int = 100 + ) -> list[dict]: + """Query rows with optional simple equality filters.""" + rows = self.tables.get(table, []) + if filters: + rows = [ + r for r in rows + if all(r.get(k) == v for k, v in filters.items()) + ] + return rows[:limit] + + def count(self, table: str) -> int: + return len(self.tables.get(table, [])) + + +# ── CRUD functions ─────────────────────────────────────────────────────── + +# --- Zones --- + +async def upsert_zone(db: PgConnection, zone_data: dict) -> None: + """Insert or update a zone.""" + if db._pool: + await db.execute( + """ + INSERT INTO zones (zone_id, name, city, country, latitude, longitude, + elevation_m, area_km2, population_est, settlement_type, + flood_susceptibility, drainage_quality, primary_flood_type, + rainy_seasons, notes) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15) + ON CONFLICT (zone_id) DO UPDATE SET + name = EXCLUDED.name, + population_est = EXCLUDED.population_est, + notes = EXCLUDED.notes + """, + zone_data["zone_id"], zone_data["name"], zone_data["city"], + zone_data["country"], zone_data["latitude"], zone_data["longitude"], + zone_data.get("elevation_m"), zone_data.get("area_km2"), + zone_data.get("population_est"), zone_data["settlement_type"], + zone_data["flood_susceptibility"], zone_data["drainage_quality"], + zone_data.get("primary_flood_type"), zone_data.get("rainy_seasons"), + zone_data.get("notes", ""), + ) + elif db._memory: + # Simple overwrite in memory + existing = [ + r for r in db._memory.tables["zones"] + if r["zone_id"] == zone_data["zone_id"] + ] + if existing: + existing[0].update(zone_data) + else: + db._memory.insert("zones", zone_data) + + +async def get_zone(db: PgConnection, zone_id: str) -> Optional[dict]: + """Fetch a single zone.""" + if db._pool: + return await db.fetchrow("SELECT * FROM zones WHERE zone_id = $1", zone_id) + elif db._memory: + rows = db._memory.query("zones", {"zone_id": zone_id}, limit=1) + return rows[0] if rows else None + return None + + +async def get_all_zones(db: PgConnection) -> list[dict]: + """Fetch all zones.""" + if db._pool: + return await db.fetch("SELECT * FROM zones ORDER BY city, name") + elif db._memory: + return db._memory.query("zones", limit=1000) + return [] + + +# --- Daily readings --- + +async def insert_daily_reading(db: PgConnection, reading: dict) -> Optional[int]: + """Insert a daily reading. Returns the row ID.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO daily_readings (zone_id, date, precip_mm, precip_nasa_mm, + precip_chirps_mm, temp_mean_c, temp_max_c, temp_min_c, + humidity_pct, wind_speed_ms, source, source_agreement, data_quality) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) + ON CONFLICT (zone_id, date) DO UPDATE SET + precip_mm = EXCLUDED.precip_mm, + data_quality = EXCLUDED.data_quality + RETURNING id + """, + reading["zone_id"], reading["date"], + reading.get("precip_mm"), reading.get("precip_nasa_mm"), + reading.get("precip_chirps_mm"), reading.get("temp_mean_c"), + reading.get("temp_max_c"), reading.get("temp_min_c"), + reading.get("humidity_pct"), reading.get("wind_speed_ms"), + reading.get("source", "unknown"), reading.get("source_agreement"), + reading.get("data_quality", 0.0), + ) + elif db._memory: + return db._memory.insert("daily_readings", reading) + return None + + +async def get_daily_readings( + db: PgConnection, zone_id: str, limit: int = 90 +) -> list[dict]: + """Fetch recent daily readings for a zone.""" + if db._pool: + return await db.fetch( + "SELECT * FROM daily_readings WHERE zone_id = $1 ORDER BY date DESC LIMIT $2", + zone_id, limit, + ) + elif db._memory: + rows = db._memory.query("daily_readings", {"zone_id": zone_id}, limit=limit) + return sorted(rows, key=lambda r: r.get("date", ""), reverse=True) + return [] + + +# --- Healed readings --- + +async def insert_healed_reading(db: PgConnection, reading: dict) -> Optional[int]: + """Insert a healed reading.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO healed_readings (zone_id, date, raw_reading_id, + precip_mm, temp_mean_c, temp_max_c, temp_min_c, + humidity_pct, wind_speed_ms, quality_score, heal_action, fields_corrected) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) + ON CONFLICT (zone_id, date) DO UPDATE SET + quality_score = EXCLUDED.quality_score, + heal_action = EXCLUDED.heal_action + RETURNING id + """, + reading["zone_id"], reading["date"], reading.get("raw_reading_id"), + reading.get("precip_mm"), reading.get("temp_mean_c"), + reading.get("temp_max_c"), reading.get("temp_min_c"), + reading.get("humidity_pct"), reading.get("wind_speed_ms"), + reading.get("quality_score", 0.0), + reading.get("heal_action", "passthrough"), + reading.get("fields_corrected", []), + ) + elif db._memory: + return db._memory.insert("healed_readings", reading) + return None + + +# --- Healing log --- + +async def insert_healing_log(db: PgConnection, entry: dict) -> Optional[int]: + """Insert a healing log entry.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO healing_log (zone_id, date, healed_reading_id, + agent_type, reasoning, corrections, tools_used, + confidence, tokens_used, latency_ms) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + RETURNING id + """, + entry["zone_id"], entry["date"], entry.get("healed_reading_id"), + entry.get("agent_type", "rule_based"), entry.get("reasoning"), + json.dumps(entry.get("corrections", {})), + entry.get("tools_used", []), + entry.get("confidence"), entry.get("tokens_used", 0), + entry.get("latency_ms", 0), + ) + elif db._memory: + return db._memory.insert("healing_log", entry) + return None + + +# --- Monthly indices --- + +async def upsert_monthly_index(db: PgConnection, index_data: dict) -> None: + """Insert or update a monthly index record.""" + if db._pool: + await db.execute( + """ + INSERT INTO monthly_indices (zone_id, year, month, spi_1, spi_3, spi_6, + total_precip_mm, mean_precip_mm, precip_days, precip_anomaly_pct) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + ON CONFLICT (zone_id, year, month) DO UPDATE SET + spi_1 = EXCLUDED.spi_1, + spi_3 = EXCLUDED.spi_3, + spi_6 = EXCLUDED.spi_6, + total_precip_mm = EXCLUDED.total_precip_mm, + computed_at = NOW() + """, + index_data["zone_id"], index_data["year"], index_data["month"], + index_data.get("spi_1"), index_data.get("spi_3"), index_data.get("spi_6"), + index_data.get("total_precip_mm"), index_data.get("mean_precip_mm"), + index_data.get("precip_days"), index_data.get("precip_anomaly_pct"), + ) + elif db._memory: + db._memory.insert("monthly_indices", index_data) + + +async def get_monthly_indices( + db: PgConnection, zone_id: str, limit: int = 24 +) -> list[dict]: + """Fetch recent monthly indices for a zone.""" + if db._pool: + return await db.fetch( + """ + SELECT * FROM monthly_indices + WHERE zone_id = $1 + ORDER BY year DESC, month DESC + LIMIT $2 + """, + zone_id, limit, + ) + elif db._memory: + return db._memory.query("monthly_indices", {"zone_id": zone_id}, limit=limit) + return [] + + +# --- Flood risk scores --- + +async def insert_flood_risk_score(db: PgConnection, score: dict) -> Optional[int]: + """Insert a daily flood risk score.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO flood_risk_scores (zone_id, date, composite_score, + precip_score, api_5day_score, spi_score, drainage_factor, + settlement_factor, risk_level, contributing_factors) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + ON CONFLICT (zone_id, date) DO UPDATE SET + composite_score = EXCLUDED.composite_score, + risk_level = EXCLUDED.risk_level + RETURNING id + """, + score["zone_id"], score["date"], score["composite_score"], + score.get("precip_score"), score.get("api_5day_score"), + score.get("spi_score"), score.get("drainage_factor"), + score.get("settlement_factor"), score.get("risk_level"), + score.get("contributing_factors", []), + ) + elif db._memory: + return db._memory.insert("flood_risk_scores", score) + return None + + +# --- Trigger events --- + +async def insert_trigger_event(db: PgConnection, event: dict) -> Optional[int]: + """Insert a trigger event.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO trigger_events (zone_id, trigger_level, triggered_at, + daily_precip_mm, api_5day_mm, spi_1month, composite_score, + contributing_factors, risk_score_id) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + RETURNING id + """, + event["zone_id"], event["trigger_level"], event["triggered_at"], + event.get("daily_precip_mm"), event.get("api_5day_mm"), + event.get("spi_1month"), event.get("composite_score"), + event.get("contributing_factors", []), event.get("risk_score_id"), + ) + elif db._memory: + return db._memory.insert("trigger_events", event) + return None + + +async def get_trigger_events( + db: PgConnection, zone_id: Optional[str] = None, limit: int = 50 +) -> list[dict]: + """Fetch trigger events, optionally filtered by zone.""" + if db._pool: + if zone_id: + return await db.fetch( + "SELECT * FROM trigger_events WHERE zone_id = $1 ORDER BY triggered_at DESC LIMIT $2", + zone_id, limit, + ) + return await db.fetch( + "SELECT * FROM trigger_events ORDER BY triggered_at DESC LIMIT $1", + limit, + ) + elif db._memory: + filters = {"zone_id": zone_id} if zone_id else None + return db._memory.query("trigger_events", filters, limit=limit) + return [] + + +# --- Basis risk --- + +async def insert_basis_risk(db: PgConnection, report: dict) -> Optional[int]: + """Insert a basis risk assessment.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO basis_risk (zone_id, overall_score, false_positive_rate, + false_negative_rate, correlation, mae, total_events, + true_positives, true_negatives, false_positives, false_negatives, + trigger_accuracy, tier_accuracy, recommendations, + confidence_low, confidence_high) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) + RETURNING id + """, + report["zone_id"], report["overall_score"], + report.get("false_positive_rate"), report.get("false_negative_rate"), + report.get("correlation"), report.get("mae"), + report.get("total_events"), report.get("true_positives"), + report.get("true_negatives"), report.get("false_positives"), + report.get("false_negatives"), report.get("trigger_accuracy"), + json.dumps(report.get("tier_accuracy", {})), + report.get("recommendations", []), + report.get("confidence_low"), report.get("confidence_high"), + ) + elif db._memory: + return db._memory.insert("basis_risk", report) + return None + + +# --- Explanations --- + +async def insert_explanation(db: PgConnection, explanation: dict) -> Optional[int]: + """Insert a generated explanation.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO explanations (trigger_event_id, zone_id, trigger_level, + english_text, swahili_text, payout_amount, payout_currency, + settlement_type, protective_actions, provider) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + RETURNING id + """, + explanation.get("trigger_event_id"), explanation["zone_id"], + explanation["trigger_level"], explanation["english_text"], + explanation["swahili_text"], explanation.get("payout_amount"), + explanation.get("payout_currency", "KES"), + explanation.get("settlement_type"), + explanation.get("protective_actions", []), + explanation.get("provider", "template"), + ) + elif db._memory: + return db._memory.insert("explanations", explanation) + return None + + +async def get_explanations( + db: PgConnection, zone_id: Optional[str] = None, limit: int = 20 +) -> list[dict]: + """Fetch explanations, optionally by zone.""" + if db._pool: + if zone_id: + return await db.fetch( + "SELECT * FROM explanations WHERE zone_id = $1 ORDER BY generated_at DESC LIMIT $2", + zone_id, limit, + ) + return await db.fetch( + "SELECT * FROM explanations ORDER BY generated_at DESC LIMIT $1", + limit, + ) + elif db._memory: + filters = {"zone_id": zone_id} if zone_id else None + return db._memory.query("explanations", filters, limit=limit) + return [] + + +# --- Notifications --- + +async def insert_notification(db: PgConnection, notif: dict) -> Optional[int]: + """Insert a notification delivery record.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO notifications (explanation_id, zone_id, recipient, channel, + status, message_preview, message_sid, cost_estimate, error) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + RETURNING id + """, + notif.get("explanation_id"), notif["zone_id"], + notif["recipient"], notif["channel"], + notif["status"], notif.get("message_preview"), + notif.get("message_sid"), notif.get("cost_estimate", 0.0), + notif.get("error"), + ) + elif db._memory: + return db._memory.insert("notifications", notif) + return None + + +async def get_notifications( + db: PgConnection, zone_id: Optional[str] = None, limit: int = 50 +) -> list[dict]: + """Fetch notification records.""" + if db._pool: + if zone_id: + return await db.fetch( + "SELECT * FROM notifications WHERE zone_id = $1 ORDER BY sent_at DESC LIMIT $2", + zone_id, limit, + ) + return await db.fetch( + "SELECT * FROM notifications ORDER BY sent_at DESC LIMIT $1", + limit, + ) + elif db._memory: + filters = {"zone_id": zone_id} if zone_id else None + return db._memory.query("notifications", filters, limit=limit) + return [] + + +# --- Enrolled policies --- + +async def insert_policy(db: PgConnection, policy: dict) -> Optional[int]: + """Insert an insurance policy.""" + if db._pool: + return await db.fetchval( + """ + INSERT INTO enrolled_policies (policy_number, zone_id, holder_name, + holder_phone, holder_email, settlement_type, premium_kes, + coverage_start, coverage_end, payment_method) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + ON CONFLICT (policy_number) DO NOTHING + RETURNING id + """, + policy.get("policy_number", f"POL-{uuid.uuid4().hex[:8].upper()}"), + policy["zone_id"], policy["holder_name"], + policy.get("holder_phone"), policy.get("holder_email"), + policy["settlement_type"], policy.get("premium_kes"), + policy["coverage_start"], policy["coverage_end"], + policy.get("payment_method", "mpesa"), + ) + elif db._memory: + return db._memory.insert("enrolled_policies", policy) + return None + + +async def get_policies_by_zone(db: PgConnection, zone_id: str) -> list[dict]: + """Fetch active policies for a zone.""" + if db._pool: + return await db.fetch( + """ + SELECT * FROM enrolled_policies + WHERE zone_id = $1 AND is_active = TRUE + ORDER BY holder_name + """, + zone_id, + ) + elif db._memory: + return [ + r for r in db._memory.query("enrolled_policies", {"zone_id": zone_id}, limit=1000) + if r.get("is_active", True) + ] + return [] + + +# --- Pipeline runs --- + +async def start_pipeline_run(db: PgConnection, run_id: Optional[str] = None) -> str: + """Record the start of a pipeline run. Returns run_id.""" + rid = run_id or f"run-{uuid.uuid4().hex[:12]}" + now = datetime.now(timezone.utc).isoformat() + + if db._pool: + await db.execute( + """ + INSERT INTO pipeline_runs (run_id, started_at, status) + VALUES ($1, $2, 'running') + """, + rid, now, + ) + elif db._memory: + db._memory.insert("pipeline_runs", { + "run_id": rid, "started_at": now, "status": "running", + }) + return rid + + +async def finish_pipeline_run( + db: PgConnection, + run_id: str, + status: str = "completed", + steps_completed: Optional[list[str]] = None, + step_status: Optional[dict] = None, + error: Optional[str] = None, + zones_processed: int = 0, +) -> None: + """Record the completion of a pipeline run.""" + now = datetime.now(timezone.utc).isoformat() + + if db._pool: + await db.execute( + """ + UPDATE pipeline_runs + SET finished_at = $2, status = $3, steps_completed = $4, + step_status = $5, error = $6, zones_processed = $7 + WHERE run_id = $1 + """, + run_id, now, status, + steps_completed or [], + json.dumps(step_status or {}), + error, zones_processed, + ) + elif db._memory: + for row in db._memory.tables.get("pipeline_runs", []): + if row.get("run_id") == run_id: + row["finished_at"] = now + row["status"] = status + row["steps_completed"] = steps_completed or [] + row["step_status"] = step_status or {} + row["error"] = error + row["zones_processed"] = zones_processed + break + + +async def get_recent_runs(db: PgConnection, limit: int = 10) -> list[dict]: + """Fetch recent pipeline runs.""" + if db._pool: + return await db.fetch( + "SELECT * FROM pipeline_runs ORDER BY started_at DESC LIMIT $1", + limit, + ) + elif db._memory: + rows = db._memory.query("pipeline_runs", limit=limit) + return sorted(rows, key=lambda r: r.get("started_at", ""), reverse=True) + return [] diff --git a/src/database/schema.py b/src/database/schema.py new file mode 100644 index 0000000000000000000000000000000000000000..c1bc4d1db70be582b518c891d55eeab68c69ab4c --- /dev/null +++ b/src/database/schema.py @@ -0,0 +1,319 @@ +""" +PostgreSQL schema for the Climate Risk Index Engine. + +All table definitions as SQL strings with proper types, foreign keys, +indexes, and constraints. Tables are designed to be created in order +(referenced tables first). +""" + +from __future__ import annotations + + +# ── Table creation order (respects foreign keys) ───────────────────────── + +TABLES_ORDERED: list[str] = [ + "zones", + "daily_readings", + "healed_readings", + "healing_log", + "monthly_indices", + "flood_risk_scores", + "enrolled_policies", + "trigger_events", + "basis_risk", + "explanations", + "notifications", + "pipeline_runs", +] + + +# ── DDL statements ─────────────────────────────────────────────────────── + +CREATE_ZONES = """ +CREATE TABLE IF NOT EXISTS zones ( + zone_id TEXT PRIMARY KEY, + name TEXT NOT NULL, + city TEXT NOT NULL, + country TEXT NOT NULL, + latitude DOUBLE PRECISION NOT NULL, + longitude DOUBLE PRECISION NOT NULL, + elevation_m DOUBLE PRECISION, + area_km2 DOUBLE PRECISION, + population_est INTEGER, + settlement_type TEXT NOT NULL CHECK (settlement_type IN ('formal', 'informal', 'mixed', 'commercial')), + flood_susceptibility TEXT NOT NULL CHECK (flood_susceptibility IN ('high', 'moderate', 'low')), + drainage_quality TEXT NOT NULL CHECK (drainage_quality IN ('poor', 'moderate', 'good')), + primary_flood_type TEXT, + rainy_seasons INTEGER[], + notes TEXT DEFAULT '', + created_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_zones_city ON zones (city); +CREATE INDEX IF NOT EXISTS idx_zones_settlement ON zones (settlement_type); +""" + +CREATE_DAILY_READINGS = """ +CREATE TABLE IF NOT EXISTS daily_readings ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + date DATE NOT NULL, + precip_mm DOUBLE PRECISION, + precip_nasa_mm DOUBLE PRECISION, + precip_chirps_mm DOUBLE PRECISION, + temp_mean_c DOUBLE PRECISION, + temp_max_c DOUBLE PRECISION, + temp_min_c DOUBLE PRECISION, + humidity_pct DOUBLE PRECISION, + wind_speed_ms DOUBLE PRECISION, + source TEXT DEFAULT 'unknown', + source_agreement DOUBLE PRECISION, + data_quality DOUBLE PRECISION DEFAULT 0.0, + ingested_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE (zone_id, date) +); + +CREATE INDEX IF NOT EXISTS idx_daily_readings_zone_date ON daily_readings (zone_id, date DESC); +CREATE INDEX IF NOT EXISTS idx_daily_readings_date ON daily_readings (date DESC); +""" + +CREATE_HEALED_READINGS = """ +CREATE TABLE IF NOT EXISTS healed_readings ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + date DATE NOT NULL, + raw_reading_id BIGINT REFERENCES daily_readings(id), + precip_mm DOUBLE PRECISION, + temp_mean_c DOUBLE PRECISION, + temp_max_c DOUBLE PRECISION, + temp_min_c DOUBLE PRECISION, + humidity_pct DOUBLE PRECISION, + wind_speed_ms DOUBLE PRECISION, + quality_score DOUBLE PRECISION DEFAULT 0.0, + heal_action TEXT DEFAULT 'passthrough', + fields_corrected TEXT[] DEFAULT '{}', + healed_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE (zone_id, date) +); + +CREATE INDEX IF NOT EXISTS idx_healed_readings_zone_date ON healed_readings (zone_id, date DESC); +CREATE INDEX IF NOT EXISTS idx_healed_readings_quality ON healed_readings (quality_score); +""" + +CREATE_HEALING_LOG = """ +CREATE TABLE IF NOT EXISTS healing_log ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + date DATE NOT NULL, + healed_reading_id BIGINT REFERENCES healed_readings(id), + agent_type TEXT DEFAULT 'rule_based', + reasoning TEXT, + corrections JSONB DEFAULT '{}', + tools_used TEXT[] DEFAULT '{}', + confidence DOUBLE PRECISION, + tokens_used INTEGER DEFAULT 0, + latency_ms INTEGER DEFAULT 0, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_healing_log_zone ON healing_log (zone_id, date DESC); +""" + +CREATE_MONTHLY_INDICES = """ +CREATE TABLE IF NOT EXISTS monthly_indices ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + year INTEGER NOT NULL, + month INTEGER NOT NULL CHECK (month BETWEEN 1 AND 12), + spi_1 DOUBLE PRECISION, + spi_3 DOUBLE PRECISION, + spi_6 DOUBLE PRECISION, + total_precip_mm DOUBLE PRECISION, + mean_precip_mm DOUBLE PRECISION, + precip_days INTEGER, + precip_anomaly_pct DOUBLE PRECISION, + computed_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE (zone_id, year, month) +); + +CREATE INDEX IF NOT EXISTS idx_monthly_indices_zone_ym ON monthly_indices (zone_id, year DESC, month DESC); +""" + +CREATE_FLOOD_RISK_SCORES = """ +CREATE TABLE IF NOT EXISTS flood_risk_scores ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + date DATE NOT NULL, + composite_score DOUBLE PRECISION NOT NULL CHECK (composite_score BETWEEN 0 AND 1), + precip_score DOUBLE PRECISION, + api_5day_score DOUBLE PRECISION, + spi_score DOUBLE PRECISION, + drainage_factor DOUBLE PRECISION, + settlement_factor DOUBLE PRECISION, + risk_level TEXT CHECK (risk_level IN ('low', 'moderate', 'high', 'critical')), + contributing_factors TEXT[] DEFAULT '{}', + computed_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE (zone_id, date) +); + +CREATE INDEX IF NOT EXISTS idx_flood_risk_zone_date ON flood_risk_scores (zone_id, date DESC); +CREATE INDEX IF NOT EXISTS idx_flood_risk_level ON flood_risk_scores (risk_level); +""" + +CREATE_ENROLLED_POLICIES = """ +CREATE TABLE IF NOT EXISTS enrolled_policies ( + id BIGSERIAL PRIMARY KEY, + policy_number TEXT UNIQUE NOT NULL, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + holder_name TEXT NOT NULL, + holder_phone TEXT, + holder_email TEXT, + settlement_type TEXT NOT NULL CHECK (settlement_type IN ('formal', 'informal', 'mixed', 'commercial', 'residential')), + premium_kes DOUBLE PRECISION, + coverage_start DATE NOT NULL, + coverage_end DATE NOT NULL, + payment_method TEXT DEFAULT 'mpesa' CHECK (payment_method IN ('mpesa', 'bank', 'cash')), + is_active BOOLEAN DEFAULT TRUE, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_policies_zone ON enrolled_policies (zone_id); +CREATE INDEX IF NOT EXISTS idx_policies_active ON enrolled_policies (is_active) WHERE is_active = TRUE; +CREATE INDEX IF NOT EXISTS idx_policies_phone ON enrolled_policies (holder_phone); +""" + +CREATE_TRIGGER_EVENTS = """ +CREATE TABLE IF NOT EXISTS trigger_events ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + trigger_level TEXT NOT NULL CHECK (trigger_level IN ('critical', 'warning', 'watch')), + triggered_at TIMESTAMPTZ NOT NULL, + daily_precip_mm DOUBLE PRECISION, + api_5day_mm DOUBLE PRECISION, + spi_1month DOUBLE PRECISION, + composite_score DOUBLE PRECISION, + contributing_factors TEXT[] DEFAULT '{}', + risk_score_id BIGINT REFERENCES flood_risk_scores(id), + resolved_at TIMESTAMPTZ, + resolution_notes TEXT, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_trigger_events_zone ON trigger_events (zone_id, triggered_at DESC); +CREATE INDEX IF NOT EXISTS idx_trigger_events_level ON trigger_events (trigger_level); +CREATE INDEX IF NOT EXISTS idx_trigger_events_unresolved ON trigger_events (zone_id) WHERE resolved_at IS NULL; +""" + +CREATE_BASIS_RISK = """ +CREATE TABLE IF NOT EXISTS basis_risk ( + id BIGSERIAL PRIMARY KEY, + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + assessed_at TIMESTAMPTZ DEFAULT NOW(), + overall_score DOUBLE PRECISION NOT NULL CHECK (overall_score BETWEEN 0 AND 1), + false_positive_rate DOUBLE PRECISION, + false_negative_rate DOUBLE PRECISION, + correlation DOUBLE PRECISION, + mae DOUBLE PRECISION, + total_events INTEGER, + true_positives INTEGER, + true_negatives INTEGER, + false_positives INTEGER, + false_negatives INTEGER, + trigger_accuracy DOUBLE PRECISION, + tier_accuracy JSONB DEFAULT '{}', + recommendations TEXT[] DEFAULT '{}', + confidence_low DOUBLE PRECISION, + confidence_high DOUBLE PRECISION +); + +CREATE INDEX IF NOT EXISTS idx_basis_risk_zone ON basis_risk (zone_id, assessed_at DESC); +""" + +CREATE_EXPLANATIONS = """ +CREATE TABLE IF NOT EXISTS explanations ( + id BIGSERIAL PRIMARY KEY, + trigger_event_id BIGINT REFERENCES trigger_events(id), + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + trigger_level TEXT NOT NULL, + english_text TEXT NOT NULL, + swahili_text TEXT NOT NULL, + payout_amount DOUBLE PRECISION, + payout_currency TEXT DEFAULT 'KES', + settlement_type TEXT, + protective_actions TEXT[] DEFAULT '{}', + provider TEXT DEFAULT 'template', + generated_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_explanations_trigger ON explanations (trigger_event_id); +CREATE INDEX IF NOT EXISTS idx_explanations_zone ON explanations (zone_id, generated_at DESC); +""" + +CREATE_NOTIFICATIONS = """ +CREATE TABLE IF NOT EXISTS notifications ( + id BIGSERIAL PRIMARY KEY, + explanation_id BIGINT REFERENCES explanations(id), + zone_id TEXT NOT NULL REFERENCES zones(zone_id), + recipient TEXT NOT NULL, + channel TEXT NOT NULL CHECK (channel IN ('console', 'sms', 'whatsapp')), + status TEXT NOT NULL CHECK (status IN ('sent', 'failed', 'dry_run', 'pending')), + message_preview TEXT, + message_sid TEXT, + cost_estimate DOUBLE PRECISION DEFAULT 0.0, + error TEXT, + sent_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_notifications_zone ON notifications (zone_id, sent_at DESC); +CREATE INDEX IF NOT EXISTS idx_notifications_status ON notifications (status); +CREATE INDEX IF NOT EXISTS idx_notifications_recipient ON notifications (recipient); +""" + +CREATE_PIPELINE_RUNS = """ +CREATE TABLE IF NOT EXISTS pipeline_runs ( + id BIGSERIAL PRIMARY KEY, + run_id TEXT UNIQUE NOT NULL, + started_at TIMESTAMPTZ NOT NULL, + finished_at TIMESTAMPTZ, + status TEXT DEFAULT 'running' CHECK (status IN ('running', 'completed', 'failed', 'partial')), + zones_processed INTEGER DEFAULT 0, + steps_completed TEXT[] DEFAULT '{}', + step_status JSONB DEFAULT '{}', + error TEXT, + duration_s DOUBLE PRECISION, + config_snapshot JSONB DEFAULT '{}' +); + +CREATE INDEX IF NOT EXISTS idx_pipeline_runs_status ON pipeline_runs (status); +CREATE INDEX IF NOT EXISTS idx_pipeline_runs_started ON pipeline_runs (started_at DESC); +""" + + +# ── Aggregate DDL ──────────────────────────────────────────────────────── + +ALL_DDL: dict[str, str] = { + "zones": CREATE_ZONES, + "daily_readings": CREATE_DAILY_READINGS, + "healed_readings": CREATE_HEALED_READINGS, + "healing_log": CREATE_HEALING_LOG, + "monthly_indices": CREATE_MONTHLY_INDICES, + "flood_risk_scores": CREATE_FLOOD_RISK_SCORES, + "enrolled_policies": CREATE_ENROLLED_POLICIES, + "trigger_events": CREATE_TRIGGER_EVENTS, + "basis_risk": CREATE_BASIS_RISK, + "explanations": CREATE_EXPLANATIONS, + "notifications": CREATE_NOTIFICATIONS, + "pipeline_runs": CREATE_PIPELINE_RUNS, +} + + +def get_full_ddl() -> str: + """Return the complete DDL script to create all tables in order.""" + parts = [f"-- Table: {name}\n{ddl}" for name, ddl in ALL_DDL.items()] + return "\n\n".join(parts) + + +def get_table_names() -> list[str]: + """Return table names in creation order.""" + return list(TABLES_ORDERED) diff --git a/src/downscaling/__init__.py b/src/downscaling/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/downscaling/uhi_model.py b/src/downscaling/uhi_model.py new file mode 100644 index 0000000000000000000000000000000000000000..26976bb429a84ed10d7230bcd1533a06b1982ec1 --- /dev/null +++ b/src/downscaling/uhi_model.py @@ -0,0 +1,274 @@ +""" +Urban Heat Island (UHI) ML correction model. + +Adjusts ERA5-Land grid-cell temperature to neighborhood-level using +zone characteristics (settlement type, outdoor exposure, elevation) +and temporal features (hour, month). + +Calibrated to published UHI literature for tropical African cities: + - Informal settlements (tin roofs, no shade): +3 to +6 C + - Mixed zones: +1 to +3 C + - Formal residential: +0.5 to +1.5 C + - Commercial districts: +1 to +2 C + +References: + - Oke et al. (2017) Urban Climates, Cambridge University Press + - Scott et al. (2017) UHI in African cities, Urban Climate +""" + +from __future__ import annotations + +from pathlib import Path + +import numpy as np + +try: + import xgboost as xgb +except ImportError: + xgb = None + +# Settlement type encoding order (for one-hot) +SETTLEMENT_TYPES = ["informal", "mixed", "formal", "commercial"] + +# UHI delta ranges by settlement type (daytime peak, deg C) +UHI_RANGES = { + "informal": (3.0, 6.0), + "mixed": (1.0, 3.0), + "formal": (0.5, 1.5), + "commercial": (1.0, 2.0), +} + +# Vulnerability multipliers +VULNERABILITY_MULT = {"high": 1.15, "moderate": 1.0, "low": 0.85} + + +def _resolve_model_path(model_path: str) -> Path: + """Resolve model path relative to the project root.""" + p = Path(model_path) + if not p.is_absolute(): + p = Path(__file__).resolve().parents[2] / model_path + return p + + +class UHICorrector: + """XGBoost model: zone characteristics -> temperature delta from grid.""" + + def __init__(self, model_path: str = "models/uhi_xgb.json"): + if xgb is None: + raise ImportError( + "xgboost is required. Install with: pip install 'xgboost>=2.0.0'" + ) + self.model_path = _resolve_model_path(model_path) + self.model: xgb.XGBRegressor | None = None + self._load_or_train() + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def correct_temperature( + self, + zone, + grid_temp_c: float, + hour: int = 12, + month: int = 3, + ) -> tuple[float, float, float]: + """Return (corrected_temp, uhi_delta, confidence). + + Args: + zone: An UrbanZone instance (from config.ZONES). + grid_temp_c: ERA5-Land grid temperature in deg C. + hour: Local hour (0-23). + month: Month (1-12). + + Returns: + Tuple of (corrected temperature, UHI delta, confidence 0-1). + """ + features = self._build_features(zone, hour, month) + delta = float(self.model.predict(features)[0]) + + # Confidence based on how well the zone matches training regime + confidence = self._estimate_confidence(zone, hour, month) + + return round(grid_temp_c + delta, 2), round(delta, 2), round(confidence, 3) + + # ------------------------------------------------------------------ + # Training + # ------------------------------------------------------------------ + + def train(self, n_samples: int = 5000, seed: int = 42) -> None: + """Generate synthetic training data and train the XGBoost model. + + Creates samples from the 20 configured zones across varying + hours (0-23) and months (1-12), with UHI deltas drawn from + literature-calibrated distributions. + """ + rng = np.random.default_rng(seed) + + # Import zones lazily to avoid circular imports at module level + from config import ZONES # noqa: WPS433 + + X_rows = [] + y_rows = [] + + samples_per_zone = n_samples // len(ZONES) + extra = n_samples - samples_per_zone * len(ZONES) + + for idx, zone in enumerate(ZONES): + n = samples_per_zone + (1 if idx < extra else 0) + hours = rng.integers(0, 24, size=n) + months = rng.integers(1, 13, size=n) + + for h, m in zip(hours, months): + feat = self._build_features(zone, int(h), int(m)) + X_rows.append(feat[0]) + + delta = self._synthetic_delta(zone, int(h), int(m), rng) + y_rows.append(delta) + + X = np.array(X_rows, dtype=np.float32) + y = np.array(y_rows, dtype=np.float32) + + self.model = xgb.XGBRegressor( + n_estimators=100, + max_depth=4, + learning_rate=0.1, + random_state=seed, + ) + self.model.fit(X, y) + self._save_model() + + # ------------------------------------------------------------------ + # Feature engineering + # ------------------------------------------------------------------ + + def _build_features(self, zone, hour: int, month: int) -> np.ndarray: + """Construct feature vector from zone + time. + + Features (12 total): + 0-3: settlement_type one-hot (informal, mixed, formal, commercial) + 4: outdoor_exposure_pct + 5: elevation_m (scaled /1000) + 6: heat_vulnerability encoded (high=1, moderate=0.5, low=0) + 7-8: hour_sin, hour_cos + 9-10: month_sin, month_cos + 11: outdoor_exposure * vulnerability interaction + """ + # Settlement one-hot + onehot = [0.0] * len(SETTLEMENT_TYPES) + if zone.settlement_type in SETTLEMENT_TYPES: + onehot[SETTLEMENT_TYPES.index(zone.settlement_type)] = 1.0 + + # Vulnerability numeric + vuln_map = {"high": 1.0, "moderate": 0.5, "low": 0.0} + vuln = vuln_map.get(zone.heat_vulnerability, 0.5) + + # Cyclic time encoding + hour_sin = np.sin(2 * np.pi * hour / 24.0) + hour_cos = np.cos(2 * np.pi * hour / 24.0) + month_sin = np.sin(2 * np.pi * (month - 1) / 12.0) + month_cos = np.cos(2 * np.pi * (month - 1) / 12.0) + + # Interaction term + interaction = zone.outdoor_exposure_pct * vuln + + features = np.array( + onehot + + [ + zone.outdoor_exposure_pct, + zone.elevation_m / 1000.0, + vuln, + hour_sin, + hour_cos, + month_sin, + month_cos, + interaction, + ], + dtype=np.float32, + ).reshape(1, -1) + + return features + + # ------------------------------------------------------------------ + # Synthetic data generation + # ------------------------------------------------------------------ + + @staticmethod + def _synthetic_delta(zone, hour: int, month: int, rng) -> float: + """Generate a single UHI delta calibrated to literature. + + Key drivers: + 1. Settlement type (biggest factor) — sets the base range. + 2. Time of day — UHI peaks at night (urban surfaces release + stored heat), smaller during daytime due to rural insolation. + 3. Season — hot dry months amplify UHI; cool/wet months dampen. + 4. Elevation — higher elevation slightly reduces UHI. + """ + lo, hi = UHI_RANGES.get(zone.settlement_type, (1.0, 3.0)) + base = rng.uniform(lo, hi) + + # Nocturnal amplification: UHI peaks around 22:00-04:00 + # Minimum around 10:00-14:00 (rural catches up via insolation) + hour_factor = 1.0 + 0.35 * np.cos(2 * np.pi * (hour - 1) / 24.0) + + # Seasonal modulation: hot months get +10-15%, cool months -10% + is_hot_month = month in getattr(zone, "hot_months", []) + season_factor = 1.12 if is_hot_month else 0.90 + + # Elevation damping: higher = slightly less UHI + elev_factor = max(0.7, 1.0 - zone.elevation_m / 5000.0) + + # Vulnerability/exposure boost + vuln_mult = VULNERABILITY_MULT.get(zone.heat_vulnerability, 1.0) + + delta = base * hour_factor * season_factor * elev_factor * vuln_mult + # Add noise + delta += rng.normal(0, 0.3) + + return float(max(0.0, delta)) + + # ------------------------------------------------------------------ + # Confidence estimation + # ------------------------------------------------------------------ + + @staticmethod + def _estimate_confidence(zone, hour: int, month: int) -> float: + """Heuristic confidence score (0-1). + + Higher confidence for: + - Informal/mixed settlements (most UHI literature covers these) + - Daytime hours (better-studied regime) + - Hot-season months (more extreme, easier to model) + """ + conf = 0.75 # baseline + + # Settlement coverage + if zone.settlement_type in ("informal", "mixed"): + conf += 0.10 + elif zone.settlement_type == "commercial": + conf += 0.05 + + # Daytime boost + if 6 <= hour <= 18: + conf += 0.05 + + # Hot season + if month in getattr(zone, "hot_months", []): + conf += 0.05 + + return min(conf, 0.95) + + # ------------------------------------------------------------------ + # Persistence + # ------------------------------------------------------------------ + + def _save_model(self) -> None: + self.model_path.parent.mkdir(parents=True, exist_ok=True) + self.model.save_model(str(self.model_path)) + + def _load_or_train(self) -> None: + if self.model_path.exists(): + self.model = xgb.XGBRegressor() + self.model.load_model(str(self.model_path)) + else: + self.train() diff --git a/src/explanation/__init__.py b/src/explanation/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/explanation/explainer.py b/src/explanation/explainer.py new file mode 100644 index 0000000000000000000000000000000000000000..a99ae76a88345331a2d98b4c035df2f420bbf625 --- /dev/null +++ b/src/explanation/explainer.py @@ -0,0 +1,363 @@ +""" +Claude-powered heat alert explanation generator. + +When a heat risk trigger fires, enrolled workers need a plain-language +explanation of WHY, what it means for their payout, and what protective +actions to take. This module generates bilingual (English + Swahili) +explanations using Claude with RAG context, with a template-based +fallback if Claude is unavailable. +""" + +from __future__ import annotations + +import logging +import os +from dataclasses import dataclass, field +from datetime import datetime, timezone +from typing import Any, Dict, Optional + +from config import HEAT_THRESHOLDS, PAYOUT_PER_EVENT_USD, ZONE_MAP, UrbanZone +from src.explanation.knowledge_base import ( + INSURANCE_PRODUCT_INFO, + SWAHILI_TERMS, + get_emergency_contacts, + get_protective_actions, + get_zone_context, +) + +log = logging.getLogger(__name__) + + +# -- Data containers ------------------------------------------------------- + +@dataclass +class TriggerEvent: + """A triggered insurance event to be explained.""" + zone_id: str + trigger_level: str # critical, warning, watch + triggered_at: str # ISO timestamp + max_temp_c: float = 0.0 + max_wbgt_c: float = 0.0 + consecutive_days: int = 0 + heat_risk_score: float = 0.0 + contributing_factors: list[str] = field(default_factory=list) + + +@dataclass +class ExplanationResult: + """Generated explanation for a trigger event.""" + zone_id: str + trigger_level: str + english_text: str + swahili_text: str + payout_estimate: Dict[str, Any] + protective_actions: list[str] + emergency_contacts: Dict[str, str] + generated_at: str = field( + default_factory=lambda: datetime.now(timezone.utc).isoformat() + ) + provider: str = "template" # claude or template + zone_name: str = "" + city: str = "" + zone_context: str = "" + tokens_used: int = 0 + + +# -- Claude-based explainer ------------------------------------------------ + +class TriggerExplainer: + """Generates bilingual heat alert explanations using Claude with RAG.""" + + def __init__(self, api_key: Optional[str] = None, model: str = "claude-sonnet-4-20250514"): + self.api_key = api_key or os.environ.get("ANTHROPIC_API_KEY", "") + self.model = model + self._client = None + + def _get_client(self): + if self._client is None: + try: + import anthropic + self._client = anthropic.AsyncAnthropic(api_key=self.api_key) + except Exception as exc: + log.warning("Could not init Anthropic client: %s", exc) + return self._client + + async def explain(self, event, zone=None, basis_risk=None) -> ExplanationResult: + """Generate a full explanation for a heat trigger event.""" + # Support both TriggerEvent and HeatTriggerEvent dataclass inputs + zone_id = getattr(event, 'zone_id', '') + trigger_level = getattr(event, 'trigger_level', 'watch') + + zone_obj = zone or ZONE_MAP.get(zone_id) + if zone_obj is None: + raise ValueError(f"Unknown zone: {zone_id}") + + payout = _compute_payout(event, zone_obj) + actions = get_protective_actions(trigger_level) + contacts = get_emergency_contacts(zone_obj.city) + + if self.api_key: + try: + english, swahili = await self._generate_claude(event, zone_obj, payout) + return ExplanationResult( + zone_id=zone_id, + trigger_level=trigger_level, + english_text=english, + swahili_text=swahili, + payout_estimate=payout, + protective_actions=actions, + emergency_contacts=contacts, + provider="claude", + zone_name=zone_obj.name, + city=zone_obj.city, + zone_context=get_zone_context(zone_id), + ) + except Exception as exc: + log.warning("Claude explanation failed, using template: %s", exc) + + english = _template_english(event, zone_obj, payout) + swahili = _template_swahili(event, zone_obj, payout) + return ExplanationResult( + zone_id=zone_id, + trigger_level=trigger_level, + english_text=english, + swahili_text=swahili, + payout_estimate=payout, + protective_actions=actions, + emergency_contacts=contacts, + provider="template", + zone_name=zone_obj.name, + city=zone_obj.city, + zone_context=get_zone_context(zone_id), + ) + + async def _generate_claude( + self, event, zone: UrbanZone, payout: Dict[str, Any] + ) -> tuple[str, str]: + context = get_zone_context(event.zone_id) + + system = ( + "You are a heat safety notification system for outdoor workers in East Africa. " + "Your audience is workers in markets, construction sites, and informal " + "settlements — many with limited formal education. Write clearly, simply, " + "and with empathy. Do not use jargon or technical abbreviations. " + "Explain what happened, what their payout is, and what they should do to " + "stay safe. Keep the explanation to 4-6 sentences." + ) + + max_temp = getattr(event, 'max_temp_c', 0) + max_wbgt = getattr(event, 'max_wbgt_c', 0) + consec = getattr(event, 'consecutive_days', getattr(event, 'consecutive_days_above', 0)) + thresholds = HEAT_THRESHOLDS.get(event.trigger_level, {}) + + user = ( + f"A {event.trigger_level.upper()} heat alert has been triggered for " + f"outdoor workers in {zone.name}, {zone.city}.\n\n" + f"What happened:\n" + f"- Maximum temperature: {max_temp:.1f}C " + f"(threshold: {thresholds.get('temp_c', 'N/A')}C)\n" + f"- Maximum WBGT (feels-like for workers): {max_wbgt:.1f}C " + f"(threshold: {thresholds.get('wbgt_c', 'N/A')}C)\n" + f"- Consecutive days above threshold: {consec} " + f"(required: {thresholds.get('consecutive_days', 'N/A')})\n" + f"- Settlement type: {zone.settlement_type}\n" + f"- Outdoor worker exposure: {zone.outdoor_exposure_pct:.0%}\n" + f"- Estimated workers affected: {zone.worker_population_est:,}\n\n" + f"Payout: {payout['currency_symbol']}{payout['amount']} per worker\n\n" + f"Knowledge base:\n{context}\n\n" + f"Write a 4-6 sentence explanation for the worker. Tell them what is " + f"happening with the heat, their payout amount, and the most important " + f"thing they should do right now to stay safe." + ) + + client = self._get_client() + if client is None: + raise RuntimeError("Anthropic client not available") + + msg = await client.messages.create( + model=self.model, + max_tokens=500, + system=system, + messages=[{"role": "user", "content": user}], + ) + english = msg.content[0].text.strip() + swahili = await self._translate_to_swahili(english, zone.name) + return english, swahili + + async def _translate_to_swahili(self, english_text: str, zone_name: str) -> str: + system = ( + "You are a professional translator specializing in Swahili (Kiswahili). " + "Translate the given English heat safety notification to simple, clear " + "Swahili that a non-technical person can understand. Keep numbers, " + "currency amounts, and proper nouns unchanged. Return only the translated text." + ) + user = ( + f"Translate this heat alert notification for workers in {zone_name} " + f"to Swahili:\n\n{english_text}" + ) + + client = self._get_client() + if client is None: + raise RuntimeError("Anthropic client not available") + + msg = await client.messages.create( + model=self.model, + max_tokens=600, + system=system, + messages=[{"role": "user", "content": user}], + ) + return msg.content[0].text.strip() + + +# -- Template-based fallback explainer (same interface) -------------------- + +class TemplateExplainer: + """Template-based fallback when Claude is unavailable.""" + + async def explain(self, event, zone=None, basis_risk=None) -> ExplanationResult: + zone_id = getattr(event, 'zone_id', '') + trigger_level = getattr(event, 'trigger_level', 'watch') + zone_obj = zone or ZONE_MAP.get(zone_id) + if zone_obj is None: + raise ValueError(f"Unknown zone: {zone_id}") + + payout = _compute_payout(event, zone_obj) + actions = get_protective_actions(trigger_level) + contacts = get_emergency_contacts(zone_obj.city) + + english = _template_english(event, zone_obj, payout) + swahili = _template_swahili(event, zone_obj, payout) + + return ExplanationResult( + zone_id=zone_id, + trigger_level=trigger_level, + english_text=english, + swahili_text=swahili, + payout_estimate=payout, + protective_actions=actions, + emergency_contacts=contacts, + provider="template", + zone_name=zone_obj.name, + city=zone_obj.city, + zone_context=get_zone_context(zone_id), + ) + + +# -- Payout computation --------------------------------------------------- + +def _compute_payout(event, zone: UrbanZone) -> Dict[str, Any]: + trigger_level = getattr(event, 'trigger_level', 'watch') + amount = PAYOUT_PER_EVENT_USD.get(trigger_level, 0) + + return { + "amount": amount, + "currency": "USD", + "currency_symbol": "$", + "settlement_type": zone.settlement_type, + "trigger_level": trigger_level, + "delivery_method": "M-Pesa" if zone.settlement_type in ("informal", "mixed") else "Mobile money", + "expected_delivery": "Within 48 hours of trigger verification", + "is_payout": amount > 0, + "workers_covered": zone.worker_population_est, + "total_payout": amount * zone.worker_population_est, + } + + +# -- Template-based fallback explanations ---------------------------------- + +_LEVEL_DESCRIPTIONS = { + "critical": ( + "A CRITICAL heat alert has been triggered", + "Onyo la HATARI la joto kali limetolewa", + ), + "warning": ( + "A WARNING heat alert has been issued", + "Onyo la joto limetolewa", + ), + "watch": ( + "A WATCH heat advisory has been issued", + "Tahadhari ya joto imetolewa", + ), +} + + +def _template_english(event, zone: UrbanZone, payout: Dict[str, Any]) -> str: + trigger_level = getattr(event, 'trigger_level', 'watch') + level_en, _ = _LEVEL_DESCRIPTIONS.get(trigger_level, ("A heat alert has been issued", "")) + + max_temp = getattr(event, 'max_temp_c', 0) + max_wbgt = getattr(event, 'max_wbgt_c', 0) + consec = getattr(event, 'consecutive_days', getattr(event, 'consecutive_days_above', 0)) + + lines = [f"{level_en} for outdoor workers in {zone.name}, {zone.city}."] + + thresholds = HEAT_THRESHOLDS.get(trigger_level, {}) + reasons: list[str] = [] + if max_temp >= thresholds.get("temp_c", 999): + reasons.append( + f"temperatures reached {max_temp:.0f}C, above the " + f"{thresholds['temp_c']}C safety threshold" + ) + if max_wbgt >= thresholds.get("wbgt_c", 999): + reasons.append( + f"the heat-humidity index (WBGT) reached {max_wbgt:.0f}C, " + f"above the {thresholds['wbgt_c']}C danger level" + ) + if consec >= thresholds.get("consecutive_days", 999): + reasons.append( + f"these dangerous conditions lasted {consec} consecutive days" + ) + + if reasons: + lines.append("This was triggered because " + " and ".join(reasons) + ".") + else: + lines.append("Heat conditions have exceeded the safety threshold for your area.") + + if payout["is_payout"]: + lines.append( + f"Your payout is {payout['currency_symbol']}{payout['amount']} per worker, " + f"which will be sent via {payout['delivery_method']} within 48 hours." + ) + + actions = get_protective_actions(trigger_level) + if actions: + lines.append(f"Most important: {actions[0]}") + + return " ".join(lines) + + +def _template_swahili(event, zone: UrbanZone, payout: Dict[str, Any]) -> str: + trigger_level = getattr(event, 'trigger_level', 'watch') + _, level_sw = _LEVEL_DESCRIPTIONS.get(trigger_level, ("", "Onyo la joto limetolewa")) + + max_temp = getattr(event, 'max_temp_c', 0) + consec = getattr(event, 'consecutive_days', getattr(event, 'consecutive_days_above', 0)) + + lines = [f"{level_sw} kwa wafanyakazi wa nje katika {zone.name}, {zone.city}."] + + lines.append( + f"Joto limefika {max_temp:.0f}C kwa siku {consec} mfululizo." + ) + + if payout["is_payout"]: + lines.append( + f"Malipo yako ni {payout['currency_symbol']}{payout['amount']} kwa kila mfanyakazi. " + f"Utapokea kupitia {payout['delivery_method']} ndani ya masaa 48." + ) + + if trigger_level == "critical": + lines.append( + "Acha kazi za nje sasa hivi. Nenda kivulini au ndani ya nyumba. " + "Kunywa maji mengi." + ) + elif trigger_level == "warning": + lines.append( + "Punguza kazi za nje. Fanya kazi nzito asubuhi mapema au jioni. " + "Pumzika kivulini kila saa." + ) + else: + lines.append( + "Kuwa makini. Kunywa maji zaidi. Panga kazi nzito kwa masaa ya baridi." + ) + + return " ".join(lines) diff --git a/src/explanation/knowledge_base.py b/src/explanation/knowledge_base.py new file mode 100644 index 0000000000000000000000000000000000000000..6d687d882842eac2f2b4ca28d28d9033daf54822 --- /dev/null +++ b/src/explanation/knowledge_base.py @@ -0,0 +1,340 @@ +""" +Curated knowledge base for the heat alert explanation RAG system. + +Contains real guidance from WHO, ILO, and East African occupational +health authorities, adapted for extreme heat contexts in Nairobi, +Dar es Salaam, Kampala, and Kigali. +""" + +from __future__ import annotations + +from typing import Dict, List + + +# -- WHO/ILO heat stress guidance for outdoor workers ---------------------- + +HEAT_SAFETY_GUIDANCE: list[str] = [ + # Hydration + "Drink water every 15-20 minutes even if you are not thirsty. " + "Do not wait until you feel thirsty — by then you are already dehydrated.", + + "Carry at least 1 litre of clean water for every 2 hours of outdoor work. " + "Avoid alcohol, strong tea, and sugary drinks which increase dehydration.", + + "Add a pinch of salt and sugar to drinking water to replace minerals " + "lost through sweating (oral rehydration solution).", + + # Rest breaks + "Take a 10-minute rest break in shade every 45 minutes when temperature " + "exceeds 35C. In extreme heat above 37C, rest 15 minutes every 30 minutes.", + + "Schedule heavy physical work (carrying, digging, construction) for early " + "morning (before 10am) or late afternoon (after 4pm). Avoid peak heat hours.", + + "If possible, rotate between outdoor and indoor tasks throughout the day " + "to reduce cumulative heat exposure.", + + # Shade and clothing + "Wear loose, light-colored clothing that covers the skin. A wide-brimmed " + "hat or head covering protects against direct sun and reduces heat stroke risk.", + + "Work in shade whenever possible. If shade is not available, create " + "temporary shade using tarps, umbrellas, or fabric canopies.", + + # Emergency signs (heat stroke) + "DANGER SIGNS — seek medical help immediately if someone shows: confusion " + "or strange behavior, inability to sweat despite heat, hot dry red skin, " + "seizures, unconsciousness, or body temperature above 40C.", + + "If a co-worker collapses from heat: move them to shade immediately, pour " + "cool water over their body, fan them, and call for emergency help. Do not " + "give water to an unconscious person.", + + # Adjusted work hours + "Employers should implement a heat action plan: shift start times earlier, " + "provide free drinking water stations, and designate shaded rest areas.", + + "New workers and those returning after absence are at higher risk during " + "the first 1-2 weeks. Gradually increase workload over 7-14 days " + "(heat acclimatization).", +] + + +# -- Zone-specific heat context ------------------------------------------- + +ZONE_HEAT_CONTEXT: Dict[str, str] = { + # Nairobi + "NBO-KIB": ( + "Kibera's informal structures have corrugated tin roofs that absorb and " + "re-radiate solar heat, creating indoor temperatures 10-15C above ambient. " + "Most workers are outdoor traders, jua kali artisans, and transport workers. " + "The zone's elevation (1720m) keeps ambient temperatures moderate, but the " + "urban heat island effect is significant in the densely packed settlement." + ), + "NBO-EAS": ( + "Eastleigh is a busy commercial district with thousands of street vendors " + "and market porters working outdoors on concrete and asphalt surfaces. " + "Heat radiating from buildings and pavement raises effective temperature. " + "Nairobi's highland climate provides some relief, but midday temperatures " + "during the dry season (Jan-Mar) can reach 28-30C." + ), + "NBO-MAT": ( + "Mathare valley traps heat due to its low-lying topography and dense " + "settlement. Air circulation is poor between tightly packed structures. " + "Many residents work as construction laborers, scrap collectors, and " + "informal transport operators — all with high outdoor exposure." + ), + "NBO-SBC": ( + "South B/C is a formal residential area where most workers commute to " + "indoor offices. Heat risk is lower but still affects outdoor guards, " + "gardeners, and maintenance workers during peak afternoon hours." + ), + "NBO-WES": ( + "Westlands commercial district has air-conditioned offices and shopping " + "centers. Heat risk is minimal for most workers but affects outdoor " + "security guards, construction crews, and delivery riders." + ), + "NBO-KAN": ( + "Kangemi has a large population of jua kali (literally 'fierce sun') " + "artisans — welders, carpenters, and mechanics who work outdoors with " + "heat-generating equipment. Combined with ambient heat, occupational " + "heat exposure can be significant." + ), + + # Dar es Salaam + "DAR-JAN": ( + "Jangwani is Dar es Salaam's most heat-vulnerable zone. Located at sea " + "level in an informal settlement with minimal shade and tin roofing, " + "ground-level temperatures regularly exceed 40C during hot months. " + "Humidity of 75-85% pushes WBGT into dangerous territory. Most workers " + "are outdoor laborers, market vendors, and waste collectors." + ), + "DAR-MSA": ( + "Msasani has a large fish market and coastal trading area where workers " + "are exposed to direct sun reflected off the ocean surface. Coastal " + "humidity compounds heat stress. Salt processing and fish drying are " + "outdoor occupations with extended sun exposure." + ), + "DAR-KIN": ( + "Kinondoni is more mixed with some tree cover, but humidity remains " + "consistently high (75-85%). Street vendors and bodaboda riders face " + "extended outdoor exposure. The concrete urban surface amplifies heat." + ), + "DAR-TEM": ( + "Temeke is Dar es Salaam's industrial zone. Port workers, construction " + "crews, and factory workers in poorly ventilated structures face extreme " + "heat exposure. Heavy physical labor combined with high humidity creates " + "the city's highest occupational heat stress." + ), + "DAR-KIG": ( + "Kigamboni peninsula has fishing, salt panning, and coastal construction " + "as primary outdoor occupations. Workers face combined heat from direct " + "sun, sea surface reflection, and high humidity. Limited shade on the " + "exposed peninsula." + ), + + # Kampala + "KLA-BWA": ( + "Bwaise is built on former wetland, creating humid conditions even by " + "Kampala standards. The low-lying settlement traps heat, and the high " + "water table increases humidity. Market traders and small manufacturers " + "work outdoors in congested conditions with poor air circulation." + ), + "KLA-NAT": ( + "Natete market area has high concentrations of outdoor workers — porters, " + "vendors, and boda-boda riders. Concrete market surfaces store and " + "re-radiate heat. Lake Victoria moderates temperatures but also " + "maintains high humidity." + ), + "KLA-NAK": ( + "Nakivubo commercial corridor includes the main taxi park where drivers " + "and conductors wait outdoors for extended periods. The concrete channel " + "and surrounding paved areas create a heat sink." + ), + "KLA-LUB": ( + "Lubaga is on higher ground with some hilltop breezes that provide relief. " + "Heat risk is moderate, mainly affecting construction workers and " + "outdoor service providers." + ), + "KLA-MAK": ( + "Makindye is elevated and has better tree cover than lower-lying areas. " + "Heat risk is lower, but outdoor security guards and gardeners in the " + "residential area still face extended exposure." + ), + + # Kigali + "KGL-NYA": ( + "Nyabugogo valley traps heat despite Kigali's highland elevation. The bus " + "terminal and surrounding market create a hot, congested environment. " + "Workers loading and unloading vehicles face combined heat stress from " + "sun exposure and vehicle exhaust." + ), + "KGL-KIC": ( + "Kicukiro is a growing residential area with moderate heat exposure. " + "Construction workers on new building sites are the primary at-risk group. " + "Kigali's elevation (1520m) keeps temperatures manageable most of the year." + ), + "KGL-GAS": ( + "Gasabo is the administrative district on higher ground. Air-conditioned " + "offices keep most workers comfortable. Outdoor workers (guards, cleaners, " + "construction) face moderate heat during dry season peaks." + ), + "KGL-NYM": ( + "Nyamirambo is a dense residential hillside neighborhood. Market traders " + "and informal workers face heat stress during the dry season, particularly " + "in the lower, more sheltered areas where air circulation is limited." + ), +} + + +# -- Insurance product description ---------------------------------------- + +INSURANCE_PRODUCT_INFO: str = ( + "This is a parametric heat insurance product for outdoor workers in East Africa. " + "Unlike traditional insurance, payouts are triggered automatically when heat " + "conditions exceed pre-defined thresholds — there is no need to file a claim.\n\n" + "How it works:\n" + "1. We continuously monitor temperature and humidity for your work zone.\n" + "2. When heat conditions exceed the trigger threshold for the required number " + "of consecutive days, a payout is initiated automatically.\n" + "3. Payouts arrive via M-Pesa or mobile money within 48 hours of the trigger.\n\n" + "Trigger levels:\n" + "- WATCH: Temperature above 33C or WBGT above 28C for 1+ day. " + "Payout: $5 per worker. Take precautions.\n" + "- WARNING: Temperature above 35C or WBGT above 30C for 2+ consecutive days. " + "Payout: $10 per worker. Reduce outdoor work.\n" + "- CRITICAL: Temperature above 37C or WBGT above 32C for 3+ consecutive days. " + "Payout: $15 per worker. Stop outdoor work during peak hours.\n\n" + "Important: Parametric insurance pays based on the weather index, not on whether " + "you personally experienced heat illness. This means you may receive a payout " + "even if you felt fine (because conditions were dangerous), or you may not receive " + "a payout even if you felt unwell (if the index did not reach the threshold). " + "This gap is called 'basis risk' and we work continuously to minimize it." +) + + +# -- Emergency contacts by city ------------------------------------------- + +EMERGENCY_CONTACTS: Dict[str, Dict[str, str]] = { + "Nairobi": { + "National Emergency": "999 or 112", + "Kenya Red Cross": "1199", + "Kenyatta National Hospital": "+254 20 272 6300", + "Kenya Meteorological Department": "+254 20 386 7880", + "Ambulance (St John)": "+254 20 221 0000", + "Police Emergency": "999", + }, + "Dar es Salaam": { + "Tanzania Emergency": "112 or 114", + "Tanzania Red Cross": "+255 22 215 0330", + "Muhimbili National Hospital": "+255 22 215 1599", + "Tanzania Meteorological Authority": "+255 22 246 0706", + "Ambulance": "114", + }, + "Kampala": { + "Uganda Emergency": "999 or 112", + "Uganda Red Cross": "+256 31 225 8701", + "Mulago National Hospital": "+256 41 425 4106", + "Uganda National Meteorological Authority": "+256 41 425 1798", + "Ambulance": "911", + }, + "Kigali": { + "Rwanda Emergency": "112", + "Rwanda Red Cross": "+250 78 830 0086", + "CHUK Hospital": "+250 78 830 1001", + "Rwanda Meteorology Agency": "+250 78 218 5230", + "Ambulance (SAMU)": "912", + }, +} + + +# -- Swahili translations of key heat and insurance terms ---------------- + +SWAHILI_TERMS: Dict[str, str] = { + "heat": "joto", + "extreme heat": "joto kali", + "heat stroke": "kiharusi cha joto", + "heat stress": "msongo wa joto", + "temperature": "joto la hewa", + "humidity": "unyevunyevu", + "warning": "onyo", + "critical": "hali ya hatari", + "watch": "tahadhari", + "payout": "malipo", + "insurance": "bima", + "trigger": "kiwango cha hatari", + "shade": "kivuli", + "water": "maji", + "rest break": "mapumziko", + "dehydration": "upungufu wa maji mwilini", + "outdoor worker": "mfanyakazi wa nje", + "sun protection": "kinga ya jua", + "emergency": "dharura", + "ambulance": "gari la wagonjwa", + "M-Pesa": "M-Pesa", + "Red Cross": "Msalaba Mwekundu", +} + + +# -- Protective actions by trigger level ---------------------------------- + +PROTECTIVE_ACTIONS: Dict[str, list[str]] = { + "critical": [ + "STOP all outdoor work during peak heat hours (10am-4pm).", + "Move to shade or indoors immediately. Do not continue working in direct sun.", + "Drink water constantly — at least 250ml every 15 minutes.", + "Watch for danger signs: confusion, no sweating, hot dry skin, dizziness.", + "If someone collapses: move to shade, pour water on them, fan, call ambulance.", + "Your payout of $15 will arrive via mobile money within 48 hours.", + "Do not return to outdoor work until the heat alert is downgraded.", + ], + "warning": [ + "Reduce outdoor work to early morning (before 10am) and late afternoon (after 4pm).", + "Take 15-minute shade breaks every hour during outdoor work.", + "Drink at least 1 cup of water every 20 minutes.", + "Wear loose, light-colored clothing and a hat.", + "Your payout of $10 will arrive via mobile money within 48 hours.", + "Watch for heat illness signs in yourself and co-workers.", + "Set up shade structures if working outdoors is unavoidable.", + ], + "watch": [ + "Stay alert — heat conditions are developing.", + "Increase water intake beyond normal levels.", + "Plan your heavy work for cooler hours of the day.", + "Ensure shade and water are available at your work site.", + "Your payout of $5 will arrive via mobile money within 48 hours.", + ], +} + + +# -- Retrieval function --------------------------------------------------- + +def get_zone_context(zone_id: str) -> str: + """Assemble full knowledge base context for a zone. + + Returns a single text block suitable for injection into a Claude prompt. + """ + parts: list[str] = [] + + # Zone heat context + context = ZONE_HEAT_CONTEXT.get(zone_id, "No heat vulnerability data available for this zone.") + parts.append(f"ZONE HEAT VULNERABILITY:\n{context}") + + # Product info + parts.append(f"INSURANCE PRODUCT:\n{INSURANCE_PRODUCT_INFO}") + + # Heat safety (first 8 most relevant) + safety_text = "\n".join(f"- {s}" for s in HEAT_SAFETY_GUIDANCE[:8]) + parts.append(f"HEAT SAFETY GUIDANCE (WHO/ILO):\n{safety_text}") + + return "\n\n---\n\n".join(parts) + + +def get_emergency_contacts(city: str) -> Dict[str, str]: + """Get emergency contacts for a city.""" + return EMERGENCY_CONTACTS.get(city, EMERGENCY_CONTACTS.get("Nairobi", {})) + + +def get_protective_actions(trigger_level: str) -> list[str]: + """Get recommended protective actions for a trigger level.""" + return PROTECTIVE_ACTIONS.get(trigger_level, PROTECTIVE_ACTIONS["watch"]) diff --git a/src/healing/__init__.py b/src/healing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/healing/healer.py b/src/healing/healer.py new file mode 100644 index 0000000000000000000000000000000000000000..6354df7f69ade8584df335c7bfc763db156228a6 --- /dev/null +++ b/src/healing/healer.py @@ -0,0 +1,953 @@ +""" +Claude-powered AI healing agent + rule-based fallback for climate data. + +HealingAgent: uses Claude Sonnet with 5 investigation tools to assess and +heal daily precipitation/temperature readings for East African urban zones. +Cross-validates CHIRPS vs NASA POWER, checks against climatological normals, +and compares neighboring zones. + +RuleBasedFallback: deterministic anomaly detection and correction. +Used when the Anthropic API is unavailable. +""" + +from __future__ import annotations + +import json +import logging +import re +import time +import uuid +from dataclasses import dataclass, field +from datetime import datetime, timezone +from typing import Any + +import anthropic + +from config import ZONE_MAP, ZONES, RAINY_SEASONS + +log = logging.getLogger(__name__) + + +# --------------------------------------------------------------------------- +# Data models +# --------------------------------------------------------------------------- + +@dataclass +class HealingAssessment: + zone_id: str + date: str + assessment: str # good, corrected, filled, flagged + original_precip: float | None + healed_precip: float | None + original_temp: float | None + healed_temp: float | None + reasoning: str + tools_used: list[str] + tokens_used: int + latency_ms: float + + +@dataclass +class HealedReading: + zone_id: str + date: str + precip_mm: float | None + temp_mean_c: float | None + temp_max_c: float | None + temp_min_c: float | None + humidity_pct: float | None + wind_speed_ms: float | None + heal_action: str + quality_score: float + + +@dataclass +class HealedData: + zone_id: str + readings: list[HealedReading] + quality_score: float # 0-1 + assessments: list[HealingAssessment] + healer_used: str # "claude" or "rule_based" + + +# --------------------------------------------------------------------------- +# Climatological normals — real data for East African cities +# Monthly mean precipitation (mm), std dev (mm), typical daily range (mm) +# Sources: Kenya Met Department, Tanzania Met Agency, UNMA, Rwanda Meteorology +# --------------------------------------------------------------------------- + +CLIMATOLOGICAL_NORMALS: dict[tuple[str, int], dict[str, Any]] = { + # ── Nairobi (bimodal: long rains MAM, short rains ON) ── + ("Nairobi", 1): {"mean_precip_mm": 58, "std_dev_mm": 35, "daily_range": (0, 15), "mean_temp_c": 19.0, "temp_range": (12, 26)}, + ("Nairobi", 2): {"mean_precip_mm": 52, "std_dev_mm": 40, "daily_range": (0, 18), "mean_temp_c": 19.5, "temp_range": (12, 27)}, + ("Nairobi", 3): {"mean_precip_mm": 95, "std_dev_mm": 50, "daily_range": (0, 30), "mean_temp_c": 20.0, "temp_range": (14, 26)}, + ("Nairobi", 4): {"mean_precip_mm": 210, "std_dev_mm": 70, "daily_range": (0, 50), "mean_temp_c": 19.5, "temp_range": (14, 25)}, + ("Nairobi", 5): {"mean_precip_mm": 165, "std_dev_mm": 60, "daily_range": (0, 40), "mean_temp_c": 18.5, "temp_range": (13, 24)}, + ("Nairobi", 6): {"mean_precip_mm": 35, "std_dev_mm": 25, "daily_range": (0, 10), "mean_temp_c": 16.5, "temp_range": (11, 22)}, + ("Nairobi", 7): {"mean_precip_mm": 18, "std_dev_mm": 15, "daily_range": (0, 5), "mean_temp_c": 15.5, "temp_range": (10, 21)}, + ("Nairobi", 8): {"mean_precip_mm": 22, "std_dev_mm": 18, "daily_range": (0, 8), "mean_temp_c": 16.0, "temp_range": (10, 22)}, + ("Nairobi", 9): {"mean_precip_mm": 28, "std_dev_mm": 20, "daily_range": (0, 10), "mean_temp_c": 17.5, "temp_range": (11, 24)}, + ("Nairobi", 10): {"mean_precip_mm": 60, "std_dev_mm": 40, "daily_range": (0, 25), "mean_temp_c": 19.0, "temp_range": (13, 25)}, + ("Nairobi", 11): {"mean_precip_mm": 150, "std_dev_mm": 65, "daily_range": (0, 45), "mean_temp_c": 18.5, "temp_range": (13, 24)}, + ("Nairobi", 12): {"mean_precip_mm": 90, "std_dev_mm": 50, "daily_range": (0, 25), "mean_temp_c": 18.5, "temp_range": (13, 25)}, + + # ── Dar es Salaam (bimodal: masika MAM, vuli ND) ── + ("Dar es Salaam", 1): {"mean_precip_mm": 70, "std_dev_mm": 50, "daily_range": (0, 20), "mean_temp_c": 28.0, "temp_range": (24, 32)}, + ("Dar es Salaam", 2): {"mean_precip_mm": 55, "std_dev_mm": 45, "daily_range": (0, 18), "mean_temp_c": 28.5, "temp_range": (24, 33)}, + ("Dar es Salaam", 3): {"mean_precip_mm": 130, "std_dev_mm": 65, "daily_range": (0, 40), "mean_temp_c": 28.0, "temp_range": (24, 32)}, + ("Dar es Salaam", 4): {"mean_precip_mm": 280, "std_dev_mm": 90, "daily_range": (0, 60), "mean_temp_c": 27.0, "temp_range": (23, 31)}, + ("Dar es Salaam", 5): {"mean_precip_mm": 180, "std_dev_mm": 75, "daily_range": (0, 45), "mean_temp_c": 26.0, "temp_range": (22, 30)}, + ("Dar es Salaam", 6): {"mean_precip_mm": 40, "std_dev_mm": 30, "daily_range": (0, 12), "mean_temp_c": 24.5, "temp_range": (20, 29)}, + ("Dar es Salaam", 7): {"mean_precip_mm": 30, "std_dev_mm": 22, "daily_range": (0, 8), "mean_temp_c": 24.0, "temp_range": (19, 29)}, + ("Dar es Salaam", 8): {"mean_precip_mm": 25, "std_dev_mm": 18, "daily_range": (0, 8), "mean_temp_c": 24.0, "temp_range": (19, 29)}, + ("Dar es Salaam", 9): {"mean_precip_mm": 25, "std_dev_mm": 18, "daily_range": (0, 8), "mean_temp_c": 25.0, "temp_range": (20, 30)}, + ("Dar es Salaam", 10): {"mean_precip_mm": 55, "std_dev_mm": 40, "daily_range": (0, 18), "mean_temp_c": 26.5, "temp_range": (22, 31)}, + ("Dar es Salaam", 11): {"mean_precip_mm": 120, "std_dev_mm": 60, "daily_range": (0, 35), "mean_temp_c": 27.5, "temp_range": (23, 32)}, + ("Dar es Salaam", 12): {"mean_precip_mm": 130, "std_dev_mm": 65, "daily_range": (0, 35), "mean_temp_c": 28.0, "temp_range": (24, 32)}, + + # ── Kampala (bimodal: first rains MAM, second rains SON) ── + ("Kampala", 1): {"mean_precip_mm": 50, "std_dev_mm": 35, "daily_range": (0, 15), "mean_temp_c": 22.0, "temp_range": (17, 28)}, + ("Kampala", 2): {"mean_precip_mm": 60, "std_dev_mm": 40, "daily_range": (0, 18), "mean_temp_c": 22.5, "temp_range": (17, 29)}, + ("Kampala", 3): {"mean_precip_mm": 130, "std_dev_mm": 55, "daily_range": (0, 35), "mean_temp_c": 22.0, "temp_range": (17, 27)}, + ("Kampala", 4): {"mean_precip_mm": 175, "std_dev_mm": 65, "daily_range": (0, 50), "mean_temp_c": 21.5, "temp_range": (17, 26)}, + ("Kampala", 5): {"mean_precip_mm": 145, "std_dev_mm": 55, "daily_range": (0, 40), "mean_temp_c": 21.5, "temp_range": (17, 26)}, + ("Kampala", 6): {"mean_precip_mm": 65, "std_dev_mm": 35, "daily_range": (0, 15), "mean_temp_c": 21.0, "temp_range": (16, 26)}, + ("Kampala", 7): {"mean_precip_mm": 55, "std_dev_mm": 30, "daily_range": (0, 12), "mean_temp_c": 20.5, "temp_range": (16, 25)}, + ("Kampala", 8): {"mean_precip_mm": 75, "std_dev_mm": 40, "daily_range": (0, 20), "mean_temp_c": 21.0, "temp_range": (16, 26)}, + ("Kampala", 9): {"mean_precip_mm": 90, "std_dev_mm": 45, "daily_range": (0, 25), "mean_temp_c": 21.5, "temp_range": (17, 27)}, + ("Kampala", 10): {"mean_precip_mm": 120, "std_dev_mm": 55, "daily_range": (0, 35), "mean_temp_c": 21.5, "temp_range": (17, 27)}, + ("Kampala", 11): {"mean_precip_mm": 140, "std_dev_mm": 60, "daily_range": (0, 40), "mean_temp_c": 21.5, "temp_range": (17, 26)}, + ("Kampala", 12): {"mean_precip_mm": 80, "std_dev_mm": 45, "daily_range": (0, 22), "mean_temp_c": 21.5, "temp_range": (17, 27)}, + + # ── Kigali (bimodal: long rains MAM, short rains ON) ── + ("Kigali", 1): {"mean_precip_mm": 75, "std_dev_mm": 40, "daily_range": (0, 20), "mean_temp_c": 21.0, "temp_range": (15, 27)}, + ("Kigali", 2): {"mean_precip_mm": 90, "std_dev_mm": 45, "daily_range": (0, 25), "mean_temp_c": 21.0, "temp_range": (15, 27)}, + ("Kigali", 3): {"mean_precip_mm": 115, "std_dev_mm": 50, "daily_range": (0, 35), "mean_temp_c": 21.0, "temp_range": (15, 27)}, + ("Kigali", 4): {"mean_precip_mm": 155, "std_dev_mm": 60, "daily_range": (0, 45), "mean_temp_c": 21.0, "temp_range": (15, 26)}, + ("Kigali", 5): {"mean_precip_mm": 100, "std_dev_mm": 50, "daily_range": (0, 30), "mean_temp_c": 21.0, "temp_range": (15, 27)}, + ("Kigali", 6): {"mean_precip_mm": 20, "std_dev_mm": 15, "daily_range": (0, 5), "mean_temp_c": 21.0, "temp_range": (15, 28)}, + ("Kigali", 7): {"mean_precip_mm": 10, "std_dev_mm": 10, "daily_range": (0, 3), "mean_temp_c": 21.5, "temp_range": (14, 28)}, + ("Kigali", 8): {"mean_precip_mm": 30, "std_dev_mm": 22, "daily_range": (0, 10), "mean_temp_c": 22.0, "temp_range": (15, 29)}, + ("Kigali", 9): {"mean_precip_mm": 75, "std_dev_mm": 40, "daily_range": (0, 20), "mean_temp_c": 21.5, "temp_range": (15, 28)}, + ("Kigali", 10): {"mean_precip_mm": 105, "std_dev_mm": 50, "daily_range": (0, 30), "mean_temp_c": 21.0, "temp_range": (15, 27)}, + ("Kigali", 11): {"mean_precip_mm": 105, "std_dev_mm": 50, "daily_range": (0, 30), "mean_temp_c": 20.5, "temp_range": (15, 26)}, + ("Kigali", 12): {"mean_precip_mm": 70, "std_dev_mm": 40, "daily_range": (0, 20), "mean_temp_c": 20.5, "temp_range": (15, 26)}, +} + + +# --------------------------------------------------------------------------- +# Tool definitions (JSON Schema format for Claude tool-use API) +# --------------------------------------------------------------------------- + +HEALING_TOOLS = [ + { + "name": "zone_metadata", + "description": ( + "Get metadata for an urban zone: name, city, country, settlement type, " + "elevation, flood susceptibility, drainage quality, primary flood type. " + "Use this to understand a zone's geography and vulnerability context." + ), + "input_schema": { + "type": "object", + "properties": { + "zone_id": { + "type": "string", + "description": "Zone ID, e.g. 'NBO-KIB' for Kibera or 'DAR-JAN' for Jangwani", + }, + }, + "required": ["zone_id"], + }, + }, + { + "name": "historical_norms", + "description": ( + "Get climatological normals for a zone's city in a given month. Returns " + "mean monthly precipitation, standard deviation, typical daily range, " + "mean temperature, and temperature range. Based on long-term observational " + "records. Use this to check whether a reading is within normal bounds." + ), + "input_schema": { + "type": "object", + "properties": { + "zone_id": {"type": "string", "description": "Zone ID"}, + "month": {"type": "integer", "description": "Calendar month (1-12)"}, + }, + "required": ["zone_id", "month"], + }, + }, + { + "name": "cross_source_check", + "description": ( + "Compare CHIRPS and NASA POWER precipitation values for the same zone " + "and date. Returns both source values, the absolute difference, and an " + "agreement score. Use this when you need to assess which source is more " + "reliable for a given reading or when values look suspicious." + ), + "input_schema": { + "type": "object", + "properties": { + "zone_id": {"type": "string", "description": "Zone ID"}, + "date": {"type": "string", "description": "Date in YYYY-MM-DD format"}, + }, + "required": ["zone_id", "date"], + }, + }, + { + "name": "neighbor_comparison", + "description": ( + "Compare a zone's readings against other zones in the same city. Returns " + "neighboring zone values with distances. Use this to detect spatial " + "outliers — if one zone in Nairobi reads 200mm while all others read <20mm, " + "that's suspicious." + ), + "input_schema": { + "type": "object", + "properties": { + "zone_id": {"type": "string", "description": "Zone ID to compare"}, + "date": {"type": "string", "description": "Date in YYYY-MM-DD format"}, + }, + "required": ["zone_id", "date"], + }, + }, + { + "name": "seasonal_context", + "description": ( + "Get seasonal rainfall context for a zone: whether the date falls in a " + "rainy season, what the season is called locally, and expected rainfall " + "patterns. Use this to judge whether extreme values are seasonally normal." + ), + "input_schema": { + "type": "object", + "properties": { + "zone_id": {"type": "string", "description": "Zone ID"}, + "month": {"type": "integer", "description": "Calendar month (1-12)"}, + }, + "required": ["zone_id", "month"], + }, + }, +] + + +# --------------------------------------------------------------------------- +# System prompt for the healing agent +# --------------------------------------------------------------------------- + +SYSTEM_PROMPT_TEMPLATE = """You are a climate data quality agent for an urban flood parametric insurance system covering {n_zones} zones across Nairobi, Dar es Salaam, Kampala, and Kigali. + +## Data Sources You're Working With + +Each zone has daily readings from two independent satellite/reanalysis sources: +1. **CHIRPS** (Climate Hazards Group InfraRed Precipitation with Station data) — 0.05° resolution precipitation estimates combining satellite imagery with station data +2. **NASA POWER** — 0.5° resolution reanalysis providing precipitation, temperature, humidity, and wind speed + +Your job is Step 2 of a 6-step parametric insurance pipeline: heal and quality-score daily readings BEFORE they feed into SPI calculation and flood risk indexing (Step 3), which ultimately triggers insurance payouts. + +## What You're Checking + +For each zone's daily reading: +- **Impossible values**: negative precipitation, precipitation >500mm/day, temperatures outside -5 to 55°C +- **Statistical outliers**: daily precip more than 3 standard deviations above the monthly mean for that city +- **Source disagreements**: CHIRPS and NASA POWER differing by more than 20mm on the same day +- **Missing data**: NULL precipitation or temperature values that need filling +- **Spatial inconsistency**: one zone in a city reading wildly differently from its neighbors + +## Your Task + +You receive a batch of {n_zones} daily readings. For each reading: +1. Assess data quality — check for impossible values, outliers, source disagreements, missing data +2. Use your tools selectively to investigate suspicious readings +3. Produce a structured assessment for EVERY reading + +## East African Climate Context + +These are tropical cities at varying elevations with distinct rainy seasons: +- **Nairobi** (1620-1780m): Bimodal — long rains MAM (heavy: 95-210mm/month), short rains ON (60-150mm/month). Highland climate, cooler than expected for equator. +- **Dar es Salaam** (8-35m): Bimodal — masika MAM (130-280mm/month), vuli ND (120-130mm/month). Hot coastal, consistent high humidity. +- **Kampala** (1140-1260m): Bimodal with less pronounced dry season. Peak rains MAM and SON (90-175mm/month). +- **Kigali** (1420-1580m): Bimodal — long rains MAM, short rains ON. Pronounced dry JJ (10-20mm/month). "Land of a thousand hills" — elevation matters. + +Daily rainfall of 50-80mm during peak rainy season is heavy but not impossible. 100mm+ in a single day is extreme and warrants investigation. >200mm/day is very rare outside tropical cyclone influence. + +## Key Rules +- NEVER fabricate data. If you can't confidently correct a value, flag it. +- For missing precipitation: use the other source (CHIRPS or NASA POWER) if available; if both missing, use neighbor average. +- For missing temperature: use NASA POWER value (CHIRPS is precip-only). +- When CHIRPS and NASA POWER agree within 10mm, use CHIRPS as primary (higher resolution). When they disagree >20mm, investigate. +- Quality score: 0.95+ for dual-source agreement, 0.7-0.9 for corrected, 0.5-0.7 for single-source filled, <0.5 for flagged. + +## Efficiency — IMPORTANT +Be selective with tools: +- For readings with dual-source agreement and reasonable values: mark as "good" without tool calls. +- Only call `historical_norms` or `neighbor_comparison` when a value looks suspicious. +- Only call `seasonal_context` when you need to judge whether an extreme value is normal for the season. +- Batch tool calls in a single turn when possible. +- Do NOT investigate a reading more than 2 rounds. + +## Output Format + +Return your final assessment as a JSON array wrapped in ```json fences. Each object must have: +- zone_id (string) +- date (string): YYYY-MM-DD +- assessment (string): "good" | "corrected" | "filled" | "flagged" +- original_precip (number or null) +- healed_precip (number or null) +- original_temp (number or null) +- healed_temp (number or null) +- reasoning (string): 1-2 sentences +- tools_used (array of strings)""" + + +# --------------------------------------------------------------------------- +# Tool implementations +# --------------------------------------------------------------------------- + +def _haversine_km(lat1: float, lon1: float, lat2: float, lon2: float) -> float: + """Great-circle distance between two points in km.""" + import math + R = 6371.0 + dlat = math.radians(lat2 - lat1) + dlon = math.radians(lon2 - lon1) + a = (math.sin(dlat / 2) ** 2 + + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * + math.sin(dlon / 2) ** 2) + return R * 2 * math.asin(math.sqrt(a)) + + +def _tool_zone_metadata(zone_id: str) -> dict[str, Any]: + zone = ZONE_MAP.get(zone_id) + if zone is None: + return {"error": f"Unknown zone_id: {zone_id}"} + return { + "zone_id": zone.zone_id, + "name": zone.name, + "city": zone.city, + "country": zone.country, + "latitude": zone.latitude, + "longitude": zone.longitude, + "elevation_m": zone.elevation_m, + "settlement_type": zone.settlement_type, + "flood_susceptibility": zone.flood_susceptibility, + "drainage_quality": zone.drainage_quality, + "primary_flood_type": zone.primary_flood_type, + "notes": zone.notes, + } + + +def _tool_historical_norms(zone_id: str, month: int) -> dict[str, Any]: + zone = ZONE_MAP.get(zone_id) + if zone is None: + return {"error": f"Unknown zone_id: {zone_id}"} + + key = (zone.city, month) + norms = CLIMATOLOGICAL_NORMALS.get(key) + if norms is None: + return {"error": f"No climatological normals for city={zone.city}, month={month}"} + + return { + "zone_id": zone_id, + "city": zone.city, + "month": month, + **norms, + } + + +def _tool_cross_source_check(zone_id: str, date: str, + batch_readings: list[dict]) -> dict[str, Any]: + zone = ZONE_MAP.get(zone_id) + if zone is None: + return {"error": f"Unknown zone_id: {zone_id}"} + + # Find this zone's reading in the batch + reading = None + for r in batch_readings: + if r.get("zone_id") == zone_id and r.get("date") == date: + reading = r + break + + if reading is None: + return {"error": f"No reading found for zone {zone_id} on {date}"} + + chirps = reading.get("precip_chirps_mm") + nasa = reading.get("precip_nasa_mm") + + result: dict[str, Any] = { + "zone_id": zone_id, + "date": date, + "chirps_precip_mm": chirps, + "nasa_precip_mm": nasa, + } + + if chirps is not None and nasa is not None: + diff = abs(chirps - nasa) + agreement = max(0.0, 1.0 - diff / 50.0) # 0mm diff = 1.0, 50mm diff = 0.0 + result["difference_mm"] = round(diff, 1) + result["agreement_score"] = round(agreement, 2) + result["recommendation"] = ( + "Sources agree well" if diff < 10 else + "Moderate disagreement — investigate" if diff < 20 else + "Significant disagreement — check neighbors and norms" + ) + else: + available = "CHIRPS" if chirps is not None else "NASA POWER" if nasa is not None else "neither" + result["note"] = f"Only {available} available for cross-check" + + return result + + +def _tool_neighbor_comparison(zone_id: str, date: str, + batch_readings: list[dict]) -> dict[str, Any]: + zone = ZONE_MAP.get(zone_id) + if zone is None: + return {"error": f"Unknown zone_id: {zone_id}"} + + # Build lookup from batch readings for this date + readings_by_zone = {} + for r in batch_readings: + if r.get("date") == date: + readings_by_zone[r["zone_id"]] = r + + # Find zones in the same city + neighbors = [] + for z in ZONES: + if z.zone_id == zone_id or z.city != zone.city: + continue + dist = _haversine_km(zone.latitude, zone.longitude, z.latitude, z.longitude) + reading = readings_by_zone.get(z.zone_id, {}) + neighbors.append({ + "zone_id": z.zone_id, + "name": z.name, + "distance_km": round(dist, 1), + "precip_mm": reading.get("precip_mm"), + "precip_chirps_mm": reading.get("precip_chirps_mm"), + "precip_nasa_mm": reading.get("precip_nasa_mm"), + "temp_mean_c": reading.get("temp_mean_c"), + "settlement_type": z.settlement_type, + }) + + neighbors.sort(key=lambda x: x["distance_km"]) + + # Compute city average for context + precip_vals = [n["precip_mm"] for n in neighbors if n.get("precip_mm") is not None] + city_avg = round(sum(precip_vals) / len(precip_vals), 1) if precip_vals else None + + return { + "zone_id": zone_id, + "city": zone.city, + "date": date, + "neighbors_found": len(neighbors), + "city_avg_precip_mm": city_avg, + "neighbors": neighbors, + } + + +def _tool_seasonal_context(zone_id: str, month: int) -> dict[str, Any]: + zone = ZONE_MAP.get(zone_id) + if zone is None: + return {"error": f"Unknown zone_id: {zone_id}"} + + city = zone.city + seasons = RAINY_SEASONS.get(city, {}) + + in_rainy_season = False + season_name = "dry season" + for name, months in seasons.items(): + if month in months: + in_rainy_season = True + season_name = name + break + + norms = CLIMATOLOGICAL_NORMALS.get((city, month), {}) + + return { + "zone_id": zone_id, + "city": city, + "month": month, + "in_rainy_season": in_rainy_season, + "season_name": season_name, + "rainy_months": zone.rainy_seasons, + "expected_monthly_precip_mm": norms.get("mean_precip_mm"), + "expected_daily_max_mm": norms.get("daily_range", (0, 0))[1], + "expected_temp_range": norms.get("temp_range"), + "context": ( + f"{'Peak' if month in zone.rainy_seasons else 'Off-season'} for {city}. " + f"Zone {zone.name} is a {zone.settlement_type} settlement with " + f"{zone.flood_susceptibility} flood susceptibility and " + f"{zone.drainage_quality} drainage." + ), + } + + +# --------------------------------------------------------------------------- +# HealingAgent — Claude-powered agentic healer +# --------------------------------------------------------------------------- + +class HealingAgent: + """Uses Claude Sonnet with 5 investigation tools to assess and heal + a batch of daily climate readings for East African urban zones.""" + + MAX_TOOL_ROUNDS = 8 + + def __init__(self, api_key: str, model: str = "claude-sonnet-4-6"): + self.api_key = api_key + self.model = model + self._client: anthropic.Anthropic | None = None + + def _get_client(self) -> anthropic.Anthropic: + if self._client is None: + self._client = anthropic.Anthropic(api_key=self.api_key) + return self._client + + def _execute_tool(self, name: str, tool_input: dict[str, Any], + context: dict[str, Any]) -> str: + """Dispatch a tool call. Returns JSON string.""" + try: + if name == "zone_metadata": + result = _tool_zone_metadata(tool_input["zone_id"]) + elif name == "historical_norms": + result = _tool_historical_norms( + tool_input["zone_id"], tool_input["month"]) + elif name == "cross_source_check": + result = _tool_cross_source_check( + tool_input["zone_id"], tool_input["date"], + context["batch_readings"]) + elif name == "neighbor_comparison": + result = _tool_neighbor_comparison( + tool_input["zone_id"], tool_input["date"], + context["batch_readings"]) + elif name == "seasonal_context": + result = _tool_seasonal_context( + tool_input["zone_id"], tool_input["month"]) + else: + result = {"error": f"Unknown tool: {name}"} + except Exception as exc: + result = {"error": f"Tool execution failed: {exc}"} + + return json.dumps(result, default=str) + + def _build_system_prompt(self, n_zones: int) -> str: + return SYSTEM_PROMPT_TEMPLATE.format(n_zones=n_zones) + + def _parse_assessments(self, text: str) -> list[dict[str, Any]]: + """Extract JSON assessment array from Claude's response.""" + match = re.search(r'```json\s*([\s\S]*?)```', text) + if match: + return json.loads(match.group(1)) + + match = re.search(r'\[[\s\S]*\]', text) + if match: + return json.loads(match.group(0)) + + raise ValueError("Could not find JSON assessment array in response") + + BATCH_SIZE = 10 + + def heal(self, readings: list[dict[str, Any]]) -> HealedData: + """Main entry point: assess and heal a batch of daily readings. + + Args: + readings: list of dicts with keys matching DailyReading fields: + zone_id, date, precip_mm, precip_chirps_mm, precip_nasa_mm, + temp_mean_c, temp_max_c, temp_min_c, humidity_pct, wind_speed_ms, + source, source_agreement, data_quality + + Returns: + HealedData with healed readings, quality score, and assessments. + """ + t0 = time.time() + + # Split into sub-batches + batches = [readings[i:i + self.BATCH_SIZE] + for i in range(0, len(readings), self.BATCH_SIZE)] + + all_healed: list[HealedReading] = [] + all_assessments: list[HealingAssessment] = [] + total_tokens = 0 + fallback_used = False + + for batch_num, batch in enumerate(batches): + log.info("AI healing batch %d/%d (%d readings)", + batch_num + 1, len(batches), len(batch)) + try: + result = self._heal_sub_batch(batch, readings) + all_healed.extend(result["healed"]) + all_assessments.extend(result["assessments"]) + total_tokens += result["tokens"] + except Exception as exc: + log.warning("AI healing batch %d failed: %s — using rule-based fallback", + batch_num + 1, exc) + fallback_used = True + fb = RuleBasedFallback() + for r in batch: + healed, assessment = fb.heal_reading(r) + all_healed.append(healed) + all_assessments.append(assessment) + + # Compute overall quality score + quality_scores = [h.quality_score for h in all_healed] + avg_quality = sum(quality_scores) / len(quality_scores) if quality_scores else 0.0 + + zone_id = readings[0]["zone_id"] if readings else "unknown" + latency = (time.time() - t0) * 1000 + + return HealedData( + zone_id=zone_id, + readings=all_healed, + quality_score=round(avg_quality, 3), + assessments=all_assessments, + healer_used="rule_based" if fallback_used else "claude", + ) + + def _heal_sub_batch(self, batch: list[dict], all_readings: list[dict]) -> dict: + """Process a single sub-batch through Claude.""" + t0 = time.time() + total_tokens_in = 0 + total_tokens_out = 0 + + client = self._get_client() + context = {"batch_readings": all_readings} + + # Build user message + readings_payload = [] + for r in batch: + readings_payload.append({ + "zone_id": r["zone_id"], + "date": r.get("date", ""), + "precip_mm": r.get("precip_mm"), + "precip_chirps_mm": r.get("precip_chirps_mm"), + "precip_nasa_mm": r.get("precip_nasa_mm"), + "temp_mean_c": r.get("temp_mean_c"), + "temp_max_c": r.get("temp_max_c"), + "temp_min_c": r.get("temp_min_c"), + "humidity_pct": r.get("humidity_pct"), + "wind_speed_ms": r.get("wind_speed_ms"), + "source": r.get("source", "unknown"), + "source_agreement": r.get("source_agreement"), + }) + + now = datetime.now(timezone.utc) + user_msg = ( + f"Current date/time: {now.isoformat()} UTC (month={now.month})\n\n" + f"Here are {len(batch)} daily climate readings to assess and heal:\n\n" + f"```json\n{json.dumps(readings_payload, indent=2, default=str)}\n```\n\n" + "Investigate any suspicious readings using your tools, then return " + "your assessment for ALL readings." + ) + + messages: list[dict[str, Any]] = [{"role": "user", "content": user_msg}] + system_prompt = self._build_system_prompt(len(batch)) + + # Agentic tool-use loop + for round_num in range(self.MAX_TOOL_ROUNDS): + response = client.messages.create( + model=self.model, + max_tokens=8192, + system=system_prompt, + tools=HEALING_TOOLS, + messages=messages, + ) + + total_tokens_in += getattr(response.usage, "input_tokens", 0) + total_tokens_out += getattr(response.usage, "output_tokens", 0) + + if response.stop_reason == "end_turn": + text_blocks = [b.text for b in response.content if hasattr(b, "text")] + full_text = "\n".join(text_blocks) + + try: + raw_assessments = self._parse_assessments(full_text) + except (ValueError, json.JSONDecodeError) as exc: + log.warning("Failed to parse AI healing response: %s", exc) + raise + + latency_ms = (time.time() - t0) * 1000 + total_tokens = total_tokens_in + total_tokens_out + + healed_readings: list[HealedReading] = [] + assessments: list[HealingAssessment] = [] + readings_by_zone = {r["zone_id"]: r for r in batch} + + for a in raw_assessments: + zid = a.get("zone_id", "") + original = readings_by_zone.get(zid) + if original is None: + continue + + assessment = HealingAssessment( + zone_id=zid, + date=a.get("date", original.get("date", "")), + assessment=a.get("assessment", "flagged"), + original_precip=original.get("precip_mm"), + healed_precip=a.get("healed_precip"), + original_temp=original.get("temp_mean_c"), + healed_temp=a.get("healed_temp"), + reasoning=a.get("reasoning", ""), + tools_used=a.get("tools_used", []), + tokens_used=total_tokens, + latency_ms=latency_ms, + ) + assessments.append(assessment) + + # Determine healed values + healed_precip = a.get("healed_precip", original.get("precip_mm")) + healed_temp = a.get("healed_temp", original.get("temp_mean_c")) + + heal_action = f"ai_{a.get('assessment', 'flagged')}" + quality = { + "good": 0.95, + "corrected": 0.8, + "filled": 0.6, + "flagged": 0.3, + }.get(a.get("assessment", "flagged"), 0.5) + + healed_readings.append(HealedReading( + zone_id=zid, + date=a.get("date", original.get("date", "")), + precip_mm=healed_precip, + temp_mean_c=healed_temp, + temp_max_c=original.get("temp_max_c"), + temp_min_c=original.get("temp_min_c"), + humidity_pct=original.get("humidity_pct"), + wind_speed_ms=original.get("wind_speed_ms"), + heal_action=heal_action, + quality_score=quality, + )) + + return { + "healed": healed_readings, + "assessments": assessments, + "tokens": total_tokens, + } + + elif response.stop_reason == "tool_use": + messages.append({"role": "assistant", "content": response.content}) + tool_results = [] + for block in response.content: + if block.type == "tool_use": + result_str = self._execute_tool(block.name, block.input, context) + tool_results.append({ + "type": "tool_result", + "tool_use_id": block.id, + "content": result_str, + }) + messages.append({"role": "user", "content": tool_results}) + else: + log.warning("Unexpected stop_reason: %s", response.stop_reason) + break + + raise RuntimeError( + f"AI healing exhausted {self.MAX_TOOL_ROUNDS} tool rounds without completing" + ) + + +# --------------------------------------------------------------------------- +# RuleBasedFallback — deterministic healing when Claude is unavailable +# --------------------------------------------------------------------------- + +class RuleBasedFallback: + """Deterministic anomaly detection, correction, and cross-validation. + Used when the Anthropic API is unavailable.""" + + # Physical limits + PRECIP_MIN = 0.0 + PRECIP_MAX = 500.0 # mm/day — absolute physical maximum + TEMP_MIN = -5.0 + TEMP_MAX = 55.0 + + # Cross-validation threshold + SOURCE_DISAGREE_MM = 20.0 + + def heal_reading(self, reading: dict[str, Any]) -> tuple[HealedReading, HealingAssessment]: + """Heal a single reading using deterministic rules. + + Returns (HealedReading, HealingAssessment) tuple. + """ + t0 = time.time() + zone_id = reading["zone_id"] + date = reading.get("date", "") + original_precip = reading.get("precip_mm") + original_temp = reading.get("temp_mean_c") + + healed_precip = original_precip + healed_temp = original_temp + assessment_type = "good" + reasoning_parts: list[str] = [] + tools_used: list[str] = [] + + # --- Check precipitation --- + chirps = reading.get("precip_chirps_mm") + nasa = reading.get("precip_nasa_mm") + + if original_precip is not None: + # Impossible: negative + if original_precip < self.PRECIP_MIN: + healed_precip = 0.0 + assessment_type = "corrected" + reasoning_parts.append( + f"Negative precipitation ({original_precip}mm) corrected to 0." + ) + + # Impossible: >500mm/day + elif original_precip > self.PRECIP_MAX: + # Try to use the other source + if chirps is not None and 0 <= chirps <= self.PRECIP_MAX: + healed_precip = chirps + elif nasa is not None and 0 <= nasa <= self.PRECIP_MAX: + healed_precip = nasa + else: + healed_precip = None # can't salvage + assessment_type = "corrected" + reasoning_parts.append( + f"Extreme precipitation ({original_precip}mm) exceeds 500mm/day physical limit." + ) + + # Check source disagreement + elif chirps is not None and nasa is not None: + diff = abs(chirps - nasa) + if diff > self.SOURCE_DISAGREE_MM: + # Use CHIRPS as primary (higher resolution) + healed_precip = chirps + assessment_type = "corrected" + reasoning_parts.append( + f"Source disagreement: CHIRPS={chirps}mm vs NASA={nasa}mm " + f"(diff={diff:.1f}mm). Using CHIRPS." + ) + + # Check against climatological norms + zone = ZONE_MAP.get(zone_id) + if zone and healed_precip is not None and date: + try: + month = int(date.split("-")[1]) + norms = CLIMATOLOGICAL_NORMALS.get((zone.city, month)) + if norms: + daily_max = norms["daily_range"][1] + std = norms["std_dev_mm"] + # Flag if daily reading > 3x the monthly std dev + if healed_precip > 3 * std and assessment_type == "good": + assessment_type = "flagged" + reasoning_parts.append( + f"Daily precip ({healed_precip}mm) exceeds 3x monthly " + f"std dev ({std}mm) for {zone.city} in month {month}." + ) + except (ValueError, IndexError): + pass + + elif original_precip is None: + # Missing precipitation — try to fill + if chirps is not None: + healed_precip = chirps + assessment_type = "filled" + reasoning_parts.append("Missing precipitation filled from CHIRPS.") + elif nasa is not None: + healed_precip = nasa + assessment_type = "filled" + reasoning_parts.append("Missing precipitation filled from NASA POWER.") + else: + assessment_type = "flagged" + reasoning_parts.append("Missing precipitation with no source available for fill.") + + # --- Check temperature --- + if original_temp is not None: + if not (self.TEMP_MIN <= original_temp <= self.TEMP_MAX): + # Possible decimal typo (e.g., 325 -> 32.5) + if original_temp > 100: + healed_temp = original_temp / 10.0 + if assessment_type == "good": + assessment_type = "corrected" + reasoning_parts.append( + f"Temperature typo ({original_temp}°C) corrected to {healed_temp}°C." + ) + else: + healed_temp = None + if assessment_type == "good": + assessment_type = "flagged" + reasoning_parts.append( + f"Temperature ({original_temp}°C) outside valid range." + ) + elif original_temp is None: + # NASA POWER provides temperature even when CHIRPS doesn't + nasa_temp = reading.get("temp_mean_c") # already None + if nasa_temp is None: + # Try to use city norms + zone = ZONE_MAP.get(zone_id) + if zone and date: + try: + month = int(date.split("-")[1]) + norms = CLIMATOLOGICAL_NORMALS.get((zone.city, month)) + if norms: + healed_temp = norms["mean_temp_c"] + if assessment_type == "good": + assessment_type = "filled" + reasoning_parts.append( + f"Missing temperature filled from climatological mean " + f"({healed_temp}°C) for {zone.city}." + ) + except (ValueError, IndexError): + pass + + # Determine quality score + quality_map = {"good": 0.95, "corrected": 0.75, "filled": 0.55, "flagged": 0.3} + quality = quality_map.get(assessment_type, 0.5) + + if not reasoning_parts: + reasoning_parts.append("Values within expected ranges; dual-source agreement.") + + latency_ms = (time.time() - t0) * 1000 + + healed = HealedReading( + zone_id=zone_id, + date=date, + precip_mm=healed_precip, + temp_mean_c=healed_temp, + temp_max_c=reading.get("temp_max_c"), + temp_min_c=reading.get("temp_min_c"), + humidity_pct=reading.get("humidity_pct"), + wind_speed_ms=reading.get("wind_speed_ms"), + heal_action=f"rule_{assessment_type}", + quality_score=quality, + ) + + assessment = HealingAssessment( + zone_id=zone_id, + date=date, + assessment=assessment_type, + original_precip=original_precip, + healed_precip=healed_precip, + original_temp=original_temp, + healed_temp=healed_temp, + reasoning=" ".join(reasoning_parts), + tools_used=tools_used, + tokens_used=0, + latency_ms=latency_ms, + ) + + return healed, assessment + + def heal_batch(self, readings: list[dict[str, Any]]) -> HealedData: + """Heal a batch of readings using rule-based logic. + + Args: + readings: list of dicts with DailyReading fields. + + Returns: + HealedData with healed readings and assessments. + """ + all_healed: list[HealedReading] = [] + all_assessments: list[HealingAssessment] = [] + + for r in readings: + healed, assessment = self.heal_reading(r) + all_healed.append(healed) + all_assessments.append(assessment) + + quality_scores = [h.quality_score for h in all_healed] + avg_quality = sum(quality_scores) / len(quality_scores) if quality_scores else 0.0 + + zone_id = readings[0]["zone_id"] if readings else "unknown" + + return HealedData( + zone_id=zone_id, + readings=all_healed, + quality_score=round(avg_quality, 3), + assessments=all_assessments, + healer_used="rule_based", + ) diff --git a/src/indexing/__init__.py b/src/indexing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/indexing/heat_index.py b/src/indexing/heat_index.py new file mode 100644 index 0000000000000000000000000000000000000000..88e6a5b8652ba83f8731a05401158cdaaadcaef2 --- /dev/null +++ b/src/indexing/heat_index.py @@ -0,0 +1,123 @@ +""" +Real heat stress calculations for parametric insurance. + +Implements WBGT (simplified outdoor), NWS Heat Index (Rothfusz regression), +and consecutive/total day counting above thresholds. + +Sources: +- Liljegren et al. (2008) simplified WBGT for outdoor conditions +- Rothfusz (1990) NWS Heat Index regression +- WHO/ILO heat stress threshold guidance +""" + +from __future__ import annotations + +import math + + +def calculate_wbgt(temp_c: float, humidity_pct: float) -> float: + """Simplified outdoor Wet Bulb Globe Temperature. + + Uses the Liljegren simplified formula for outdoor WBGT: + WBGT ~ 0.567 * T + 0.393 * e + 3.94 + where e = water vapor pressure in hPa from temperature and humidity. + + This approximation assumes moderate wind and solar radiation typical + of tropical urban conditions. + + Args: + temp_c: Air temperature in degrees Celsius + humidity_pct: Relative humidity in percent (0-100) + + Returns: + Estimated outdoor WBGT in degrees Celsius + """ + # Saturation vapor pressure (hPa) using Magnus formula + es = 6.112 * math.exp((17.67 * temp_c) / (temp_c + 243.5)) + # Actual vapor pressure + e = es * (humidity_pct / 100.0) + # Simplified outdoor WBGT + wbgt = 0.567 * temp_c + 0.393 * e + 3.94 + return round(wbgt, 1) + + +def calculate_heat_index(temp_c: float, humidity_pct: float) -> float: + """NWS Heat Index using Rothfusz regression equation. + + Converts to Fahrenheit internally (the regression was fitted in F), + then converts back to Celsius. + + Valid for temperatures >= 27C (80F) and humidity >= 40%. + Below those thresholds, returns the simple average formula. + + Args: + temp_c: Air temperature in degrees Celsius + humidity_pct: Relative humidity in percent (0-100) + + Returns: + Heat index in degrees Celsius + """ + T = temp_c * 9.0 / 5.0 + 32.0 # Convert to Fahrenheit + RH = humidity_pct + + # Simple formula for low temperatures + if T < 80.0: + hi_f = 0.5 * (T + 61.0 + ((T - 68.0) * 1.2) + (RH * 0.094)) + return round((hi_f - 32.0) * 5.0 / 9.0, 1) + + # Rothfusz regression + hi_f = ( + -42.379 + + 2.04901523 * T + + 10.14333127 * RH + - 0.22475541 * T * RH + - 0.00683783 * T * T + - 0.05481717 * RH * RH + + 0.00122874 * T * T * RH + + 0.00085282 * T * RH * RH + - 0.00000199 * T * T * RH * RH + ) + + # Adjustments + if RH < 13.0 and 80.0 <= T <= 112.0: + adj = -((13.0 - RH) / 4.0) * math.sqrt((17.0 - abs(T - 95.0)) / 17.0) + hi_f += adj + elif RH > 85.0 and 80.0 <= T <= 87.0: + adj = ((RH - 85.0) / 10.0) * ((87.0 - T) / 5.0) + hi_f += adj + + return round((hi_f - 32.0) * 5.0 / 9.0, 1) + + +def count_consecutive_days(temps: list[float], threshold: float) -> int: + """Longest consecutive run of days above threshold. + + Args: + temps: Daily temperature values + threshold: Temperature threshold + + Returns: + Length of the longest consecutive run above threshold + """ + max_run = 0 + current_run = 0 + for t in temps: + if t > threshold: + current_run += 1 + max_run = max(max_run, current_run) + else: + current_run = 0 + return max_run + + +def count_trigger_days(temps: list[float], threshold: float) -> int: + """Total number of days above threshold. + + Args: + temps: Daily temperature values + threshold: Temperature threshold + + Returns: + Number of days where temperature exceeded threshold + """ + return sum(1 for t in temps if t > threshold) diff --git a/src/indexing/heat_risk.py b/src/indexing/heat_risk.py new file mode 100644 index 0000000000000000000000000000000000000000..708e732bf77c415de5a429737514932695dbcabf --- /dev/null +++ b/src/indexing/heat_risk.py @@ -0,0 +1,371 @@ +""" +Composite heat risk scoring and trigger event detection. + +Combines temperature, WBGT, duration, and zone vulnerability into a +single heat risk score (0-100) per zone, then checks against parametric +insurance trigger thresholds defined in config.py. + +Composite weights: + - Temperature severity: 30% + - WBGT severity: 25% + - Duration (consecutive): 20% + - Zone heat vulnerability: 15% + - Outdoor exposure fraction: 10% + +When the composite score breaches a threshold, a HeatTriggerEvent is +emitted for the insurance payout engine. +""" + +from __future__ import annotations + +import logging +import uuid +from dataclasses import dataclass, field +from datetime import datetime, timezone +from typing import Any + +from config import ( + HEAT_THRESHOLDS, + PAYOUT_PER_EVENT_USD, + ZONE_MAP, + UrbanZone, +) +from src.indexing.heat_index import ( + calculate_heat_index, + calculate_wbgt, + count_consecutive_days, + count_trigger_days, +) + +log = logging.getLogger(__name__) + + +# --------------------------------------------------------------------------- +# Data models +# --------------------------------------------------------------------------- + +@dataclass +class HeatRiskScore: + """Composite heat risk score for a single zone over a period.""" + zone_id: str + score: float # 0-100 + classification: str # low, moderate, high, critical + components: dict[str, float] = field(default_factory=dict) + + +@dataclass +class HeatTriggerEvent: + """Parametric insurance trigger event when heat thresholds are breached.""" + trigger_id: str + zone_id: str + zone_name: str + city: str + trigger_date: str + trigger_level: str # critical, warning, watch + heat_risk_score: float + max_temp_c: float + max_wbgt_c: float + consecutive_days_above: int + total_days_above: int + settlement_type: str + payout_per_worker_usd: float + status: str # active, resolved, expired + + +@dataclass +class HeatRiskResult: + """Complete heat risk analysis for a zone over a time period.""" + zone_id: str + daily_temps: list[float] = field(default_factory=list) + daily_humidity: list[float] = field(default_factory=list) + daily_wbgt: list[float] = field(default_factory=list) + daily_heat_index: list[float] = field(default_factory=list) + score: HeatRiskScore | None = None + triggers: list[HeatTriggerEvent] = field(default_factory=list) + max_temp_c: float = 0.0 + max_wbgt_c: float = 0.0 + consecutive_days_temp: int = 0 + consecutive_days_wbgt: int = 0 + total_days_above_temp: int = 0 + total_days_above_wbgt: int = 0 + + +# --------------------------------------------------------------------------- +# Component scoring functions (each returns 0-100) +# --------------------------------------------------------------------------- + +def _score_temp_severity(max_temp: float, threshold: float = 35.0) -> float: + """Score temperature severity (0-100). + + Calibrated for East African urban heat thresholds: + - <= threshold - 5 -> 0 + - threshold - 2 -> 30 + - threshold -> 55 + - threshold + 3 -> 80 + - threshold + 7 -> 100 + """ + delta = max_temp - threshold + if delta <= -5: + return 0.0 + breakpoints = [ + (-5, 0), (-2, 30), (0, 55), (3, 80), (7, 100), + ] + if delta >= breakpoints[-1][0]: + return 100.0 + for i in range(1, len(breakpoints)): + x0, y0 = breakpoints[i - 1] + x1, y1 = breakpoints[i] + if delta <= x1: + frac = (delta - x0) / (x1 - x0) + return round(y0 + frac * (y1 - y0), 1) + return 100.0 + + +def _score_wbgt_severity(max_wbgt: float, threshold: float = 30.0) -> float: + """Score WBGT severity (0-100). + + WHO/ILO guidance: WBGT > 28 = caution, > 30 = danger, > 32 = extreme. + """ + delta = max_wbgt - threshold + if delta <= -4: + return 0.0 + breakpoints = [ + (-4, 0), (-2, 20), (0, 50), (2, 80), (5, 100), + ] + if delta >= breakpoints[-1][0]: + return 100.0 + for i in range(1, len(breakpoints)): + x0, y0 = breakpoints[i - 1] + x1, y1 = breakpoints[i] + if delta <= x1: + frac = (delta - x0) / (x1 - x0) + return round(y0 + frac * (y1 - y0), 1) + return 100.0 + + +def _score_duration(consecutive_days: int, threshold: int = 2) -> float: + """Score duration of heat event (0-100). + + Consecutive days above threshold amplify risk non-linearly. + """ + if consecutive_days <= 0: + return 0.0 + breakpoints = [ + (0, 0), (1, 25), (2, 50), (3, 70), (5, 90), (7, 100), + ] + if consecutive_days >= breakpoints[-1][0]: + return 100.0 + for i in range(1, len(breakpoints)): + x0, y0 = breakpoints[i - 1] + x1, y1 = breakpoints[i] + if consecutive_days <= x1: + frac = (consecutive_days - x0) / (x1 - x0) + return round(y0 + frac * (y1 - y0), 1) + return 100.0 + + +def _score_vulnerability(heat_vulnerability: str) -> float: + """Score zone heat vulnerability (0-100).""" + return { + "high": 85.0, + "moderate": 50.0, + "low": 20.0, + }.get(heat_vulnerability, 50.0) + + +def _score_outdoor_exposure(outdoor_exposure_pct: float) -> float: + """Score outdoor worker exposure fraction (0-100). + + Higher outdoor exposure = higher risk. + """ + return round(min(100.0, max(0.0, outdoor_exposure_pct * 100.0)), 1) + + +# --------------------------------------------------------------------------- +# Composite heat risk scoring +# --------------------------------------------------------------------------- + +COMPONENT_WEIGHTS = { + "temp_severity": 0.30, + "wbgt_severity": 0.25, + "duration": 0.20, + "vulnerability": 0.15, + "outdoor_exposure": 0.10, +} + + +def compute_heat_risk( + daily_temps: list[float], + daily_humidity: list[float], + daily_dates: list[str], + zone: UrbanZone, + temp_threshold: float = 35.0, + consecutive_days: int = 2, + wbgt_threshold: float = 30.0, +) -> HeatRiskResult: + """Compute composite heat risk for a zone over a time period. + + Args: + daily_temps: Daily max temperature values (C) + daily_humidity: Daily relative humidity values (%) + daily_dates: ISO date strings aligned with temps/humidity + zone: UrbanZone configuration object + temp_threshold: Temperature trigger threshold (C), parameterizable + consecutive_days: Minimum consecutive days for trigger + wbgt_threshold: WBGT trigger threshold (C), parameterizable + + Returns: + HeatRiskResult with composite score, daily values, and triggers. + """ + if not daily_temps or not daily_humidity: + return HeatRiskResult(zone_id=zone.zone_id) + + n = min(len(daily_temps), len(daily_humidity)) + daily_temps = daily_temps[:n] + daily_humidity = daily_humidity[:n] + daily_dates = daily_dates[:n] + + # Compute WBGT and heat index for each day + daily_wbgt = [calculate_wbgt(t, h) for t, h in zip(daily_temps, daily_humidity)] + daily_hi = [calculate_heat_index(t, h) for t, h in zip(daily_temps, daily_humidity)] + + # Duration metrics + consec_temp = count_consecutive_days(daily_temps, temp_threshold) + consec_wbgt = count_consecutive_days(daily_wbgt, wbgt_threshold) + total_temp = count_trigger_days(daily_temps, temp_threshold) + total_wbgt = count_trigger_days(daily_wbgt, wbgt_threshold) + + max_temp = max(daily_temps) + max_wbgt = max(daily_wbgt) + + # Component scores + temp_score = _score_temp_severity(max_temp, temp_threshold) + wbgt_score = _score_wbgt_severity(max_wbgt, wbgt_threshold) + duration_score = _score_duration(max(consec_temp, consec_wbgt), consecutive_days) + vuln_score = _score_vulnerability(zone.heat_vulnerability) + exposure_score = _score_outdoor_exposure(zone.outdoor_exposure_pct) + + # Weighted composite + composite = ( + COMPONENT_WEIGHTS["temp_severity"] * temp_score + + COMPONENT_WEIGHTS["wbgt_severity"] * wbgt_score + + COMPONENT_WEIGHTS["duration"] * duration_score + + COMPONENT_WEIGHTS["vulnerability"] * vuln_score + + COMPONENT_WEIGHTS["outdoor_exposure"] * exposure_score + ) + composite = round(min(100.0, max(0.0, composite)), 1) + + # Classify + if composite >= 75: + classification = "critical" + elif composite >= 50: + classification = "high" + elif composite >= 25: + classification = "moderate" + else: + classification = "low" + + score = HeatRiskScore( + zone_id=zone.zone_id, + score=composite, + classification=classification, + components={ + "temp_severity_score": temp_score, + "wbgt_severity_score": wbgt_score, + "duration_score": duration_score, + "vulnerability_score": vuln_score, + "outdoor_exposure_score": exposure_score, + }, + ) + + # Detect triggers + triggers = _detect_heat_triggers( + zone=zone, + daily_temps=daily_temps, + daily_wbgt=daily_wbgt, + daily_dates=daily_dates, + heat_risk_score=composite, + temp_threshold=temp_threshold, + wbgt_threshold=wbgt_threshold, + consecutive_days_req=consecutive_days, + ) + + return HeatRiskResult( + zone_id=zone.zone_id, + daily_temps=daily_temps, + daily_humidity=daily_humidity, + daily_wbgt=daily_wbgt, + daily_heat_index=daily_hi, + score=score, + triggers=triggers, + max_temp_c=round(max_temp, 1), + max_wbgt_c=round(max_wbgt, 1), + consecutive_days_temp=consec_temp, + consecutive_days_wbgt=consec_wbgt, + total_days_above_temp=total_temp, + total_days_above_wbgt=total_wbgt, + ) + + +# --------------------------------------------------------------------------- +# Trigger detection +# --------------------------------------------------------------------------- + +def _detect_heat_triggers( + zone: UrbanZone, + daily_temps: list[float], + daily_wbgt: list[float], + daily_dates: list[str], + heat_risk_score: float, + temp_threshold: float, + wbgt_threshold: float, + consecutive_days_req: int, +) -> list[HeatTriggerEvent]: + """Detect heat trigger events from daily time series. + + Checks for consecutive-day breaches at each threshold level. + Returns the highest trigger level that fires. + """ + triggers: list[HeatTriggerEvent] = [] + + max_temp = max(daily_temps) if daily_temps else 0 + max_wbgt = max(daily_wbgt) if daily_wbgt else 0 + consec_temp = count_consecutive_days(daily_temps, temp_threshold) + consec_wbgt = count_consecutive_days(daily_wbgt, wbgt_threshold) + total_above = count_trigger_days(daily_temps, temp_threshold) + + # Check each threshold level (highest severity first) + for level in ("critical", "warning", "watch"): + ht = HEAT_THRESHOLDS[level] + temp_breach = max_temp >= ht["temp_c"] + wbgt_breach = max_wbgt >= ht["wbgt_c"] + duration_breach = consec_temp >= ht["consecutive_days"] or consec_wbgt >= ht["consecutive_days"] + + # Require temperature or WBGT breach AND duration breach + if (temp_breach or wbgt_breach) and duration_breach: + payout = PAYOUT_PER_EVENT_USD.get(level, 0) + + # Find the date of the peak temperature + peak_idx = daily_temps.index(max(daily_temps)) + trigger_date = daily_dates[peak_idx] if peak_idx < len(daily_dates) else daily_dates[-1] + + triggers.append(HeatTriggerEvent( + trigger_id=f"TRG-{uuid.uuid4().hex[:8].upper()}", + zone_id=zone.zone_id, + zone_name=zone.name, + city=zone.city, + trigger_date=trigger_date, + trigger_level=level, + heat_risk_score=heat_risk_score, + max_temp_c=round(max_temp, 1), + max_wbgt_c=round(max_wbgt, 1), + consecutive_days_above=max(consec_temp, consec_wbgt), + total_days_above=total_above, + settlement_type=zone.settlement_type, + payout_per_worker_usd=payout, + status="active", + )) + # Only emit the highest severity trigger + break + + return triggers diff --git a/src/ingestion/__init__.py b/src/ingestion/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/ingestion/models.py b/src/ingestion/models.py new file mode 100644 index 0000000000000000000000000000000000000000..c6730545a6735b69e283b5df09cff8c323da5d6b --- /dev/null +++ b/src/ingestion/models.py @@ -0,0 +1,52 @@ +""" +Data models for the ingestion layer. + +Structured containers for daily weather readings and multi-source +ingested data per zone. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from datetime import datetime, timezone + + +@dataclass +class DailyReading: + """Single day of weather data for one zone, potentially from multiple sources.""" + + zone_id: str + date: str # YYYY-MM-DD + + # Precipitation — merged primary, plus per-source raw values + precip_mm: float | None = None # Primary: CHIRPS, fallback: NASA POWER + precip_nasa_mm: float | None = None # NASA POWER precipitation + precip_chirps_mm: float | None = None # CHIRPS precipitation + + # Temperature + temp_mean_c: float | None = None + temp_max_c: float | None = None + temp_min_c: float | None = None + + # Other variables (NASA POWER only) + humidity_pct: float | None = None + wind_speed_ms: float | None = None + + # Provenance + source: str = "unknown" # "chirps+nasa", "nasa_only", "chirps_only" + source_agreement: float | None = None # 0-1, how well sources agree on precip + data_quality: float = 0.0 # 0-1 completeness score + + +@dataclass +class IngestedData: + """Complete ingestion result for a single zone.""" + + zone_id: str + readings: list[DailyReading] = field(default_factory=list) + date_range: tuple[str, str] = ("", "") + sources_available: list[str] = field(default_factory=list) + completeness: float = 0.0 + ingested_at: str = field( + default_factory=lambda: datetime.now(timezone.utc).isoformat() + ) diff --git a/src/ingestion/nasa_power.py b/src/ingestion/nasa_power.py new file mode 100644 index 0000000000000000000000000000000000000000..4074dcab7bb854ebd8fc5b1868c8c16a7f0881ac --- /dev/null +++ b/src/ingestion/nasa_power.py @@ -0,0 +1,277 @@ +""" +NASA POWER daily data fetcher for urban flood zones. + +Fetches PRECTOTCORR, T2M, T2M_MAX, T2M_MIN, RH2M, WS2M from the +NASA POWER daily point API. Handles rate limiting, retries, and +parallel zone fetching via httpx. + +NASA POWER data has a 2-3 day processing lag. The API returns -999 +for missing values, which we filter out. +""" + +from __future__ import annotations + +import asyncio +import logging +from datetime import date, timedelta +from typing import Any + +import httpx + +from config import NASA_POWER_PARAMS, NASA_POWER_URL, UrbanZone + +from .models import DailyReading + +log = logging.getLogger(__name__) + +NASA_MISSING = -999.0 + +# NASA POWER uses adaptive rate limiting — no fixed limit, but +# aggressive concurrency triggers 429s. Keep it conservative. +_MAX_CONCURRENT = 4 +_INTER_REQUEST_DELAY = 0.6 # seconds between requests within semaphore +_TIMEOUT = httpx.Timeout(45.0) +_MAX_RETRIES = 3 + + +def _safe_val(val: Any) -> float | None: + """Return None for NASA's -999 missing sentinel or actual None.""" + if val is None: + return None + try: + f = float(val) + return None if f == NASA_MISSING else round(f, 2) + except (ValueError, TypeError): + return None + + +def _default_date_range(days_back: int = 90) -> tuple[date, date]: + """Return (start, end) defaulting to last 90 days. + + Ends 2 days ago to account for NASA POWER processing lag. + """ + end = date.today() - timedelta(days=2) + start = end - timedelta(days=days_back - 1) + return start, end + + +async def fetch_zone_nasa_power( + zone: UrbanZone, + start_date: date | None = None, + end_date: date | None = None, + client: httpx.AsyncClient | None = None, + semaphore: asyncio.Semaphore | None = None, +) -> list[DailyReading]: + """Fetch NASA POWER daily data for a single zone. + + Parameters + ---------- + zone : UrbanZone + Zone definition with lat/lon. + start_date, end_date : date, optional + Date range. Defaults to last 90 days (ending 2 days ago). + client : httpx.AsyncClient, optional + Shared client for connection pooling across zones. + semaphore : asyncio.Semaphore, optional + Concurrency limiter shared across parallel fetches. + + Returns + ------- + list[DailyReading] + One reading per day with NASA POWER fields populated. + """ + if start_date is None or end_date is None: + start_date, end_date = _default_date_range() + + sem = semaphore or asyncio.Semaphore(_MAX_CONCURRENT) + owns_client = client is None + if owns_client: + client = httpx.AsyncClient(timeout=_TIMEOUT) + + try: + async with sem: + await asyncio.sleep(_INTER_REQUEST_DELAY) + return await _fetch_with_retry(zone, start_date, end_date, client) + finally: + if owns_client: + await client.aclose() + + +async def _fetch_with_retry( + zone: UrbanZone, + start_date: date, + end_date: date, + client: httpx.AsyncClient, +) -> list[DailyReading]: + """Fetch with exponential backoff on 429 / transient errors.""" + params = { + "parameters": ",".join(NASA_POWER_PARAMS), + "community": "AG", + "longitude": zone.longitude, + "latitude": zone.latitude, + "start": start_date.strftime("%Y%m%d"), + "end": end_date.strftime("%Y%m%d"), + "format": "JSON", + } + + last_exc: Exception | None = None + for attempt in range(_MAX_RETRIES): + try: + resp = await client.get(NASA_POWER_URL, params=params) + + if resp.status_code == 429: + wait = 10 * (attempt + 1) + log.warning( + "NASA POWER 429 for zone %s (attempt %d/%d), backing off %ds", + zone.zone_id, attempt + 1, _MAX_RETRIES, wait, + ) + await asyncio.sleep(wait) + continue + + resp.raise_for_status() + data = resp.json() + return _parse_response(zone.zone_id, data) + + except httpx.TimeoutException as exc: + last_exc = exc + wait = 5.0 * (attempt + 1) + log.warning( + "NASA POWER timeout for zone %s (attempt %d/%d), retrying in %.0fs", + zone.zone_id, attempt + 1, _MAX_RETRIES, wait, + ) + await asyncio.sleep(wait) + + except httpx.HTTPStatusError as exc: + last_exc = exc + if exc.response.status_code >= 500: + wait = 5.0 * (attempt + 1) + log.warning( + "NASA POWER %d for zone %s (attempt %d/%d), retrying in %.0fs", + exc.response.status_code, zone.zone_id, + attempt + 1, _MAX_RETRIES, wait, + ) + await asyncio.sleep(wait) + else: + log.error( + "NASA POWER %d for zone %s: %s", + exc.response.status_code, zone.zone_id, + exc.response.text[:200], + ) + return [] + + except Exception as exc: + last_exc = exc + log.warning( + "NASA POWER unexpected error for zone %s (attempt %d/%d): %s", + zone.zone_id, attempt + 1, _MAX_RETRIES, exc, + ) + await asyncio.sleep(3.0) + + log.error( + "NASA POWER failed for zone %s after %d attempts: %s", + zone.zone_id, _MAX_RETRIES, last_exc, + ) + return [] + + +def _parse_response(zone_id: str, data: dict) -> list[DailyReading]: + """Parse NASA POWER JSON response into DailyReading objects.""" + try: + props = data["properties"]["parameter"] + except (KeyError, TypeError): + log.error("NASA POWER unexpected response structure for zone %s", zone_id) + return [] + + prec_data = props.get("PRECTOTCORR", {}) + t2m_data = props.get("T2M", {}) + t2m_max_data = props.get("T2M_MAX", {}) + t2m_min_data = props.get("T2M_MIN", {}) + rh2m_data = props.get("RH2M", {}) + ws2m_data = props.get("WS2M", {}) + + # Use T2M keys as the canonical day list (all params share the same dates) + all_days = sorted(t2m_data.keys()) + readings: list[DailyReading] = [] + + for day_str in all_days: + # day_str format from NASA: "20240115" → "2024-01-15" + try: + formatted_date = f"{day_str[:4]}-{day_str[4:6]}-{day_str[6:8]}" + except (IndexError, TypeError): + continue + + precip = _safe_val(prec_data.get(day_str)) + temp_mean = _safe_val(t2m_data.get(day_str)) + temp_max = _safe_val(t2m_max_data.get(day_str)) + temp_min = _safe_val(t2m_min_data.get(day_str)) + humidity = _safe_val(rh2m_data.get(day_str)) + wind = _safe_val(ws2m_data.get(day_str)) + + # Count how many fields have data for quality score + fields = [precip, temp_mean, temp_max, temp_min, humidity, wind] + present = sum(1 for f in fields if f is not None) + quality = present / len(fields) + + readings.append( + DailyReading( + zone_id=zone_id, + date=formatted_date, + precip_mm=precip, + precip_nasa_mm=precip, + precip_chirps_mm=None, + temp_mean_c=temp_mean, + temp_max_c=temp_max, + temp_min_c=temp_min, + humidity_pct=humidity, + wind_speed_ms=wind, + source="nasa_only", + source_agreement=None, + data_quality=quality, + ) + ) + + log.info( + "NASA POWER: zone %s — %d days fetched, %.0f%% avg completeness", + zone_id, len(readings), + (sum(r.data_quality for r in readings) / len(readings) * 100) + if readings else 0, + ) + return readings + + +async def fetch_all_zones_nasa_power( + zones: list[UrbanZone], + start_date: date | None = None, + end_date: date | None = None, +) -> dict[str, list[DailyReading]]: + """Fetch NASA POWER data for all zones in parallel. + + Returns a dict mapping zone_id → list of DailyReading. + """ + sem = asyncio.Semaphore(_MAX_CONCURRENT) + + async with httpx.AsyncClient(timeout=_TIMEOUT) as client: + tasks = [ + fetch_zone_nasa_power( + zone, start_date, end_date, + client=client, semaphore=sem, + ) + for zone in zones + ] + results = await asyncio.gather(*tasks, return_exceptions=True) + + output: dict[str, list[DailyReading]] = {} + for zone, result in zip(zones, results): + if isinstance(result, Exception): + log.error("NASA POWER failed for zone %s: %s", zone.zone_id, result) + output[zone.zone_id] = [] + else: + output[zone.zone_id] = result + + total_readings = sum(len(v) for v in output.values()) + zones_with_data = sum(1 for v in output.values() if v) + log.info( + "NASA POWER batch complete: %d/%d zones with data, %d total readings", + zones_with_data, len(zones), total_readings, + ) + return output diff --git a/src/ingestion/pipeline_ingest.py b/src/ingestion/pipeline_ingest.py new file mode 100644 index 0000000000000000000000000000000000000000..685bb92cddddd6b416efa7802b8637278d2f2f8e --- /dev/null +++ b/src/ingestion/pipeline_ingest.py @@ -0,0 +1,311 @@ +""" +Ingestion orchestrator — merges NASA POWER and CHIRPS data. + +Fetches from both sources in parallel, merges per zone per day, +flags source disagreements, computes data completeness, and +returns structured IngestedData objects. + +Independent fallbacks: either source can fail without blocking +the other. +""" + +from __future__ import annotations + +import asyncio +import logging +from datetime import date, datetime, timedelta, timezone +from typing import Any + +from config import UrbanZone, ZONES + +from .chirps import fetch_all_zones_chirps +from .models import DailyReading, IngestedData +from .nasa_power import fetch_all_zones_nasa_power + +log = logging.getLogger(__name__) + +# Source agreement threshold — flag when daily precip differs by >20% +_DISAGREEMENT_THRESHOLD = 0.20 + + +def _compute_agreement( + chirps_mm: float | None, + nasa_mm: float | None, +) -> float | None: + """Compute source agreement score (0-1) for precipitation. + + Returns None if only one source has data. + Uses relative difference: 1.0 = perfect agreement, 0.0 = 100%+ disagreement. + For very small values (<1mm), uses absolute difference tolerance. + """ + if chirps_mm is None or nasa_mm is None: + return None + + # Both report zero or near-zero — perfect agreement + if chirps_mm < 0.1 and nasa_mm < 0.1: + return 1.0 + + # For small values, use absolute difference with 2mm tolerance + if max(chirps_mm, nasa_mm) < 2.0: + abs_diff = abs(chirps_mm - nasa_mm) + return max(0.0, 1.0 - abs_diff / 2.0) + + # Relative difference against the mean + mean_val = (chirps_mm + nasa_mm) / 2.0 + if mean_val == 0: + return 1.0 + rel_diff = abs(chirps_mm - nasa_mm) / mean_val + return max(0.0, round(1.0 - rel_diff, 3)) + + +def _merge_day( + zone_id: str, + day: str, + nasa_reading: DailyReading | None, + chirps_reading: DailyReading | None, +) -> DailyReading: + """Merge a single day's readings from both sources. + + Precedence for precipitation: CHIRPS is primary (higher spatial + resolution in East Africa), NASA POWER is fallback. + Temperature/humidity/wind come from NASA POWER only. + """ + chirps_precip = chirps_reading.precip_chirps_mm if chirps_reading else None + nasa_precip = nasa_reading.precip_nasa_mm if nasa_reading else None + + # Determine source label + has_chirps = chirps_precip is not None + has_nasa = nasa_reading is not None + if has_chirps and has_nasa: + source = "chirps+nasa" + elif has_chirps: + source = "chirps_only" + elif has_nasa: + source = "nasa_only" + else: + source = "none" + + # Primary precip: prefer CHIRPS, fall back to NASA POWER + if chirps_precip is not None: + precip_mm = chirps_precip + elif nasa_precip is not None: + precip_mm = nasa_precip + else: + precip_mm = None + + # Source agreement + agreement = _compute_agreement(chirps_precip, nasa_precip) + if agreement is not None and agreement < (1.0 - _DISAGREEMENT_THRESHOLD): + log.debug( + "Source disagreement for %s on %s: CHIRPS=%.1fmm, NASA=%.1fmm (agreement=%.2f)", + zone_id, day, + chirps_precip or 0, nasa_precip or 0, agreement, + ) + + # Temperature and other vars come from NASA POWER + temp_mean = nasa_reading.temp_mean_c if nasa_reading else None + temp_max = nasa_reading.temp_max_c if nasa_reading else None + temp_min = nasa_reading.temp_min_c if nasa_reading else None + humidity = nasa_reading.humidity_pct if nasa_reading else None + wind = nasa_reading.wind_speed_ms if nasa_reading else None + + # Data quality: fraction of the 6 key fields that are present + fields = [precip_mm, temp_mean, temp_max, temp_min, humidity, wind] + present = sum(1 for f in fields if f is not None) + quality = round(present / len(fields), 3) + + return DailyReading( + zone_id=zone_id, + date=day, + precip_mm=precip_mm, + precip_nasa_mm=nasa_precip, + precip_chirps_mm=chirps_precip, + temp_mean_c=temp_mean, + temp_max_c=temp_max, + temp_min_c=temp_min, + humidity_pct=humidity, + wind_speed_ms=wind, + source=source, + source_agreement=agreement, + data_quality=quality, + ) + + +def _merge_zone( + zone_id: str, + nasa_readings: list[DailyReading], + chirps_readings: list[DailyReading], +) -> list[DailyReading]: + """Merge NASA POWER and CHIRPS readings for a zone, aligned by date.""" + # Index by date for O(1) lookup + nasa_by_date: dict[str, DailyReading] = {r.date: r for r in nasa_readings} + chirps_by_date: dict[str, DailyReading] = {r.date: r for r in chirps_readings} + + # Union of all dates from both sources + all_dates = sorted(set(nasa_by_date.keys()) | set(chirps_by_date.keys())) + + merged: list[DailyReading] = [] + for day in all_dates: + merged.append( + _merge_day( + zone_id, day, + nasa_by_date.get(day), + chirps_by_date.get(day), + ) + ) + + return merged + + +def _build_ingested_data( + zone_id: str, + readings: list[DailyReading], + sources: list[str], +) -> IngestedData: + """Build the IngestedData container with completeness stats.""" + if not readings: + return IngestedData( + zone_id=zone_id, + readings=[], + date_range=("", ""), + sources_available=sources, + completeness=0.0, + ) + + dates = [r.date for r in readings] + completeness = sum(r.data_quality for r in readings) / len(readings) + + return IngestedData( + zone_id=zone_id, + readings=readings, + date_range=(min(dates), max(dates)), + sources_available=sources, + completeness=round(completeness, 3), + ) + + +async def run_ingestion( + zones: list[UrbanZone] | None = None, + start_date: date | None = None, + end_date: date | None = None, + skip_chirps: bool = False, + skip_nasa: bool = False, +) -> list[IngestedData]: + """Run the full ingestion pipeline for all zones. + + Fetches from both CHIRPS and NASA POWER in parallel, merges + the results, and returns one IngestedData per zone. + + Parameters + ---------- + zones : list[UrbanZone], optional + Zones to ingest. Defaults to all zones from config. + start_date, end_date : date, optional + Date range. Defaults to last 90 days. + skip_chirps : bool + Skip CHIRPS fetch (use NASA POWER only). + skip_nasa : bool + Skip NASA POWER fetch (use CHIRPS only). + + Returns + ------- + list[IngestedData] + One IngestedData per zone with merged readings. + """ + if zones is None: + zones = ZONES + + log.info( + "Starting ingestion for %d zones (CHIRPS=%s, NASA=%s)", + len(zones), + "skip" if skip_chirps else "enabled", + "skip" if skip_nasa else "enabled", + ) + t0 = datetime.now(timezone.utc) + + # Fetch both sources in parallel + nasa_task = ( + fetch_all_zones_nasa_power(zones, start_date, end_date) + if not skip_nasa + else _empty_result(zones) + ) + chirps_task = ( + fetch_all_zones_chirps(zones, start_date, end_date) + if not skip_chirps + else _empty_result(zones) + ) + + nasa_results, chirps_results = await asyncio.gather( + nasa_task, chirps_task, return_exceptions=True, + ) + + # Handle individual source failures gracefully + if isinstance(nasa_results, Exception): + log.error("NASA POWER fetch failed entirely: %s", nasa_results) + nasa_results = {z.zone_id: [] for z in zones} + if isinstance(chirps_results, Exception): + log.error("CHIRPS fetch failed entirely: %s", chirps_results) + chirps_results = {z.zone_id: [] for z in zones} + + # Merge per zone + results: list[IngestedData] = [] + disagreement_count = 0 + total_readings = 0 + + for zone in zones: + zid = zone.zone_id + nasa_data = nasa_results.get(zid, []) + chirps_data = chirps_results.get(zid, []) + + # Determine available sources + sources: list[str] = [] + if nasa_data: + sources.append("nasa_power") + if chirps_data: + sources.append("chirps") + + merged = _merge_zone(zid, nasa_data, chirps_data) + total_readings += len(merged) + + # Count disagreements + for r in merged: + if ( + r.source_agreement is not None + and r.source_agreement < (1.0 - _DISAGREEMENT_THRESHOLD) + ): + disagreement_count += 1 + + results.append(_build_ingested_data(zid, merged, sources)) + + elapsed = (datetime.now(timezone.utc) - t0).total_seconds() + + # Log ingestion statistics + zones_with_data = sum(1 for r in results if r.readings) + avg_completeness = ( + sum(r.completeness for r in results) / len(results) + if results else 0 + ) + + log.info( + "Ingestion complete in %.1fs: %d/%d zones with data, " + "%d total readings, %.0f%% avg completeness, %d source disagreements", + elapsed, zones_with_data, len(zones), total_readings, + avg_completeness * 100, disagreement_count, + ) + + return results + + +async def _empty_result(zones: list[UrbanZone]) -> dict[str, list[DailyReading]]: + """Return empty readings for all zones (used when a source is skipped).""" + return {z.zone_id: [] for z in zones} + + +# Convenience entrypoint for scripts +def ingest_sync( + zones: list[UrbanZone] | None = None, + start_date: date | None = None, + end_date: date | None = None, +) -> list[IngestedData]: + """Synchronous wrapper around run_ingestion for non-async callers.""" + return asyncio.run(run_ingestion(zones, start_date, end_date)) diff --git a/src/notification/__init__.py b/src/notification/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/notification/sender.py b/src/notification/sender.py new file mode 100644 index 0000000000000000000000000000000000000000..9c4c61bc68d674a0af6ee571cb7f5e60d2b493b6 --- /dev/null +++ b/src/notification/sender.py @@ -0,0 +1,318 @@ +""" +Notification delivery module. + +Sends trigger explanations to policyholders via console (demo), +SMS (Twilio), or WhatsApp (Twilio). All senders implement a common +async interface and return a DeliveryResult. +""" + +from __future__ import annotations + +import asyncio +import logging +import os +import time +from abc import ABC, abstractmethod +from dataclasses import dataclass, field +from datetime import datetime, timezone +from typing import Optional, Sequence + +log = logging.getLogger(__name__) + + +# ── Data containers ────────────────────────────────────────────────────── + +@dataclass +class DeliveryResult: + """Outcome of a single notification delivery attempt.""" + + status: str # "sent", "failed", "dry_run" + channel: str # "console", "sms", "whatsapp" + recipient: str + message_preview: str # first 120 chars + timestamp: str = field( + default_factory=lambda: datetime.now(timezone.utc).isoformat() + ) + cost_estimate: float = 0.0 # estimated cost in USD + error: str = "" + message_sid: str = "" # Twilio message SID if applicable + + +# ── Base sender ────────────────────────────────────────────────────────── + +class BaseSender(ABC): + """Common interface for all notification channels.""" + + @abstractmethod + async def send( + self, recipient: str, message: str, channel: str = "" + ) -> DeliveryResult: + """Send a message to a single recipient.""" + ... + + async def send_batch( + self, + recipients: Sequence[str], + message: str, + channel: str = "", + rate_limit: float = 1.0, + ) -> list[DeliveryResult]: + """ + Send the same message to multiple recipients with rate limiting. + + Args: + recipients: Phone numbers or identifiers. + message: The notification text. + channel: Override channel name. + rate_limit: Minimum seconds between sends (Twilio default: 1/sec). + """ + results: list[DeliveryResult] = [] + for i, recipient in enumerate(recipients): + result = await self.send(recipient, message, channel) + results.append(result) + # Rate limiting between sends (skip after last) + if i < len(recipients) - 1 and rate_limit > 0: + await asyncio.sleep(rate_limit) + return results + + +# ── Console sender (demo mode) ─────────────────────────────────────────── + +class ConsoleSender(BaseSender): + """Prints notifications to stdout. Default for demo and testing.""" + + async def send( + self, recipient: str, message: str, channel: str = "console" + ) -> DeliveryResult: + preview = message[:120] + ("..." if len(message) > 120 else "") + log.info("[CONSOLE] To: %s | %s", recipient, preview) + print(f"\n{'='*60}") + print(f" NOTIFICATION — {channel or 'console'}") + print(f" To: {recipient}") + print(f"{'='*60}") + print(f" {message}") + print(f"{'='*60}\n") + return DeliveryResult( + status="dry_run", + channel="console", + recipient=recipient, + message_preview=preview, + cost_estimate=0.0, + ) + + +# ── Twilio SMS sender ─────────────────────────────────────────────────── + +class TwilioSender(BaseSender): + """ + Sends SMS via Twilio. + + Requires environment variables: + TWILIO_ACCOUNT_SID + TWILIO_AUTH_TOKEN + TWILIO_FROM_NUMBER (E.164 format, e.g. +15551234567) + """ + + def __init__( + self, + account_sid: Optional[str] = None, + auth_token: Optional[str] = None, + from_number: Optional[str] = None, + ): + self.account_sid = account_sid or os.environ.get("TWILIO_ACCOUNT_SID", "") + self.auth_token = auth_token or os.environ.get("TWILIO_AUTH_TOKEN", "") + self.from_number = from_number or os.environ.get("TWILIO_FROM_NUMBER", "") + self._client = None + + def _get_client(self): + """Lazy-init Twilio client.""" + if self._client is None: + if not all([self.account_sid, self.auth_token]): + raise RuntimeError( + "Twilio credentials not configured. Set TWILIO_ACCOUNT_SID " + "and TWILIO_AUTH_TOKEN environment variables." + ) + from twilio.rest import Client + self._client = Client(self.account_sid, self.auth_token) + return self._client + + async def send( + self, recipient: str, message: str, channel: str = "sms" + ) -> DeliveryResult: + preview = message[:120] + ("..." if len(message) > 120 else "") + + # Truncate SMS to 1600 chars (Twilio limit for long SMS) + sms_body = message[:1600] + + try: + client = self._get_client() + # Twilio client is synchronous — run in executor + loop = asyncio.get_event_loop() + twilio_msg = await loop.run_in_executor( + None, + lambda: client.messages.create( + body=sms_body, + from_=self.from_number, + to=recipient, + ), + ) + log.info( + "[SMS] Sent to %s | SID: %s | Status: %s", + recipient, twilio_msg.sid, twilio_msg.status, + ) + return DeliveryResult( + status="sent", + channel="sms", + recipient=recipient, + message_preview=preview, + cost_estimate=_estimate_sms_cost(message), + message_sid=twilio_msg.sid, + ) + except Exception as exc: + log.error("[SMS] Failed to send to %s: %s", recipient, exc) + return DeliveryResult( + status="failed", + channel="sms", + recipient=recipient, + message_preview=preview, + error=str(exc), + ) + + +# ── WhatsApp sender ────────────────────────────────────────────────────── + +class WhatsAppSender(BaseSender): + """ + Sends WhatsApp messages via Twilio WhatsApp Business API. + + Uses the same Twilio credentials as SMS but prefixes the from number + with 'whatsapp:'. + """ + + def __init__( + self, + account_sid: Optional[str] = None, + auth_token: Optional[str] = None, + from_number: Optional[str] = None, + ): + self.account_sid = account_sid or os.environ.get("TWILIO_ACCOUNT_SID", "") + self.auth_token = auth_token or os.environ.get("TWILIO_AUTH_TOKEN", "") + self.from_number = from_number or os.environ.get("TWILIO_FROM_NUMBER", "") + self._client = None + + def _get_client(self): + """Lazy-init Twilio client.""" + if self._client is None: + if not all([self.account_sid, self.auth_token]): + raise RuntimeError( + "Twilio credentials not configured. Set TWILIO_ACCOUNT_SID " + "and TWILIO_AUTH_TOKEN environment variables." + ) + from twilio.rest import Client + self._client = Client(self.account_sid, self.auth_token) + return self._client + + async def send( + self, recipient: str, message: str, channel: str = "whatsapp" + ) -> DeliveryResult: + preview = message[:120] + ("..." if len(message) > 120 else "") + + # WhatsApp supports longer messages (up to 4096 chars) + wa_body = message[:4096] + + # Ensure whatsapp: prefix on both numbers + wa_from = ( + f"whatsapp:{self.from_number}" + if not self.from_number.startswith("whatsapp:") + else self.from_number + ) + wa_to = ( + f"whatsapp:{recipient}" + if not recipient.startswith("whatsapp:") + else recipient + ) + + try: + client = self._get_client() + loop = asyncio.get_event_loop() + twilio_msg = await loop.run_in_executor( + None, + lambda: client.messages.create( + body=wa_body, + from_=wa_from, + to=wa_to, + ), + ) + log.info( + "[WhatsApp] Sent to %s | SID: %s | Status: %s", + recipient, twilio_msg.sid, twilio_msg.status, + ) + return DeliveryResult( + status="sent", + channel="whatsapp", + recipient=recipient, + message_preview=preview, + cost_estimate=_estimate_whatsapp_cost(), + message_sid=twilio_msg.sid, + ) + except Exception as exc: + log.error("[WhatsApp] Failed to send to %s: %s", recipient, exc) + return DeliveryResult( + status="failed", + channel="whatsapp", + recipient=recipient, + message_preview=preview, + error=str(exc), + ) + + +# ── Cost estimation ────────────────────────────────────────────────────── + +def _estimate_sms_cost(message: str) -> float: + """Estimate SMS cost in USD. Twilio Kenya rate ~ $0.0475/segment.""" + # SMS segments: 160 chars for GSM-7, 70 for UCS-2 (Unicode) + has_unicode = any(ord(c) > 127 for c in message) + segment_size = 70 if has_unicode else 160 + segments = max(1, (len(message) + segment_size - 1) // segment_size) + return round(segments * 0.0475, 4) + + +def _estimate_whatsapp_cost() -> float: + """Estimate WhatsApp cost in USD. Twilio WhatsApp ~ $0.005/msg + template fees.""" + return 0.005 + + +# ── Sender factory ─────────────────────────────────────────────────────── + +def create_sender(channel: str = "console") -> BaseSender: + """ + Factory to create the appropriate sender. + + Args: + channel: One of "console", "sms", "whatsapp". + """ + if channel == "sms": + return TwilioSender() + elif channel == "whatsapp": + return WhatsAppSender() + else: + return ConsoleSender() + + +async def send_zone_notifications( + recipients: Sequence[str], + message: str, + channel: str = "console", + rate_limit: float = 1.0, +) -> list[DeliveryResult]: + """ + Convenience function: send the same notification to all recipients in a zone. + + Args: + recipients: List of phone numbers. + message: Notification text. + channel: "console", "sms", or "whatsapp". + rate_limit: Seconds between sends for Twilio rate limiting. + """ + sender = create_sender(channel) + return await sender.send_batch(recipients, message, channel, rate_limit) diff --git a/src/pipeline.py b/src/pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..549cc518946268d3c662f79b88ebcb187cc07e8f --- /dev/null +++ b/src/pipeline.py @@ -0,0 +1,536 @@ +""" +Climate Risk Index Engine — Main Pipeline Orchestrator + +6-step pipeline: INGEST → HEAL → INDEX → CALIBRATE → EXPLAIN → NOTIFY + +Mirrors the architecture of Weather AI 2 but for urban flood parametric insurance. +Each step has independent fallbacks — no cascading failures. +""" + +import asyncio +import logging +import time +import uuid +from dataclasses import dataclass, field +from datetime import datetime, timedelta + +from config import ZONES, ZONE_MAP, PIPELINE_STEPS, TRIGGER_THRESHOLDS, PAYOUT_TIERS + +from src.ingestion.pipeline_ingest import ingest_all_zones +from src.ingestion.models import IngestedData, DailyReading +from src.healing.healer import HealingAgent, RuleBasedFallback, HealedData +from src.indexing.spi import compute_spi_from_daily, classify_spi +from src.indexing.antecedent import compute_antecedent_indices +from src.indexing.flood_risk import compute_flood_risk, detect_triggers +from src.calibration.basis_risk import assess_all_zones +from src.explanation.explainer import TriggerExplainer, TemplateExplainer +from src.notification.sender import create_sender + +logger = logging.getLogger(__name__) + + +@dataclass +class StepResult: + step: str + status: str # ok, partial, failed, skipped + duration_s: float + records_processed: int = 0 + errors: list[str] = field(default_factory=list) + details: dict = field(default_factory=dict) + + +@dataclass +class PipelineRunResult: + run_id: str + started_at: str + ended_at: str + status: str # ok, partial, failed + steps: list[StepResult] + zones_processed: int + triggers_found: int + notifications_sent: int + total_cost_usd: float + duration_s: float + + +class FloodRiskPipeline: + """ + End-to-end urban flood risk pipeline. + + Step 1 (INGEST): Fetch real precipitation + climate data from CHIRPS & NASA POWER + Step 2 (HEAL): AI agent validates and repairs data anomalies + Step 3 (INDEX): Calculate SPI, antecedent precipitation, composite flood risk + Step 4 (CALIBRATE): Estimate basis risk per zone + Step 5 (EXPLAIN): Generate plain-language trigger explanations in English + Swahili + Step 6 (NOTIFY): Deliver alerts to policyholders via SMS/WhatsApp/console + """ + + def __init__( + self, + days_back: int = 90, + use_claude_healer: bool = True, + use_claude_explainer: bool = True, + delivery_channel: str = "console", + db=None, + ): + self.days_back = days_back + self.use_claude_healer = use_claude_healer + self.use_claude_explainer = use_claude_explainer + self.delivery_channel = delivery_channel + self.db = db + + # Pipeline state + self._ingested: dict[str, IngestedData] = {} + self._healed: dict[str, HealedData] = {} + self._indices: dict[str, dict] = {} + self._triggers: list = [] + self._basis_risk: dict = {} + self._explanations: list = [] + self._notifications: list = [] + + async def run(self) -> PipelineRunResult: + """Execute the full 6-step pipeline.""" + run_id = str(uuid.uuid4())[:8] + started_at = datetime.utcnow() + steps: list[StepResult] = [] + total_cost = 0.0 + + logger.info(f"Pipeline run {run_id} starting — {len(ZONES)} zones, {self.days_back} days back") + + # Step 1: INGEST + step1 = await self._step_ingest(run_id) + steps.append(step1) + if step1.status == "failed": + logger.error("Ingestion failed completely — aborting pipeline") + return self._finalize(run_id, started_at, steps, "failed") + + # Step 2: HEAL + step2 = await self._step_heal(run_id) + steps.append(step2) + total_cost += step2.details.get("cost_usd", 0) + + # Step 3: INDEX + step3 = await self._step_index(run_id) + steps.append(step3) + + # Step 4: CALIBRATE + step4 = await self._step_calibrate(run_id) + steps.append(step4) + + # Step 5: EXPLAIN (only if triggers found) + step5 = await self._step_explain(run_id) + steps.append(step5) + total_cost += step5.details.get("cost_usd", 0) + + # Step 6: NOTIFY (only if explanations generated) + step6 = await self._step_notify(run_id) + steps.append(step6) + total_cost += step6.details.get("cost_usd", 0) + + result = self._finalize(run_id, started_at, steps, total_cost=total_cost) + logger.info( + f"Pipeline run {run_id} complete — status={result.status}, " + f"triggers={result.triggers_found}, notifications={result.notifications_sent}, " + f"cost=${result.total_cost_usd:.4f}, duration={result.duration_s:.1f}s" + ) + return result + + # ── Step 1: INGEST ────────────────────────────────────────────────────── + + async def _step_ingest(self, run_id: str) -> StepResult: + t0 = time.time() + errors = [] + try: + results = await ingest_all_zones(ZONES, days_back=self.days_back) + for r in results: + self._ingested[r.zone_id] = r + + ok_count = sum(1 for r in results if r.completeness > 0.5) + total_readings = sum(len(r.readings) for r in results) + + status = "ok" if ok_count == len(ZONES) else "partial" if ok_count > 0 else "failed" + return StepResult( + step="ingest", status=status, duration_s=time.time() - t0, + records_processed=total_readings, + errors=errors, + details={ + "zones_ok": ok_count, + "zones_total": len(ZONES), + "total_readings": total_readings, + "sources": list(set( + s for r in results for s in r.sources_available + )), + }, + ) + except Exception as e: + logger.exception(f"Ingestion failed: {e}") + return StepResult( + step="ingest", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Step 2: HEAL ──────────────────────────────────────────────────────── + + async def _step_heal(self, run_id: str) -> StepResult: + t0 = time.time() + errors = [] + total_tokens = 0 + healer_type = "claude" if self.use_claude_healer else "rule_based" + + try: + if self.use_claude_healer: + try: + healer = HealingAgent() + except Exception: + logger.warning("Claude healer unavailable, falling back to rule-based") + healer = None + else: + healer = None + + fallback = RuleBasedFallback() + + for zone_id, ingested in self._ingested.items(): + try: + if healer: + healed = await healer.heal_zone(zone_id, ingested.readings) + total_tokens += sum(a.tokens_used for a in healed.assessments) + else: + healed = fallback.heal_zone(zone_id, ingested.readings) + self._healed[zone_id] = healed + except Exception as e: + logger.warning(f"Claude healing failed for {zone_id}, using rule-based: {e}") + healed = fallback.heal_zone(zone_id, ingested.readings) + self._healed[zone_id] = healed + errors.append(f"{zone_id}: {e}") + + # Cost estimate: ~$0.003 per 1K input tokens, ~$0.015 per 1K output tokens + est_cost = total_tokens * 0.005 / 1000 # rough average + + ok_count = len(self._healed) + return StepResult( + step="heal", status="ok" if ok_count == len(self._ingested) else "partial", + duration_s=time.time() - t0, + records_processed=sum(len(h.readings) for h in self._healed.values()), + errors=errors, + details={ + "healer": healer_type, + "zones_healed": ok_count, + "total_tokens": total_tokens, + "cost_usd": est_cost, + "avg_quality": ( + sum(h.quality_score for h in self._healed.values()) / max(1, ok_count) + ), + }, + ) + except Exception as e: + logger.exception(f"Healing step failed: {e}") + return StepResult( + step="heal", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Step 3: INDEX ─────────────────────────────────────────────────────── + + async def _step_index(self, run_id: str) -> StepResult: + t0 = time.time() + errors = [] + all_triggers = [] + + try: + for zone_id, healed in self._healed.items(): + zone = ZONE_MAP.get(zone_id) + if not zone: + continue + + readings = healed.readings + if not readings: + continue + + # Extract daily precipitation series + daily_precip = [] + daily_dates = [] + for r in readings: + p = getattr(r, "precip_mm", None) or getattr(r, "healed_precip", None) + d = getattr(r, "date", None) + if p is not None and d is not None: + daily_precip.append(float(p)) + daily_dates.append(str(d)) + + if len(daily_precip) < 30: + errors.append(f"{zone_id}: insufficient data ({len(daily_precip)} days)") + continue + + # SPI calculation (need monthly aggregation) + spi_results = compute_spi_from_daily(daily_precip, daily_dates) + + # Antecedent precipitation + api_results = compute_antecedent_indices( + daily_precip, daily_dates, + drainage_quality=zone.drainage_quality, + settlement_type=zone.settlement_type, + ) + + # Composite flood risk + risk_scores = compute_flood_risk( + daily_precip, daily_dates, + spi_latest=spi_results.get("spi_1_latest", 0), + api_5day=api_results.get("api_5day_latest", 0), + zone=zone, + ) + + # Trigger detection + triggers = detect_triggers( + zone_id=zone_id, + zone_name=zone.name, + city=zone.city, + daily_precip=daily_precip, + daily_dates=daily_dates, + spi_latest=spi_results.get("spi_1_latest", 0), + api_5day=api_results.get("api_5day_latest", 0), + flood_risk_score=risk_scores.get("latest_score", 0), + settlement_type=zone.settlement_type, + ) + + self._indices[zone_id] = { + "spi": spi_results, + "antecedent": api_results, + "flood_risk": risk_scores, + "triggers": triggers, + } + all_triggers.extend(triggers) + + self._triggers = all_triggers + + return StepResult( + step="index", status="ok" if self._indices else "partial", + duration_s=time.time() - t0, + records_processed=len(self._indices), + errors=errors, + details={ + "zones_indexed": len(self._indices), + "triggers_found": len(all_triggers), + "trigger_levels": { + level: sum(1 for t in all_triggers if t.trigger_level == level) + for level in ["critical", "warning", "watch"] + }, + }, + ) + except Exception as e: + logger.exception(f"Indexing step failed: {e}") + return StepResult( + step="index", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Step 4: CALIBRATE ─────────────────────────────────────────────────── + + async def _step_calibrate(self, run_id: str) -> StepResult: + t0 = time.time() + try: + self._basis_risk = assess_all_zones(ZONES) + + avg_score = sum( + r["overall_score"] for r in self._basis_risk.values() + ) / max(1, len(self._basis_risk)) + + return StepResult( + step="calibrate", status="ok", + duration_s=time.time() - t0, + records_processed=len(self._basis_risk), + details={ + "zones_assessed": len(self._basis_risk), + "avg_basis_risk": round(avg_score, 3), + "high_risk_zones": sum( + 1 for r in self._basis_risk.values() if r["overall_score"] > 0.3 + ), + }, + ) + except Exception as e: + logger.exception(f"Calibration step failed: {e}") + return StepResult( + step="calibrate", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Step 5: EXPLAIN ───────────────────────────────────────────────────── + + async def _step_explain(self, run_id: str) -> StepResult: + t0 = time.time() + total_tokens = 0 + + if not self._triggers: + return StepResult( + step="explain", status="skipped", duration_s=time.time() - t0, + details={"reason": "no triggers to explain"}, + ) + + try: + if self.use_claude_explainer: + try: + explainer = TriggerExplainer() + except Exception: + logger.warning("Claude explainer unavailable, using templates") + explainer = TemplateExplainer() + else: + explainer = TemplateExplainer() + + for trigger in self._triggers: + zone = ZONE_MAP.get(trigger.zone_id) + if not zone: + continue + + basis = self._basis_risk.get(trigger.zone_id, {}) + explanation = await explainer.explain(trigger, zone, basis) + self._explanations.append(explanation) + total_tokens += getattr(explanation, "tokens_used", 0) + + est_cost = total_tokens * 0.005 / 1000 + + return StepResult( + step="explain", status="ok", + duration_s=time.time() - t0, + records_processed=len(self._explanations), + details={ + "explanations_generated": len(self._explanations), + "languages": ["en", "sw"], + "total_tokens": total_tokens, + "cost_usd": est_cost, + }, + ) + except Exception as e: + logger.exception(f"Explanation step failed: {e}") + return StepResult( + step="explain", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Step 6: NOTIFY ────────────────────────────────────────────────────── + + async def _step_notify(self, run_id: str) -> StepResult: + t0 = time.time() + + if not self._explanations: + return StepResult( + step="notify", status="skipped", duration_s=time.time() - t0, + details={"reason": "no explanations to deliver"}, + ) + + try: + sender = create_sender(self.delivery_channel) + sent_count = 0 + failed_count = 0 + + for explanation in self._explanations: + # In production, would look up enrolled policyholders per zone + # For demo, send to console + message = ( + f"[{explanation.trigger_level.upper()}] " + f"{explanation.zone_name}, {explanation.city}\n" + f"{explanation.english_text}\n" + f"---\n" + f"{explanation.swahili_text}\n" + f"Estimated payout: {explanation.payout_estimate}" + ) + + result = await sender.send( + recipient=f"zone-{explanation.zone_id}", + message=message, + channel=self.delivery_channel, + ) + self._notifications.append(result) + + if result.status in ("sent", "dry_run"): + sent_count += 1 + else: + failed_count += 1 + + est_cost = sent_count * 0.0075 if self.delivery_channel != "console" else 0 + + return StepResult( + step="notify", status="ok" if failed_count == 0 else "partial", + duration_s=time.time() - t0, + records_processed=sent_count + failed_count, + details={ + "sent": sent_count, + "failed": failed_count, + "channel": self.delivery_channel, + "cost_usd": est_cost, + }, + ) + except Exception as e: + logger.exception(f"Notification step failed: {e}") + return StepResult( + step="notify", status="failed", duration_s=time.time() - t0, + errors=[str(e)], + ) + + # ── Finalize ──────────────────────────────────────────────────────────── + + def _finalize( + self, run_id: str, started_at: datetime, + steps: list[StepResult], status: str | None = None, + total_cost: float = 0, + ) -> PipelineRunResult: + ended_at = datetime.utcnow() + duration = (ended_at - started_at).total_seconds() + + if status is None: + failed = sum(1 for s in steps if s.status == "failed") + partial = sum(1 for s in steps if s.status == "partial") + if failed > 1: + status = "failed" + elif failed > 0 or partial > 0: + status = "partial" + else: + status = "ok" + + return PipelineRunResult( + run_id=run_id, + started_at=started_at.isoformat(), + ended_at=ended_at.isoformat(), + status=status, + steps=steps, + zones_processed=len(self._healed), + triggers_found=len(self._triggers), + notifications_sent=sum( + 1 for n in self._notifications if n.status in ("sent", "dry_run") + ), + total_cost_usd=total_cost, + duration_s=duration, + ) + + # ── Accessors for API ─────────────────────────────────────────────────── + + @property + def ingested_data(self): + return self._ingested + + @property + def healed_data(self): + return self._healed + + @property + def index_data(self): + return self._indices + + @property + def triggers(self): + return self._triggers + + @property + def basis_risk_data(self): + return self._basis_risk + + @property + def explanations(self): + return self._explanations + + @property + def notifications(self): + return self._notifications + + +def run_pipeline_sync(**kwargs) -> PipelineRunResult: + """Synchronous wrapper for the pipeline.""" + pipeline = FloodRiskPipeline(**kwargs) + return asyncio.run(pipeline.run()) diff --git a/src/prediction/__init__.py b/src/prediction/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/prediction/heat_forecast.py b/src/prediction/heat_forecast.py new file mode 100644 index 0000000000000000000000000000000000000000..703ec7e310edfe3f4ea5510286b9ccdd463ecfd9 --- /dev/null +++ b/src/prediction/heat_forecast.py @@ -0,0 +1,507 @@ +""" +Heat wave prediction model for parametric insurance triggers. + +XGBoost classifier that predicts the probability of a heat trigger +event (2+ consecutive days above city-adjusted threshold) occurring +within the next 7 days, given recent climate features. + +Degrades gracefully: + full_model -> persistence -> climatology + +References: + - Perkins-Kirkpatrick & Lewis (2020) heat wave definitions + - WHO/ILO occupational heat stress thresholds +""" + +from __future__ import annotations + +from collections import deque +from pathlib import Path + +import numpy as np + +try: + import xgboost as xgb +except ImportError: + xgb = None + +# City-specific temperature thresholds for trigger definition (deg C) +# These are the "warning" tier thresholds adjusted per city +CITY_THRESHOLDS = { + "Dar es Salaam": 34.0, + "Kampala": 31.0, + "Nairobi": 28.0, + "Kigali": 29.0, +} + +# Seasonal temperature profiles: (mean, amplitude, humidity_mean, humidity_amp) +# Mean temp = base + amplitude * cos(2pi*(doy - phase)/365) +CITY_CLIMATE = { + "Dar es Salaam": { + "temp_mean": 31.0, + "temp_amp": 3.5, + "phase_doy": 45, # peak ~mid Feb + "humidity_mean": 82.0, + "humidity_amp": 7.0, + "temp_range": (28.0, 36.0), + }, + "Kampala": { + "temp_mean": 28.0, + "temp_amp": 3.0, + "phase_doy": 45, + "humidity_mean": 70.0, + "humidity_amp": 10.0, + "temp_range": (24.0, 32.0), + }, + "Nairobi": { + "temp_mean": 24.5, + "temp_amp": 3.0, + "phase_doy": 55, # peak ~late Feb + "humidity_mean": 57.0, + "humidity_amp": 12.0, + "temp_range": (20.0, 28.0), + }, + "Kigali": { + "temp_mean": 25.5, + "temp_amp": 2.5, + "phase_doy": 50, + "humidity_mean": 65.0, + "humidity_amp": 8.0, + "temp_range": (22.0, 29.0), + }, +} + +FEATURE_NAMES = [ + "current_temp", + "current_wbgt", + "current_humidity", + "temp_trend_7d", + "temp_anomaly_30d", + "soil_moisture_proxy", + "rolling_error", + "doy_sin", + "doy_cos", + "hour_sin", + "hour_cos", + "zone_vulnerability", +] + + +def _resolve_model_path(model_path: str) -> Path: + p = Path(model_path) + if not p.is_absolute(): + p = Path(__file__).resolve().parents[2] / model_path + return p + + +from src.indexing.heat_index import calculate_wbgt as _simple_wbgt + + +class HeatWavePredictor: + """XGBoost model: recent climate features -> trigger probability in 7 days.""" + + FEATURE_NAMES = FEATURE_NAMES + + def __init__(self, model_path: str = "models/heat_predictor_xgb.json"): + if xgb is None: + raise ImportError( + "xgboost is required. Install with: pip install 'xgboost>=2.0.0'" + ) + self.model_path = _resolve_model_path(model_path) + self.model: xgb.XGBClassifier | None = None + self._rolling_errors: deque = deque(maxlen=3) + self._load_or_train() + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def predict( + self, + zone, + recent_temps: list[float], + recent_humidity: list[float], + recent_wbgt: list[float], + hour: int = 12, + ) -> tuple[float, float, str]: + """Predict probability of heat trigger within 7 days. + + Args: + zone: UrbanZone instance. + recent_temps: Last 30 daily max temperatures (most recent last). + recent_humidity: Last 30 daily humidity values. + recent_wbgt: Last 30 daily WBGT values. + hour: Current hour for diurnal encoding. + + Returns: + (probability, confidence, model_tier) + model_tier is one of: "full_model", "persistence", "climatology" + """ + # Try full model first + try: + features = self._build_features( + zone, recent_temps, recent_humidity, recent_wbgt, hour + ) + prob = float(self.model.predict_proba(features)[0, 1]) + confidence = self._estimate_confidence(recent_temps, "full_model") + return round(prob, 4), round(confidence, 3), "full_model" + except Exception: + pass + + # Persistence fallback: if recent conditions are above threshold, + # assume they continue + try: + threshold = CITY_THRESHOLDS.get(zone.city, 33.0) + if len(recent_temps) >= 2: + above = sum(1 for t in recent_temps[-3:] if t > threshold) + prob = min(0.95, above / 3.0) + else: + prob = 0.5 + confidence = self._estimate_confidence(recent_temps, "persistence") + return round(prob, 4), round(confidence, 3), "persistence" + except Exception: + pass + + # Climatology fallback: use seasonal base rate + from config import HOT_SEASONS + + import datetime + + doy = datetime.datetime.now().timetuple().tm_yday + month = datetime.datetime.now().month + city = getattr(zone, "city", "Nairobi") + hot_months = [] + for season_months in HOT_SEASONS.get(city, {}).values(): + hot_months.extend(season_months) + prob = 0.35 if month in hot_months else 0.10 + confidence = 0.30 + return round(prob, 4), round(confidence, 3), "climatology" + + def update_rolling_error(self, predicted_prob: float, actual: bool) -> None: + """Track prediction accuracy for the rolling_error feature.""" + error = abs(predicted_prob - (1.0 if actual else 0.0)) + self._rolling_errors.append(error) + + # ------------------------------------------------------------------ + # Feature engineering + # ------------------------------------------------------------------ + + def _build_features( + self, + zone, + recent_temps: list[float], + recent_humidity: list[float], + recent_wbgt: list[float], + hour: int = 12, + ) -> np.ndarray: + """Build the 12-feature vector. + + Features: + 0: current_temp — most recent daily max temp + 1: current_wbgt — most recent WBGT + 2: current_humidity — most recent humidity + 3: temp_trend_7d — linear slope over last 7 days + 4: temp_anomaly_30d — current temp minus 30-day mean + 5: soil_moisture_proxy — inverse of recent rainfall proxy + (approximated as negative temp anomaly clamped to [0,1]) + 6: rolling_error — mean of last 3 prediction errors + 7-8: doy_sin, doy_cos — seasonal encoding + 9-10: hour_sin, hour_cos — diurnal encoding + 11: zone_vulnerability — numeric heat vulnerability + """ + import datetime + + temps = list(recent_temps) + humid = list(recent_humidity) + wbgts = list(recent_wbgt) + + current_temp = temps[-1] if temps else 30.0 + current_wbgt = wbgts[-1] if wbgts else 28.0 + current_humidity = humid[-1] if humid else 65.0 + + # Trend: slope of last 7 days + if len(temps) >= 7: + x = np.arange(7, dtype=np.float64) + y = np.array(temps[-7:], dtype=np.float64) + temp_trend = float(np.polyfit(x, y, 1)[0]) + else: + temp_trend = 0.0 + + # Anomaly: current vs 30-day mean + if len(temps) >= 2: + temp_anomaly = current_temp - np.mean(temps) + else: + temp_anomaly = 0.0 + + # Soil moisture proxy: when temps are well below average, + # likely recent rain -> higher moisture. Clamp to [0, 1]. + soil_proxy = float(np.clip(1.0 - (temp_anomaly + 2.0) / 4.0, 0.0, 1.0)) + + # Rolling prediction error + if self._rolling_errors: + rolling_err = float(np.mean(self._rolling_errors)) + else: + rolling_err = 0.3 # neutral prior + + # Day of year encoding + doy = datetime.datetime.now().timetuple().tm_yday + doy_sin = np.sin(2 * np.pi * doy / 365.0) + doy_cos = np.cos(2 * np.pi * doy / 365.0) + + # Hour encoding + hour_sin = np.sin(2 * np.pi * hour / 24.0) + hour_cos = np.cos(2 * np.pi * hour / 24.0) + + # Vulnerability + vuln_map = {"high": 1.0, "moderate": 0.5, "low": 0.0} + zone_vuln = vuln_map.get( + getattr(zone, "heat_vulnerability", "moderate"), 0.5 + ) + + features = np.array( + [ + current_temp, + current_wbgt, + current_humidity, + temp_trend, + temp_anomaly, + soil_proxy, + rolling_err, + doy_sin, + doy_cos, + hour_sin, + hour_cos, + zone_vuln, + ], + dtype=np.float32, + ).reshape(1, -1) + + return features + + # ------------------------------------------------------------------ + # Confidence estimation + # ------------------------------------------------------------------ + + @staticmethod + def _estimate_confidence(recent_temps: list[float], tier: str) -> float: + """Heuristic confidence based on data quality and model tier.""" + base = {"full_model": 0.80, "persistence": 0.45, "climatology": 0.30} + conf = base.get(tier, 0.30) + + # More data -> higher confidence + n = len(recent_temps) + if n >= 30: + conf += 0.10 + elif n >= 14: + conf += 0.05 + + # Low variance in recent data -> more predictable + if n >= 7: + std = float(np.std(recent_temps[-7:])) + if std < 2.0: + conf += 0.05 + + return min(conf, 0.95) + + # ------------------------------------------------------------------ + # Training + # ------------------------------------------------------------------ + + def train(self, seed: int = 42) -> None: + """Generate 2 years of synthetic daily data per zone and train. + + For each zone, generates 730 days of realistic temperature, + humidity, and WBGT curves with autocorrelation. Labels each + day with whether a trigger event (2+ consecutive days above + threshold) occurs within the next 7 days. + """ + rng = np.random.default_rng(seed) + from config import ZONES + + n_days = 730 + all_X = [] + all_y = [] + + for zone in ZONES: + city = zone.city + climate = CITY_CLIMATE.get(city, CITY_CLIMATE["Nairobi"]) + + # Generate daily temperatures with autocorrelation + temps = self._generate_temp_series(climate, n_days, rng) + humidity = self._generate_humidity_series(climate, n_days, rng) + + # Compute WBGT series + wbgt_series = [ + _simple_wbgt(t, h) for t, h in zip(temps, humidity) + ] + + # Label: trigger within next 7 days? + threshold = CITY_THRESHOLDS.get(city, 33.0) + labels = self._label_triggers(temps, threshold, n_days) + + # Build features for each day (need 30-day lookback) + vuln_map = {"high": 1.0, "moderate": 0.5, "low": 0.0} + zone_vuln = vuln_map.get(zone.heat_vulnerability, 0.5) + + for day in range(30, n_days - 7): + t_window = temps[day - 30 : day + 1] + h_window = humidity[day - 30 : day + 1] + w_window = wbgt_series[day - 30 : day + 1] + + current_temp = t_window[-1] + current_wbgt = w_window[-1] + current_humidity = h_window[-1] + + # Trend + x7 = np.arange(7, dtype=np.float64) + y7 = np.array(t_window[-7:], dtype=np.float64) + temp_trend = float(np.polyfit(x7, y7, 1)[0]) + + # Anomaly + temp_anomaly = current_temp - float(np.mean(t_window)) + + # Soil moisture proxy + soil_proxy = float( + np.clip(1.0 - (temp_anomaly + 2.0) / 4.0, 0.0, 1.0) + ) + + # Synthetic rolling error + rolling_err = rng.uniform(0.1, 0.5) + + # Day-of-year encoding (day within 365-day cycle) + doy = day % 365 + doy_sin = np.sin(2 * np.pi * doy / 365.0) + doy_cos = np.cos(2 * np.pi * doy / 365.0) + + # Random hour for variety + hour = rng.integers(6, 19) + hour_sin = np.sin(2 * np.pi * hour / 24.0) + hour_cos = np.cos(2 * np.pi * hour / 24.0) + + row = [ + current_temp, + current_wbgt, + current_humidity, + temp_trend, + temp_anomaly, + soil_proxy, + rolling_err, + doy_sin, + doy_cos, + hour_sin, + hour_cos, + zone_vuln, + ] + + all_X.append(row) + all_y.append(labels[day]) + + X = np.array(all_X, dtype=np.float32) + y = np.array(all_y, dtype=np.int32) + + self.model = xgb.XGBClassifier( + n_estimators=150, + max_depth=5, + learning_rate=0.1, + eval_metric="logloss", + random_state=seed, + ) + self.model.fit(X, y) + self._save_model() + + # ------------------------------------------------------------------ + # Synthetic data generation helpers + # ------------------------------------------------------------------ + + @staticmethod + def _generate_temp_series( + climate: dict, n_days: int, rng + ) -> list[float]: + """Generate realistic daily max temperatures with autocorrelation. + + Uses seasonal cosine curve + AR(1) autocorrelated noise. + """ + mean = climate["temp_mean"] + amp = climate["temp_amp"] + phase = climate["phase_doy"] + lo, hi = climate["temp_range"] + + temps = [] + noise = 0.0 + ar_coef = 0.7 # autocorrelation coefficient + + for d in range(n_days): + # Seasonal component + seasonal = mean + amp * np.cos( + 2 * np.pi * (d - phase) / 365.0 + ) + # AR(1) noise + noise = ar_coef * noise + rng.normal(0, 1.2) + temp = seasonal + noise + temp = float(np.clip(temp, lo - 1.0, hi + 2.0)) + temps.append(temp) + + return temps + + @staticmethod + def _generate_humidity_series( + climate: dict, n_days: int, rng + ) -> list[float]: + """Generate daily humidity with seasonal cycle and noise.""" + mean = climate["humidity_mean"] + amp = climate["humidity_amp"] + phase = climate.get("phase_doy", 45) + + humidity = [] + noise = 0.0 + + for d in range(n_days): + # Humidity anti-correlated with temp in dry season + seasonal = mean - amp * np.cos( + 2 * np.pi * (d - phase) / 365.0 + ) + noise = 0.5 * noise + rng.normal(0, 4.0) + h = seasonal + noise + h = float(np.clip(h, 30.0, 98.0)) + humidity.append(h) + + return humidity + + @staticmethod + def _label_triggers( + temps: list[float], threshold: float, n_days: int + ) -> list[int]: + """Label each day: 1 if a 2+ consecutive day trigger occurs in next 7 days.""" + labels = [0] * n_days + + for day in range(n_days - 7): + window = temps[day + 1 : day + 8] + # Check for 2+ consecutive above threshold + consec = 0 + triggered = False + for t in window: + if t > threshold: + consec += 1 + if consec >= 2: + triggered = True + break + else: + consec = 0 + labels[day] = 1 if triggered else 0 + + return labels + + # ------------------------------------------------------------------ + # Persistence + # ------------------------------------------------------------------ + + def _save_model(self) -> None: + self.model_path.parent.mkdir(parents=True, exist_ok=True) + self.model.save_model(str(self.model_path)) + + def _load_or_train(self) -> None: + if self.model_path.exists(): + self.model = xgb.XGBClassifier() + self.model.load_model(str(self.model_path)) + else: + self.train() diff --git a/src/pricing/__init__.py b/src/pricing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pricing/actuarial.py b/src/pricing/actuarial.py new file mode 100644 index 0000000000000000000000000000000000000000..7fa9a9722b5d55cb81db7d6961bd111ea143afeb --- /dev/null +++ b/src/pricing/actuarial.py @@ -0,0 +1,172 @@ +""" +Actuarial pricing model for parametric heat insurance. + +Dynamically prices the cost to cover each outdoor worker in each zone, +accounting for trigger frequency, basis risk uncertainty, vulnerability +exposure, and administrative overhead. Every cost component is broken +out transparently so the dashboard can explain *why* Jangwani costs 3x +more than Westlands. + +Pricing formula (per zone): + base = predicted_frequency * payout_per_event + basis_adj = base * (basis_risk_score * 0.5) + vuln_adj = base * (outdoor_exposure_pct * 0.2) + admin = (base + basis_adj + vuln_adj) * admin_rate + total/worker = (base + basis_adj + vuln_adj + admin) / enrolled * 1.05 +""" + +from __future__ import annotations + +import logging +from dataclasses import dataclass, field + +from config import UrbanZone + +log = logging.getLogger(__name__) + +# Inflation / reserve buffer applied to final per-worker cost +_INFLATION_BUFFER = 1.05 + + +@dataclass +class ActuarialResult: + """Full pricing result for a single zone.""" + zone_id: str + zone_name: str + city: str + cost_per_worker_year: float # What it costs to cover one worker for a year + expected_annual_payouts: float # Total expected payouts for this zone + frequency_component: float # Annual trigger frequency * payout + basis_risk_loading: float # Additional cost due to basis risk + vulnerability_loading: float # Additional cost due to zone vulnerability + admin_loading: float # Operational overhead + cost_breakdown: dict # Transparent breakdown of pricing + enrolled_workers: int + + +class ActuarialPricer: + """Price parametric heat coverage across urban zones.""" + + def __init__(self, admin_rate: float = 0.15): + self.admin_rate = admin_rate + + def price_zone( + self, + zone: UrbanZone, + predicted_frequency: float, + basis_risk_score: float, + payout_per_event: float, + enrolled: int, + ) -> ActuarialResult: + """ + Price coverage for a single zone. + + Parameters + ---------- + zone : UrbanZone + Zone configuration (carries outdoor_exposure_pct, vulnerability, etc.) + predicted_frequency : float + Predicted annual trigger events for this zone. + basis_risk_score : float + Overall basis risk score (0-1) from calibration module. + payout_per_event : float + USD payout per trigger event per worker. + enrolled : int + Number of enrolled workers in the zone. + + Returns + ------- + ActuarialResult with full cost breakdown. + """ + enrolled = max(enrolled, 1) # avoid division by zero + + # 1. Base cost = frequency * payout (total zone cost) + base_cost = predicted_frequency * payout_per_event * enrolled + + # 2. Basis risk loading — higher basis risk = more uncertainty = more + # false payouts to budget for + basis_risk_loading = base_cost * (basis_risk_score * 0.5) + + # 3. Vulnerability loading — higher outdoor exposure = more actual + # claims when events hit + vulnerability_loading = base_cost * (zone.outdoor_exposure_pct * 0.2) + + # 4. Admin loading on the subtotal + subtotal = base_cost + basis_risk_loading + vulnerability_loading + admin_loading = subtotal * self.admin_rate + + # 5. Total with inflation buffer, then per-worker + total = subtotal + admin_loading + cost_per_worker = (total / enrolled) * _INFLATION_BUFFER + + # Build transparent breakdown + cost_breakdown = { + "base_frequency_cost": round(base_cost, 2), + "basis_risk_adjustment": round(basis_risk_loading, 2), + "vulnerability_adjustment": round(vulnerability_loading, 2), + "admin_overhead": round(admin_loading, 2), + "total": round(total, 2), + "explanation": ( + f"{zone.name} has {predicted_frequency:.1f} trigger events/year, " + f"{basis_risk_score:.0%} basis risk, and " + f"{zone.outdoor_exposure_pct:.0%} outdoor exposure" + ), + } + + result = ActuarialResult( + zone_id=zone.zone_id, + zone_name=zone.name, + city=zone.city, + cost_per_worker_year=round(cost_per_worker, 2), + expected_annual_payouts=round(base_cost, 2), + frequency_component=round(predicted_frequency * payout_per_event, 2), + basis_risk_loading=round(basis_risk_loading, 2), + vulnerability_loading=round(vulnerability_loading, 2), + admin_loading=round(admin_loading, 2), + cost_breakdown=cost_breakdown, + enrolled_workers=enrolled, + ) + + log.info( + "Priced %s (%s): $%.2f/worker/year | freq=%.1f | basis=%.2f | vuln=%.0f%%", + zone.name, zone.zone_id, cost_per_worker, + predicted_frequency, basis_risk_score, zone.outdoor_exposure_pct * 100, + ) + + return result + + def price_all_zones( + self, + zones_data: list[dict], + ) -> list[ActuarialResult]: + """ + Price all zones. + + Parameters + ---------- + zones_data : list[dict] + Each dict must contain: + zone: UrbanZone + predicted_frequency: float + basis_risk_score: float + payout_per_event: float + enrolled: int + + Returns + ------- + List of ActuarialResult sorted by cost_per_worker_year descending + (most expensive zone first). + """ + results = [] + for zd in zones_data: + r = self.price_zone( + zone=zd["zone"], + predicted_frequency=zd["predicted_frequency"], + basis_risk_score=zd["basis_risk_score"], + payout_per_event=zd["payout_per_event"], + enrolled=zd["enrolled"], + ) + results.append(r) + + results.sort(key=lambda r: r.cost_per_worker_year, reverse=True) + return results diff --git a/src/pricing/budget_optimizer.py b/src/pricing/budget_optimizer.py new file mode 100644 index 0000000000000000000000000000000000000000..03defc1cfa0d73fd9470a32f5ab8b35a505756a6 --- /dev/null +++ b/src/pricing/budget_optimizer.py @@ -0,0 +1,299 @@ +""" +Budget allocation optimizer for philanthropic heat insurance programs. + +Given a fixed budget, allocates funds across zones to maximize +risk-adjusted impact. Zones where each dollar prevents the most +harm get funded first. + +Strategy: + impact_score = (risk_weight * enrolled_workers) / actuarial_cost + Greedy allocation in descending impact_score order — fully fund + the highest-impact zone, then the next, until budget runs out. + The last zone may be partially funded. + +Also provides stretch analysis: "if workers contribute $X/year, +coverage increases from Y% to Z%." +""" + +from __future__ import annotations + +import logging +from dataclasses import dataclass, field + +from src.pricing.actuarial import ActuarialResult + +log = logging.getLogger(__name__) + +# Map vulnerability label to numeric weight for impact scoring +_VULN_WEIGHTS = { + "high": 1.0, + "moderate": 0.6, + "low": 0.3, +} + + +@dataclass +class ZoneAllocation: + """Allocation outcome for a single zone.""" + zone_id: str + zone_name: str + city: str + actuarial_cost_per_worker: float + allocated_budget: float + workers_covered: int + workers_total: int + coverage_pct: float + priority_rank: int + impact_score: float + + +@dataclass +class AllocationResult: + """Full allocation outcome across all zones.""" + total_budget: float + total_workers_covered: int + total_workers_enrolled: int + overall_coverage_pct: float + zones_fully_funded: int + zones_partially_funded: int + zones_unfunded: int + allocations: list[ZoneAllocation] + stretch_analysis: dict + + +class BudgetOptimizer: + """Greedy budget allocator optimizing risk-adjusted impact per dollar.""" + + def optimize( + self, + budget_usd: float, + actuarial_results: list[ActuarialResult], + payout_per_event: float, + worker_contribution: float = 0.0, + ) -> AllocationResult: + """ + Allocate a fixed budget across zones by impact-per-dollar. + + Parameters + ---------- + budget_usd : float + Total philanthropic budget available. + actuarial_results : list[ActuarialResult] + Pricing results from ActuarialPricer. + payout_per_event : float + USD payout per event per worker (used for risk weighting). + worker_contribution : float + Optional per-worker annual co-pay that reduces the subsidy needed. + + Returns + ------- + AllocationResult with per-zone allocations and stretch analysis. + """ + # Build scored list + scored = [] + for ar in actuarial_results: + # Look up vulnerability from the zone config + from config import ZONE_MAP + zone = ZONE_MAP.get(ar.zone_id) + vuln = zone.heat_vulnerability if zone else "moderate" + risk_weight = _VULN_WEIGHTS.get(vuln, 0.5) + + # Net cost after worker contribution + net_cost = max(ar.cost_per_worker_year - worker_contribution, 0.01) + total_zone_cost = net_cost * ar.enrolled_workers + + # Impact = risk_weight * enrolled / total_zone_cost + # High risk zones with many workers and low cost rank highest + impact_score = (risk_weight * ar.enrolled_workers) / total_zone_cost + + scored.append({ + "ar": ar, + "net_cost": net_cost, + "total_zone_cost": total_zone_cost, + "impact_score": impact_score, + "risk_weight": risk_weight, + }) + + # Sort by impact score descending + scored.sort(key=lambda s: s["impact_score"], reverse=True) + + # Greedy allocation + remaining = budget_usd + allocations: list[ZoneAllocation] = [] + rank = 0 + fully_funded = 0 + partially_funded = 0 + unfunded = 0 + total_covered = 0 + + for s in scored: + ar = s["ar"] + zone_cost = s["total_zone_cost"] + net_cost_pw = s["net_cost"] + rank += 1 + + if remaining <= 0: + # Unfunded + alloc = ZoneAllocation( + zone_id=ar.zone_id, + zone_name=ar.zone_name, + city=ar.city, + actuarial_cost_per_worker=ar.cost_per_worker_year, + allocated_budget=0.0, + workers_covered=0, + workers_total=ar.enrolled_workers, + coverage_pct=0.0, + priority_rank=rank, + impact_score=round(s["impact_score"], 4), + ) + allocations.append(alloc) + unfunded += 1 + continue + + if remaining >= zone_cost: + # Fully funded + allocated = zone_cost + covered = ar.enrolled_workers + remaining -= allocated + fully_funded += 1 + else: + # Partially funded — cover as many workers as budget allows + covered = int(remaining / net_cost_pw) + covered = min(covered, ar.enrolled_workers) + allocated = covered * net_cost_pw + remaining -= allocated + partially_funded += 1 + + total_covered += covered + coverage = (covered / max(ar.enrolled_workers, 1)) * 100 # percentage + + alloc = ZoneAllocation( + zone_id=ar.zone_id, + zone_name=ar.zone_name, + city=ar.city, + actuarial_cost_per_worker=ar.cost_per_worker_year, + allocated_budget=round(allocated, 2), + workers_covered=covered, + workers_total=ar.enrolled_workers, + coverage_pct=round(coverage, 4), + priority_rank=rank, + impact_score=round(s["impact_score"], 4), + ) + allocations.append(alloc) + + total_enrolled = sum(ar.enrolled_workers for ar in actuarial_results) + overall_coverage = (total_covered / max(total_enrolled, 1)) * 100 # percentage + + # Stretch analysis — what if workers contribute $2/year? + stretch_contributions = [2.0, 5.0, 10.0] + stretch = {} + for contrib in stretch_contributions: + stretch_result = self._run_allocation( + budget_usd, actuarial_results, contrib + ) + stretch[f"${contrib:.0f}/worker"] = { + "workers_covered": stretch_result["covered"], + "coverage_pct": round(stretch_result["coverage"], 4), + "coverage_increase_pct": round( + stretch_result["coverage"] - overall_coverage, 4 + ), + "additional_workers": stretch_result["covered"] - total_covered, + } + + stretch_analysis = { + "baseline_coverage_pct": round(overall_coverage, 4), + "scenarios": stretch, + "summary": self._stretch_summary( + overall_coverage, total_covered, stretch, total_enrolled + ), + } + + result = AllocationResult( + total_budget=budget_usd, + total_workers_covered=total_covered, + total_workers_enrolled=total_enrolled, + overall_coverage_pct=round(overall_coverage, 4), + zones_fully_funded=fully_funded, + zones_partially_funded=partially_funded, + zones_unfunded=unfunded, + allocations=allocations, + stretch_analysis=stretch_analysis, + ) + + log.info( + "Budget $%,.0f: %d/%d zones fully funded, %d partial, %.0f%% coverage (%d/%d workers)", + budget_usd, fully_funded, len(actuarial_results), + partially_funded, overall_coverage * 100, + total_covered, total_enrolled, + ) + + return result + + def _run_allocation( + self, + budget_usd: float, + actuarial_results: list[ActuarialResult], + worker_contribution: float, + ) -> dict: + """Quick allocation pass for stretch analysis (no full result object).""" + from config import ZONE_MAP + + scored = [] + for ar in actuarial_results: + zone = ZONE_MAP.get(ar.zone_id) + vuln = zone.heat_vulnerability if zone else "moderate" + risk_weight = _VULN_WEIGHTS.get(vuln, 0.5) + net_cost = max(ar.cost_per_worker_year - worker_contribution, 0.01) + total_zone_cost = net_cost * ar.enrolled_workers + impact = (risk_weight * ar.enrolled_workers) / total_zone_cost + scored.append({ + "ar": ar, + "net_cost": net_cost, + "total_zone_cost": total_zone_cost, + "impact": impact, + }) + + scored.sort(key=lambda s: s["impact"], reverse=True) + + remaining = budget_usd + covered = 0 + total_enrolled = sum(ar.enrolled_workers for ar in actuarial_results) + + for s in scored: + if remaining <= 0: + break + zone_cost = s["total_zone_cost"] + if remaining >= zone_cost: + covered += s["ar"].enrolled_workers + remaining -= zone_cost + else: + partial = int(remaining / s["net_cost"]) + partial = min(partial, s["ar"].enrolled_workers) + covered += partial + remaining -= partial * s["net_cost"] + + return { + "covered": covered, + "coverage": (covered / max(total_enrolled, 1)) * 100, # percentage + } + + @staticmethod + def _stretch_summary( + baseline: float, + baseline_workers: int, + stretch: dict, + total_enrolled: int, + ) -> str: + """Human-readable stretch summary.""" + parts = [] + for label, data in stretch.items(): + increase = data["coverage_increase_pct"] + additional = data["additional_workers"] + if increase > 0: + parts.append( + f"With {label} contribution, coverage increases by " + f"{increase:.0%} ({additional:,} additional workers)" + ) + if parts: + return "; ".join(parts) + return "Worker contributions would not materially increase coverage at this budget level" diff --git a/src/store.py b/src/store.py new file mode 100644 index 0000000000000000000000000000000000000000..76485d87bd37f5f217eee639983f74ce42175b84 --- /dev/null +++ b/src/store.py @@ -0,0 +1,424 @@ +""" +Shared singleton store that bridges pipeline output to API responses. + +After a pipeline run completes, call ``store.update_from_pipeline(pipeline)`` +to populate the store with real data. The API checks ``store.has_real_data`` +and serves from the store when True, falling back to synthetic demo data +when False. +""" + +from __future__ import annotations + +import logging +import random +import threading +from dataclasses import asdict +from datetime import datetime, timedelta +from typing import Any + +from config import ZONES, ZONE_MAP, CITIES, PAYOUT_TIERS + +logger = logging.getLogger(__name__) + + +class PipelineStore: + """Singleton that holds the latest pipeline run results.""" + + def __init__(self): + self.has_real_data = False + self.zones: list[dict] = [] + self.indices: list[dict] = [] + self.triggers: list[dict] = [] + self.basis_risk: list[dict] = [] + self.notifications: list[dict] = [] + self.pipeline_runs: list[dict] = [] + self.stats: dict[str, Any] = {} + self._lock = threading.Lock() + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def update_from_pipeline(self, pipeline, run_result=None): + """Convert pipeline state into the same dict shapes that + ``_generate_demo_data()`` in api.py produces, so the dashboard + works identically with real or synthetic data. + + Args: + pipeline: A ``FloodRiskPipeline`` instance after ``.run()`` + has completed. + run_result: Optional ``PipelineRunResult`` returned by + ``pipeline.run()``. + """ + with self._lock: + try: + now = datetime.utcnow() + zones = self._build_zones(pipeline, now) + indices = self._build_indices(pipeline, zones, now) + triggers = self._build_triggers(pipeline, zones, now) + basis_risk = self._build_basis_risk(pipeline) + notifications = self._build_notifications(pipeline, triggers, now) + pipeline_run = self._build_pipeline_run(run_result) if run_result else None + + self.zones = zones + self.indices = indices + self.triggers = triggers + self.basis_risk = basis_risk + self.notifications = notifications + + if pipeline_run: + self.pipeline_runs.insert(0, pipeline_run) + # Keep at most 50 runs + self.pipeline_runs = self.pipeline_runs[:50] + + self.stats = self._build_stats( + zones, triggers, self.pipeline_runs, now, + ) + self.has_real_data = True + logger.info( + "Store updated: %d zones, %d triggers, %d notifications", + len(zones), len(triggers), len(notifications), + ) + except Exception: + logger.exception("Failed to update store from pipeline") + + # ------------------------------------------------------------------ + # Conversion helpers (private) + # ------------------------------------------------------------------ + + def _build_zones(self, pipeline, now: datetime) -> list[dict]: + """Build zone dicts from pipeline._ingested + pipeline._indices.""" + zones: list[dict] = [] + rng = random.Random(42) + + for z in ZONES: + zid = z.zone_id + + # Pull index data if available + idx = pipeline._indices.get(zid, {}) + spi_data = idx.get("spi", {}) + antecedent = idx.get("antecedent", {}) + flood_risk = idx.get("flood_risk", {}) + + spi_val = spi_data.get("spi_1_latest", 0.0) + flood_score = flood_risk.get("latest_score", 0.0) + daily_precip = flood_risk.get("latest_daily_precip", 0.0) + api_5day = antecedent.get("api_5day_latest", 0.0) + ndvi = rng.uniform(0.15, 0.7) # no real NDVI yet + + # Determine risk level from triggers for this zone + zone_triggers = [ + t for t in pipeline._triggers if t.zone_id == zid + ] + if zone_triggers: + # Highest trigger level wins + levels_priority = {"critical": 0, "warning": 1, "watch": 2} + best = min( + zone_triggers, + key=lambda t: levels_priority.get(t.trigger_level, 9), + ) + risk_level = best.trigger_level + else: + risk_level = "normal" + + # Data quality from healed data + healed = pipeline._healed.get(zid) + data_quality = healed.quality_score if healed else 0.85 + + # Enrolled policies placeholder (no real enrolment data yet) + if z.settlement_type == "informal": + enrolled = rng.randint(200, 800) + elif z.settlement_type == "commercial": + enrolled = rng.randint(30, 150) + else: + enrolled = rng.randint(100, 500) + + zones.append({ + "zone_id": zid, + "name": z.name, + "city": z.city, + "country": z.country, + "latitude": z.latitude, + "longitude": z.longitude, + "elevation_m": z.elevation_m, + "area_km2": z.area_km2, + "population_est": z.population_est, + "settlement_type": z.settlement_type, + "flood_susceptibility": z.flood_susceptibility, + "drainage_quality": z.drainage_quality, + "primary_flood_type": z.primary_flood_type, + "risk_level": risk_level, + "spi_1month": round(spi_val, 2), + "flood_risk_score": round(flood_score, 1), + "daily_precip_mm": round(daily_precip, 1), + "api_5day_mm": round(api_5day, 1), + "ndvi_anomaly": round(ndvi, 3), + "enrolled_policies": enrolled, + "data_quality": round(data_quality, 2), + "last_updated": now.isoformat(), + }) + + return zones + + def _build_indices( + self, pipeline, zones: list[dict], now: datetime, + ) -> list[dict]: + """Build per-zone index dicts with monthly SPI history.""" + indices: list[dict] = [] + rng = random.Random(43) + + for z_data in zones: + zid = z_data["zone_id"] + idx = pipeline._indices.get(zid, {}) + spi_data = idx.get("spi", {}) + + # Build monthly history from SPI results if available + monthly_spi = [] + spi_monthly_values = spi_data.get("monthly_values", []) + if spi_monthly_values: + for entry in spi_monthly_values[-12:]: + monthly_spi.append({ + "month": entry.get("month", ""), + "spi_1": round(entry.get("spi_1", 0), 2), + "spi_3": round(entry.get("spi_3", 0), 2), + "precip_mm": round(entry.get("precip_mm", 0), 1), + }) + else: + # Fallback: generate from current SPI value + for m_offset in range(11, -1, -1): + month_num = ((now.month - 1 - m_offset) % 12) + 1 + year = now.year if m_offset < now.month else now.year - 1 + month_date = f"{year}-{month_num:02d}-01" + zone_obj = ZONE_MAP[zid] + in_season = month_num in zone_obj.rainy_seasons + + if m_offset == 0: + spi_val = z_data["spi_1month"] + elif in_season: + spi_val = rng.uniform(-0.5, 1.5) + else: + spi_val = rng.uniform(-1.0, 0.5) + + monthly_spi.append({ + "month": month_date, + "spi_1": round(spi_val, 2), + "spi_3": round(spi_val * rng.uniform(0.7, 1.1), 2), + "precip_mm": round( + max(0, 80 + spi_val * 40 + rng.uniform(-20, 20)), 1, + ), + }) + + indices.append({ + "zone_id": zid, + "zone_name": z_data["name"], + "city": z_data["city"], + "risk_level": z_data["risk_level"], + "spi_current": z_data["spi_1month"], + "flood_risk_score": z_data["flood_risk_score"], + "daily_precip_mm": z_data["daily_precip_mm"], + "api_5day_mm": z_data["api_5day_mm"], + "ndvi_anomaly": z_data["ndvi_anomaly"], + "monthly_history": monthly_spi, + }) + + return indices + + def _build_triggers( + self, pipeline, zones: list[dict], now: datetime, + ) -> list[dict]: + """Convert ``pipeline._triggers`` (list of TriggerEvent dataclasses) + into API-compatible dicts.""" + triggers: list[dict] = [] + rng = random.Random(44) + + # Build a lookup for enrolled policies by zone_id + enrolled_map = {z["zone_id"]: z["enrolled_policies"] for z in zones} + + for i, te in enumerate(pipeline._triggers, start=1): + payout_tier = PAYOUT_TIERS.get(te.trigger_level, {}) + per_policy = payout_tier.get(te.settlement_type, 0) + enrolled = enrolled_map.get(te.zone_id, 0) + + triggers.append({ + "trigger_id": te.trigger_id, + "zone_id": te.zone_id, + "zone_name": te.zone_name, + "city": te.city, + "trigger_level": te.trigger_level, + "trigger_date": te.trigger_date, + "flood_risk_score": round(te.flood_risk_score, 1), + "spi_1month": round(te.spi_1month, 2), + "daily_precip_mm": round(te.daily_precip_mm, 1), + "api_5day_mm": round(te.api_5day_mm, 1), + "settlement_type": te.settlement_type, + "estimated_payout_per_policy": per_policy, + "enrolled_policies": enrolled, + "total_estimated_payout": per_policy * enrolled, + "status": te.status, + }) + + return triggers + + def _build_basis_risk(self, pipeline) -> list[dict]: + """Convert ``pipeline._basis_risk`` (dict of zone_id -> BasisRiskReport) + into API-compatible list of dicts.""" + results: list[dict] = [] + + for zone_id, report in pipeline._basis_risk.items(): + zone = ZONE_MAP.get(zone_id) + if zone is None: + continue + + # report can be a BasisRiskReport dataclass or a dict + if hasattr(report, "overall_score"): + # dataclass + rec_text = "; ".join(report.recommendations) if report.recommendations else "Current calibration adequate" + results.append({ + "zone_id": zone_id, + "zone_name": report.zone_name, + "city": report.city, + "overall_score": round(report.overall_score, 3), + "false_positive_rate": round(report.false_positive_rate, 3), + "false_negative_rate": round(report.false_negative_rate, 3), + "correlation": round(report.correlation, 3), + "settlement_type": report.settlement_type, + "flood_susceptibility": report.flood_susceptibility, + "recommendation": rec_text, + }) + else: + # already a dict + results.append({ + "zone_id": zone_id, + "zone_name": zone.name, + "city": zone.city, + "overall_score": round(report.get("overall_score", 0), 3), + "false_positive_rate": round(report.get("false_positive_rate", 0), 3), + "false_negative_rate": round(report.get("false_negative_rate", 0), 3), + "correlation": round(report.get("correlation", 0), 3), + "settlement_type": zone.settlement_type, + "flood_susceptibility": zone.flood_susceptibility, + "recommendation": report.get("recommendation", "Current calibration adequate"), + }) + + return results + + def _build_notifications( + self, pipeline, triggers: list[dict], now: datetime, + ) -> list[dict]: + """Convert pipeline._explanations + pipeline._notifications into + API-compatible notification dicts.""" + notifications: list[dict] = [] + rng = random.Random(45) + + # Match explanations with their trigger data + trigger_map = {t["zone_id"]: t for t in triggers} + + for i, explanation in enumerate(pipeline._explanations, start=1): + zone_id = explanation.zone_id + trigger = trigger_map.get(zone_id, {}) + + trigger_level = explanation.trigger_level + zone = ZONE_MAP.get(zone_id) + zone_name = zone.name if zone else zone_id + city = zone.city if zone else "" + daily_precip = trigger.get("daily_precip_mm", 0) + per_policy = trigger.get("estimated_payout_per_policy", 0) + enrolled = trigger.get("enrolled_policies", 0) + + # Delivery result from pipeline._notifications + delivery = pipeline._notifications[i - 1] if i <= len(pipeline._notifications) else None + + # English notification + notifications.append({ + "id": f"NOT-{2*i - 1:04d}", + "zone_id": zone_id, + "zone_name": zone_name, + "city": city, + "trigger_level": trigger_level, + "channel": delivery.channel if delivery else "console", + "language": "en", + "recipient_count": enrolled, + "message_preview": ( + f"FLOOD ALERT [{trigger_level.upper()}]: " + f"{zone_name}, {city}. " + f"{explanation.english_text[:120]}" + ), + "status": delivery.status if delivery else "dry_run", + "delivered_at": delivery.timestamp if delivery else now.isoformat(), + "cost_estimate": round(delivery.cost_estimate, 2) if delivery else 0.0, + }) + + # Swahili notification + notifications.append({ + "id": f"NOT-{2*i:04d}", + "zone_id": zone_id, + "zone_name": zone_name, + "city": city, + "trigger_level": trigger_level, + "channel": "sms", + "language": "sw", + "recipient_count": enrolled, + "message_preview": ( + f"TAHADHARI YA MAFURIKO [{trigger_level.upper()}]: " + f"{zone_name}, {city}. " + f"{explanation.swahili_text[:120]}" + ), + "status": delivery.status if delivery else "dry_run", + "delivered_at": delivery.timestamp if delivery else now.isoformat(), + "cost_estimate": round(enrolled * 0.0075, 2), + }) + + return notifications + + def _build_pipeline_run(self, run_result) -> dict: + """Convert a ``PipelineRunResult`` into the same dict shape as + the synthetic pipeline_runs entries.""" + return { + "run_id": run_result.run_id, + "started_at": run_result.started_at, + "ended_at": run_result.ended_at, + "status": run_result.status, + "duration_s": round(run_result.duration_s, 1), + "zones_processed": run_result.zones_processed, + "triggers_found": run_result.triggers_found, + "notifications_sent": run_result.notifications_sent, + "total_cost_usd": round(run_result.total_cost_usd, 4), + "steps": [ + { + "step": s.step, + "status": s.status, + "duration_s": round(s.duration_s, 1), + } + for s in run_result.steps + ], + } + + def _build_stats( + self, + zones: list[dict], + triggers: list[dict], + pipeline_runs: list[dict], + now: datetime, + ) -> dict: + """Build aggregate stats dict.""" + total_runs = len(pipeline_runs) + successful = sum(1 for r in pipeline_runs if r["status"] == "ok") + total_cost = sum(r.get("total_cost_usd", 0) for r in pipeline_runs) + + return { + "total_runs": total_runs, + "successful_runs": successful, + "success_rate": round(successful / max(1, total_runs), 2), + "zones_monitored": len(ZONES), + "cities": len(CITIES), + "active_triggers": len([t for t in triggers if t.get("status") == "active"]), + "total_enrolled": sum(z["enrolled_policies"] for z in zones), + "total_cost_usd": round(total_cost, 2), + "avg_cost_per_run_usd": round(total_cost / max(1, total_runs), 4), + "last_run": pipeline_runs[0]["started_at"] if pipeline_runs else None, + "data_sources": ["CHIRPS", "NASA POWER", "ERA5"], + } + + +# Module-level singleton +store = PipelineStore()