From 0a7492ffab01705264f915bcefe9d275460eb3e6 Mon Sep 17 00:00:00 2001 From: Fr0zka Date: Wed, 30 Sep 2026 17:47:36 +0200 Subject: [PATCH] research(step2e): 8 parameter profiles, worst 570 ms -- speed gate met, look NOT yet accepted Editor-only, default off. Seeded chamber graph (jittered XY grid, spanning tree, optional loops, tunnels, shafts, pillars, ledges, spires, floating masses, basins), 8 profiles, four detail bands at every surface-affecting 25 cm sample, sound brick proofs. 259^3 ring, six workers, medians of 3: 404-570 ms (worst TerracedBasin 570.0 ms). Detail, seam, bound-audit (0 violations, undersized control caught), determinism (1 vs 6 workers) and TraversalSeeds all pass; live tests untouched. Not accepted yet: the profiles are 81-97% open air. In the slices a "TightNetwork" is a large void with scattered solid blobs (rooms of 0.5-0.76 x pitch overlap and merge), and the finest detail band shows as salt-and-pepper speckle with 22-109 separate 1 m components per ring: fast partly because air bricks skip, and the look needs the owner's judgement. Also missing vs live: maze, flat/plain, crystal-chamber, surface-world and underwater grammars; water geometry. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ --- CODEMAP.md | 6 +- .../set_00_openvaults/slice_xy_center.png | Bin 0 -> 5853 bytes .../set_00_openvaults/slice_xz_passage.png | Bin 0 -> 8922 bytes .../set_00_openvaults/slice_xz_y0.png | Bin 0 -> 6244 bytes .../set_00_openvaults/slice_yz_x0.png | Bin 0 -> 7055 bytes .../set_01_tightnetwork/slice_xy_center.png | Bin 0 -> 11547 bytes .../set_01_tightnetwork/slice_xz_passage.png | Bin 0 -> 6236 bytes .../set_01_tightnetwork/slice_xz_y0.png | Bin 0 -> 12901 bytes .../set_01_tightnetwork/slice_yz_x0.png | Bin 0 -> 12144 bytes .../set_02_chamberhalls/slice_xy_center.png | Bin 0 -> 7818 bytes .../set_02_chamberhalls/slice_xz_passage.png | Bin 0 -> 6098 bytes .../set_02_chamberhalls/slice_xz_y0.png | Bin 0 -> 7160 bytes .../set_02_chamberhalls/slice_yz_x0.png | Bin 0 -> 8043 bytes .../set_03_shaftforest/slice_xy_center.png | Bin 0 -> 11335 bytes .../set_03_shaftforest/slice_xz_passage.png | Bin 0 -> 10617 bytes .../set_03_shaftforest/slice_xz_y0.png | Bin 0 -> 12734 bytes .../set_03_shaftforest/slice_yz_x0.png | Bin 0 -> 13272 bytes .../slice_xy_center.png | Bin 0 -> 9756 bytes .../slice_xz_passage.png | Bin 0 -> 8443 bytes .../slice_xz_y0.png | Bin 0 -> 10949 bytes .../slice_yz_x0.png | Bin 0 -> 10387 bytes .../slice_xy_center.png | Bin 0 -> 9531 bytes .../slice_xz_passage.png | Bin 0 -> 11043 bytes .../set_05_pillaredcathedral/slice_xz_y0.png | Bin 0 -> 10244 bytes .../set_05_pillaredcathedral/slice_yz_x0.png | Bin 0 -> 10844 bytes .../set_06_terracedbasin/slice_xy_center.png | Bin 0 -> 9971 bytes .../set_06_terracedbasin/slice_xz_passage.png | Bin 0 -> 10875 bytes .../set_06_terracedbasin/slice_xz_y0.png | Bin 0 -> 11690 bytes .../set_06_terracedbasin/slice_yz_x0.png | Bin 0 -> 12432 bytes .../set_07_hypercomplex/slice_xy_center.png | Bin 0 -> 6297 bytes .../set_07_hypercomplex/slice_xz_passage.png | Bin 0 -> 7523 bytes .../set_07_hypercomplex/slice_xz_y0.png | Bin 0 -> 8178 bytes .../set_07_hypercomplex/slice_yz_x0.png | Bin 0 -> 8009 bytes .../step2e_profiles_30/step2e_report.json | 815 ++++++++++++++++++ .../Private/VoxelRedefinedDensityField.cpp | 697 ++++++++++++--- .../Public/VoxelRedefinedDensityField.h | 9 + .../Private/VoxelForgeExploreCommandlet.cpp | 325 ++++++- .../VoxelForgeRegionEvalExperiment.cpp | 95 +- 38 files changed, 1761 insertions(+), 186 deletions(-) create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xy_center.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_passage.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_y0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_yz_x0.png create mode 100644 Saved/Research/step2e/step2e_profiles_30/step2e_report.json diff --git a/CODEMAP.md b/CODEMAP.md index 56c616f..133c28b 100644 --- a/CODEMAP.md +++ b/CODEMAP.md @@ -119,9 +119,9 @@ remains `0`, and lateral regions remain gated off. | `VoxelForge.Build.cs` | Deps: Core, CoreUObject, Engine, **GameplayTags**, **RealtimeMeshComponent**. | | `Tools/VoxelForgeTest.ps1` | The single guarded test entry point. `-Scenario canonical|owner|probe|perf|tests|surface-fall|crossing|gate-stress|visual-edit|visual-lod|visual-gap-walk|visual-gap-inject|dig-motion|parity|horizon|horizon-render|determinism|region-eval|step2d|step2e`, optional `-Build`, `-Assets owner|default`, `-Cvars`, absolute `-Out`, `-Label`, `-HorizonLevel`, `-HorizonRenderDistanceChunks`, `-ParityExportSize=32|64|128`, `-ParityExportTile=x,y,z`, `-SharedDDC`, `-SampleDensityStacks`, `-StackSampleIntervalUs`, and `-RegionHashProbe -RegionWorkers N -RegionReferenceHash HASH`; stages the host/assets, isolates user/DDC/config state, serializes one Unreal launch at a time, enforces the 8 GiB/30-minute guards, waits for 6 GiB free RAM before launches, and emits compact `result.json`/`summary.txt` plus full logs. Parity can render its game leg with `-EnableRender` and compares the selected export region against the exact streamed tile hashes. `visual-gap-walk` records camera-frustum surface-point coverage at 6000 cm/s; `visual-gap-inject` proves an early component hide is detected; `dig-motion` logs per-frame vertical velocity, gate, support readiness, and movement mode. `-Cvars @{ 'voxel.TestGapAuditLegacyHandoff'=1 }` replays the old visibility handoff for A/B audit baselines. Horizon traces report desired/loaded tiles, resident stream geometry, worker seconds, steady wall time, and peak private memory; `horizon-render` captures the owner view; `determinism` compares per-tile hashes across the default CRT path and `-voxel.CrtFma3=0`; `region-eval` compares the live path with the default-off editor chunk program on the 259³ lattice and five-seed probe set; `step2d` retains the earlier independent field; `step2e` measures eight room-network profiles on the 259³ ring, emits variety metrics and live/new slices, and checks detail, boundaries, bounds, and 1-vs-6-worker hashes. `-RegionHashProbe -RegionWorkers N -RegionReferenceHash HASH` checks a full-ring hash at another partition count. `-SampleDensityStacks` captures profiles, and `-StackSampleIntervalUs` sets the sampling interval. | `Public/VoxelForgeModule.h` / `Private/VoxelForgeModule.cpp` | `FVoxelForgeModule` boilerplate (Startup/Shutdown just log). | -| `Source/VoxelForgeEditor/VoxelForgeEditor.Build.cs` / `Private/VoxelForgeExploreCommandlet.*` | Editor/commandlet-only `-run=VoxelForgeExplore`; owns bounded render/`VF_` walk/OBJ export orchestration and is not linked by Game/Shipping. Optional `-exporttilex/y/z` sets an exact L0 tile origin for controlled export/game parity; omitting all three preserves the existing center-derived origin. `-regioneval=1` retains the exact-field step-2c research harness. `-step2d` retains the earlier independent field benchmark; `-step2e` measures eight room-network profiles and writes timing, variety, and side-by-side slice evidence under `Saved/Research/step2e`. | -| `Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.*` | Six-worker lattice drivers for step 2c, step 2d, and step 2e. The original path still compares live `GetDensityAt` with the editor chunk program. Research modes assign contiguous batches of 8³ bricks dynamically so surface-heavy work balances across workers. Each skip requires a macro Lipschitz bound plus the complete detail-amplitude supremum; uncertain bricks retain all 25 cm detail samples. Timings split classification, point evaluation, and uniform fill; step 2e hashes compare workers 1 and 6. | -| `Public/VoxelRedefinedDensityField.h` / `Private/VoxelRedefinedDensityField.cpp` | Two default-off `WITH_EDITOR` research fields, selected by `voxel.ResearchRedefinedDensityField` (step 2d) and `voxel.ResearchParameterizedCave` (step 2e). Step 2e deterministically assigns one of eight parameter profiles per strate, then builds jittered rooms and a root-connected tunnel graph with optional loops and shafts, pillars, ledges, floating masses, stalactites/stalagmites, and basin floors; four bounded world-space value-noise bands, including a one-sample micro band, are evaluated at full resolution. Step 2e proofs include the model Lipschitz bound, passage/refinement fallback, and full detail supremum; a local derivative bound permits sound proofs through landing-floor blends. The public API adds no reflected class layout. | +| `Source/VoxelForgeEditor/VoxelForgeEditor.Build.cs` / `Private/VoxelForgeExploreCommandlet.*` | Editor/commandlet-only `-run=VoxelForgeExplore`; owns bounded render/`VF_` walk/OBJ export orchestration and is not linked by Game/Shipping. Optional `-exporttilex/y/z` sets an exact L0 tile origin for controlled export/game parity; omitting all three preserves the existing center-derived origin. `-regioneval=1` retains the exact-field step-2c research harness. `-step2d` retains the earlier independent field benchmark; `-step2e` measures eight room-network profiles and writes timing, per-profile parameter ranges, nominal chamber-volume quantiles, vertical-run and tunnel metrics, and side-by-side live/new slice evidence under `Saved/Research/step2e`. The report records 12.5 cm scaling guidance and notes that basin water levels are parameters without water rendering or simulation. Its hardest-profile gates include full-detail parity, seam injection, sound and undersized-bound controls, and repeated / 1-vs-6-worker hash checks. | +| `Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.*` | Six-worker lattice drivers for step 2c, step 2d, and step 2e. The original path still compares live `GetDensityAt` with the editor chunk program. Research modes assign contiguous batches dynamically so surface-heavy work balances across workers; step 2e uses 4³ proof bricks and stages each evaluated brick before copying contiguous X rows, while step 2d retains 8³. Each skip requires a macro Lipschitz bound plus the complete detail-amplitude supremum; uncertain bricks retain all 25 cm detail samples. Timings split classification, point evaluation, and uniform fill; step 2e hashes compare workers 1 and 6. | +| `Public/VoxelRedefinedDensityField.h` / `Private/VoxelRedefinedDensityField.cpp` | Two default-off `WITH_EDITOR` research fields, selected by `voxel.ResearchRedefinedDensityField` (step 2d) and `voxel.ResearchParameterizedCave` (step 2e). Step 2e deterministically assigns one of eight parameter profiles per strate, then builds jittered rooms and a root-connected tunnel graph with optional loops and shafts, pillars, ledges, floating masses, stalactites/stalagmites, and basin floors. The room evaluator checks the containing cell first, then cardinal and diagonal neighbors, with horizontal/vertical upper-bound rejection before feature work. A padded thread-local generated-cell cache is reused across adjacent proof bricks, and XY-dependent room/tunnel distances are reused through each vertical column while four bounded world-space value-noise bands, including a one-sample micro band, remain evaluated at full resolution. Step 2e proofs include the model Lipschitz interval, passage/refinement fallback, and full detail supremum; a local derivative bound permits sound proofs through landing-floor blends. The basin has a water-level parameter, but this field does not render or simulate water. The public API adds no reflected class layout. | | `Private/Tests/VoxelForgeParameterizedGenerationTest.cpp` | Separate three-seed functional sweep for the step 2e field; passage landing air/floor brackets and arrival-to-exit walking routes are checked without changing the live-world tests. | | `Private/Tests/VoxelForgeRedefinedDensityFieldTest.cpp` | Three-seed functional sweep for the research field: authored passage endpoints must bracket open air and solid floor, and each tested strate must have a walkable arrival-to-exit route. | | `Public/VoxelGeometryHash.h` | Header-only geometry digest shared by commandlet export and runtime tile-hash dump; hashes mesh counts and the vertex/normal/UV/color/triangle arrays with the historical CRC order. | diff --git a/Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..0d316467d97f13343f59963467d66999d224768b GIT binary patch literal 5853 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_yz_x0.png b/Saved/Research/step2e/step2e_profiles_30/set_00_openvaults/slice_yz_x0.png new file mode 100644 index 0000000000000000000000000000000000000000..e154e2015bb417f83f0c392963c24044fe1e91fa GIT binary patch literal 7055 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..d7708ad7c1357393052d2deafe0d64e87e7bace8 GIT binary patch literal 11547 zcmX|nc{r5s_y5coV=x#?8cPhCkYsF0wvi$xYfARDY}u2s8zUrpmNraDDk53SHukNM zH?qapvhT~-{T_Y3*UulWi|4-2bMAA$&hnh|dSalb#lpnP1OkCrv~OH90)Zef5C}{M z2Y!R}cz?u$KxmNmHFaZx)l!CT{NKyok%6#am{c{2uwa=*X8Sd4C5MgTr7(L0M=Me& zT24ReXPj(aCz*QmnJ1;F9wrK7ROz{7HulfT>_9OvQXMtxXoVJfu)uJn4uT-VKu|RH z6wx~5cnj&vgi-qaQ)aTOSeF+2FV+krUda^hav@Tib}NI2+SiWZE>oPVn+jrozKO&!leTH=9js}2VihQe}GKigE=2`=}3Pr|w33HGJ8tk3u3HQ#utCP-elGPU8S^yQO$HVzw2(8LgT$8t!P<)%M!ZClnsWU>Q zH`8w^DWtj5#$0WuB$zPlmQ_%1?}_9uUlRF3s~ZhGRCTW4g&=3I+pH8<)Ap>E=5KrG zsT82z$O_QeAp)Fz>H{_m-*5_(+W?p311!1qU0qM{NPu~h+Y#9jBE!0U5j-LNAy-gm z=my$~$+Z}CAI_)l%>#AU3-eRAq>nVDe!ITS3r&VKkPEED+!%-^QjgDE_Y#MqJ?$Y? z%$*WlY`0^kBV;)*gtK)mkT}k>!|}A6js<6%OPcr@nTDC4f*PwE|5j!C)hSj>z}IGF z<65Zvq00p~K-pyBn=#>(IL6hBmkX4~UZCRx>DZ+a@f$OG{})3Hpj@%Dc;-NR7Azvt zNW30L2Clw1MkF~z_wzv+tX&O`BdZWaMo%M1+W~K2@R4xJsA-cV@8d+|^XFlD3O^ZM zRbLIaU5!DGY5Xs?xohHbvmyrqi{tE2BR2=5nTeI0Hj3lRyw{E@k*oGSGy+r_vHaF{ zDgtK@F=<4}xkH+Ot=900bil%Kwm5}w5VVG4U>~CRv~!~>OY-Ty5QumW5;%dtB4)J# zBTqxOE99k4$1@47q9N_BUuIr3U`oo8ry11Ak>wUL;tv&XsBb2E$*AesN6L+8q)DLpG3i zW2E3DG8dlf_wn3u$Z<<;8ZtHiiN9x$5&VZP<+o6w@SD?pedeNtE`nP)@@a6~%%Frx zK>r;Tm{zCPa-Y-uV-Pe`BMkF+W;Qu(Q#3IvceVR7&zO`wVo!mQ@n22?Zuat3TxD=Q z-;5$l|0A$1ieKob3i5dvrLU4x#;6L$`B3KNz-!z#Vpi<0d;<6d+pE0COhE9Jgcj(0 zD!I;GK%_i_FaBf?Z=q@rR-<-uzxM2>0%kzxT&tAZ}- zJkJyC9@>U(E8jxFmbTPckYPCCu&A($V4@de{$FX7$%C^b5VSzpKsHPL5`6oIU4e_# z7S84ogn+oe0xl7RoJLa66(E`0I5GzqLDE5s!+;cc6GRHL0u%SyDcFjv&O{WX98J{( z<6-3nJXfz$GeEu3st7q$K>6!D~h3$gNI=`B*%sH{-5fg z1{+otKaU&)1QD_P$>|)(D*V2aI0}-^VIw|nG-CW079I=zFp>q*tUL6*!Hh;jP_WI% z9gJUIdn&HKKV`=y*MuKOR=fs9)=js5#KNa?=s(2jlT$t;vu%Q^g@mBn92D#TK6W9G zo#JD_GCfWISUt?pQ*rzLDep#K*^=@L&r@2MFiVXg6;> zk_z5R0+W9beL+gB^~nUhMm0jrpu6`#R^tLUSC`Bt-M zlO>M+q(;@$!&?LXo2g`;ifrLPC)C;B#y6n5<3XD0N@eo+M;bu2Fk>BhIG$V1q#C=% zrXi%-aJf+X@aW#SbVV(zGZ^}kg93MoDK{I(;~{JQojh-IBDz1vLejWDeVo{)XAdF- zp6UU?OGK$8*2t@Yqgt-50cJYF++MJ8@#w6a9O%O!W4f*iwuCy_%^MQv?i3t?Yj3PX zn8_MLr3*dCJnsL=JAnTtS{06EEqRTs#kWAucK!jP+TVV)&ru*KOnB7=xBVi>`Hmnd z@E{>{ojWC#&XV(Yn-8+KV*sd^4031DOp)pgv&M`-2^2-itJ`~k*XfY+uU7MrvRLQ3 zRuzT-A8ryuwfi54y>{cIjlBX%!)X12JwTW`jTCd+khuM-aM(Kww);FMa9v37Aeb5- z5Zo=a1xr4D z)vx<{e< zhj%4PZ_9tl5KR1I2`E^CA%=yB4WAK=PD?FQ z3=n=}2s39RG>Y+8>X)U(qe%S`;(`!1A#DAHGKTgXx+g)BR(OUS$q0YbIzNegNvV={ z(=UzK4gv4Vphlj}+2G*$M(k`uhMABjGei{?D^py}YvF7{tPx>e8ph=V)mq&T%QRRDyMNY z|HsIoPL?26y|)^wRNen!SjlEb{ZSR9_~xO-da~hkrJx)(P|KA^!MTe7Y}#3 zU6${vU;89l>#7enT64Ic%H|D8Cu#EJ`o%E>La5G(Z{F)g$_uND+tNI~aD!sbN0 z=Npg;FGI6RlNnD^{zKfYkDUIN-!gm1Bq8i(HsPZu3YI?cUIreECv(mIWthWyrudf2 z&9*;Hv}Zo>>Ebkq+4O6m{5djLhIs|gq2Fc7{_+YuMkS}Fu?C=kuTJ|-hIe5&KZrk- z_Tr-*A}yS=l3DFJXt#Bu2Uk;;C-kzI`|#LByG|DM^+5LS%z&7lzQ${6L!8cp4E)Dc z9MRK1FoU6KE66#nAj&3tDMr9k>|0YGi&R$AKEkVQTB@*tgPDzR&17=xc@Ft%XmbF8 z=~|3^ddq_B4Jfeys*KMHpOZsMVk+j&ucA|D(u21vrZ`c5R@<8?W)LAY>WvP1o;sR8 z{0J3+w2Q`V!z43avHzys-Ln-Z)-ZwLRh+F-=q_rywS$VIZ1yKt$yuz!Base2sg!kC zbv;-%lkRzjyHL=>#r1 z!WMR!A6j??r4^%^$7+T}*tonBvb3pVm8Y+gqSm=)Ybwso2t7BI$}aiims=sUyx#U- zvG0s_UYRYbL>T|=qypj>o4M${RQvnN71B11Yt~g(xnTDnAdUd6v zAjiRto$?=V?!Gwh4|hOlhW=XVaZR{KZ-+RylrLAQLX=#_2_lB@C03*^mrd{U^w*u= zFI;pN9#bp!Jy%oxr6kp$_&SgET5-uwEW_o1MXdzzJHM6>e;g9~5^Im`$ zRmas}GnM)HLAmgkCgfe0Za6HQZO1=y-ra!3j6Z*K(40#0zXVHrn8iTLkE-xkvBj4M zcnSzF4sCGij=W6Kxg1c#iA4zXh&yWvLL6g>7reSo6JdgFDYAd>d4$(it#StyYU`h| zG;=YP`QYtoCjQYl%S!KaAlyME;BSY?bnI6pa04~<{f+?S2~O9Z^7JAP?9&2MwypTy zAL~22ShOEe%ly7PhYl%V^v*0Eo@3l9Q{!-xkodMruG*rbxCWZG=X0bi#kbqvE4x@g zSjMm0qF(>vrRiyqQ>9niT@5~!_jS};zRA4S;#j~-Ug!N#PAXky}UDmQ-$+xy*?6ge8Zo;(LJ@u#<9%;wo+_wOWd>KOL&&Z;Ept?x5ShhC~A zQoUfy;?ZMGk|F8rcVu8X`-6@%d-H>Xd(|{w$?+7ux*w6R(%@AquJ>z8mrZ_8KaY^@ z+RXc&RwJ5FXXrgbLqW7)R71YdbJpQ(SC%Drw)clab_b%4|LX3xj?xyiUXDp&HwX8# zRs!c|4ryneMvPb94OfU?k?l~h8iYR`4oZtLG$>bVLv_gR^WU1JtIaITu^HjzD8Qhe zt{2WS5D+d-$ujQxHfJZPu`M>b?Bmb-zfpQva`$3 z>J9INGu@xtr+7kVLNZC${qC3?u7B?Gh>Lk5{XsnmkVI{dDma}lS;WZOs}pHdB}RJY zeYn4fQKh|zZ=dVyXP;+*U1`CsJAEK-$=Q8xe)9Sg#9wyr?5`Ju~9 z9xGg0C@dUOXrN{O>K^9Ha^;>kAAR`qlxwT(sz6a&bnbzmMozW6iUIav$ zOVq-9ADMYx%SVmtfeIm{H%)37rydg&nf=QMxPbO9};|ErJAoYC+In&R56xsNHR z&Z3z}{_Gk(b)u4q*?1t_;s!bQw{Q#Nwc=B^$i%VVt<&nOTiy!r0s_(U!%N-U)9TGW z%9qD%{$`TIl%;+@_>}nc5xb{U{C(>DWVJV}$^{o6)fznAcc@k4SUJJ&GD1g$K?~v~ z#pH!*`Ag-ct@Fr=!N+U$hm#A`OAE0kk+=A7Ek*uf_^nnGV8vyQj%WGKdA$JH3cI>J z8(YyxuF09~G(Z15CnD{k_5zbjw7^uctDeM$gNrdAw;|7c6BvP3}yi$*fp?3kZP{^tKBO5+zH z-+N>4Cs^BI@0W&n#y|F7JHYhe^wzHn*OsDJN@9`gd!=js z+q@;-KJoSEr&i@khr&@7RZA~4jyh$v<9o|^?#FY~>YSN3g0{pekAUbqOsyB7B+Nu zy{sn`kN3Emk|9fJVir@S@x;RvEhW0t-Sw+%vRt^POb2^9hRc1wo4nylsPnE*5`8xFPBLBb|SQn-OUFm{m&Y7yh?PuWM;L>quc49r~)O5)-LMg zDzHX-72jBeEuZEw zlZ80k-QgbFdEmy#*g%f@`;im!jALLUc_TgJ5vF3HQf}in{GTlRi<@cA zsCi4z2QB){vy>dMx0QpVf&L%ac$7}>yt3r?J;?D_JEp?{Q$#(VH)(3e1#`_ zeNIZZpaw9`?>)FV<$F8J(D`prdAj50itx(Ped3>>BJG@MK}q7=xvs5W zJ`3LX>Mxc>7|ZrZN*sJ@%ZIIb{eI(9=~#L}>Xg~mVx0e9OkvpDA{EmfiG-{Au|lt= zI=uI0Mr#twxqPTUG~IplM^zSB&*&tqBW4v7EqY$@(d++*5g=t&Cw>>gqKJ#j+j4Eo zr&djCD-Gn)d)!(I(Ec)amdFVuukFrt{O=V>dj|piw9gLR)2bFjE<0z>pk!pM|96kXWz91gXP~Ofkw0anc(}6>uLm=#%Bu5w(?&8EpL{b{zTR}v_to3}y^a6k z!VNg^jOBBm;7r5?_|)lat=_04>O~VlxaC!U)Yqq$zX|KlF(&zyYlW_dG{Z?(_X*|7 z9~NJe65~Ee3}3SxX1t+4c-d;cV;Eo4l1e}Gf%Ad*Cq8A`xG?HiTPVYmrp$^T zKF|@M_wcluXvJC-e3o4|dV!z5@GU*V&^b*p=JY%N8Gjpk*#*{wIyxme-Eay!+6qZ%jtM zKRSLkE^r7brovD>%i2KJ&3bDLABhixjbOTnHB#R?(s}dJ^U8v*^Xw+_3gR}xBt@=P zqUCNZcodr8Ilc7TzKHQiU<#vEJ4^-tRCp;Kjzm{zM(NDu^4%&%Tqs{SpeN!Z|J?ED z{WIKURR2dl`T$vxNMWbB)QDCt;P1^B2SMHEP);lZ0ZB7e%nM%QJ4!JA zQ5&pM`s=@*X8D|FtLx7G%UhmoVS$WqEvD@g^FJ;0UDCC-GTmV1AHSinq+z2e#TKca zRipVCiHfK6*z^f=1h!RYTG#sz)-%j1f9Z%@$s`)_N0iIXcUXldD^R8-`|`RDzFTw| z{iyRi117!~r5M$3T7p1G6p7N4-0)ICBe}yoG2wB4b-P_U!{NcV_6`QB1CNfT@m!{K zt8kMcL@TW`zF)p47zO+1^H@b9KS)-l=C2jv2u{ zek)qkmi;HOjX*=~0aSULEJxWVFLco5SVCmrqkcS9himNA9d)_oK1aiZu@#vQHT+s+ znUGx$%B;74H%7Dmfy$265@u)BYVWEU{H8WeJz4<%u`8&o5CfW46gzXwPjilHka(UW z;+L9*Q{taeH27BYAc=Ir9O_-;LN}&iBLz<5*yflF07klS$a25bv|wV=m%naz%~xnU zVWop1@sg`P80dK^Eu8IK_9Ejl3+fFt^nSvf4%KEZwF0*1hbayk!cDJy5SMbC`kb5t zx>hE6>6RjW78-yNBVh#iPLI__OR+ex;o{X2MJXGc1niskXXQ8s$)*|qK_L&r&6N$W zU(j>$gQ54+nG)(2Rl>G4Y=j}M=E&d|HcRf2VF(= z2KHv&1%VL#CtLtWohJa2!hjRKZDEb5z&}a+N~BJw=(+uKT9AK{5jW7qL@Om!r8pMGOo7+Bms&gJVj5* z_`Qbpo$f`el@`=uaL1%kAbyQLXG+U&{PAlafdZSItn?AJh5B{5U)ZTLq_zTIF2!!K~QRx%&xC?GcdCFv;Xr(0cdY-f^i zzwD9WcF5Qd7af3!o(sD{6;6D5O{&&|O-%WGSJc{?*EWP0ttIYl%?!Do0M=Az?o9zY z^07L&g`?6cNa4_2CL}i8q-5vF<>U;~Oa*tqTfm%7g>e(hl*02XA$Ykh?7I*ZTC;(& z;p$cd#!Z9psatG?>%5m8*Li>RFEqQam;i$724b#W0UFqn#LQuMVE>=A^EqQll*$%R zHZ}f}#(m()Iii4~MNkyPiu7{mUA`=U-OlbwE5H@KpaCd2IEis+@_UaPU*lX%`Ry~| z0FX)kgTkn(Bcm`uc3)S9P=;+vU@aB=oC^ez*W3rMxd5@8iD*fDGPL2nH9MHrS z!MsW#(86_oWMYM`mc{KXP^5bB`xJnsp&X4H{pgu$i;j3;A7tS8UHjHuor))Kk(|JM zTLY(bO874tHkY@-Pr$x)n9~S1a})}*#Xf!SEDA+`c@?Io8k?mO8;(TT+msJgjGqOU zNn}D>mjGD#Fz%4~Ga(7GPJ=FmqVs*1H2v8IdIpkJ?{V7W1WzFSg&4*l>|RmTj;V1o zq>n5T*4Iqc5raaWfCT8iLjg7lF%DX=j=I6`4-*azKkC2<@$_iscn!Kk8c~ay&A|8% z1RY{ujeVMF&{oYb=6#{$87X-N6V_s5_2)mpI5rI6CcfTHUV`b~pE&UGXf=b-B`=s# zN=r^992f!DH#PlF0$c;lC$M)Dra@q>zhRgU*1W0|{KHHpvM&E+?jOLHOdyyp(ga-j zV-f;lDW$Kzcqj2RNixpz_HISHG(sTPh!+Y#R1-%E(93&W4O(Y)a&-t2)C@0pmWvy6 zmB_Aw$Zcmqn);M&^>M z%cK!QvhQKQQX+I6l=W)11ExAqYi%L}8|}HcU>(onNhj2mrUGAcexBa>1pWT)=l5+v z18Gt@0D9R(5*_pL!_3u#)i4<~p7nT_R&%-HBHxxvf7I_INJ>tOJOEVRz#n)y(qv%U z;p?Qgn$HFmqrmT{xzx(-nll?`hqyB!pnr_cCrMBWXmb`-o z1W&)pDrcZmEs}c`*un^PfRFq{ixo+g+Wx%TI=0l7^+iGbncd|QOWCQhTVtGiLw#=O zW~$3XFW@{lswPw!Ce)agDfz1qu^Kb9y<(~}&>16fvg_t` zN;=;AB0WQq+@w_SawNqt8$I9e4KYP7_-QM{wq6(spFmlQef12&pLsklvPK8GHGkAY z8>AzaQ{he102iQlTHE;qivrilDb7U??_ZlMX$5&TN_>GCL`H_QOEb;;DIiFDH^tdc zI9~Sflpa|RQ%xs&G#~Gx!3TZb2D0ic9iR$AuU>}8AeFcQ)% z|F1?1$0~|$EEC0IWv1r@ZjcqUxn!Xbcz;NBss>-ZfOM zB{zKyucEWMG|0BFEu{?e^#`2mglah#g{CWZOz0xV(_B_|8`^*6+t9lS>vs0 zEDHcf)+vUJumFmm3@3xaw%sC2iEZ{_xnx#T1nCODI6bf*1Z9FcAT6Yy*1nDBN%`@p ziKpZy-w9+MqN%&|a(O0cjdv!*(jnhi;yIhKmpkK?P9EZH=)hfi1LuR+QZt{h=+3|I-h%B-^xBk( zmPT1>q)rXnp{M8!&fnIRJ~_xJqs5unR;8u8Ee-abvBOKtJ#=52a21x5NEA?L(u2qJ zK8QRsXId6jE6bm8zBegNc&VvSlIy^4W9k8F!2n9#hJ?h|CqZxE!LjaPgjldYYuU#H zYJ=Nr0pHt~AXp}W94lTrV1zXbZQl79)+nM$RFJVdB{%EJ5D~~cAsZXM^aqkq_vlVS zrA)qWY2@f7$CiwL>pT;2qi+mkm~`+6fs*HOVaUfA5{ap3cp&xv zV}+s)u|;3-X9Cy-&0&GuIwUn%ojN_2yU5NL0lW@S%lyk$%6GAj>M6N6wbDRa@kmg% zjmTzPdQr+3cCPe)WFnjjWOuXS_4fgWKzbb?J3EylS4>fgCyS%YKlUZ@8m>94(;&LA zm`HYuTRW3Ubp4KutdoEJ@qcjQ08jI;Vjyf{jmX*m?nO)gn;xGyfj*8H<%-6#7Ob3W zL|Jsb=KTjGDl@UCs1-#QT*)9nsyX<0<^mh8WWIGfABpA8?O#FM3f$U`7+Z`$ks{C8_0;xg3xA|ryd zd|n;&zwMMQXo|7UllLj{ybaU8rSRff4Y!udp{0>UvxWC9!!UJIwrY;-y%&XoglFPY5u>cKDehN^5o3TPD%n+wVq&xz+ zzc#1`GtH^M^?{&rR7VlYZ>?#`#HSBIMeJaR21hHbB#mdnzuq4Et{uq)LEaTHh{1IC zfB_mBD|DN^)ru~hjkY%F0#voK042@te)h3Ya_Fe(wNFtLNq7YNnJ!(zkTPiP7;H!% W)52=-Qw0S4XkXX6R&doO{Qm)*R@r6% literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..7eea7529e113d2bdd7b838f622b50e409e5cb39e GIT binary patch literal 6236 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..49bcabac2aac525c12042db855a7051c6636cc6b GIT binary patch literal 12901 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 }y$ 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_yz_x0.png b/Saved/Research/step2e/step2e_profiles_30/set_01_tightnetwork/slice_yz_x0.png new file mode 100644 index 0000000000000000000000000000000000000000..161dbc8cac46c2959b6c2272211b1aefe1a55376 GIT binary patch literal 12144 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..2422666c75a00249c42f609906fbf92f79e2a2d5 GIT binary patch literal 7818 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..3831f635654b68b0ed9f12d94751f99f17783c77 GIT binary patch literal 6098 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 E0LzW%r2qf` literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_02_chamberhalls/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..fcca44200f62a716deeff75a853cf9234c48ac31 GIT binary patch literal 7160 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 Np{Hf6S*Gp~{Xe8#uK@r6 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..a65771ebc6d6053b3670cde2418c35baedc357c0 GIT binary patch literal 11335 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 BJP7~* literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..5b18b6fb7d46a31583be5e7325bb059ff64bdc54 GIT binary patch literal 10617 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..a9bc5571e57881ff844d06d3541c1ce7185c0e31 GIT binary patch literal 12734 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_yz_x0.png b/Saved/Research/step2e/step2e_profiles_30/set_03_shaftforest/slice_yz_x0.png new file mode 100644 index 0000000000000000000000000000000000000000..19f27c19967ec0a437dd198610a4ae6e573cd02b GIT binary patch literal 13272 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..07e258cea666e20a96307e063288b3287fbbac11 GIT binary patch literal 9756 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..7cec3b9e561d4f020eeafeb83c143f9a578b997d GIT binary patch literal 8443 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 DP4E_$ literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..6c2c19a5a8f34853e7d1a264ff7944ed7644842b GIT binary patch literal 10949 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 KRjT0_{{H~!KfIp+ literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_yz_x0.png b/Saved/Research/step2e/step2e_profiles_30/set_04_floatingarchipelago/slice_yz_x0.png new file mode 100644 index 0000000000000000000000000000000000000000..f138d039d0259adc4d321bb1fd65347218c9adc5 GIT binary patch literal 10387 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 literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a14d014eaf086ed16f1015ac3a89c24e2e3c9a GIT binary patch literal 9531 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 T!Ra^nQ53|~(9)nxj}-HN+wx4? literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..79b4a805d3af2af4e237c45ce210bfa7d6aa5c35 GIT binary patch literal 11043 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

41~;nR(!*{-eM-?yUOVDzdiXOGgA zrn}xogR!-IJekb&8J8X|U81GU> z^{|yN-}Fv*_L5kGHt%_H%ctjj+RAclIKGGoK^OZZ65u%y>M?dGCbW6R#z? zF+;X`(TH>LlKYLL<0q*2`nh$a-KrZj`j9+S0%)bu=N5&s~0){<0lj1}h!b>iD zpLi$L6BOaGQ46NAovO4tJSliE^Kk5EWWhVq*Op)TsHvWWtVy&BFq5pr;{`bdY#p=`FR!`ay=xvZKgOjNNRqx>91Vt zoL@_qg|_+6&>QV4X!E-yC`6ePyJRG~lofchWG1%YCOOHY5G24BS#+LlVwig))UPqj z4B~M~_?S1qm0w8PrC~R9FK8>QU$<@VzHs;}YP#?FMa0aP*8z3bD|TDH1D*TDebVk3W&hGOUmxb${HD1Ak}tN&Q4 z?VduSr~~TWVGK7p!)Rj1!k94@eFrjkEXKGpTow59c|k@h)- z*AEH+!J}6eL`@+evT_Fw-RQ>*4fR#cSGp}ue*NV!;hau8WICgo((5=>D-C@73OZ?O LbK-@uXZ-&Ib*D2k literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_05_pillaredcathedral/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..2134bde8cc0a6287a15206aa33d45fcf6a49e3f7 GIT binary patch literal 10244 zcmZ{KXE>Z+&^K$XT^6gCD60$62~k(?JrON>5F%O#qOIOVZ&5-dqW2PQwU9&*(SqnT z2toAn-kX1}_j$fNU-r5vAUX)0S*obf`fyL2L*m{ zbm#{YaBz?~>Pqr=eJplzWh&WQYE)X8>mgafVe6l6C^k|HRmS1gbK?rHbWjas5#ea)VGR{ep``)ogQSirkG zsk7JoUER^nm)MSEoLgy(JKSkIGxvBS^*0faA~i!2Ff|h4ntt`>ZNe=T$dX}QkSYHU ze>TXE%w@yeOUC?(%ZA^u2b0gO7Y+_5{c`?{mAo&_6AHSlNccEeVHdj#w^?5fSN3=M ziGyGh8Br34Dyvk}R!nZlC|q4J`N4==dgLb}?T(R6BOs_;jGd zKh4%VBMenhROQtsCZu1dxqE(gHjw4>Q^xjjRnbUFZn1iazE-dLJ2A5LK9w&t#M;{i z0<7irp_n7( zC@UXnV*0Rfe>uf#d*#9cx5L&@^7(Kq)A!=z3&D{56S~g=d?xk6PP?i?uj@<80xF%E zE5d#sZC%}n407uJ91H2Z+rZ9wE3vFcUB>iwcL6~k&5BSCw+}8TCJb{M?36;iTpB+0 z>V)HUv3ic_?rw&0>9^<Y~ph?p@Nc{7t5`9?$w+rM<2TS5MK$9HCAF)!nVK z_w|*ckE|_he@Erec+SZ(TkEHGAN;oAw$0-0F6f~-qcTClE#z~BS@ujpiM@&u4~yUa zr2Vn?T)8)4D3+etM1q`7^^w_6(^`(T8J^&TPg3Ok#b?qn24njN6n8mjHLfITn~quv z5zx>wu%$m^_d*{@fe-YS66P5bpKhn>S8xDRf0wi3%L>MI1+~`9=}*O?TCb0n?5*d- z1Dh9(BZs$EzMu zJ#wFmsA@XJ=o<4?WI8UcWLS|4IkMcgre}pvNaCj;tA)@-zfY!pe4W>ugx-&pjz?rH z#gK^<){nAvxIRKa-tm9_%wYYZKm8>O4q6gD+T12d6GW91a#c|x+Vxco@; z;PGIeIT0=tg#$Wf)60=t5GNt0ilFqEQH5Bp(XO1u&9dO&LLVz5hd8P~_3_1zn>>7K zYSy)FOvgvOlf(h|r1CysIiwpNh(q6MeBwM%(^jc#3i5kUmg=iPSeNm;Cg9(Bh|OuXUEY@<*QFQnJZTX%EJNP zdmbRmLW240=QV^Fi zvN8B{Ll+?oH1>JQ`nmo-%Fx3SS)0Om))dkii6lZ0Vt{3D>t)Dp2W3GEK3(hY)v*wB zO>iKEkOVKJkbGMx{pkmY5;&e71Y8F#sG-N#sRt&x5*gJ+dwqCobvgg~Pkz3c@SvLq zDGQlPXRI;OW@OY!9jKm%NWGaJ%&(^DR*c+OU&{3$1gt=+n|iPzQ?5q^Vawg%O=F>k zuRaOEwSIBT!R7!(EjWV`Ni_EJPb1ajUXQdMbgTM;JIEny`0~yTwY>@z7gS0>7&rWR zK>|pPM68pgN?uL35YipJaF7GJdcy4~@j7DYJn5KN4q0lbloUGGP&(K^n1-D^_hfid zsZ2KQ$+cPr^}qQ2ja1tcZt>8{xuvL(unvmP3aQ`=eToQ1LD1<5`HP|O{as)CT9>(g zWR+il$CGHkLj);b8K*rNX}~}-5!MB&VD+<}W}}!Rdfb{X2Edk(sTdyTp z30f*x3?I91dlc;oOEuIL7JOaVOg2$Gx_%>q2nAGA1pSs`VAgqB6_>KCB5lP;-)RzZ z>kXVkR5aDpv3zmVjPtj``d1#3`4W-vNxocEG0R9&uw^!F-Jh?T&nxOVX_sz)WYm5i zV3c*N6+x~eS~c36NRbhgc9^BsHF!=t79nn$?nh`~UljDg!JG&!Meg%-H@2*ODSe>0 zb9cb4Sdv1hd7*-7F~>m(owa@MG@R$PdEwh|)3utRimzd&fl-l^;>kC`9jtn0B30J- z0vookF|x5eM991x9J0`qD_-TkDDgHSQc zvJv_Xu?;xeIIsH~!N;7Q(lX7>9 z@;H!i25m`no_3j~1s~(d_^9wfhZDu5ycH+NJrK?Oq>g|qXnyR@P07#2qV(jg0iNO*B ze;jsqCAtf`EICOIt61)+BL%5&Klr}&=pX$smVWRP_me7Rd11R$dGR6#U4D&uQUE-p z?jk~vL+%U;;-yYDJzIFZ>vmAu;GDMt5pRr-IXI_xd?Ifiz0im2;=;IIm)M1_8uF%( z3Sa)TBGIKc#|-5=;|of~v={+8IT8Y4wsqD;7S?&lZ3<2gf+Er?ZzV=;A73LG$#J8En(~P)rx$)xR~`fxHaOi@)VkZ& zkpWFhc>P~znZe!fI~-bUROiPf(;cMB6F9v;^0eZ`FQ_#aHfZ4jKJ-kp^SoX(2T>o)k6JvUW!Nho@Z@=SN?@rNF4 zKDe|;nz2?ba+QZ+;e#;f=Lm-cpN3V{PC)w+7oUo?(RyP@dHV@lJckf_o^a8yf-Nza5DAq}4WjCf;q6EL6e!v_2c2jvMLN5l zX=%wR-ci;XwIi+kbLO~dH5c^~3i^1#%#oX!U;vE(AvkerHimjm*Ly%dXtZ^)2NRB1JsWMV^*HgcTnv_6)fo*#fC%j3SgNjuk?$Vl}#${Uw4pVdC(H5jF;C6)>*m zuQ{TBUw{RuxBoQd&*>WbQxN7CK`+XcgQL1kuewdK*hhe+K!)gIqQ4jxY5#I=-Kx_3 z{zGNEC;$P*|Azn-Q7O>n7HD8+NHb9(4dG1iR2wTa^b4cbA0&XD4v`Ce!9fOm#Jp{) zgn@p%x3}Iks^%IEvpE}ZbzA*OM_*#~CWomZQYBfmZy%OXIrR`lb0&K^fChy&;HleK zCfgdAD!skWH1{m|oY^(1y@^n?{WiAXx?DT5;9@=H5Q|jcdAws zE|}RSWW|Iv1s!a|99&n?=nR1=@@b9g8`x_@f#^B)lrXOLD@BBJuTN5? z_TN22X79u(&^}%_;K3Rk85tbp)KDBtP7oMtm-cvf^J(8G^`|@3b8M53(SLsT>&jjD zlctW5gN|7WZX9LN*U^2UGkwh$jg}}c*Z|c}uwp#=8ZN>cuzJ2h7Nk&gx=-{PQu4(I zBy4Q2*EYA@?R**ZCHhquymSSIy>Voh@Z*0B9C zEqq4>t`Zk3XIUiXLEA-cU9Dn<(ZD)}Az9RCD%;57JJ4y`kFGC7?GXGdCNWC^# zr<6<7ZOmev79Pr-)eGxdAxZYFn`5W$ip)YxMPRm%Lz*vz6s+3c^aC*dAA(neO4IlA zD}&fU7rTQsdn^b}e)d>Cve1t&Ep7-m*B)Qm-Rofh05KR%_Y1$_ZNQfs+{y$OVr-4O zGU%tRuT8$vhIO%Ohu?w3N)U>$ywI|0d@gUao*I|5&5W?(Mz7)i?Eo^M8^#Y?PaIj7 zib2gAEa>uA;4oZbQou|&U>&lN+8!U2fsv}$r{)}vA*%$zW)rr;_t>>cMASLe7%R9T zfVeXCqgW!$j(8afcLbh1fJ<^yLsm)%;#w)fj%-tkmOrR|(wkvtrbdMrf}PrQ9~!8~ z32w+INn<16u?{A(ykQ!p2s?W~=)ASD`sFvg!s5t@G^|VSnE@@<%f(>5J8=zR(}j>2 zhK;5~>Zz?b_dT(jM>UdpZr^hRx(gEX2k^1?>H-2UG6FDx*Zcg*uR%nmq{*E;3fYzJKhH`89ut0iGW|oLR2^F@;!Ff zx^L-Q0qyB*g_yo2)?2usz0ps+-*M7?@Fd%=o3eiBZN*hubI+iYhsAat$_ge1wAnc+8K>52L4#z*5u9RA;XH+C{t=dT8sl_>W+-ef(Frd>IW$G&{XgZA&`*AOQy=MYvrSsT3@fh?wi6*pod$b^hPTN)FgIYCPBx%GSf z_Xs;E4wg{1YiHW3My~b_toTdB!*8l~M5Ci&eDEb-vJ z8IF5YH#Z5_Bz9u#c@rrx&I1B3Pcf>_4MQ4lBoh-vR8JO zMOT#$-5Z$=i5GlqNfp+0#Q!D)n-k6uBNw=Q_~Y!louXqFTkI-~ZAxQrNQ3e<*W5sg zu**y31T0x2#~vq%?5+EX7vL1wwQ)SJ)~`O+kFUXllXy?XVYgKRXOa zD<5&8dJA%?ZertoHW~Ft@O2YghMX!?_F6z6S%b+#Y~7|}g>0RXe8y71SrFpk`@F<$ z2&>%?mS1WDVCxqNnV`P_L>^T}UQemts+^6ijzYsA(RdYFQ$=eBV>Z1AVnx`&$qh{` zot8S1gu{`e`#JmK0Z+I<2!@j>@YskTg8a?Xhbj6>@NB^(C^iKLz)tGOG|DKIRPx=q z?**EDjAL-y_UO3g#s&4jW-q5!7cs8J1#(Y6378#z4L8lcv1D5MNeQ0rLGwWYunMhe z!QtJ~=ndtiUXu2+ZGldixqn|GB{tnfP%th0ORVh@@PZki(*M}D`{6-w*59K zT5#Zi<_=b(sSu271R^lY5FvFg@SN8FYIZb3NnVAk5q}{zZD1){uz3T)kHwX4Tp(Ge zf`?H?*8)u@(r0o$Mqo`-4P^pB5Ibv2O$y zcX7H}nol^9vO;FW8F`>UNLs5K*LeZc((i?Cm)A$3IS3mIUAk;fBepX4>In zt>6Hnr>;)0Ov2^6f0w-rjGpKJE?_&G^+m_){ABqpbKu-Ng)sn=`2^WWo%hI#J4FBB z4VcZCA7&JEFK|R#mO6&j9vyVjT-G#j*a)VJ|A!{BgS`&j?-VAO97S@Swv%KAH>ZCl zgE*fOIb*X}TUanN`QBHKSn8?7_VvDC@nr3I5A$@6=BZP`e#;d?tXNW@ViF5QsL^-J zNJ#&15FpVc%#V1i1DVT}l35Vcy%DcNe+gh%w>QxnI)%1wtwHb56aDqlg-9p6$M(TDS+zXR;EnFeMGB5-+ zPOmyvfr6Tod-3!`uZUT7AUh_Y?gB3D{Se>+t8e0N%`TgRymYd|N*>nw$^ClKd^0=a ze%Y}!$!!V07EK{Q)nLp8Si=)S2^&ct$c`)dMs=@jj&bs$exea!UEO$H&4eX!1G(3+ zG2g5no@>&&+U#j^?H8;gT5=s)}Qk*r$ zjfVBao!)?kb_BACW8K;e7&Q<#WT54&^=~i&9_4dU+hxW5N;ieuebDN&2`u13nIDlE zgX6%VwVJRRAI(cvpMkztzWNfJALvV)au=C$(-Y3=E^Lntq|B^fW@^0^Ony=UEXs%= zmZ>fJTT=@}3GR0)Hnda1#~9Ek9oAI`ZuzSQF?0iVukcl(%RUYcK_~WG02Bxl$g5Cn z9p)<69*Y-vMqWb9ahSj)*k4dJKS2CnCSJ1ZnUZG#eQ0f~7xNO}ML^osl1Z_5d;`Iq zo4623GzIb1V&i6X8ZWa8lNU%{!D9G@HL$S#z&yid&(Cw~+`N|vh|Hs8n!ni?WhIE7 zdrpUhL!@3TVFM9R*(=zv1T3S5)QcgpQ-&iTFcNmnzyAtG>4J(#^n`QBATlzl z7XMDc1=kkhLqlZ{8U}!L&V<+W{|;vY9tvf+ zlYwCa)(%z_z!w184C-S4^pb%h;eLATr2okUjL8s?9EoHnta^Y@eh3upVSyUcKUUfR z@ojhZ@xQjiKFb9E|K1YVkb^k+FCV?;zxz)XpaX;B^!R9OA zuSTvHUOvefq15UCio%e8hj;^UciJS0{4WJkkQiM)fZJ_FPh$)Hr*V96G$`T06I*4T ze?m`yg_Y50Hk)d%gI6AZxm4f4jit0BW<$cgo%zNH{<3-^k2GYc=2@iHj?%#5AK?6H zs9@^Ihv>WiPBsIyo$dZ|_utVYDmd2v=c+f`iw0rz$H>+O%AZ(g1Q_~+0Mibx1^1i( zEG-UL`iHbez&}gt0^Fr>6E(5<6(FxdS{)E&+U^nVr()qJus<^jb#w=2bPpK!-eEBO zw<{59_awaBgA7tH|4&;GxHf{sW}FN{Bnr{OzCZ%};#e`VkiTDx{M}}S3)qm_jhyqJ zo+@O(>maN4oqu}b1K0S!R^u>Hu&6jRs^Q-qE^Ol=qyX zI)z#!5CNgP`;h_|xM^dQP?VsC80(gt;7nQ4GrGCl_>duOkdLLXWrdG#nbbI zADwT9PCJ9nw=y1YdsT?Ykwa@Yb2|NxITEK%pPyHZh=A6aDnd->;xYYl*IROO^A)3G zG$6!DcCe)W{Pzz-vVqjfsLu^Q{R4a_+^>J{Ui&|{X_~z1pA&c2JG+<%#>af`f~H+} zrtYP$E>^KPVVahI0WIPcX^;Z#Y&(@+5Y(TufW#oTTK;$LTd%2fl}=ztR>`|cws&@)?C;Q1emo29S(8i!m9YEV|suznC2`47dV!^rUsw84eAH#>(CI91 z%f|&|^y;UA8W>n1_dmKbf}fxkwE6?7Rqf}*%xqFwRRp)+k1~YPa@^Fm8qCZYd2hfv zR3qW6>3qi_K$(2e!k-~ z^CYs*9ZQp6CzU#l1O8aJ=tMt``)qs3lg>@Xh=li8V;OLgi|5^9sr0{EcH zOlTGG@^55Op6nMdlwxZ*l3tPAk!_#WmiAUNig;XoNMHK<^z0r($8t(Qpie&$PNzrD z`dbeTh2r9K{H?sScipWOM}-Ws4=-sSHZrxs-5|Br3OF#N6N=CaP3jD&stC ziw``}?*2nY;~GozqJnjGpc6Yc@dq%;V_oF09E9u8)u!12Wx0r+!;+L&aRbTs;nqFI z|} z1w+lm`k;^_hq5H_B#8V4E8zMR=X8FGA9&MR#bgBr41i0N^-Ya0hp;MGy#}A9@iG=_CXM1?fdZ1f)xs5_(ku zQ9x;tE>ffk(n9A=^!t1N$@Apiy|c43=ggeFcb^*SYthqi&;S4cdL8ZSMgRZ^3IG7X zF!C=zpW|~Z0DuDMTvxl}XT6@O5_^&G^~n;)V|oT|q<*HDXXy=56AU_9X10Bq0MfF? zV*IGWKxG=(R!eX9<>6w!rteettF=|n*S|>jZtR`YkU#Kc4OKna8j5RcF*zhn8Du4i zog8i$+RbnWs=I`@7LNTXH-_^_|$hi);$(@4uT;} zVg^9AJrLH+T+dJAb)ihu@CP5bG1z!aZ893r zGW`s+j$O~FF38_I+9`5?4WlqOaL3kL&GVf<<<_3Qf_9?3)-jwA8u&2REjNq9Chozq z)q9_}=hVtmj@DW@_~T+Pi=^hQ$FR?Eln+OFCv(yPqkfn0qHeR!ecMX9$~@v4&f zmjcb+y9-@*THjusScG@1$=y0A5HTzf80igFj6_3Sj!ZqesA){7eU64IbAggn(7s?@`i!B#k{-~ z0kgvVx?-(9Ymd7}mBa)ehgLRQDerY7c^DT8h2NOYwt9KbNs&Xnvg+P})e?#*6;U9T z^?hKZ+BVce=>(G(n#Pc*I#qVm5?^Jf;kK2vtWtMR2qYqun8#qe_g%S^yJ05ys?pf8 z!{K74-ETAZ`Rgx9s$$#2?X4ngMsM`j4L`ngcj6RvBURrcEqk1u@|G||%fEbM*pKCR z{#EevmJFZreu&RBOxr(^$LQOXq4x`A`m}Y^T$Z z_7U9O(1KLyL$7@Wvy8aZFEc;W!pcW-pw`iJV~SSrfBU?!XtZXT~3?Px;JiP)jRUv zfuqr&Yn261{j->TwJQq;J+%%4?PF7~+rMqBzoxHi-rJs3J(uWEKE3w%^lI-&{zW|f zP5-!XukAT;k*Et@D()&-IGDcx9sh9WefeRctP9KSZ0?y9@n(LQ>M zo4UE_E#Lzn@CzsyI$4KoepRqJXdwBnQ4=rz@t}6K?7wqR8i|rauAXS^r^2qBxz0D! zm`cqP`tDO@mqnK?$*tTROHp0?)dIukzON5SLmSu*elw0=jj4#jbG$)s z*{C7S`z?2a7Tu)e+V_uL8-3%q7{f!4>cEMioRVVQzrmzk(2QzXi)sBm?tL#(TES`r zy1Z3)XgepR>~JRF2?1i{#QoWeyAzZ8lI~7yN#|@SAv<4Gv}2VzttHU;Dd>v>>%+?K z-8E9NTA&Bw0=uJ8XU7vs=UU5JAvyNV3rX6f^^qHbmRbZVTd4qgXwBI(sVf3B&W}pv z40)KSYa=?C2Grih{+C{8n9CzjnBe`>GNTOhCy7BIt*p>3pXb?Y`MMsZk@I+ zxcTKCd+CbB*T~WHem_C%d^bu!{SZ1xn}~PxyTXD=YX5qm5zg#rXayT)p&I|OE86q< zVK0wz?_~oNf$Me`wYbp@QFD(l_eX9K_{FfO{15rCW84$9uKFY_ENuMEtp1V9;-d%+ zJtb`yE|7JU?mqg^Q>nu+#LOUUS0=C788$K2=%5_5=|@7s=uWQn3xwt8GSw?0`iW1i z9vJ1)U$4y3y!xL(mw{q(+sQQRR=SF)s2peT$E708DH4s=Xl08pM@FRRSFH0-Yk`(K z4tMM~*^5{9L71M%;UbYWFvNqQ@ApgM2N(rRsx!|i`lU2gnNWe|IP=QYZni@H-E|5&% zdwN1+=_qE+^8Z}hGO*9rr!y4}zTCtN+{_jtj4eMg>)mJ#Phg_1Sf{G!n3yQMcDh{A zmd}%$NTBB!Zss0LNnG&#F79M(c@R4}-5<_YKHQNWsI?ea&|E#4#M!g9)J#knlkdc6 zAkAX}xfQu}{c|mUd@5U4AdP?H$zmV3xRW3So@m*t{zQ^@on1}AZG5Le+*%fSXS=}vHFUr9kR^Vh_ddtIJfpD&3j;*FH;Wur>BB3oUHzjGiW}JB1 zP_XDC6{4~t#HmYsTUSOSPsNGv6Z(>oLL=s_*1=y zp2>d}i#~W+bxvmEZClU5D`sdQ_f_s&^Wq*J6L)PVEi`AUi?e z_YxI~w|G-j^2Mm6zi7$qUC1S9kbVH&1=D8g{J0IpF)Jo$6uxdfFO}%%B2>J=B$_S~ zA3(duuiix?!T3bz0%^s*ZbQ*N!?d)-GPi`ONcfQN>KYvmkxHOk}xK=D; z_L~0W7US)219xOm%>1MGZ8F}%@!w)!={I{s%p?R}v^AVdQ0E#hz7363A+)#13;67~kiR)mh7`9q}CJ)5%K$^SJ zNB_}_I6C6=f&zy7>-|FxC)&=^l&${s^Y5-TKP(=pSZ)f(nOpN~2G&&^`sgr$7~^pC z=N&l->g{cSDj}JRg~{zp-)J3L+;`M|_N)0-(9a92tWP~&2n^N`XM&k+{ji2z7sP15 z8|TnB@O$(#L9Byu!E{8QOLi)n)x}3#_^;H9j;xJuRV=p|qDsog#TO+Bbf@AFAFu$g ze*C~lQ>DT+hY-8u%JBB3aq#6#Pxzk87~)iW`zALs*Q|5RBID<8BqT_Q&EWf}KlN72 zF7tkyeKL*28>ao8K7(uW8TN+a%+AqCj`7C$p;5F+=S7)n*pKJ;9B~@s4vVO_QHrg<+QG=KSf@L)xr@v8O4r_z+)-+hec zFv)ekb)P2*Jh)+uhX{wo!|b*St*6Yqe4f!#2>c$jH$ic&SHP^V!$6-jtNc zwg(cZ^(Oed{No|FM5m1fIhk*?&i=)*HvSWDA+*Y4@o^b5OR*f!wMeIuSHal^VoN=b zSgK^G-EXQ1EvcdM-R0|%z|GzT`^Jv{I55F(f_0NSobMjG4Cy3rpyg6*)* zRss{t=Zt>!WlgT0>+uH#?W4U$S(OBK%64_u3!}^yQf@2QqW*J@V0)u5t73~q5JQn0 zt)0>MUv6ves`CmWxH~pCCeF;qqVOU~mP^R}w}a0%FG)3AQrOgVAB@6PDVi#VRjtsv z4B^v*dv$lKM(qJz%D5i;zNy_&6C|;-;Jq5n$I*;KE7nyvG-7hfbzp%|3;fo=(m)G3 zfvrU_yI$KRmLHEzjo6;(YV;?-e9lAVX2vZ7*^QP3X!zxpe%1}UhIV@|F~DAlU^J?H z&k3AZ4d@#(u31UyFWr2fd7JVCjh*Cwp;SaxNsZsukd73N<;RlN_>i^U26|jF!Q@6q z-=(|_Yy4OyV#56T+uU>YR>(Z)cy$>qlCn zFLn&o;+Hm4Zl;;Q#Uwk@)yxR9ZYQY2odIG1;rTp456enZ6Q2Ml3e6OcSXp)_oHIgm zt<|1Ps6g!o69_wHpm~PXUheE_>fD{9JBPLRhNEJ?S%vQ_X%S;< zfewOk3JZ5j2!V6~-D{T7PhK+8@#hGC8LQbu*4W?tv<}Ntrjl1sQPzQ8Jvgc2z$wg^ zas07`bkcZu5NPm51|3#le*PRQYEyxQ%e%(ozC?JHCVhgY0mxJ^ikpMKat^(2U)eX7 zOln3rH|QXfX~GgCOKW~g>h#%o|A$gcGAOI&w|IBOxV(fkyqGmtokGpsIl?i2Itr!4n8SwqD{)ej0XKo9wW_1M%}wb7;RbnJI}g z>#6)!4?dU${b&gDSo)S1BZU8)b_D0zUT@j!vYuOYuDJ&FSCc*Sa^|6R!@sSyzJ0N3 zQb5OwBVwZ<4Zd;sC51#-(N}$KFen$XnL|}OK?9tAHdMRZQ2J?k&rm%&vSjC?zr@CO zb=uZaIb>~7Qz9YNgtwoqS;w0PRIGMOcc}$*xHiE`t8BbogJ%;;S4YmbbFtGsDy+QN zBM`{w+7RnmJoQUA9KEir!w9;}r0owm){ks(@l0#0gK)a%cm%v#_A>3XVq7-8QBnFr zC2dq4NBz5;%|NyK+~!GY0QJ1L%ANk-*docx8$7pTt)^XhB;w#apNDzymou;b#t7@U zu*G%oq^aZ>Dh_UEuO}=9lKB`Ppf4x5aw9A&%KVTni{Rd@v|PdV2g&93((=u$qlJKt zP03JEN`KFVDsIq4Sl+$a#>cqhJ6|zJH6E?4lg*)Z59^I+1GRLL4Eu5mPNj4sY(*d_ z0A=f5IcM1n5oZ|o&Mt|ZS2_qD;H;Oiu`NC`Tf|C9)y5GpyIQy{4GbNqp~Gs4U0dur ztjMwQX7nSx0;IFL-1bk^l!3}Y<&Lx#OLF3zA`G3afNMcy^8WG(n>z}&fpk5-rV{7) z+bR`yu<<7b^K(i*oC)gd*=nE2Yd8D5Kr@6~4roD&GiWO8Oa)4a#eyhp{IbO0I-LNW zYpytZ%?5(;vYgK+5D@lR3w8BZTOieItH71Pybm0`Yr4x4?>q17_!d;BCie!3bA{|O68o#C_;20 zwu{)LMCFTcs>5x0{ONE22&z)Ay{XyQ7IJb+9VQOZ6?W<30qJ6NZP7>^l!3hLTkSNE zUBs`{9t-zBEWaAyjYm26`t(DWQ-SA|p_fVQ$@Jt^C1Y)H7!~MN<})C#Oyv^bS5UYP zQ>Hju;Q3~|jDCA8VRqQNLl1#%2S9>E)u6JRGK1BK=0fzd{|u~>+x#^`Os{Oy3ZI99 zl_y@nfH3qdGj7=EhK`{!G{pbSGeEG@J4;a;8M}8GOuFIB!YvX1Qr0%6p0@nL)TqP4c)7MaCG$R!N=1*NI^yrk%#>%C27C3+FO?=SfN`@ znKl>|xS~!~)`*Sz93p%JVte-5uMnVEAyBDtuia-6p;q?EB=^ zE#$qx;d)MTF51l@JL{tx4={1&bxJ&Mk(e*1=DU+!<6?`**^9rv`t+OwA?h=*+{5dy zp^~=YBz!W@*^Z%*F!!{TvHg;Qo~Z4bb9(@c?9vg$NCLj54F2AYR)I4cRZ4p|=&QiO znfLBi1btxP!KX;Xzazg^TV);uo?1x-sd(MJHuNQShc3c{PB>M(eBwV{UDakORE(j~ zmwRAxlC{w-0GVH_YC4kM4AUww`O?k(On>O*x+eh-_>&Fegv8V+VNgf6fH_nLJ7zY* zqeQjM;-1`tRVnY&ZAkyxVo4Mu6Pk>t`>1L@e0TfV6{+Q^j6=C*EUL#WmGpX6k3EPN z+zA5)2;U+{++AcgP23sT;eKCmuKkkPeNvZ?+<|>jdZ={0RQ-vQpax};K-e!$ho9K{uDcNThH?P zNh&h*Fbtqkd(0AZ5wg+}*@1#w_H?WH(kyebY3;pG>~Xpg<2&fP0vV*dT30i|k8wgH88#eGtSZGEwS`-Wf}NPeXL(5ST#68*zEz`bYU_R@ zPyUVomQg+}otrQ^5i;)fi6I=@s_mL3XOWOBP= zAvvt`-r{{h6O7oQ@(39}ZX5AlbQ*jZ)@1RuJ7^QRV{gz82ZdzMtaAB9XS0`Sx6^|9 z+5Z-}lfq9JvH`dc> z#0C2o*?*`WhWXY?#Yj0uVw1ImJqx^%4b4Obpg}v$%tkBE%RD|XD|lmWcC|NJz#kqv zEFav#WHB+uPq$Jfm=Ay$S>sy#X@H+ULSV1>H&uH=)0MJcS9MqQWrfbH8-Bp6_B%i)Zluk{4$f1r*W{oJJ^ubcC z_Kh&d7Vx#R%@ZZWA1>m+SZ6^cW_GQM}Pq#y!2 znycGM3$|0A%HpOY6A{EjRJ`<^!F5h3{wZNAeJ8j096Ok`Btz`<7W{n&Dv7bF7Af;L&*(b;g5M&t=}iXAoMMztt2=P zUha@u7Y>A7xQ^DK+ADfsDm2fD?SBw>9OTYXYnbFO=Im%YXg_Bgr)=gHluRzHR}9+Q z4kk|MWKA+1q(0s5TXMSBG-QBoP95KW9LWZKJa+>zsgu!6cC7@`OpU6|!kvfs(W@E} zrddDYsIwN9kiVcPGhUv~f*PGx)i*<`RFNs#CK?;)2<|pa%Yx%EtJfN(Wqx8|NLh9}F0D&piG5Z1!)dc7XlDdW0S> zL_2)5`op7sF`U`dm6Xg*ZkkcpOl(n`C8PSv(bH!(wW8J-6TP6y_b-C3m`B)NqUa-` z_zB?G4Ohn-V2=+2d-hkW+PacxJF%){m4Iy*gy=F-+1;Giil_$PZ~PINX)o35tt(A| zlPq8S#K>ka?Y!h!nOO&KQ_R?`S~rbg)5~0)2>N74ZQJ(u?KlfWfjR(0IH%pv{$MjL zv{;Dvj)hUOV|_%{^$A}@N2RPZ7eznVgQks9VQ5Bx(ZlS(Q%mDb=Acq!>>GUr({Qz) zkuT;cc_e>Z5$P^QR*HaD8en@tkkv~LKVSP?M7>b;QbP{=+3A4)SvvG}`G5`nnc|5H zpc`gsbIz%HIwaWE7^RN9HIys{BNu2TU?xfgoEAWz_j#-7n6O>ltoOuKkd{oA6j; zd`JtF6AomBkUP-d_I`A(NPF;URN}MUOFc7+X*XM7pH+wsEpx0eJgZBl47s@*BP!1^ ztfM5S&He}yyOMp}!_LzhW9!Xf$|4njKLS>+hLdFdhRznjl}*t<3I)6H26DQNu?0;} zlWTF%o8G^QgbHNo(b#y|Zsm&Ybi7SY^`jk$IH^wT)5!Ay)b8X;k}5n)9l$A1e0e_# z?I+J^u6#HA`>f+~;mc042Z$nc`)}h}t2y6U`)@zIA4J-Tgkz)lrQXhUziGVXPF%^^q^z7Su#{yNnC&_LTlYc9g+g&qY~zg9Rg!0 zVgjhq{`&?-;p)2#&btYyw#&a-_HsNH*78>@Y8S;6 z$fy$pa({L;pCw&|+6?Gv(;rK;0hh$bFWbIZ#FNDoUlTNjTmnsn;>TmO7LidTw1Qk> zRzq1F6O7lA!8Y7X__MTm?chrn%GqY*+j-zcvC)Rl6&uN-Nq7^Hd5`hSZed3w=%R( zE~AS|6Un9dk)9H|L*|}!t?W1LG~k0wf2!bBmzqhqP>iWPkxUBo>?)>09Ssdx6(fVk z8d15*r&kyb=*$jh9wXxl0YkTYSPKe2MGZcE;`=TqoOx{$qz(g$dm_%kgy@WJzaW=g zG#a)q6*e^lc<=%>^=uRt13<-B!6Bhw37Q>rKA<2{0k{?`knEYt)P7|8Az!=+{z%WZ04 zx@K=U?OxAJx$_tl0@yw}Ph3y%{`k)HOn^O*c!#9>+m#$=Z>o3|irHL<(Gip zzV_V;hq6;uCt=>!7CySY3HaZQAWRM2B6nvh69Aw&PdN)fr3(EWf#q;XlQ{gDuE8Q2 z&omnS?vM){u9p4esTd{ivCP_fueY7{)#41*U(2`>nGb$l?%Ac>X(ZoCoH&fx?5Klj zyMab(!@&1ryHRK%4CtRPYt2C3^OARKJ!RY2E5_n+Tj$*U=w8@M*;^LgB7-&$(u|C^ zJM8#!KC{>7$QHb6ayK{xH)zL;*HJ<|Ba7lv4U9_?&lz|5cHDZHXP?A5b@=KIcQOmP ziD9ue0gf$D3*|NfF36n<RExY&LQEnWDJw=&6U;mqnL)E_C3 z7Zr%7h3A>_CFl2;Ap8)hWb{q)b0{ek@N6{8!pouJZg9bgDQlr=03A{AZF)?1His^A z7)1!AqL<&RNq}ISTqQ|HAG?jXSDnK<%y%RH?io>r=>WS~R?(dBPxLYKl%`w5@98TU z+6kMG3p1m#9b8ElvZB=TFYs6F@B1f*no&R*v{b$X&QKlu@hP0*JZdl!U>hDsrtgkZ z^gIojJd{n(yl*5O#zNs70y;IABu!2r5O$rfT{qT251||NO}vWIOUciYe|YeK6zo4s z2t42%^9-4W?;WGffqyM!!t#8duie*;a%F<@y#)$T43Q_0hLO$OX8iwy5UPGuaZ() zCE$N;ppoy3s7on+0&pmZX;xH}6zm&9`u}{#0Xk9Y7b%UG?39mCJD;w>F$`a>m++Y) zC(tMma8Cw}yzUrD{O2?f7DbrNARi&8ib3O>jXd#734(=_5Z@3R%)x`7hQSOc-7~wfQ1a z))^y6Dc|Hl$OLkvnOx{I{zf8O95=GWYW@O-f2$Y${;#7LK~OlO>L^<$CXX$qjA9gJ zn1Y>JKvZ;qFLq`-pA(S&KSOV3@4CS7OqNpef2T)30+nPXWTWq<7`8Yip#BCwMjLwo zjkC}|#t;Ll{>2S77zM})*Tm@jbMhl!I~N%aKcta`Q+9tFGr5;tC9m@fQxfp6jqAeM z)1c5}ulpI6<4>dMFNtJDKyxxKe56PzELsB8U;-QB0wdmBY@U)my3)f1z>?Zq zX@3G}t!nl#JF9O|doRn6WnNLqp(9fKjk-gF-SEqfOMl_wsNZfNA9Qw9LTC@9t80dd zi{3$*-5HElu`19kGF0{#L@vBt!~4 zC%i}wZ}m4~gAv$kx10uG^cQ;`6-(i#E2hJTi(>=*Cl6G3@Jdce#5Edx-UArWmTrl-hF;utk0Od)kbjuDlNNJF*=D zIrfsU%=;z%6~1X44uJSej$tI%k3q67HjvE9gM~fw51#{RNaq{8h&aq(EH28x-+CAra{&yMEz1et-Iyi7D{fGGZLiqjdeb~i=RS17EG$Z@GoU`XhGm}@v&d~UyjBascx?}wxHtM zcAxk0pmV{+*H)(kSdJf0AH}P`&1@m`F#?Jihzu;JkFUM>McQ-df6erEnlVw!RiA!M zYyitpw<1F#eNUpjxivt)Cw6;w$kfs+On+w4rChfsrT1N&ps(>BKb@|H@E97y2a@l1 zp2|KQM8;jG!l__CHaYFiE3V!i^x0LCF!b@P!p9u{Rx*`9l>Vxee;a(bC_HmlNj9{_ zrq7-6{nu3!^upG&;d^WC&NCM4nDldorlNNji#seTMtmOK#9T`l$h!A}Ic)mBG70W` z#$ngDs~%K67=E|3RxI~J%8aB%b$dWQTgM7cm95RaLu;VBRZ z0tbP>90=eSWF^{v69mG6%nXTkVXjMg78SDfRYn%qyH|25-5WL|L@Dt56{2u$1&)A* z1!5S88gCP5Fo!O52r6AaV`qoY$d=FO9XM1NI1t}EAZ2~U+c0fwc{H_cYljkxCWD|j z5EwyVVkmk-oGD+q(MYN(F@>3HiXi@8iXEY%&qkFHmj52-v5s zv1r@45&7dNk*v^=rSUuq8F(ZtCYYoW*2Av75hN6zuL;#}Om9 zEHZmq3I_sSdJKBEDY+@;i%#%@F|hT4GMLgi|A7Mje}IK1Qc=LCUo5g5f5kDuVwP>{ zAGk#?k3bCDVYpt8EXL5x`p{~VAdYwo5PtiR2KX%3Qsc`ebbka10=_kPQ&091hUq#O z5J!LSbYi40D{ht*izrD=P@8Y7G_H``pteTxCKG42Yl4@;^nE6`lT`4w||jhJUQ-AWr-caXPoZNx(5LP;Jqu=Bw+V_e*KipT#WMi_bz&J3=}@DTV^5K{J}e ztw^GqSWjk8^xDg}&#DS#%3uRL6eR_vM$9pTkI#3Uo_H?92G%u&Xx_h1H%gNgNXG!U z8IvR1Yvw@iD@w8E@q~IPT_|``!wvIJ8@m{)`JO+;ME%)KYTg5IC;A z6#85og252bCqFz_=YhZ=2#)J;C~id%+zH}RSIGaVD#)(evVLfDND$4&!-|3BLR z#o;V+Tx1D-?LW3dvVz=GfhSOppUAT({%Zl|(5p1w-CwL&0`Gs#&=mRGO*s+}lf=7b#?7lX+>FxZCln=Qt z`qzpBsf1wR&fb~ndj!0D;W3WLrE@6xq|fPQfOEN9d)`+Fio+kFVAV^I(^Rgtyq3CM zR|J;NiKkfshX|Uky7I`&5%tDqPIS*(@gT#J$+4F(ZTVZNi+20F+B3WEyQ>|1ih($y zw7wyp?&%XJ%`Et`^vnqq>*T8 zr`qb5R=7Jpboc5zEtr1DX~{zniWQRzmO_bb20 zD-`G6l$PX1U>s4jBixT8$Ho$EyOf%r5!)=3;Gz5y@|Tt1bF1&|G`gA#v}vU9TNJz*_bMX2=>r%igW4Fo|W zp166@00h}U_hcT-tW&BJWwXq!M`K`AR|%cP`TUVD&%4Q{>qmXec7Im~%4*MW4g)4Q zPbTDUnYV`)Z}ZH4%{EOq4D-7>kjZiR<9uOqiM})>w_*&T-UaM88Z(wGyP}ASnmCDO zvs#`p5Nwt)AFNYkRp)ADg;+&gX=1trfNdE{|Jh|4=Nz=sXZsZSz9Avk&LsJ#1O4GF zDo_!1yqWimsCytnI8hQraY7m@5>SkHhOBcam9apJvtw&PZnXS4RFs|{_gAOQ{HxKH zAa_Or5MDFo&@@hs@X<2-%Itm5<2`55F5w%)BK(J|cpP~mz85bnQ1K1<2af{|gM%;O z2dKFC`VT|H8N+jPN0C2gHWM|hp02A;mwskU6lwm(*lx_Kz`w^l%|R2ecqJh6e@3$9 zcaH@vM1QC|@sEaKTDBK%vn>7>|2muk?e|gPk6fDFyo|)5u!4Xx(xK|@;~9Zbvqy2` z)rLAck$vP)$+1u0W?tTfP}Va_Th<@U9bBN?S?C*yTpGOl!|@7JY0xLG9g=qv1Dv`N z$wp3cj)WI9c2eqbK9CK}^H3Fb;*4w7$z|ORxAq$?VowE((poksS)C&No24GKqVUbk zOu%1qB5sd-UkLN;dlg5syt$rjXsG#n^YMa@hJq7cRKESlROErM1@f!6-s`SkW!ajM zxw#1uq(Gib0e8G(yzMz4FVceKJbY$9Ys8QzhdlWrT%(G z87*+araH>gJ~h4Y`Lm*)=Hp-wRF3px0)kM;330Lhk+k22R7iy_)QC z%kUulzGu3FxcA_1EG4YP1HSlA7Y_-1%piQnkB;r1d07iYhA|wvVE)c9%Z*g2HcC8s zPp~LzYerdbJ6ngR8K>a1e;9sQ7UxPXFxI?Yg~cBR^k0nhT=*sEK!4WAn6W7ml#G$@ zqZX{z&x+o3#Brr1)5}8pKPuKYIhcz2;UBh~zTBws`azwQ51H@#a%JAje9w{*EO|{{~ zdyG4yaL?HX@=;FWZ|hES>)H{DDxGVw^CvnPMq&-7n$wUAmN$bAA!tT$$m=)|bRBsh zk7Pki4(fQbwUc>aAf(Fe{3$|VKDo?x=K$(l`7f14olWepnyf5f|HmoimhoGj5|;Eo z6}6{HDcq76OyjMWB*Vm{Q#x`ixf};GMt6L7!UyLs4}N-+?&556lio_94uLaJ5VRwW z+?M_4aYS?l&#ec??T?;`ZP`8PBLA`lCiTAmTH#&D5vciowelg0T2*QE%K*)h*`SG6 zCMwEuqCiUCx+k?`km5U>PA3_zTV&4t@@wpK{jrKVVsHvSB~0pq+@bo+)`?@C9t<`W zkibeJW5k?;#g$N5|ABYN16{yWbs&7XSxCd#7!c-qUvl5INmG2)#8dav06RP=#{-;B zhteM>VOgVrj?&Hf)WSPDle-ozcQ{aRc+mAkO1HNhel6Q=-PwTKL7zwVE#NgR_*SYo zf;!d%uIC7%RQ9zKjKL2!TFY{pv%U+6y2vm&PH$g#yh@C6qYYKGd)OExsRIs16 zoTAs*h-AQhO{qSX#{@%szS_~bVJ3J=U)BXIv zIUbB5T~w7QeB>Rh_R-QMhU{f~U!3CjuqZ1pf+fXun3@V_! zcvN7#bo*9qWcZKmXz2PZPuZup&R6t^{!1=_ZcDw-Vc@mcUfGAe)2#FNN3SS5iWa0M za$H9GNOIi}6ru@9Usru3Yja+(8Gjg@6`L#dax z)a2Xlxs>P}AIrhe9hP87MK6cDjX|P1IuKeRz#;B0huTtk60F|_RlUzFM+HHS&!*4U zzh4+p`Uhi%JrKgtBNga%gHftO!-w6$jUFK~538U*8U>}@N%p#5De0ir>n(M^(%$A? z5mdG6>wrRn5Y;|_T(s2lRvJ}NXe$1W&qo%j8kocO`%X4(h@JPs#J)~{G4D#xnbmJ- zYjeJ1Q!N^{Fl6e%_{RWSD{6H6oem`@vB60CCW5AuY>@otjlFRSj4{!C$7;sQc0Pd? zZhZ3Wm6FVqLkPRrxOVOHw=;8P29t3%Yi@jSaqvi72FEPJYv&u@itQ@ER!-xCbAm#1 z)wv9w?<;$y)5V=j?77mVHr#OG5TwSc&^y!G>V4G_bvZaDGqcc%Z~Sn=`f~|~978nh zNU-_WtnMj9s(9#!)4$Mgoi%t!_zgzcEQ4cB|D(!ap70_KYH?<&n!nS}{K5TyP2PdSU20{ggTYr0RGpB_|nmmh-&k}evWh{I#cUzV`Sp%MI?^_sW) zPeX=OZTPudmgCfBsms`V7atyfcjkrl&c(AR`_(@F#~cLORix>G z8~)04V=2_trW|M~AM;6cx%h?<)&ElCW4^WldohxTqu-Wi`IUex%mEe7uF z`RAPTL{ty!qJuOxK{>2~H&St&<)ZT71lWCWGU0))1s|TsG$QuBM_5p%eanP7lSF#1 zs`kIpvl(&Z!rI;<#|#uDa;&S6lne@0z-1gM6bGS=FTy)A!;1xS;SvTUzhMhXVgl8? zCt2oQ7@mmt_<-yn-J+PQrSj2xH(x#85LF5E3V-R`boF9(ba`ssEKf6uKI)=~9+5L& z*k;dfhc1Qs4*Tu1^*|XE5}5BLf>W?7Ms3d1rDEZ=t(BRhFV=K#GQJn3_%2q487fkQ zp~a&*wJBPw28?dAg*#k1pNjSu+3{YUVt5P=jNO-`VZuT@yqcIyiPxq;=*IoOS8XJvah>r3%B51BA0&AjFMyUtR z&$IuRuSEx1Ea*Xcql)t);eyzpXXR4B%-d#e>ddscOdS)-HahJ4%)HA5`T(0?&k?!% zB2};LQuC*c&ur}-y;R@Lct!VHL_ii81J%Qe5tTT-ZsdD)+20w>f}5UGgdm^r5c z;@co_(!!~SIvI8v-%8%&Tr^1G2OVvG2UxC0>f>gOu_y5$UkFr+q9)}o>z+2H(9%1q zch0M5VLm03uTc)HXZ2=FP8OstzJ1*+=yU%as*pSVOIY#yWWJK;2g_wp9vj{&oU)}I zcaAc2hA0VYX9b+KuXS_NP zAlCLFyynR?2)a6a`HTjbsm!?({Q>;!nF9Tfy9$;>ur&fk4WN%lu$0zu6*gnkK`H*Id8@*o@d#5~XB$6fylRuAN(U2O;)w*v3k#gp z@Xvuir{|)0wyIS&&yHMEULf<@cP0g1j;*-e)a_HdZ&ke;p?lWX@U1;!5eWR_U5u8; z#0zVy-hG?VpK81ki{;g*sDfpuS1bxhh$bFE(INn@C|kreqvYhe^_ep#G$%e?s^E}t zA%z^ebRa_~d&!B*V>;-`+-a18Fhm(3A)Rd=p%5qnF6V2@@2S>b@u+9(&t1Z=2%AFL z1pSXwKxlaf)5WWB+b#BfaCs;GmcT>-oRrALvm6v8(%&*dtJl){yMy}f;^{CsM49fm z>rV~L@9Az6*`Xj92Y};LDB$(ixk9J_qPO1FLmo9hZ(R*umVc|1(!Uxs&UB5*yj+)S zQOYOaK*~%}K$t6{&8slw%2Hy%N6-9U3fC0LHXC~>e86efEvLsKyfe|6rSbda<4D%5 zO@2^0dxR@4eNB?%)cI(V0+9p4|o3gGj1vde3_HJ*|r8_v;XsY?a6Zb&yuYAMT(V63N0~Sz-O$el<*M99b^J zvMi!{pbWGl+VbWDSaygHrvJn>^G&R9--;B&t-DwGq3h8fwrza3pGEu`c%=_oRjVj5a{=h2iJy#+N);&oxC%u4q#qlvqksgDG^Nz4eH zquDsFW#MC+f@J?K-0Cqaa^cxO<~lF3{N&$Z6G|3jxIW4Ccwp_`xZ=-$bB^6!Vk&?j zV*CVb@Yq2+B&3M1r+?Q)H)0pclJ|%er^TA5T5zrDJ{r{!X)C)~yxJO5RpH7+$KxkV zi(54S+J4wZ3drK=W`r-lu_tU)-aOj;(!UYzj_dRDy5H# zuGunQMqEciF96K|(skE|JZLPLF`ZE#Y7*v0$q||pZ0_r@X3JX8>Q5S;&4!&H$f0|m z!4_JSNI_3QW?sPd+6_}s^D0=*VtwmqoVfgViL=GgX&wUnvj6O6V#luV8P*${5k9=W zy(Jka40H@aZ^^m=jwp|Ov}H4K+WKis$5gU4eWAAaO0Y%PqHLB?UC#Zh)FbCCLJdel zkeTg)-JKcM5A|v%QIiuu85@MSy|r0=$Z(XH@;lb=Go{D#@J;25Dhamw@r2HxZc&XX zxfMB7^B*{Nuiaq}jXFzw-Pu^LtuhjMB-%bE#l{9L!+WOOnCo+`%*tVuodQRTY|Ja5 zRI2W6);!E`bK!!2$eG_z;&RI0$r0rv@*0rTAv2wT&nFaVT>k@*FX#Dt*0J<~)o`KQ zhOY}V)j|oUZbYvv!y=bx(o4^lQ@@PRM<)V(PktX3g&d~4%x*DTwS27~-hX5;7*N%}#Q5=SSI$9S*03gsKisa>lU zueX32h52hcs%>*=>1~0o6Ex-z`{S=~H{7gz?eevr4NaT$fm=8!PKbxVc&-cITqnSk zAf)G{@IpnayS4dtZeZI#gOzJc;j7}!~!e1RuFQGn|5v0r(Ri^(bgle=n2u>Kiyjp}BG9xzQP z#Wwq-DGYjFuAo}~fK^N72Jzf2!7=HN`3%lg-~i>IVGc|gUH~i?A=4UZd8e6u$pKK9 z(1aU|EA!;8w-P+_@#nAC`ra?e>mh3Q)Q*OgSDhAz0<|sUh(Yb@(49i<>c{KlHNu`c z$E4v=Eg{jqdT}|L>2OF39}`_X9TE2j5V0Fy$?>xXmqVEwT7#!sLd6`xl}V6BB&3F) zjTxajHDz8U0<8XcK*EqmT4JJ_3iKcThiA}Zaw}7n60zYY3={u$<&346<&g2rUWe!0 zH}UQ-ill2zClvv_x2&Vq0C;I4dnzkI1}yP}KK`YqCS~}AXs>G!+EqB`Q`32L9Ju0h}f};n8N(d4zenrh9rKW?ggse6CIM9N;Jp zcy|L-AHf6~aiTLpmMO-w@9C8!Aef#WYd`>`={2%t=d|<6?au`5>S&<|cOxA@te}63 zKQdtyI_qv`ea8NQVZ0*W`4u~Bn`K2{&Sw2oKcJ2_L9#7xmPs`TiZAWsDu@FnHPcGJ zKp=%cw1_`^9rQm607wrf}wFB3;4Wc1HDEAL9HG5eFlI#Zf^m$L8go|8c9PH!b%hI zj`VlFs!)5};Jx<@Xc986!DWssnz;X^6i`oZ3xM#$M$B11=U;ED zgdQ1eo`hdtP+iSxu@}(W4 z2kS*|No&lKQV-0`7y)2C=h-U^04kkeU5e4h!K96eWS9GW?&=}MX!z;SBPoCq3=22p z1KYHSQbZNbRVk=5FlFsSOQ${FhaVyb-6C4(ju426vVo2Q*i#M|0`{!s?X5j7EEmV5 zq3b(Alkx@RKG}E#Ix6g6;#~y6HeVdLw~P`b4tcr$i(3)?u3M^ zSw{1oQ1&W|?8%od2>+j>kw|b`SFItnxZTKZR0HuJQQ+tTl$K*R)bO?Mf8A=<$lml* zvd4Y-xDlBUQnMOaYWb$td&DnLwtu3g_Af${q2_!$-!3UHMu8xM45-rta z<>;b|?>ao_0|^3q_{fw>v-}AsvCL*z-6gfv{66}1$a9#e+z)r`>1)$($75p;tYyM* zoBJH}x6#Jf;TkD`!Ua)e5&k-7yk~r=8y*aTlk;{Kjy|wG@+SL?zCMn2>D!#jdzHKa zx0x!ts+jp%^Ac~3X!E>j&1eH(91zI)!Ip0{$G^9J)O+XWmaxvBpa{Pm|MvT4J*}v9 zaj}H;CjausU)^`;Gi$kb=mS3U0w&vm21her0j;ZgOxhXdFX+y1RQ$%{og+j_5M<-g zHddyjccwt$_XQR9+jNI6vKQtYx01^TaXCj+z^=%eEg^-#7#=Zkv*iYSBLQ>ihFIDi zQmM{#df+ug&#R;kP${^BR68?PzBa{=K+s%JA*g!#=PL+=4;>Nr7w! zV+(8z5UctO>yn@=X9hn`S9i-#c#J^aSe8hqb`{=y7yLv9j)uJpQRbl%{(-pS#&o)- zCuKgoxJl!ORtpVxx@d5YIZ+U_H(C$9LeMZ}-_t_S5y`aQtb&R3W0SuatS5A<%HjIk zpOeZtx@#!jGol8))Mb%cg)Tqle}{&j zzb{+s z$o5KZ;9oxQ&nKS0>)s^GO}RqyWbHhA3u~@G8vbTDdz}PD@Vzw41KQ8WZRM=!LO4`_ z7~6B--yvQQeokwZBol*DAoGZslvZ+xx_JB4;k~`U5S=WlT_$!)=iq?#y{<~|5MxlRa%qNj7{zI41tQv|4jF&r?(F!wOHNT3p>H)geFN{ z$$eWfT#Bruo^MHcJI6|ZTL>V^dqmIZO!d?i*?CsvcmagpVH;q$-seA_+S@BY-8^2k z4}czlJJzvZl7NzH{Y9bH-Wz*)Tt-ZCd3ufNA|SicRDIxj(B2l$p$Fs2esRY%Jh#`d zka0L+LBZ1Qaf*%aosCQoqrC0bpJDGVR8LyU+TuznZvqoWsPD@-5wxlM29UpJ^dS;3 zbbGmZ);SeUSG41%eGTgNpW9fPP*I-hUj-K?k?YLXt-saPGtTU8jr5hez|nArltVxF z8d@OAB!VrSEeH+kQZ;tstnIr$192LmPKs(cb~~cr3;3tpd)m1QiAc{fZRogDxRl!U z#)UgjGD_z`g38@(VdKrcMNp=MjJ12m*tJnB{d$*!=ut83A73l0e?UH++^KQ>wR>$% W{MS~*$ZOy-8_3Ma%CJJ8MEySunIs8L0X+T*>`|L_02&+{c;a$om#o$EM{^SJIi=B5TLOuS5VbaX6+7tUMK(Sf0K zbRc>d@JnaP`#znH4nt>nUi)&0!*a1kx=3G^{wwal1a=8&E0Qw!x?rp%130{rLHyZE zF=7`zlDWjG7Cb0V*YwP@?N`RIU^~y$lvYiQzV&te=KES3CQWiGD*JmgzES&wvIjUi z@Mn&l$@ZhrFeqINZV7Tk-C%P(n%9bIx$-{xRYNduA{_)n2ZG@!3g8+vgY)HuQb=<9 z#;W7ED|Pkw&txfg>!;9D6oKQ(=%Y0SoFW7SvooN}=s26d7xnq}KL_J`+ja}r0)B-b zzgs;B6lr;S0_+&QUCRI4q=LpYNh`DkB)_krESK(c(^S`sYXX&V9wHk5rjVtDonqUqafBX6D7)=cP#P&>ZaW!A!Rh+eW#s^20lF&|&jCtnIvfAWgGra+sR1Jg)dvmX|O=)L^~ z88xa*FJg7X4n5@Cl+eWlMsyE_>4}Z)%T%fbA4Adu&mIbIh134Eb^^TXDM|#`>SCkM`u6h+QIi{_p z@?e6~@rCB~)8MsG&(N$7P#JjoN+CS5$u?MODv({xrd#Hu`|e^XIZO6^MI)=j8pO`o zO~AQcQMfv@?D*T(7_2B7vfUR*O=g_R3pf73CU3Uc8MW|E4ylibo8fq}bt6uujMB^f z`RWYi89Op4qxZHQ-I)m z2z?f&Pw*sAl4t*uap9qR zUQ~?trKc@vwf~3+DltX4d4)}QDTajC^gh2>B=yg!+Iru1cdh8fjZ1|!o`dv)#jo1# zkGm3AZ;Zb(cyurL?96EU(TZ%emffvT3G{D?P7G(Ff30Su7Z3C{4+F3L@P-9}&eiE{ zO^bU^Ya>WTcojm%%JZTV`&ZXyja%2Op($Pb56(|?oP@T5i>q0nz5hv*@=jd zE|#!=+LqI{k}?xW4{O`k=sC=LrY#;vmYI&xEa|-Vj5obJEN0#j1hYh3hHg zN=Gn+?dFY=?QpS7vvVHmNB4#e8F^s4&E;V9%(3tfp4TsQk0K$b&mgvfZy#Sdo4kD_ z_+xeIM%l8Fu-ju9MC{f)7UiJp)aRAYLH>#Qsla-0S$FY#my+ctqd`c*8AO*Dc9f)PGesOC&aeS zfJ)un1p9)MEd2g~`k4(vHh2G!&kx?A;1fwR$wwL-lNT*a9&?V4o)LD7P9tAW067i` zC69VRa=&c-dYn1(=#9qh$+NO6-ur^Q^-TB?_)hC_s)~(aV9^=uukcfd*c}VLh!Tg9 z58^WX$_T~B&%g3~eR*vs^kiv=)LSy@#n@clMBKS{x&w(v@w+hyB)XVv`S2lsNaboK z=_N~9pi9I){24FQi+MsIWh$z!-+D#k-Ik|TO&D}wQ|qD16oOIfcH~^t3ZCo%85=rQ zL`@h=$sUVWbj%aJ*k1c53WEV_)i;w%EzC4~!XKqog*#kt*eZ|es%-guzqXqgzrDH{ zQZJ|J7DML3H$-4*FBx|fU+l^ zXZL5jCfj!@CtxJ!@B%)^77;20Hg&qOvh>F?zFVdSKT-4Nb&UQ#rk2NbXfLkiJFpls z)@xaCK+VP-D(WAq6ZFENlrhD zBzNBpx__wqJn|Y6<>bQ8c)_6QkG2M7M{MpZCt2WWS(LkT4BhTtW-VBBQxikB9-}WmUGv^%nNzAG&+6d`Op9wl0ZeP*HIdt9Gx56sY$(3l3J$r1``smwwS5V#C9s9;m5NzZG>m**mA4Ff0V@U3}xH!Ti* ztF^{8z1S6Zzz0LHyZX^{7q;G`vt>}Bf3%B*N&8@%xo=8TUwErs?UiFJyK$A@<%yjd z3_&pV|AYqE3_ctdVeGKk>8^L4hoNq?y+Y;au=LjL>ZOLNn2MV!FQ;VPq?|)eoWa3x zL~F1yDB&!Z7}s`4RW8-X45gYH>)_t25ild)oG4YLLkC7y>SMy0+z_)qaY*qVuJ`%! z&kHTpR$v+0J@0gbU^pjlFw?uQ;^PG3q;W~C985hQw=LylkwCBCF}gATdqEB{kUgUb z1K5QMM^eRp_WenE=wYPH&We1}WUxX<(}~MLi*wkah(t)Q>(GNwNFFdUCI%)>@)uEF zhZuyO!}76wkJ{5%>~v{p$w zZVl?DSrqcTh+j>RkV9!^0rnwZf&>`Ne#*xw!_=7{hBK$<>P36DZrT>mg(7~fKT@Hc zvH&?0Tg~989iNP~QGm1t#3VzV8%urQ`Hoe6yt8h&~+rTh=bT^beJDY zoHlB)v3z_gHk|#7!9a4zDWNy)p)HNFV2IEbNwz$m4suG2!jM}}++XXm?7PmxNXlXI z7BI<-kg&Rn=jn+#b>a6x(lQ)&2A*>9r=THg71gBojq*&`Eqz4A?WA8G#k=kvpG=gOH;m($hacGtAgNAW<|H{(@y+BitINz zPjpiBn-y7TTb>5*UU*ocm#(?-m_Q2Z^_)L__C}Kyc=msC(ulml+Vw^#kNr=skZA74 zpw(BsJo}^dpEAV?TF9L|x(d`?CM0kyH7v0#DVc{_1XZ)IRnfw)3wSK>U;XWdx{T!L zB!b;u(n8=T3L3mf!N;$KSJ&GpaB@atGIUt~X|=Ta{wo8hvuHJ47XT|ak%*!4nNg3w`*v%1W+KDR%~LBvGLVE?5!Tz>JSHqvuv`y!hmHoXZAggGa@cR zX^AinQ6Kl;B*_pOqORkd_{XY>qrUgJ4rNqla?;+Bg$qFid@OIhPEpA>k|S_|PXYn6 z`*mQJWH{_00tf}IT zMB;!y<|qXshj4)OF4J7;iK4olFFASD7Pg`!&cHJ_ZIo+Y{rI)!-W$0EU9$^tTHJDC z_#k2OjHl-4bnWN6bLE)sUKRy%^F1@IQi@Sj>7);T?U5>x8K8evKzYs{+S!?39TE{MS#UdEYV$ZkyOwV;Ryo@0HHv}gjn{h(N z`>TT9=#mcoOH#41=Ttjc5i>e;rVo%@qVmriEx{x~_#IKq0eycYjYS+&LX2(F(7lslmMqE=cvOE6v)uot0 zybGrs6SPQLmKC1SkwVuZKy%M$NW{4ZZirlm97e2qcNd>}RY&7q#Y-34JsdC1$0?A2 zp$FL$?|8W_eFPVFLh&; zAs9I^keO$>N#ecpt%4(YvFyQB)>l(UdSg`QBP7#!J7ZdC`ULS3_^dCUO_+}*N=;iI zug(x91J$X>nbN6~N1To`yhICL35KZH(=z?ALWi~GIo3h}tlG8{2mSF2s8X3o3=6Om z8gKcr>{IOTn#Z_oZlm>+hI{rEsDlZcgPGDs4x2~@Y2*9ep z1;GuUtvK`;$bfp*Z6A-*6IV1UaIJIS5aSz^nsEQ}2>y>Ov6lX#?b~{gF-;^WU5d5b zBmoS9sT*T_*=H|-NL{*ujG55|_`1AOT-m^4Mqp|Os<=6QG}e9I)cCb4y1tyn4NnJo zDNI?6YY-*IHwG!--s&ta9{r|l^Rjv^zbN+0KML8d%abcH27{x~IWzv>TNdo^M_Doj6;dXcWv$@@@24e&b(!~>fW?Omh07O`O! zn=+Tuz{hd)(pP5ZbyVa8%H~N(3 zig5+C9Bi=bX|3F)M;4Hm)YKU+UHo8A=$0Fezmr01(!Ygkb1N__19|KlUTe3Nd0Wjt zWkcRYRBpeh=+HnpJh>Os8L3vh{G{f1XV>@m@~m`@oARGC4uDO;V9`~b-rs@{p-xK^ zZM&HXNZYFI$U)$`Gg`f;q=eQ2i%yxVow_QSockI^N>1?>E3)d$R6#|kmS5xH1QJOB z6w2N@&|$@;TUnNj*{8_&;YA0Ug z2$?j3!CiIg=D*ZeBU!=7yLWLC;&nmaon@?J-R(tK*1K|UxGn%_#P=7CFci`JKl|CE zYne@X&hn{oc0V4_Ba&?JKu2Nd4Wf|@3M-i8g9m754gQ^+!Euzgf4^U|uEY1=G0ixKp(jqtMYwsZ=Ad?OTw)r1hsq zG5~!}uFqAKD3zu{^tBF|hBCw@q1y6LuY24hI~(?LE58pE5j#3U)_qC_bBb?}E2@pXx3$~PWLL#S1zTTPx7;0l0v_UloWlCKE#WR4 z2s+LdG_njcsrxw3y>d!1KVFR%wEi6}o=Ri@tBckX8Qjo#@~5?~s*3$0b_?kU<_--; z+vVcxeYZQV1`JLnI#XL&GwHw=k)s>s-{XiJaEoNAUWeG$+Wpv~6p6(NOIAWd+bNv^ z^GO&oqE`{9FqqR#_rh z3~!mc`(03J;kz)=>5cT&$I~u$WgLjxK4SF-usd5w%#I(MXf>W(4jC>{7SsFGRr{yB zR0F!s6=GQyf$B)pXk;ricMsG72wag75(XaR2vLF$YzU*RV`a9F_dg%o8qHD#du#il z4v#n2o4e58EWqBP{GxCFAkn#GE9!%Uv>z?Sa7rH6$S<*wwen0&zNm$If#OCCJVBfJ z8V(9m#5wiJIeqlNon>Ip-#np@^Og{waFS>v-#_2u^J_=q@u*QqvihM8Q64PKnkM0< zS40|(@$E?T{Q>vYDtSe|pR-0BNm5!c*j5thb~Ps`L;`q?Y{th3VOh#B>I^G}qa5l+ zzt;IUKZoX^p~X_jH7p%|7bg8Pw>LrO)XepQz~%T|afRu>?U{v!_QmYI+KJdBOG&p$ z%ihjSw+r5)!OHNPoPcoiFD)ZN@qn@j5tzG6;P*1uwc7J21rl{%O-F~eev)1M#MO0$ zcg7M~4aG#LaWDs2Lj|NDG*A_-&jx}88IkRe_v~%yOU68WLPVbby1c8B^1;9RKIpSL ztv|kkNi$%pWp+yb3^k!tpNACW?|Bte#T^ADbkWKw8KN%kKWL%X$bR>NDBx^4SsIK4 znGi3ZbC#&f>Nzp%Vk97p+e`t_-wu&GNBj4S2y%@<^4_w(4y!`Yy~~kV!pTZXU(Fo7 zMgJF_;CHVL;>Awd7~O(6z#t%X=zIEqz43!_H%{mAvvo_{bcs#e02Q;60#VJQp2Xdx z3Ge3jV~nH=8o_Tob}H{tv3Urv3LTZ}%dm~(VO`!(L0jfuIwOWJniZeOtRptl_xyz7 ztL@d+VRNCt8Q(t**JlO65IEdhJOWSU%1s5cd~MiQ5^zIs z9cBJ`zo;wDmdU~XS?J!)|2+a$z-CnmcIdtgnXp!TsRLznT4J+vBFOv}_@bkpSb)3H+&iDi=o z8=j&0-IIeF(*aYx9NeAhDnTb-YLeu&#`$H~?#JPjyoasU1x6Z<6~}}#9wa#*2GQE}!DU>?TrrZz7HHv>@s1uY75{{qlkcSyi3-B9KUFVO?Fd`pzD3R6ISXT$pY z;wkMhW?JN6IgkEE4pV!p)vqeVvNt~s)X47X@vKHONq)iD@d7h#AjODbC4E4@A4ekJ z;-4t|+P+h#uz8*?19a(M9&V(B+CqcZITyZfA5SWX{7QV5SZoqw1@|K1O-yaX8|NZGlTzRW)9y^lf>`W zGMmVJgEa#3imdRyZhI72Zo$$A28=rIO)x^%n;g(-OD3buveb9k7bsKj&pcMY70Y(- zKcrTeQo*tLN_LOLltQ}Pi)JX6Xv=O!L-TN-0a8SVmxAvsLVOrP-nrJ~Aro}^2*{c& z)?K5j)Q?;piLMJ-7J#)m>^9#`k@j-^-CuIaf2z*RKjr3e!aT4sCpG>kCys=u`#}&+3bD=)_@aw zlb+^OtRR7d%GeHE#t@|LPHEGD4>_m`{hGX?aCHFG^a2)D%UYq{5}R5E)%+kqg4B&q zT(qrmY~65zde6LAuwa{8-v z3=gwDV++LlaAfhj?ySoK5`u)+<;_4Zjv?zp^4D3qmPj_B6Gqpbwl+6O&gkks`oRcf zl{&1nn%3C8*?aZzjVGox&4OnAVI@uECeHjQv4W0#uDP(%s<@WT4;}zWf?zw1vAzty z;rg41J9wS=yirTElZ%}qL>?l|K4=fdK{)N2&sw-P+9Rp)h9if3>s| zJEX`joVQ4#jYCd%V)z)_sNqPLv8UTcC%D(pa_zJ<4g9Okh(YpQKrR;B&9R?O$_isE z4ALLCa{e6`?>L+Po2DUoxEr8BTX>xYpjQ}OIbqM58f)F4FmZ^6&MfA#1D+;uWXflz zfkRm%c2*>MYZ5{1K7NwURCu6Y2&aV_EVZ9zxcWtM>G~x1QTx$uk1)u#6k9v;#0VB!8S$@@PMBVkiM<+->2cbo502cDG zT#jjCNwl?_>luT<9x_nP4Nwe}K{vSy(1ibD`8im~X~HO%xx6SzcOY_Z8z#)@&44{BA{6ho*nfKyu8uEwlr*;Uq~b(FK5Bwc+sb^3t*| zio8T;lhXuTahv}aC5XZalf|auK`VDM)OX~fMhu~{?=R~{?Rne>1Rd5l zhPIvY^D;xRE4<2p76&Yj!Bs%UE|^Dj44a>PgnOJL4*~8QcQrc_1Ai4;0ILO1y%Vtw z2lQ=`6kCL2+rj$JPSu^tIx-tXf!34Yw6qgor>emfIN#7CQz8e9DYlGf2go(69y>|b z{x_*K0+Un;a^U)l#J1Ka58LO&P5`iGdB(Lq-dQd|kcR;PeJtK?9tTeW>n)1t47d}Q z3Cb6`>-+}~mgkvkO6&aRyj!gSZ>9-vPC zM=+^?s4F`?p2K?z?;tgXft2gw2~vaKMDle~pp}Y$1%;bnlGq{1GbM@%8_p>QTN%C_ zz3htKtT-c*000s7UYjb{A?cx!@!fU#w+-hFi6www16<*{1Dt`3gScc(z93O_^BM8k z{qz^(m=j~2{jes5vA|NGeV1%?dLcXF)-FAHF5YsW(O%IwwmEVdnB*Ft@`=!tQ9x|4 zv=r9zTzK1IsnpG%d7%iz@!|igxJfwa>1(|sF7(r{skh;S7&%~QNXyh-J$Fxdq<;WZ% z6ObEgUEZ9%F-bm*JP;8z7o9sapZ!G*cL?VtiY=2oq?_AARRJ0B41Zh|PDKa(U#133 z7NP8e4XA*BIz@T%lV!%SXMDDF={ku*_E-s8AxC2=E5}LPRB~5yZ7%Co7V$*<3cU=F z>`tuzsl6B>i_6pph{4WU4Ni?qL0x@iu;&tNE-RLEL!D^^@aw zGlb_9`i<|g2DdX}-&Kyz*pG^;a^#RtzGEN{a6~&U;xB`osCdtB2c->7c#+n{Gc9dpaDn zaz&9{{_-zu?RwP>Rbr)B|5iRl`!^2hP?6XtOW!&#M5g~D1IO2rm`h{$KPmz&cfl^ zs4;U*BmBAioCCUHUf-tA_{D8w?Cem(_d@f4@~fM-C&gTz<*%VrNoM-=_|K5^5X6@| zve(XpvbY=sta^3)Ij<|}Ig5`XmFoyz7N>vnhhp|;B1397$(gd=6U%TTEZtkk`vchYls9|fYGfm7?(PBeZCTW zZBRuixOp9Zd^fk>dT?Q}C3$>dnIez2?@VO_YBn_{75`fQi`A(&{g87XGu?!#R7h)w zZ-*S(t^+}PAU&oLvGu!uo3g^jV|Vc9E&QhgcnQ+lyU20@4lPMrNqqFl6>zhRJ# zb`q%74qc8XbvNY^yq93p04OYTn7<}y>>{oSq&=6Hyvi{VYo&C>@pLTP(wPbaK$r;x zt39bqIucBr5xx6jp4hX7*$4)FY}b>W4*-rKEUp4Gw&E(Hy4Tx>$pDoQ3{S1SlaogP z3K3A*tVnA7i|*+Q;Rz3Sl6D+L%TGAsiaG>iT^&2E-i+>D4+0L?4XO8&9H30kJyqlu zj2+xbQd#XOkZo@bN60Zfq4>6OsQ=d=!>~y>pgY2Pzt$7mgT$}fL&MgD-D zWh1D=)*KG{nUlC`TQftUdMeVJuhgZZqQyh|i5>wbTg5N;=>~S8rQ|tAG?vBl-TG9M zfJ+sJ%L+|E#|UIklD#ZbsUc*IsFHY#gQgd_+$u8|dHlQnNS257rnz{!w$INTHU;r( zED>Y-khX0OO3HI}#X?PP+rO`Oo4);Q`BB1=vV~@>QSYc3fAytF=wh&PoB8~5mN#`lQ=>0jL1G&gf_vH+ z+GQ5mjC~ZZQQfD1uRrsT6l<7$LcC+5vs{-oCxJGXviI)Kz4jH8_Lt&8@Ot&xn4gQf zc&lK(Z8}ngcdXbUEP308!Pm=Ya-6%bHEDjP(6h&JyTV7KZ~j)JslCU8?UpjJh*B-V zAxU4n!+yaSM>}s&c73#z~Zzn}NAsHQ6_XZk(sBA(uyI0H}e%6(s8(lKI6JO_q|s!4-6_}pk#ox1^=?J?uHRU4 z>Pxy>c;8D9s}7BL2q434uzP8Q`v!WU&&muR&W(HYO%30Q+z0=br<-2hUtKvdx^cOv zG3D!-zpAY{Ulkv8IQXm1V*B>$%%ZSy$>{$#Wnu)#7eZSno)dFKlQ$7sCb!m zdznqvoPHm^>Zl-St0ejN%ObJ2l)4O%fG$x0?A~7f&lbAA>~)*y8pE&#Bk63*ZTXe^ zy)QmRAFipicguxXF>bQrtKrgmdABtx1>Sf`J!rHIOY|6bcz)vSP za7-X%Eb>Fn(w{KZrG}Rd*)6tRu5wLBJQ|SG*i8DK#(`kRPmAl#Ewz^b8By&Dzl$zW4{W{4J|d@>-^#bn8lqE_IX|9>nQ>0}%y#cIa4+Y_exVS^ zjcPH!h6fheetkQ=S2w2}M8B_@gpFhra$%{`z%_BnPqS5|M{>;kGhZXQxR&^s5i#>D p!NH$G#lvy~H+lHeN={LaZ!Pmx<}8XV0Uwpp8S0syuhwyj{eQwbC@cT~ literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf6ccffaf00d96d48588a9326317f0a1a0789a9 GIT binary patch literal 11690 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

H~Hw`bb_w%X_0< z_nicX67D2Y33@j{gFolSFo zWNSNehBhaKBeC&>?qdxMB?hve6nT^A-@NGOOQ+Sc^nL$+@%HcZy36mxwY0<)piE_Y zz+68o5>-1@aV3z%Sh<`$c_QJ%)NCd-zhcWRPSGy;ysmHbkjOiUw66iiF9|~m6Kz(9 zKvx|@FS9M&7t>R>P(sqkVp62S`IYno`rHYf7>W&Kq&un5S2Nk;YQ}Hom=`=qr$$&K zabE-IP)fH%>+lUCuy+4(ts#wPlZj8)qgkq2jhEVtcTKJ0bn}z-lI)h_?4Lh?lUeY^ zVlYFH>igZ5mS2>bh=$r9$lSkAwDbYHvO!i2?`F8HqZ9jpPL!5bakAUZAX_T-+)RGD zgM(KuKGy=shAxOVA2rvv6U#MJ`zq5CW7U*Ymfv(55@LkLJFS`77)me1o76m$K>HFc zZKYXjJRm@36<+%_9T;h6a$qeic9e?Yxfv5&d?U36R}T6pSUyb;<4XxFRotoI!)U<6 zVWR9aPPHc#m)HzHVj3Sz@>*SQuo=-)fXYIRe1SbEfv$5Tob}miK`ywyg(_>WD)sE8 z0Yq8D;es*3%N-nejkjh@!t(nT^IH;)0K>#74E`6qjqY~^Z6k4O7{DkLUzVIA9I^fFNa?4<8(U&GI*V~=(RZ&Tm{F)4Z z!@f!}_*h~!_bMGdKkj@-FcheS1(joUrEmW?lM6$nL`S^l-|Jly`$DbyE>t3`wK>^q z^Y!hVUNN{-;I*`b>yIseJKz%=HSVOF33&yBOO(B&8_e3)J}EIk21_WLR4jAErAIgV z0u@Uk)#V*y`Hqgr+Cc$mu3hj%uKaf=ZTdqBQze>Ghw79>NCk3kKjoH3iR}Rt6Bsb7 zr?WD?J&MDK1`n8HaO(ZjGmjxriXIWrmeFgIw=COmRotJSs;s_v+EHMBM23{)@$>Yr z__q?oWdrlJOX_vEm%a7RK|J^8ny7I2H>Mw2?Ggm54=I|}y$B9NSNin>vGbS4(=#+O z{yr~yGx>NPl;%0*bdghhqQYGj4*g}QmBjYzO};41DwFE`Nt>W;mwg(#DUp;4pC1RH ZZ~h9kcg6gKfIHY!7j%rYOE7kX{|EKLC>sC( literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_yz_x0.png b/Saved/Research/step2e/step2e_profiles_30/set_06_terracedbasin/slice_yz_x0.png new file mode 100644 index 0000000000000000000000000000000000000000..5de58d51962d98993360c4e76232f3dfea852c98 GIT binary patch literal 12432 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 E1Di_h%K!iX literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xy_center.png b/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xy_center.png new file mode 100644 index 0000000000000000000000000000000000000000..243ab7b991e105549acfbf5f3ed56143cd8d8fb9 GIT binary patch literal 6297 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�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 YlvE@2+QvN{{Ny0!WbbBIV?#~)A4o43QUCw| literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_passage.png b/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_passage.png new file mode 100644 index 0000000000000000000000000000000000000000..4f33b1dad47ac446db6961ef7607064574d5354f GIT binary patch literal 7523 zcmeHM`9GBJyJyTWh8VkK8Dz~eDY6@7DKtd(ZAyIz*~!=+RLWW(WM8sX)(S(mQGAH9 zB>P&Hu?wNGo@e-;?>WDmf8d<+i`R2K_jTXTeO>SOeZ8-HJTb!Roz8uxE!gS3JbZN_?0nYgCqm2;>ulE+8p*rqYe)EB z+F`_5*x{cQQa9s7Xi(6ft-2=JHAon-AIe{DhMN_^;4Dxu$gKJ9c(z7}|Di8}7s_D8 z41~ab?uYyx&mFYaCtEJ!hA&F6_xLH)CtLcQMX?B@blaoL*fo2prmosQR1TJxnTN{X>;+{DDFe-o(f;U1^Ykv5r z)mPqE!Py4la8**f+&A?M0a5c&W-DTLzPp~&^RS_DL{9vwjkUnqzG*%b3g@-NEvF^N|5KKE zw9lkm$o6O;rX(|7zE8HZ&+9v?U~7AvxxA0wC3%|hUTBrMC_(k!wq)KkE6RfpU`OR+ zl?qv{{A}c(&aMa4(d*A%J9@d+UgYW=)Ny}9U0lcFx4x`imR?HV%jGLzND=f}Mcaqd z&2j^1mGULVEJy`m%`Pk1ayJR`W+$6-Vu#b&b%IuQ?eczTMHc z>9G$urCw)y3I2RuIk$XRLur8*pDk`3y{Y=`Drv?0gW;r!k%%Jtw#SS&?tT4= zuaHzK&3(^XPV^ac)`2j)zUHTg$C~j_jT(bxxbrzRUSPxKJLaRVW>uq zK^nL-SPw4z=H0H+4YBQIHe=%fS}$)nhESs$KyA`aEqOBjjAu~ zIVZL`uU>!ql`tOEg2U?U*nPPm)~!2Uq$*fl?_ofXuo{DXc^x5=8OqQpq2n;?@+@A- z&wNa5?P>>MZe>ffWrC~sA^BT~U^ceBJCM}fckUShq(I=h#Rz=DnK<9!AyPiV*+~BRX(T3T^mTo$*U{>OnH*YE zCdT#6dQTekQufiV+lN0M_pW@gcRgPvD5bVNypugD*d@Kwkdw3hlEYm&{X>no4)5Gt zlR~I>AHiM#Jhll<_+KkUEag>YCbMMT_|3xUIYaH=xvDl#L-!*53M&8nYJK-PO0#yp z&{lrj@bgH-p3arbnGwFpQX;PFZBY#Gms8<$GsW0RGc|^p=pTq zjS`AAKW*2(siPngq@#~45gRX$csMlF-n`#3zqx4jj65*A@WUT05_edI=^WI(!>PH# z`K?CZb|CX;$vbk7dz(r36(&QLt&$B5wbED^Th0Xw@Rx1kxo*tW<~{jwFLA2Vd;V+a z;a<~cSw$X~nn0ameX}C|rEl-BZq-)y6*@)<(TQ8C@+c%@Nnc}GnzK?;0`s)4bu^RI z+WuoVr;gyqZp7PsnqwkG!5t5{@;}t*IldUh-jC2h{L{+c`9f>v+5F9UH9}}(UeKme-Ek=@S9tgCJp(|b9esA5~h77CQSFK z>caOYWuCp*@wPorREU{b`7OHA>6f6>%XjI zRq>mpEz9*$hu0e}-pndF=f@@0R*J)YwhtM8Sau`Gq7^n%TdxyT7`ivbE(?jzFDTd8 zY;3Zp!DwZAWGkvPiALJV-SUL8WwmeC?`=y`xB1QDu7zP5Fh0xV@uSiQJc))=wIMOq zhD?l)CVp;h)H&2!I4lO41Yh8t^ty&dCp)M9)!7>p)==c*t7-scXkYdw(nddhS{`Bc{XreHX7ULO@| z`Msh0NmNer#g8irzx-R6La^^+net{ceN*EL%m^>POK5&g%cJ*RCQRs7HdWP3vnZBf zY*hMu*H`M8^ZIJZbqqhXP1>aU8&w7CIj{bgYlx8v3p_rtV_nhQ6zw^Y+y|=?z~^mtes0Jd*QGmZLip59{RQ%d(bN|xH`1>-YZLb zNA8TuYGRy!bbZ_T!kHzz6_5=RZ}&5)fKB@EcB6KXb_Z4M2RCO$T^Qr6Y6{42?mOwn z_uW3qB5e((Bs<-bIR$~ni5Pj)+|t_!$!s7mO|N}bw_QK{F);kH@cegPvH?J}z`I#4 z-)Jll`|<6-WpP{q3ePY{HO-Bu>0K3xk%&|)d+5lzDuh;K`(uXZLm;=6PtW%_Nl!02{LVYEB3uDzHX1x57z9x7{AsElMnnE;t2)FQ5_ zT7ZPia3)sGmC8Bo8ro=be-cCa zGRQtu&tr^%aQ^G?6q$DWJ9j?3Ys@M=|BCQV1e^uuwLt06bljj>LKK>&u|(Xns}{w8 z-3Sds{uC;feWtu~au*ou2P*bp?({P~>GHf1Obqfc!@ zFD+l79R`L_hlmMIuqkF99j)>>!)Jr5V5$5>aUzC5Cj2bi-6eA;I+7{zU~&Sfg=xpl z-$GcyVJaYi8qjP=l0I2+2Lg#$Ew-ROu^PgNIsa`Ipt)mO5_YnN9R_FQepjEeaa0e* zZ%@(;b8H#OqR{`DALKmf*AvWf4n@fp@)Z}@dRPxXr(_)N1NzN3KIKR_w!SmK85c`k zuTesQegOS^>{}66kF7-*ly=Lk`YgCvYREX~_o4hY?8Mpvw;OQI`XrE5(C`1l`Zvb^ zGg`#-@+R_Ow)m_-)4^CU@Gk_A++66}IldImfO#&5KxkrtV`z{_ZYP>!)We7`AUced zh+~{RZUH+20`~gZhqCAz4+kTk*IK&%)7Q?_4mDQ$ktB z!xDf)zrDijh8`Yt3uvg;rRdeTZW?(|=GQ#MEG}>M0)({?f0+QX+Wo&FP+7$fdYwkt zUGoPqKTNWO zjDFqxh)tTQ0M|(o_Hg0$#|CUKSffH&1@(9YQc@tm@1s9TRi*3~;f%X(YEzgAfk=&J4FL4p z_w8{#cTLZ+Q$wU-aS8!Q6FRcCn!TkP-{sDcCOa!g#8Q7PD;o-Z1C?ErS>v+#wX^o; zh6F4R_Vu&uiz)NBQ&V0d<~T5^2JDI*nSXk2fAWzAH64>;QL7Nj@he;yL?7q}mu7DY z0L)b}!(Q4WN7xE0qw6!Kz>PPLxNA6(((of#oQTni`UhuwcKG zU1w9w;)0kfax#S2Bj6`w%h1XRG8w=2PC8wT4a{N5$L$WcUG}n#ziYNTqNlU$iLaXX zmB#`<5UX$@*Kzt-mS%Hw+`N3`JC+|wcJ#Y+%}5B;G-G1b zRARq^L|-ARsORvX32|aZ9sL_{zz`e=@-<6$Frlw9t`^4NlEYp{TDtlPRiuLt3*yjq46fo#0}VwOsDNpDIAff-n3vXZ+4BQKUDjD6QdnG3 zMQreu-Z^aa4cSr5BI1~R+sZ*LgB8Iu#xRZrgG=B@RciKQIB zH2QoLDs=R(eT|8xjqQc2I}_bKQWxm3?NQCZIo$#HZ_!_*c!7X(&o?p*P~l z2MaGq&;75Beu`j;_*>q2ScI~(1xR@wtm$C?J2}*!|Fn3~TOmb%|387d)XF2DqBM1r zUW-$9iIzgTFxVBH%2L;BOM5u` z#4ok6O*vv{)tTWAj23(5_=HDd7N;JEhrj!EFCP_)&PV0iRQSWhfo2Y8%hME9nyPx= zoo&E<`&#oA1iWlFGMq^KeECEfT6iM94;Qfj*1~k)K6+5m4C#&q14v z)ak=p#4%D*F*m~5QT3`%e*GGDl(2!^%}FR^EwkF}xDL87AX=O>dHC7~`E2luIj*#j z2!<@~rv~6iF(Q$g*i$5J*Du;3jjjn`FbV-bXLEB(Z%s7CxD^s1VO4z$kQ>xMfYH2w zn3FDAhNA2jgR2cA;%al*DbHb;OQ2A?y)o82wuoNTK(p5s3Cai+;06U{^JYQ#i8Tv4 z&OS1xjDTVb2gUZa9*hzQHKY^N*UnP~$Is9YETBZ2Bq5Gd4^0MDIr)s5akqLpfKsaWi@F)b4|V^ z2uwpw3I;(t(YW{H$KcxGVad#FHI5Wc%rlA!2-pG*NuSqkYd*%SB*K=?YHO~sEbv>^tE?*3|b0-rtz-;4e? zM#mN|3*=>1dc!djF)u*6$rPLB9$Q3Jke8~L0$GlEDFf2Y)~xvQiG>Fp@ow8f$LzBO zh2cYq*~1fS6D08F*z$1~4E?|k^3t*tabnGZ6?Lw5IQqC3@sR*|`Ob>t>9O?%EU*6= z>HmSi00#yNIUF2~R^c`l7@WtC4)c?a&4{A1^bn{Ym;cea=ZyZM`;-1x_vg<6 z_J52}xT}y+*|~}?9Gf4VAleedH}wnC3BL9qzD>TxcTVtq2jVN2$_Ga}iQtrTlk$Dw zm0+qX-zTyjvqllTEKL12eMNOLHxr~yWW{k_-YZqku*sP@NyOwfE9 zFEa62Ye76HX4-G+y+4ZXQ_i`s59&zi8$ZLub&(R&y>B8O)W8NLN#>#sLdIyFPU>gr zkL_IYR-m>M3nnoWul$#~5E6ftWUzZc&^XxGSCiG}7tfDt+eQ= zo^9_<6SC<}Luq%c9yhU}ex+jY&#s5sup(ywt?1~ti;L#Cd2FrJ%8&xyQH5PgYxIm& zqWP#yTXkosz27Q+PqzDE{T0JK?J4xlPb@YwqpfQ~itRhmIk)EB-4A#F>}eb*2#W|~ za*~KW+U5Q8n2={yA9~)H;tRYPfwxLq8`zq$)qxOC0`Gn0s_FezCFQkuwsRz6snTx! z``F6ItJ}f{8>)Iu0wc2BhIT6VMu)_X_%-*8t|#Bq#v6letwUvSEy}|JkV83fFebt{ zd3mepUDMv?D*f?tQd?^=er)GAgm23(|Jco7T=?w4*p*BdJi%`6f?-{KpJ8b9#Uk7s zspa|R>cHD+ZhVd~I>lJOTEyc#upeGG^YLbbs}JVmJ}mDW z6BC$=Nk@ilpGP-`G6Q9J7PQ3#$PzSvZ(!9!WY*@_`Ui%#y&*ByZ9IC0IFE9_{Y;`Z zteOe2!Qg~T`3dMY*}(gaz_>r>-`v#9Msk z6ySerHuHqo1qp<~Jh>Dq;l+N`LtQ>h8bau5adi2Tf4xj2DRZ&3)oYzF6ymCBkH4hh z$i6(FenqqS^qENFR7{mpMpWFV*Gf7=;X()fsfR(}}Dez7Em{u(`_C~i2B z3OImu{IG0p-u9KdlXX#HXW>HR#pxD11g4$k(lz-ZfE(SevMQgbbQGX3m!T2kep z(he2M;U3Z^Fgj;KyZ+$5GeI)LXG*ts`>gC4wt2HDS9jhRnB%xvdmQXcKnD69TRdWJ z3G#DRgN16QdpmpGvw?4c*>hf(WlV5UQxv`|i{1bv_Z*i)nA{o;w+|<(x!J_sd8cE; zUr+iUEzksfYg`}^3@3%*?YhX{=SeR1@ubdoyp*;aa}KaxJBr7u!Kl|4Lft2W{naa3 z(#_;O>V2TJZN+R#pa>B~A@=osNB6!vEjs{xQ5dpm94$BBQ2vOSMpWzLVm1|u;=~D} zE2Ge}QU~f2EYF&>BuhEOC;4t12E{!8tgR1TflhwN0U{7B^B5@I`W^5$D)jZ!`E`dD z78V!uJbHe13_w7Ags9fB&R-{*=#k2LbG1|OnIYR2KZ;r-u9Wi+Fm;VHCC^RV{AjGX z$2PAu6_cr{UKIS#KEYL)yhpR))7OqEIn%D;Dn3~ll;2|oB+Gj@R!#&ReBC+9kRA0h z2*bDl7lZ0&&DASy%RHKP=>6Uv3{Nyv6s)nto6@@Ll7Hn1TdkxP9nlCR&>lXi%9jBD Pc}jIn8>>}z85jN^P3`j= literal 0 HcmV?d00001 diff --git a/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_y0.png b/Saved/Research/step2e/step2e_profiles_30/set_07_hypercomplex/slice_xz_y0.png new file mode 100644 index 0000000000000000000000000000000000000000..aa9a0809195347158fd7fe257fbd9046945b1c74 GIT binary patch literal 8178 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 GMgI?(o); Landings; }; + void PrepareParameterizedAnchors(FStratePlan& Plan); + struct FThreadPlanCache { const UVoxelStrateManager* Manager = nullptr; @@ -159,6 +166,7 @@ namespace }; thread_local FThreadPlanCache GPlanCache; + thread_local const FStratePlan* GParameterizedRoomCellCachePlan = nullptr; thread_local FThreadShaftEdgeCache GShaftEdgeCache; FORCEINLINE uint32 Mix(uint32 Value) @@ -477,6 +485,7 @@ namespace if (Manager == nullptr) { GPlanCache = FThreadPlanCache(); + GParameterizedRoomCellCachePlan = nullptr; return; } const uint64 Lifetime = Manager->GetCacheLifetimeId(); @@ -492,6 +501,7 @@ namespace } GPlanCache = FThreadPlanCache(); + GParameterizedRoomCellCachePlan = nullptr; GPlanCache.Manager = Manager; GPlanCache.ManagerLifetimeId = Lifetime; GPlanCache.LayoutVersion = Version; @@ -566,10 +576,10 @@ namespace Plan.Generation.RoomPitchVoxels = FMath::Max( Plan.Generation.RoomPitchVoxels, 80.0f); Plan.Generation.MinimumRoomRadiusFraction = FMath::Clamp( - Plan.Generation.MinimumRoomRadiusFraction, 0.20f, 0.41f); + Plan.Generation.MinimumRoomRadiusFraction, 0.20f, 0.72f); Plan.Generation.MaximumRoomRadiusFraction = FMath::Clamp( Plan.Generation.MaximumRoomRadiusFraction, - Plan.Generation.MinimumRoomRadiusFraction, 0.45f); + Plan.Generation.MinimumRoomRadiusFraction, 0.80f); Plan.Generation.LoopProbability = FMath::Clamp( Plan.Generation.LoopProbability, 0.0f, 0.8f); Plan.Generation.VerticalShaftProbability = FMath::Clamp( @@ -718,7 +728,8 @@ namespace Plan.FloorZ = FMath::Clamp( static_cast(FloorSum / FloorCount), Bottom + 16.0f, Top - 72.0f); Plan.CeilingZ = Plan.FloorZ + MinimumCaveHeight; - Plan.GenerationFloorZ = Plan.FloorZ; + // Parameterized chambers keep their profile-defined vertical span. The + // passage landing is connected into that graph by its generated anchor. } } for (FLandingSite& Site : Plan.Landings) @@ -765,6 +776,10 @@ namespace } } } + for (FStratePlan& Plan : GPlanCache.Strates) + { + PrepareParameterizedAnchors(Plan); + } } struct FGeneratedCaveCell @@ -788,6 +803,30 @@ namespace float SpireLength = 0.0f; float SpireRadius = 0.0f; uint8 FeatureFlags = 0; + uint8 OpenTunnelEdges = 0; + }; + + struct FParameterizedColumnContext + { + FGeneratedCaveCell GeneratedCells[9]; + const FGeneratedCaveCell* Cells[9] = {}; + float RoomDistanceSquared[9] = {}; + float RoomRadii[9] = {}; + float RoomHorizontals[9] = {}; + float RoomFloors[9] = {}; + float PillarHorizontals[9] = {}; + float FloatingXYDistanceSquared[9][2] = {}; + float SpireBaseZ[9] = {}; + float SpireTipZ[9] = {}; + float SpireBaseTopZ[9] = {}; + float SpireTipBottomZ[9] = {}; + float TunnelT[4] = {}; + float TunnelHorizontal[4] = {}; + float LandingDistanceSquared[8] = {}; + float LandingDistance[8] = {}; + float LandingBridgeT[8] = {}; + float LandingBridgeHorizontal[8] = {}; + bool bHasLandingXYCache = false; }; constexpr uint8 HasPillarFlag = 1u << 0; @@ -795,6 +834,20 @@ namespace constexpr uint8 HasFloatingFlag = 1u << 2; constexpr uint8 HasSpireFlag = 1u << 3; constexpr uint8 HasBasinFlag = 1u << 4; + constexpr uint8 HasVerticalShaftFlag = 1u << 5; + constexpr uint8 TunnelToNegativeY = 1u << 0; + constexpr uint8 TunnelToPositiveY = 1u << 1; + constexpr uint8 TunnelToNegativeX = 1u << 2; + constexpr uint8 TunnelToPositiveX = 1u << 3; + + thread_local TArray GParameterizedRoomCellCache; + thread_local FIntPoint GParameterizedRoomCellCacheMin = FIntPoint::ZeroValue; + thread_local FIntPoint GParameterizedRoomCellCacheSize = FIntPoint::ZeroValue; + + FIntPoint GeneratedParent(const FStratePlan& Plan, int32 CellX, int32 CellY); + bool IsGeneratedEdgeOpen( + const FStratePlan& Plan, int32 AX, int32 AY, int32 BX, int32 BY); + FORCEINLINE FIntPoint GenerationCellAt(const FStratePlan& Plan, float X, float Y); FORCEINLINE float ParameterRoll(uint32 Hash, uint32 Salt) { @@ -829,6 +882,27 @@ namespace Cell.RadiusX = Pitch * RadiusFraction; Cell.RadiusY = Cell.RadiusX * FMath::Lerp( 0.82f, 0.98f, ParameterRoll(Hash, 0x27C5u)); + if (VoxelHash::ToFloat01(Hash3(CellX, CellY, 0x53, Plan.GenerationSeed)) + < P.VerticalShaftProbability) + { + Cell.FeatureFlags |= HasVerticalShaftFlag; + } + if (IsGeneratedEdgeOpen(Plan, CellX, CellY, CellX, CellY - 1)) + { + Cell.OpenTunnelEdges |= TunnelToNegativeY; + } + if (IsGeneratedEdgeOpen(Plan, CellX, CellY, CellX, CellY + 1)) + { + Cell.OpenTunnelEdges |= TunnelToPositiveY; + } + if (IsGeneratedEdgeOpen(Plan, CellX, CellY, CellX - 1, CellY)) + { + Cell.OpenTunnelEdges |= TunnelToNegativeX; + } + if (IsGeneratedEdgeOpen(Plan, CellX, CellY, CellX + 1, CellY)) + { + Cell.OpenTunnelEdges |= TunnelToPositiveX; + } Cell.FloorZ = Plan.GenerationFloorZ + (ParameterRoll(Hash, 0xF103u) * 2.0f - 1.0f) * P.FloorReliefVoxels; Cell.CeilingZ = Cell.FloorZ + P.RoomHeightVoxels; @@ -880,6 +954,42 @@ namespace return Cell; } + void PrepareParameterizedAnchors(FStratePlan& Plan) + { + const float AnchorReach = Plan.Generation.RoomPitchVoxels * 1.25f + + FMath::Max(32.0f, Plan.Generation.TunnelRadiusVoxels); + for (FLandingSite& Site : Plan.Landings) + { + const FIntPoint LandingCell = GenerationCellAt( + Plan, Site.Position.X, Site.Position.Y); + FGeneratedCaveCell NearestCell; + float BestDistanceSquared = FLT_MAX; + for (int32 CellY = -1; CellY <= 1; ++CellY) + for (int32 CellX = -1; CellX <= 1; ++CellX) + { + const FGeneratedCaveCell Candidate = BuildGeneratedCell( + Plan, LandingCell.X + CellX, LandingCell.Y + CellY); + const float DX = Candidate.CenterX - Site.Position.X; + const float DY = Candidate.CenterY - Site.Position.Y; + const float DistanceSquared = DX * DX + DY * DY; + if (DistanceSquared < BestDistanceSquared) + { + BestDistanceSquared = DistanceSquared; + NearestCell = Candidate; + } + } + Site.GeneratedAnchorStart = FVector( + Site.Position.X, Site.Position.Y, Site.FloorZ + 24.0f); + const FVector AnchorEnd( + NearestCell.CenterX, NearestCell.CenterY, + NearestCell.FloorZ + Plan.Generation.TunnelHalfHeightVoxels); + Site.GeneratedAnchorDelta = AnchorEnd - Site.GeneratedAnchorStart; + Site.GeneratedAnchorLengthSquared = Site.GeneratedAnchorDelta.SizeSquared(); + Site.GeneratedAnchorReach = AnchorReach; + Site.bGeneratedAnchorPrepared = true; + } + } + FORCEINLINE float SmoothMinimum(float A, float B, float K) { const float H = FMath::Max(K - FMath::Abs(A - B), 0.0f) / K; @@ -903,72 +1013,81 @@ namespace } FORCEINLINE float GeneratedRoomCell( - const FStratePlan& Plan, const FGeneratedCaveCell& Cell, - float X, float Y, float Z) + const FGeneratedCaveCell& Cell, + float Z, float Radius, float Horizontal, + const FParameterizedColumnContext& Column, int32 CellIndex) { - const float DX = X - Cell.CenterX; - const float DY = Y - Cell.CenterY; - const float Radius = FMath::Sqrt(DX * DX + DY * DY); - const float Horizontal = Cell.RadiusX - Radius; - float FloorZ = Cell.FloorZ; - if ((Cell.FeatureFlags & HasBasinFlag) != 0) - { - FloorZ += Plan.Generation.BasinDepthVoxels - * FMath::Clamp(Radius / FMath::Max(Cell.RadiusX, 1.0f), 0.0f, 1.0f); - } + const float FloorZ = Column.RoomFloors[CellIndex]; const float Vertical = FMath::Min(Z - FloorZ, Cell.CeilingZ - Z); float Room = SmoothMinimum(Horizontal, Vertical, 8.0f); - if (Room > 0.0f && (Cell.FeatureFlags & HasPillarFlag) != 0) + if ((Cell.FeatureFlags & HasPillarFlag) != 0 && Room > -14.0f) { - const float PX = X - Cell.PillarX; - const float PY = Y - Cell.PillarY; const float Pillar = FMath::Max3( - FMath::Sqrt(PX * PX + PY * PY) - Cell.PillarRadius, + Column.PillarHorizontals[CellIndex], Cell.FloorZ - Z, Z - Cell.CeilingZ); - Room = FMath::Min(Room, Pillar); + if (Pillar < Room) + { + Room = Pillar; + } } - if ((Cell.FeatureFlags & HasLedgeFlag) != 0 - && Horizontal >= -2.0f && FMath::Abs(Z - Cell.LedgeZ) <= 3.0f) + if ((Cell.FeatureFlags & HasLedgeFlag) != 0) { const float Inner = Cell.RadiusX * 0.58f; const float Outer = Cell.RadiusX + 1.0f; const float Ledge = FMath::Max3( Inner - Radius, Radius - Outer, FMath::Abs(Z - Cell.LedgeZ) - 2.5f); - Room = FMath::Min(Room, Ledge); + if (Ledge < Room) + { + Room = Ledge; + } } - if (Room > 0.0f && (Cell.FeatureFlags & HasFloatingFlag) != 0) + if ((Cell.FeatureFlags & HasFloatingFlag) != 0) { for (int32 Blob = 0; Blob < 2; ++Blob) { - const float BX = X - Cell.FloatingX[Blob]; - const float BY = Y - Cell.FloatingY[Blob]; + if (Room <= -Cell.FloatingRadius[Blob]) + { + continue; + } const float BZ = Z - Cell.FloatingZ[Blob]; - const float BlobSolid = FMath::Sqrt(BX * BX + BY * BY + BZ * BZ) + const float BlobSolid = FMath::Sqrt( + Column.FloatingXYDistanceSquared[CellIndex][Blob] + BZ * BZ) - Cell.FloatingRadius[Blob]; - Room = FMath::Min(Room, BlobSolid); + if (BlobSolid < Room) + { + Room = BlobSolid; + } } } - if (Room > 0.0f && (Cell.FeatureFlags & HasSpireFlag) != 0) + if ((Cell.FeatureFlags & HasSpireFlag) != 0 && Room > -14.0f) { - const float BaseZ = Cell.FloorZ + 2.0f; - const float TipZ = FMath::Min(Cell.CeilingZ - 2.0f, BaseZ + Cell.SpireLength); - if (Z >= BaseZ && Z <= TipZ) + const float BaseZ = Column.SpireBaseZ[CellIndex]; + const float TipZ = Column.SpireTipZ[CellIndex]; + if (Z >= BaseZ || BaseZ - Z < Room) { - const float T = (Z - BaseZ) / FMath::Max(TipZ - BaseZ, 1.0f); + const float T = FMath::Clamp( + (Z - BaseZ) / FMath::Max(TipZ - BaseZ, 1.0f), 0.0f, 1.0f); const float RadiusAtZ = FMath::Lerp(Cell.SpireRadius, 1.25f, T); const float Spire = FMath::Max3( Radius - RadiusAtZ, BaseZ - Z, Z - TipZ); - Room = FMath::Min(Room, Spire); + if (Spire < Room) + { + Room = Spire; + } } - const float BaseTop = Cell.CeilingZ - 2.0f; - const float TipBottom = FMath::Max(Cell.FloorZ + 2.0f, BaseTop - Cell.SpireLength); - if (Z >= TipBottom && Z <= BaseTop) + const float BaseTop = Column.SpireBaseTopZ[CellIndex]; + const float TipBottom = Column.SpireTipBottomZ[CellIndex]; + if (Z <= BaseTop || Z - BaseTop < Room) { - const float T = (BaseTop - Z) / FMath::Max(BaseTop - TipBottom, 1.0f); + const float T = FMath::Clamp( + (BaseTop - Z) / FMath::Max(BaseTop - TipBottom, 1.0f), 0.0f, 1.0f); const float RadiusAtZ = FMath::Lerp(Cell.SpireRadius, 1.25f, T); const float Stalactite = FMath::Max3( Radius - RadiusAtZ, Z - BaseTop, TipBottom - Z); - Room = FMath::Min(Room, Stalactite); + if (Stalactite < Room) + { + Room = Stalactite; + } } } return Room; @@ -1018,18 +1137,8 @@ namespace FORCEINLINE float GeneratedTunnelEdge( const FStratePlan& Plan, const FGeneratedCaveCell& A, const FGeneratedCaveCell& B, - float X, float Y, float Z) + float Z, float T, float Horizontal) { - if (!IsGeneratedEdgeOpen(Plan, A.CellX, A.CellY, B.CellX, B.CellY)) - { - return -FLT_MAX; - } - const float T = SegmentParameterXY(X, Y, - FVector(A.CenterX, A.CenterY, 0.0f), FVector(B.CenterX, B.CenterY, 0.0f)); - const float Horizontal = Plan.Generation.TunnelRadiusVoxels - - FMath::Sqrt(DistanceSquaredToSegmentXY( - X, Y, FVector(A.CenterX, A.CenterY, 0.0f), - FVector(B.CenterX, B.CenterY, 0.0f))); const float FloorZ = FMath::Lerp(A.FloorZ, B.FloorZ, T); const float Vertical = FMath::Min( Z - FloorZ, @@ -1037,66 +1146,267 @@ namespace return SmoothMinimum(Horizontal, Vertical, 5.0f); } - float EvaluateParameterizedMacro( - const FStratePlan& Plan, float X, float Y, float Z, float* OutDetailScale) + const FGeneratedCaveCell* FindParameterizedBrickRoomCell( + const FStratePlan& Plan, const FParameterizedBrickContext* Context, + int32 CellX, int32 CellY) + { + if (Context == nullptr || Context->PlanToken != &Plan + || Context->RoomCellCacheToken != GParameterizedRoomCellCache.GetData() + || GParameterizedRoomCellCachePlan != &Plan + || CellX < Context->RoomCellCacheMin.X + || CellY < Context->RoomCellCacheMin.Y + || CellX >= Context->RoomCellCacheMin.X + Context->RoomCellCacheSize.X + || CellY >= Context->RoomCellCacheMin.Y + Context->RoomCellCacheSize.Y) + { + return nullptr; + } + const int32 Index = (CellY - Context->RoomCellCacheMin.Y) + * Context->RoomCellCacheSize.X + CellX - Context->RoomCellCacheMin.X; + return GParameterizedRoomCellCache.IsValidIndex(Index) + ? &GParameterizedRoomCellCache[Index] : nullptr; + } + + void BuildParameterizedColumnContext( + const FStratePlan& Plan, float X, float Y, + const FParameterizedBrickContext* Context, + FParameterizedColumnContext& OutColumn) { const FIntPoint BaseCell = GenerationCellAt(Plan, X, Y); - FGeneratedCaveCell Cells[9]; + const bool bHasRoomCellCache = Context != nullptr + && Context->PlanToken == &Plan + && Context->RoomCellCacheToken == GParameterizedRoomCellCache.GetData() + && GParameterizedRoomCellCachePlan == &Plan; for (int32 CellY = -1; CellY <= 1; ++CellY) for (int32 CellX = -1; CellX <= 1; ++CellX) { const int32 Index = (CellY + 1) * 3 + CellX + 1; - Cells[Index] = BuildGeneratedCell( - Plan, BaseCell.X + CellX, BaseCell.Y + CellY); + const int32 GeneratedX = BaseCell.X + CellX; + const int32 GeneratedY = BaseCell.Y + CellY; + if (bHasRoomCellCache) + { + const int32 CacheX = GeneratedX - Context->RoomCellCacheMin.X; + const int32 CacheY = GeneratedY - Context->RoomCellCacheMin.Y; + if (CacheX >= 0 && CacheY >= 0 + && CacheX < Context->RoomCellCacheSize.X + && CacheY < Context->RoomCellCacheSize.Y) + { + const int32 CacheIndex = CacheY * Context->RoomCellCacheSize.X + CacheX; + if (GParameterizedRoomCellCache.IsValidIndex(CacheIndex)) + { + OutColumn.Cells[Index] = &GParameterizedRoomCellCache[CacheIndex]; + } + } + } + else + { + OutColumn.Cells[Index] = FindParameterizedBrickRoomCell( + Plan, Context, GeneratedX, GeneratedY); + } + if (OutColumn.Cells[Index] == nullptr) + { + OutColumn.GeneratedCells[Index] = BuildGeneratedCell( + Plan, GeneratedX, GeneratedY); + OutColumn.Cells[Index] = &OutColumn.GeneratedCells[Index]; + } + const float DX = X - OutColumn.Cells[Index]->CenterX; + const float DY = Y - OutColumn.Cells[Index]->CenterY; + const float DistanceSquared = DX * DX + DY * DY; + OutColumn.RoomDistanceSquared[Index] = DistanceSquared; + OutColumn.RoomRadii[Index] = FMath::Sqrt(DistanceSquared); + OutColumn.RoomHorizontals[Index] = OutColumn.Cells[Index]->RadiusX + - OutColumn.RoomRadii[Index]; + + const FGeneratedCaveCell& Cell = *OutColumn.Cells[Index]; + OutColumn.RoomFloors[Index] = Cell.FloorZ; + if ((Cell.FeatureFlags & HasBasinFlag) != 0) + { + OutColumn.RoomFloors[Index] += Plan.Generation.BasinDepthVoxels + * FMath::Clamp(OutColumn.RoomRadii[Index] + / FMath::Max(Cell.RadiusX, 1.0f), 0.0f, 1.0f); + } + if ((Cell.FeatureFlags & HasPillarFlag) != 0) + { + const float PX = X - Cell.PillarX; + const float PY = Y - Cell.PillarY; + OutColumn.PillarHorizontals[Index] = FMath::Sqrt(PX * PX + PY * PY) + - Cell.PillarRadius; + } + if ((Cell.FeatureFlags & HasFloatingFlag) != 0) + { + for (int32 Blob = 0; Blob < 2; ++Blob) + { + const float BX = X - Cell.FloatingX[Blob]; + const float BY = Y - Cell.FloatingY[Blob]; + OutColumn.FloatingXYDistanceSquared[Index][Blob] = BX * BX + BY * BY; + } + } + if ((Cell.FeatureFlags & HasSpireFlag) != 0) + { + OutColumn.SpireBaseZ[Index] = Cell.FloorZ + 2.0f; + OutColumn.SpireTipZ[Index] = FMath::Min( + Cell.CeilingZ - 2.0f, + OutColumn.SpireBaseZ[Index] + Cell.SpireLength); + OutColumn.SpireBaseTopZ[Index] = Cell.CeilingZ - 2.0f; + OutColumn.SpireTipBottomZ[Index] = FMath::Max( + Cell.FloorZ + 2.0f, + OutColumn.SpireBaseTopZ[Index] - Cell.SpireLength); + } + } + + const FGeneratedCaveCell& Centre = *OutColumn.Cells[4]; + const int32 EdgeIndices[] = {1, 7, 3, 5}; + const uint8 EdgeFlags[] = { + TunnelToNegativeY, TunnelToPositiveY, + TunnelToNegativeX, TunnelToPositiveX}; + for (int32 EdgeIndex = 0; EdgeIndex < UE_ARRAY_COUNT(EdgeIndices); ++EdgeIndex) + { + OutColumn.TunnelHorizontal[EdgeIndex] = -FLT_MAX; + if ((Centre.OpenTunnelEdges & EdgeFlags[EdgeIndex]) == 0) + { + continue; + } + const FGeneratedCaveCell& Next = *OutColumn.Cells[EdgeIndices[EdgeIndex]]; + const float ABX = Next.CenterX - Centre.CenterX; + const float ABY = Next.CenterY - Centre.CenterY; + const float LengthSquared = ABX * ABX + ABY * ABY; + const float T = LengthSquared > 1.0e-8f + ? FMath::Clamp(((X - Centre.CenterX) * ABX + + (Y - Centre.CenterY) * ABY) / LengthSquared, 0.0f, 1.0f) + : 0.0f; + const float DX = X - (Centre.CenterX + T * ABX); + const float DY = Y - (Centre.CenterY + T * ABY); + OutColumn.TunnelT[EdgeIndex] = T; + OutColumn.TunnelHorizontal[EdgeIndex] = Plan.Generation.TunnelRadiusVoxels + - FMath::Sqrt(DX * DX + DY * DY); + } + + OutColumn.bHasLandingXYCache = Plan.Landings.Num() <= UE_ARRAY_COUNT( + OutColumn.LandingDistanceSquared); + if (OutColumn.bHasLandingXYCache) + { + const FLandingSite* Hub = Plan.LandingHubIndex != INDEX_NONE + ? &Plan.Landings[Plan.LandingHubIndex] : nullptr; + for (int32 SiteIndex = 0; SiteIndex < Plan.Landings.Num(); ++SiteIndex) + { + const FLandingSite& Site = Plan.Landings[SiteIndex]; + const float DX = X - Site.Position.X; + const float DY = Y - Site.Position.Y; + const float DistanceSquared = DX * DX + DY * DY; + OutColumn.LandingDistanceSquared[SiteIndex] = DistanceSquared; + OutColumn.LandingDistance[SiteIndex] = FMath::Sqrt(DistanceSquared); + OutColumn.LandingBridgeT[SiteIndex] = 0.0f; + OutColumn.LandingBridgeHorizontal[SiteIndex] = -FLT_MAX; + if (Hub != nullptr && Plan.Landings.Num() > 1 + && SiteIndex != Plan.LandingHubIndex) + { + OutColumn.LandingBridgeT[SiteIndex] = SegmentParameterXY( + X, Y, Site.Position, Hub->Position); + OutColumn.LandingBridgeHorizontal[SiteIndex] = LandingBridgeRadius + - FMath::Sqrt(DistanceSquaredToSegmentXY( + X, Y, Site.Position, Hub->Position)); + } + } + } + } + + float EvaluateParameterizedMacro( + const FStratePlan& Plan, float X, float Y, float Z, float* OutDetailScale, + const FParameterizedBrickContext* Context = nullptr, + const FParameterizedColumnContext* ColumnContext = nullptr) + { + FParameterizedColumnContext LocalColumn; + if (ColumnContext == nullptr) + { + BuildParameterizedColumnContext(Plan, X, Y, Context, LocalColumn); + ColumnContext = &LocalColumn; } float Macro = -FLT_MAX; - for (const FGeneratedCaveCell& Cell : Cells) - { - const float DX = X - Cell.CenterX; - const float DY = Y - Cell.CenterY; - const float Horizontal = Cell.RadiusX - FMath::Sqrt(DX * DX + DY * DY); - if (Macro > -FLT_MAX * 0.5f && Horizontal < Macro - 6.0f) - { - continue; - } - Macro = SmoothMaximum(Macro, - GeneratedRoomCell(Plan, Cell, X, Y, Z), 6.0f); - } - const FGeneratedCaveCell& Centre = Cells[4]; - const int32 EdgeIndices[] = {1, 7, 3, 5}; - for (const int32 EdgeIndex : EdgeIndices) - { - Macro = SmoothMaximum(Macro, - GeneratedTunnelEdge(Plan, Centre, Cells[EdgeIndex], X, Y, Z), 5.0f); - } - const float Bottom = static_cast(Plan.MinChunkZ * CHUNK_SIZE) + 8.0f; const float Top = static_cast(Plan.MaxChunkZExclusive * CHUNK_SIZE) - 8.0f; - for (const FGeneratedCaveCell& Cell : Cells) + static constexpr int32 CellEvaluationOrder[] = {4, 1, 3, 5, 7, 0, 2, 6, 8}; + for (int32 OrderIndex = 0; + OrderIndex < UE_ARRAY_COUNT(CellEvaluationOrder); ++OrderIndex) { - const uint32 ShaftHash = Hash3( - Cell.CellX, Cell.CellY, 0x53, Plan.GenerationSeed); - if (VoxelHash::ToFloat01(ShaftHash) >= Plan.Generation.VerticalShaftProbability) + const int32 Index = CellEvaluationOrder[OrderIndex]; + const FGeneratedCaveCell& Cell = *ColumnContext->Cells[Index]; + const float DistanceSquared = ColumnContext->RoomDistanceSquared[Index]; + if (Macro > -FLT_MAX * 0.5f) + { + const float MaximumDistance = Cell.RadiusX - Macro + 6.0f; + if (MaximumDistance < 0.0f + || DistanceSquared > FMath::Square(MaximumDistance + 1.0e-3f)) + { + continue; + } + const float VerticalUpperBound = FMath::Min( + Z - ColumnContext->RoomFloors[Index], Cell.CeilingZ - Z); + if (VerticalUpperBound <= Macro - 6.0f) + { + continue; + } + } + Macro = SmoothMaximum(Macro, + GeneratedRoomCell(Cell, Z, + ColumnContext->RoomRadii[Index], + ColumnContext->RoomHorizontals[Index], + *ColumnContext, Index), 6.0f); + } + const FGeneratedCaveCell& Centre = *ColumnContext->Cells[4]; + const int32 EdgeIndices[] = {1, 7, 3, 5}; + const uint8 EdgeFlags[] = { + TunnelToNegativeY, TunnelToPositiveY, + TunnelToNegativeX, TunnelToPositiveX}; + for (int32 EdgeIndex = 0; EdgeIndex < UE_ARRAY_COUNT(EdgeIndices); ++EdgeIndex) + { + if ((Centre.OpenTunnelEdges & EdgeFlags[EdgeIndex]) != 0) + { + Macro = SmoothMaximum(Macro, GeneratedTunnelEdge( + Plan, Centre, *ColumnContext->Cells[EdgeIndices[EdgeIndex]], Z, + ColumnContext->TunnelT[EdgeIndex], + ColumnContext->TunnelHorizontal[EdgeIndex]), 5.0f); + } + } + + for (int32 Index = 0; Index < UE_ARRAY_COUNT(ColumnContext->Cells); ++Index) + { + const FGeneratedCaveCell& Cell = *ColumnContext->Cells[Index]; + if ((Cell.FeatureFlags & HasVerticalShaftFlag) == 0) + { + continue; + } + const float DistanceSquared = ColumnContext->RoomDistanceSquared[Index]; + const float MaximumDistance = Plan.Generation.ShaftRadiusVoxels - Macro + 5.0f; + if (MaximumDistance < 0.0f + || DistanceSquared > FMath::Square(MaximumDistance + 1.0e-3f)) { continue; } - const float DX = X - Cell.CenterX; - const float DY = Y - Cell.CenterY; const float Horizontal = Plan.Generation.ShaftRadiusVoxels - - FMath::Sqrt(DX * DX + DY * DY); + - ColumnContext->RoomRadii[Index]; const float Vertical = FMath::Min(Z - Bottom, Top - Z); Macro = SmoothMaximum(Macro, SmoothMinimum(Horizontal, Vertical, 5.0f), 5.0f); } float DetailFade = 1.0f; - for (const FLandingSite& Site : Plan.Landings) + for (int32 SiteIndex = 0; SiteIndex < Plan.Landings.Num(); ++SiteIndex) { - const float DX = X - Site.Position.X; - const float DY = Y - Site.Position.Y; - const float DistanceSquared = DX * DX + DY * DY; - const float Distance = FMath::Sqrt(DistanceSquared); + const FLandingSite& Site = Plan.Landings[SiteIndex]; + float DistanceSquared = 0.0f; + float Distance = 0.0f; + if (ColumnContext->bHasLandingXYCache) + { + DistanceSquared = ColumnContext->LandingDistanceSquared[SiteIndex]; + Distance = ColumnContext->LandingDistance[SiteIndex]; + } + else + { + const float DX = X - Site.Position.X; + const float DY = Y - Site.Position.Y; + DistanceSquared = DX * DX + DY * DY; + Distance = FMath::Sqrt(DistanceSquared); + } const float RoomAir = FMath::Min( Site.PadRadius - Distance, FMath::Min(Z - Site.FloorZ, Site.FloorZ + MinimumCaveHeight - Z)); @@ -1106,39 +1416,20 @@ namespace DetailFade = 0.0f; } - const float AnchorReach = Plan.Generation.RoomPitchVoxels * 1.25f - + FMath::Max(32.0f, Plan.Generation.TunnelRadiusVoxels); - if (DistanceSquared > FMath::Square(AnchorReach)) + if (!Site.bGeneratedAnchorPrepared + || DistanceSquared > FMath::Square(Site.GeneratedAnchorReach)) { continue; } - const FIntPoint LandingCell = GenerationCellAt(Plan, Site.Position.X, Site.Position.Y); - FGeneratedCaveCell NearestCell; - float BestDistanceSq = FLT_MAX; - for (int32 CellY = -1; CellY <= 1; ++CellY) - for (int32 CellX = -1; CellX <= 1; ++CellX) - { - const FGeneratedCaveCell Candidate = BuildGeneratedCell( - Plan, LandingCell.X + CellX, LandingCell.Y + CellY); - const float CandidateDistanceSq = FMath::Square(Candidate.CenterX - Site.Position.X) - + FMath::Square(Candidate.CenterY - Site.Position.Y); - if (CandidateDistanceSq < BestDistanceSq) - { - BestDistanceSq = CandidateDistanceSq; - NearestCell = Candidate; - } - } - const FVector AnchorA(Site.Position.X, Site.Position.Y, Site.FloorZ + 24.0f); - const FVector AnchorB(NearestCell.CenterX, NearestCell.CenterY, - NearestCell.FloorZ + Plan.Generation.TunnelHalfHeightVoxels); - const FVector Segment = AnchorB - AnchorA; - const float SegmentLengthSq = Segment.SizeSquared(); const FVector Point(X, Y, Z); - const float T = SegmentLengthSq > 1.0e-8f - ? FMath::Clamp(FVector::DotProduct(Point - AnchorA, Segment) / SegmentLengthSq, - 0.0f, 1.0f) : 0.0f; + const float T = Site.GeneratedAnchorLengthSquared > 1.0e-8f + ? FMath::Clamp(FVector::DotProduct( + Point - Site.GeneratedAnchorStart, Site.GeneratedAnchorDelta) + / Site.GeneratedAnchorLengthSquared, 0.0f, 1.0f) : 0.0f; + const FVector AnchorDelta = Point + - (Site.GeneratedAnchorStart + Site.GeneratedAnchorDelta * T); const float Anchor = FMath::Max(32.0f, Plan.Generation.TunnelRadiusVoxels) - - (Point - (AnchorA + Segment * T)).Size(); + - AnchorDelta.Size(); Macro = SmoothMaximum(Macro, Anchor, 5.0f); } @@ -1152,9 +1443,13 @@ namespace continue; } const FLandingSite& Site = Plan.Landings[SiteIndex]; - const float Horizontal = LandingBridgeRadius - FMath::Sqrt( - DistanceSquaredToSegmentXY(X, Y, Site.Position, Hub.Position)); - const float T = SegmentParameterXY(X, Y, Site.Position, Hub.Position); + const float Horizontal = ColumnContext->bHasLandingXYCache + ? ColumnContext->LandingBridgeHorizontal[SiteIndex] + : LandingBridgeRadius - FMath::Sqrt( + DistanceSquaredToSegmentXY(X, Y, Site.Position, Hub.Position)); + const float T = ColumnContext->bHasLandingXYCache + ? ColumnContext->LandingBridgeT[SiteIndex] + : SegmentParameterXY(X, Y, Site.Position, Hub.Position); const float FloorZ = FMath::Lerp(Site.FloorZ, Hub.FloorZ, T); const float Vertical = FMath::Min( Z - FloorZ, FloorZ + MinimumCaveHeight - Z); @@ -1455,6 +1750,10 @@ void ResetThreadCache() { GPlanCache = FThreadPlanCache(); GShaftEdgeCache = FThreadShaftEdgeCache(); + GParameterizedRoomCellCache.Reset(); + GParameterizedRoomCellCacheMin = FIntPoint::ZeroValue; + GParameterizedRoomCellCacheSize = FIntPoint::ZeroValue; + GParameterizedRoomCellCachePlan = nullptr; } static float EvaluateInternal(const UVoxelGenerator& Generator, @@ -1462,7 +1761,8 @@ static float EvaluateInternal(const UVoxelGenerator& Generator, float* OutPreEditDensity, float DetailScale, const FBrickEvaluationContext* Context = nullptr, bool bParameterized = false, - const FParameterizedBrickContext* ParameterizedContext = nullptr) + const FParameterizedBrickContext* ParameterizedContext = nullptr, + const FParameterizedColumnContext* ParameterizedColumnContext = nullptr) { if (Context == nullptr && ParameterizedContext == nullptr) { @@ -1509,7 +1809,8 @@ static float EvaluateInternal(const UVoxelGenerator& Generator, { float DetailFade = 1.0f; const float Macro = bParameterized - ? EvaluateParameterizedMacro(*Plan, WorldX, WorldY, WorldZ, &DetailFade) + ? EvaluateParameterizedMacro(*Plan, WorldX, WorldY, WorldZ, &DetailFade, + ParameterizedContext, ParameterizedColumnContext) : (Context != nullptr && Context->bMacroXYPrecomputed ? EvaluateMacroFromBrick(*Plan, *Context, WorldX, WorldY, WorldZ, &DetailFade) : EvaluateMacro(*Plan, WorldX, WorldY, WorldZ, &DetailFade)); @@ -1635,6 +1936,51 @@ float EvaluateParameterizedWithDetailValue(const UVoxelGenerator& Generator, OutPreEditDensity, DetailScale, nullptr, true, Context); } +void EvaluateParameterizedColumnWithDetailValues( + const UVoxelGenerator& Generator, float WorldX, float WorldY, float WorldZStart, + const float* DetailValues, int32 DetailStride, int32 Count, float* OutValues, + const FParameterizedBrickContext* Context, float DetailScale) +{ + if (DetailValues == nullptr || OutValues == nullptr || Count <= 0 || DetailStride <= 0) + { + return; + } + const FIntVector Chunk( + FMath::FloorToInt(WorldX / CHUNK_SIZE), + FMath::FloorToInt(WorldY / CHUNK_SIZE), + FMath::FloorToInt(WorldZStart / CHUNK_SIZE)); + const FStratePlan* Plan = Context != nullptr && Context->bPlanResolved + ? static_cast(Context->PlanToken) : nullptr; + if (Plan == nullptr) + { + EnsurePlan(Generator); + Plan = FindStrate(Chunk); + } + const int32 EndChunkZ = FMath::FloorToInt( + (WorldZStart + static_cast(Count - 1)) / CHUNK_SIZE); + if (Plan == nullptr || Chunk.Z != EndChunkZ) + { + for (int32 Z = 0; Z < Count; ++Z) + { + OutValues[Z] = EvaluateInternal( + Generator, WorldX, WorldY, WorldZStart + static_cast(Z), + DetailValues[Z * DetailStride], true, nullptr, DetailScale, + nullptr, true, Context); + } + return; + } + + FParameterizedColumnContext ColumnContext; + BuildParameterizedColumnContext(*Plan, WorldX, WorldY, Context, ColumnContext); + for (int32 Z = 0; Z < Count; ++Z) + { + OutValues[Z] = EvaluateInternal( + Generator, WorldX, WorldY, WorldZStart + static_cast(Z), + DetailValues[Z * DetailStride], true, nullptr, DetailScale, + nullptr, true, Context, &ColumnContext); + } +} + void BuildParameterizedBrickContext( const UVoxelGenerator& Generator, FIntVector OriginVoxels, FIntVector Size, FParameterizedBrickContext& OutContext) @@ -1674,6 +2020,58 @@ void BuildParameterizedBrickContext( static_cast(OriginVoxels.Z + Size.Z)); FindPassageCandidates(FBox(Min, Max), OutContext.PassageCandidates); OutContext.bMayContainPassage = !OutContext.PassageCandidates.IsEmpty(); + + if (Plan != nullptr && bStableStrate && !OutContext.bIsGapChunk + && Size.X > 0 && Size.Y > 0) + { + FIntPoint MinimumBaseCell(MAX_int32, MAX_int32); + FIntPoint MaximumBaseCell(MIN_int32, MIN_int32); + const int32 CornerX[] = {OriginVoxels.X, End.X}; + const int32 CornerY[] = {OriginVoxels.Y, End.Y}; + for (const int32 WorldY : CornerY) + for (const int32 WorldX : CornerX) + { + const FIntPoint Cell = GenerationCellAt( + *Plan, static_cast(WorldX), static_cast(WorldY)); + MinimumBaseCell.X = FMath::Min(MinimumBaseCell.X, Cell.X); + MinimumBaseCell.Y = FMath::Min(MinimumBaseCell.Y, Cell.Y); + MaximumBaseCell.X = FMath::Max(MaximumBaseCell.X, Cell.X); + MaximumBaseCell.Y = FMath::Max(MaximumBaseCell.Y, Cell.Y); + } + + const FIntPoint NeededMin = MinimumBaseCell - FIntPoint(1, 1); + const FIntPoint NeededMax = MaximumBaseCell + FIntPoint(1, 1); + const bool bCacheContainsNeededCells = GParameterizedRoomCellCachePlan == Plan + && GParameterizedRoomCellCacheMin.X <= NeededMin.X + && GParameterizedRoomCellCacheMin.Y <= NeededMin.Y + && GParameterizedRoomCellCacheMin.X + GParameterizedRoomCellCacheSize.X - 1 + >= NeededMax.X + && GParameterizedRoomCellCacheMin.Y + GParameterizedRoomCellCacheSize.Y - 1 + >= NeededMax.Y; + if (!bCacheContainsNeededCells) + { + // Keep one extra generated-cell layer beyond the 3x3 query halo so adjacent + // proof bricks reuse their deterministic room and edge rolls. + GParameterizedRoomCellCacheMin = MinimumBaseCell - FIntPoint(2, 2); + GParameterizedRoomCellCacheSize = MaximumBaseCell - MinimumBaseCell + + FIntPoint(5, 5); + const int32 RoomCellCount = GParameterizedRoomCellCacheSize.X + * GParameterizedRoomCellCacheSize.Y; + GParameterizedRoomCellCache.SetNumUninitialized(RoomCellCount); + int32 RoomCellIndex = 0; + for (int32 CellY = 0; CellY < GParameterizedRoomCellCacheSize.Y; ++CellY) + for (int32 CellX = 0; CellX < GParameterizedRoomCellCacheSize.X; ++CellX) + { + GParameterizedRoomCellCache[RoomCellIndex++] = BuildGeneratedCell( + *Plan, GParameterizedRoomCellCacheMin.X + CellX, + GParameterizedRoomCellCacheMin.Y + CellY); + } + GParameterizedRoomCellCachePlan = Plan; + } + OutContext.RoomCellCacheMin = GParameterizedRoomCellCacheMin; + OutContext.RoomCellCacheSize = GParameterizedRoomCellCacheSize; + OutContext.RoomCellCacheToken = GParameterizedRoomCellCache.GetData(); + } } void BuildDetailBrick(const UVoxelGenerator& Generator, FIntVector OriginVoxels, @@ -1879,22 +2277,47 @@ void BuildDetailBrick(const UVoxelGenerator& Generator, FIntVector OriginVoxels, MinCellX + X, MinCellY + Y, MinCellZ + Z, BandSeed); } - for (int32 Z = 0; Z < Size.Z; ++Z) - for (int32 Y = 0; Y < Size.Y; ++Y) + int32 CellX[8]; + int32 CellY[8]; + int32 CellZ[8]; + float FadeX[8]; + float FadeY[8]; + float FadeZ[8]; for (int32 X = 0; X < Size.X; ++X) { const float SX = static_cast(OriginVoxels.X + X) / static_cast(CellSize); + const int32 Cell = FMath::FloorToInt(SX); + CellX[X] = Cell - MinCellX; + FadeX[X] = Fade(SX - static_cast(Cell)); + } + for (int32 Y = 0; Y < Size.Y; ++Y) + { const float SY = static_cast(OriginVoxels.Y + Y) / static_cast(CellSize); + const int32 Cell = FMath::FloorToInt(SY); + CellY[Y] = Cell - MinCellY; + FadeY[Y] = Fade(SY - static_cast(Cell)); + } + for (int32 Z = 0; Z < Size.Z; ++Z) + { const float SZ = static_cast(OriginVoxels.Z + Z) / static_cast(CellSize); - const int32 IX = FMath::FloorToInt(SX) - MinCellX; - const int32 IY = FMath::FloorToInt(SY) - MinCellY; - const int32 IZ = FMath::FloorToInt(SZ) - MinCellZ; - const float AX = Fade(SX - static_cast(FMath::FloorToInt(SX))); - const float AY = Fade(SY - static_cast(FMath::FloorToInt(SY))); - const float AZ = Fade(SZ - static_cast(FMath::FloorToInt(SZ))); + const int32 Cell = FMath::FloorToInt(SZ); + CellZ[Z] = Cell - MinCellZ; + FadeZ[Z] = Fade(SZ - static_cast(Cell)); + } + + for (int32 Z = 0; Z < Size.Z; ++Z) + for (int32 Y = 0; Y < Size.Y; ++Y) + for (int32 X = 0; X < Size.X; ++X) + { + const int32 IX = CellX[X]; + const int32 IY = CellY[Y]; + const int32 IZ = CellZ[Z]; + const float AX = FadeX[X]; + const float AY = FadeY[Y]; + const float AZ = FadeZ[Z]; const int32 Index = (IZ * GridY + IY) * GridX + IX; const float Value = CellSize == 1 ? Grid[Index] diff --git a/Source/VoxelForge/Public/VoxelRedefinedDensityField.h b/Source/VoxelForge/Public/VoxelRedefinedDensityField.h index 217044f..64ea265 100644 --- a/Source/VoxelForge/Public/VoxelRedefinedDensityField.h +++ b/Source/VoxelForge/Public/VoxelRedefinedDensityField.h @@ -66,6 +66,7 @@ namespace VoxelForgeRedefinedDensityField struct FParameterizedBrickContext { const void* PlanToken = nullptr; + const void* RoomCellCacheToken = nullptr; bool bPlanResolved = false; bool bChunkResolved = false; bool bIsGapChunk = false; @@ -74,6 +75,8 @@ namespace VoxelForgeRedefinedDensityField FIntVector BrickOrigin = FIntVector::ZeroValue; FIntVector BrickSize = FIntVector::ZeroValue; FIntVector Chunk = FIntVector::ZeroValue; + FIntPoint RoomCellCacheMin = FIntPoint::ZeroValue; + FIntPoint RoomCellCacheSize = FIntPoint::ZeroValue; TArray PassageCandidates; }; @@ -117,6 +120,12 @@ namespace VoxelForgeRedefinedDensityField float DetailValue, float* OutPreEditDensity = nullptr, float DetailScale = 1.0f, const FParameterizedBrickContext* Context = nullptr); + /** Evaluate a Z column while reusing its XY-dependent room graph data. */ + VOXELFORGE_API void EvaluateParameterizedColumnWithDetailValues( + const UVoxelGenerator& Generator, float WorldX, float WorldY, float WorldZStart, + const float* DetailValues, int32 DetailStride, int32 Count, float* OutValues, + const FParameterizedBrickContext* Context = nullptr, float DetailScale = 1.0f); + VOXELFORGE_API bool TryClassifyParameterizedBrick( const UVoxelGenerator& Generator, FIntVector OriginVoxels, FIntVector Size, bool& bOutAir, float DetailScale = 1.0f, diff --git a/Source/VoxelForgeEditor/Private/VoxelForgeExploreCommandlet.cpp b/Source/VoxelForgeEditor/Private/VoxelForgeExploreCommandlet.cpp index 7b83163..e286eac 100644 --- a/Source/VoxelForgeEditor/Private/VoxelForgeExploreCommandlet.cpp +++ b/Source/VoxelForgeEditor/Private/VoxelForgeExploreCommandlet.cpp @@ -2545,6 +2545,18 @@ struct FStep2dBrickProofAudit uint64 CorrectlySkippedBricksAudited = 0; uint64 CorrectProofSamplesChecked = 0; uint64 CorrectProofViolations = 0; + FIntVector FirstViolationBrickOrigin = FIntVector::ZeroValue; + FIntVector FirstViolationBrickSize = FIntVector::ZeroValue; + FIntVector FirstViolationSample = FIntVector::ZeroValue; + float FirstViolationDensity = 0.0f; + float FirstViolationCenterMacro = 0.0f; + float FirstViolationSampleMacro = 0.0f; + float FirstViolationSampleDetail = 0.0f; + float FirstViolationMacroDeltaPerVoxel = 0.0f; + float FirstViolationPathMaxGradient = 0.0f; + float FirstViolationTinyStepMaxGradient = 0.0f; + bool bFirstViolationWasInsideBrick = false; + bool bFirstViolationClaimedAir = false; uint64 DeliberatelyUndersizedBoundClaimsChecked = 0; uint64 DeliberateBoundDisagreements = 0; }; @@ -2608,6 +2620,88 @@ FStep2dBrickProofAudit AuditStep2dBrickProofs( ++Result.CorrectProofSamplesChecked; if ((Density > 0.0f) != bProvenAir) { + if (Result.CorrectProofViolations == 0) + { + Result.FirstViolationBrickOrigin = BrickOrigin; + Result.FirstViolationBrickSize = Size; + Result.FirstViolationSample = BrickOrigin + FIntVector(X, Y, Z); + Result.FirstViolationDensity = Density; + const FVector ProofMin( + static_cast(BrickOrigin.X - 1), + static_cast(BrickOrigin.Y - 1), + static_cast(BrickOrigin.Z - 1)); + const FVector ProofMax( + static_cast(BrickOrigin.X + Size.X), + static_cast(BrickOrigin.Y + Size.Y), + static_cast(BrickOrigin.Z + Size.Z)); + const FVector ProofCentre = (ProofMin + ProofMax) * 0.5f; + const FVector SamplePoint( + static_cast(BrickOrigin.X + X), + static_cast(BrickOrigin.Y + Y), + static_cast(BrickOrigin.Z + Z)); + Result.FirstViolationCenterMacro = bParameterized + ? VoxelForgeRedefinedDensityField::EvaluateParameterized( + Generator, ProofCentre.X, ProofCentre.Y, ProofCentre.Z, + nullptr, 0.0f) + : VoxelForgeRedefinedDensityField::Evaluate( + Generator, ProofCentre.X, ProofCentre.Y, ProofCentre.Z, + nullptr, 0.0f); + Result.FirstViolationSampleMacro = bParameterized + ? VoxelForgeRedefinedDensityField::EvaluateParameterized( + Generator, SamplePoint.X, SamplePoint.Y, SamplePoint.Z, + nullptr, 0.0f) + : VoxelForgeRedefinedDensityField::Evaluate( + Generator, SamplePoint.X, SamplePoint.Y, SamplePoint.Z, + nullptr, 0.0f); + Result.FirstViolationSampleDetail = Density + - Result.FirstViolationSampleMacro; + const float CentreDistance = (SamplePoint - ProofCentre).Size(); + Result.FirstViolationMacroDeltaPerVoxel = CentreDistance > 1.0e-6f + ? FMath::Abs(Result.FirstViolationCenterMacro + - Result.FirstViolationSampleMacro) / CentreDistance + : 0.0f; + if (CentreDistance > 1.0e-6f) + { + constexpr int32 PathSteps = 32; + float PreviousMacro = Result.FirstViolationSampleMacro; + for (int32 PathStep = 1; PathStep <= PathSteps; ++PathStep) + { + const float Alpha = static_cast(PathStep) / PathSteps; + const FVector Point = FMath::Lerp( + SamplePoint, ProofCentre, Alpha); + const float PathMacro = bParameterized + ? VoxelForgeRedefinedDensityField::EvaluateParameterized( + Generator, Point.X, Point.Y, Point.Z, nullptr, 0.0f) + : VoxelForgeRedefinedDensityField::Evaluate( + Generator, Point.X, Point.Y, Point.Z, nullptr, 0.0f); + Result.FirstViolationPathMaxGradient = FMath::Max( + Result.FirstViolationPathMaxGradient, + FMath::Abs(PathMacro - PreviousMacro) + * PathSteps / CentreDistance); + PreviousMacro = PathMacro; + } + } + constexpr float TinyStep = 0.01f; + for (int32 Axis = 0; Axis < 3; ++Axis) + for (int32 SignIndex = 0; SignIndex < 2; ++SignIndex) + { + const int32 Sign = SignIndex == 0 ? -1 : 1; + FVector Point = SamplePoint; + Point[Axis] += static_cast(Sign) * TinyStep; + const float NeighborMacro = bParameterized + ? VoxelForgeRedefinedDensityField::EvaluateParameterized( + Generator, Point.X, Point.Y, Point.Z, nullptr, 0.0f) + : VoxelForgeRedefinedDensityField::Evaluate( + Generator, Point.X, Point.Y, Point.Z, nullptr, 0.0f); + Result.FirstViolationTinyStepMaxGradient = FMath::Max( + Result.FirstViolationTinyStepMaxGradient, + FMath::Abs(NeighborMacro - Result.FirstViolationSampleMacro) + / TinyStep); + } + Result.bFirstViolationWasInsideBrick = X >= 0 && X < Size.X + && Y >= 0 && Y < Size.Y && Z >= 0 && Z < Size.Z; + Result.bFirstViolationClaimedAir = bProvenAir; + } ++Result.CorrectProofViolations; } } @@ -2805,6 +2899,17 @@ FStep2dBoundaryStats ComputeStep2dBoundaryStats( return Result; } +bool Step2eBoundaryStatsPass(const FStep2dBoundaryStats& Stats) +{ + return Stats.BrickBoundarySamples > 0 + && Stats.InteriorSamples > 0 + && Stats.ChunkBoundarySamples > 0 + && Stats.FeatureCellBoundarySamples > 0 + && Stats.BrickJumpRms <= Stats.InteriorJumpRms * 2.0 + 0.25 + && Stats.ChunkBoundaryJumpRms <= Stats.InteriorJumpRms * 2.0 + 0.25 + && Stats.FeatureCellJumpRms <= Stats.FeatureCellInteriorJumpRms * 2.0 + 0.25; +} + FColor Step2dDensityColor(float Density) { if (FMath::Abs(Density) < 1.0f) @@ -2868,6 +2973,9 @@ struct FStep2eVarietyMetrics double SurfaceAreaSquareMeters = 0.0; double SurfaceAreaPerVolume = 0.0; double VerticalAdjacencyShare = 0.0; + double VerticalAirColumnShare = 0.0; + double MeanLongestVerticalAirRunVoxels = 0.0; + int32 LongestVerticalAirRunVoxels = 0; double TunnelNeckShare = 0.0; int32 ConnectedComponentsAtOneMeter = 0; int64 LargestComponentCubicMeters = 0; @@ -2886,6 +2994,11 @@ FStep2eVarietyMetrics ComputeStep2eVarietyMetrics( uint64 SurfaceEdgeCount = 0; uint64 HorizontalAdjacencies = 0; uint64 VerticalAdjacencies = 0; + const int32 ColumnCount = Dimension * Dimension; + TArray CurrentVerticalRun; + CurrentVerticalRun.SetNumZeroed(ColumnCount); + TArray LongestVerticalRun; + LongestVerticalRun.SetNumZeroed(ColumnCount); for (int32 Z = 0; Z < Dimension; ++Z) for (int32 Y = 0; Y < Dimension; ++Y) for (int32 X = 0; X < Dimension; ++X) @@ -2893,6 +3006,10 @@ FStep2eVarietyMetrics ComputeStep2eVarietyMetrics( const int32 Index = (Z * Dimension + Y) * Dimension + X; const bool bAir = Density[Index] > 0.0f; AirCount += bAir ? 1 : 0; + const int32 ColumnIndex = Y * Dimension + X; + CurrentVerticalRun[ColumnIndex] = bAir ? CurrentVerticalRun[ColumnIndex] + 1 : 0; + LongestVerticalRun[ColumnIndex] = FMath::Max( + LongestVerticalRun[ColumnIndex], CurrentVerticalRun[ColumnIndex]); if (X + 1 < Dimension) { const bool bNextAir = Density[Index + 1] > 0.0f; @@ -2922,6 +3039,22 @@ FStep2eVarietyMetrics ComputeStep2eVarietyMetrics( const uint64 AllAdjacencies = HorizontalAdjacencies + VerticalAdjacencies; Result.VerticalAdjacencyShare = AllAdjacencies > 0 ? static_cast(VerticalAdjacencies) / AllAdjacencies : 0.0; + uint64 ColumnsWithAir = 0; + uint64 TotalLongestRunVoxels = 0; + for (const int32 LongestRun : LongestVerticalRun) + { + if (LongestRun > 0) + { + ++ColumnsWithAir; + TotalLongestRunVoxels += static_cast(LongestRun); + Result.LongestVerticalAirRunVoxels = FMath::Max( + Result.LongestVerticalAirRunVoxels, LongestRun); + } + } + Result.VerticalAirColumnShare = ColumnCount > 0 + ? static_cast(ColumnsWithAir) / ColumnCount : 0.0; + Result.MeanLongestVerticalAirRunVoxels = ColumnsWithAir > 0 + ? static_cast(TotalLongestRunVoxels) / ColumnsWithAir : 0.0; constexpr int32 CoarseStep = 4; const int32 CoarseDimension = (Dimension - 1) / CoarseStep + 1; @@ -3056,6 +3189,90 @@ TSharedRef Step2eParametersJson( return Json; } +TSharedRef Step2eChamberVolumeQuantilesJson( + const VoxelForgeRedefinedDensityField::FGenerationParameters& P) +{ + TSharedRef Json = MakeShared(); + constexpr double Pi = 3.14159265358979323846; + constexpr double CubicMetersPerVoxel = 0.25 * 0.25 * 0.25; + const double Quantiles[] = {0.10, 0.50, 0.90}; + const TCHAR* Names[] = {TEXT("p10_m3"), TEXT("p50_m3"), TEXT("p90_m3")}; + for (int32 Index = 0; Index < UE_ARRAY_COUNT(Quantiles); ++Index) + { + const double RadiusFraction = FMath::Lerp( + static_cast(P.MinimumRoomRadiusFraction), + static_cast(P.MaximumRoomRadiusFraction), Quantiles[Index]); + const double RadiusVoxels = RadiusFraction * P.RoomPitchVoxels; + const double VolumeCubicVoxels = Pi * RadiusVoxels * RadiusVoxels + * P.RoomHeightVoxels; + Json->SetNumberField(Names[Index], VolumeCubicVoxels * CubicMetersPerVoxel); + } + return Json; +} + +TSharedRef Step2eParameterRangesJson() +{ + using FParameters = VoxelForgeRedefinedDensityField::FGenerationParameters; + struct FParameterRange + { + const TCHAR* Name; + float FParameters::*Value; + }; + static const FParameterRange Fields[] = { + {TEXT("room_pitch_voxels"), &FParameters::RoomPitchVoxels}, + {TEXT("room_radius_fraction_min"), &FParameters::MinimumRoomRadiusFraction}, + {TEXT("room_radius_fraction_max"), &FParameters::MaximumRoomRadiusFraction}, + {TEXT("room_height_voxels"), &FParameters::RoomHeightVoxels}, + {TEXT("floor_relief_voxels"), &FParameters::FloorReliefVoxels}, + {TEXT("tunnel_radius_voxels"), &FParameters::TunnelRadiusVoxels}, + {TEXT("tunnel_half_height_voxels"), &FParameters::TunnelHalfHeightVoxels}, + {TEXT("loop_probability"), &FParameters::LoopProbability}, + {TEXT("vertical_shaft_probability"), &FParameters::VerticalShaftProbability}, + {TEXT("shaft_radius_voxels"), &FParameters::ShaftRadiusVoxels}, + {TEXT("pillar_probability"), &FParameters::PillarProbability}, + {TEXT("ledge_probability"), &FParameters::LedgeProbability}, + {TEXT("floating_mass_probability"), &FParameters::FloatingMassProbability}, + {TEXT("stalactite_stalagmite_probability"), &FParameters::SpireProbability}, + {TEXT("basin_probability"), &FParameters::BasinProbability}, + {TEXT("basin_depth_voxels"), &FParameters::BasinDepthVoxels}, + {TEXT("water_level_fraction"), &FParameters::WaterLevelFraction}, + }; + + TSharedRef Result = MakeShared(); + for (const FParameterRange& Field : Fields) + { + float Minimum = FLT_MAX; + float Maximum = -FLT_MAX; + for (int32 ProfileIndex = 0; + ProfileIndex < VoxelForgeRedefinedDensityField::GetParameterSetCount(); + ++ProfileIndex) + { + const TCHAR* Name = nullptr; + FParameters Parameters; + if (!VoxelForgeRedefinedDensityField::GetParameterSetInfo( + ProfileIndex, Name, Parameters)) + { + continue; + } + const float Value = Parameters.*(Field.Value); + Minimum = FMath::Min(Minimum, Value); + Maximum = FMath::Max(Maximum, Value); + } + TSharedRef Bounds = MakeShared(); + Bounds->SetNumberField(TEXT("minimum_across_profiles"), Minimum); + Bounds->SetNumberField(TEXT("maximum_across_profiles"), Maximum); + Result->SetObjectField(Field.Name, Bounds); + } + return Result; +} + +bool Step2eSameWorkerRun( + const VoxelForgeRegionEval::FTiming& A, + const VoxelForgeRegionEval::FTiming& B) +{ + return A.QuantizedHash == B.QuantizedHash && A.RawFloatHash == B.RawFloatHash; +} + TSharedRef Step2dTimingJson(const VoxelForgeRegionEval::FTiming& Timing) { TSharedRef Json = MakeShared(); @@ -3653,6 +3870,8 @@ int32 RunStep2e(const FString& Params) Row->SetNumberField(TEXT("profile_index"), Profile); Row->SetStringField(TEXT("name"), ProfileName); Row->SetObjectField(TEXT("parameters"), Step2eParametersJson(ProfileParameters)); + Row->SetObjectField(TEXT("nominal_chamber_volume_quantiles_m3"), + Step2eChamberVolumeQuantilesJson(ProfileParameters)); Row->SetNumberField(TEXT("six_worker_ring_median_ms"), MedianMs); TArray> TrialValues; TrialValues.Add(MakeShared(Times[0])); @@ -3664,6 +3883,11 @@ int32 RunStep2e(const FString& Params) Row->SetNumberField(TEXT("estimated_surface_area_per_volume_m_inv"), Variety.SurfaceAreaPerVolume); Row->SetNumberField(TEXT("vertical_air_adjacency_share"), Variety.VerticalAdjacencyShare); + Row->SetNumberField(TEXT("vertical_air_column_share"), Variety.VerticalAirColumnShare); + Row->SetNumberField(TEXT("mean_longest_vertical_air_run_voxels"), + Variety.MeanLongestVerticalAirRunVoxels); + Row->SetNumberField(TEXT("longest_vertical_air_run_voxels"), + Variety.LongestVerticalAirRunVoxels); Row->SetNumberField(TEXT("one_meter_tunnel_neck_share"), Variety.TunnelNeckShare); Row->SetNumberField(TEXT("one_meter_connected_components"), Variety.ConnectedComponentsAtOneMeter); @@ -3675,6 +3899,17 @@ int32 RunStep2e(const FString& Params) Row->SetNumberField(TEXT("skipped_bricks"), static_cast(LastTiming.SkippedBricks)); Row->SetNumberField(TEXT("skipped_sample_fraction"), LastTiming.SampleCount > 0 ? static_cast(LastTiming.SkippedSamples) / LastTiming.SampleCount : 0.0); + Row->SetNumberField(TEXT("evaluated_samples"), + static_cast(LastTiming.EvaluatedSamples)); + Row->SetNumberField(TEXT("worker_cpu_seconds"), LastTiming.WorkerCpuSeconds); + Row->SetNumberField(TEXT("brick_classification_worker_ms"), + LastTiming.BrickClassificationSeconds * 1000.0); + Row->SetNumberField(TEXT("density_evaluation_worker_ms"), + LastTiming.DensityEvaluationSeconds * 1000.0); + Row->SetNumberField(TEXT("uniform_fill_worker_ms"), + LastTiming.UniformFillSeconds * 1000.0); + Row->SetNumberField(TEXT("longest_worker_ms"), + LastTiming.LongestWorkerWallSeconds * 1000.0); FString SafeName(ProfileName); SafeName.ToLowerInline(); @@ -3778,26 +4013,41 @@ int32 RunStep2e(const FString& Params) const FStep2dBoundaryStats BoundaryStats = ComputeStep2dBoundaryStats( HardestFullDensity, Dimension, Origin, FMath::RoundToInt(HardestParameters.RoomPitchVoxels)); + TArray SeamFailureDensity = HardestFullDensity; + int64 DeliberateSeamSamplesMutated = 0; + for (int32 Z = 1; Z < Dimension - 1; ++Z) + for (int32 Y = 1; Y < Dimension - 1; ++Y) + for (int32 X = 1; X < Dimension - 1; ++X) + { + const int32 Index = (Z * Dimension + Y) * Dimension + X; + if (((Origin.X + X) % 8) == 0 && FMath::Abs(HardestFullDensity[Index]) <= 12.0f) + { + SeamFailureDensity[Index + 1] += 64.0f; + ++DeliberateSeamSamplesMutated; + } + } + const FStep2dBoundaryStats SeamFailureStats = ComputeStep2dBoundaryStats( + SeamFailureDensity, Dimension, Origin, + FMath::RoundToInt(HardestParameters.RoomPitchVoxels)); const FStep2dBrickProofAudit ProofAudit = AuditStep2dBrickProofs( *World.Generator, Origin, Dimension, true); const uint64 HardestHash = VoxelForgeRegionEval::HashQuantized(HardestFullDensity); const uint64 RepeatHash = VoxelForgeRegionEval::HashQuantized(RepeatFullDensity); const uint64 OneWorkerHash = VoxelForgeRegionEval::HashQuantized(OneWorkerDensity); const bool bDeterminism = HardestHash == RepeatHash && HardestHash == OneWorkerHash - && HardestFullTiming.RawFloatHash == RepeatTiming.RawFloatHash - && HardestFullTiming.RawFloatHash == OneWorkerTiming.RawFloatHash; + && Step2eSameWorkerRun(HardestFullTiming, RepeatTiming) + && Step2eSameWorkerRun(HardestFullTiming, OneWorkerTiming); + VoxelForgeRegionEval::FTiming DeliberateMismatch = HardestFullTiming; + DeliberateMismatch.QuantizedHash ^= 1u; + const bool bDeliberateDeterminismMismatchCaught = + !Step2eSameWorkerRun(HardestFullTiming, DeliberateMismatch); const bool bDetailAtLeastLive = NewSpectrum.RMSLag1 >= OldSpectrum.RMSLag1 && NewSpectrum.RMSLag2 >= OldSpectrum.RMSLag2; const bool bSmoothingControlCaught = SmoothSpectrum.RMSLag1 < NewSpectrum.RMSLag1 * 0.80 || SmoothSpectrum.RMSLag2 < NewSpectrum.RMSLag2 * 0.80; - const bool bBoundaryPass = BoundaryStats.BrickBoundarySamples > 0 - && BoundaryStats.InteriorSamples > 0 - && BoundaryStats.ChunkBoundarySamples > 0 - && BoundaryStats.FeatureCellBoundarySamples > 0 - && BoundaryStats.BrickJumpRms <= BoundaryStats.InteriorJumpRms * 2.0 + 0.25 - && BoundaryStats.ChunkBoundaryJumpRms <= BoundaryStats.InteriorJumpRms * 2.0 + 0.25 - && BoundaryStats.FeatureCellJumpRms - <= BoundaryStats.FeatureCellInteriorJumpRms * 2.0 + 0.25; + const bool bBoundaryPass = Step2eBoundaryStatsPass(BoundaryStats); + const bool bDeliberateSeamFailureCaught = DeliberateSeamSamplesMutated > 0 + && !Step2eBoundaryStatsPass(SeamFailureStats); const bool bBoundAudit = ProofAudit.CorrectlySkippedBricksAudited > 0 && ProofAudit.CorrectProofSamplesChecked > 0 && ProofAudit.CorrectProofViolations == 0; @@ -3810,6 +4060,7 @@ int32 RunStep2e(const FString& Params) const bool bSpeedPass = Workers == 6 && bProfilePasses && WorstMedianMs <= 600.0; const bool bPassed = bSpeedPass && bDeterminism && bDetailAtLeastLive && bSmoothingControlCaught && bDetailParity && bBoundaryPass + && bDeliberateSeamFailureCaught && bDeliberateDeterminismMismatchCaught && bBoundAudit && bUndersizedBoundCaught && HardestFullTiming.NonFiniteSamples == 0; @@ -3832,13 +4083,19 @@ int32 RunStep2e(const FString& Params) "rock masses and a bowl floor with an explicit water level. Passage pads and anchor " "tunnels join the authored inter-strate route to the generated network.")); Report->SetStringField(TEXT("parameter_space"), - TEXT("Eight named profiles can be assigned per strate from a seed hash (-1 mode), or " - "forced for measurement. Each profile rolls cell placement and feature choices from " - "the world seed and strate index; see parameters and documented ranges in the report.")); + TEXT("Eight named profiles can be assigned per strate from a stable seed hash (-1 mode), " + "or forced for measurement. Each profile supplies nominal room, tunnel, shaft, " + "feature-probability and basin values. Per-cell hashes deterministically roll room " + "jitter and feature presence. Profile minima and maxima are recorded below; room " + "height is clamped to the strate span, room radii to 0.20-0.72/0.80 of pitch, " + "loop probability to 0-0.8, probabilities and water level to 0-1, and basin depth " + "to 0-48 voxels.")); + Report->SetObjectField(TEXT("parameter_ranges_across_eight_profiles"), + Step2eParameterRangesJson()); Report->SetStringField(TEXT("resolution_contract"), TEXT("One exact field sample per 25 cm lattice point. The four existing 8/4/2/1-sample " "detail bands are evaluated for every potentially surface-affecting point; no coarse " - "field is interpolated onto the lattice. 8-cubed skips require the final macro field " + "field is interpolated onto the lattice. 4-cubed step 2e skips require the final macro field " "Lipschitz interval plus the full 5.25-unit detail supremum and marching-cubes halo.")); Report->SetStringField(TEXT("finer_lattice_scaling"), TEXT("For 12.5 cm voxels, double room pitch, room height, tunnel/feature dimensions and " @@ -3848,9 +4105,11 @@ int32 RunStep2e(const FString& Params) "remain cheap. This scale has not been timed.")); Report->SetStringField(TEXT("variety_metric_method"), TEXT("Open fraction uses every ring sample. Surface area estimates sign-changing lattice " - "edges times 0.25 m squared. Chamber-size bins, connected components and tunnel-neck " - "share use a 1 m downsampled six-neighbor occupancy grid; verticality is the share of " - "open 1-cell adjacencies that point vertically.")); + "edges times 0.25 m squared. Nominal chamber-volume p10/p50/p90 values use the " + "uniform per-cell radius roll and room height as circular-cylinder volumes. Tunnel-neck " + "share and connected-component sizes use a 1 m downsampled six-neighbor occupancy grid. " + "Verticality is the mean longest contiguous open run per XY column, with open-column " + "coverage reported separately.")); Report->SetStringField(TEXT("water_geometry_limit"), TEXT("Basin profiles generate the bowl floor and water-level parameter; this density field " "does not render or simulate water.")); @@ -3884,6 +4143,10 @@ int32 RunStep2e(const FString& Params) Boundary->SetNumberField(TEXT("feature_cell_boundary_gradient_jump_rms"), BoundaryStats.FeatureCellJumpRms); Boundary->SetNumberField(TEXT("feature_cell_interior_gradient_jump_rms"), BoundaryStats.FeatureCellInteriorJumpRms); Boundary->SetBoolField(TEXT("boundary_artifact_check_pass"), bBoundaryPass); + Boundary->SetNumberField(TEXT("deliberate_seam_samples_mutated"), + static_cast(DeliberateSeamSamplesMutated)); + Boundary->SetBoolField(TEXT("deliberate_seam_failure_caught"), + bDeliberateSeamFailureCaught); Report->SetObjectField(TEXT("boundary_artifact_check"), Boundary); TSharedRef Proofs = MakeShared(); @@ -3893,6 +4156,32 @@ int32 RunStep2e(const FString& Params) static_cast(ProofAudit.CorrectProofSamplesChecked)); Proofs->SetNumberField(TEXT("correct_proof_sign_violations"), static_cast(ProofAudit.CorrectProofViolations)); + Proofs->SetNumberField(TEXT("first_violation_brick_x"), ProofAudit.FirstViolationBrickOrigin.X); + Proofs->SetNumberField(TEXT("first_violation_brick_y"), ProofAudit.FirstViolationBrickOrigin.Y); + Proofs->SetNumberField(TEXT("first_violation_brick_z"), ProofAudit.FirstViolationBrickOrigin.Z); + Proofs->SetNumberField(TEXT("first_violation_brick_size_x"), ProofAudit.FirstViolationBrickSize.X); + Proofs->SetNumberField(TEXT("first_violation_brick_size_y"), ProofAudit.FirstViolationBrickSize.Y); + Proofs->SetNumberField(TEXT("first_violation_brick_size_z"), ProofAudit.FirstViolationBrickSize.Z); + Proofs->SetNumberField(TEXT("first_violation_sample_x"), ProofAudit.FirstViolationSample.X); + Proofs->SetNumberField(TEXT("first_violation_sample_y"), ProofAudit.FirstViolationSample.Y); + Proofs->SetNumberField(TEXT("first_violation_sample_z"), ProofAudit.FirstViolationSample.Z); + Proofs->SetNumberField(TEXT("first_violation_density"), ProofAudit.FirstViolationDensity); + Proofs->SetNumberField(TEXT("first_violation_center_macro"), + ProofAudit.FirstViolationCenterMacro); + Proofs->SetNumberField(TEXT("first_violation_sample_macro"), + ProofAudit.FirstViolationSampleMacro); + Proofs->SetNumberField(TEXT("first_violation_sample_detail"), + ProofAudit.FirstViolationSampleDetail); + Proofs->SetNumberField(TEXT("first_violation_macro_delta_per_voxel"), + ProofAudit.FirstViolationMacroDeltaPerVoxel); + Proofs->SetNumberField(TEXT("first_violation_path_max_gradient"), + ProofAudit.FirstViolationPathMaxGradient); + Proofs->SetNumberField(TEXT("first_violation_tiny_step_max_gradient"), + ProofAudit.FirstViolationTinyStepMaxGradient); + Proofs->SetBoolField(TEXT("first_violation_inside_proven_brick"), + ProofAudit.bFirstViolationWasInsideBrick); + Proofs->SetBoolField(TEXT("first_violation_claimed_air"), + ProofAudit.bFirstViolationClaimedAir); Proofs->SetNumberField(TEXT("undersized_bound_claims_checked"), static_cast(ProofAudit.DeliberatelyUndersizedBoundClaimsChecked)); Proofs->SetNumberField(TEXT("wrong_sign_samples_caught_by_undersized_bound"), @@ -3915,6 +4204,8 @@ int32 RunStep2e(const FString& Params) Determinism->SetStringField(TEXT("one_worker_raw_float"), FString::Printf( TEXT("%016llx"), static_cast(OneWorkerTiming.RawFloatHash))); Determinism->SetBoolField(TEXT("same_across_two_runs_and_1_vs_6_workers"), bDeterminism); + Determinism->SetBoolField(TEXT("deliberate_quantized_hash_mismatch_rejected"), + bDeliberateDeterminismMismatchCaught); Report->SetObjectField(TEXT("determinism"), Determinism); Report->SetBoolField(TEXT("entrance_exit_walkability_test_added"), true); Report->SetBoolField(TEXT("inter_strate_passage_open_space_test_added"), true); diff --git a/Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.cpp b/Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.cpp index 6fe4a99..efebfe0 100644 --- a/Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.cpp +++ b/Source/VoxelForgeEditor/Private/VoxelForgeRegionEvalExperiment.cpp @@ -181,27 +181,30 @@ namespace VoxelForgeRegionEval TArray Bricks; const FIntVector Last = OriginVoxels + FIntVector(Dimension - 1, Dimension - 1, Dimension - 1); + const FIntVector ProofBrickSize = bParameterized + ? FIntVector(4, 4, 4) : FIntVector(8, 8, 8); const FIntVector FirstBrick( - FMath::FloorToInt(static_cast(OriginVoxels.X) / 8.0f), - FMath::FloorToInt(static_cast(OriginVoxels.Y) / 8.0f), - FMath::FloorToInt(static_cast(OriginVoxels.Z) / 8.0f)); + FMath::FloorToInt(static_cast(OriginVoxels.X) / ProofBrickSize.X), + FMath::FloorToInt(static_cast(OriginVoxels.Y) / ProofBrickSize.Y), + FMath::FloorToInt(static_cast(OriginVoxels.Z) / ProofBrickSize.Z)); const FIntVector LastBrick( - FMath::FloorToInt(static_cast(Last.X) / 8.0f), - FMath::FloorToInt(static_cast(Last.Y) / 8.0f), - FMath::FloorToInt(static_cast(Last.Z) / 8.0f)); + FMath::FloorToInt(static_cast(Last.X) / ProofBrickSize.X), + FMath::FloorToInt(static_cast(Last.Y) / ProofBrickSize.Y), + FMath::FloorToInt(static_cast(Last.Z) / ProofBrickSize.Z)); Bricks.Reserve((LastBrick.X - FirstBrick.X + 1) * (LastBrick.Y - FirstBrick.Y + 1) * (LastBrick.Z - FirstBrick.Z + 1)); for (int32 BZ = FirstBrick.Z; BZ <= LastBrick.Z; ++BZ) for (int32 BY = FirstBrick.Y; BY <= LastBrick.Y; ++BY) for (int32 BX = FirstBrick.X; BX <= LastBrick.X; ++BX) { - const FIntVector BrickWorldMin(BX * 8, BY * 8, BZ * 8); + const FIntVector BrickWorldMin( + BX * ProofBrickSize.X, BY * ProofBrickSize.Y, BZ * ProofBrickSize.Z); FResearchBrick& Brick = Bricks.AddDefaulted_GetRef(); Brick.Origin = FIntVector( FMath::Max(OriginVoxels.X, BrickWorldMin.X), FMath::Max(OriginVoxels.Y, BrickWorldMin.Y), FMath::Max(OriginVoxels.Z, BrickWorldMin.Z)); - const FIntVector BrickEnd = BrickWorldMin + FIntVector(8, 8, 8); + const FIntVector BrickEnd = BrickWorldMin + ProofBrickSize; const FIntVector RingEnd = OriginVoxels + FIntVector(Dimension, Dimension, Dimension); const FIntVector End( @@ -315,28 +318,62 @@ namespace VoxelForgeRegionEval VoxelForgeRedefinedDensityField::BuildParameterizedBrickContext( Generator, Brick.Origin, Brick.Size, ParameterizedBrickContext); } - for (int32 Z = 0; Z < Brick.Size.Z; ++Z) - for (int32 Y = 0; Y < Brick.Size.Y; ++Y) - for (int32 X = 0; X < Brick.Size.X; ++X) + if (bParameterized) { - const int32 WorldX = Brick.Origin.X + X; - const int32 WorldY = Brick.Origin.Y + Y; - const int32 WorldZ = Brick.Origin.Z + Z; - const int64 LatticeIndex = LinearIndex( - Brick.Lattice.X + X, Brick.Lattice.Y + Y, - Brick.Lattice.Z + Z, Dimension); - const float DetailValue = BrickDetail[ - (Z * Brick.Size.Y + Y) * Brick.Size.X + X]; - OutDensities[static_cast(LatticeIndex)] = bParameterized - ? VoxelForgeRedefinedDensityField::EvaluateParameterizedWithDetailValue( - Generator, static_cast(WorldX), static_cast(WorldY), - static_cast(WorldZ), DetailValue, nullptr, DetailScale, - &ParameterizedBrickContext) - : VoxelForgeRedefinedDensityField::EvaluateWithDetailValue( - Generator, static_cast(WorldX), static_cast(WorldY), - static_cast(WorldZ), DetailValue, - nullptr, DetailScale, &BrickContext); - ++WorkerEvaluated[WorkerIndex]; + const int32 DetailStride = Brick.Size.X * Brick.Size.Y; + float ColumnValues[8] = {}; + float ParameterizedBrickValues[8 * 8 * 8]; + for (int32 Y = 0; Y < Brick.Size.Y; ++Y) + for (int32 X = 0; X < Brick.Size.X; ++X) + { + const int32 DetailBase = Y * Brick.Size.X + X; + VoxelForgeRedefinedDensityField::EvaluateParameterizedColumnWithDetailValues( + Generator, static_cast(Brick.Origin.X + X), + static_cast(Brick.Origin.Y + Y), + static_cast(Brick.Origin.Z), + BrickDetail.GetData() + DetailBase, DetailStride, + Brick.Size.Z, ColumnValues, + &ParameterizedBrickContext, DetailScale); + for (int32 Z = 0; Z < Brick.Size.Z; ++Z) + { + ParameterizedBrickValues[(Z * Brick.Size.Y + Y) + * Brick.Size.X + X] = ColumnValues[Z]; + } + } + for (int32 Z = 0; Z < Brick.Size.Z; ++Z) + for (int32 Y = 0; Y < Brick.Size.Y; ++Y) + { + const int64 LatticeIndex = LinearIndex( + Brick.Lattice.X, Brick.Lattice.Y + Y, + Brick.Lattice.Z + Z, Dimension); + const int32 LocalIndex = (Z * Brick.Size.Y + Y) * Brick.Size.X; + FMemory::Memcpy(OutDensities.GetData() + LatticeIndex, + ParameterizedBrickValues + LocalIndex, + static_cast(Brick.Size.X) * sizeof(float)); + } + WorkerEvaluated[WorkerIndex] += static_cast(Brick.SampleCount); + } + else + { + for (int32 Z = 0; Z < Brick.Size.Z; ++Z) + for (int32 Y = 0; Y < Brick.Size.Y; ++Y) + for (int32 X = 0; X < Brick.Size.X; ++X) + { + const int32 WorldX = Brick.Origin.X + X; + const int32 WorldY = Brick.Origin.Y + Y; + const int32 WorldZ = Brick.Origin.Z + Z; + const int64 LatticeIndex = LinearIndex( + Brick.Lattice.X + X, Brick.Lattice.Y + Y, + Brick.Lattice.Z + Z, Dimension); + const float DetailValue = BrickDetail[ + (Z * Brick.Size.Y + Y) * Brick.Size.X + X]; + OutDensities[static_cast(LatticeIndex)] = + VoxelForgeRedefinedDensityField::EvaluateWithDetailValue( + Generator, static_cast(WorldX), static_cast(WorldY), + static_cast(WorldZ), DetailValue, + nullptr, DetailScale, &BrickContext); + ++WorkerEvaluated[WorkerIndex]; + } } WorkerEvaluate[WorkerIndex] += FPlatformTime::Seconds() - EvaluationStart; }