51 Commits

Author SHA1 Message Date
4f6fcf36dc re(flight): the ramp test is inconclusive, and names the tool the residual needs
To separate "a 1 s burst never reaches the steady rate" from "a per-axis
multiplier", measure inside ONE hold: successive 0.25 s windows of a single 3 s
press, holding speed, attitude and starting conditions constant by construction.

    rep0 rate   16   59  325  209  130  322  238  110  310  151  183
    rep1 rate   52  181  231  246  236  169  368  195  181  255  182

Not usable. At 0.25 s the windows do not contain enough guest updates to average,
so rate and speed both swing 3x window to window -- the same aliasing that once
manufactured a rate-vs-speed curve, reappearing at finer resolution. The first
window is lowest in BOTH repeats, which is what a ramp would look like, but the
sequence never plateaus, so the signal cannot be separated from the sampling. No
claim either way.

Widening the window does not rescue it: 0.5 s averages well enough, but a hold
long enough to contain several 0.5 s windows bleeds speed -- and speed is the
variable under test. The two effects are entangled at this observation rate.

So the residual needs a different INSTRUMENT, not another script. Live-RAM polling
samples an unsynchronised snapshot; the question wants the craft's angular
velocity as the guest computes it, once per frame. That is a Canary-side hook --
the same shape as the existing F10 ship-capture patch -- and the rebuild toolchain
already makes it cheap. Recorded as the recommendation rather than attempted as a
seventh variation of the same measurement.
2026-08-13 23:53:23 +00:00
8b03a52aa6 re(flight): both axes at settled speeds -- shape confirmed, absolute scale is not
Burst design repeated with the HUD clock bracketed (01:01.86 -> 02:10.61, ~x1.26)
and roll measured in the same flight.

    pitch   87.0 @ 85    82.8 @ 308    47.0 @ 1077   min:max 1.85
    roll   125.0 @ 76   119.0 @ 291    82.6 @ 1023   min:max 1.51

SHAPE CONFIRMED on both axes: the rate interpolates between _Min (at minimum
speed) and _Max (at maximum speed), matching to 1.6% for pitch (vs PitchMinus
75/40 = 1.88) and 5.6% for roll (vs 200/125 = 1.60). Both ratios are
clock-independent so they stand regardless of the conversion, and pitch's
re-confirms ly+ = pitch-MINUS (reproducing 1.82 from the previous run).

ABSOLUTE SCALE DOES NOT MATCH, and not in the same direction:

    pitch  measured/predicted = 1.15, 1.21, 1.07   consistently OVER
    roll                      = 0.62, 0.64, 0.60   consistently UNDER, very flat

A clock error cannot explain this -- it would move both axes together and these
go opposite -- so the discrepancy is per-axis. Candidates, neither measured: a 1 s
burst not completing the angular-acceleration ramp (would under-read; fits roll's
flat 0.62, not pitch's excess), or an unidentified per-axis multiplier. Left as an
open question with the separating test named: 1 s versus 3 s bursts at the same
throttle, where the ramp hypothesis predicts the longer burst reads higher.

Also noted: the roll run correctly REFUSED on a WEAK row pin after the pitch
bursts left the craft tumbled -- and roll is immune to that labelling, which the
guard's own message says, so ALLOW_WEAK_PIN=1 is its documented exception. A guard
that states its own exception is worth having.
2026-08-13 23:42:28 +00:00
92d9683f3a re(flight): short bursts confirm the rate-vs-speed SHAPE, without needing the clock
The design the sweep could not provide: settle the throttle, measure the settled
speed, pitch for ONE second so speed barely moves inside the burst. Three
throttles, two repeats, row pin CONFIDENT, fresh flight.

    LT min      burst speed ~105    rate 113.6, 109.5 deg/wall-s
    cruise                  ~383         100.2,  88.4
    RT max                 ~1483          52.2,  70.5

Rate falls monotonically with speed -- 111.5 -> 94.3 -> 61.4 -- at three KNOWN,
SETTLED speeds instead of smeared across a bleeding one.

The decisive comparison needs no clock. Absolute rates depend on the run's clock
ratio, but the min:max RATIO cancels it:

    measured min:max            = 1.82
    AV_PitchMinus_Min/Max 75/40 = 1.88   ->  3.0% apart
    AV_PitchPlus_Min/Max 150/70 = 2.14   -> 15.1% apart

Two conclusions, neither resting on a clock measurement:
 - _Min/_Max really do mean "at minimum / at maximum speed", with the rate
   interpolating between them: shape confirmed to 3%.
 - ly+ drives pitch-MINUS, not plus. The craft has asymmetric pitch authority
   (75/40 down vs 150/70 up) and the ratio picks the pair cleanly.

Absolute magnitudes remain open: this run did not bracket the HUD clock, so
deg/GAME-second cannot be computed from it, and picking a ratio that makes the
numbers fit would be circular. The probe now screenshots the clock at both ends.

Also: fly_stage.sh now waits for the TAKE-OFF load too. Guarding only the stage
load left a run pressing A into a black screen and then reporting "player entity
not found" from a game that never reached flight.
2026-08-13 23:29:23 +00:00
a3f14710a4 re(flight): clean pitch sweep -- magnitudes agree, the interpolation law does not
Fresh flight, row pinning CONFIDENT (margin 0.413), one sweep and nothing before
it. axis_probe now REFUSES to measure on a WEAK pin (ALLOW_WEAK_PIN=1 overrides)
since it is a precondition, not a warning: roll is immune to the up/right
labelling but pitch and yaw are not.

Clock x1.26. Binned by speed, both in game units, against the linear
interpolation of AV_PitchPlus_Min 150 (at MinimumVelocity 100) to _Max 70 (at
MaximumVelocity 1200):

    speed ~435   measured 100.8   predicted 125.6
    speed ~572            113.8             115.7
    speed ~709            126.3             105.7
    speed ~846             83.1              95.7
    speed ~983             72.7              85.8

Supported: the magnitudes (73-126 measured vs 86-126 predicted) and a falling
high-speed end. NOT supported: the interpolation law. Scatter is +-25%, the two
fastest bins hold 1 and 2 windows (the first moments before the speed bled), and
the slowest bin misses in the wrong direction.

The flaw is structural, not statistical: a sweep DRIVEN by the speed bleeding
cannot dwell at either extreme, which is exactly where the law is most testable.

What would settle it: hold a settled throttle and pitch for ~1 SECOND, so speed
barely moves inside the burst and each burst gives one honest (speed, rate) point;
repeat at LT / neutral / RT for three clean points at known speeds. Recorded as
the next design rather than attempted as a fifth variation of the same sweep.
2026-08-13 23:12:50 +00:00
0a84c1358e re(flight): polling faster than the guest updates manufactures a clean curve
Fitting rate against instantaneous speed produced a tidy "rate rises with speed"
relationship, with speeds up to 4795 when the craft's maximum is 1200. It is
entirely an artefact: 20 Hz polling is faster than the guest updates these fields,
so a per-read delta is either exactly zero (no update yet) or a whole frame's
worth divided by a fraction of a frame. 111 of 352 reads were zero on BOTH
channels -- position and attitude update on the same frame, so the two are
perfectly correlated, and dividing each by the short wall dt produced the
correlation out of nothing.

Fix: aggregate over windows spanning many frames (0.5 s). A sum of |delta| over
such a window is right however the updates fall inside it.

This does NOT affect the swept-total probes (roll_axis.py, rate_probe.py) -- they
already summed over the whole dwell, immune for the same reason. Only per-sample
instantaneous rates were ever wrong, so no earlier number moves.

The windowed re-run is NOT yet claimed as a result. It gives plausible magnitudes
but still shows rate rising with speed, against the definition's PitchPlus_Min 150
> _Max 70, and it has two disqualifiers: it ran on an instance where the craft was
already tumbling from the previous sweep, so pinning reported "WEAK -- craft may
not be level", and the sweep started mid-range rather than at maximum. A clean
answer needs a fresh flight with pinning CONFIDENT and nothing before it. Since
what is in doubt is precisely what _Min/_Max mean, a measurement through a
doubtful instrument cannot settle it.

Both datasets kept, the bad one labelled, because the aliased curve is a good
example of what a manufactured correlation looks like.
2026-08-13 23:00:59 +00:00
6c7025851e re(flight): the rate probe measures a MOVING speed -- pitching bleeds it hard
Measured pitch with the rows properly pinned, against this craft's own disc caps
(AV_PitchPlus_Min 150, AV_PitchPlus_Max 70):

    min speed (LT)  1391.0 deg / 8.00 s, clock x1.326 -> 131.1 deg/game-s  vs 150
    max speed (RT)   989.0 deg / 8.05 s, clock x1.318 ->  93.2 deg/game-s  vs 70

A rate 33% ABOVE a cap is not a finding, it is a broken instrument. The HUD speed
is in the same bracketing screenshots that give the clock, so read it:

    slow phase   102 ->  18
    fast phase  1193 -> 589

The speed is NOT constant during the dwell -- pitching halves it in 8 seconds.
The cap is speed-dependent, so as the craft slowed its cap rose, and an 8-second
average necessarily lands between the max-speed cap and a mid-speed one. The 133%
is entirely the instrument.

This also weakens the roll result committed earlier: same method, so 120.9 vs
AV_Roll_Max 125 is CONSISTENT but is not a tight test -- the true cap could be
lower and still produce that average. Said plainly in the doc rather than left
standing as a clean confirmation. Min-speed figures are less affected; there is
little speed left to lose.

Proper fix, not yet done: dwell ~1-2 s so speed barely moves, or sample HUD speed
continuously and fit rate against INSTANTANEOUS speed -- which yields the whole
rate-vs-speed curve instead of two points.

Separately this is a flight-model finding: TURNING COSTS SPEED, steeply, with the
throttle still at maximum. A reimplementation treating the throttle as a speed the
craft simply holds will be wrong during manoeuvres.
2026-08-13 22:48:29 +00:00
dc46339b63 re(flight): rows pinned by world-Y, and nothing yaws -- the yaw gap is answered
The probe now pins which non-forward row is up and which is right, instead of
taking the D3D convention on faith:

    row world-Y means: [0.469, 0.883, -0.000]   forward = row 2
      -> up = row 1, right = row 0   CONFIDENT

That is the OPPOSITE of the assumption the previous run used, so that run's yaw
and pitch columns were swapped -- under the correct labels its ly+ reading of
154.1 deg/wall-s is PITCH, which is what a left-stick Y should do.

Measured with the unknown inputs FIRST, each passing a liveness check:

    rx  0.0  0.0  0.0      ry  0.0  0.0  0.0
    LB  0.0  0.0  0.0      RB  0.0  0.0  0.0
    lx  roll 209.8         ly  pitch 154.1

These zeros are trustworthy where the previous run's were not: the craft was
verified alive between inputs, and the probe aborted the moment it stopped moving
rather than reporting the clean zeros a destroyed craft produces (it did abort,
after lx+, which is why lx/ly are carried from the earlier run rather than
re-measured).

So NO PAD INPUT YAWS THE CRAFT. AV_Yaw_* (45/25) exists in the definitions but
nothing on the right stick or the shoulders drives it, which upgrades the old
"yaw: no input found" from a failure to find one into a measurement that the
remaining candidates do nothing. The natural reading is that yaw is a consequence
of banking rather than a commanded axis.

Not covered, and not claimed: the d-pad (tactical map) and the face buttons
(fire/weapon select). Neither is a plausible flight axis; neither was measured.
2026-08-13 22:35:36 +00:00
dfa769420d re(flight): axis probe pins the rows and checks liveness; fly_stage waits, not sleeps
Both fixes the previous run's caveats asked for, plus one the run itself forced.

axis_probe.py now:
 - PINS which non-forward row is up and which is right, by comparing world-Y
   across the rows in level flight, and says CONFIDENT or WEAK. entities2
   measures row 2 = forward against velocity, but the other two were labelled by
   the D3D convention, and yaw/pitch SWAP if that is wrong -- so the previous
   run's last two columns were named on an assumption.
 - checks the craft is ALIVE between inputs, and ABORTS with a message instead of
   reporting the clean zeros a destroyed craft produces. The first run ended on
   GAME OVER and only said so afterwards.
 - measures the UNKNOWN inputs (rx, ry, LB, RB) first while the craft is healthy,
   keeping the established lx/ly as controls at the end.

fly_stage.sh now WAITS for the stage load instead of sleeping a fixed guess. The
fixed sleeps worked until they didn't: one load ran long, the script pressed START
into a black screen, and every later step went to nothing while the screenshots
recorded a plausible-looking sequence. It now polls for a non-black frame and
aborts with a pointer to the log if the load hangs (PhysicalHeap::Release
failures) rather than continuing blind.

The probe itself did not run this iteration -- the stage load hung -- so there is
no new axis data, and none is claimed.
2026-08-13 22:22:19 +00:00
5f3c618b51 re(flight): axis probe -- lx is roll, ly drives one clean axis, rest not trustworthy
New probe (axis_probe.py) decomposes every held input into all THREE rotation
components at once, instead of measuring one axis at a time through a non-forward
matrix row -- the flaw that once made roll and pitch produce identical numbers.
For previous rows (f,u,w): roll = atan2(u.w_old, u.u_old), and forward's rotation
toward each of the other two rows gives the remaining pair.

Stage 02, file pad, full deflection on exactly one channel at a time:

    lx+   roll 209.8   b 0.9    c 10.1     deg/wall-s
    ly+   roll   0.0   b 154.1  c  0.0
    rx+   roll   0.0   b 0.0    c  0.0
    ry+   roll 161.1   b 87.0   c 37.1
    LB/RB all zero

What this supports: lx = ROLL, cleanly (~0 on both other channels), agreeing with
the independent roll measurement. ly drives ONE axis, cleanly.

What it does NOT support, and I am not claiming:
 - WHICH axis ly drives. entities2 measures row 2 = forward against velocity, but
   rows 0 and 1 are labelled up/right by the D3D convention rather than by
   evidence, and yaw/pitch SWAP if that is wrong. Roll is immune (rotation of
   either non-forward row in their shared plane is roll either way).
 - anything about rx/ry/LB/RB. The run ended on GAME OVER: full-deflection spin in
   a live combat mission gets the craft destroyed, and the only symptom is "0
   player candidates" AFTERWARDS, so late rows may be post-death. rx+ reading all
   zeros and ry+ reading mixed are exactly what a dying craft would produce.

So "yaw: no input found" is NOT resolved. Both gaps are now written into the
probe's header with what would fix them: a liveness check between inputs, and
pinning up-vs-right against world Y.
2026-08-13 22:10:23 +00:00
850b04c606 re(flight): roll DOES depend on speed -- the withdrawal is reversed
Measured about the FORWARD axis (roll_axis.py), which is the fix the withdrawal
specified: express the new up-vector in the old (up, right) basis and take
atan2(u.w_old, u.u_old), so the component along forward -- what pitch produces --
is dropped by construction. The old probe watched a non-forward matrix row, which
sees any rotation that moves it, and that is why two different stick axes produced
the same numbers.

Stage 02, file pad, single-axis holds (lx=32767 with every other channel exactly
0, trigger held in the same write since the pad state is written whole), 5 s
settles, 8 s dwells, each phase bracketed by HUD-clock screenshots:

  min speed (LT)  1 856.9 deg / 8.01 s wall, clock x1.247 -> 185.9 deg/game-s
                  vs AV_Roll_Min 200
  max speed (RT)  1 181.2 deg / 8.02 s wall, clock x1.218 -> 120.9 deg/game-s
                  vs AV_Roll_Max 125

So roll behaves exactly like pitch: the rate cap falls as speed rises and
_Min/_Max mean "at minimum / at maximum speed". The withdrawn claim that roll
shows NO speed dependence is reversed, and the axis rule is now confirmed on a
second axis instead of contradicted by it.

Both land just under their caps (93% and 97%), the right side for a rate limit.
The shortfall is NOT explained and no claim is made about it: candidates are the
craft not being exactly at min/max speed after 5 s, and the 20 Hz swept-angle sum
undercounting.

The tell that the old result was broken was two conditions agreeing too well. The
tell that this one is sound is that they disagree in the direction the definitions
predict, on two independently bracketed phases.
2026-08-13 21:57:10 +00:00
3d3d6726fa re(flight): START skips the briefing, and the player-entity lock is stage-specific
The scripted route now reaches FLIGHT unattended: boot -> main menu -> poke the
cleared-stage mask -> EXTRAS -> MISSION SELECT -> stage -> briefing -> READY ROOM
-> TAKE OFF -> flight, verified by a full HUD (TIME 00:52.54, speed 350, shields,
REMAINING OB 018) on stage 01.

Two things that cost a run each:

START skips the briefing; A does not. A pages through the brief, and ten A taps
still left the run sitting on a briefing screen -- twice, on two different
stages. One START press lands on the READY ROOM. fly_stage.sh now presses START.

entities2.py's `self` locked on `"Player" in name`, and that suffix is
STAGE-SPECIFIC: stage 02 fields UN_f002_TCAF_DeltaSaber_W_Player, but stage 01
fields UN_f001_TCAF_DeltaSaber_T with no suffix, so the filter found nothing
while the game was visibly flying and reporting 64 typed live entities. Falls
back to the craft class and prefers the instance that is actually moving (a
mission holds more than one). Recorded rather than worked around, because the
same assumption is embedded in several probes.
2026-08-13 21:45:54 +00:00
0b2f004ad0 re(flight): port the roll probe to the file pad, and drive fly_stage.sh to flight
roll_axis.py was written last session to re-measure roll ABOUT THE FORWARD AXIS --
the fix for the withdrawn result, whose defect was the MEASUREMENT (a non-forward
matrix row sees any rotation that moves it, and pitch moves it as much as roll)
and not the input device. It was never run, and it still drove vgamepad, which is
retired for leaking to the host.

Ported to the file pad. The important difference is not the device but the shape:
the file pad is a SNAPSHOT, not independent channels -- each write replaces the
whole state -- so holding a trigger while deflecting a stick has to be one write.
pad_state(**kw) does that. The values are also exact rather than whatever a
virtual stick quantises to, which is what makes a single-axis hold (lx=32767 with
everything else exactly 0) trustworthy for an axis-separation question.

fly_stage.sh now drives the rest of the route it previously stopped short of:
briefing (A: Continue) -> READY ROOM -> up to TAKE OFF -> flight, and notes why
it must get there at all (a snapshot at the briefing yields zero unit-definition
objects; they are instantiated at stage load proper).
2026-08-13 21:37:44 +00:00
faa7b3d611 re(challenge): the part id is never persisted -- differential search says stack only
No literal 26 exists anywhere, so the GamePart id is computed. That does not stop
it being found: the id is KNOWN at each screen from the GamePart table (EXTRAS = 5,
MISSION SELECT = 7), so snapshot both and intersect. New tool diff_words.py does
the classic differential search over the sparse guest image, and find_partslot.sh
drives the two screens and runs it.

Result: 171 MB scanned, exactly 4 addresses read 5 then 7 -- 0x708FFBEC,
0x708FFCBC, 0x708FFDAC, 0x708FFE20 -- and all four are guest STACK (the same run's
log puts thread stacks at 0x709...). So the requested part id exists only as a
stack argument in flight; there is no persistent field, which is consistent with
finding no literal store, and means there is nothing stable to poke.

That closes the last memory-and-menu route to the challenge missions. Reaching
them needs either the genuine in-game unlock (an in-mission attainment, per
AVSCRIPT_COMMAND_ATTAINMENT_CHALLENGE_MISSION_CARGO_SCORE) or an emulator-side
hook that forces the transition -- a code change, not a poke.

diff_words.py is worth keeping well beyond this question: it locates any field
whose address is unknown but whose value is known at two moments.
2026-08-13 21:31:47 +00:00
a79a1da183 re(challenge): withdraw the kind-field constructor attribution -- snapshot refutes it
Section 4 claimed the mission-kind field at obj+144 "is initialised to 0 in the
constructor sub_821783D8, alongside +148 = 0, +132 = 2, +136/+140 = -1". That
linked two code regions on nothing more than both touching +144/+148, and an
in-flight snapshot refutes it:

sub_821783D8 initialises the STATIC at 0x828F3EC0 -- its first act is
InitializeCriticalSection(obj, 256) -- and in the snapshot that object holds
0x000B1C8B at +144 and a float at +592. Not a kind, not flags. So the object that
owns the kind field is UNIDENTIFIED. Scanning the snapshot for it (kind in
{0,3,5,6} at +144, stage 10 at +148, pointers at +0/+52/+604) returns only
matches inside the executable's own static data; the value 10 at +148 is far too
common to discriminate.

The switch itself stands -- it is direct disassembly at two independent sites
(0x82184df0, 0x82185ed0) plus two grouping tests. Only the attribution was wrong,
and the wrong half is the half I inferred rather than read.

Confirmed on screen instead: launching a story stage from MISSION SELECT reaches
a READY ROOM carrying an "EXTRA" watermark -- the EXTRA config section, kind 3,
visible in the UI. Independent evidence the field means what section 4 says even
though its owning object is not pinned.
2026-08-13 21:21:49 +00:00
4cbce6bd21 re(units): S10 closes the story campaign for real -- 69 units, 7 204 values
roster_target had flagged a contradiction: S10, a STORY stage, still fielded an
unharvested unit, which the "story campaign complete at 68 units" claim did not
account for. S10 was simply never flown. Flying it settles it:
UN_e005_ADAN_ElanTypeQ_Margras is in the snapshot, 144 rows, and the merge takes
the file 68 -> 69 units, 9 393 -> 9 537 rows, 7 115 -> 7 204 defaulted-on-disc
values, with 154 disc cross-checks agreeing and 0 disagreeing. roster_target now
reports S10: 0 missing, and every remaining gap is a CHALLENGE stage
(S24/S25/S27/S28/S29).

A much simpler way to fly a story stage, replacing the save-editing route
(tools/re-capture/fly_stage.sh): poke ONE word -- 0x828F40C0 = 0x0001FFFE marks
stages 1-16 cleared -- and MISSION SELECT will launch any of them. Nothing is
written to disc, so there is no save to back up and restore, and TRAP 1 from the
old recipe (launch_mission.sh silently loading the last-used slot) cannot happen.

Route, learned by screenshotting each step: MISSION SELECT -> pick stage -> A ->
mission briefing (A: Continue) -> READY ROOM -> TAKE OFF -> flight. The READY
ROOM carries an "EXTRA" watermark, which is the static analysis's mission-KIND
= 3 ("EXTRA" config section, docs/re/challenge-mission-gate.md section 4) visible
on screen -- an independent confirmation of that field's meaning.

Also recorded: a snapshot taken at the BRIEFING yields 0 runtime objects. Unit
definitions are instantiated at stage load proper, so the snapshot has to wait
for flight; the briefing screen is too early.
2026-08-13 21:14:21 +00:00
aac017dd0d re(challenge): poking unlocks the whole story campaign; MISSION SELECT is story-only
Two results from the running game, one positive and one a clean negative.

POSITIVE: with word A = 0x0001FFFE (stages 1-16) every entry Stage01..Stage16 is
selectable, where the control run had only Stage01 and the rest greyed. Stage16
reads "Lonely Blue Planet - NO RECORD". So any story stage can be launched from
the menu by poking one word, with no save editing at all -- a simpler lever than
the GHAD stage-field patch used until now.

NEGATIVE: with word B = 0x3F (challenge stages 24-29 marked cleared) the list
still saturates at Stage16 -- the cursor stops there and further presses do
nothing. That matches the disc: the debriefing config declares exactly
px_deb_stage01..16, so the list is capped by data, not by the mask. The
challenge missions are NOT reachable through MISSION SELECT, and word B does not
feed it.

Also mapped, without finding the caller: the GP_DIALOG registry (tables.pak #41)
gives DLG_GO_CHALLENGE_MISSION_MENU = 41 and DLG_CHALLENGE_MISSION_AVAILABLE = 42
(0-based, in config order). No raw immediate 41/39/37 appears anywhere in the
GamePart code region, so dialogs are raised through a computed index and the
entry point to GamePart 26 is still unknown. New probe: examples/screen_configs.rs
dumps any tables.pak screen config by substring.
2026-08-13 20:54:57 +00:00
3ef2c438ae re(challenge): MISSION SELECT renders the cleared-stage mask, and a control run
With word A = 2 the screen lists Stage01 SELECTABLE, carrying a High Score and a
Best Time, and Stage02-Stage08 GREYED OUT. One cleared stage, one selectable
entry, at the bit index that names it -- the mask's meaning is now visible on
screen rather than inferred from disassembly.

Two runs, identical navigation, fresh boot each:
  control  word A 0x00000002  -> MISSION SELECT opens normally
  poked    word A 0xFFFFFFFF  -> MmAllocatePhysicalMemoryEx fails on 128 MB,
                                 guest throws, Xenia shows "Disc Read Error"
So last commit's heap failure was caused by the poke, and by a careless one:
0xFFFFFFFF claims stages that do not exist (0, 17, 24-31 in word A). Poking only
real story ids (0x0001FFFE = stages 1-16) does not blow the heap. That the list
screen changes behaviour with the mask is itself evidence word A feeds it.

Getting a trustworthy control took three tries, and every failure produced a
plausible wrong answer rather than an error:
  1. the title-glyph oracle fired during the ATTRACT MOVIE, so A was pressed at
     nothing and the run "reported 0 failures" for a screen it never reached;
  2. Xvfb keeps the previous instance's framebuffer until the new one draws, so
     a screenshot seconds after launch showed the OLD run -- "MAIN MENU reached
     after 1s", against a process that no longer existed;
  3. a single-pixel "is NEW GAME white?" test matched a white LOADING FLASH.
Fixes, all in challenge_probe.sh: blank the root and refuse screen oracles for
the first 40 s; identify a screen by a PATTERN of sampled points (white text AND
the dark panel behind it), not one pixel; require two consecutive samples. The
new oracle was validated offline against all six saved screenshots and accepts
exactly the one real main menu.

General lesson worth the words: a navigation oracle that can only fail by
returning the wrong screen will happily produce a whole run of confident,
meaningless results.
2026-08-13 20:44:27 +00:00
0bc790de52 docs(index): record the file-input pad and the live-write tool 2026-08-13 20:29:18 +00:00
023bb71cfd re(challenge): the cleared-stage mask is CONFIRMED on the running game
Booted the title and read the two gate words live:

    0x828F40C0 = 0x00000002     word A
    0x828F4814 = 0x00000000     word B

Word A = 2 = bit 1. The profile's save is Stage 02 "At Standby" -- stage 01
cleared -- so the mask is exactly one bit, at the index of the one cleared
stage, 1-BASED. Reproduced across two cold boots. That confirms against a known
progress state, on the real game:

  - the singleton is the static object at 0x828F4070, as derived statically;
  - word A is a cleared-stage bitmask (not achievements, not a stage number);
  - bit index = stage id, 1-based, so TimeAttack's REQUIREMENT 16 means "clear
    stage 16" -- the last story mission;
  - word B is the challenge half and is 0 on a story-only profile.

New tools: gpoke.py (live guest-memory WRITE, companion to gmem.py, prints
before/after for every word), pad.py (drives the new --hid=file pad; replaces
vgamepad, which leaked to the host through /dev/uinput), challenge_probe.sh
(one blocking session: boot, wait for title, drive in, poke, screenshot).

Poking both words did NOT surface a challenge entry in EXTRAS -- and that menu
was built 26 s after the poke, so it is not staleness. Entering MISSION SELECT
then failed, but the log names the real cause and it is not the gate:
MmAllocatePhysicalMemoryEx could not satisfy a 128 MB request (parent free
30633/131072 pages), the guest threw a C++ exception, and Xenia surfaced its
generic "Disc Read Error". It is preceded by "BaseHeap::Release failed because
address is not a region start" -- a failed release leaking the range. Recorded
as an emulator heap problem, with the control run (same navigation, no poke)
named as the next step.
2026-08-13 20:28:19 +00:00
f490fecefb re(challenge): both gate words are one ~1880-byte record, and it is not the save
Two results, one of which kills an operational hope I had been carrying.

THE RECORD IS MUCH BIGGER THAN I MEASURED. Reading 0x82175110 to the end: after
the two words, the 8-byte pair, the 184-byte memcpy and the 8 words at +200, it
copies 816 bytes at +232, 816 more at +1048, a sub-object at +1864 and a final
word at +1876. So the record spans +0..~+1880 = singleton +80..+1960, which means
word A is record +0 AND WORD B IS RECORD +1876. That retires last commit's "word
B has no known writer": there is no separate store because the whole record is
copied out, modified and assigned back as a unit (0x8216FF70 -> compare
0x822C3708, assign 0x82170650, then a worker 0x821700A8 -- note 168 decimal, not
hex, which I misread first time -- retrying a commit 0x822C33B8 up to five times).

IT IS NOT THE SAVEGAME, by two independent checks:
 - size: every real save on disk is a 276-byte container deflating to 545 bytes;
   the record is ~1880. It does not fit.
 - files: after many sessions the content tree holds only game0N/savedata and
   game0N/__thumbnail.png per slot plus three Headers/*.header. No second data
   file exists anywhere under the title id.
Also negative: the savegame object is *(*(this+4)) + 304, and the singleton's
holder address 0x828F48B0 is referenced NOWHERE outside the accessor, so this+4
is a different holder -- the save block is not a window into this record.

=> Hand-editing a save cannot unlock the challenge missions. The earlier
savegame-editing win does not extend here.

WHAT WOULD WORK. The singleton is a static object at 0x828F4070 (0x8216F650:
addis 0x828F + addi 16496), so the gate words sit at fixed guest addresses with
no scanning: word A = 0x828F40C0, word B = 0x828F4814. Canary maps guest RAM into
/dev/shm and the project already reads it live, so writing 0xFFFF / 0x3F there
while the title sits on a menu should open all six challenge missions without
playing the campaign -- the route to the last 42 EX units. Untested; needs a run.
2026-08-13 20:06:11 +00:00
20299c05a1 re(challenge): the gate is CLEARED STAGES -- my achievement reading was wrong
Third revision of this claim, and this one has the writer.

Word A (singleton +80) has exactly ONE writer in the image. Scanning all 22
callers of the +80 struct copier (0x82175110) for one that stores to the copy's
word 0 gives a single hit, 0x821C1820, inside GamePart_StageClear:

    if (this+1004 & 0x20000) skip           ; already recorded
    copy local = singleton->progress        ; src = obj+80
    local.word0 |= 1 << (this+84)
    if changed: singleton->set(local)       ; assign + async persist

and this+84 is the STAGE NUMBER, by two independent uses: 0x821C1760 indexes a
20-byte per-stage record array with it (this + (x+7)*20, three words plus an
8-byte timestamp -- the savegame's 16x20 SHAB shape), and 0x821C1EEC/0x821C1924
pass it as the index into the config key "STAGE" (0x820A2540), the debriefing's
px_deb_stage01..16 sprite list.

So a challenge mission's REQUIREMENT n means "stage n has been cleared", and the
<24 / >=24 split is the disc's own stage numbering: story 1-16 and tutorial 18-23
in word A, challenge 24-29 as word B bits 0-5. TimeAttack needs stage 16 -- the
last story mission -- and the other five chain off challenge stages 25-29. That
is what the raw numbers suggested in the first place.

REFUTED: "the bit space is the game's 24 achievements". ACHIEVEMENTS_REQUIREMENTS
having 24 entries and the gate splitting at 24 is a COINCIDENCE -- 24 is also the
first challenge stage's id. Nothing copies the Debriefing's masks (+208/+736/+740)
into +80, which is the check that should have preceded the claim.

The achievement work itself stands and is kept, retitled and rescoped in
structures/achievements.md: the XACH table (.pe 0x8FBCBC, 36-byte records,
1000G self-check), the 24 names/descriptions, the on-disc ACHIEVEMENTS_REQUIREMENTS
list, and the XACHIEVEMENT_DETAILS/XAM read path. It just does not gate the
challenge missions.

Still open: word B (+1956) has no known writer -- GamePart_StageClear's
unconditional 1 << x would land a challenge stage on word A bits 24-29, not word
B, so clearing a challenge mission must be recorded by another path (presumably
the one that also stores its Time/Points record).
2026-08-13 19:54:39 +00:00
90e0e66c7b re(achievements): earned state comes from XAM, and my bit numbering was wrong
Two findings, one of them a correction to the previous commit.

FOUND: GamePart_Debriefing enumerates XACHIEVEMENT_DETAILS from XAM
(0x8218F888). The records are 36 bytes -- confirmed by the arithmetic, not by
eye: the count is a byte count divided by 36 through the 0x38E38E39 multiply-high
magic plus srawi 3. Field +0 is used as a shift amount, field +32 is tested for
0x00020000, and the buffer sits behind a handle that is waited on (0x824AA330
with -1) then closed (0x824AA3E0). That is the XDK struct exactly, with
XACHIEVEMENT_DETAILS_ACHIEVED == 0x20000, via the
XamUserCreateAchievementEnumerator / XEnumerate pattern.

So the title does NOT persist earned achievements itself -- it asks the console.
The lever for achievement-gated content is the emulator's PROFILE data, not the
savegame. Independently, the singleton the challenge gate reads is not the object
holding the save block: re-scanning all 202 accessor call sites WITH function-
boundary stops touches only +80/+1956/+1960/+1964 and none of the known save
offsets (+304/+316/+320/+336/+380/+440). The earlier scan that seemed to find
them had register tracking bleeding into the next function -- a false positive I
am recording rather than quietly dropping.

CORRECTED: the previous commit claimed "bit n <-> achievement n+1" and treated
the Debriefing award pass and the challenge gate as the same bit space, both as
confirmed. Neither holds up:

- the only place the image is observed turning an achievement into a bit does
  1 << dwId with 1-based ids, so bit = the id and bit 0 is unused;
- the "list index is the bit index" step assumed 0x82448338's out-parameter is
  the loop ordinal. It is the child entry's first word out of a 12-byte array,
  and whether that is an ordinal, an id or a name hash is not pinned;
- the Debriefing's masks are its own fields (+208/+736/+740). Nothing observed
  copies them into the singleton's +80, and no writer of that bitmask has been
  found at all.

The requirement-type/id agreement still stands, but it confirms the LIST ORDER,
not the bit numbering. Consequence: if the join holds, TimeAttack's REQUIREMENT
16 is achievement 16 (Night Ravens Patch), not 17 (Solar System Defense Award).
Both read plausibly as a first-challenge gate, which is exactly why it needs
evidence and not the better story.

Also noted: +1960 is a third bitfield on the same singleton, and a what-changed
pass at 0x8219F3A4 diffs it and reports each newly set bit as bit + 64 -- so
there is a wider flag-id space whose bases are not yet worked out.
2026-08-13 19:43:35 +00:00
33ae20896e re(challenge): the gate's bit space is the game's 24 ACHIEVEMENTS
Static only. Last commit left "REQUIREMENT is a bit index into a progress
bitfield" with the space unidentified. It is the achievement space, and both
halves are now readable off the disc and the executable.

- GamePart_Debriefing (0x8218CF38-0x82191B18) awards them: sub_8218F9A8 walks
  the on-disc ACHIEVEMENTS_REQUIREMENTS list (tables.pak #16, schema 744c0519),
  and for entry index n tests bit n, evaluates the entry when clear, and sets
  the bit when satisfied. The list is literally ACHIEVEMENT01..ACHIEVEMENT24 --
  24 entries, which is exactly where the challenge gate splits word A from
  word B.

- The XEX carries the definitions: XACH at .pe 0x8FBCBC, 36-byte records
  {id, name_id, unlocked_desc_id, locked_desc_id, image_id u32, gamerscore u16,
  pad, flags u32, 16 zero bytes}, strings from one XSTR per language (English is
  table #5). tools/xach_dump.py parses it. SELF-CHECK: the 24 gamerscores sum to
  exactly 1000, the retail total -- a wrong stride does not land on a round 1000.

- The two sources agree on ORDER independently: the requirement types
  ShootDownAircrafts 1000/10000, ShootDownShips 100, ShootDownWeight MegaTons,
  GetAllWeapons and GetAllAchievements line up with ids 19-24 exactly as XACH
  names them. So bit n <-> achievement n+1 is evidence, not inference. (Those
  last two are requirement TYPES, not debug cheats, despite how they read.)

- Corollary: TimeAttack's REQUIREMENT 16 -- the one value that sits in direct
  value-before-key adjacency, so it survives IDXD dedup -- is bit 16 =
  achievement 17, "Solar System Defense Award", i.e. finish the story campaign.
  The other five values (25-29) are >= 24 and so index word B, a second flag
  space, plausibly a challenge-clear chain. Still 🟡.

REFUTED, from the last commit: the stores to +1956 in 0x822AF278 / sub_822C8748
are NOT this singleton. That object comes from 0x822CEB30, checks a +2652 flag
and stores string POINTERS at +1956/+2024 -- and a pointer ANDed with 1<<n is
meaningless as a gate. So nothing in the image writes this singleton's +1956
field-wise, and where the mask persists (save vs Xbox profile) is open. XEX
imports are by ordinal, so absent XamUser* strings are not evidence either way.
2026-08-13 19:32:43 +00:00
8ecd70f1bc re(challenge): the unlock is a bit test, and the mission table is on disc
Static only. Bounding each GamePart's code block by its factory creator thunk
(id -> creator recovered for 22 of 24 registrations at 0x8280C000-0x8280F800)
puts GamePart_ChallengeMission at 0x82187E60-0x8218CF10. Resolving every string
that block references gives the screen's config schema, and the record itself is
on disc -- tables.pak schema 54a10697, one copy per language, English entry #64.

Six missions: TimeAttack (record Time), ScoreAttack (record Points) and
Extra01..Extra04, each with MISSION_ID / REQUIREMENT / REQUIREMENT_DESC /
THUMBNAIL / STAGE_DESC / NEW_STAGE and a NORMAL_BUTTON / GRAY_BUTTON pair -- so
the screen always lists all six and greys out what is not earned.

THE GATE (0x82189970-0x821899D8), read off the code:

  REQUIREMENT absent      -> available
  REQUIREMENT == "Always" -> available
  else n = atoi(REQUIREMENT)
      n == 0              -> locked
      n <  24             -> test bit n      of the word at singleton+80
      n >= 24             -> test bit (n-24) of the word at singleton+1956

The singleton is 0x821707C0 (lazy, global 0x828F48BC). So availability is one
bit in a progress bitfield and REQUIREMENT is a bit INDEX -- not a stage number,
score or difficulty.

Values per mission are 🟡: the pool's numeric tokens are 16/25/26/27/29 and
24/28 already appear earlier as font metrics, so they would be deduped -- which
fits 24..29 but IDXD dedup makes positional pairing unsound here, so it is
recorded as a hypothesis, not a table.

Negative: the requirement TEXT is not in GP_CHALLENGE.pak (TextIndex over it =
0 entries; its only prose is embedded font copyright). Its PATH is a per-language
branch the loader does not currently reproduce.

Next: three stores to +1956 sit in 0x822C7DD0 / 0x822C8748, the same region as
the save serializer 0x822C00E8 -- if the bits are save-backed, a hand-written
save unlocks all six challenge missions and the last 42 units become one run.
2026-08-13 19:14:48 +00:00
10a96844ba re(challenge): the EX missions are a MODE, not a stage number
Static-only (no emulator, no pad input). Three findings, each with its own
evidence:

- The disc holds exactly 29 StageResource records in three families --
  S01-S16 story, S18-S23 tutorial (all bg=Original), S24-S29 challenge, plus
  Test. That is 16 + 6 + 6 + 1, matching weapon.tbl's stage01..16 /
  tutorial01..06 / challenge01..06 key set exactly. S17 does not exist.
  GP_CHALLENGE.pak has 0 IDXD objects -- it is the menu screen; challenge
  missions reuse GP_MAIN_GAME_E.pak's records.

- The GamePart id table is at 0x820A1630 (29 ids). Indices are confirmed by
  the image's own RegisterToFactory<N, class silph::GamePart_*> text, not by
  position: GP_CHALLENGE = 26, GP_TUTORIAL = 25, GP_BUNK = 10.

- The stage loader selects its config section from a mission-KIND field at
  object+144: 3 -> EXTRA, 5|6 -> CHALLENGE, else FILE (two independent sites,
  0x82184df0 and 0x82185ed0; two more classify {3,5,6} as one group). The
  constructor sets it to 0 and every write inside the class only clears it,
  and no immediate 3/5/6 store to it exists image-wide -- so the kind is
  supplied by the launching GamePart, never derived from the stage number.

That last point is a mechanism (unproven) for why patching the save's stage
field to 27 kills the load: the record is a challenge stage but the kind stays
FILE. Names an untried, zero-cost discriminator -- try stage 18-23.

Also flagged, not resolved: roster_target says S10 (a STORY stage) still
fields an unharvested unit, which contradicts the "story campaign complete"
claim by one unit.
2026-08-13 18:59:52 +00:00
eac92c3e44 re(flight): withdraw the roll result — the probe was measuring pitch as much as roll
Re-running roll with 5 s settles and in-run clock brackets:

  this run's clock: TIME 00:34.93 -> 00:45.97 = 11.04 s game in 7.98 s wall = 1.383
  min speed: 90.6 deg/wall-s /1.383 -> 65.5 deg/game-s  (AV_Roll_Min 200)
  max speed: 59.1            /1.383 -> 42.7             (AV_Roll_Max 125)

The corrected numbers are within a few per cent of the PITCH run's 67.8 and 40.9 —
two different stick axes cannot produce the same rates, so the probe is not
separating them. Cause: watching a non-forward matrix row sees any rotation that
moves that row, and pitch moves it as much as roll. The correct measure is rotation
ABOUT the forward axis (project the row onto the plane perpendicular to forward and
track that angle).

So "roll shows no speed dependence, unlike pitch" is withdrawn: it rested on 2 s
settles and a row that mixes axes, and the two runs disagree with each other
(144/150 then, 90.6/59.1 now). AV_Roll_{Min,Max} are not confirmed and the axis
question is open.

The clock ratio is now measured three times in three flights: 1.260, 1.311, 1.383 —
a property of the moment, not the machine, so every rate probe must bracket its own
phases.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 18:12:20 +00:00
8b10c0451f re(flight): the clock factor is universal — angular matches too once corrected in-run
pitch_gametime.py brackets each turn phase with HUD screenshots, so the mission
clock's own advance converts wall seconds to game seconds within the same run:

  this run's clock: TIME 00:33.68 -> 00:44.12 = 10.44 s game in 7.96 s wall = 1.311

  pitch @ min speed  88.9 deg/wall-s  /1.311 -> 67.8 deg/game-s  vs AV_PitchMinus_Min 75
  pitch @ max speed  53.6            /1.311 -> 40.9             vs AV_PitchMinus_Max 40

Both land on the definition (the slow phase 10% low, consistent with including the
AA_* ramp in an 8 s window), so the clock explanation covers angular motion as well:
every stated rate is per GAME second.

The ratio is not a machine constant — 1.260 in the earlier flight, 1.311 here — so it
must be measured in the same run as whatever it corrects. Bonus: the same shots show
the HUD reading 102 at full LT against MinimumVelocity 100.

Also documents the trap that cost three runs: a killed Canary leaves both its shm
image and its last frame on screen, so a dead emulator looks alive and the scans
report "0 moving triples" like a tooling bug. pgrep -x matches zombies, so
speed_law.require_live_emulator() checks the process state letter and refuses to
measure a corpse.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 17:56:16 +00:00
ae5f322c03 re(flight): the linear factor is the CLOCK — 1.260 measured against 1.267
Cleanest linear measurement: neutral throttle (HUD = CruisingVelocity 350), sticks
centred, 20 s of perfectly straight flight (displacement/path = 1.000):

  8 900 world units in 20.1 s -> 443.6 /s -> 1.267x the HUD's 350

And the game's own mission timer across a wall-clock interval:

  TIME 00:08.79 -> 00:46.97 = 38.18 s of game time in 30.29 s wall = 1.260

Same number. So the linear discrepancy is not a unit difference: the mission clock
runs ~1.26x faster than wall time under this emulator, and dividing world
displacement by WALL seconds inflates speed by exactly that. World units and
displayed speed share one unit; the definition velocities are per GAME second.

This supersedes the previous "world-unit vs displayed-speed" reading.

Left open (): settled turn rates measured 74.9/41.1 deg/s in wall time against
AV_PitchMinus_Min/Max 75/40, but the clock argument predicts ~94 for the first.
Either that agreement was luck inside a noisy sample (per-window rates spanned
61-96) or angular integration is frame-based where linear is time-based. The check
is to re-measure pitch and convert wall->game seconds with the clock ratio.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 17:26:27 +00:00
0cb81b6200 re(flight): the linear discrepancy is a world-unit vs displayed-speed difference
Screenshotting the HUD speed readout at each throttle step, beside the
position-derived measurement of the same moment:

  RT 0.00   HUD 350 (= CruisingVelocity)   position ~447   ratio 1.28
  RT 0.25   HUD 507                        position ~652   ratio 1.29
  RT 0.75   HUD 963                        position ~1141  ratio 1.19

So (a) the HUD speaks the definition's units — exactly CruisingVelocity at neutral,
963 at three-quarters against the 987 the interpolation predicts — confirming the
throttle law in the game's own numbers without any position sampling; and (b) world
displacement runs ~1.2x the displayed speed. Since settled angular rates need no such
factor, this is a unit difference between the position triple and the velocity
fields, not a clock effect: a reimplementation moving entities at MaximumVelocity in
world coordinates will be ~20% slow.

Also fixes speed_law.find_player: a mission holds more than one *_Player object and
at least one never moves, so the finder now samples each candidate twice and keeps
the one that displaces. Locking onto the static one is what produced a run of exact
zeros while the game was visibly flying.

🟡 The ratio is 1.19-1.29 rather than a clean constant and every sample was taken in
a firefight; pinning it wants a quiet map.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 17:06:35 +00:00
f6974ff3f0 re(flight): settled turn rates match the definition exactly — withdraw the time-base claim
Re-measured with 5 s of settle per phase and the speed recorded at the moment the
turn starts (flight_law3.py):

  pitch @ 130/s    74.9 deg/s   vs AV_PitchMinus_Min 75
  pitch @ 1821/s   41.1         vs AV_PitchMinus_Max 40
  roll  @ 110/s   129.5         vs AV_Roll_Min 200
  roll  @ 1722/s  149.3         vs AV_Roll_Max 125

Pitch lands on the definition's own numbers with NO scale factor, so the ~1.2x I
attributed to the emulated time base two iterations ago was an artefact of
differentiating during the AA_* acceleration ramp with too little settle. That
explanation is withdrawn: AV_* can be used verbatim.

What remains is only on the linear side — settled speeds still read high and vary
between runs (RT full: 1342 in one flight, 1821 in another, vs MaximumVelocity 1200),
consistent with a craft being shoved around in a firefight. The HUD reads exactly
CruisingVelocity at neutral. A clean linear measurement needs a quiet map; no cause
is claimed until then.

Roll re-measured with proper settles confirms the axis difference: no speed
dependence, both regimes near AV_Roll_Max, where pitch moved 75 -> 40.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 16:46:33 +00:00
6ebbbeff65 re(flight): LT mirrors RT, and roll does not depend on speed
One flight, two measurements (flight_law2.py, binding early so the moving-craft scan
can see the player).

LT curve: 436, 379, 289, 209, 126 units/s across LT 0.00 -> 1.00 — a straight ramp,
whose endpoints after the ~1.2 time-base factor are CruisingVelocity 350 and
MinimumVelocity 100. So the law is symmetric:

  RT: target = Cruising + RT * (Maximum - Cruising)
  LT: target = Cruising - LT * (Cruising - Minimum)

Roll (measured on a non-forward matrix row, since roll turns about the forward axis):
~144 deg/s at minimum speed and ~150 at maximum — no speed dependence, where pitch
dropped by a third to a half between the same regimes. After the time-base factor
that is ~121, i.e. AV_Roll_Max 125 in BOTH regimes.

So _Min/_Max does not mean the same thing for every axis: pitch interpolates with
speed, roll appears pinned at Max. A reimplementation applying one rule to all axes
would get low-speed roll wrong by ~60%.

Caveat recorded: the two roll phases were 2 s of settling apart, marginal for a
126 -> 1342 speed change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 16:30:19 +00:00
4dbd4f6cef re(flight): the throttle is analogue — target speed interpolates cruise -> maximum
RT is an analogue trigger, so "held" was one point on a curve. Walking it 0.00 ->
1.00 (throttle_curve.py) gives a straight ramp: 438, 626, 879, 1094, 1342 units/s.
Dividing by the ~1.2 time-base factor, the endpoints land on the definition's own
numbers (365 vs CruisingVelocity 350; 1118 vs MaximumVelocity 1200) and the midpoint
follows, so

  target speed = CruisingVelocity + RT * (MaximumVelocity - CruisingVelocity)

which refines the earlier "selects one of three targets" reading: those three are the
curve's endpoints.

It also refutes the standing afterburner hypothesis that full RT is the burner: the
curve is smooth through full deflection with no step, and the shield does not move.

The LT half is not measured yet — the entity scan needs the craft moving when it
runs, so a mission left idling drops out of it. Bind early.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 16:14:47 +00:00
fb1405b13f re(flight): the afterburner is not on A/B/X/LB/LS/RS — bounded negative, with a cheap HUD oracle
The definition describes the burner (AB_ConsumeShield_Begin 50, AB_ConsumeShield 10,
AB_AV_* turn caps well below normal) but names no input, and carries no AB velocity
field.

Three probes, all negative for A, B, X, LB (plus LS/RS on the first):
- ab_probe.py: hold RT for a max-speed baseline, then each candidate — speed stayed
  inside the baseline's own noise band every time.
- ab_state_probe.py: sample a window of the player object during each hold and
  report any float that falls — nothing fell.
- HUD oracle needing no offsets: count green pixels of the SHIELD bar on a freshly
  spawned craft. AB_ConsumeShield_Begin 50 should take a visible bite; the bar read
  156/156/156/157/157 across baseline and all four buttons.

So the burner needs a chord, an input this pad cannot reach, or belongs to another
craft/the AI. Recorded so the obvious buttons are not re-probed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 15:51:32 +00:00
86fcfcc8b0 re(flight): turn rates confirm AV_* are rate caps and _Min/_Max mean at min/max speed
turn_law.py pins the speed regime with a throttle, holds a stick axis and
differentiates the craft's own forward vector over 1-second windows.

  slow + nose down  ~87 deg/s   (AV_PitchMinus_Min 75)
  fast + nose down  ~54         (AV_PitchMinus_Max 40)
  slow + nose up   ~175         (AV_PitchPlus_Min 150)
  fast + nose up   ~136         (AV_PitchPlus_Max 70)

So agility falls with speed (_Min/_Max are at minimum/maximum speed, not rate
bounds) and pitching up is ~2x pitching down, exactly as the field pairs say.

Control mapping measured: LX is roll (forward vector barely moves, 3-5 deg/s), LY is
pitch (+1 = nose down per vgamepad's LY: -1 = up), and the right stick does not steer
at all.

The ~1.2x overshoot seen in the speed law appears again here (1.16-1.35x), and a
unit scale cannot explain both m/s and deg/s — a TIME BASE can: if the guest's
simulated second is shorter than the wall-clock second the probe measures against,
every rate reads high by the same factor. So the definition numbers are
self-consistent and these measurements confirm the shape of the law, not a scale.

Recorded 🟡: no yaw input found (AV_Yaw_* exists but neither stick yaws), which with
roll on LX and MaximumBank_Normal points at a bank-to-turn model.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 15:30:00 +00:00
1efc3f567d re(flight): the throttle is a target-speed selector, measured against the definition
speed_law.py locks onto the player entity once and samples its position while
holding each throttle input, differentiating over 1-second windows.

  no throttle  -> ~420   (CruisingVelocity 350)
  RT held      -> ~1 530 (MaximumVelocity 1200)
  LT held      -> ~125   (MinimumVelocity 100)
  release      -> back to cruise, from either direction

So the throttle SELECTS a target speed rather than adding thrust — which is what a
reimplementation would most likely have assumed from Acceleration/Deceleration
alone. Those govern the convergence rate instead: ~440 units/s^2 measured on
release (Deceleration 500) and ~470-560 under RT (Acceleration 600).

Recorded as 🟡: measured world speeds run ~1.2-1.3x the definition numbers in all
three regimes while the HUD shows the definition value exactly (350 at cruise), so
world coordinates are a constant multiple (~1.25) of the definition's velocity unit;
the spread is wider than the constant is precise because the craft manoeuvres while
sampled.

Three traps documented: RT/LT are analogue triggers (the button verb is a silent
no-op and the first run measured an unflown craft), per-sample differentiation
aliases against the guest's update rate (0, 1519, 1985, 0, 2681 for smooth flight),
and the player entity only enters the typed scan ~15 s in while the craft dies within
minutes if nobody flies it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 15:08:11 +00:00
6d0bdf0179 re(units): S08 closes the story stages (68 units), and GAME_CLEAR unlocks nothing
S08 gave the last two story-stage units — UN_be005_ADAN_SpaceFortress and
UN_mn500_ADAN_FloatingMine — plus six S08 asteroid collision meshes: 68 units,
9 393 rows, 7 115 defaulted-on-disc values. Every unit any story mission fields is
now read (689 more disc cross-checks, 0 disagreements).

Probe recorded as a negative: setting Game Status (GHAD +48 and its header mirror
+0x18) to 2 = STATE_GAME_CLEAR leaves both menus unchanged — the title still shows
NEW GAME / LOAD GAME / TUTORIAL / OPTIONS / EXTRAS and EXTRAS still shows only
MISSION SELECT / MOVIE THEATER / BACK. So the EX/challenge rosters are not gated on
that field.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 14:39:05 +00:00
0221217968 re(units): six targeted harvests — 60 of 110 units, 6 071 defaulted values
S03, S06, S09, S13, S15, S16 (plus the earlier run): 21 -> 60 units,
963 -> 6 071 defaulted-on-disc values, 8 241 rows. Disc cross-checks agree with
0 disagreements throughout.

- UN_e901_ADAN_Boss and UN_e910_core_ADAN_GeneratorCore are harvested (HP 10 000,
  Size_X 500, Size_Radius 250, MaximumVelocity 450) WITHOUT the boss ever being on
  screen: definitions are instantiated at stage load, so a unit only needs to be in
  the roster. That is far weaker than what the draw-capture work requires.
- The extra stages are not reachable via the save's stage field: stage 27 boots to
  the title and then the emulator exits during the load, as do the other S24..S29
  entries, while story stages 1-16 all load. The field addresses the story campaign
  only; EX/challenge rosters need the Challenge-mode menu path.

Remaining 50 units are almost all EX variants in S24/S25/S27/S28/S29; the only
story-stage stragglers are UN_mn500_ADAN_FloatingMine and
UN_be005_ADAN_SpaceFortress in S08.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 14:14:18 +00:00
bf6825e278 re(units): target missions by roster, harvest S09 — 36 units / 3 439 defaulted values
examples/roster_target.rs ranks stages by how many roster units are still
unharvested. The EnumUnit_S<NN> tables are found by hashing candidate TOC paths
(hash::TOC_NAME_SCHEMES) — UnitRoster::stage can only infer a tag when the roster
carries a UN_S<NN>_ prop, which most do not.

It picked S09 (10 missing). Flying it: 26 -> 36 units, 3 345 -> 4 785 rows,
2 351 -> 3 439 defaulted-on-disc values. New: e102_Battleship, e104_Carrier,
e107_AAFrigate, e011_Attacker_B, e008_TurretPlus, be001_TerrafoamingUnit,
e001_Elan_GR{,_Violeta}, f102_LightCarrier_Inv, f106_Destroyer_Inv.

Also settled: the definition objects are mission-independent. Eleven units appear in
more than one snapshot and four are not byte-identical, but compared through the
layout ZERO mapped fields differ — the 12 differing slots are all unmapped (offsets
4/8/16/20 and 0x250/0x268/0x300-0x308/0x330-0x338: object header and sub-object
pointers). So a harvested value is the definition, not a per-mission tweak, and the
earlier UN_f201_TCAF_Tanker flag resolves the same way. Cross-checks over three
snapshots: 1 052 agree, 0 disagree.

Third angle field found the same way (Through_AngleMaximum = 60 degrees in radians),
so the degrees<->radians rule covers any name containing "Angle".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 13:48:12 +00:00
14d5ed54d1 re(units): read definitions with the code-derived layout — defaulted values 1 059 -> 2 351
unit_runtime.py can only place fields the disc values (it scores triples against
disc records): 58 of 153 from one snapshot. data/unit_definition_layout.txt came
from the title's loader instead, so it places all 159 — including the fields no
disc record sets, which is the Route-B target.

tools/re-capture/unit_dump_layout.py reads every field of every live definition
object with that layout and keeps the discipline: a field the disc DOES value is a
check, not a new value. Over two snapshots (19 objects): 700 cross-checks agree,
0 disagree.

  fields placed per object            58 of 153 -> 159
  rows over those 19 units                  609 -> 2 736
  defaulted-on-disc values (whole file)   1 059 -> 2 351

Two traps recorded: the layout table's offsets are DECIMAL while the solver CSV
prints hex (parsing as hex fails the cross-check on everything — which is how it
announced itself), and angle fields can carry a prefix (AB_AA_PitchPlus is still an
angle, so the AV_/AA_ test must match anywhere in the name).

Flagged: UN_f201_TCAF_Tanker's object is not byte-identical between the two
missions — per-mission override or a runtime-mutated field; needs a third snapshot
to separate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 13:30:49 +00:00
d61baddaf0 re(units): stage select lifts the per-stage coverage limit — 21 -> 26 units
Unit definitions are instantiated per stage, so the parked "coverage grows by
visiting missions" limit was blocked on progress. With the save's stage field
solved, any story stage can be flown from a hand-edited save and snapshotted.

First harvest (a Night Ravens mission, 027 objectives, different roster):
  units with runtime values   21 -> 26
  csv rows                 1 827 -> 2 143
  defaulted-on-disc values   963 -> 1 059

New: UN_e004_ADAN_ElanPlus_N, UN_e006_ADAN_Vindicator_Margras,
UN_f002_TCAF_DeltaSaber_W, UN_f002_TCAF_DeltaSaber_W_Player (a second player craft)
and UN_mn040_Asteroid_Big (47 defaulted values, Size_Z = 2000).

Two traps recorded with the fix: launch_mission.sh presses A on the PRESELECTED
slot, which is the last-used one (03 here), so a probe in slot 01 is ignored — the
first attempt flew stage 02 again and the solver correctly found 0 new units; patch
every slot or confirm the highlighted slot by screenshot. And back up before
patching: the mid-run backup already held the probe, so slot 01 was restored from
the earlier pristine copy (md5 142b4f43…, verified byte-identical).

Token file for the solver: idxd_tokens <GP_MAIN_GAME_E.pak> Generic — 110 UN_*
records, the disc's full unit count.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 13:16:04 +00:00
d1b50dc1e6 re(xbg7): characterise the residual 47 misses — 99.25% of resources decode
examples/why_missed.rs reports the furthest gate per undecoded resource. Disc-wide
that is 47 rows / 43 distinct names, and they are mostly not ship geometry:

  30  e_rou_/_rou_ pose & proxy composites (24-vertex marker boxes, extent 0.010)
   6  .DAT particle composites in ptc_pack
   8  damage/LOD variants (e101_bdy_02_d, e901_wing_05_*_m, ...)
   3  props/other (g005 extent 0.196, _rou_f001_wep_05, e_rou_e005)

By gate: extent 32, coverage 8, winding 7. The extent bucket is almost entirely the
pose-proxy boxes, and lowering that floor was measured and refuted earlier. The one
genuinely interesting residual is e901_wing_05_L/R at winding 0.587/0.570 against the
0.70 floor — the signature of a thin double-sided sheet, unproven without a capture
with the boss on screen (flying stage 16 puts the container in memory but the unit
never appeared).

So: 6 247 / 6 294 resources decode (99.25 %), and every real mesh drawn in three
captured missions decodes at the GPU's own offsets with index runs matching byte for
byte (93/93 and 128/128).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 12:50:19 +00:00
3b35c48fce fix(xbg7): grouped selection prefers the candidate explaining the whole pool; per-sub-mesh decls on by default
With per-sub-mesh declarations enabled, n201_01 decoded as a 2-part fragment 4 bytes
off. Both starts validate for the pivot — 0x32BA718 at pad 2 (earlier in file order,
so first-match took it) and the capture-proven 0x32BA71C at pad 0 — so the pivot
alone cannot separate them; at the early one two of four sub-meshes fall out as
out-of-range.

anchor_grouped_meshes now builds each accepted candidate and keeps the one that
explains the most of the declared pool: it returns immediately when a candidate
explains all n sub-meshes, else keeps the best partial, so it can never decode less
than first-match did. n201_01 lands on all four capture-proven offsets
(0x32BA71C / 0x32BEFF4 / 0x32C416C / 0x32C536C) and its two sibling copies take their
own pools, so the twin collapse is gone.

XBG7_SUBMESH_DECLS is therefore on by default (=0 reverts):

  resources that never decode        85 -> 47
  resources decoding in no container 63 -> 30
  degenerate index runs               1 -> 1   (unchanged)
  cross-container minority decodes   96 -> 96  (unchanged)
  captured index runs, stage-02      93/93     (unchanged)
  captured index runs, stage-05     124/128 -> 128/128

The last line is the point: the buffers the capture could not name are the n201
family, and they now decode and match the GPU's indices byte for byte. Suite green
including twin_pairs_do_not_share_a_buffer, apart from the pre-existing
known-failing cross-container consistency test.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 12:27:56 +00:00
4cdbbc2d48 feat(xbg7): read the per-sub-mesh vertex declarations (XBG7_SUBMESH_DECLS, off by default)
desc_dump shows each index marker is followed by its OWN element triples: n201_01
declares strides 24, 24, 24 and 28 (the last sub-mesh has a fourth element), which
matches the runtime capture's stride=28 on that draw and the four distinct vertex
shaders. parse_vertex_decl read the first declaration for the whole pool.

all_vertex_decls reads one per marker; anchor_grouped_meshes uses each sub-mesh's
own stride for the pool walk, the pivot validation and the read. debug_grouped_report
follows the same setting so the diagnostic cannot blame the wrong gate — at n201_01's
capture-proven pool start it now reports "pad 0: ACCEPTED" instead of a NaN position.

With XBG7_SUBMESH_DECLS=1: resources that never decode 85 -> 47, resources decoding
in no container 63 -> 30, capture oracles unchanged (93/93 index runs, 42/42 index
counts), consistency unchanged at 96.

Off by default because selection has not caught up: the three n201_0x copies then
settle on one pool (twin_pairs_do_not_share_a_buffer fails), production still picks
a start 4 bytes before sub-mesh #1 rather than the proven one even though the proven
start validates and is unclaimed, and four newly decoded ptc_pack .dat composites
carry degenerate triangles. Format truth is settled; choosing among candidates is
the remaining work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 11:45:20 +00:00
27577538cb re(xbg7): a capture names a never-decoding family, and the cause is mixed strides in one pool
capture_ib_truth now proposes an identity for each drawn buffer our decoder cannot
place, by matching (vertex, index) counts against declared-but-not-decoded
resources. That identified n201_01/_02/_03 in Stage_S02.xpr — three of the 63
resources that decode in no container — and the capture pins all four sub-meshes:

  #0 vb 0x32BA71C ib 0x32B39FC 4464 idx 777 v stride 24
  #1 vb 0x32BEFF4 ib 0x32B5CDC 4464 idx 869 v stride 24
  #2 vb 0x32C416C ib 0x32B7FBC  576 idx 192 v stride 24
  #3 vb 0x32C536C ib 0x32B843C 4464 idx 869 v stride 28   <- different

The layout matches our assumptions exactly (tight index packing, last buffer flush
against vb0 so pad 0, span 27936 == align4-summed markers, contiguous vertex
buffers, max index == verts-1 everywhere). The defect is that sub-mesh #3 has a
different stride AND its own vertex shader: anchor_grouped_meshes parses one
declaration per resource and applies its stride to every sub-mesh, so it reads #3
out of phase (372 non-finite position components of 2607), and since the pivot is
the largest index count with ties going to the last marker, the pivot IS that
sub-mesh — so the whole resource is declined.

Also adds examples/miss_targets.rs (which container to aim a capture at): 63
resources decode nowhere, 58 of them in exactly one container, clustering as
Stage_S16 21 (e901_wing_05_*), ptc_pack 12, Base 6, then per-stage n2xx groups.
Flying stage 16 did not draw the e901 wings — the container is resident but the
unit must also be on screen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 10:52:35 +00:00
92d36ec10f re(xbg7): a Stage-05 capture validates the pad fix out of sample, and shows how containers load
Ran ship_capture_close.sh in story stage 05 (reachable now via the save's stage
field) instead of stage 02: 3 logs, ~11 200 draws.

- Out-of-sample check of the pad-scoring fix: 124 of 124 index runs identical to
  the GPU's, 2 769 index elements, 0 differing — on draws the fix was not derived
  from (the stage-02 capture gave 93/93).
- A mission keeps SEVERAL stage containers resident: 65 drawn buffers place in
  Stage_S02.xpr at 0x17FE3FF4 (the shared TCAF/ADAN fleet) and 5 in Stage_S05.xpr
  at its own constant 0x1927B7F4 (the f101 ACROPOLIS, this mission's escort) —
  the first capture-truth rows for a container other than Stage_S02. Both sets
  have exact index counts and exact coverage.
- Why: f105_bdy_01 lives in 13 of the 22 stage containers and not in Stage_S05 at
  all, so the resident set follows the mission's unit roster, not the stage number.

Consequence for the residual misses: a different story stage is not a different
container. Aiming a capture at a specific container is a static question (resource
names per container x the stage's EnumUnit roster).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 10:20:00 +00:00
9fd5dcd37d re(savegame): GHAD +52 is the stage number — a hand-edited save plays Stage 05
Static analysis of the header builder (0x822870b4..0x82287128) shows the GDHA
container header carries a SUMMARY of the progress block, and the screens read
that: hdr+0x14 <- GHAD+52, hdr+0x18 <- GHAD+48, hdr+0x1c <- +24 (Points),
hdr+0x20 <- +4 (flight), hdr+0x24 <- the computed clear ratio, hdr+0x28 <- +12.
savegame_edit.py copies the donor header verbatim, so payload-only probes left a
stale summary — which is why +52 looked refuted.

Patching both (hdr[0x14] = 5, ghad[+52] = 5) makes the title read
"STAGE 05 - Star System Escape", load it, brief the Gallia Asteroid Group, and fly
an asteroid-field mission with a different objective and roster. So +52 is the
stage number, 1-based, and one u32 chooses the mission.

Also corrected in the GHAD table: +48 is the Game Status enum (0 = At Standby,
matching the screen's STATE_STAND_BY/STAGE_CLEAR/GAME_CLEAR list) and +12 is Times
Cleared, both via their header mirrors.

This unlocks runtime capture in containers other than Stage_S02 (the 85 XBG7
misses, box identity, ship-placement generalisation) and per-stage unit
definitions. Slot 01 was backed up and restored byte-identically.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 09:46:08 +00:00
0cf9220d24 re(savegame): stage-unlock probes are negative, and the Details panel is not a payload oracle
Four probes against slot 01 (the save the title-menu screens read), each backed up
and restored byte-identically:

- SHAB[1..7] filled -> MISSION SELECT still locks Stage02-08, cursor will not
  leave Stage01. The per-stage record table is not the unlock gate; the earlier
  SHAB[1] attempt used a throwaway slot and could not show this.
- GHAD +36/+52/+56 = 5 -> still locked, panel still STAGE 02 / EASY.
- GHAD +16 = 4 -> panel still STAGE 02, so it is not a 0-based stage index.
- live-RAM writes into the loaded GDHA header -> panel unchanged.

The useful part is why the panel cannot answer this: guest RAM at that screen holds
NO payload bytes (neither the 4101/4101/79 triple nor the 54-byte develop blob),
but it does hold the save's GDHA container header with a summary copy of Points,
flight time, clear ratio and a FILETIME. savegame_edit.py copies the donor header
verbatim, so a payload edit leaves that summary stale — "the panel did not change"
therefore cannot separate "not the stage field" from "the panel never reads the
payload". Future stage/difficulty probes must patch the header too, or be judged by
what the game does on load.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 09:18:46 +00:00
0776beb6f4 fix(xbg7): degenerate index runs 582 -> 1 (grouped path + prefer a clean candidate)
Two follow-ups to the pad-scoring fix, both driven by the same invariant (a
correctly located index run has no degenerate triangles):

- anchor_grouped_meshes picked its pad by first-match too; scoring the pivot run
  the same way cleared every remaining ptc_pack composite (f102/f104/e107).
- anchor_pool_mesh now prefers a degenerate-free candidate over an earlier dirty
  one. examples/better_home.rs showed the last two resources each had exactly one
  degenerate-free, pool-covering block, sitting later in file order than the
  lookalike we took. First-match order is kept for every clean hit, and a dirty
  block is still used if nothing clean exists, so coverage cannot regress.

  degenerate index runs, disc-wide:      582 -> 11 -> 1
  captured index runs identical:         93/93 (unchanged)
  resources decoded / misses:            6 209 / 85 (unchanged)
  index runs changed / anchors moved:    590 / 10 (_rou_f402_dead x8, e201_bdy_03_m x2)

Cross-container minority decodes 89 -> 96, and that is progress: all seven new
rows are _rou_f402_dead, which now has a majority (32x25x8) for the first time, so
its seven wrong copies are named instead of hidden behind "no majority".

The last dirty run (_rou_f402_dead in Stage_S09) is blocked by distinct assignment
— its clean block is claimed by e_rou_f003_Near, both 24-vertex bounding boxes. A
winding-floor escalation for that case was written, measured to fire for nothing,
and reverted; the reasoning is kept as a comment.

Regression threshold tightened to 1. Suite green with --include-ignored apart from
the pre-existing known-failing cross-container consistency test.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 08:52:41 +00:00
33dc12c948 re(xbg7): render the before/after — the index shift shredded capital-ship hulls
ship_render --static on f101 (ACROPOLIS) with and without XBG7_PAD_FIRST_MATCH=1.
Identical triangle count, placements and bounds; the old wiring renders as a mess
of shards, the fixed one as a coherent hull. Kept as the evidence image for the
pad-scoring fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 07:28:40 +00:00
41b59faf5f fix(xbg7): the index run was one element late for 575 sub-meshes
Extending the capture comparison from index COUNTS to index VALUES
(`examples/capture_index_bytes.rs`, using the batch offsets the new ib logging
gives) showed 76 of 93 Stage_S02 index runs identical to the GPU's and 17
differing — every difference a shift by exactly one element, on buffers whose
index data sits at pad 2.

`anchor_pool_mesh` returned the FIRST pad that validated, and pad 0 is tried
first with the looser winding gate (0.70 vs 0.85). Read at pad 0, a pad-2 block
yields [true[1], true[2], …, garbage]: every index in range, the pool covered,
the positions right, the winding often just above 0.70 — so it validated, and
every triangle was mis-wired. Nothing count-based could see it.

The signature is decidable without the capture: a shifted run wires arbitrary
vertices, so triangles come out degenerate. 282 of 283 correctly anchored
Stage_S02 blocks have zero degenerate triangles, while the shifted readings carry
1–2 156. So score every validating pad by (degenerate triangles, then winding)
and keep the best. `XBG7_PAD_FIRST_MATCH=1` restores the old behaviour.

  captured index runs identical:            76/93  ->  93/93  (2 025 elements)
  decoded runs with a degenerate triangle:    579  ->     16  (disc-wide)
  sub-meshes whose index run changed:                    575  of 8 850
  resources decoded / vertex anchors / consistency:  unchanged (6 209 / same vb / 89)

Locked in by tests/mesh_disc.rs::decoded_index_runs_have_almost_no_degenerate_triangles.
Suite green with --include-ignored apart from the pre-existing known-failing
cross-container consistency test (the 24-vertex bounding-box class).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 07:26:52 +00:00
6d92e6c114 re(xbg7): the [index][vertex] layout is runtime-verified, and the indices= mystery was batching
The decoder's central unstated assumption — a block's index buffer sits
immediately before its vertex buffer (`vb - idx_count*2 - pad`, pad <= 3) — was
also the prime suspect for the residual anchor misses, since a capture-proven
`e106_eng_02_l` block was rejected outright. Measured it instead of assuming:

- extended the F10 ship capture to log each draw's index buffer (base, count,
  min/max index) and to key its de-dup on the index range, so every draw batch
  is recorded rather than only the first;
- `examples/capture_ib_truth.rs` places each drawn buffer in the container by its
  dumped positions and scores the capture against our decode.

Stage_S02, 42 drawn buffers placed: our idx_count == the sum of the draw's index
batches for 42/42, the batch union covers the vertex pool exactly for 42/42, and
all 30 single-block cases sit at pad <= 3 (20 at pad 0, 10 at pad 2). The other
12 are grouped pools, where one index pool serves the whole group. So the layout
holds, the decoded index count is exact, and eng_02_l died on the connectivity
gate (since replaced by the winding gate) — not on index location. The shipped
exact-coverage rule is independently confirmed.

The recorded "capture indices=21 vs our 246" disagreement was an artefact of the
old de-dup key: 21 was the first of two batches, 21 + 225 = 246. Any conclusion
from a pre-2026-08-13 capture's `indices=` or `vbase - ibase` is about one batch,
not about the block.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
2026-08-13 05:57:44 +00:00
89 changed files with 21433 additions and 1810 deletions

View File

@@ -0,0 +1,55 @@
//! RE probe: the `ACHIEVEMENTS_REQUIREMENTS` config list.
//!
//! `GamePart_Debriefing` (`0x8218CF38`..`0x82191B18`) walks this list after a
//! mission (`sub_8218F9A8`): for each entry it takes the entry's **index** `n`,
//! tests bit `n` of an awarded-mask, and if the bit is clear it evaluates the
//! entry (`0x8218FAB0`) and sets the bit when satisfied. `GamePart_ChallengeMission`
//! then gates each challenge mission on a bit of the same space via its own
//! `REQUIREMENT` key. So this list *is* the achievement/bit numbering.
//!
//! Run: cargo run --release -p sylpheed-formats --example achievements_map -- <disc-root>
use sylpheed_formats::{idxd::IdxdObject, pak::PakArchive};
fn find(h: &[u8], n: &[u8]) -> bool {
h.windows(n.len()).any(|w| w == n)
}
fn main() {
let disc = std::env::args().nth(1).unwrap_or_else(|| {
std::env::var("SYLPHEED_DISC").expect("pass disc root or set SYLPHEED_DISC")
});
let dat = format!("{disc}/dat");
let mut paks: Vec<_> = std::fs::read_dir(&dat)
.expect("dat dir")
.filter_map(|e| e.ok())
.map(|e| e.path())
.filter(|p| p.extension().is_some_and(|x| x == "pak"))
.collect();
paks.sort();
for p in &paks {
let Ok(arc) = PakArchive::open(p) else { continue };
for (i, e) in arc.entries().iter().enumerate() {
let Ok(b) = arc.read(e) else { continue };
if !find(&b, b"ACHIEVEMENTS_REQUIREMENTS") {
continue;
}
let name = p.file_name().unwrap().to_string_lossy().to_string();
match IdxdObject::parse(&b) {
Ok(o) => {
let t = o.tokens();
println!(
"\n===== {name} entry #{i} schema {:08x} {} tokens =====",
o.schema_hash,
t.len()
);
for (j, tok) in t.iter().enumerate() {
println!(" {j:3} {tok}");
}
}
Err(err) => println!("\n===== {name} entry #{i}: not IDXD ({err}) ====="),
}
}
}
}

View File

@@ -0,0 +1,123 @@
//! Does a resource have a CLEANER home in its container than the one we picked?
//!
//! After the pad-scoring fix, only two resources on the disc still decode to an
//! index run with degenerate triangles — `e201_bdy_03_m` (2 containers) and
//! `_rou_f402_dead` (9). Degeneracy says the run does not fit the pool, so either
//! the vertex block is wrong or the candidate list never offered the right one.
//! This walks every candidate vertex-run start for the resource's declaration and
//! scores each `(start, pad)` the way the anchor now does — degenerate triangles
//! first, then winding, plus coverage — so the answer is one of:
//! * a strictly cleaner candidate exists (the selection is at fault),
//! * several are equally clean (genuinely ambiguous), or
//! * nothing is clean (the block is not in the candidate list at all).
//!
//! Usage: better_home <container.xpr> <resource-name>
use sylpheed_formats::mesh::{debug_resource_params, debug_vertex_run_starts, Xbg7Model};
fn be16(b: &[u8], at: usize) -> u32 {
((b[at] as u32) << 8) | b[at + 1] as u32
}
fn main() {
let a: Vec<String> = std::env::args().collect();
let bytes = std::fs::read(&a[1]).expect("container");
let name = &a[2];
let Some((markers, stride)) = debug_resource_params(&bytes, name) else {
eprintln!("no such XBG7 resource: {name}");
std::process::exit(1);
};
let (vc, ic) = markers[0];
println!("{name}: {} marker(s), first = {vc} verts / {ic} indices, stride {stride}", markers.len());
// Where did the decoder put it?
let ours = Xbg7Model::stage_models(&bytes)
.into_iter()
.find(|m| m.name == *name)
.and_then(|m| m.meshes.first().and_then(|s| s.vbuf_offset));
println!("our anchor: {ours:?}");
let starts = debug_vertex_run_starts(&bytes, stride);
println!("{} candidate vertex-run starts for stride {stride}", starts.len());
// Score every (start, pad): degenerate triangles, winding against the stored
// normals, and whether the run covers the pool exactly.
let mut rows: Vec<(usize, f32, usize, usize, usize, bool)> = Vec::new(); // degen, wind, start, pad, max_idx, covered
for &vb in &starts {
for pad in 0..=3usize {
if vb < ic * 2 + pad {
continue;
}
let ib = vb - ic * 2 - pad;
if ib + ic * 2 > bytes.len() || vb + vc * stride > bytes.len() {
continue;
}
let idx: Vec<u32> = (0..ic).map(|k| be16(&bytes, ib + k * 2)).collect();
let max_idx = *idx.iter().max().unwrap_or(&0) as usize;
if max_idx >= vc {
continue; // out of range — not a candidate at all
}
let pos: Vec<[f32; 3]> = (0..vc)
.map(|v| {
let at = vb + v * stride;
[
f32::from_be_bytes(bytes[at..at + 4].try_into().unwrap()),
f32::from_be_bytes(bytes[at + 4..at + 8].try_into().unwrap()),
f32::from_be_bytes(bytes[at + 8..at + 12].try_into().unwrap()),
]
})
.collect();
if pos.iter().any(|p| p.iter().any(|c| !c.is_finite() || c.abs() > 1e6)) {
continue;
}
let mut degen = 0usize;
let (mut agree, mut counted) = (0usize, 0usize);
for t in idx.chunks_exact(3) {
let (x, y, z) = (t[0] as usize, t[1] as usize, t[2] as usize);
if x == y || y == z || x == z {
degen += 1;
continue;
}
// Winding needs normals; use the geometric centroid normal as a
// stand-in so this stays declaration-agnostic: a consistent mesh
// has all faces pointing away from the centroid on a convex-ish
// hull. Weak, so degeneracy leads the sort.
let e1 = [pos[y][0] - pos[x][0], pos[y][1] - pos[x][1], pos[y][2] - pos[x][2]];
let e2 = [pos[z][0] - pos[x][0], pos[z][1] - pos[x][1], pos[z][2] - pos[x][2]];
let f = [
e1[1] * e2[2] - e1[2] * e2[1],
e1[2] * e2[0] - e1[0] * e2[2],
e1[0] * e2[1] - e1[1] * e2[0],
];
let cx: [f32; 3] = {
let mut c = [0.0f32; 3];
for p in &pos {
for k in 0..3 {
c[k] += p[k] / pos.len() as f32;
}
}
c
};
let out = [pos[x][0] - cx[0], pos[x][1] - cx[1], pos[x][2] - cx[2]];
counted += 1;
if f[0] * out[0] + f[1] * out[1] + f[2] * out[2] > 0.0 {
agree += 1;
}
}
let w = if counted == 0 { 0.0 } else { agree as f32 / counted as f32 };
rows.push((degen, w.max(1.0 - w), vb, pad, max_idx, max_idx + 1 == vc));
}
}
rows.sort_by(|a, b| a.0.cmp(&b.0).then(b.1.total_cmp(&a.1)));
println!("\n{} in-range candidates; best 12 by (degenerate, winding):", rows.len());
for (d, w, vb, pad, mx, cov) in rows.iter().take(12) {
let mark = if Some(*vb) == ours { " <-- ours" } else { "" };
println!(
" vb 0x{vb:07X} pad {pad} degen {d:>4} wind {w:.3} max_idx {mx}/{} {}{mark}",
vc - 1,
if *cov { "covers" } else { "SHORT" }
);
}
let clean = rows.iter().filter(|r| r.0 == 0 && r.5).count();
println!("\n{clean} candidates are degenerate-free AND cover the pool exactly");
}

View File

@@ -0,0 +1,222 @@
//! Where does a drawn block's INDEX buffer really live?
//!
//! Our XBG7 anchor scan only ever *assumes* the layout `[index buffer][vertex
//! buffer]` with a pad of at most 3 bytes between them (`anchor_pool_mesh`:
//! `ib = vb - idx_count*2 - pad`). Nothing on disc states it, and it is the gate
//! that rejected the capture-proven `e106_eng_02_l` block
//! (docs/re/captures/…): the block's index data was not where the decoder
//! looked. The F10 ship capture was extended on 2026-08-13 to log each draw's
//! index-buffer base, count and min/max index value, so the assumption is now
//! directly checkable:
//!
//! * `vbase - ibase` is the real gap in guest memory, and a stage container is
//! uploaded contiguously (see `shared_vbase_check`), so the same difference
//! holds in the file;
//! * `max index vs vcount` says whether a draw covers its whole vertex pool —
//! the "buffer not covered" miss class is a *sub-range draw* if it does not.
//!
//! Usage:
//! cargo run --release --example capture_ib_truth -- <Stage_SNN.xpr> <capture.log>...
use sylpheed_formats::mesh::{debug_resource_params, xbg7_resource_names, Xbg7Model};
use sylpheed_formats::ship_capture::{parse_capture, CapturedDraw};
use std::collections::HashMap;
fn q(v: f32) -> i64 {
(v as f64 * 1e4).round() as i64
}
fn main() {
let a: Vec<String> = std::env::args().collect();
if a.len() < 3 {
eprintln!("usage: capture_ib_truth <container.xpr> <capture.log>...");
std::process::exit(2);
}
let bytes = std::fs::read(&a[1]).expect("container");
// One entry per (log, vbase): the capture already de-dups per placement, and
// a buffer drawn at several transforms has the same index buffer each time.
let mut draws: Vec<CapturedDraw> = Vec::new();
let mut seen = std::collections::HashSet::new();
for log in &a[2..] {
let text = std::fs::read_to_string(log).expect("log");
for d in parse_capture(&text) {
// One entry per (log, vbase, index range): the engine issues SEVERAL
// draws over one vertex buffer, each with its own index sub-range, and
// it is their UNION that describes the block. (Captures taken before
// 2026-08-13 de-dup by (vbase, transform) and so hold only the first
// batch — such a log reads as a mysteriously short draw.)
let k = d.ib.map(|i| (i.ibase, i.icount)).unwrap_or((0, 0));
if d.ib.is_some() && d.pos.len() >= 4 && seen.insert((log.clone(), d.vbase, k)) {
draws.push(d);
}
}
}
eprintln!("{} drawn buffers with an index buffer", draws.len());
// ── Place the drawn buffers in the file: POSITION is f32×3 big-endian at
// vertex offset 0, so the dumped positions are a literal byte pattern.
let be = |at: usize| f32::from_be_bytes(bytes[at..at + 4].try_into().unwrap());
let mut index: HashMap<(i64, i64, i64), Vec<u32>> = HashMap::new();
let mut o = 0usize;
while o + 12 <= bytes.len() {
let (x, y, z) = (be(o), be(o + 4), be(o + 8));
if x.is_finite() && y.is_finite() && z.is_finite() && x.abs() < 1e6 && y.abs() < 1e6 && z.abs() < 1e6 {
index.entry((q(x), q(y), q(z))).or_default().push(o as u32);
}
o += 4;
}
let mut deltas: HashMap<i64, usize> = HashMap::new();
let mut hits: Vec<(i64, usize, &CapturedDraw)> = Vec::new(); // (delta, file offset, draw)
for d in &draws {
let k = (q(d.pos[0][0]), q(d.pos[0][1]), q(d.pos[0][2]));
for dx in -1..=1i64 {
for dy in -1..=1i64 {
for dz in -1..=1i64 {
let Some(cands) = index.get(&(k.0 + dx, k.1 + dy, k.2 + dz)) else { continue };
for &off in cands {
for stride in (12..=64).step_by(4) {
let ok = (1..4).all(|j| {
let at = off as usize + j * stride;
at + 12 <= bytes.len()
&& (0..3).all(|c| (be(at + c * 4) - d.pos[j][c]).abs() <= 1e-4)
});
if ok {
let delta = d.vbase as i64 - off as i64;
*deltas.entry(delta).or_default() += 1;
hits.push((delta, off as usize, d));
break;
}
}
}
}
}
}
}
let Some((&base_delta, &n)) = deltas.iter().max_by_key(|(_, n)| **n) else {
eprintln!("no draw could be placed in this container");
std::process::exit(1);
};
println!("container load constant: vbase - file_offset = 0x{base_delta:X} ({n} buffers agree)");
// ── Our decoder's view of the same container.
let models = Xbg7Model::stage_models(&bytes);
let mut by_off: HashMap<usize, Vec<(String, usize, usize)>> = HashMap::new();
for m in &models {
for sm in &m.meshes {
if let Some(off) = sm.vbuf_offset {
by_off
.entry(off)
.or_default()
.push((m.name.clone(), sm.positions.len(), sm.indices.len()));
}
}
}
println!("decoded {} resources, {} distinct vertex offsets\n", models.len(), by_off.len());
// Declared-but-not-decoded resources, indexed by their first marker's
// (vertex, index) counts. A drawn buffer our decoder cannot name is the one
// thing a capture can give the residual misses: ground truth for where the
// block actually is. Matching on counts is enough to propose an identity —
// then `debug_try_anchor` at that offset says which gate rejects it.
let decoded_names: std::collections::HashSet<String> =
models.iter().map(|m| m.name.clone()).collect();
let mut undecoded_by_counts: HashMap<(usize, usize), Vec<String>> = HashMap::new();
for n in xbg7_resource_names(&bytes) {
if decoded_names.contains(&n) {
continue;
}
if let Some((markers, _)) = debug_resource_params(&bytes, &n) {
if let Some(&(v, i)) = markers.first() {
undecoded_by_counts.entry((v, i)).or_default().push(n);
}
}
}
// ── The report: one row per drawn BUFFER, aggregating its index batches.
let mut per_buf: HashMap<u32, (usize, Vec<sylpheed_formats::ship_capture::CapturedIndexBuffer>, u32)> =
HashMap::new();
for (delta, voff, d) in &hits {
if *delta != base_delta {
continue;
}
let e = per_buf.entry(d.vbase).or_insert((*voff, Vec::new(), d.vcount));
let ib = d.ib.unwrap();
if !e.1.contains(&ib) {
e.1.push(ib);
}
}
let (mut pad0, mut pad_small, mut pad_off, mut unnamed) = (0usize, 0usize, 0usize, 0usize);
let (mut cover_exact, mut cover_short, mut idx_equal, mut idx_partial) = (0usize, 0usize, 0usize, 0usize);
let mut rows: Vec<(usize, String)> = Vec::new();
for (_, (voff, ibs, vcount)) in per_buf.iter() {
let batches = ibs.len();
let total: u32 = ibs.iter().map(|i| i.icount).sum();
let lo = ibs.iter().map(|i| i.ibase).min().unwrap() as i64 - base_delta;
let hi = ibs.iter().map(|i| i.ibase + i.icount * 2).max().unwrap() as i64 - base_delta;
let umax = ibs.iter().map(|i| i.imax).max().unwrap();
let gap = *voff as i64 - hi; // bytes from the end of the index data to the vertex buffer
let names = by_off.get(voff);
let dec_idx = names
.and_then(|v| v.iter().find(|(_, p, _)| *p as u32 == *vcount).map(|(_, _, i)| *i as u32));
// The decoder's assumption, scored: it expects the whole index buffer at
// `vb - 2*idx_count - pad`, pad ≤ 3.
let dec_pad = dec_idx.map(|i| *voff as i64 - (i as i64) * 2 - lo);
match dec_pad {
Some(0) => pad0 += 1,
Some(p) if (1..=3).contains(&p) => pad_small += 1,
Some(_) => pad_off += 1,
None => unnamed += 1,
}
if umax + 1 == *vcount {
cover_exact += 1;
} else {
cover_short += 1;
}
match dec_idx {
Some(i) if i == total => idx_equal += 1,
Some(_) => idx_partial += 1,
None => {}
}
rows.push((
*voff,
format!(
"vb 0x{:07X} v={:<6} batches {:<3} idx {:<6} span {:<7} gap {:<8} decpad {:<7} cover {:<10} {}",
voff,
vcount,
batches,
total,
hi - lo,
gap,
dec_pad.map(|p| p.to_string()).unwrap_or_else(|| "?".into()),
if umax + 1 == *vcount { "exact".to_string() } else { format!("{}/{}", umax, vcount - 1) },
names
.map(|v| v
.iter()
.map(|(n, p, i)| format!("{n}(v{p},i{i})"))
.collect::<Vec<_>>()
.join(" "))
.unwrap_or_else(|| {
// Nothing of ours sits here — is it a resource that never
// decodes? Propose it by (vertex, index) counts.
undecoded_by_counts
.get(&(*vcount as usize, total as usize))
.map(|v| format!("MISSED? {}", v.join(" ")))
.unwrap_or_else(|| "-".into())
})
),
));
}
rows.sort();
for (_, r) in &rows {
println!("{r}");
}
println!("\nplaced {} drawn buffers in this container", rows.len());
println!(
"DECODER layout assumption — whole index buffer at vb - 2*idx_count - pad: pad 0 {pad0} · pad 1..3 {pad_small} · elsewhere {pad_off} · not decoded here {unnamed}"
);
println!(
"index extent: our idx_count == sum of captured batches for {idx_equal} buffers, differs for {idx_partial}"
);
println!("vertex-pool coverage by the union of batches: exact {cover_exact} · short {cover_short}");
}

View File

@@ -0,0 +1,175 @@
//! Do our decoded triangle indices equal the ones the GPU actually read?
//!
//! `capture_ib_truth` established *where* a block's index buffer lives and that
//! its length matches ours. This asks the stronger question: are the index VALUES
//! the same, in the same order? The capture prints the first 24 indices of every
//! draw batch verbatim (`idx: …`), and a batch's `ibase` locates it inside the
//! block's index buffer — so for each drawn buffer we can line the captured run
//! up against `GameMesh::indices` at the right offset and compare element by
//! element. That tests the whole index path at once: the anchor, the u16
//! big-endian read, the triangle-list interpretation (a strip would disagree
//! immediately), and the sub-mesh carve.
//!
//! Usage:
//! cargo run --release --example capture_index_bytes -- <Stage_SNN.xpr> <capture.log>...
use sylpheed_formats::mesh::Xbg7Model;
use sylpheed_formats::ship_capture::{parse_capture, CapturedDraw};
use std::collections::HashMap;
fn q(v: f32) -> i64 {
(v as f64 * 1e4).round() as i64
}
fn main() {
let a: Vec<String> = std::env::args().collect();
if a.len() < 3 {
eprintln!("usage: capture_index_bytes <container.xpr> <capture.log>...");
std::process::exit(2);
}
let bytes = std::fs::read(&a[1]).expect("container");
let mut draws: Vec<CapturedDraw> = Vec::new();
let mut seen = std::collections::HashSet::new();
for log in &a[2..] {
let text = std::fs::read_to_string(log).expect("log");
for d in parse_capture(&text) {
let k = d.ib.map(|i| (i.ibase, i.icount)).unwrap_or((0, 0));
if d.ib.map_or(false, |i| i.head_len > 0) && d.pos.len() >= 4 && seen.insert((log.clone(), d.vbase, k)) {
draws.push(d);
}
}
}
eprintln!("{} draw batches with an index head", draws.len());
// Place each drawn buffer in the file by its dumped positions (see
// capture_ib_truth for the method) and keep the modal load constant.
let be = |at: usize| f32::from_be_bytes(bytes[at..at + 4].try_into().unwrap());
let mut index: HashMap<(i64, i64, i64), Vec<u32>> = HashMap::new();
let mut o = 0usize;
while o + 12 <= bytes.len() {
let (x, y, z) = (be(o), be(o + 4), be(o + 8));
if x.is_finite() && y.is_finite() && z.is_finite() && x.abs() < 1e6 && y.abs() < 1e6 && z.abs() < 1e6 {
index.entry((q(x), q(y), q(z))).or_default().push(o as u32);
}
o += 4;
}
let mut deltas: HashMap<i64, usize> = HashMap::new();
let mut hits: Vec<(i64, usize, &CapturedDraw)> = Vec::new();
for d in &draws {
let k = (q(d.pos[0][0]), q(d.pos[0][1]), q(d.pos[0][2]));
for dx in -1..=1i64 {
for dy in -1..=1i64 {
for dz in -1..=1i64 {
let Some(cands) = index.get(&(k.0 + dx, k.1 + dy, k.2 + dz)) else { continue };
for &off in cands {
for stride in (12..=64).step_by(4) {
let ok = (1..4).all(|j| {
let at = off as usize + j * stride;
at + 12 <= bytes.len()
&& (0..3).all(|c| (be(at + c * 4) - d.pos[j][c]).abs() <= 1e-4)
});
if ok {
*deltas.entry(d.vbase as i64 - off as i64).or_default() += 1;
hits.push((d.vbase as i64 - off as i64, off as usize, d));
break;
}
}
}
}
}
}
}
let Some((&base_delta, _)) = deltas.iter().max_by_key(|(_, n)| **n) else {
eprintln!("no draw could be placed in this container");
std::process::exit(1);
};
println!("load constant 0x{base_delta:X}");
// Our decode, indexed by vertex offset. A model may hold several sub-meshes;
// compare against the one whose vertex count matches the draw.
let models = Xbg7Model::stage_models(&bytes);
let mut by_off: HashMap<usize, Vec<(String, usize, Vec<u32>)>> = HashMap::new();
for m in &models {
for sm in &m.meshes {
if let Some(off) = sm.vbuf_offset {
by_off
.entry(off)
.or_default()
.push((m.name.clone(), sm.positions.len(), sm.indices.clone()));
}
}
}
// Where does each buffer's index data START? Take it from the capture, not
// from an assumed pad: `capture_ib_truth` established that a buffer's batches
// tile its index buffer exactly (sum of counts == our idx_count, span ==
// 2*count), so the lowest `ibase` over a buffer's batches IS the block's
// index start. Assuming `vb - 2*len` instead is wrong for the buffers that
// sit at pad 2 and shifts the whole comparison by one element.
let mut ib_start: HashMap<u32, i64> = HashMap::new();
for (delta, _, d) in &hits {
if *delta != base_delta {
continue;
}
let ibase = d.ib.unwrap().ibase as i64;
ib_start.entry(d.vbase).and_modify(|e| *e = (*e).min(ibase)).or_insert(ibase);
}
let (mut agree, mut disagree, mut unmatched, mut nooverlap) = (0usize, 0usize, 0usize, 0usize);
let mut bad: Vec<String> = Vec::new();
let mut checked_elems = 0usize;
let mut done: std::collections::HashSet<(u32, u32)> = std::collections::HashSet::new();
for (delta, voff, d) in &hits {
if *delta != base_delta {
continue;
}
let ib = d.ib.unwrap();
if !done.insert((d.vbase, ib.ibase)) {
continue;
}
let Some(cands) = by_off.get(voff) else {
unmatched += 1;
continue;
};
let Some((name, _, ours)) = cands.iter().find(|(_, p, _)| *p as u32 == d.vcount) else {
unmatched += 1;
continue;
};
// Element 0 of our index list is the block's index start, as observed.
let ours_start = ib_start[&d.vbase] - base_delta;
let batch_off = ib.ibase as i64 - base_delta - ours_start;
if batch_off < 0 || batch_off % 2 != 0 {
nooverlap += 1;
continue;
}
let first = (batch_off / 2) as usize;
let n = (ib.head_len as usize).min(ours.len().saturating_sub(first));
if n == 0 {
nooverlap += 1;
continue;
}
let mism = (0..n).find(|&k| ours[first + k] != ib.head[k]);
checked_elems += n;
match mism {
None => agree += 1,
Some(k) => {
disagree += 1;
if bad.len() < 8 {
bad.push(format!(
"{name} vb 0x{:07X} batch@{first}: ours {:?} != captured {:?} (first differs at {k})",
voff,
&ours[first..first + n.min(12)],
&ib.head[..n.min(12)]
));
}
}
}
}
println!(
"index runs compared: {agree} identical · {disagree} differing · {unmatched} no decoded resource · {nooverlap} batch outside our buffer"
);
println!("{checked_elems} index elements checked against the GPU");
for b in &bad {
println!(" MISMATCH {b}");
}
}

View File

@@ -0,0 +1,81 @@
//! RE probe: what does the disc say about CHALLENGE / EXTRA missions?
//!
//! The title's stage-config reader (`0x82184b98`..`0x82184e94`) selects one of three
//! config sections by a mode field at `obj+144`:
//! mode == 3 -> "EXTRA"
//! mode == 5 or 6 -> "CHALLENGE"
//! otherwise -> "FILE"
//! so challenge missions are a *mode*, not a separate stage numbering. This probe
//! asks the disc which stage records exist and what GP_CHALLENGE.pak carries.
//!
//! Run: cargo run --release -p sylpheed-formats --example challenge_map -- <disc-root>
use sylpheed_formats::{idxd::IdxdObject, pak::PakArchive};
fn main() {
let disc = std::env::args().nth(1).unwrap_or_else(|| {
std::env::var("SYLPHEED_DISC").expect("pass disc root or set SYLPHEED_DISC")
});
println!("=== 1. StageResource records in GP_MAIN_GAME_E.pak ===");
let arc = PakArchive::open(format!("{disc}/dat/GP_MAIN_GAME_E.pak")).unwrap();
let mut rows = vec![];
for e in arc.entries() {
let Ok(b) = arc.read(e) else { continue };
let Ok(o) = IdxdObject::parse(&b) else { continue };
if o.schema_hash != 0x3c9ae32e {
continue;
}
let t = o.tokens();
let stage = t
.iter()
.find_map(|s| s.strip_prefix("EnumUnit_").map(|x| x.trim_end_matches(".tbl").to_string()))
.unwrap_or("?".into());
let bg = o.get_raw("BackGroundID").unwrap_or("?").to_string();
rows.push((stage, bg, t.len()));
}
rows.sort();
println!(" {} stage records", rows.len());
for (s, bg, n) in &rows {
println!(" {s:8} bg={bg:16} tokens={n}");
}
println!("\n=== 2. GP_CHALLENGE.pak contents ===");
match PakArchive::open(format!("{disc}/dat/GP_CHALLENGE.pak")) {
Ok(ch) => {
let mut by_schema: std::collections::BTreeMap<u32, usize> = Default::default();
let mut all_tokens: Vec<(u32, Vec<String>)> = vec![];
for e in ch.entries() {
let Ok(b) = ch.read(e) else { continue };
let Ok(o) = IdxdObject::parse(&b) else { continue };
*by_schema.entry(o.schema_hash).or_default() += 1;
all_tokens.push((o.schema_hash, o.tokens().iter().map(|s| s.to_string()).collect()));
}
println!(" {} entries, {} IDXD objects", ch.entries().len(), all_tokens.len());
for (h, n) in &by_schema {
println!(" schema {h:08x} x{n}");
}
for (h, t) in all_tokens.iter().take(12) {
println!(" -- {h:08x}: {:?}", &t[..t.len().min(60)]);
}
}
Err(e) => println!(" open failed: {e}"),
}
println!("\n=== 3. tokens mentioning Challenge / EX across the main pak ===");
let mut hits: std::collections::BTreeSet<String> = Default::default();
for e in arc.entries() {
let Ok(b) = arc.read(e) else { continue };
let Ok(o) = IdxdObject::parse(&b) else { continue };
for t in o.tokens() {
let l = t.to_ascii_lowercase();
if l.contains("challenge") || t.ends_with("_EX") || t.contains("_EX4") || t.contains("_EX5") {
hits.insert(format!("{:08x} {t}", o.schema_hash));
}
}
}
for h in hits.iter().take(120) {
println!(" {h}");
}
println!(" ({} distinct)", hits.len());
}

View File

@@ -0,0 +1,78 @@
//! RE probe: the GamePart_ChallengeMission screen config.
//!
//! The class's code range (`0x82187E60`..`0x8218CF10`, bounded by the factory
//! creator thunks either side) references these config keys:
//! MISSIONS, MISSION_ID, NEW_STAGE, REQUIREMENT, REQUIREMENT_DESC, "Always",
//! GRAY_BUTTON, NORMAL_BUTTON, THUMBNAIL, STAGE_DESC, TEXT_STAGE,
//! RECORD_TYPE, "Time", TEXT_RECORD, BASE_INFO
//! i.e. the challenge list is a *config record* with a per-mission REQUIREMENT.
//! It lives in `tables.pak` (one copy per language), not in GP_CHALLENGE.pak.
//!
//! Run: cargo run --release -p sylpheed-formats --example challenge_screen -- <disc-root>
use sylpheed_formats::{idxd::IdxdObject, pak::PakArchive};
const KEYS: &[&str] = &[
"MISSIONS",
"MISSION_ID",
"REQUIREMENT",
"REQUIREMENT_DESC",
"NEW_STAGE",
"GRAY_BUTTON",
"NORMAL_BUTTON",
"RECORD_TYPE",
"THUMBNAIL",
"STAGE_DESC",
];
fn find(h: &[u8], n: &[u8]) -> bool {
h.windows(n.len()).any(|w| w == n)
}
fn main() {
let disc = std::env::args().nth(1).unwrap_or_else(|| {
std::env::var("SYLPHEED_DISC").expect("pass disc root or set SYLPHEED_DISC")
});
let dat = format!("{disc}/dat");
let mut paks: Vec<_> = std::fs::read_dir(&dat)
.expect("dat dir")
.filter_map(|e| e.ok())
.map(|e| e.path())
.filter(|p| p.extension().is_some_and(|x| x == "pak"))
.collect();
paks.sort();
for p in &paks {
let Ok(arc) = PakArchive::open(p) else { continue };
for (i, e) in arc.entries().iter().enumerate() {
let Ok(b) = arc.read(e) else { continue };
if KEYS.iter().filter(|k| find(&b, k.as_bytes())).count() < KEYS.len() {
continue;
}
let name = p.file_name().unwrap().to_string_lossy().to_string();
match IdxdObject::parse(&b) {
Ok(o) => {
let toks = o.tokens();
// language tag: the PATH value, e.g. "dat\GP_CHALLENGE.pak+eng\"
let lang = toks
.iter()
.find(|t| t.contains("GP_CHALLENGE.pak+"))
.map(|t| t.to_string())
.unwrap_or_default();
println!(
"\n===== {name} entry #{i} schema {:08x} {} tokens [{lang}] =====",
o.schema_hash,
toks.len()
);
// Print the pool in order; the record is key/value interleaved and
// IDXD dedupes repeats, so pairing is read by eye, not asserted.
for (j, t) in toks.iter().enumerate() {
println!(" {j:3} {t}");
}
}
Err(e) => println!("\n===== {name} entry #{i}: IDXD parse failed: {e} ====="),
}
}
}
}

View File

@@ -0,0 +1,71 @@
//! Dump an XBG7 resource's descriptor around each index marker, to see whether a
//! grouped pool carries a declaration PER sub-mesh (the 2026-08-13 mixed-stride
//! finding says it must: n201's four sub-meshes use strides 24/24/24/28 and four
//! different vertex shaders).
//! Usage: desc_dump <container.xpr> <resource>
fn be32(b: &[u8], o: usize) -> u32 {
u32::from_be_bytes(b[o..o + 4].try_into().unwrap())
}
fn main() {
let a: Vec<String> = std::env::args().collect();
let bytes = std::fs::read(&a[1]).unwrap();
let want = &a[2];
// Walk the XPR2 directory by hand (the crate's reader is private).
// 16-byte directory entries at 0x10: type tag, data offset, descriptor size,
// name offset — all relative to 0x10 (see texture::Xpr2ResourceEntry).
let num = be32(&bytes, 12) as usize;
for i in 0..num {
let e = &bytes[0x10 + i * 16..0x10 + i * 16 + 16];
let tag = &e[0..4];
let data_off = be32(e, 4) as usize + 0x10;
let desc_size = be32(e, 8) as usize;
let name_off = be32(e, 12) as usize + 0x10;
if tag != b"XBG7" {
continue;
}
let name = {
let s = name_off.min(bytes.len());
let end = bytes[s..].iter().position(|&c| c == 0).unwrap_or(0) + s;
String::from_utf8_lossy(&bytes[s..end]).to_string()
};
if name != *want {
continue;
}
let desc = &bytes[data_off..(data_off + desc_size).min(bytes.len())];
println!("{name}: descriptor at 0x{data_off:X}, {} bytes", desc.len());
// markers: a == c*2, c%3==0, vertex count 32 bytes earlier
let mut rel = 0usize;
while rel + 8 <= desc.len() {
let (x, c) = (be32(desc, rel), be32(desc, rel + 4));
if c >= 3 && c % 3 == 0 && c < 400_000 && x == c * 2 && rel >= 32 {
let vc = be32(desc, rel - 32);
if (3..=200_000).contains(&vc) {
println!("\n marker @0x{rel:X}: {vc} verts / {c} indices — declaration triples after it:");
let mut r = rel + 8;
let mut stride = 0u32;
for _ in 0..12 {
if r + 12 > desc.len() {
break;
}
let (o, code, usage) = (be32(desc, r), be32(desc, r + 4), be32(desc, r + 8) >> 16);
if o == 0x00FF_0000 || code == 0xFFFF_FFFF || o > 0x1000 {
println!(" end marker @0x{r:X}: off=0x{o:X} code=0x{code:X}");
break;
}
println!(" off {o:>3} code 0x{:06X} usage {usage}", code & 0xFF_FFFF);
stride = stride.max(o + 4);
r += 12;
}
println!(" (min stride from element offsets: {stride})");
rel += 8;
continue;
}
}
rel += 4;
}
return;
}
eprintln!("resource not found");
}

View File

@@ -0,0 +1,2 @@
fn main(){let a:Vec<String>=std::env::args().collect();let b=std::fs::read(&a[1]).unwrap();
for l in sylpheed_formats::mesh::debug_grouped_report(&b,&a[2],a[3].parse().unwrap()){println!("{l}")}}

View File

@@ -0,0 +1,32 @@
//! Dump a fingerprint of every decoded index run, so two decoder settings can be
//! diffed exactly. Usage: index_hash_dump <resource3d_dir>
use sylpheed_formats::mesh::Xbg7Model;
fn main() {
let dir = std::env::args().nth(1).expect("resource3d dir");
let mut files: Vec<_> = std::fs::read_dir(&dir)
.unwrap()
.flatten()
.map(|e| e.path())
.filter(|p| p.extension().and_then(|s| s.to_str()) == Some("xpr"))
.collect();
files.sort();
for f in &files {
let Ok(bytes) = std::fs::read(f) else { continue };
let w = f.file_name().unwrap().to_string_lossy().to_string();
for m in Xbg7Model::stage_models(&bytes) {
for (k, sm) in m.meshes.iter().enumerate() {
let mut h = 1469598103934665603u64;
for i in &sm.indices {
h = (h ^ *i as u64).wrapping_mul(1099511628211);
}
println!(
"{w} {} {k} vb={:?} n={} h={h:016x}",
m.name,
sm.vbuf_offset,
sm.indices.len()
);
}
}
}
}

View File

@@ -0,0 +1,134 @@
//! Is our index list one element late? A capture-free check of the `pad` choice.
//!
//! `anchor_pool_mesh` tries `ib = vb idx_count*2 pad` for `pad` in `0..=3`,
//! **pad 0 first and with the looser winding gate** (`XBG7_PAD0_CONSISTENCY`,
//! 0.70) than the pad ≥ 1 path (0.85). The 2026-08-13 index-byte comparison
//! against the runtime showed 17 draw batches whose captured indices equal our
//! decoded list shifted by exactly one element — all of them on buffers whose
//! real index data sits at pad 2. A one-element shift re-wires every triangle,
//! and it is invisible to every count-based metric (the count, the coverage and
//! the positions are all still right).
//!
//! This reproduces that finding from the container alone: for each resource it
//! reads the index run at pad 0 and at pad 2 and scores both on two properties a
//! correct triangle list has — **no degenerate triangles** (two equal indices)
//! and consistent winding against the stored normals.
//!
//! Usage: index_pad_check <container.xpr> [name-substring]
use sylpheed_formats::mesh::Xbg7Model;
fn be16(b: &[u8], at: usize) -> u32 {
((b[at] as u32) << 8) | b[at + 1] as u32
}
/// Degenerate triangles (a repeated index) and the fraction of triangles whose
/// face normal agrees with their vertices' stored normals.
fn score(idx: &[u32], pos: &[[f32; 3]], nrm: &[[f32; 3]]) -> (usize, f32, usize) {
let mut degen = 0usize;
let mut agree = 0usize;
let mut counted = 0usize;
for t in idx.chunks_exact(3) {
let (a, b, c) = (t[0] as usize, t[1] as usize, t[2] as usize);
if a == b || b == c || a == c {
degen += 1;
continue;
}
if a >= pos.len() || b >= pos.len() || c >= pos.len() {
continue;
}
let e1 = [pos[b][0] - pos[a][0], pos[b][1] - pos[a][1], pos[b][2] - pos[a][2]];
let e2 = [pos[c][0] - pos[a][0], pos[c][1] - pos[a][1], pos[c][2] - pos[a][2]];
let f = [
e1[1] * e2[2] - e1[2] * e2[1],
e1[2] * e2[0] - e1[0] * e2[2],
e1[0] * e2[1] - e1[1] * e2[0],
];
if nrm.len() <= a {
continue;
}
let n = nrm[a];
let dot = f[0] * n[0] + f[1] * n[1] + f[2] * n[2];
counted += 1;
if dot > 0.0 {
agree += 1;
}
}
let frac = if counted == 0 { 0.0 } else { agree as f32 / counted as f32 };
(degen, frac.max(1.0 - frac), counted)
}
fn main() {
let a: Vec<String> = std::env::args().collect();
let bytes = std::fs::read(&a[1]).expect("container");
let filter = a.get(2).cloned().unwrap_or_default();
let models = Xbg7Model::stage_models(&bytes);
println!(
"{:<22} {:>6} {:>6} {:<26} {:<26} verdict",
"resource", "verts", "idx", "pad 0 (what we decode)", "pad 2 (2 bytes earlier)"
);
let (mut better_p2, mut better_p0, mut tie) = (0usize, 0usize, 0usize);
let mut hist_ok: Vec<(usize, String, usize)> = Vec::new();
for m in &models {
if !filter.is_empty() && !m.name.contains(&filter) {
continue;
}
if m.meshes.len() != 1 {
continue; // single-block path only; grouped pools use another formula
}
let sm = &m.meshes[0];
let Some(vb) = sm.vbuf_offset else { continue };
let n = sm.indices.len();
if n < 6 || sm.normals.is_empty() || vb < n * 2 + 2 {
continue;
}
let read_at = |start: usize| -> Vec<u32> { (0..n).map(|k| be16(&bytes, start + k * 2)).collect() };
let l0 = read_at(vb - n * 2);
let l2 = read_at(vb - n * 2 - 2);
// Sanity: l0 must be what the decoder emitted, or the assumption that we
// took pad 0 is wrong for this resource and the comparison is meaningless.
let took_pad0 = l0 == sm.indices;
if !took_pad0 {
continue;
}
let (d0, c0, _) = score(&l0, &sm.positions, &sm.normals);
let (d2, c2, _) = score(&l2, &sm.positions, &sm.normals);
let max_i0 = l0.iter().max().copied().unwrap_or(0);
let max_i2 = l2.iter().max().copied().unwrap_or(0);
let v = sm.positions.len() as u32;
// A shifted list typically also overruns the pool by one vertex or leaves
// the last vertex unreferenced, so carry the coverage as evidence too.
let verdict = if d2 < d0 && c2 >= c0 {
better_p2 += 1;
"pad 2 is the real one"
} else if d0 < d2 || c0 > c2 {
better_p0 += 1;
"pad 0 fine"
} else {
tie += 1;
"indistinguishable"
};
if verdict == "pad 0 fine" {
hist_ok.push((d0, m.name.clone(), n));
}
if verdict != "pad 0 fine" || !filter.is_empty() {
println!(
"{:<22} {:>6} {:>6} degen {:>5} wind {:.3} max {:<5} degen {:>5} wind {:.3} max {:<5} {}",
m.name, v, n, d0, c0, max_i0, d2, c2, max_i2, verdict
);
}
}
println!("\npad 2 wins: {better_p2} · pad 0 wins: {better_p0} · indistinguishable: {tie}");
// Is "no degenerate triangle" a safe invariant for a correctly anchored
// block? Distribution over the resources where pad 0 is the better choice.
let zero = hist_ok.iter().filter(|(d, _, _)| *d == 0).count();
println!(
"of the {} pad-0-correct resources, {zero} have ZERO degenerate triangles",
hist_ok.len()
);
let mut worst: Vec<_> = hist_ok.iter().filter(|(d, _, _)| *d > 0).collect();
worst.sort_by_key(|(d, _, _)| std::cmp::Reverse(*d));
for (d, n, idx) in worst.iter().take(10) {
println!(" {n}: {d} degenerate of {} triangles", idx / 3);
}
}

View File

@@ -0,0 +1,86 @@
//! Which container should the next runtime capture aim at?
//!
//! The 2026-08-13 stage-05 capture showed that a mission keeps several containers
//! resident and that its OWN `Stage_SNN.xpr` is among them (the f101 ACROPOLIS was
//! drawn from `Stage_S05.xpr`), so a capture can be aimed by choosing the mission.
//! This ranks the targets: for every XBG7 resource on the disc it records the
//! containers where it decodes and the ones where it does not, then reports
//!
//! * resources that decode **nowhere** — the real gaps, where a capture is the
//! only ground truth left;
//! * per container, how many of those it holds (fly that mission);
//! * resources that miss in one container but decode in another — a defect worth
//! fixing, but the geometry is already recoverable, so a capture is not needed.
//!
//! Usage: miss_targets <resource3d_dir>
use sylpheed_formats::mesh::{xbg7_resource_names, Xbg7Model};
use std::collections::{BTreeMap, BTreeSet};
fn main() {
let dir = std::env::args().nth(1).expect("resource3d dir");
let mut files: Vec<_> = std::fs::read_dir(&dir)
.unwrap()
.flatten()
.map(|e| e.path())
.filter(|p| p.extension().and_then(|s| s.to_str()) == Some("xpr"))
.collect();
files.sort();
// resource -> (containers where it decodes, containers where it misses)
let mut ok: BTreeMap<String, BTreeSet<String>> = BTreeMap::new();
let mut miss: BTreeMap<String, BTreeSet<String>> = BTreeMap::new();
for f in &files {
let Ok(bytes) = std::fs::read(f) else { continue };
let where_ = f.file_name().unwrap().to_string_lossy().to_string();
let declared: BTreeSet<String> = xbg7_resource_names(&bytes).into_iter().collect();
if declared.is_empty() {
continue;
}
let decoded: BTreeSet<String> =
Xbg7Model::stage_models(&bytes).into_iter().map(|m| m.name).collect();
for n in &declared {
if decoded.contains(n) {
ok.entry(n.clone()).or_default().insert(where_.clone());
} else {
miss.entry(n.clone()).or_default().insert(where_.clone());
}
}
}
let never: BTreeMap<&String, &BTreeSet<String>> =
miss.iter().filter(|(n, _)| !ok.contains_key(*n)).collect();
let recoverable: Vec<&String> = miss.keys().filter(|n| ok.contains_key(*n)).collect();
println!("resources that decode NOWHERE: {}", never.len());
println!("resources that miss somewhere but decode elsewhere: {}\n", recoverable.len());
// Rank containers by how many never-decoding resources they hold.
let mut per_container: BTreeMap<&String, Vec<&String>> = BTreeMap::new();
for (n, wheres) in &never {
for w in wheres.iter() {
per_container.entry(w).or_default().push(n);
}
}
let mut ranked: Vec<_> = per_container.iter().collect();
ranked.sort_by_key(|(_, v)| std::cmp::Reverse(v.len()));
println!("container never-decoding resources it holds");
for (w, v) in ranked.iter().take(14) {
let sample: Vec<&str> = v.iter().take(6).map(|s| s.as_str()).collect();
println!("{:<26} {:>3} {}", w, v.len(), sample.join(", "));
}
// Exclusives: a never-decoding resource that only ONE container holds is only
// reachable through whatever loads that container.
let excl: Vec<(&&String, &&BTreeSet<String>)> =
never.iter().filter(|(_, w)| w.len() == 1).collect();
println!("\nof the never-decoding, {} live in exactly one container", excl.len());
let mut by_one: BTreeMap<&String, Vec<&String>> = BTreeMap::new();
for (n, w) in &excl {
by_one.entry(w.iter().next().unwrap()).or_default().push(n);
}
let mut b: Vec<_> = by_one.iter().collect();
b.sort_by_key(|(_, v)| std::cmp::Reverse(v.len()));
for (w, v) in b.iter().take(10) {
println!(" {:<24} {:>3} {}", w, v.len(), v.iter().take(5).map(|s| s.as_str()).collect::<Vec<_>>().join(", "));
}
}

View File

@@ -0,0 +1,129 @@
//! How much geometry on the disc was being read one index element late?
//!
//! The pad-scoring fix (2026-08-13) makes `anchor_pool_mesh` choose the pad whose
//! index run is cleanest instead of the first that validates. This measures the
//! blast radius: per container, how many single-block resources now decode from a
//! run that is NOT the old first-match (`pad 0`) one, and how many decoded runs
//! still contain degenerate triangles (the shift signature) afterwards.
//!
//! Usage: pad_shift_audit <resource3d_dir>
use sylpheed_formats::mesh::Xbg7Model;
fn be16(b: &[u8], at: usize) -> u32 {
((b[at] as u32) << 8) | b[at + 1] as u32
}
/// Fraction of triangles whose face normal agrees with the stored normals,
/// folded to `max(na, 1-na)` so both authored windings read as ≈1.
fn winding(idx: &[u32], pos: &[[f32; 3]], nrm: &[[f32; 3]]) -> f32 {
let (mut agree, mut n) = (0usize, 0usize);
for t in idx.chunks_exact(3) {
let (a, b, c) = (t[0] as usize, t[1] as usize, t[2] as usize);
if a == b || b == c || a == c || a.max(b).max(c) >= pos.len() || a >= nrm.len() {
continue;
}
let e1 = [pos[b][0] - pos[a][0], pos[b][1] - pos[a][1], pos[b][2] - pos[a][2]];
let e2 = [pos[c][0] - pos[a][0], pos[c][1] - pos[a][1], pos[c][2] - pos[a][2]];
let f = [
e1[1] * e2[2] - e1[2] * e2[1],
e1[2] * e2[0] - e1[0] * e2[2],
e1[0] * e2[1] - e1[1] * e2[0],
];
let nv = nrm[a];
n += 1;
if f[0] * nv[0] + f[1] * nv[1] + f[2] * nv[2] > 0.0 {
agree += 1;
}
}
if n == 0 {
return 1.0;
}
let fr = agree as f32 / n as f32;
fr.max(1.0 - fr)
}
fn degenerate(idx: &[u32]) -> usize {
idx.chunks_exact(3)
.filter(|t| t[0] == t[1] || t[1] == t[2] || t[0] == t[2])
.count()
}
fn main() {
let dir = std::env::args().nth(1).expect("resource3d dir");
let mut files: Vec<_> = std::fs::read_dir(&dir)
.unwrap()
.flatten()
.map(|e| e.path())
.filter(|p| p.extension().and_then(|s| s.to_str()) == Some("xpr"))
.collect();
files.sort();
let (mut total, mut moved, mut still_degen) = (0usize, 0usize, 0usize);
let mut weak = 0usize;
let mut weak_wind: Vec<(f32, f32, String)> = Vec::new();
let mut worst: Vec<(usize, String, String)> = Vec::new();
for f in &files {
let Ok(bytes) = std::fs::read(f) else { continue };
let where_ = f.file_name().unwrap().to_string_lossy().to_string();
let mut c_moved = 0usize;
for m in Xbg7Model::stage_models(&bytes) {
// Degeneracy is counted over EVERY sub-mesh (grouped pools included —
// they have their own pad choice); the pad-0 comparison below only
// applies to single-block resources, whose run starts at `vb - 2n`.
for sm in &m.meshes {
let d = degenerate(&sm.indices);
if d > 0 {
still_degen += 1;
worst.push((d, m.name.clone(), where_.clone()));
}
}
if m.meshes.len() != 1 {
continue;
}
let sm = &m.meshes[0];
let Some(vb) = sm.vbuf_offset else { continue };
let n = sm.indices.len();
if n < 6 || vb < n * 2 {
continue;
}
total += 1;
let pad0: Vec<u32> = (0..n).map(|k| be16(&bytes, vb - n * 2 + k * 2)).collect();
if pad0 != sm.indices {
moved += 1;
c_moved += 1;
// How strong was the evidence for moving? A pad-0 run with
// degenerate triangles is a decisive shift signature; one with
// none moved on winding alone, which is weaker.
if degenerate(&pad0) == 0 {
weak += 1;
// Record how far apart the two runs' winding is, to see
// whether these look like the same shift signature as the
// decisive cases (pad-0 winding drifting toward 0.5) or like
// noise between two equally clean readings.
let w0 = winding(&pad0, &sm.positions, &sm.normals);
let w2: f32 = {
let l2: Vec<u32> = (0..n).map(|k| be16(&bytes, vb - n * 2 - 2 + k * 2)).collect();
winding(&l2, &sm.positions, &sm.normals)
};
weak_wind.push((w0, w2, m.name.clone()));
}
}
}
if c_moved > 0 {
println!("{where_:<24} {c_moved} resources read from a non-pad-0 index run");
}
}
println!("\n{moved} of {total} single-block resources moved off the pad-0 run");
println!("{still_degen} decoded runs still contain a degenerate triangle");
println!("of the moved, {weak} had a pad-0 run with no degenerate triangle (moved on winding alone)");
let clear = weak_wind.iter().filter(|(w0, w2, _)| *w2 - *w0 > 0.15).count();
let close = weak_wind.iter().filter(|(w0, w2, _)| (*w2 - *w0).abs() <= 0.05).count();
println!(" of those: {clear} show the shift signature (pad-2 winding > pad-0 by >0.15), {close} are within 0.05 (noise)");
for (w0, w2, n) in weak_wind.iter().take(8) {
println!(" {n}: pad0 wind {w0:.3} -> pad2 {w2:.3}");
}
worst.sort_by_key(|(d, _, _)| std::cmp::Reverse(*d));
for (d, n, w) in worst.iter().take(15) {
println!(" {n} ({w}): {d} degenerate triangles");
}
}

View File

@@ -0,0 +1,13 @@
fn main(){
let a:Vec<String>=std::env::args().collect();
let bytes=std::fs::read(&a[1]).unwrap();
let filter=a.get(2).cloned().unwrap_or_default();
for n in sylpheed_formats::mesh::xbg7_resource_names(&bytes) {
if !filter.is_empty() && !n.contains(&filter) { continue }
if let Some((m,stride))=sylpheed_formats::mesh::debug_resource_params(&bytes,&n) {
let strides = sylpheed_formats::mesh::debug_decl_strides(&bytes, &n);
println!("{n:<28} decl-stride {stride} markers {:?} per-sub-mesh strides {:?}",
&m[..m.len().min(4)], strides);
}
}
}

View File

@@ -0,0 +1,6 @@
fn main() {
let a: Vec<String> = std::env::args().collect();
let bytes = std::fs::read(&a[1]).unwrap();
let vb: usize = a[3].parse().unwrap();
println!("{:?}", sylpheed_formats::mesh::debug_try_anchor(&bytes, &a[2], vb, 3));
}

View File

@@ -0,0 +1,60 @@
//! Which mission should the next unit harvest fly?
//!
//! Unit definitions are instantiated per stage, so coverage grows by visiting
//! missions — but only if the mission fields units we have not read yet. This
//! ranks every stage by how many of its roster units are missing from the
//! harvested CSV.
//!
//! Usage: roster_target <disc-root> <unit-runtime-fields.csv>
use sylpheed_formats::hash::name_hash;
use sylpheed_formats::idxd::IdxdObject;
use sylpheed_formats::pak::PakArchive;
use std::collections::{BTreeMap, BTreeSet};
fn main() {
let a: Vec<String> = std::env::args().collect();
let pak = PakArchive::open(format!("{}/dat/GP_MAIN_GAME_E.pak", a[1])).expect("pak");
let have: BTreeSet<String> = std::fs::read_to_string(&a[2])
.expect("csv")
.lines()
.skip(1)
.filter_map(|l| l.split(',').next().map(str::to_string))
.collect();
// Label each roster by STAGE: the TOC stores a hash of the original path, and
// the table names are known (`EnumUnit_SNN.tbl`), so hashing the candidates
// maps entries back to stages. Most rosters carry no `UN_S<NN>_` prop id, which
// is all `UnitRoster::stage` can infer from.
let mut by_hash: BTreeMap<u32, String> = BTreeMap::new();
// The TOC hashes a PATH, and these tables live under a directory — try the
// known schemes (see hash::TOC_NAME_SCHEMES) rather than the bare name.
for i in 1..=29 {
let stage = format!("S{i:02}");
for pre in ["", "unit\\", "battle\\", "stage\\", "enemy\\"] {
for suf in [".tbl", ""] {
by_hash.insert(name_hash(&format!("{pre}EnumUnit_{stage}{suf}")), stage.clone());
}
}
}
let mut rows: Vec<(usize, String, Vec<String>)> = Vec::new();
for e in pak.entries() {
let Some(stage) = by_hash.get(&e.name_hash).cloned() else { continue };
let Ok(b) = pak.read(e) else { continue };
let Ok(o) = IdxdObject::parse(&b) else { continue };
let mut units: Vec<String> = Vec::new();
for id in o.tokens().iter().filter(|s| s.starts_with("UN_")) {
let prop = id.contains("Asteroid") || id.contains("cmesh") || id.contains("_Box");
if !prop && !units.iter().any(|u| u == id) {
units.push(id.clone());
}
}
let missing: Vec<String> = units.iter().filter(|u| !have.contains(*u)).cloned().collect();
rows.push((missing.len(), stage, missing));
}
rows.sort_by_key(|(n, _, _)| std::cmp::Reverse(*n));
println!("units already harvested: {}\n", have.len());
println!("stage missing roster units not yet read");
for (n, stage, missing) in rows.iter().take(12) {
let s: Vec<&str> = missing.iter().take(6).map(|s| s.as_str()).collect();
println!("{stage:<8} {n:>5} {}", s.join(", "));
}
}

View File

@@ -0,0 +1,18 @@
//! RE probe: dump tables.pak screen-config records that mention a given token.
//! Usage: screen_configs <disc-root> <substring>
use sylpheed_formats::{idxd::IdxdObject, pak::PakArchive};
fn main(){
let a:Vec<String>=std::env::args().collect();
let needle=a.get(2).cloned().unwrap_or_else(||"CHALLENGE".into());
let arc=PakArchive::open(format!("{}/dat/tables.pak",a[1])).unwrap();
for (i,e) in arc.entries().iter().enumerate(){
let Ok(b)=arc.read(e) else{continue};
let Ok(o)=IdxdObject::parse(&b) else{continue};
let t=o.tokens();
if !t.iter().any(|s|s.to_lowercase().contains(&needle.to_lowercase())){continue}
let path=t.iter().find(|s|s.contains(".pak+")).cloned().unwrap_or_default();
if !path.is_empty() && !path.contains("+eng"){continue}
println!("\n=== entry #{i} schema {:08x} [{path}] {} tokens ===",o.schema_hash,t.len());
for (j,tok) in t.iter().enumerate(){println!(" {j:3} {tok}");}
}
}

View File

@@ -0,0 +1,7 @@
fn main(){let a:Vec<String>=std::env::args().collect();let b=std::fs::read(&a[1]).unwrap();
let stride:usize=a[2].parse().unwrap(); let want:usize=a[3].parse().unwrap();
let s=sylpheed_formats::mesh::debug_vertex_run_starts(&b,stride);
println!("{} candidate starts at stride {}", s.len(), stride);
println!("contains {:#x}: {}", want, s.contains(&want));
let near:Vec<String>=s.iter().filter(|&&o| o.abs_diff(want)<0x200).map(|o|format!("{o:#x}")).collect();
println!("nearby: {}", near.join(" "));}

View File

@@ -0,0 +1,19 @@
//! Why does a named resource never decode? Reports the furthest gate its best
//! candidate reached. Usage: why_missed <container.xpr> [name-substring]
use sylpheed_formats::mesh::{debug_best_rejection, xbg7_resource_names, Xbg7Model};
use std::collections::HashSet;
fn main() {
let a: Vec<String> = std::env::args().collect();
let bytes = std::fs::read(&a[1]).unwrap();
let filter = a.get(2).cloned().unwrap_or_default();
let decoded: HashSet<String> = Xbg7Model::stage_models(&bytes).into_iter().map(|m| m.name).collect();
for n in xbg7_resource_names(&bytes) {
if decoded.contains(&n) || (!filter.is_empty() && !n.contains(&filter)) {
continue;
}
match debug_best_rejection(&bytes, &n) {
Some((rank, why)) => println!("{n:<28} rank {rank} {why}"),
None => println!("{n:<28} (no candidate reached any gate / skipped before anchoring)"),
}
}
}

View File

@@ -513,6 +513,9 @@ impl Xbg7Model {
/// → the grouped-pool layout ([`anchor_grouped_meshes`]). /// → the grouped-pool layout ([`anchor_grouped_meshes`]).
markers: Vec<(usize, usize)>, markers: Vec<(usize, usize)>,
decl: VertexDecl, decl: VertexDecl,
/// One declaration per marker (same order). A grouped pool can mix
/// strides, so the grouped path must use these rather than `decl`.
decls: Vec<VertexDecl>,
} }
let mut resources: Vec<Res> = Vec::new(); let mut resources: Vec<Res> = Vec::new();
for _ in 0..header.num_resources { for _ in 0..header.num_resources {
@@ -551,10 +554,17 @@ impl Xbg7Model {
// at a different offset when requested alone. The filter is applied // at a different offset when requested alone. The filter is applied
// to the OUTPUT instead, so a subset is always a subset of the // to the OUTPUT instead, so a subset is always a subset of the
// container's own answer. // container's own answer.
let mut decls = if submesh_decls() { all_vertex_decls(d) } else { Vec::new() };
if decls.len() != markers.len() {
// Never seen on the disc, but if the two walks disagree fall back
// to the single declaration rather than mis-pair them.
decls = vec![decl.clone(); markers.len()];
}
resources.push(Res { resources.push(Res {
name, name,
markers, markers,
decl, decl,
decls,
}); });
} }
if resources.is_empty() { if resources.is_empty() {
@@ -614,7 +624,7 @@ impl Xbg7Model {
// Several sub-meshes sharing grouped index/vertex pools → the // Several sub-meshes sharing grouped index/vertex pools → the
// deterministic grouped-pool decode (hero ships et al.). // deterministic grouped-pool decode (hero ships et al.).
let grouped = let grouped =
anchor_grouped_meshes(bytes, data_base, starts, &r.markers, &r.decl, &empty_taken); anchor_grouped_meshes(bytes, data_base, starts, &r.markers, &r.decls, &empty_taken);
if !grouped.is_empty() { if !grouped.is_empty() {
grouped grouped
} else { } else {
@@ -728,7 +738,7 @@ impl Xbg7Model {
// Grouped pool: re-place the WHOLE pool past everything // Grouped pool: re-place the WHOLE pool past everything
// claimed, or keep what we had. // claimed, or keep what we had.
let alt = anchor_grouped_meshes( let alt = anchor_grouped_meshes(
bytes, data_base, starts, &r.markers, &r.decl, &taken, bytes, data_base, starts, &r.markers, &r.decls, &taken,
); );
if !alt.is_empty() { if !alt.is_empty() {
m.meshes = alt; m.meshes = alt;
@@ -915,6 +925,40 @@ pub fn debug_best_rejection(bytes: &[u8], name: &str) -> Option<(usize, String)>
Some(best) Some(best)
} }
/// Diagnostic: the stride of every sub-mesh declaration of a named resource.
/// A grouped pool may mix them (`n201_01` → 24, 24, 24, 28).
pub fn debug_decl_strides(bytes: &[u8], name: &str) -> Vec<usize> {
decls_of(bytes, name).map(|v| v.iter().map(|d| d.stride).collect()).unwrap_or_default()
}
/// Every sub-mesh declaration of a named resource (see [`all_vertex_decls`]).
fn decls_of(bytes: &[u8], name: &str) -> Option<Vec<VertexDecl>> {
if bytes.len() < 16 || &bytes[..4] != b"XPR2" {
return None;
}
let mut cur = Cursor::new(bytes);
let header = Xpr2Header::read(&mut cur).ok()?;
const DIR_BASE: usize = 0x10;
for _ in 0..header.num_resources {
let Ok(e) = Xpr2ResourceEntry::read(&mut cur) else { break };
if &e.type_tag != b"XBG7" {
continue;
}
let desc = e.data_offset as usize + DIR_BASE;
let desc_end = (desc + e.descriptor_size as usize).min(bytes.len());
if desc >= bytes.len() || desc_end <= desc {
continue;
}
let rname = read_cstr(bytes, e.name_offset as usize + DIR_BASE)
.unwrap_or_else(|| "XBG7".to_string());
if rname != name {
continue;
}
return Some(all_vertex_decls(&bytes[desc..desc_end]));
}
None
}
/// Diagnostic: why does the decoder refuse a grouped-pool resource at a given /// Diagnostic: why does the decoder refuse a grouped-pool resource at a given
/// pool start? Recomputes the pool layout exactly as [`anchor_grouped_meshes`] /// pool start? Recomputes the pool layout exactly as [`anchor_grouped_meshes`]
/// does and reports the pivot sub-mesh's verdict for each index/vertex pad — /// does and reports the pivot sub-mesh's verdict for each index/vertex pad —
@@ -927,6 +971,12 @@ pub fn debug_grouped_report(bytes: &[u8], name: &str, vb0: usize) -> Vec<String>
if n == 0 { if n == 0 {
return vec!["no index markers".into()]; return vec!["no index markers".into()];
} }
// Per-sub-mesh declarations, like the production path: a pool can mix strides
// and reporting with one of them blames the wrong gate.
let decls = match decls_of(bytes, name).filter(|v| v.len() == n && submesh_decls()) {
Some(v) => v,
None => vec![decl.clone(); n],
};
let (mut rel_ib, mut acc_i) = (Vec::with_capacity(n), 0usize); let (mut rel_ib, mut acc_i) = (Vec::with_capacity(n), 0usize);
for &(_, ic) in &markers { for &(_, ic) in &markers {
rel_ib.push(acc_i); rel_ib.push(acc_i);
@@ -936,8 +986,8 @@ pub fn debug_grouped_report(bytes: &[u8], name: &str, vb0: usize) -> Vec<String>
let kmax = (0..n).max_by_key(|&i| markers[i].1).unwrap_or(0); let kmax = (0..n).max_by_key(|&i| markers[i].1).unwrap_or(0);
let (vck, ick) = markers[kmax]; let (vck, ick) = markers[kmax];
let mut off_v = 0usize; let mut off_v = 0usize;
for &(vc, _) in markers.iter().take(kmax) { for (i, &(vc, _)) in markers.iter().take(kmax).enumerate() {
off_v += vc * decl.stride; off_v += vc * decls[i].stride;
} }
let mut out = vec![format!( let mut out = vec![format!(
"{name}: {n} sub-meshes, pivot #{kmax} ({vck} verts, {ick} idx), pool span {span}" "{name}: {n} sub-meshes, pivot #{kmax} ({vck} verts, {ick} idx), pool span {span}"
@@ -957,7 +1007,7 @@ pub fn debug_grouped_report(bytes: &[u8], name: &str, vb0: usize) -> Vec<String>
vb0 + off_v, vb0 + off_v,
vck, vck,
ick, ick,
&decl, &decls[kmax],
0.85, 0.85,
true, true,
); );
@@ -1089,6 +1139,33 @@ fn pad0_consistency() -> f32 {
std::env::var("XBG7_PAD0_CONSISTENCY").ok().and_then(|v| v.parse().ok()).unwrap_or(0.70) std::env::var("XBG7_PAD0_CONSISTENCY").ok().and_then(|v| v.parse().ok()).unwrap_or(0.70)
} }
/// Revert knob for the 2026-08-13 pad scoring: with `XBG7_PAD_FIRST_MATCH=1`,
/// [`anchor_pool_mesh`] takes the FIRST pad that validates (the pre-fix
/// behaviour) instead of the pad whose index run is cleanest. Kept so the two
/// behaviours can be diffed on the disc; see docs/re/structures/xbg7-mesh.md.
/// Use the **per-sub-mesh** vertex declarations in a grouped pool — **on by
/// default**; `XBG7_SUBMESH_DECLS=0` restores the single-declaration reading.
///
/// Each index marker is followed by its own element triples and they can differ:
/// `n201_01` (`Stage_S02.xpr`) declares strides 24, 24, 24, **28**, which a runtime
/// capture confirms draw-for-draw (`stride=28` on the fourth draw, and a distinct
/// vertex shader per sub-mesh). Reading only the first declaration walked the last
/// buffer out of phase and declined the whole resource.
///
/// With this and the completeness-based candidate choice in
/// [`anchor_grouped_meshes`], `n201_01` anchors at the capture-proven pool start
/// with all four sub-meshes at the captured offsets, its two sibling copies take
/// their own pools, disc-wide misses fall **85 → 47**, and the captured index runs
/// of the stage-05 mission rise **124 → 128** identical. See
/// docs/re/structures/xbg7-mesh.md.
fn submesh_decls() -> bool {
std::env::var("XBG7_SUBMESH_DECLS").map(|v| v != "0").unwrap_or(true)
}
fn pad_first_match() -> bool {
std::env::var("XBG7_PAD_FIRST_MATCH").map(|v| v == "1").unwrap_or(false)
}
/// Triangle count below which the looser [`small_cap`] applies. `0` (default) /// Triangle count below which the looser [`small_cap`] applies. `0` (default)
/// disables the split, so the flat [`edge_cap`] governs every block. /// disables the split, so the flat [`edge_cap`] governs every block.
fn small_tris() -> usize { fn small_tris() -> usize {
@@ -1273,6 +1350,9 @@ fn anchor_pool_mesh(
min_vb: usize, min_vb: usize,
) -> Option<GameMesh> { ) -> Option<GameMesh> {
let idx_bytes = index_count * 2; let idx_bytes = index_count * 2;
// First accepted candidate whose index run still has degenerate triangles —
// used only if no clean candidate exists anywhere (see the end of the loop).
let mut dirty: Option<(usize, usize)> = None;
for &vb in starts { for &vb in starts {
// Monotone assignment (opt-in): resources of one signature are laid out // Monotone assignment (opt-in): resources of one signature are laid out
// in descriptor order, so a later one may not take an earlier block. // in descriptor order, so a later one may not take an earlier block.
@@ -1293,6 +1373,17 @@ fn anchor_pool_mesh(
// pad>0 is gated at a strict 0.85 consistency to avoid a false anchor in // pad>0 is gated at a strict 0.85 consistency to avoid a false anchor in
// the ungated (`min_consistency == 0`) stage path — pad 0 keeps its exact // the ungated (`min_consistency == 0`) stage path — pad 0 keeps its exact
// prior behaviour. // prior behaviour.
// Do NOT take the first pad that validates. A list read one element late
// still validates — every index is in range, the pool is still covered,
// and the winding can squeak past 0.70 — but it re-wires every triangle.
// The runtime capture caught it (17 draw batches whose captured indices
// equal ours shifted by one, all on pad-2 buffers), and the signature is
// decidable offline: a shift wires vertices arbitrarily, so triangles come
// out DEGENERATE (a repeated index). 282 of 283 correctly anchored
// `Stage_S02` blocks have zero degenerate triangles, against 12 156 for
// their shifted readings. So score every validating pad and keep the
// cleanest. See docs/re/structures/xbg7-mesh.md.
let mut best: Option<(usize, f32, usize)> = None; // (degenerate, -winding, pad)
for pad in 0..=3usize { for pad in 0..=3usize {
if vb < idx_bytes + pad { if vb < idx_bytes + pad {
continue; continue;
@@ -1310,11 +1401,46 @@ fn anchor_pool_mesh(
min_consistency.max(0.85) min_consistency.max(0.85)
}; };
if validate_block(bytes, ib, vb, vtx_count, index_count, decl, mc, true) { if validate_block(bytes, ib, vb, vtx_count, index_count, decl, mc, true) {
// ── Accepted: read the full mesh. ── if pad_first_match() {
return Some(read_pool_mesh(bytes, ib, vb, index_count, vtx_count, decl)); return Some(read_pool_mesh(bytes, ib, vb, index_count, vtx_count, decl));
} }
let (degen, wind) = index_run_quality(bytes, ib, vb, index_count, decl);
let cand = (degen, -wind, pad);
if best.map_or(true, |b| cand < b) {
best = Some(cand);
} }
} }
}
if let Some((degen, _, pad)) = best {
// A candidate whose triangles are degenerate-free is preferred over an
// earlier one that is not. This keeps first-match order for every
// clean hit (the overwhelming majority) and only searches on when the
// first accepted block is provably mis-fitted — the two resources that
// survived the pad fix (`e201_bdy_03_m`, `_rou_f402_dead`) each have
// exactly ONE degenerate-free block in their container, sitting later
// in file order than the lookalike we were taking.
if degen == 0 || pad_first_match() {
return Some(read_pool_mesh(bytes, vb - idx_bytes - pad, vb, index_count, vtx_count, decl));
}
if dirty.is_none() {
dirty = Some((vb, pad));
}
}
}
// NOT DONE, deliberately: when every validating candidate is degenerate one
// could re-scan without the pad-0 winding floor, since degeneracy is the
// stronger witness. Written and measured 2026-08-13 — it fires for **nothing**
// on the disc. The single remaining dirty resource (`_rou_f402_dead` in
// `Stage_S09`) does have a degenerate-free block that validates at
// `XBG7_PAD0_CONSISTENCY=0`, but it is CLAIMED by `e_rou_f003_Near`, so
// distinct assignment — not the winding floor — is what blocks it. Both are
// 24-vertex bounding boxes, i.e. the box-identity class that needs
// descriptor-level data rather than another anchoring heuristic (see the docs).
// Nothing clean anywhere: keep the first accepted block, so this can never
// cost coverage relative to first-match.
if let Some((vb, pad)) = dirty {
return Some(read_pool_mesh(bytes, vb - idx_bytes - pad, vb, index_count, vtx_count, decl));
}
None None
} }
@@ -1546,25 +1672,27 @@ fn anchor_grouped_meshes(
data_base: usize, data_base: usize,
starts: &[usize], starts: &[usize],
markers: &[(usize, usize)], // (vtx_count, idx_count) in descriptor/file order markers: &[(usize, usize)], // (vtx_count, idx_count) in descriptor/file order
decl: &VertexDecl, decls: &[VertexDecl], // one per marker — a pool CAN mix strides
taken: &std::collections::HashSet<usize>, taken: &std::collections::HashSet<usize>,
) -> Vec<GameMesh> { ) -> Vec<GameMesh> {
let n = markers.len(); let n = markers.len();
if n == 0 { if n == 0 || decls.len() < n {
return Vec::new(); return Vec::new();
} }
let stride = decl.stride; let decl = &decls[0];
// Relative index-buffer offsets (ib0 = 0), 4-byte aligned between buffers, // Relative index-buffer offsets (ib0 = 0), 4-byte aligned between buffers,
// and cumulative vertex offsets (vb0 = 0) — both derived from the marker list. // and cumulative vertex offsets (vb0 = 0) — both derived from the marker list.
let mut rel_ib = Vec::with_capacity(n); let mut rel_ib = Vec::with_capacity(n);
let mut off_v = Vec::with_capacity(n); let mut off_v = Vec::with_capacity(n);
let (mut acc_i, mut acc_v) = (0usize, 0usize); let (mut acc_i, mut acc_v) = (0usize, 0usize);
for &(vc, ic) in markers { for (i, &(vc, ic)) in markers.iter().enumerate() {
rel_ib.push(acc_i); rel_ib.push(acc_i);
off_v.push(acc_v); off_v.push(acc_v);
acc_i = align4(acc_i + ic * 2); acc_i = align4(acc_i + ic * 2);
acc_v += vc * stride; // Each sub-mesh advances by ITS OWN stride: `n201_01` ends with a
// stride-28 sub-mesh after three stride-24 ones (capture-confirmed).
acc_v += vc * decls[i].stride;
} }
// The index pool spans ib0 .. end-of-last-buffer. The vertex pool that // The index pool spans ib0 .. end-of-last-buffer. The vertex pool that
// follows is **4-byte aligned**, so up to 3 bytes of padding can sit between // follows is **4-byte aligned**, so up to 3 bytes of padding can sit between
@@ -1582,12 +1710,61 @@ fn anchor_grouped_meshes(
let kmax = (0..n).max_by_key(|&i| markers[i].1).unwrap_or(0); let kmax = (0..n).max_by_key(|&i| markers[i].1).unwrap_or(0);
let (vck, ick) = markers[kmax]; let (vck, ick) = markers[kmax];
// Build the pool at a candidate (vb0, pad). Sub-meshes that fail the
// structural requirements (every index inside its own buffer, indices
// reaching its end) are skipped, so the returned length says how much of the
// declared pool this candidate actually explains — which is what selects
// between candidates below.
let build = |vb0: usize, pad: usize| -> Vec<GameMesh> {
let ib0 = vb0 - span - pad;
let mut meshes = Vec::with_capacity(n);
let mut vb = vb0;
for i in 0..n {
let (vc, ic) = markers[i];
let ib = ib0 + rel_ib[i];
if ib + ic * 2 > bytes.len()
|| vc.checked_mul(decls[i].stride).map_or(true, |b| vb + b > bytes.len())
{
break;
}
let ok = validate_block(bytes, ib, vb, vc, ic, &decls[i], 0.85, false);
if !ok && i > kmax {
break; // chain diverged — emit the validated prefix, no garbage
}
let mut max_idx = 0usize;
let in_range = (0..ic).all(|k| {
let i = be16(bytes, ib + k * 2) as usize;
max_idx = max_idx.max(i);
i < vc
});
if in_range && max_idx + cover_slack() >= vc {
meshes.push(read_pool_mesh(bytes, ib, vb, ic, vc, &decls[i]));
}
vb += vc * decls[i].stride;
}
meshes
};
// A candidate that explains the WHOLE pool beats one that explains part of it,
// however early it sits in file order. `n201_01` is the case that forced this:
// a `vb0` **4 bytes before** the capture-proven start also validates for the
// pivot (at pad 2) and, being earlier in the scan, used to win — then two of
// the four sub-meshes fell out as out-of-range and the resource decoded as a
// 2-part fragment 4 bytes off. The proven start explains all four.
let mut partial: Option<Vec<GameMesh>> = None;
for &vb0 in starts { for &vb0 in starts {
// Distinct assignment: a pool another resource already claimed is not a // Distinct assignment: a pool another resource already claimed is not a
// candidate (see the collision resolution in `anchor_models_filtered`). // candidate (see the collision resolution in `anchor_models_filtered`).
if taken.contains(&vb0) { if taken.contains(&vb0) {
continue; continue;
} }
// Which pad? Not the first that validates — the same trap the searched
// path had until 2026-08-13: a pool read one index element late still
// validates but wires every triangle wrongly. Score the pivot's index run
// (degenerate triangles first, then winding) and keep the cleanest pad.
// `XBG7_PAD_FIRST_MATCH=1` restores first-match here too.
let mut best: Option<(usize, f32, usize)> = None;
for pad in 0..=3usize { for pad in 0..=3usize {
if vb0 < span + pad { if vb0 < span + pad {
continue; continue;
@@ -1602,60 +1779,64 @@ fn anchor_grouped_meshes(
// collapses well below 0.85, so only the true pad/pivot passes. // collapses well below 0.85, so only the true pad/pivot passes.
let ib_k = ib0 + rel_ib[kmax]; let ib_k = ib0 + rel_ib[kmax];
let vb_k = vb0 + off_v[kmax]; let vb_k = vb0 + off_v[kmax];
if !validate_block(bytes, ib_k, vb_k, vck, ick, decl, grouped_consistency(), true) { if !validate_block(bytes, ib_k, vb_k, vck, ick, &decls[kmax], grouped_consistency(), true) {
continue; continue;
} }
let (degen, wind) = index_run_quality(bytes, ib_k, vb_k, ick, &decls[kmax]);
// Pivot confirmed the exact alignment ⇒ every marker up to the pivot let cand = (degen, -wind, pad);
// is correctly placed; read those unconditionally (a legitimately if best.map_or(true, |b| cand < b) {
// tiny/flat lead part may fail the quality gates yet still be real). best = Some(cand);
// Markers after the pivot are validated so a stray trailing marker }
// ends the chain instead of appending garbage. if pad_first_match() {
let mut meshes = Vec::with_capacity(n);
let mut vb = vb0;
for i in 0..n {
let (vc, ic) = markers[i];
let ib = ib0 + rel_ib[i];
if ib + ic * 2 > bytes.len()
|| vc.checked_mul(stride).map_or(true, |b| vb + b > bytes.len())
{
break; break;
} }
// Parts are placed deterministically; in-range + consistency pins
// them, so the connectivity heuristic (which mis-rejects small
// flat fins) is relaxed here.
let ok = validate_block(bytes, ib, vb, vc, ic, decl, 0.85, false);
if !ok && i > kmax {
break; // chain diverged — emit the validated prefix, no garbage
}
// Sub-meshes BEFORE the pivot are emitted even when they fail the
// quality gates (a tiny flat lead part is legitimately poor), but
// an index that addresses past its own vertex buffer is not a
// quality question — it is unusable. Measured 2026-08-12: 18
// sub-meshes disc-wide carried indices up to 364 vertices past
// the end (`coverage_audit`), which any renderer would fault on.
// Same two structural requirements the searched path enforces:
// every index inside the buffer, and the indices reaching the
// end of it. Real geometry covers its pool exactly — 8 586 of
// 8 636 decoded sub-meshes reference their last vertex, none
// more than 3 short (`coverage_audit`) — so a sub-mesh whose
// indices stop well short is reading the wrong block, not a
// sparse one.
let mut max_idx = 0usize;
let in_range = (0..ic).all(|k| {
let i = be16(bytes, ib + k * 2) as usize;
max_idx = max_idx.max(i);
i < vc
});
if in_range && max_idx + cover_slack() >= vc {
meshes.push(read_pool_mesh(bytes, ib, vb, ic, vc, decl));
}
vb += vc * stride;
} }
if let Some((_, _, pad)) = best {
// Pivot confirmed the alignment; how much of the pool does it explain?
let meshes = build(vb0, pad);
if meshes.len() == n {
return meshes; return meshes;
} }
if partial.as_ref().map_or(true, |p| meshes.len() > p.len()) {
partial = Some(meshes);
} }
Vec::new() }
}
// No candidate explained the whole pool — keep the best partial one, so this
// can never decode less than the previous first-match behaviour.
partial.unwrap_or_default()
}
/// How clean is the triangle list at `ib` against the pool at `vb`?
///
/// Returns `(degenerate triangles, winding agreement)` — the two properties that
/// separate a correctly located index run from one read a couple of bytes off.
/// A shifted run wires arbitrary vertices, which shows up as **degenerate**
/// triangles (a repeated index) and a winding agreement drifting toward the 0.5
/// middle; a real block has zero degenerate triangles and agreement ≈1 or ≈0.
/// Used by [`anchor_pool_mesh`] to choose between pads that all validate.
fn index_run_quality(
bytes: &[u8],
ib: usize,
vb: usize,
index_count: usize,
decl: &VertexDecl,
) -> (usize, f32) {
// The pool only needs as many vertices as the run references.
let mut max_idx = 0usize;
for k in 0..index_count {
let at = ib + k * 2;
if at + 2 > bytes.len() {
return (usize::MAX, 0.0);
}
max_idx = max_idx.max(be16(bytes, at) as usize);
}
let m = read_pool_mesh(bytes, ib, vb, index_count, max_idx + 1, decl);
if m.normals.is_empty() {
return (0, 1.0); // no normals: degeneracy alone decides
}
let (_, degen, na, _) = topology_report(&m.indices, &m.positions, &m.normals);
(degen, na.max(1.0 - na))
} }
/// Read positions / normals / uvs / indices for an anchored stage block. /// Read positions / normals / uvs / indices for an anchored stage block.
@@ -1708,8 +1889,10 @@ const VERTEX_BUFFER_GAP: usize = 12;
// ── Vertex declaration ─────────────────────────────────────────────────────── // ── Vertex declaration ───────────────────────────────────────────────────────
/// The vertex layout for one XBG7 resource, parsed from the descriptor's /// The vertex layout of one XBG7 **sub-mesh**, parsed from the element triples
/// declaration table (shared by all its sub-meshes). /// that follow its index marker. A grouped pool may declare a different layout
/// per sub-mesh — see [`all_vertex_decls`].
#[derive(Clone)]
struct VertexDecl { struct VertexDecl {
/// Bytes per vertex. /// Bytes per vertex.
stride: usize, stride: usize,
@@ -1781,8 +1964,51 @@ fn all_index_markers(desc: &[u8]) -> Vec<(usize, usize)> {
out out
} }
/// Every sub-mesh's OWN declaration, in file order.
///
/// A grouped pool is **not** one declaration repeated: each index marker is
/// followed by its own element triples, and they can differ. `n201_01`
/// (`Stage_S02.xpr`) declares strides 24, 24, 24 and **28** — the last sub-mesh
/// has a fourth element — which a 2026-08-13 runtime capture confirms
/// (`stride=28` on that draw, and a different vertex shader for each sub-mesh).
/// Reading the first declaration for the whole pool walks the last buffer out of
/// phase and the resource is declined; see docs/re/structures/xbg7-mesh.md.
fn all_vertex_decls(desc: &[u8]) -> Vec<VertexDecl> {
let mut out = Vec::new();
let mut rel = 0usize;
while rel + 8 <= desc.len() {
let a = be32(desc, rel);
let c = be32(desc, rel + 4);
if c >= 3 && c % 3 == 0 && c < 400_000 && a == c * 2 && rel >= 32 {
let vc = be32(desc, rel - 32) as usize;
if (3..=200_000).contains(&vc) {
match parse_decl_at(desc, rel + 8) {
Some(d) => out.push(d),
// Keep the positions aligned with `all_index_markers`: a
// marker whose declaration will not parse still occupies a
// slot, so fall back to the resource's first declaration.
None => match out.first() {
Some(d) => out.push(d.clone()),
None => return Vec::new(),
},
}
rel += 8;
continue;
}
}
rel += 4;
}
out
}
fn parse_vertex_decl(desc: &[u8]) -> Option<VertexDecl> { fn parse_vertex_decl(desc: &[u8]) -> Option<VertexDecl> {
let mk = find_index_marker(desc)?.0; let mk = find_index_marker(desc)?.0;
parse_decl_at(desc, mk + 8)
}
/// Parse the element triples that start at `at` (just past an index marker).
fn parse_decl_at(desc: &[u8], at: usize) -> Option<VertexDecl> {
let mk = at.checked_sub(8)?;
// Read declaration triples. // Read declaration triples.
let mut elems: Vec<(usize, u32, u32)> = Vec::new(); // (offset, code, usage) let mut elems: Vec<(usize, u32, u32)> = Vec::new(); // (offset, code, usage)

View File

@@ -49,6 +49,33 @@ pub struct CapturedDraw {
/// First few LOCAL vertex positions dumped with the draw (buffer order). /// First few LOCAL vertex positions dumped with the draw (buffer order).
/// Used to disambiguate same-vcount twins (mirrored port/starboard parts). /// Used to disambiguate same-vcount twins (mirrored port/starboard parts).
pub pos: Vec<[f32; 3]>, pub pos: Vec<[f32; 3]>,
/// The draw's INDEX buffer, when the capture recorded one (`ib base=…`,
/// added 2026-08-13): guest base address, index count, and the min/max index
/// value the emulator read out of guest memory. `None` for older logs and
/// for auto-index draws. This is ground truth for two things the offline
/// decoder can only assume — where a block's index buffer lives relative to
/// its vertex buffer, and how much of the vertex pool a draw really covers.
pub ib: Option<CapturedIndexBuffer>,
}
/// The index buffer a captured draw used. See [`CapturedDraw::ib`].
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct CapturedIndexBuffer {
/// Guest base address of the index data.
pub ibase: u32,
/// Number of indices the draw issued (== `VGT_DRAW_INITIATOR.num_indices`).
pub icount: u32,
/// Lowest index value in the buffer.
pub imin: u32,
/// Highest index value in the buffer — with `vcount` this says whether the
/// draw covers its whole vertex pool or only a sub-range.
pub imax: u32,
/// The first indices, verbatim (the capture prints up to 24). Byte-level
/// ground truth for the offline index decode: a matched block's decoded
/// index prefix must equal this run.
pub head: [u32; 24],
/// How many of `head` the capture actually carried.
pub head_len: u8,
} }
/// A ship part to match against the capture. `part` is the **base** part name /// A ship part to match against the capture. `part` is the **base** part name
@@ -100,13 +127,16 @@ pub fn parse_capture(text: &str) -> Vec<CapturedDraw> {
let mut vcount = 0u32; let mut vcount = 0u32;
let mut pos: Vec<[f32; 3]> = Vec::new(); let mut pos: Vec<[f32; 3]> = Vec::new();
let mut consts: Vec<(usize, [f64; 4])> = Vec::new(); let mut consts: Vec<(usize, [f64; 4])> = Vec::new();
let mut ib: Option<CapturedIndexBuffer> = None;
let flush = |vbase: u32, let flush = |vbase: u32,
vcount: u32, vcount: u32,
pos: &mut Vec<[f32; 3]>, pos: &mut Vec<[f32; 3]>,
ib: &mut Option<CapturedIndexBuffer>,
consts: &[(usize, [f64; 4])], consts: &[(usize, [f64; 4])],
out: &mut Vec<CapturedDraw>| { out: &mut Vec<CapturedDraw>| {
let pos = std::mem::take(pos); let pos = std::mem::take(pos);
let ib = ib.take();
if vbase == 0 { if vbase == 0 {
return; return;
} }
@@ -115,18 +145,47 @@ pub fn parse_capture(text: &str) -> Vec<CapturedDraw> {
return; // no WorldView for this draw — skip it return; // no WorldView for this draw — skip it
}; };
if let Some((r, t)) = normalize_wvp([c0, c1, c2]) { if let Some((r, t)) = normalize_wvp([c0, c1, c2]) {
out.push(CapturedDraw { vbase, vcount, r, t, pos }); out.push(CapturedDraw { vbase, vcount, r, t, pos, ib });
} }
}; };
for line in text.lines() { for line in text.lines() {
let l = line.trim(); let l = line.trim();
if let Some(rest) = l.strip_prefix("DRAW ") { if let Some(rest) = l.strip_prefix("DRAW ") {
flush(vbase, vcount, &mut pos, &consts, &mut out); flush(vbase, vcount, &mut pos, &mut ib, &consts, &mut out);
consts.clear(); consts.clear();
let f = |k: &str| rest.split_whitespace().find_map(|t| t.strip_prefix(k)); let f = |k: &str| rest.split_whitespace().find_map(|t| t.strip_prefix(k));
vbase = f("vbase=0x").and_then(|s| u32::from_str_radix(s, 16).ok()).unwrap_or(0); vbase = f("vbase=0x").and_then(|s| u32::from_str_radix(s, 16).ok()).unwrap_or(0);
vcount = f("vcount=").and_then(|s| s.parse().ok()).unwrap_or(0); vcount = f("vcount=").and_then(|s| s.parse().ok()).unwrap_or(0);
} else if let Some(rest) = l.strip_prefix("ib base=0x") {
// `ib base=0x… count=N fmt=u16 endian=E len=L delta_vb=D min=a max=b idx: …`
let f = |k: &str| rest.split_whitespace().find_map(|t| t.strip_prefix(k));
let base = rest
.split_whitespace()
.next()
.and_then(|s| u32::from_str_radix(s, 16).ok());
if let (Some(ibase), Some(icount)) = (base, f("count=").and_then(|s| s.parse().ok())) {
let mut head = [0u32; 24];
let mut head_len = 0u8;
if let Some((_, list)) = l.split_once("idx:") {
for tok in list.split_whitespace() {
let Ok(v) = tok.parse::<u32>() else { break };
if head_len as usize >= head.len() {
break;
}
head[head_len as usize] = v;
head_len += 1;
}
}
ib = Some(CapturedIndexBuffer {
ibase,
icount,
imin: f("min=").and_then(|s| s.parse().ok()).unwrap_or(0),
imax: f("max=").and_then(|s| s.parse().ok()).unwrap_or(0),
head,
head_len,
});
}
} else if l.starts_with("pos:") || l.starts_with("positions:") { } else if l.starts_with("pos:") || l.starts_with("positions:") {
pos = parse_pos_line(l, 8); pos = parse_pos_line(l, 8);
} else if l.starts_with("vsconst") { } else if l.starts_with("vsconst") {
@@ -147,7 +206,7 @@ pub fn parse_capture(text: &str) -> Vec<CapturedDraw> {
} }
} }
} }
flush(vbase, vcount, &mut pos, &consts, &mut out); flush(vbase, vcount, &mut pos, &mut ib, &consts, &mut out);
out out
} }
@@ -242,7 +301,9 @@ pub fn parse_drawlog(text: &str) -> Vec<CapturedDraw> {
let get = |i: usize| consts.iter().find(|(k, _)| *k == i).map(|(_, v)| *v); let get = |i: usize| consts.iter().find(|(k, _)| *k == i).map(|(_, v)| *v);
let (Some(c0), Some(c1), Some(c2)) = (get(0), get(1), get(2)) else { return }; let (Some(c0), Some(c1), Some(c2)) = (get(0), get(1), get(2)) else { return };
if let Some((r, t)) = normalize_wvp([c0, c1, c2]) { if let Some((r, t)) = normalize_wvp([c0, c1, c2]) {
out.push(CapturedDraw { vbase: base, vcount: size / stride, r, t, pos }); // The draw-logger format carries an index base too, but it de-dups
// by vertex declaration, so it never lines up per part — left None.
out.push(CapturedDraw { vbase: base, vcount: size / stride, r, t, pos, ib: None });
} }
}; };

View File

@@ -424,3 +424,59 @@ fn stage_models_quality_audit() {
assert!(huge < models.len() / 20, "few huge (skybox-plane) models"); assert!(huge < models.len() / 20, "few huge (skybox-plane) models");
assert!(worst_deg < 0.35, "no model should be mostly-degenerate"); assert!(worst_deg < 0.35, "no model should be mostly-degenerate");
} }
/// A correctly located index run has **no degenerate triangles**. That is the
/// signature the 2026-08-13 pad-scoring fix keys on: an index list read one
/// element late still passes every count-based gate but wires arbitrary
/// vertices, which produces triangles with a repeated index. Before the fix
/// **579** decoded runs on the disc carried such triangles (and a runtime
/// capture confirmed 17 of 93 index batches disagreed with the GPU); after it and
/// the two follow-ups (pad scoring in the grouped path, and preferring a
/// degenerate-free candidate over an earlier dirty one), exactly **one** does.
/// Locking the
/// number in, because the defect is invisible to coverage and to the anchor
/// oracle: every count stays correct while the geometry is mis-wired.
#[test]
#[ignore = "requires extracted disc models — set SYLPHEED_RES3D"]
fn decoded_index_runs_have_almost_no_degenerate_triangles() {
let Some(dir) = res3d_dir() else {
eprintln!("SKIP: resource3d dir not found (set SYLPHEED_RES3D)");
return;
};
let mut files: Vec<PathBuf> = std::fs::read_dir(&dir)
.expect("resource3d/")
.flatten()
.map(|e| e.path())
.filter(|p| p.extension().and_then(|s| s.to_str()) == Some("xpr"))
.collect();
files.sort();
let mut offenders: Vec<(String, String, usize)> = Vec::new();
for f in &files {
let Ok(bytes) = std::fs::read(f) else { continue };
let where_ = f.file_name().unwrap().to_string_lossy().to_string();
for m in Xbg7Model::stage_models(&bytes) {
for sm in &m.meshes {
let d = sm
.indices
.chunks_exact(3)
.filter(|t| t[0] == t[1] || t[1] == t[2] || t[0] == t[2])
.count();
if d > 0 {
offenders.push((m.name.clone(), where_.clone(), d));
}
}
}
}
// The one at default settings: `_rou_f402_dead` in `Stage_S09`, whose
// degenerate-free block is claimed by `e_rou_f003_Near` — both 24-vertex
// bounding boxes, the identity class that needs descriptor-level data. (With
// `XBG7_SUBMESH_DECLS=1` four newly decoded `ptc_pack` `.dat` composites join
// it; that knob is off by default.) Anything else here is a regression.
assert!(
offenders.len() <= 1,
"{} decoded index runs contain degenerate triangles (expected ≤ 1): {:?}",
offenders.len(),
&offenders[..offenders.len().min(20)]
);
}

View File

@@ -19,7 +19,7 @@ Promote to a prose `structures/…md` file when a format needs behavioural notes
| LSTA sprite list | ✅ | `sylpheed-formats/src/lsta.rs` | A display list of inline elements: **T8aD sprites and `PRMD` primitives**. The `count` at `0x04` is **exact and counts both**`count == T8aD + PRMD` for **64/64** lists on the disc, which retires the old "a few entries disagree" note (it compared sprites against a total including primitives). **All 1 281 sprite frames decode** after the T8aD rectangle-list fix | | LSTA sprite list | ✅ | `sylpheed-formats/src/lsta.rs` | A display list of inline elements: **T8aD sprites and `PRMD` primitives**. The `count` at `0x04` is **exact and counts both**`count == T8aD + PRMD` for **64/64** lists on the disc, which retires the old "a few entries disagree" note (it compared sprites against a total including primitives). **All 1 281 sprite frames decode** after the T8aD rectangle-list fix |
| IXUD subtitle | 🟡/✅ | `sylpheed-formats/src/ixud.rs` + [movie link](movie-subtitle-link.md) | timed cues. **The movie↔subtitle↔voice link is solved — statically**, from the movie config record in `tables.pak` (schema `0x067025b9`), not from the running game as this row previously assumed: [101 movies mapped](captures/movie-subtitle-voice-map.csv), 94 with subtitles, 83 with voice, 21 with a telop overlay. 93 of 94 subtitle refs resolve in the language paks; **`SUBTITLE_S12B.tbl` is missing from all six languages** — a dangling reference on the disc. Naming is `SUBTITLE_<base>.tbl` / `VOICE_<base>` with six documented exceptions. The record's ~104 **script ids** are ❔ — positional pairing drifts by three because the IDXD pool dedupes repeated values | | IXUD subtitle | 🟡/✅ | `sylpheed-formats/src/ixud.rs` + [movie link](movie-subtitle-link.md) | timed cues. **The movie↔subtitle↔voice link is solved — statically**, from the movie config record in `tables.pak` (schema `0x067025b9`), not from the running game as this row previously assumed: [101 movies mapped](captures/movie-subtitle-voice-map.csv), 94 with subtitles, 83 with voice, 21 with a telop overlay. 93 of 94 subtitle refs resolve in the language paks; **`SUBTITLE_S12B.tbl` is missing from all six languages** — a dangling reference on the disc. Naming is `SUBTITLE_<base>.tbl` / `VOICE_<base>` with six documented exceptions. The record's ~104 **script ids** are ❔ — positional pairing drifts by three because the IDXD pool dedupes repeated values |
| Fonts (ttf/otf/ttc) | ✅ | `sylpheed-formats/src/font.rs` | standard OpenType, parsed via ttf-parser | | Fonts (ttf/otf/ttc) | ✅ | `sylpheed-formats/src/font.rs` | standard OpenType, parsed via ttf-parser |
| XBG7 mesh | ✅/🟡 | `sylpheed-formats/src/mesh.rs` + `tests/mesh_disc.rs` ([xbg7](structures/xbg7-mesh.md)) | **6 294 resources, 6 209 decode (98.7 %), 82 searched-and-missed** (2026-08-12, up from 5 480 / 87.1 %). Five evidence-driven fixes got there: **distinct anchor assignment** (no two resources may claim one buffer — proved by a capture showing the container holds both mirrored `e106` hull halves), the connectivity cap replaced by a **winding-consistency gate at 0.70**, **structural requirements on pre-pivot sub-meshes** (index range, then exact pool coverage), and **filtering after the assignment** so a subset query cannot differ from the full decode. Validated against a runtime capture that names the file offset of every buffer the engine drew: **46/46 drawn buffers claimed, 45 anchored exactly**. **No real mesh now decodes differently in different containers** — all 89 remaining cross-container disagreements are interchangeable 24-vertex bounding boxes, which no anchoring rule can pin (monotone order re-tested and refuted). Remaining misses attribute to the degeneracy/extent gate (42), winding (31) and coverage (9); the first was probed and its "obvious" fix refuted. Every decoded sub-mesh covers its own vertex pool | | XBG7 mesh | ✅/🟡 | `sylpheed-formats/src/mesh.rs` + `tests/mesh_disc.rs` ([xbg7](structures/xbg7-mesh.md)) | **6 294 resources, 6 209 decode (98.7 %), 82 searched-and-missed** (2026-08-12, up from 5 480 / 87.1 %). Five evidence-driven fixes got there: **distinct anchor assignment** (no two resources may claim one buffer — proved by a capture showing the container holds both mirrored `e106` hull halves), the connectivity cap replaced by a **winding-consistency gate at 0.70**, **structural requirements on pre-pivot sub-meshes** (index range, then exact pool coverage), and **filtering after the assignment** so a subset query cannot differ from the full decode. Validated against a runtime capture that names the file offset of every buffer the engine drew: **46/46 drawn buffers claimed, 45 anchored exactly**. **No real mesh now decodes differently in different containers** — all 89 remaining cross-container disagreements are interchangeable 24-vertex bounding boxes, which no anchoring rule can pin (monotone order re-tested and refuted). Remaining misses attribute to the degeneracy/extent gate (42), winding (31) and coverage (9); the first was probed and its "obvious" fix refuted. Every decoded sub-mesh covers its own vertex pool. **The `[index buffer][vertex buffer]` layout is now runtime-verified** (2026-08-13): with the F10 capture extended to log each draw's index buffer, all **42** drawn `Stage_S02` buffers match our decoded index count exactly, all 42 have their index union cover the pool exactly, and the 30 single-block cases all sit at `pad ≤ 3` — so `e106_eng_02_l`'s old rejection was the connectivity gate, not a misplaced index buffer. The `indices=` mystery was the capture keeping only the **first of several index batches** per buffer. **And comparing index VALUES found the biggest silent defect yet**: the anchor took the first `pad` that validated, so a block whose index data sits at pad 2 was read **one element late** — 76/93 captured runs matched, all 17 differences a one-element shift. Scoring pads by degenerate triangles + winding fixes it: **93/93** captured runs now match byte for byte, disc-wide degenerate runs **582 → 1** (the grouped path had the same bug; and two resources were anchored on a degenerate lookalike earlier in file order), **590 of 8 850** sub-meshes re-wired with 10 vertex anchors moved, resources decoded unchanged at 6 209. Cross-container minority decodes 89 → 96 — *because* the decoder improved: `_rou_f402_dead` now has a majority (32×25×8) so its seven wrong copies are named instead of hidden. One dirty run remains, blocked by distinct assignment on a 24-vertex box. **Then the descriptor gave up its last structural secret**: it declares a vertex layout **per sub-mesh** (`n201_01` → strides 24/24/24/**28**, capture-confirmed), and grouped selection must prefer the candidate explaining the **whole** pool rather than the first whose pivot validates — together they take never-decoding resources **85 → 47** (**6 247 / 6 294 = 99.25 %** decode), put `n201_01` on all four capture-proven offsets and raise the stage-05 capture oracle to **128/128**. The residual 47 is 30 pose/proxy composites (0.010-unit marker boxes), 6 `.DAT` particle composites, 8 damage/LOD variants and 3 props — not a threshold away |
| Capital-ship part placement | ✅ | `sylpheed-formats/src/ship.rs` (static) + [runtime capture](ship-placement-runtime-capture.md) | Placement is **sound** (hull static-exact against the `e106` capture; cross-id mounting genuinely narrow, 2 pairs across 335 ships). The XBG7 mis-decode this row used to blame for "ships assemble wrong" — a shared turret ~100× too large in some containers — is **fixed** (2026-08-12, the exact-coverage requirement): `e303_wep_01` now decodes 49×23×42 everywhere and places at ±179 on the `e106` hull, and no real mesh disagrees across containers. A composite-node audit confirmed the assembler itself never applied a bad scale (all nodes scale 1.0, orthonormal). Still open: `static_assembly_matches_runtime_capture` walks capture parts only, so **extra** static placements cannot fail it | | Capital-ship part placement | ✅ | `sylpheed-formats/src/ship.rs` (static) + [runtime capture](ship-placement-runtime-capture.md) | Placement is **sound** (hull static-exact against the `e106` capture; cross-id mounting genuinely narrow, 2 pairs across 335 ships). The XBG7 mis-decode this row used to blame for "ships assemble wrong" — a shared turret ~100× too large in some containers — is **fixed** (2026-08-12, the exact-coverage requirement): `e303_wep_01` now decodes 49×23×42 everywhere and places at ±179 on the `e106` hull, and no real mesh disagrees across containers. A composite-node audit confirmed the assembler itself never applied a bad scale (all nodes scale 1.0, orthonormal). Still open: `static_assembly_matches_runtime_capture` walks capture parts only, so **extra** static placements cannot fail it |
| Weapon fields defaulted on disc | ✅ | [runtime struct](structures/weapon-struct-runtime.md) · [DATA SHEET route](weapon-datasheet-runtime.md) | **Solved.** Canary maps guest RAM into `/dev/shm`, so the parsed `Weapon`/`Shell` objects are readable live; their layout is solved against disc ground truth (zero contradictions over 100+ records). All 126 weapons, exact numbers, no story progress needed — [4 393 values](captures/weapon-runtime-fields.csv) the disc does not carry. Supersedes the letter-bucket limit of the DATA SHEET route, which now serves as the independent cross-check | | Weapon fields defaulted on disc | ✅ | [runtime struct](structures/weapon-struct-runtime.md) · [DATA SHEET route](weapon-datasheet-runtime.md) | **Solved.** Canary maps guest RAM into `/dev/shm`, so the parsed `Weapon`/`Shell` objects are readable live; their layout is solved against disc ground truth (zero contradictions over 100+ records). All 126 weapons, exact numbers, no story progress needed — [4 393 values](captures/weapon-runtime-fields.csv) the disc does not carry. Supersedes the letter-bucket limit of the DATA SHEET route, which now serves as the independent cross-check |
| Unit (craft/vessel) fields defaulted on disc | ✅/🟡 | [runtime struct](structures/unit-struct-runtime.md) | The parsed `unit\UN_*.tbl` definition object, vtable `0x820af844`, ≥`0x380` bytes, one per unit — **discovered, not assumed** (`unit_discover.py`), and distinguished from the spawned-entity class `0x820af030` by being one-per-ID and byte-constant within a run. Across runs only pointer words move — `--crosscheck` proves **no reported field offset is run-dependent** (two words, `+0x2c8`/`+0x2d0`, are stage-dependent and remain unidentified). 27 fields ✅ (21 units, 7 runs); the `Maneuver` block is **schema declaration order, 4 bytes/field, base `0x9c` with a two-slot gap after `AA_Roll_Min`** (29 anchors, 0 conflicts), which also pins 5 fields *no* disc record ever values. Angles are **radians at runtime, degrees on disc**. **Re-derived independently 2026-08-13 from the loader's own key strings** (`sub_82341A20`; the field name for each store is a string in the image): **159 fields**, agreeing with this solver on **25 of 25 shared offsets**, verified at **406 values matching the disc and 0 disagreeing** over 11 live objects spanning UNIT and VESSEL — landed as `data/unit_definition_layout.txt` + `sylpheed_formats::unit_layout` + a no-emulator test, with **121 defaulted fields** read out ([live-unit-definitions](live-unit-definitions.md)). Unlike weapons, unit definitions are instantiated **per stage**, so coverage (21/110) grows by visiting missions — but a defaulted field is **not** a global constant: `Size_Y` provably inherits `Size_X` (7 independent units, 6 distinct values), and three more sibling rules are recorded ❔, recovering 65 values in units never visited — [values](captures/unit-runtime-fields.csv) | | Unit (craft/vessel) fields defaulted on disc | ✅/🟡 | [runtime struct](structures/unit-struct-runtime.md) | The parsed `unit\UN_*.tbl` definition object, vtable `0x820af844`, ≥`0x380` bytes, one per unit — **discovered, not assumed** (`unit_discover.py`), and distinguished from the spawned-entity class `0x820af030` by being one-per-ID and byte-constant within a run. Across runs only pointer words move — `--crosscheck` proves **no reported field offset is run-dependent** (two words, `+0x2c8`/`+0x2d0`, are stage-dependent and remain unidentified). 27 fields ✅ (21 units, 7 runs); the `Maneuver` block is **schema declaration order, 4 bytes/field, base `0x9c` with a two-slot gap after `AA_Roll_Min`** (29 anchors, 0 conflicts), which also pins 5 fields *no* disc record ever values. Angles are **radians at runtime, degrees on disc**. **Re-derived independently 2026-08-13 from the loader's own key strings** (`sub_82341A20`; the field name for each store is a string in the image): **159 fields**, agreeing with this solver on **25 of 25 shared offsets**, verified at **406 values matching the disc and 0 disagreeing** over 11 live objects spanning UNIT and VESSEL — landed as `data/unit_definition_layout.txt` + `sylpheed_formats::unit_layout` + a no-emulator test, with **121 defaulted fields** read out ([live-unit-definitions](live-unit-definitions.md)). Unlike weapons, unit definitions are instantiated **per stage**, so coverage (21/110) grows by visiting missions — but a defaulted field is **not** a global constant: `Size_Y` provably inherits `Size_X` (7 independent units, 6 distinct values), and three more sibling rules are recorded ❔, recovering 65 values in units never visited — [values](captures/unit-runtime-fields.csv) |
@@ -31,17 +31,19 @@ Promote to a prose `structures/…md` file when a format needs behavioural notes
| Technique | Conf. | Spec | Notes | | Technique | Conf. | Spec | Notes |
|-----------|-------|------|-------| |-----------|-------|------|-------|
| Scripted input without a virtual controller | ✅ | [`tools/re-capture/pad.py`](../../tools/re-capture/pad.py) + Canary `--hid=file` | The old `vgamepad` path created its device through `/dev/uinput`, which is **not namespaced** — a pad made inside the container registers with the HOST's input stack, so every scripted press leaked to the desktop. Canary now carries a header-only driver that reads pad state from a **text file** (`--hid=file --pad_file=…`): no kernel device, nothing leaves the container, and analogue values are exact. ⚠️ The trap: 360 menus poll **`XamInputGetKeystrokeEx`**, not `GetState` — with `GetKeystroke` stubbed the pad looks completely dead on a title screen while its own log shows the press arriving. Implemented edge-triggered, no auto-repeat (scripted input wants one event per press). Proven end to end: boot → title → main menu → EXTRAS from the file alone |
| Live guest-memory write | ✅ | [`tools/re-capture/gpoke.py`](../../tools/re-capture/gpoke.py) | Write companion to `gmem.py`, same guest-VA → `/dev/shm` map; prints before/after per word. Used to confirm the challenge gate's cleared-stage mask on the running game |
| Live guest-memory read | ✅ | [`tools/re-capture/gmem.py`](../../tools/re-capture/gmem.py) | Canary backs the guest address space with `/dev/shm/xenia_memory_*`; guest VAs map in through Xenia's fixed table. Full-RAM search ~0.2 s (sparse, `SEEK_DATA`). No debugger, no emulator patch, game keeps running | | Live guest-memory read | ✅ | [`tools/re-capture/gmem.py`](../../tools/re-capture/gmem.py) | Canary backs the guest address space with `/dev/shm/xenia_memory_*`; guest VAs map in through Xenia's fixed table. Full-RAM search ~0.2 s (sparse, `SEEK_DATA`). No debugger, no emulator patch, game keeps running |
| IDXD object layout solver | ✅ | [`tools/re-capture/weapon_runtime.py`](../../tools/re-capture/weapon_runtime.py) | Scan RAM for a class's vtable → enumerate its objects → brute-force `(field, offset, encoding)` against the disc records. Accepts a binding only on **zero** contradictions. Generalizes to any IDXD-backed definition | | IDXD object layout solver | ✅ | [`tools/re-capture/weapon_runtime.py`](../../tools/re-capture/weapon_runtime.py) | Scan RAM for a class's vtable → enumerate its objects → brute-force `(field, offset, encoding)` against the disc records. Accepts a binding only on **zero** contradictions. Generalizes to any IDXD-backed definition |
| Live entity state, anchored on the definition | ✅ | [`tools/re-capture/own_state.py`](../../tools/re-capture/own_state.py) · [autopilot](autopilot-memory-driven.md) | An undamaged craft holds its definition's own numbers, so a *solved definition field* locates the matching live field without a value scan: definition `HP` (1500) → **hull at `position+0x154`**, confirmed by a trace across a death (30/60/90 per hit, negative at 0). Reusable for any live counter whose maximum the definition carries | | Live entity state, anchored on the definition | ✅ | [`tools/re-capture/own_state.py`](../../tools/re-capture/own_state.py) · [autopilot](autopilot-memory-driven.md) | An undamaged craft holds its definition's own numbers, so a *solved definition field* locates the matching live field without a value scan: definition `HP` (1500) → **hull at `position+0x154`**, confirmed by a trace across a death (30/60/90 per hit, negative at 0). Reusable for any live counter whose maximum the definition carries |
| Mission / escort state, every entity's hull | ✅ | [`tools/re-capture/mission_state.py`](../../tools/re-capture/mission_state.py) · [escort state](mission-escort-state.md) | `hull = position + 0x154` is a property of the **entity class**, not of the player object: at t=0 it equals each entity's own definition `HP` across 7 classes and 5 distinct HP values (turret 100, fighter 500, destroyer 10000, cruiser 30000, **ACROPOLIS 25000**), falls under fire (780 damage events in 240 s), goes negative at death, and the object then leaves the heap. So an escort objective is scoreable live — `UN_f101_TCAF_Acropolis` measured at 25000 → 23038 over 240 s, attack starting only at t≈170 s. `REMAINING OB` counts objectives, not hostiles (012 on the HUD vs 118 live ADAN); its address is still ❔ | | Mission / escort state, every entity's hull | ✅ | [`tools/re-capture/mission_state.py`](../../tools/re-capture/mission_state.py) · [escort state](mission-escort-state.md) | `hull = position + 0x154` is a property of the **entity class**, not of the player object: at t=0 it equals each entity's own definition `HP` across 7 classes and 5 distinct HP values (turret 100, fighter 500, destroyer 10000, cruiser 30000, **ACROPOLIS 25000**), falls under fire (780 damage events in 240 s), goes negative at death, and the object then leaves the heap. So an escort objective is scoreable live — `UN_f101_TCAF_Acropolis` measured at 25000 → 23038 over 240 s, attack starting only at t≈170 s. `REMAINING OB` counts objectives, not hostiles (012 on the HUD vs 118 live ADAN); its address is still ❔ |
| In-flight control mapping | ✅/🟡 | [`tools/re-capture/fire_probe.sh`](../../tools/re-capture/fire_probe.sh) · [controls](flight-controls-runtime.md) | Measured by holding each pad input and photographing the HUD ammo counters: **`RB` = nose gun** (6000→5956 in 4 s, ~11 rounds/s, HEAT rises), **`Y` = main mount** (missiles, 300→299), d-pad = **tactical map** overlay, nothing else moves a counter. No target-cycle input exists — the `TARGET` marker is present with nothing pressed, so targeting is automatic and a missile lock is **time-on-target**. That, not target choice or ballistics, is what caps lethality at 2 kills per 98 missiles | | In-flight control mapping | ✅/🟡 | [`tools/re-capture/fire_probe.sh`](../../tools/re-capture/fire_probe.sh) · [controls](flight-controls-runtime.md) | Measured by holding each pad input and photographing the HUD ammo counters: **`RB` = nose gun** (6000→5956 in 4 s, ~11 rounds/s, HEAT rises), **`Y` = main mount** (missiles, 300→299), d-pad = **tactical map** overlay, nothing else moves a counter. No target-cycle input exists — the `TARGET` marker is present with nothing pressed, so targeting is automatic and a missile lock is **time-on-target**. That, not target choice or ballistics, is what caps lethality at 2 kills per 98 missiles |
| Throttle → speed law | ✅/🟡 | [flight-speed-law](flight-speed-law.md) | **The throttle selects a TARGET SPEED**, it does not add thrust: no input settles at ~420 (`CruisingVelocity` 350), `RT` at ~1 530 (`MaximumVelocity` 1200), `LT` at ~125 (`MinimumVelocity` 100), and releasing either returns to cruise. `Acceleration`/`Deceleration` govern the convergence rate (measured ~440560 units/s² against 500/600). 🟡 measured world speeds run ≈1.21.3× the definition numbers while the HUD shows the definition value exactly, so world units are a constant (~1.25) multiple of the definition's velocity unit |
| Input → dynamics calibration | ✅ | [`tools/re-capture/ctrl_probe.py`](../../tools/re-capture/ctrl_probe.py) · [`binq.py`](../../tools/re-capture/binq.py) | Hold each pad input in turn and measure the craft's speed as displacement/s of its own position triple — no speed field needed first. Settled the throttle: **`RT` accelerates, `LT` brakes, and the setting persists** (488 → 1510 → 174 units/s), overturning an earlier field-scan conclusion | | Input → dynamics calibration | ✅ | [`tools/re-capture/ctrl_probe.py`](../../tools/re-capture/ctrl_probe.py) · [`binq.py`](../../tools/re-capture/binq.py) | Hold each pad input in turn and measure the craft's speed as displacement/s of its own position triple — no speed field needed first. Settled the throttle: **`RT` accelerates, `LT` brakes, and the setting persists** (488 → 1510 → 174 units/s), overturning an earlier field-scan conclusion |
## Functions / code paths ## Functions / code paths
_None documented yet — populated during the dynamic-RE phase._
| Function | Conf. | Reimpl. | Summary | | Function | Conf. | Reimpl. | Summary |
|----------|-------|---------|---------| |----------|-------|---------|---------|
| — | — | — | — | | Achievement table + XAM read path | ✅/🟡 | [achievements](structures/achievements.md) | The XEX's `XACH` resource (`.pe` `0x8FBCBC`, 36-byte records) defines **24 achievements summing to 1000G** — the retail total, which self-checks the stride and field offsets. `GamePart_Debriefing` (`0x8218CF38``0x82191B18`) does two things: it walks the on-disc `ACHIEVEMENTS_REQUIREMENTS` list (`tables.pak` #16, entries `ACHIEVEMENT01…24`, in achievement-id order — its `ShootDownAircrafts`/`ShootDownShips`/`ShootDownWeight`/`GetAllWeapons`/`GetAllAchievements` types line up with ids 1924 exactly as `XACH` names them), evaluating each and setting a bit; **and it enumerates `XACHIEVEMENT_DETAILS` from XAM** — 36-byte records confirmed by the `0x38E38E39`+`srawi 3` divide-by-36, `dwId` at `+0`, `dwFlags & 0x00020000` (`…_ACHIEVED`) at `+32`, behind a waited-then-closed async handle. **So earned state comes from the console profile, not the 545-byte save** — and the masks it builds are `1 << dwId`, i.e. **bit = the 1-based id**. **The challenge missions do NOT gate on this** — an earlier claim here, refuted by finding `+80`'s sole writer: it is `GamePart_StageClear` setting `1 << stage`, so that word is a *cleared-stage* mask and the shared "24" was a coincidence. `GetAllAchievements`/`GetAllWeapons` are requirement **types**, not debug cheats |
| Challenge-mission gate + stage-config switch | ✅ | [challenge-mission-gate](challenge-mission-gate.md) | **`GamePart_ChallengeMission` gates each of the six challenge missions on a CLEARED-STAGE bit**: `REQUIREMENT` absent or `"Always"` → available, else `n = atoi(v)` and it tests bit `n` of singleton `+80` (`n < 24`) or bit `n-24` of `+1956` (`n ≥ 24`) — which is the disc's own stage numbering (story 116 and tutorial 1823 below 24, challenge 2429 above). Word A's **sole writer** is `0x821C1820` in `GamePart_StageClear`, doing `1 << (this+84)` where `this+84` is the stage number (it also indexes a 20-byte per-stage record array and the debriefing `STAGE` sprite list). So `TimeAttack` needs **stage 16** — the last story mission — and the rest chain off challenge stages 2529. The six-mission table is on disc in `tables.pak` (schema `54a10697`). Separately, the stage loader picks its config section from a **mission-kind field at `object+144`**: `3``EXTRA`, `5`/`6``CHALLENGE`, anything else → `FILE`; two further sites treat `{3,5,6}` as one class. Constructed as `0` (`sub_821783D8`) and only ever *cleared* inside the class, so the kind comes from the launching GamePart, **not** from the stage number — which is a mechanism (🟡, unproven) for why patching the save's stage field to a challenge stage kills the load. Same note carries the **GamePart id table** (`0x820A1630`, 29 ids, `GP_CHALLENGE` = 26, cross-checked against the image's own `RegisterToFactory<26, …>` text) and the disc's **three stage families**`S01``S16` story, `S18``S23` tutorial, `S24``S29` challenge, plus `Test`, matching `weapon.tbl`'s 16 + 6 + 6 key set exactly. `GP_CHALLENGE.pak` holds **0 IDXD objects** — it is the menu screen; challenge missions reuse `GP_MAIN_GAME_E.pak`'s stage records |

View File

@@ -0,0 +1,76 @@
XACH @0x8FBCBC 24 achievements (string table #5 of 7)
id 1 | bit 0 | 20G | Space Combat Award
unlocked: Received after your first space battle in the Glasner Training Area.
locked : Awarded for participating in fighter combat in outer space.
id 2 | bit 1 | 20G | Schlos Base Defense Award
unlocked: Received for stopping the missile attack on Schlos Base.
locked : Awarded for stopping enemy attacks on Schlos Base.
id 3 | bit 2 | 20G | Aegis of the People Medal
unlocked: Received for escorting all 7 refugee ships to safety.
locked : Awarded for escorting the 7 refugee ships to safety.
id 4 | bit 3 | 20G | TCAF Luna Medal
unlocked: Received for bravely helping the fleet escape during the invasion of the Matisse System.
locked : Awarded for bravery beyond the call of duty to escort allied vessels to safety.
id 5 | bit 4 | 40G | TCAF Mars Medal
unlocked: Received for bravery beyond the call of duty during the escape from the Matisse System.
locked : Awarded for bravery beyond the call of duty under fierce enemy attacks.
id 6 | bit 5 | 50G | Soldier's Charm Amulet
unlocked: Given to you by Raymond as a token of his trust.
locked : Given to you by Raymond as a token of his trust.
id 7 | bit 6 | 20G | White Griffons Patch
unlocked: Received by the commander and pilots of the White Griffon Squadron when it is formed.
locked : Awarded to the commander and pilots of the White Griffon Squadron when it is formed.
id 8 | bit 7 | 30G | TCAF Jupiter Medal
unlocked: Received for bravery during the enemy's attack on the Alberti System.
locked : Awarded for bravery beyond the call of duty during withdrawal of the allied fleet.
id 9 | bit 8 | 40G | Furious Pursuit Badge
unlocked: Received for continuing attacks on the enemy and shooting down a large number of ships.
locked : Awarded for diligently shooting down large numbers of enemy ships.
id 10 | bit 9 | 30G | Solo Aerospace Combat Award
unlocked: Received for descending into Acheron's atmosphere and engaging in combat alone.
locked : Awarded for descending into the atmosphere and engaging in combat alone.
id 11 | bit 10 | 30G | Operation Nebula Blaze Award
unlocked: Received for completing the extremely hazardous Operation Nebula Blaze.
locked : Awarded for fulfilling duty and fighting bravely in this difficult operation.
id 12 | bit 11 | 40G | Guilty Roses Patch
unlocked: Received for repelling the Guilty Roses Squadron.
locked : Awarded for repelling the enemy Guilty Roses Squadron.
id 13 | bit 12 | 30G | Super Battleship Slayer Patch
unlocked: Received for shooting down the second S battleship.
locked : Awarded for shooting down the second S battleship supporting the enemy fleet.
id 14 | bit 13 | 40G | TCAF Terra Medal
unlocked: Received for shielding the fleet and seeing that all ships safely fled the Ingres System.
locked : Awarded for shielding the fleet to allow its safe escape.
id 15 | bit 14 | 40G | Hellfires Patch
unlocked: Received for repelling the enemy Hellfire Squadron.
locked : Awarded for repelling the enemy Hellfire Squadron.
id 16 | bit 15 | 50G | Night Ravens Patch
unlocked: Received for challenging and eradicating the Night Raven Squadron.
locked : Awarded for challenging and eradicating the enemy Night Raven Squadron.
id 17 | bit 16 | 40G | Solar System Defense Award
unlocked: Received for great achievements during the campaign to defend the Solar System.
locked : Awarded for great achievement during the campaign to defend the Solar System.
id 18 | bit 17 | 40G | Special Operations Medal
unlocked: Received for heroically destroying the Prometheus Driver.
locked : Awarded for heroism in destroying the enemy's main weapon.
id 19 | bit 18 | 30G | 1,000 Units Destroyed Medal
unlocked: Received for shooting down 1,000 enemy fighters and attackers in combat.
locked : Awarded for shooting down 1,000 enemy fighters and attackers in space combat.
id 20 | bit 19 | 70G | 10,000 Units Destroyed Medal
unlocked: Received for shooting down 10,000 enemy fighters and attackers in combat.
locked : Awarded for shooting down 10,000 enemy fighters and attackers in space combat.
id 21 | bit 20 | 50G | Ship Hunter Award
unlocked: Received for shooting down 100 enemy warships in combat.
locked : Awarded for shooting down 100 warships in space combat.
id 22 | bit 21 | 70G | Gigaton Club Patch
unlocked: Received for shooting down enemy vessels with a total weight of one gigaton.
locked : Awarded for downing several enemy vessels with a combined weight of one gigaton.
id 23 | bit 22 | 80G | Weapon Lord Patch
unlocked: Received after you collect all usable equipment for the Delta Saber.
locked : Awarded for collecting all usable equipment for the Delta Saber.
id 24 | bit 23 | 100G | TCAF Pilot's Commendation
unlocked: Commemmorates you as one of the greatest pilots in history.
locked : Awarded to the greatest pilots in the TCAF.
total gamerscore = 1000 [OK: retail total]

View File

@@ -0,0 +1,5 @@
input,roll_deg_s,yaw_deg_s,pitch_deg_s
rx+,0.0,0.0,0.0
ry+,0.0,0.0,0.0
LB,0.0,0.0,0.0
RB,0.0,0.0,0.0
1 input roll_deg_s yaw_deg_s pitch_deg_s
2 rx+ 0.0 0.0 0.0
3 ry+ 0.0 0.0 0.0
4 LB 0.0 0.0 0.0
5 RB 0.0 0.0 0.0

View File

@@ -0,0 +1,7 @@
input,roll_deg_s,yaw_deg_s,pitch_deg_s
lx+,209.8,0.87,10.07
ly+,0.0,154.12,0.0
rx+,0.0,0.0,0.0
ry+,161.07,86.98,37.06
LB,0.0,0.0,0.0
RB,0.0,0.0,0.0
1 input roll_deg_s yaw_deg_s pitch_deg_s
2 lx+ 209.8 0.87 10.07
3 ly+ 0.0 154.12 0.0
4 rx+ 0.0 0.0 0.0
5 ry+ 161.07 86.98 37.06
6 LB 0.0 0.0 0.0
7 RB 0.0 0.0 0.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 KiB

View File

@@ -0,0 +1,96 @@
=== 1. StageResource records in GP_MAIN_GAME_E.pak ===
29 stage records
S01 bg=Lebendorf tokens=52
S02 bg=Lebendorf tokens=51
S03 bg=Planet_Lebendorf tokens=51
S04 bg=Lebendorf_far tokens=54
S05 bg=Lebendorf_far tokens=54
S06 bg=Hargenteen tokens=51
S07 bg=Hargenteen tokens=53
S08 bg=Barch tokens=59
S09 bg=Acheron tokens=53
S10 bg=Acheron tokens=53
S11 bg=Anastasis tokens=53
S12 bg=Hargenteen tokens=53
S13 bg=Hargenteen tokens=56
S14 bg=Earth tokens=59
S15 bg=Earth tokens=53
S16 bg=PD tokens=53
S18 bg=Original tokens=43
S19 bg=Original tokens=43
S20 bg=Original tokens=43
S21 bg=Original tokens=43
S22 bg=Original tokens=50
S23 bg=Original tokens=43
S24 bg=Anastasis tokens=53
S25 bg=Hargenteen tokens=53
S26 bg=Hargenteen tokens=53
S27 bg=Planet_Lebendorf tokens=53
S28 bg=Lebendorf tokens=54
S29 bg=Earth tokens=53
Test bg=Earth tokens=43
=== 2. GP_CHALLENGE.pak contents ===
151 entries, 0 IDXD objects
=== 3. tokens mentioning Challenge / EX across the main pak ===
033b5b7e pgmsg_challenge1.t32
033b5b7e pgmsg_challenge2.t32
033b5b7e pgmsg_challenge3.t32
033b5b7e pgmsg_challenge4.t32
033b5b7e pgmsg_challenge5.t32
033b5b7e pgmsg_challenge6.t32
35b8dc67 UN_e001_ADAN_Elan_EX4
35b8dc67 UN_e007_ADAN_Turret_EX4
35b8dc67 UN_e008_ADAN_TurretPlus_EX4
35b8dc67 UN_e010_ADAN_Attacker_S_EX4
35b8dc67 UN_e011_ADAN_Attacker_B_EX4
35b8dc67 UN_e107_ADAN_AAFrigate_EX4
35b8dc67 UN_f001_TCAF_DeltaSaber_T_EX5
35b8dc67 UN_f001_TCAF_DeltaSaber_T_EX5_el
35b8dc67 UN_f003_TCAF_ArrowHead_EX4
35b8dc67 UN_f003_TCAF_ArrowHead_EX5
35b8dc67 UN_f104_TCAF_Battleship_EX5
35b8dc67 UN_f105_TCAF_Cruiser_EX5
3c5b0549 UN_e107_ADAN_AAFrigate_EX4
3c5b0549 UN_f104_TCAF_Battleship_EX5
3c5b0549 UN_f105_TCAF_Cruiser_EX5
3c5b0549 UnitName_UN_e107_ADAN_AAFrigate_EX4
3c5b0549 UnitName_UN_f104_TCAF_Battleship_EX5
3c5b0549 UnitName_UN_f105_TCAF_Cruiser_EX5
3c5b0549 Weapon_TCAF_Ship_AAGun_EX5
3c9ae32e EnumWeapon_EX5.tbl
43faa517 UN_e001_ADAN_Elan_EX4
43faa517 UN_e007_ADAN_Turret_EX4
43faa517 UN_e008_ADAN_TurretPlus_EX4
43faa517 UN_e010_ADAN_Attacker_S_EX4
43faa517 UN_e011_ADAN_Attacker_B_EX4
43faa517 UN_f001_TCAF_DeltaSaber_T_EX5
43faa517 UN_f001_TCAF_DeltaSaber_T_EX5_el
43faa517 UN_f003_TCAF_ArrowHead_EX4
43faa517 UN_f003_TCAF_ArrowHead_EX5
43faa517 UnitName_UN_e001_ADAN_Elan_EX4
43faa517 UnitName_UN_e007_ADAN_Turret_EX4
43faa517 UnitName_UN_e008_ADAN_TurretPlus_EX4
43faa517 UnitName_UN_e010_ADAN_Attacker_S_EX4
43faa517 UnitName_UN_e011_ADAN_Attacker_B_EX4
43faa517 UnitName_UN_f001_TCAF_DeltaSaber_T_EX5
43faa517 UnitName_UN_f001_TCAF_DeltaSaber_T_EX5_el
43faa517 UnitName_UN_f003_TCAF_ArrowHead_EX4
43faa517 UnitName_UN_f003_TCAF_ArrowHead_EX5
659aff47 UN_e001_ADAN_Elan_EX4
659aff47 UN_e007_ADAN_Turret_EX4
659aff47 UN_e008_ADAN_TurretPlus_EX4
659aff47 UN_e010_ADAN_Attacker_S_EX4
659aff47 UN_e011_ADAN_Attacker_B_EX4
659aff47 UN_e107_ADAN_AAFrigate_EX4
659aff47 UN_f003_TCAF_ArrowHead_EX4
6ab4825a WeaponCannonName_TCAF_Ship_AAGun_EX5
6ab4825a Weapon_TCAF_Ship_AAGun_EX5
6b9b000d UN_f001_TCAF_DeltaSaber_T_EX5
6b9b000d UN_f001_TCAF_DeltaSaber_T_EX5_el
6b9b000d UN_f003_TCAF_ArrowHead_EX5
6b9b000d UN_f104_TCAF_Battleship_EX5
6b9b000d UN_f105_TCAF_Cruiser_EX5
ffbc19c2 Weapon_TCAF_Ship_AAGun_EX5
(59 distinct)

View File

@@ -0,0 +1,750 @@
===== tables.pak entry #60 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+fra\] =====
0 xBASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+fra\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 CONTM___.TTF
58 FONT
59 24
60 HEIGHT
61 28
62 Desc_Stage
63 580,400
64 LOCATE
65 8
66 LINE_SPACE
67 Desc_Time
68 1048,608,R
69 0
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc
===== tables.pak entry #64 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+eng\] =====
0 xBASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+eng\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 CONTM___.TTF
58 FONT
59 24
60 HEIGHT
61 28
62 Desc_Stage
63 580,400
64 LOCATE
65 8
66 LINE_SPACE
67 Desc_Time
68 1048,608,R
69 0
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc
===== tables.pak entry #67 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+deu\] =====
0 xBASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+deu\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 CONTM___.TTF
58 FONT
59 24
60 HEIGHT
61 28
62 Desc_Stage
63 580,400
64 LOCATE
65 8
66 LINE_SPACE
67 Desc_Time
68 1048,608,R
69 0
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc
===== tables.pak entry #68 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+ita\] =====
0 xBASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+ita\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 CONTM___.TTF
58 FONT
59 24
60 HEIGHT
61 28
62 Desc_Stage
63 580,400
64 LOCATE
65 8
66 LINE_SPACE
67 Desc_Time
68 1048,608,R
69 0
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc
===== tables.pak entry #74 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+jpn\] =====
0 BASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+jpn\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 DFSOGE5.TTC
58 FONT
59 24
60 HEIGHT
61 CONTM___.TTF
62 28
63 Desc_Stage
64 580,400
65 LOCATE
66 8
67 LINE_SPACE
68 Desc_Time
69 1048,608,R
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc
===== tables.pak entry #75 schema 54a10697 123 tokens [dat\GP_CHALLENGE.pak+esp\] =====
0 xBASE_INFO
1 0x061031
2 VERSION
3 dat\GP_CHALLENGE.pak+esp\
4 PATH
5 strings.tbl
6 STRINGS
7 py_menu_scr.prt
8 MENU
9 CHIPS
10 py_menu_n_btn1.prt
11 Button_TimeAttack
12 py_menu_n_btn2.prt
13 Button_ScoreAttack
14 py_menu_n_btn3.prt
15 Button_Extra01
16 py_menu_n_btn4.prt
17 Button_Extra02
18 py_menu_n_btn5.prt
19 Button_Extra03
20 py_menu_n_btn6.prt
21 Button_Extra04
22 py_menu_b_btn1.prt
23 Button_TimeAttack_Gray
24 py_menu_b_btn2.prt
25 Button_ScoreAttack_Gray
26 py_menu_b_btn3.prt
27 Button_Extra01_Gray
28 py_menu_b_btn4.prt
29 Button_Extra02_Gray
30 py_menu_b_btn5.prt
31 Button_Extra03_Gray
32 py_menu_b_btn6.prt
33 Button_Extra04_Gray
34 py_menu_challenge1.t32
35 Thumbnail_TimeAttack
36 py_menu_challenge2.t32
37 Thumbnail_ScoreAttack
38 py_menu_challenge3.t32
39 Thumbnail_Extra01
40 py_menu_challenge4.t32
41 Thumbnail_Extra02
42 py_menu_challenge5.t32
43 Thumbnail_Extra03
44 py_menu_challenge6.t32
45 Thumbnail_Extra04
46 py_menu_str_time.t32
47 Record_Time
48 py_menu_str_point.t32
49 Record_Point
50 py_menu_str_p.t32
51 Unit_Point
52 py_menu_new.prt
53 New_Stage
54 FONTS
55 Font_Desc
56 Font_Record
57 CONTM___.TTF
58 FONT
59 24
60 HEIGHT
61 28
62 Desc_Stage
63 580,400
64 LOCATE
65 8
66 LINE_SPACE
67 Desc_Time
68 1048,608,R
69 0
70 INDEX
71 Desc_Points
72 1032,608,R
73 UNIT
74 New_Stage01
75 New_Stage02
76 0,60
77 INDEX_ADJUST
78 New_Stage03
79 0,120
80 New_Stage04
81 0,180
82 New_Stage05
83 0,240
84 New_Stage06
85 0,300
86 MISSIONS
87 TimeAttack
88 ScoreAttack
89 Extra01
90 Extra02
91 Extra03
92 Extra04
93 MISSION_ID
94 Time
95 RECORD_TYPE
96 16
97 REQUIREMENT
98 NORMAL_BUTTON
99 GRAY_BUTTON
100 THUMBNAIL
101 TimeAttackRequirement
102 REQUIREMENT_DESC
103 TimeAttackStageDesc
104 STAGE_DESC
105 TEXT_STAGE
106 TEXT_RECORD
107 NEW_STAGE
108 25
109 Points
110 ScoreAttackRequirement
111 ScoreAttackStageDesc
112 26
113 Extra01Requirement
114 ExtraStage01Desc
115 27
116 Extra02Requirement
117 ExtraStage02Desc
118 Extra03Requirement
119 ExtraStage03Desc
120 29
121 Extra04Requirement
122 ExtraStage04Desc

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@@ -0,0 +1,7 @@
throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s
min,0,126.5,98.1,100.93
min,1,130.0,115.5,118.43
cruise,0,414.3,395.5,101.48
cruise,1,462.7,381.0,107.22
max,0,1463.5,1330.5,56.83
max,1,1496.4,1382.8,61.68
1 throttle rep settled_speed burst_speed rate_deg_per_wall_s
2 min 0 126.5 98.1 100.93
3 min 1 130.0 115.5 118.43
4 cruise 0 414.3 395.5 101.48
5 cruise 1 462.7 381.0 107.22
6 max 0 1463.5 1330.5 56.83
7 max 1 1496.4 1382.8 61.68

View File

@@ -0,0 +1,7 @@
throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s
min,0,121.3,102.6,113.64
min,1,152.0,108.8,109.46
cruise,0,428.5,374.7,100.19
cruise,1,361.6,391.4,88.39
max,0,1564.4,1352.0,52.22
max,1,1249.3,1614.6,70.52
1 throttle rep settled_speed burst_speed rate_deg_per_wall_s
2 min 0 121.3 102.6 113.64
3 min 1 152.0 108.8 109.46
4 cruise 0 428.5 374.7 100.19
5 cruise 1 361.6 391.4 88.39
6 max 0 1564.4 1352.0 52.22
7 max 1 1249.3 1614.6 70.52

View File

@@ -0,0 +1,314 @@
phase,t,fx,fy,fz
slow,0.022,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
slow,0.072,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
slow,0.138,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
slow,0.188,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
slow,0.238,-0.9999996503301273,-0.000739351008976433,0.00039076810084039696
slow,0.288,-0.9995667500505145,-0.025989011351613873,0.013816058859813869
slow,0.338,-0.9991424233572718,-0.03655991231151712,0.01943683769373226
slow,0.388,-0.9974614922372212,-0.06287386978474002,0.03342825155743701
slow,0.441,-0.9974614922372212,-0.06287386978474002,0.03342825155743701
slow,0.491,-0.9974614922372212,-0.06287386978474002,0.03342825155743701
slow,0.542,-0.9974614922372212,-0.06287386978474002,0.03342825155743701
slow,0.592,-0.9756937705208446,-0.19348862930198532,0.10287767735352636
slow,0.642,-0.9599895265779043,-0.24725777991348272,0.13146748317735063
slow,0.692,-0.9065968643570531,-0.3726025922234667,0.19811469861247516
slow,0.742,-0.8880690175394421,-0.405900585102419,0.215819681910719
slow,0.792,-0.8231976038572328,-0.5012983450542031,0.2665439443124295
slow,0.845,-0.8111180643235866,-0.5164209971100269,0.2745848493122731
slow,0.895,-0.8111180643235866,-0.5164209971100269,0.2745848493122731
slow,0.946,-0.8111180643235866,-0.5164209971100269,0.2745848493122731
slow,0.996,-0.8111180643235866,-0.5164209971100269,0.2745848493122731
slow,1.047,-0.6225347328753619,-0.6909879300492386,0.3674046636749054
slow,1.098,-0.4995761468930651,-0.7648708472261829,0.40668939071357624
slow,1.148,-0.42441628069163945,-0.7994799112461082,0.425091392759005
slow,1.198,-0.34635895158661695,-0.8282947460891245,0.440412636350244
slow,1.249,-0.26597407096587283,-0.8511436226859083,0.4525619594430681
slow,1.3,-0.22508987440157757,-0.8602890836759516,0.45742457405551984
slow,1.35,-0.22508987440157757,-0.8602890836759516,0.45742457405551984
slow,1.4,-0.22508987440157757,-0.8602890836759516,0.45742457405551984
slow,1.45,0.0050435963756794286,-0.8829357634414114,0.4694667184920898
slow,1.5,0.1113271185026686,-0.8774582682112876,0.4665546701443904
slow,1.551,0.19530088938670107,-0.8659441420087264,0.46043273724349176
slow,1.601,0.35806279594948665,-0.8244050055782095,0.4383462340826355
slow,1.651,0.4357105639703388,-0.7947284845866424,0.4225670837053784
slow,1.701,0.4357105639703388,-0.7947284845866424,0.4225670837053784
slow,1.751,0.4357105639703388,-0.7947284845866424,0.4225670837053784
slow,1.801,0.581059227173933,-0.7185957552011922,0.38208679003972373
slow,1.854,0.5981621070188505,-0.707571139880663,0.3762249004714446
slow,1.933,0.7102092219298712,-0.6215856943388454,0.3305058027918156
slow,1.983,0.7936818073741404,-0.5371251153693617,0.28559726728869045
slow,2.034,0.8306115980329357,-0.491670162790673,0.2614284304251665
slow,2.085,0.8306115980329357,-0.491670162790673,0.2614284304251665
slow,2.136,0.8306115980329357,-0.491670162790673,0.2614284304251665
slow,2.186,0.8306115980329357,-0.491670162790673,0.2614284304251665
slow,2.236,0.9439254674422402,-0.29151154402331125,0.15500236003072188
slow,2.288,0.9782500298959619,-0.18314796371755346,0.09738430260911397
slow,2.338,0.9923168633793271,-0.1092393189325843,0.05808626216377494
slow,2.388,0.9999950320089501,0.0027841479666426932,-0.0014779978073891553
slow,2.439,0.9961448118772039,0.07745674002692376,-0.04118212226842516
slow,2.489,0.9885868780617736,0.1330186187164556,-0.07072504223287812
slow,2.54,0.9885868780617736,0.1330186187164556,-0.07072504223287812
slow,2.59,0.9885868780617736,0.1330186187164556,-0.07072504223287812
slow,2.64,0.9885868780617736,0.1330186187164556,-0.07072504223287812
slow,2.69,0.9104394306290844,0.3652252075952527,-0.1941921494108173
slow,2.741,0.8718210936242394,0.4324898355933772,-0.22995765440673788
slow,2.791,0.8021474529558832,0.5272312979999614,-0.28033305571349426
slow,2.841,0.7483879225773887,0.5856251973581853,-0.31138183241718986
slow,2.891,0.6415804884515123,0.6772700855747096,-0.3601106885722006
slow,2.942,0.5565400067937,0.7335711833839508,-0.39004684301598735
slow,2.992,0.5025832072518267,0.7633335327127708,-0.4058719473241637
slow,3.042,0.5025832072518267,0.7633335327127708,-0.4058719473241637
slow,3.092,0.5025832072518267,0.7633335327127708,-0.4058719473241637
slow,3.142,0.5025832072518267,0.7633335327127708,-0.4058719473241637
slow,3.193,0.26840150425248394,0.8505494121077833,-0.4522458734782528
slow,3.243,0.14383384202445684,0.8737661032159637,-0.4645908121769882
slow,3.293,0.017126773329819035,0.8828175004515181,-0.46940380753871486
slow,3.344,-0.025233536073355507,0.8826657223955247,-0.46932343982079283
slow,3.394,-0.1306276597599528,0.8753813567867831,-0.46545020646226887
slow,3.444,-0.1306276597599528,0.8753813567867831,-0.46545020646226887
slow,3.494,-0.1306276597599528,0.8753813567867831,-0.46545020646226887
slow,3.544,-0.1306276597599528,0.8753813567867831,-0.46545020646226887
slow,3.594,-0.3953899986357624,0.8109981935802458,-0.4312176700790331
slow,3.644,-0.5092096812736444,0.7599012381904277,-0.40404901768702334
slow,3.695,-0.6146085873298012,0.6964964366951696,-0.37033633099035523
slow,3.745,-0.6475735623151888,0.6728076094689478,-0.35774069104743467
slow,3.795,-0.7246428766140702,0.6084598143649699,-0.32352643736707504
slow,3.845,-0.7246428766140702,0.6084598143649699,-0.32352643736707504
slow,3.895,-0.7246428766140702,0.6084598143649699,-0.32352643736707504
slow,3.946,-0.7246428766140702,0.6084598143649699,-0.32352643736707504
slow,4.0,-0.8948032879220578,0.39420026288722865,-0.2096025492772329
slow,4.05,-0.9371976061971167,0.3079700993685502,-0.16375306053115327
slow,4.1,-0.9739646105616616,0.20016331274041113,-0.10643113081357014
slow,4.151,-0.9925182516704475,0.1078037923584182,-0.057322442849038695
slow,4.201,-0.9998661518865883,0.014444979973920849,-0.007682503827448022
slow,4.252,-0.999988574147902,-0.004221603854607207,0.0022426846725771095
slow,4.302,-0.999988574147902,-0.004221603854607207,0.0022426846725771095
slow,4.352,-0.999988574147902,-0.004221603854607207,0.0022426846725771095
slow,4.402,-0.999988574147902,-0.004221603854607207,0.0022426846725771095
slow,4.454,-0.9481592609187346,-0.28059728776173093,0.1491951005723691
slow,4.504,-0.8998604949330586,-0.3851225220144059,0.20477239241678594
slow,4.554,-0.8483542366290391,-0.4674583762955424,0.24855131386636348
slow,4.605,-0.8002653758276345,-0.5294561807103555,0.281516395542175
slow,4.655,-0.7740407763904767,-0.5590258203543885,0.2972389756777044
slow,4.705,-0.7320686741889714,-0.6014912262488834,0.31981832501721374
slow,4.755,-0.7320686741889714,-0.6014912262488834,0.31981832501721374
slow,4.805,-0.7320686741889714,-0.6014912262488834,0.31981832501721374
slow,4.855,-0.7320686741889714,-0.6014912262488834,0.31981832501721374
slow,4.905,-0.5000347671416738,-0.7646370203731946,0.4065654421177173
slow,4.956,-0.38571043654168863,-0.8146245270401747,0.43314470917626546
slow,5.033,-0.3059761515320789,-0.8406001527732009,0.44695634893274494
slow,5.083,-0.14067269192255813,-0.8741670164828578,0.46480449765543375
slow,5.136,-0.11971066366716597,-0.876597475120388,0.46609679640277224
slow,5.186,-0.11971066366716597,-0.876597475120388,0.46609679640277224
slow,5.236,-0.11971066366716597,-0.876597475120388,0.46609679640277224
slow,5.286,0.09210780811437987,-0.8791932987194956,0.4674775878810623
slow,5.336,0.1552569076145395,-0.8722401249754417,0.46378061302818196
slow,5.389,0.29980078422712286,-0.8423325684075889,0.4478787045358116
slow,5.439,0.39908806765876,-0.8095847039629167,0.43046639980569157
slow,5.49,0.4751133264531701,-0.7769262478123317,0.4131016006829976
slow,5.542,0.4751133264531701,-0.7769262478123317,0.4131016006829976
slow,5.592,0.4751133264531701,-0.7769262478123317,0.4131016006829976
slow,5.642,0.4751133264531701,-0.7769262478123317,0.4131016006829976
slow,5.692,0.696657860237904,-0.633428595248907,0.3368026729254701
slow,5.742,0.726585020550654,-0.6066514667740671,0.3225650411502751
slow,5.792,0.8325182828011221,-0.48914972660411055,0.2600881653689665
slow,5.843,0.8765739353060135,-0.4249327255756417,0.22594316691811042
slow,5.893,0.9054260508840364,-0.37481374091028163,0.19929457093804306
slow,5.943,0.9054260508840364,-0.37481374091028163,0.19929457093804306
slow,5.993,0.9054260508840364,-0.37481374091028163,0.19929457093804306
slow,6.043,0.9054260508840364,-0.37481374091028163,0.19929457093804306
slow,6.093,0.9868879110680581,-0.14251307214027348,0.07577780187407064
slow,6.144,0.9928589520370625,-0.10532958640717122,0.056006960167108814
slow,6.194,0.9995721898785164,0.025825160128774418,-0.013729469246492699
slow,6.244,0.9934893887944055,0.10059024435508387,-0.05348305426490678
slow,6.294,0.9538232020213261,0.26521033194280885,-0.14101340048580407
slow,6.344,0.947267673727074,0.2829352443494437,-0.1504380331452729
slow,6.394,0.947267673727074,0.2829352443494437,-0.1504380331452729
slow,6.445,0.947267673727074,0.2829352443494437,-0.1504380331452729
slow,6.495,0.947267673727074,0.2829352443494437,-0.1504380331452729
slow,6.545,0.8243733791338322,0.4997895512364342,-0.2657422364818033
slow,6.597,0.7593203746728908,0.5745491212947682,-0.30549284087524925
slow,6.647,0.7010074410559842,0.6296776548998042,-0.3348053441987208
slow,6.697,0.6041754101078993,0.7035779205024607,-0.37409916279294836
slow,6.747,0.5340870381020223,0.7464697028629991,-0.39690555355025536
slow,6.797,0.4025055990782129,0.8082653740061208,-0.4297631067151235
slow,6.847,0.3433573357356595,0.8292682687272306,-0.44093069577729704
slow,6.898,0.3433573357356595,0.8292682687272306,-0.44093069577729704
slow,6.948,0.3433573357356595,0.8292682687272306,-0.44093069577729704
slow,6.999,0.3433573357356595,0.8292682687272306,-0.44093069577729704
slow,7.049,0.09503184681410931,0.8789508919606488,-0.46734813320765445
slow,7.1,-0.03242949378753749,0.8824823690120825,-0.4692261675519672
slow,7.15,-0.07486618489555856,0.8804688348729269,-0.46815562068258304
slow,7.202,-0.2217573682314415,0.8609628101781774,-0.4577845662810842
slow,7.253,-0.3436636683706333,0.8291685841702975,-0.44087950969291334
slow,7.306,-0.3436636683706333,0.8291685841702975,-0.44087950969291334
slow,7.356,-0.3436636683706333,0.8291685841702975,-0.44087950969291334
slow,7.406,-0.3436636683706333,0.8291685841702975,-0.44087950969291334
slow,7.456,-0.5335192585826919,0.7467851744734487,-0.3970756904017614
slow,7.506,-0.5863848618861591,0.715215075832045,-0.38028961207652284
slow,7.557,-0.6691599892298212,0.6561333325626291,-0.3488752767311034
slow,7.607,-0.7582631988698701,0.5756351874374445,-0.30607360589160554
slow,7.657,-0.8108505756823166,0.51674664977568,-0.27476215871416254
slow,7.707,-0.8575526461274808,0.4541837039893854,-0.24149662968711988
slow,7.757,-0.8575526461274808,0.4541837039893854,-0.24149662968711988
slow,7.808,-0.8575526461274808,0.4541837039893854,-0.24149662968711988
slow,7.859,-0.8575526461274808,0.4541837039893854,-0.24149662968711988
slow,7.909,-0.9532867456950477,0.2667081367420545,-0.1418137873329921
slow,7.959,-0.9755224624568912,0.19415891248194872,-0.10323876183813074
fast,0.031,-0.9183790521746182,-0.3493842945716818,0.1857701031745906
fast,0.081,-0.9181941875656858,-0.34976292144045307,0.18597132226778823
fast,0.131,-0.9157256739103099,-0.35477222000318137,0.18863499690015914
fast,0.181,-0.9149015400332507,-0.3564260247285592,0.18951427635136814
fast,0.231,-0.9149015400332507,-0.3564260247285592,0.18951427635136814
fast,0.282,-0.9149015400332507,-0.3564260247285592,0.18951427635136814
fast,0.334,-0.886987130221704,-0.40774025376731704,0.21679879215260833
fast,0.392,-0.874422882615109,-0.42837502256975,0.22777063550301968
fast,0.442,-0.8391761714215903,-0.4801996653842019,0.2553265256159302
fast,0.492,-0.8087011271707248,-0.5193672154489234,0.27615246229144985
fast,0.542,-0.7639193320090165,-0.5697763250541364,0.3029557617717493
fast,0.592,-0.7142788381999624,-0.6179405632697418,0.3285653687861613
fast,0.644,-0.7056326965418199,-0.6256368844308748,0.3326574610778302
fast,0.694,-0.7056326965418199,-0.6256368844308748,0.3326574610778302
fast,0.761,-0.7056326965418199,-0.6256368844308748,0.3326574610778302
fast,0.811,-0.6045554154137983,-0.703323001692553,0.37396457717814224
fast,0.861,-0.5641123049229769,-0.7290475533490074,0.38764284127313964
fast,0.911,-0.5010910596413976,-0.7640973590830287,0.4062794306752468
fast,0.961,-0.4574254856752507,-0.7851585926980168,0.4174780345925168
fast,1.011,-0.40119022065553167,-0.8087745891735626,0.43003496457555734
fast,1.062,-0.40119022065553167,-0.8087745891735626,0.43003496457555734
fast,1.112,-0.40119022065553167,-0.8087745891735626,0.43003496457555734
fast,1.162,-0.40119022065553167,-0.8087745891735626,0.43003496457555734
fast,1.213,-0.2732721277804909,-0.8493387726086905,0.4516038014918455
fast,1.263,-0.24847333019197224,-0.8552561875978043,0.45475032463867526
fast,1.314,-0.13690544128361162,-0.8746327174969611,0.46505323311511404
fast,1.364,-0.11190820705598208,-0.8774002355189958,0.46652479023598115
fast,1.414,-0.04853388875408303,-0.8819058319940255,0.46892063842118525
fast,1.464,-0.023325922091828814,-0.8827061212913064,0.4693461460302229
fast,1.52,-0.023325922091828814,-0.8827061212913064,0.4693461460302229
fast,1.57,-0.023325922091828814,-0.8827061212913064,0.4693461460302229
fast,1.623,0.11590445397311018,-0.8769955308131724,0.4663099789656202
fast,1.674,0.16796962344551228,-0.8704014300065923,0.46280401493726464
fast,1.724,0.2673695301474367,-0.8508015956107015,0.4523827795739172
fast,1.776,0.3040082366636887,-0.8411556467255445,0.44725403298613803
fast,1.826,0.34060203879357387,-0.8301524613755806,0.44140360447296506
fast,1.876,0.34060203879357387,-0.8301524613755806,0.44140360447296506
fast,1.926,0.34060203879357387,-0.8301524613755806,0.44140360447296506
fast,1.976,0.34060203879357387,-0.8301524613755806,0.44140360447296506
fast,2.026,0.4800222448487086,-0.7745698100484196,0.41184979520689524
fast,2.077,0.5027716590432529,-0.7632352767416622,0.4058233251058559
fast,2.162,0.567685165746978,-0.726881238602736,0.3864934896711436
fast,2.213,0.60896099881303,-0.7003525641308903,0.37238795340333464
fast,2.263,0.60896099881303,-0.7003525641308903,0.37238795340333464
fast,2.313,0.60896099881303,-0.7003525641308903,0.37238795340333464
fast,2.363,0.60896099881303,-0.7003525641308903,0.37238795340333464
fast,2.415,0.7138914376865056,-0.6182880840720885,0.3287534947226572
fast,2.465,0.7492325438071801,-0.584780749889073,0.31093740505026973
fast,2.515,0.7980625863701071,-0.5320401745258126,0.28289461098931906
fast,2.566,0.8280000832233713,-0.4950917864992449,0.2632489033653826
fast,2.618,0.8351255264037815,-0.48567212818960787,0.2582400802520477
fast,2.669,0.8351255264037815,-0.48567212818960787,0.2582400802520477
fast,2.719,0.8351255264037815,-0.48567212818960787,0.2582400802520477
fast,2.769,0.8351255264037815,-0.48567212818960787,0.2582400802520477
fast,2.82,0.9093870336730951,-0.36726148601053504,0.1952798604070126
fast,2.871,0.9203632924764715,-0.3452879583192104,0.18359639348750836
fast,2.921,0.9600488101430662,-0.247076202859695,0.13137591911502494
fast,2.972,0.9669595427173864,-0.2250884627532023,0.1196846969465328
fast,3.022,0.9813959442736294,-0.16952014269323645,0.09013834802422341
fast,3.074,0.9837681894544645,-0.158438487459875,0.08424603912892294
fast,3.124,0.9837681894544645,-0.158438487459875,0.08424603912892294
fast,3.174,0.9837681894544645,-0.158438487459875,0.08424603912892294
fast,3.224,0.9985768344211968,-0.04708834623109012,0.025039836392490022
fast,3.276,0.9999091072744978,0.011905223183064872,-0.006327942041318827
fast,3.326,0.9958087405962524,0.08075529499181068,-0.04293640044171679
fast,3.376,0.9931046463689198,0.10350980586946733,-0.05503527459119239
fast,3.426,0.9725948196320136,0.20529173779377843,-0.10915410765784948
fast,3.476,0.9662434406366642,0.22747505904204074,-0.12094920810175326
fast,3.526,0.9554895457575009,0.26049211070264017,-0.13850483099808442
fast,3.577,0.9554895457575009,0.26049211070264017,-0.13850483099808442
fast,3.627,0.9554895457575009,0.26049211070264017,-0.13850483099808442
fast,3.677,0.9554895457575009,0.26049211070264017,-0.13850483099808442
fast,3.727,0.8909286923979324,0.4009849131652504,-0.21320685841681314
fast,3.778,0.8640929736842651,0.44441621107211554,-0.23629973374041036
fast,3.829,0.8128494133306493,0.5142939755758894,-0.27345481881723305
fast,3.879,0.7814528720839342,0.5509276830126654,-0.2929336047674737
fast,3.929,0.7211597970721555,0.611678327920411,-0.3252355611542772
fast,3.979,0.6841778570037976,0.6439468055268214,-0.34239329963872395
fast,4.029,0.6746720278390272,0.65171893206941,-0.34652573992978153
fast,4.082,0.6746720278390272,0.65171893206941,-0.34652573992978153
fast,4.133,0.6746720278390272,0.65171893206941,-0.34652573992978153
fast,4.183,0.6746720278390272,0.65171893206941,-0.34652573992978153
fast,4.233,0.5182188187016136,0.7551386081987147,-0.4015158008736547
fast,4.284,0.47114018545956854,0.7788105659042874,-0.41410267818618
fast,4.335,0.37644461942850993,0.8179963583095251,-0.4349383936785522
fast,4.385,0.32771191712873915,0.8341882735212928,-0.44354799480030493
fast,4.435,0.22775844025010583,0.8597406189563827,-0.4571347296053267
fast,4.485,0.20235015483807314,0.864681197867618,-0.4597617218638685
fast,4.536,0.18963344038093657,0.8669254276051488,-0.4609549449359662
fast,4.586,0.18963344038093657,0.8669254276051488,-0.4609549449359662
fast,4.636,0.18963344038093657,0.8669254276051488,-0.4609549449359662
fast,4.686,0.0616702782462941,0.8812657670818295,-0.46858022210791117
fast,4.742,-0.033265594992281614,0.8824576094559936,-0.4692142023671305
fast,4.793,-0.08561358744104564,0.8797044474697407,-0.46775035943057547
fast,4.861,-0.16311988058380167,0.8711202450018558,-0.46318616484760533
fast,4.911,-0.2647679339679234,0.8514356989074474,-0.4527197717886242
fast,4.962,-0.31438943728704216,0.8381755148966445,-0.4456692584754773
fast,5.012,-0.31438943728704216,0.8381755148966445,-0.4456692584754773
fast,5.062,-0.31438943728704216,0.8381755148966445,-0.4456692584754773
fast,5.112,-0.31438943728704216,0.8381755148966445,-0.4456692584754773
fast,5.163,-0.4463483290724788,0.7901123971308208,-0.42011375725438266
fast,5.213,-0.505148005766188,0.7620111594970173,-0.40517216719865473
fast,5.263,-0.5274613820707995,0.7501322143205744,-0.3988560535612739
fast,5.313,-0.6235599606983542,0.6902653205120604,-0.36702419908263495
fast,5.364,-0.6535579280284671,0.6682807541755503,-0.3553348678496027
fast,5.414,-0.6535579280284671,0.6682807541755503,-0.3553348678496027
fast,5.464,-0.6535579280284671,0.6682807541755503,-0.3553348678496027
fast,5.514,-0.6535579280284671,0.6682807541755503,-0.3553348678496027
fast,5.564,-0.7542996656095252,0.5796803289795648,-0.3082251298247795
fast,5.615,-0.8053480118610813,0.5234118913151391,-0.2783066147638474
fast,5.665,-0.835317794193117,0.4854144024411218,-0.25810277140525667
fast,5.715,-0.8756811392589173,0.4263650045332836,-0.22670559158419007
fast,5.765,-0.8879541369536935,0.4060944713229071,-0.21592760598818767
fast,5.816,-0.8938471875490723,0.3958873769547781,-0.21050033272771532
fast,5.867,-0.8938471875490723,0.3958873769547781,-0.21050033272771532
fast,5.917,-0.8938471875490723,0.3958873769547781,-0.21050033272771532
fast,5.967,-0.8938471875490723,0.3958873769547781,-0.21050033272771532
fast,6.017,-0.9568362261302265,0.2566077577804137,-0.1364437430290401
fast,6.067,-0.9711494705384393,0.21055675115725614,-0.11195785106463185
fast,6.118,-0.9868689841435945,0.1426150745455621,-0.07583237203037746
fast,6.168,-0.9907414896934681,0.11986964152412082,-0.06373829022531322
fast,6.218,-0.9974727159739508,0.06273297303862826,-0.03335798227238545
fast,6.27,-0.9974727159739508,0.06273297303862826,-0.03335798227238545
fast,6.321,-0.9974727159739508,0.06273297303862826,-0.03335798227238545
fast,6.371,-0.9974727159739508,0.06273297303862826,-0.03335798227238545
fast,6.421,-0.9962961796573708,-0.0759235377258525,0.04036754661010212
fast,6.471,-0.9935876720124013,-0.09983054395307195,0.053079191016920685
fast,6.521,-0.98151891503074,-0.1689659788258626,0.0898393980183376
fast,6.572,-0.9761981791370964,-0.19149456258495987,0.1018182083412009
fast,6.622,-0.9600279771648162,-0.24714097112937958,0.13140632956619028
fast,6.673,-0.9600279771648162,-0.24714097112937958,0.13140632956619028
fast,6.723,-0.9600279771648162,-0.24714097112937958,0.13140632956619028
fast,6.773,-0.9600279771648162,-0.24714097112937958,0.13140632956619028
fast,6.823,-0.9600279771648162,-0.24714097112937958,0.13140632956619028
fast,6.874,-0.8987677690425633,-0.3871064780875767,0.20582777254997944
fast,6.924,-0.8670890034724157,-0.43984325215975256,0.23386871014897564
fast,6.974,-0.8537120733075257,-0.4597908235105943,0.24447514087206346
fast,7.024,-0.7865457418615867,-0.545248184091142,0.2899141488522395
fast,7.074,-0.7533129809628684,-0.5806809342120418,0.3087542798982184
fast,7.127,-0.7447100018154831,-0.5892684722773185,0.31332041231930347
fast,7.179,-0.7447100018154831,-0.5892684722773185,0.31332041231930347
fast,7.229,-0.7447100018154831,-0.5892684722773185,0.31332041231930347
fast,7.279,-0.7447100018154831,-0.5892684722773185,0.31332041231930347
fast,7.329,-0.5992280106837283,-0.7068679873070793,0.3758502889881291
fast,7.379,-0.5443899367788374,-0.7406440829377567,0.3938095213973664
fast,7.431,-0.4771420994818272,-0.7759564582613324,0.4125857387072451
fast,7.481,-0.41846538807715317,-0.801920794933833,0.42639155436538256
fast,7.531,-0.35845204323781216,-0.8242729196805756,0.43827649558229453
fast,7.581,-0.35845204323781216,-0.8242729196805756,0.43827649558229453
fast,7.631,-0.35845204323781216,-0.8242729196805756,0.43827649558229453
fast,7.681,-0.35845204323781216,-0.8242729196805756,0.43827649558229453
fast,7.732,-0.23477000507402776,-0.8582687461538578,0.4563527189499649
fast,7.783,-0.20781325308245005,-0.8636701935950999,0.4592248344097825
fast,7.861,-0.10263756227815277,-0.8782831695934015,0.4669948659445483
fast,7.911,-0.02463647965351885,-0.8826781186805318,0.4693318470686588
fast,7.962,0.001224726571744081,-0.8829453951924657,0.4694740984902627
1 phase t fx fy fz
2 slow 0.022 -0.9999999999976801 -5.364418029772711e-07 -2.0861625671338324e-06
3 slow 0.072 -0.9999999999976801 -5.364418029772711e-07 -2.0861625671338324e-06
4 slow 0.138 -0.9999999999976801 -5.364418029772711e-07 -2.0861625671338324e-06
5 slow 0.188 -0.9999999999976801 -5.364418029772711e-07 -2.0861625671338324e-06
6 slow 0.238 -0.9999996503301273 -0.000739351008976433 0.00039076810084039696
7 slow 0.288 -0.9995667500505145 -0.025989011351613873 0.013816058859813869
8 slow 0.338 -0.9991424233572718 -0.03655991231151712 0.01943683769373226
9 slow 0.388 -0.9974614922372212 -0.06287386978474002 0.03342825155743701
10 slow 0.441 -0.9974614922372212 -0.06287386978474002 0.03342825155743701
11 slow 0.491 -0.9974614922372212 -0.06287386978474002 0.03342825155743701
12 slow 0.542 -0.9974614922372212 -0.06287386978474002 0.03342825155743701
13 slow 0.592 -0.9756937705208446 -0.19348862930198532 0.10287767735352636
14 slow 0.642 -0.9599895265779043 -0.24725777991348272 0.13146748317735063
15 slow 0.692 -0.9065968643570531 -0.3726025922234667 0.19811469861247516
16 slow 0.742 -0.8880690175394421 -0.405900585102419 0.215819681910719
17 slow 0.792 -0.8231976038572328 -0.5012983450542031 0.2665439443124295
18 slow 0.845 -0.8111180643235866 -0.5164209971100269 0.2745848493122731
19 slow 0.895 -0.8111180643235866 -0.5164209971100269 0.2745848493122731
20 slow 0.946 -0.8111180643235866 -0.5164209971100269 0.2745848493122731
21 slow 0.996 -0.8111180643235866 -0.5164209971100269 0.2745848493122731
22 slow 1.047 -0.6225347328753619 -0.6909879300492386 0.3674046636749054
23 slow 1.098 -0.4995761468930651 -0.7648708472261829 0.40668939071357624
24 slow 1.148 -0.42441628069163945 -0.7994799112461082 0.425091392759005
25 slow 1.198 -0.34635895158661695 -0.8282947460891245 0.440412636350244
26 slow 1.249 -0.26597407096587283 -0.8511436226859083 0.4525619594430681
27 slow 1.3 -0.22508987440157757 -0.8602890836759516 0.45742457405551984
28 slow 1.35 -0.22508987440157757 -0.8602890836759516 0.45742457405551984
29 slow 1.4 -0.22508987440157757 -0.8602890836759516 0.45742457405551984
30 slow 1.45 0.0050435963756794286 -0.8829357634414114 0.4694667184920898
31 slow 1.5 0.1113271185026686 -0.8774582682112876 0.4665546701443904
32 slow 1.551 0.19530088938670107 -0.8659441420087264 0.46043273724349176
33 slow 1.601 0.35806279594948665 -0.8244050055782095 0.4383462340826355
34 slow 1.651 0.4357105639703388 -0.7947284845866424 0.4225670837053784
35 slow 1.701 0.4357105639703388 -0.7947284845866424 0.4225670837053784
36 slow 1.751 0.4357105639703388 -0.7947284845866424 0.4225670837053784
37 slow 1.801 0.581059227173933 -0.7185957552011922 0.38208679003972373
38 slow 1.854 0.5981621070188505 -0.707571139880663 0.3762249004714446
39 slow 1.933 0.7102092219298712 -0.6215856943388454 0.3305058027918156
40 slow 1.983 0.7936818073741404 -0.5371251153693617 0.28559726728869045
41 slow 2.034 0.8306115980329357 -0.491670162790673 0.2614284304251665
42 slow 2.085 0.8306115980329357 -0.491670162790673 0.2614284304251665
43 slow 2.136 0.8306115980329357 -0.491670162790673 0.2614284304251665
44 slow 2.186 0.8306115980329357 -0.491670162790673 0.2614284304251665
45 slow 2.236 0.9439254674422402 -0.29151154402331125 0.15500236003072188
46 slow 2.288 0.9782500298959619 -0.18314796371755346 0.09738430260911397
47 slow 2.338 0.9923168633793271 -0.1092393189325843 0.05808626216377494
48 slow 2.388 0.9999950320089501 0.0027841479666426932 -0.0014779978073891553
49 slow 2.439 0.9961448118772039 0.07745674002692376 -0.04118212226842516
50 slow 2.489 0.9885868780617736 0.1330186187164556 -0.07072504223287812
51 slow 2.54 0.9885868780617736 0.1330186187164556 -0.07072504223287812
52 slow 2.59 0.9885868780617736 0.1330186187164556 -0.07072504223287812
53 slow 2.64 0.9885868780617736 0.1330186187164556 -0.07072504223287812
54 slow 2.69 0.9104394306290844 0.3652252075952527 -0.1941921494108173
55 slow 2.741 0.8718210936242394 0.4324898355933772 -0.22995765440673788
56 slow 2.791 0.8021474529558832 0.5272312979999614 -0.28033305571349426
57 slow 2.841 0.7483879225773887 0.5856251973581853 -0.31138183241718986
58 slow 2.891 0.6415804884515123 0.6772700855747096 -0.3601106885722006
59 slow 2.942 0.5565400067937 0.7335711833839508 -0.39004684301598735
60 slow 2.992 0.5025832072518267 0.7633335327127708 -0.4058719473241637
61 slow 3.042 0.5025832072518267 0.7633335327127708 -0.4058719473241637
62 slow 3.092 0.5025832072518267 0.7633335327127708 -0.4058719473241637
63 slow 3.142 0.5025832072518267 0.7633335327127708 -0.4058719473241637
64 slow 3.193 0.26840150425248394 0.8505494121077833 -0.4522458734782528
65 slow 3.243 0.14383384202445684 0.8737661032159637 -0.4645908121769882
66 slow 3.293 0.017126773329819035 0.8828175004515181 -0.46940380753871486
67 slow 3.344 -0.025233536073355507 0.8826657223955247 -0.46932343982079283
68 slow 3.394 -0.1306276597599528 0.8753813567867831 -0.46545020646226887
69 slow 3.444 -0.1306276597599528 0.8753813567867831 -0.46545020646226887
70 slow 3.494 -0.1306276597599528 0.8753813567867831 -0.46545020646226887
71 slow 3.544 -0.1306276597599528 0.8753813567867831 -0.46545020646226887
72 slow 3.594 -0.3953899986357624 0.8109981935802458 -0.4312176700790331
73 slow 3.644 -0.5092096812736444 0.7599012381904277 -0.40404901768702334
74 slow 3.695 -0.6146085873298012 0.6964964366951696 -0.37033633099035523
75 slow 3.745 -0.6475735623151888 0.6728076094689478 -0.35774069104743467
76 slow 3.795 -0.7246428766140702 0.6084598143649699 -0.32352643736707504
77 slow 3.845 -0.7246428766140702 0.6084598143649699 -0.32352643736707504
78 slow 3.895 -0.7246428766140702 0.6084598143649699 -0.32352643736707504
79 slow 3.946 -0.7246428766140702 0.6084598143649699 -0.32352643736707504
80 slow 4.0 -0.8948032879220578 0.39420026288722865 -0.2096025492772329
81 slow 4.05 -0.9371976061971167 0.3079700993685502 -0.16375306053115327
82 slow 4.1 -0.9739646105616616 0.20016331274041113 -0.10643113081357014
83 slow 4.151 -0.9925182516704475 0.1078037923584182 -0.057322442849038695
84 slow 4.201 -0.9998661518865883 0.014444979973920849 -0.007682503827448022
85 slow 4.252 -0.999988574147902 -0.004221603854607207 0.0022426846725771095
86 slow 4.302 -0.999988574147902 -0.004221603854607207 0.0022426846725771095
87 slow 4.352 -0.999988574147902 -0.004221603854607207 0.0022426846725771095
88 slow 4.402 -0.999988574147902 -0.004221603854607207 0.0022426846725771095
89 slow 4.454 -0.9481592609187346 -0.28059728776173093 0.1491951005723691
90 slow 4.504 -0.8998604949330586 -0.3851225220144059 0.20477239241678594
91 slow 4.554 -0.8483542366290391 -0.4674583762955424 0.24855131386636348
92 slow 4.605 -0.8002653758276345 -0.5294561807103555 0.281516395542175
93 slow 4.655 -0.7740407763904767 -0.5590258203543885 0.2972389756777044
94 slow 4.705 -0.7320686741889714 -0.6014912262488834 0.31981832501721374
95 slow 4.755 -0.7320686741889714 -0.6014912262488834 0.31981832501721374
96 slow 4.805 -0.7320686741889714 -0.6014912262488834 0.31981832501721374
97 slow 4.855 -0.7320686741889714 -0.6014912262488834 0.31981832501721374
98 slow 4.905 -0.5000347671416738 -0.7646370203731946 0.4065654421177173
99 slow 4.956 -0.38571043654168863 -0.8146245270401747 0.43314470917626546
100 slow 5.033 -0.3059761515320789 -0.8406001527732009 0.44695634893274494
101 slow 5.083 -0.14067269192255813 -0.8741670164828578 0.46480449765543375
102 slow 5.136 -0.11971066366716597 -0.876597475120388 0.46609679640277224
103 slow 5.186 -0.11971066366716597 -0.876597475120388 0.46609679640277224
104 slow 5.236 -0.11971066366716597 -0.876597475120388 0.46609679640277224
105 slow 5.286 0.09210780811437987 -0.8791932987194956 0.4674775878810623
106 slow 5.336 0.1552569076145395 -0.8722401249754417 0.46378061302818196
107 slow 5.389 0.29980078422712286 -0.8423325684075889 0.4478787045358116
108 slow 5.439 0.39908806765876 -0.8095847039629167 0.43046639980569157
109 slow 5.49 0.4751133264531701 -0.7769262478123317 0.4131016006829976
110 slow 5.542 0.4751133264531701 -0.7769262478123317 0.4131016006829976
111 slow 5.592 0.4751133264531701 -0.7769262478123317 0.4131016006829976
112 slow 5.642 0.4751133264531701 -0.7769262478123317 0.4131016006829976
113 slow 5.692 0.696657860237904 -0.633428595248907 0.3368026729254701
114 slow 5.742 0.726585020550654 -0.6066514667740671 0.3225650411502751
115 slow 5.792 0.8325182828011221 -0.48914972660411055 0.2600881653689665
116 slow 5.843 0.8765739353060135 -0.4249327255756417 0.22594316691811042
117 slow 5.893 0.9054260508840364 -0.37481374091028163 0.19929457093804306
118 slow 5.943 0.9054260508840364 -0.37481374091028163 0.19929457093804306
119 slow 5.993 0.9054260508840364 -0.37481374091028163 0.19929457093804306
120 slow 6.043 0.9054260508840364 -0.37481374091028163 0.19929457093804306
121 slow 6.093 0.9868879110680581 -0.14251307214027348 0.07577780187407064
122 slow 6.144 0.9928589520370625 -0.10532958640717122 0.056006960167108814
123 slow 6.194 0.9995721898785164 0.025825160128774418 -0.013729469246492699
124 slow 6.244 0.9934893887944055 0.10059024435508387 -0.05348305426490678
125 slow 6.294 0.9538232020213261 0.26521033194280885 -0.14101340048580407
126 slow 6.344 0.947267673727074 0.2829352443494437 -0.1504380331452729
127 slow 6.394 0.947267673727074 0.2829352443494437 -0.1504380331452729
128 slow 6.445 0.947267673727074 0.2829352443494437 -0.1504380331452729
129 slow 6.495 0.947267673727074 0.2829352443494437 -0.1504380331452729
130 slow 6.545 0.8243733791338322 0.4997895512364342 -0.2657422364818033
131 slow 6.597 0.7593203746728908 0.5745491212947682 -0.30549284087524925
132 slow 6.647 0.7010074410559842 0.6296776548998042 -0.3348053441987208
133 slow 6.697 0.6041754101078993 0.7035779205024607 -0.37409916279294836
134 slow 6.747 0.5340870381020223 0.7464697028629991 -0.39690555355025536
135 slow 6.797 0.4025055990782129 0.8082653740061208 -0.4297631067151235
136 slow 6.847 0.3433573357356595 0.8292682687272306 -0.44093069577729704
137 slow 6.898 0.3433573357356595 0.8292682687272306 -0.44093069577729704
138 slow 6.948 0.3433573357356595 0.8292682687272306 -0.44093069577729704
139 slow 6.999 0.3433573357356595 0.8292682687272306 -0.44093069577729704
140 slow 7.049 0.09503184681410931 0.8789508919606488 -0.46734813320765445
141 slow 7.1 -0.03242949378753749 0.8824823690120825 -0.4692261675519672
142 slow 7.15 -0.07486618489555856 0.8804688348729269 -0.46815562068258304
143 slow 7.202 -0.2217573682314415 0.8609628101781774 -0.4577845662810842
144 slow 7.253 -0.3436636683706333 0.8291685841702975 -0.44087950969291334
145 slow 7.306 -0.3436636683706333 0.8291685841702975 -0.44087950969291334
146 slow 7.356 -0.3436636683706333 0.8291685841702975 -0.44087950969291334
147 slow 7.406 -0.3436636683706333 0.8291685841702975 -0.44087950969291334
148 slow 7.456 -0.5335192585826919 0.7467851744734487 -0.3970756904017614
149 slow 7.506 -0.5863848618861591 0.715215075832045 -0.38028961207652284
150 slow 7.557 -0.6691599892298212 0.6561333325626291 -0.3488752767311034
151 slow 7.607 -0.7582631988698701 0.5756351874374445 -0.30607360589160554
152 slow 7.657 -0.8108505756823166 0.51674664977568 -0.27476215871416254
153 slow 7.707 -0.8575526461274808 0.4541837039893854 -0.24149662968711988
154 slow 7.757 -0.8575526461274808 0.4541837039893854 -0.24149662968711988
155 slow 7.808 -0.8575526461274808 0.4541837039893854 -0.24149662968711988
156 slow 7.859 -0.8575526461274808 0.4541837039893854 -0.24149662968711988
157 slow 7.909 -0.9532867456950477 0.2667081367420545 -0.1418137873329921
158 slow 7.959 -0.9755224624568912 0.19415891248194872 -0.10323876183813074
159 fast 0.031 -0.9183790521746182 -0.3493842945716818 0.1857701031745906
160 fast 0.081 -0.9181941875656858 -0.34976292144045307 0.18597132226778823
161 fast 0.131 -0.9157256739103099 -0.35477222000318137 0.18863499690015914
162 fast 0.181 -0.9149015400332507 -0.3564260247285592 0.18951427635136814
163 fast 0.231 -0.9149015400332507 -0.3564260247285592 0.18951427635136814
164 fast 0.282 -0.9149015400332507 -0.3564260247285592 0.18951427635136814
165 fast 0.334 -0.886987130221704 -0.40774025376731704 0.21679879215260833
166 fast 0.392 -0.874422882615109 -0.42837502256975 0.22777063550301968
167 fast 0.442 -0.8391761714215903 -0.4801996653842019 0.2553265256159302
168 fast 0.492 -0.8087011271707248 -0.5193672154489234 0.27615246229144985
169 fast 0.542 -0.7639193320090165 -0.5697763250541364 0.3029557617717493
170 fast 0.592 -0.7142788381999624 -0.6179405632697418 0.3285653687861613
171 fast 0.644 -0.7056326965418199 -0.6256368844308748 0.3326574610778302
172 fast 0.694 -0.7056326965418199 -0.6256368844308748 0.3326574610778302
173 fast 0.761 -0.7056326965418199 -0.6256368844308748 0.3326574610778302
174 fast 0.811 -0.6045554154137983 -0.703323001692553 0.37396457717814224
175 fast 0.861 -0.5641123049229769 -0.7290475533490074 0.38764284127313964
176 fast 0.911 -0.5010910596413976 -0.7640973590830287 0.4062794306752468
177 fast 0.961 -0.4574254856752507 -0.7851585926980168 0.4174780345925168
178 fast 1.011 -0.40119022065553167 -0.8087745891735626 0.43003496457555734
179 fast 1.062 -0.40119022065553167 -0.8087745891735626 0.43003496457555734
180 fast 1.112 -0.40119022065553167 -0.8087745891735626 0.43003496457555734
181 fast 1.162 -0.40119022065553167 -0.8087745891735626 0.43003496457555734
182 fast 1.213 -0.2732721277804909 -0.8493387726086905 0.4516038014918455
183 fast 1.263 -0.24847333019197224 -0.8552561875978043 0.45475032463867526
184 fast 1.314 -0.13690544128361162 -0.8746327174969611 0.46505323311511404
185 fast 1.364 -0.11190820705598208 -0.8774002355189958 0.46652479023598115
186 fast 1.414 -0.04853388875408303 -0.8819058319940255 0.46892063842118525
187 fast 1.464 -0.023325922091828814 -0.8827061212913064 0.4693461460302229
188 fast 1.52 -0.023325922091828814 -0.8827061212913064 0.4693461460302229
189 fast 1.57 -0.023325922091828814 -0.8827061212913064 0.4693461460302229
190 fast 1.623 0.11590445397311018 -0.8769955308131724 0.4663099789656202
191 fast 1.674 0.16796962344551228 -0.8704014300065923 0.46280401493726464
192 fast 1.724 0.2673695301474367 -0.8508015956107015 0.4523827795739172
193 fast 1.776 0.3040082366636887 -0.8411556467255445 0.44725403298613803
194 fast 1.826 0.34060203879357387 -0.8301524613755806 0.44140360447296506
195 fast 1.876 0.34060203879357387 -0.8301524613755806 0.44140360447296506
196 fast 1.926 0.34060203879357387 -0.8301524613755806 0.44140360447296506
197 fast 1.976 0.34060203879357387 -0.8301524613755806 0.44140360447296506
198 fast 2.026 0.4800222448487086 -0.7745698100484196 0.41184979520689524
199 fast 2.077 0.5027716590432529 -0.7632352767416622 0.4058233251058559
200 fast 2.162 0.567685165746978 -0.726881238602736 0.3864934896711436
201 fast 2.213 0.60896099881303 -0.7003525641308903 0.37238795340333464
202 fast 2.263 0.60896099881303 -0.7003525641308903 0.37238795340333464
203 fast 2.313 0.60896099881303 -0.7003525641308903 0.37238795340333464
204 fast 2.363 0.60896099881303 -0.7003525641308903 0.37238795340333464
205 fast 2.415 0.7138914376865056 -0.6182880840720885 0.3287534947226572
206 fast 2.465 0.7492325438071801 -0.584780749889073 0.31093740505026973
207 fast 2.515 0.7980625863701071 -0.5320401745258126 0.28289461098931906
208 fast 2.566 0.8280000832233713 -0.4950917864992449 0.2632489033653826
209 fast 2.618 0.8351255264037815 -0.48567212818960787 0.2582400802520477
210 fast 2.669 0.8351255264037815 -0.48567212818960787 0.2582400802520477
211 fast 2.719 0.8351255264037815 -0.48567212818960787 0.2582400802520477
212 fast 2.769 0.8351255264037815 -0.48567212818960787 0.2582400802520477
213 fast 2.82 0.9093870336730951 -0.36726148601053504 0.1952798604070126
214 fast 2.871 0.9203632924764715 -0.3452879583192104 0.18359639348750836
215 fast 2.921 0.9600488101430662 -0.247076202859695 0.13137591911502494
216 fast 2.972 0.9669595427173864 -0.2250884627532023 0.1196846969465328
217 fast 3.022 0.9813959442736294 -0.16952014269323645 0.09013834802422341
218 fast 3.074 0.9837681894544645 -0.158438487459875 0.08424603912892294
219 fast 3.124 0.9837681894544645 -0.158438487459875 0.08424603912892294
220 fast 3.174 0.9837681894544645 -0.158438487459875 0.08424603912892294
221 fast 3.224 0.9985768344211968 -0.04708834623109012 0.025039836392490022
222 fast 3.276 0.9999091072744978 0.011905223183064872 -0.006327942041318827
223 fast 3.326 0.9958087405962524 0.08075529499181068 -0.04293640044171679
224 fast 3.376 0.9931046463689198 0.10350980586946733 -0.05503527459119239
225 fast 3.426 0.9725948196320136 0.20529173779377843 -0.10915410765784948
226 fast 3.476 0.9662434406366642 0.22747505904204074 -0.12094920810175326
227 fast 3.526 0.9554895457575009 0.26049211070264017 -0.13850483099808442
228 fast 3.577 0.9554895457575009 0.26049211070264017 -0.13850483099808442
229 fast 3.627 0.9554895457575009 0.26049211070264017 -0.13850483099808442
230 fast 3.677 0.9554895457575009 0.26049211070264017 -0.13850483099808442
231 fast 3.727 0.8909286923979324 0.4009849131652504 -0.21320685841681314
232 fast 3.778 0.8640929736842651 0.44441621107211554 -0.23629973374041036
233 fast 3.829 0.8128494133306493 0.5142939755758894 -0.27345481881723305
234 fast 3.879 0.7814528720839342 0.5509276830126654 -0.2929336047674737
235 fast 3.929 0.7211597970721555 0.611678327920411 -0.3252355611542772
236 fast 3.979 0.6841778570037976 0.6439468055268214 -0.34239329963872395
237 fast 4.029 0.6746720278390272 0.65171893206941 -0.34652573992978153
238 fast 4.082 0.6746720278390272 0.65171893206941 -0.34652573992978153
239 fast 4.133 0.6746720278390272 0.65171893206941 -0.34652573992978153
240 fast 4.183 0.6746720278390272 0.65171893206941 -0.34652573992978153
241 fast 4.233 0.5182188187016136 0.7551386081987147 -0.4015158008736547
242 fast 4.284 0.47114018545956854 0.7788105659042874 -0.41410267818618
243 fast 4.335 0.37644461942850993 0.8179963583095251 -0.4349383936785522
244 fast 4.385 0.32771191712873915 0.8341882735212928 -0.44354799480030493
245 fast 4.435 0.22775844025010583 0.8597406189563827 -0.4571347296053267
246 fast 4.485 0.20235015483807314 0.864681197867618 -0.4597617218638685
247 fast 4.536 0.18963344038093657 0.8669254276051488 -0.4609549449359662
248 fast 4.586 0.18963344038093657 0.8669254276051488 -0.4609549449359662
249 fast 4.636 0.18963344038093657 0.8669254276051488 -0.4609549449359662
250 fast 4.686 0.0616702782462941 0.8812657670818295 -0.46858022210791117
251 fast 4.742 -0.033265594992281614 0.8824576094559936 -0.4692142023671305
252 fast 4.793 -0.08561358744104564 0.8797044474697407 -0.46775035943057547
253 fast 4.861 -0.16311988058380167 0.8711202450018558 -0.46318616484760533
254 fast 4.911 -0.2647679339679234 0.8514356989074474 -0.4527197717886242
255 fast 4.962 -0.31438943728704216 0.8381755148966445 -0.4456692584754773
256 fast 5.012 -0.31438943728704216 0.8381755148966445 -0.4456692584754773
257 fast 5.062 -0.31438943728704216 0.8381755148966445 -0.4456692584754773
258 fast 5.112 -0.31438943728704216 0.8381755148966445 -0.4456692584754773
259 fast 5.163 -0.4463483290724788 0.7901123971308208 -0.42011375725438266
260 fast 5.213 -0.505148005766188 0.7620111594970173 -0.40517216719865473
261 fast 5.263 -0.5274613820707995 0.7501322143205744 -0.3988560535612739
262 fast 5.313 -0.6235599606983542 0.6902653205120604 -0.36702419908263495
263 fast 5.364 -0.6535579280284671 0.6682807541755503 -0.3553348678496027
264 fast 5.414 -0.6535579280284671 0.6682807541755503 -0.3553348678496027
265 fast 5.464 -0.6535579280284671 0.6682807541755503 -0.3553348678496027
266 fast 5.514 -0.6535579280284671 0.6682807541755503 -0.3553348678496027
267 fast 5.564 -0.7542996656095252 0.5796803289795648 -0.3082251298247795
268 fast 5.615 -0.8053480118610813 0.5234118913151391 -0.2783066147638474
269 fast 5.665 -0.835317794193117 0.4854144024411218 -0.25810277140525667
270 fast 5.715 -0.8756811392589173 0.4263650045332836 -0.22670559158419007
271 fast 5.765 -0.8879541369536935 0.4060944713229071 -0.21592760598818767
272 fast 5.816 -0.8938471875490723 0.3958873769547781 -0.21050033272771532
273 fast 5.867 -0.8938471875490723 0.3958873769547781 -0.21050033272771532
274 fast 5.917 -0.8938471875490723 0.3958873769547781 -0.21050033272771532
275 fast 5.967 -0.8938471875490723 0.3958873769547781 -0.21050033272771532
276 fast 6.017 -0.9568362261302265 0.2566077577804137 -0.1364437430290401
277 fast 6.067 -0.9711494705384393 0.21055675115725614 -0.11195785106463185
278 fast 6.118 -0.9868689841435945 0.1426150745455621 -0.07583237203037746
279 fast 6.168 -0.9907414896934681 0.11986964152412082 -0.06373829022531322
280 fast 6.218 -0.9974727159739508 0.06273297303862826 -0.03335798227238545
281 fast 6.27 -0.9974727159739508 0.06273297303862826 -0.03335798227238545
282 fast 6.321 -0.9974727159739508 0.06273297303862826 -0.03335798227238545
283 fast 6.371 -0.9974727159739508 0.06273297303862826 -0.03335798227238545
284 fast 6.421 -0.9962961796573708 -0.0759235377258525 0.04036754661010212
285 fast 6.471 -0.9935876720124013 -0.09983054395307195 0.053079191016920685
286 fast 6.521 -0.98151891503074 -0.1689659788258626 0.0898393980183376
287 fast 6.572 -0.9761981791370964 -0.19149456258495987 0.1018182083412009
288 fast 6.622 -0.9600279771648162 -0.24714097112937958 0.13140632956619028
289 fast 6.673 -0.9600279771648162 -0.24714097112937958 0.13140632956619028
290 fast 6.723 -0.9600279771648162 -0.24714097112937958 0.13140632956619028
291 fast 6.773 -0.9600279771648162 -0.24714097112937958 0.13140632956619028
292 fast 6.823 -0.9600279771648162 -0.24714097112937958 0.13140632956619028
293 fast 6.874 -0.8987677690425633 -0.3871064780875767 0.20582777254997944
294 fast 6.924 -0.8670890034724157 -0.43984325215975256 0.23386871014897564
295 fast 6.974 -0.8537120733075257 -0.4597908235105943 0.24447514087206346
296 fast 7.024 -0.7865457418615867 -0.545248184091142 0.2899141488522395
297 fast 7.074 -0.7533129809628684 -0.5806809342120418 0.3087542798982184
298 fast 7.127 -0.7447100018154831 -0.5892684722773185 0.31332041231930347
299 fast 7.179 -0.7447100018154831 -0.5892684722773185 0.31332041231930347
300 fast 7.229 -0.7447100018154831 -0.5892684722773185 0.31332041231930347
301 fast 7.279 -0.7447100018154831 -0.5892684722773185 0.31332041231930347
302 fast 7.329 -0.5992280106837283 -0.7068679873070793 0.3758502889881291
303 fast 7.379 -0.5443899367788374 -0.7406440829377567 0.3938095213973664
304 fast 7.431 -0.4771420994818272 -0.7759564582613324 0.4125857387072451
305 fast 7.481 -0.41846538807715317 -0.801920794933833 0.42639155436538256
306 fast 7.531 -0.35845204323781216 -0.8242729196805756 0.43827649558229453
307 fast 7.581 -0.35845204323781216 -0.8242729196805756 0.43827649558229453
308 fast 7.631 -0.35845204323781216 -0.8242729196805756 0.43827649558229453
309 fast 7.681 -0.35845204323781216 -0.8242729196805756 0.43827649558229453
310 fast 7.732 -0.23477000507402776 -0.8582687461538578 0.4563527189499649
311 fast 7.783 -0.20781325308245005 -0.8636701935950999 0.4592248344097825
312 fast 7.861 -0.10263756227815277 -0.8782831695934015 0.4669948659445483
313 fast 7.911 -0.02463647965351885 -0.8826781186805318 0.4693318470686588
314 fast 7.962 0.001224726571744081 -0.8829453951924657 0.4694740984902627

View File

@@ -0,0 +1,40 @@
t,speed_units_per_wall_s,rate_deg_per_wall_s
0.52,1498.8,37.47
1.03,1276.1,91.64
1.53,1045.5,90.49
2.05,1133.7,118.83
2.55,885.4,129.88
3.06,777.7,127.51
3.57,788.1,174.38
4.07,546.7,157.56
4.57,536.2,124.41
5.09,946.8,161.62
5.59,821.9,138.76
6.09,636.7,131.35
6.61,529.3,133.56
7.13,674.7,162.01
7.63,669.2,125.78
8.17,746.4,127.35
8.67,821.1,154.31
9.17,569.7,135.57
9.67,645.2,167.18
10.19,720.0,150.99
10.69,698.6,123.63
11.21,717.0,125.53
11.72,826.9,165.47
12.23,471.3,114.2
12.77,594.0,146.56
13.29,858.3,174.73
13.79,734.8,130.83
14.31,502.8,91.53
14.81,822.9,168.67
15.31,696.2,166.37
15.83,462.2,109.81
16.33,791.0,162.87
16.85,854.4,155.88
17.37,536.8,98.26
17.89,873.1,182.24
18.41,630.0,155.61
18.93,584.1,129.64
19.43,699.6,132.45
19.97,805.1,142.68
1 t speed_units_per_wall_s rate_deg_per_wall_s
2 0.52 1498.8 37.47
3 1.03 1276.1 91.64
4 1.53 1045.5 90.49
5 2.05 1133.7 118.83
6 2.55 885.4 129.88
7 3.06 777.7 127.51
8 3.57 788.1 174.38
9 4.07 546.7 157.56
10 4.57 536.2 124.41
11 5.09 946.8 161.62
12 5.59 821.9 138.76
13 6.09 636.7 131.35
14 6.61 529.3 133.56
15 7.13 674.7 162.01
16 7.63 669.2 125.78
17 8.17 746.4 127.35
18 8.67 821.1 154.31
19 9.17 569.7 135.57
20 9.67 645.2 167.18
21 10.19 720.0 150.99
22 10.69 698.6 123.63
23 11.21 717.0 125.53
24 11.72 826.9 165.47
25 12.23 471.3 114.2
26 12.77 594.0 146.56
27 13.29 858.3 174.73
28 13.79 734.8 130.83
29 14.31 502.8 91.53
30 14.81 822.9 168.67
31 15.31 696.2 166.37
32 15.83 462.2 109.81
33 16.33 791.0 162.87
34 16.85 854.4 155.88
35 17.37 536.8 98.26
36 17.89 873.1 182.24
37 18.41 630.0 155.61
38 18.93 584.1 129.64
39 19.43 699.6 132.45
40 19.97 805.1 142.68

View File

@@ -0,0 +1,315 @@
phase,t,dpitch_deg
slow,0.051,0.0953
slow,0.101,1.6885
slow,0.152,0.8717
slow,0.202,1.6238
slow,0.252,-0.0
slow,0.302,-0.0
slow,0.352,8.8412
slow,0.403,5.679
slow,0.453,5.3839
slow,0.503,12.9544
slow,0.553,7.5713
slow,0.603,4.0593
slow,0.653,0.0
slow,0.703,0.0
slow,0.753,23.7081
slow,0.804,14.501
slow,0.854,9.6502
slow,0.905,9.64
slow,0.955,2.4036
slow,1.006,-0.0
slow,1.056,-0.0
slow,1.106,24.1631
slow,1.156,9.7201
slow,1.206,14.5817
slow,1.26,7.2861
slow,1.31,-0.0
slow,1.36,-0.0
slow,1.41,21.8962
slow,1.461,12.1865
slow,1.511,14.6395
slow,1.561,4.8866
slow,1.611,4.8766
slow,1.661,0.0
slow,1.712,0.0
slow,1.762,24.4862
slow,1.812,12.272
slow,1.863,14.7764
slow,1.913,14.8237
slow,1.964,9.9081
slow,2.014,-0.0
slow,2.064,-0.0
slow,2.116,22.3434
slow,2.166,4.9684
slow,2.217,14.8905
slow,2.267,9.9066
slow,2.317,2.4656
slow,2.367,-0.0
slow,2.417,19.7888
slow,2.467,7.374
slow,2.517,9.8264
slow,2.569,14.7106
slow,2.619,12.2195
slow,2.671,0.0
slow,2.721,0.0
slow,2.771,0.0
slow,2.821,24.4044
slow,2.871,12.1781
slow,2.951,14.5889
slow,3.001,14.5786
slow,3.052,0.0
slow,3.102,0.0
slow,3.153,19.432
slow,3.203,14.5741
slow,3.253,4.8605
slow,3.303,19.4596
slow,3.355,2.4281
slow,3.405,0.0
slow,3.455,0.0
slow,3.506,31.6949
slow,3.556,9.7829
slow,3.606,14.7094
slow,3.656,9.8314
slow,3.706,7.3808
slow,3.756,-0.0
slow,3.807,-0.0
slow,3.857,19.7355
slow,3.907,14.8675
slow,3.958,4.9655
slow,4.008,17.3918
slow,4.06,2.4777
slow,4.11,-0.0
slow,4.16,-0.0
slow,4.211,32.264
slow,4.261,9.866
slow,4.311,19.6734
slow,4.361,7.3673
slow,4.412,7.3404
slow,4.462,0.0
slow,4.513,0.0
slow,4.563,19.5894
slow,4.613,12.1841
slow,4.663,4.8719
slow,4.713,17.0264
slow,4.765,2.4241
slow,4.815,0.0
slow,4.866,0.0
slow,4.918,26.7496
slow,4.968,17.0367
slow,5.019,14.6052
slow,5.069,7.3143
slow,5.119,2.4296
slow,5.17,0.0
slow,5.222,17.0719
slow,5.272,12.2148
slow,5.351,14.6765
slow,5.401,14.7096
slow,5.454,2.4482
slow,5.504,0.0
slow,5.555,0.0
slow,5.605,27.0453
slow,5.655,12.3214
slow,5.705,14.8308
slow,5.756,4.9518
slow,5.806,19.8347
slow,5.856,2.4736
slow,5.906,-0.0
slow,5.957,-0.0
slow,6.008,24.7941
slow,6.058,9.8906
slow,6.108,14.805
slow,6.159,4.9105
slow,6.209,-0.0
slow,6.26,-0.0
slow,6.31,24.6254
slow,6.36,7.3425
slow,6.41,14.6791
slow,6.461,9.7716
slow,6.511,7.3144
slow,6.561,0.0
slow,6.612,0.0
slow,6.662,21.9754
slow,6.713,12.1647
slow,6.763,9.7355
slow,6.813,19.4718
slow,6.864,2.4274
slow,6.914,0.0
slow,6.964,0.0
slow,7.014,29.2378
slow,7.064,9.7533
slow,7.114,14.6513
slow,7.165,4.8902
slow,7.215,2.4395
slow,7.266,0.0
slow,7.316,0.0
slow,7.368,26.9512
slow,7.418,14.7524
slow,7.468,9.8579
slow,7.518,12.3414
slow,7.569,2.4662
slow,7.621,-0.0
slow,7.671,-0.0
slow,7.722,19.8018
slow,7.772,9.92
slow,7.851,14.8814
slow,7.901,12.3787
slow,7.951,2.4669
slow,8.001,0.0
fast,0.05,0.0
fast,0.104,0.0
fast,0.154,0.0
fast,0.204,0.2374
fast,0.254,0.206
fast,0.306,1.8902
fast,0.356,1.5885
fast,0.406,1.4595
fast,0.456,0.0
fast,0.506,0.0
fast,0.556,5.7624
fast,0.606,2.347
fast,0.657,3.5323
fast,0.707,6.1276
fast,0.757,1.1012
fast,0.807,-0.0
fast,0.857,-0.0
fast,0.909,12.418
fast,0.959,5.1346
fast,1.009,7.8218
fast,1.059,6.5806
fast,1.109,1.3424
fast,1.16,0.0
fast,1.21,10.761
fast,1.263,4.2102
fast,1.313,8.2445
fast,1.363,6.8621
fast,1.413,6.9892
fast,1.463,-0.0
fast,1.542,-0.0
fast,1.592,11.0635
fast,1.642,5.9249
fast,1.692,8.7078
fast,1.742,2.8665
fast,1.793,10.1297
fast,1.843,0.0
fast,1.893,0.0
fast,1.943,0.0
fast,1.993,20.6893
fast,2.043,3.2503
fast,2.094,11.2506
fast,2.144,6.3385
fast,2.194,7.8452
fast,2.244,1.556
fast,2.295,-0.0
fast,2.345,-0.0
fast,2.395,18.7454
fast,2.445,10.3395
fast,2.495,10.608
fast,2.545,7.0808
fast,2.596,7.0815
fast,2.646,0.0
fast,2.696,0.0
fast,2.746,0.0
fast,2.796,17.7627
fast,2.847,10.6635
fast,2.897,7.1571
fast,2.947,7.1983
fast,3.002,5.4229
fast,3.052,0.0
fast,3.102,0.0
fast,3.152,0.0
fast,3.202,25.5105
fast,3.253,7.3926
fast,3.303,11.2085
fast,3.353,3.7679
fast,3.404,3.7764
fast,3.455,-0.0
fast,3.505,-0.0
fast,3.556,19.0406
fast,3.642,11.5779
fast,3.692,11.712
fast,3.742,3.9222
fast,3.792,0.0
fast,3.842,0.0
fast,3.892,17.7661
fast,3.942,1.9679
fast,3.993,17.8611
fast,4.043,3.9876
fast,4.093,15.9815
fast,4.146,0.0
fast,4.196,0.0
fast,4.246,0.0
fast,4.296,21.9362
fast,4.346,7.908
fast,4.396,11.8184
fast,4.447,7.8388
fast,4.497,1.9466
fast,4.547,0.0
fast,4.597,0.0
fast,4.647,0.0
fast,4.697,29.0258
fast,4.747,11.3566
fast,4.797,11.275
fast,4.847,3.7393
fast,4.898,7.4494
fast,4.948,-0.0
fast,4.998,-0.0
fast,5.048,-0.0
fast,5.098,24.0113
fast,5.148,10.888
fast,5.202,10.8585
fast,5.252,7.225
fast,5.302,5.4068
fast,5.352,0.0
fast,5.403,0.0
fast,5.453,0.0
fast,5.504,26.97
fast,5.554,10.7617
fast,5.604,10.8137
fast,5.654,3.6172
fast,5.709,5.4336
fast,5.759,-0.0
fast,5.809,-0.0
fast,5.862,20.0109
fast,5.942,10.985
fast,5.992,11.0845
fast,6.042,5.5755
fast,6.092,0.0
fast,6.142,0.0
fast,6.192,18.6832
fast,6.245,1.866
fast,6.295,15.0963
fast,6.345,3.8107
fast,6.395,9.5834
fast,6.446,1.9237
fast,6.496,0.0
fast,6.546,0.0
fast,6.598,21.2979
fast,6.651,7.8108
fast,6.701,13.7645
fast,6.751,3.9499
fast,6.802,5.9406
fast,6.852,0.0
fast,6.902,15.8604
fast,6.952,5.9146
fast,7.002,11.8545
fast,7.053,7.9034
fast,7.103,9.8434
fast,7.153,1.9608
fast,7.203,-0.0
fast,7.253,-0.0
fast,7.303,19.6693
fast,7.357,13.4968
fast,7.407,11.5239
fast,7.457,7.6491
fast,7.507,11.4147
fast,7.559,1.8882
fast,7.642,-0.0
fast,7.692,15.147
fast,7.742,5.584
fast,7.792,11.1374
fast,7.842,3.6992
fast,7.892,9.2126
fast,7.946,1.8328
fast,7.996,-0.0
fast,8.046,-0.0
1 phase t dpitch_deg
2 slow 0.051 0.0953
3 slow 0.101 1.6885
4 slow 0.152 0.8717
5 slow 0.202 1.6238
6 slow 0.252 -0.0
7 slow 0.302 -0.0
8 slow 0.352 8.8412
9 slow 0.403 5.679
10 slow 0.453 5.3839
11 slow 0.503 12.9544
12 slow 0.553 7.5713
13 slow 0.603 4.0593
14 slow 0.653 0.0
15 slow 0.703 0.0
16 slow 0.753 23.7081
17 slow 0.804 14.501
18 slow 0.854 9.6502
19 slow 0.905 9.64
20 slow 0.955 2.4036
21 slow 1.006 -0.0
22 slow 1.056 -0.0
23 slow 1.106 24.1631
24 slow 1.156 9.7201
25 slow 1.206 14.5817
26 slow 1.26 7.2861
27 slow 1.31 -0.0
28 slow 1.36 -0.0
29 slow 1.41 21.8962
30 slow 1.461 12.1865
31 slow 1.511 14.6395
32 slow 1.561 4.8866
33 slow 1.611 4.8766
34 slow 1.661 0.0
35 slow 1.712 0.0
36 slow 1.762 24.4862
37 slow 1.812 12.272
38 slow 1.863 14.7764
39 slow 1.913 14.8237
40 slow 1.964 9.9081
41 slow 2.014 -0.0
42 slow 2.064 -0.0
43 slow 2.116 22.3434
44 slow 2.166 4.9684
45 slow 2.217 14.8905
46 slow 2.267 9.9066
47 slow 2.317 2.4656
48 slow 2.367 -0.0
49 slow 2.417 19.7888
50 slow 2.467 7.374
51 slow 2.517 9.8264
52 slow 2.569 14.7106
53 slow 2.619 12.2195
54 slow 2.671 0.0
55 slow 2.721 0.0
56 slow 2.771 0.0
57 slow 2.821 24.4044
58 slow 2.871 12.1781
59 slow 2.951 14.5889
60 slow 3.001 14.5786
61 slow 3.052 0.0
62 slow 3.102 0.0
63 slow 3.153 19.432
64 slow 3.203 14.5741
65 slow 3.253 4.8605
66 slow 3.303 19.4596
67 slow 3.355 2.4281
68 slow 3.405 0.0
69 slow 3.455 0.0
70 slow 3.506 31.6949
71 slow 3.556 9.7829
72 slow 3.606 14.7094
73 slow 3.656 9.8314
74 slow 3.706 7.3808
75 slow 3.756 -0.0
76 slow 3.807 -0.0
77 slow 3.857 19.7355
78 slow 3.907 14.8675
79 slow 3.958 4.9655
80 slow 4.008 17.3918
81 slow 4.06 2.4777
82 slow 4.11 -0.0
83 slow 4.16 -0.0
84 slow 4.211 32.264
85 slow 4.261 9.866
86 slow 4.311 19.6734
87 slow 4.361 7.3673
88 slow 4.412 7.3404
89 slow 4.462 0.0
90 slow 4.513 0.0
91 slow 4.563 19.5894
92 slow 4.613 12.1841
93 slow 4.663 4.8719
94 slow 4.713 17.0264
95 slow 4.765 2.4241
96 slow 4.815 0.0
97 slow 4.866 0.0
98 slow 4.918 26.7496
99 slow 4.968 17.0367
100 slow 5.019 14.6052
101 slow 5.069 7.3143
102 slow 5.119 2.4296
103 slow 5.17 0.0
104 slow 5.222 17.0719
105 slow 5.272 12.2148
106 slow 5.351 14.6765
107 slow 5.401 14.7096
108 slow 5.454 2.4482
109 slow 5.504 0.0
110 slow 5.555 0.0
111 slow 5.605 27.0453
112 slow 5.655 12.3214
113 slow 5.705 14.8308
114 slow 5.756 4.9518
115 slow 5.806 19.8347
116 slow 5.856 2.4736
117 slow 5.906 -0.0
118 slow 5.957 -0.0
119 slow 6.008 24.7941
120 slow 6.058 9.8906
121 slow 6.108 14.805
122 slow 6.159 4.9105
123 slow 6.209 -0.0
124 slow 6.26 -0.0
125 slow 6.31 24.6254
126 slow 6.36 7.3425
127 slow 6.41 14.6791
128 slow 6.461 9.7716
129 slow 6.511 7.3144
130 slow 6.561 0.0
131 slow 6.612 0.0
132 slow 6.662 21.9754
133 slow 6.713 12.1647
134 slow 6.763 9.7355
135 slow 6.813 19.4718
136 slow 6.864 2.4274
137 slow 6.914 0.0
138 slow 6.964 0.0
139 slow 7.014 29.2378
140 slow 7.064 9.7533
141 slow 7.114 14.6513
142 slow 7.165 4.8902
143 slow 7.215 2.4395
144 slow 7.266 0.0
145 slow 7.316 0.0
146 slow 7.368 26.9512
147 slow 7.418 14.7524
148 slow 7.468 9.8579
149 slow 7.518 12.3414
150 slow 7.569 2.4662
151 slow 7.621 -0.0
152 slow 7.671 -0.0
153 slow 7.722 19.8018
154 slow 7.772 9.92
155 slow 7.851 14.8814
156 slow 7.901 12.3787
157 slow 7.951 2.4669
158 slow 8.001 0.0
159 fast 0.05 0.0
160 fast 0.104 0.0
161 fast 0.154 0.0
162 fast 0.204 0.2374
163 fast 0.254 0.206
164 fast 0.306 1.8902
165 fast 0.356 1.5885
166 fast 0.406 1.4595
167 fast 0.456 0.0
168 fast 0.506 0.0
169 fast 0.556 5.7624
170 fast 0.606 2.347
171 fast 0.657 3.5323
172 fast 0.707 6.1276
173 fast 0.757 1.1012
174 fast 0.807 -0.0
175 fast 0.857 -0.0
176 fast 0.909 12.418
177 fast 0.959 5.1346
178 fast 1.009 7.8218
179 fast 1.059 6.5806
180 fast 1.109 1.3424
181 fast 1.16 0.0
182 fast 1.21 10.761
183 fast 1.263 4.2102
184 fast 1.313 8.2445
185 fast 1.363 6.8621
186 fast 1.413 6.9892
187 fast 1.463 -0.0
188 fast 1.542 -0.0
189 fast 1.592 11.0635
190 fast 1.642 5.9249
191 fast 1.692 8.7078
192 fast 1.742 2.8665
193 fast 1.793 10.1297
194 fast 1.843 0.0
195 fast 1.893 0.0
196 fast 1.943 0.0
197 fast 1.993 20.6893
198 fast 2.043 3.2503
199 fast 2.094 11.2506
200 fast 2.144 6.3385
201 fast 2.194 7.8452
202 fast 2.244 1.556
203 fast 2.295 -0.0
204 fast 2.345 -0.0
205 fast 2.395 18.7454
206 fast 2.445 10.3395
207 fast 2.495 10.608
208 fast 2.545 7.0808
209 fast 2.596 7.0815
210 fast 2.646 0.0
211 fast 2.696 0.0
212 fast 2.746 0.0
213 fast 2.796 17.7627
214 fast 2.847 10.6635
215 fast 2.897 7.1571
216 fast 2.947 7.1983
217 fast 3.002 5.4229
218 fast 3.052 0.0
219 fast 3.102 0.0
220 fast 3.152 0.0
221 fast 3.202 25.5105
222 fast 3.253 7.3926
223 fast 3.303 11.2085
224 fast 3.353 3.7679
225 fast 3.404 3.7764
226 fast 3.455 -0.0
227 fast 3.505 -0.0
228 fast 3.556 19.0406
229 fast 3.642 11.5779
230 fast 3.692 11.712
231 fast 3.742 3.9222
232 fast 3.792 0.0
233 fast 3.842 0.0
234 fast 3.892 17.7661
235 fast 3.942 1.9679
236 fast 3.993 17.8611
237 fast 4.043 3.9876
238 fast 4.093 15.9815
239 fast 4.146 0.0
240 fast 4.196 0.0
241 fast 4.246 0.0
242 fast 4.296 21.9362
243 fast 4.346 7.908
244 fast 4.396 11.8184
245 fast 4.447 7.8388
246 fast 4.497 1.9466
247 fast 4.547 0.0
248 fast 4.597 0.0
249 fast 4.647 0.0
250 fast 4.697 29.0258
251 fast 4.747 11.3566
252 fast 4.797 11.275
253 fast 4.847 3.7393
254 fast 4.898 7.4494
255 fast 4.948 -0.0
256 fast 4.998 -0.0
257 fast 5.048 -0.0
258 fast 5.098 24.0113
259 fast 5.148 10.888
260 fast 5.202 10.8585
261 fast 5.252 7.225
262 fast 5.302 5.4068
263 fast 5.352 0.0
264 fast 5.403 0.0
265 fast 5.453 0.0
266 fast 5.504 26.97
267 fast 5.554 10.7617
268 fast 5.604 10.8137
269 fast 5.654 3.6172
270 fast 5.709 5.4336
271 fast 5.759 -0.0
272 fast 5.809 -0.0
273 fast 5.862 20.0109
274 fast 5.942 10.985
275 fast 5.992 11.0845
276 fast 6.042 5.5755
277 fast 6.092 0.0
278 fast 6.142 0.0
279 fast 6.192 18.6832
280 fast 6.245 1.866
281 fast 6.295 15.0963
282 fast 6.345 3.8107
283 fast 6.395 9.5834
284 fast 6.446 1.9237
285 fast 6.496 0.0
286 fast 6.546 0.0
287 fast 6.598 21.2979
288 fast 6.651 7.8108
289 fast 6.701 13.7645
290 fast 6.751 3.9499
291 fast 6.802 5.9406
292 fast 6.852 0.0
293 fast 6.902 15.8604
294 fast 6.952 5.9146
295 fast 7.002 11.8545
296 fast 7.053 7.9034
297 fast 7.103 9.8434
298 fast 7.153 1.9608
299 fast 7.203 -0.0
300 fast 7.253 -0.0
301 fast 7.303 19.6693
302 fast 7.357 13.4968
303 fast 7.407 11.5239
304 fast 7.457 7.6491
305 fast 7.507 11.4147
306 fast 7.559 1.8882
307 fast 7.642 -0.0
308 fast 7.692 15.147
309 fast 7.742 5.584
310 fast 7.792 11.1374
311 fast 7.842 3.6992
312 fast 7.892 9.2126
313 fast 7.946 1.8328
314 fast 7.996 -0.0
315 fast 8.046 -0.0

View File

@@ -0,0 +1,353 @@
t,speed_units_per_wall_s,rate_deg_per_wall_s
0.05,0.0,0.0
0.101,4682.4,0.0
0.154,1865.9,8.21
0.205,1915.4,22.53
0.273,1722.2,32.72
0.323,2309.7,64.27
0.374,0.0,0.0
0.426,0.0,0.0
0.476,0.0,0.0
0.526,3781.4,166.09
0.576,1133.2,56.22
0.626,2228.8,125.61
0.676,735.8,46.29
0.726,2161.2,150.9
0.777,0.0,0.0
0.827,0.0,0.0
0.877,0.0,0.0
0.927,4795.2,363.58
0.978,1400.3,105.58
1.028,2080.9,159.73
1.078,688.0,53.58
1.129,1018.2,79.65
1.179,0.0,0.0
1.229,0.0,0.0
1.279,3169.4,272.63
1.332,1891.3,159.33
1.382,656.8,55.51
1.432,1958.3,167.87
1.485,311.4,26.7
1.535,0.0,0.0
1.585,0.0,0.0
1.637,2189.9,217.26
1.687,1470.3,152.38
1.737,1832.8,178.53
1.788,611.6,57.44
1.838,311.7,29.03
1.889,0.0,0.0
1.939,0.0,0.0
1.989,2568.6,290.03
2.039,1303.4,156.28
2.09,1571.3,188.96
2.173,987.0,114.66
2.223,1389.3,157.19
2.274,0.0,0.0
2.324,0.0,0.0
2.374,0.0,0.0
2.425,3014.5,437.25
2.476,851.8,137.78
2.526,1720.0,282.99
2.576,855.8,142.04
2.626,1272.7,213.71
2.676,420.4,71.25
2.726,0.0,0.0
2.776,0.0,0.0
2.827,2337.7,393.95
2.879,605.4,103.05
2.929,1229.4,216.06
2.979,798.9,145.37
3.029,1356.7,257.13
3.081,183.1,35.66
3.131,0.0,0.0
3.181,0.0,0.0
3.231,1858.0,372.22
3.281,541.0,112.82
3.332,1372.1,301.88
3.382,335.4,76.89
3.432,658.3,154.84
3.482,162.0,38.8
3.536,0.0,0.0
3.586,0.0,0.0
3.636,1591.8,390.72
3.686,311.3,78.69
3.736,1215.5,316.75
3.786,602.4,159.01
3.839,429.8,113.96
3.889,0.0,0.0
3.939,0.0,0.0
3.989,0.0,0.0
4.04,1835.6,469.81
4.09,311.3,78.92
4.14,1251.2,315.27
4.19,317.9,78.47
4.24,320.5,78.42
4.29,0.0,0.0
4.341,0.0,0.0
4.391,1352.5,313.43
4.441,850.5,192.03
4.492,1033.9,227.09
4.542,1073.0,227.87
4.592,551.1,113.43
4.642,0.0,0.0
4.692,0.0,0.0
4.743,1735.5,337.79
4.793,779.7,147.59
4.843,1186.4,220.17
4.893,808.4,146.17
4.943,1018.0,181.41
4.993,204.4,36.08
5.043,0.0,0.0
5.093,0.0,0.0
5.144,0.0,0.0
5.194,3438.2,575.96
5.244,853.2,142.26
5.294,1685.8,285.28
5.344,1250.1,215.19
5.394,825.0,144.01
5.445,202.2,35.56
5.495,0.0,0.0
5.545,0.0,0.0
5.596,2042.5,361.76
5.674,762.2,138.77
5.725,1171.7,219.95
5.775,384.3,73.55
5.826,0.0,0.0
5.877,0.0,0.0
5.927,0.0,0.0
5.977,1528.0,296.2
6.028,1281.9,256.26
6.078,365.6,75.03
6.128,1073.3,226.52
6.178,176.0,37.88
6.231,0.0,0.0
6.281,0.0,0.0
6.332,1720.1,372.76
6.382,518.3,114.37
6.432,1009.5,230.82
6.484,480.0,112.96
6.534,807.9,194.56
6.584,159.3,38.98
6.675,0.0,0.0
6.725,1449.1,352.93
6.775,477.0,117.26
6.826,927.2,232.38
6.877,306.8,77.6
6.927,928.5,236.59
6.977,154.5,39.37
7.027,0.0,0.0
7.077,0.0,0.0
7.131,1353.2,333.31
7.181,963.9,234.69
7.231,1304.5,311.86
7.281,332.6,77.62
7.331,506.1,116.36
7.381,0.0,0.0
7.432,0.0,0.0
7.482,0.0,0.0
7.534,2615.1,556.47
7.584,1101.8,225.72
7.634,1108.3,222.17
7.686,929.5,182.14
7.736,576.3,111.11
7.786,0.0,0.0
7.836,0.0,0.0
7.886,0.0,0.0
7.936,2840.4,515.81
7.987,807.7,144.56
8.037,1214.6,217.75
8.087,809.7,145.24
8.137,606.3,108.89
8.187,0.0,0.0
8.237,0.0,0.0
8.288,0.0,0.0
8.339,2628.6,463.46
8.389,811.4,144.9
8.439,1198.5,218.35
8.489,392.4,72.53
8.539,784.5,146.63
8.59,0.0,0.0
8.64,0.0,0.0
8.69,0.0,0.0
8.741,2111.3,400.11
8.791,946.6,185.46
8.841,1110.6,224.19
8.891,364.4,75.15
8.941,720.3,150.86
8.991,0.0,0.0
9.042,0.0,0.0
9.092,1792.7,378.77
9.142,529.6,113.67
9.193,1022.7,226.47
9.273,624.6,143.36
9.325,644.6,151.82
9.375,0.0,0.0
9.425,0.0,0.0
9.476,1289.1,307.07
9.526,1122.5,273.41
9.577,311.7,76.8
9.627,789.7,196.14
9.677,156.4,38.99
9.727,0.0,0.0
9.778,0.0,0.0
9.828,2131.2,510.02
9.878,653.9,155.64
9.928,983.1,233.48
9.978,330.0,77.72
10.028,496.6,116.32
10.079,0.0,0.0
10.129,0.0,0.0
10.179,0.0,0.0
10.23,2470.2,540.62
10.282,672.7,144.51
10.333,1067.2,227.85
10.383,1076.8,227.17
10.433,724.0,150.8
10.483,0.0,0.0
10.533,0.0,0.0
10.583,0.0,0.0
10.633,2272.0,451.3
10.683,759.7,148.67
10.734,762.5,148.52
10.784,756.3,146.57
10.834,770.1,148.16
10.885,0.0,0.0
10.935,0.0,0.0
10.985,0.0,0.0
11.035,2168.6,406.08
11.085,984.6,183.61
11.136,1178.3,220.07
11.186,590.5,110.24
11.236,393.0,73.44
11.286,0.0,0.0
11.336,0.0,0.0
11.386,2007.6,367.45
11.436,597.4,109.35
11.486,1180.4,219.81
11.537,1160.8,220.86
11.587,575.3,111.02
11.639,368.0,71.56
11.689,0.0,0.0
11.739,0.0,0.0
11.789,2275.4,445.88
11.879,415.2,83.5
11.929,1448.9,300.69
11.979,356.5,75.48
12.031,0.0,0.0
12.081,0.0,0.0
12.131,1612.8,341.73
12.184,504.1,108.0
12.234,1042.0,228.85
12.284,683.1,153.38
12.334,674.3,153.83
12.386,0.0,0.0
12.473,0.0,0.0
12.524,1701.7,386.01
12.574,672.1,154.19
12.625,974.9,227.26
12.675,330.4,77.54
12.725,986.1,232.99
12.775,163.8,38.73
12.825,0.0,0.0
12.878,0.0,0.0
12.928,0.0,0.0
12.978,2405.7,542.85
13.029,1022.4,230.5
13.079,681.6,153.81
13.129,1354.2,305.37
13.179,343.9,76.77
13.229,692.5,153.38
13.28,0.0,0.0
13.33,0.0,0.0
13.38,0.0,0.0
13.43,2362.5,496.01
13.483,693.6,143.63
13.533,1466.7,300.97
13.583,555.0,112.79
13.633,184.3,37.4
13.683,0.0,0.0
13.735,0.0,0.0
13.785,1917.4,375.17
13.838,542.8,105.29
13.888,1144.2,222.78
13.938,1513.8,297.05
13.988,568.4,111.69
14.038,378.0,74.42
14.088,0.0,0.0
14.139,0.0,0.0
14.189,1933.6,372.51
14.239,955.5,184.91
14.289,756.9,148.61
14.374,662.1,132.25
14.424,554.7,112.16
14.474,0.0,0.0
14.524,0.0,0.0
14.577,1603.7,323.84
14.627,1276.0,263.01
14.677,542.3,113.23
14.727,714.5,150.87
14.777,354.7,75.59
14.83,0.0,0.0
14.88,0.0,0.0
14.93,1795.9,379.83
14.98,355.3,75.74
15.031,1386.0,301.97
15.083,330.9,73.04
15.133,688.3,153.24
15.183,170.9,38.24
15.234,0.0,0.0
15.284,0.0,0.0
15.334,0.0,0.0
15.384,2304.1,499.06
15.435,1027.8,225.69
15.485,1024.9,230.47
15.536,1000.9,229.21
15.586,664.6,153.64
15.636,665.2,154.54
15.687,0.0,0.0
15.737,0.0,0.0
15.788,0.0,0.0
15.84,2131.8,478.6
15.89,856.1,192.06
15.941,1025.4,230.39
15.991,342.4,76.74
16.043,663.2,148.34
16.093,0.0,0.0
16.143,0.0,0.0
16.193,0.0,0.0
16.246,2555.4,545.64
16.296,895.5,189.56
16.373,694.2,146.49
16.424,1443.5,302.27
16.476,0.0,0.0
16.526,0.0,0.0
16.577,0.0,0.0
16.627,2074.2,414.87
16.677,751.3,149.12
16.727,1123.6,223.97
16.777,374.5,74.66
16.827,1122.8,223.93
16.88,0.0,0.0
16.93,0.0,0.0
16.98,0.0,0.0
17.03,2296.0,447.62
17.08,379.9,74.23
17.13,1503.9,297.32
17.18,563.4,111.98
17.233,538.0,107.34
17.283,0.0,0.0
17.333,0.0,0.0
17.383,1890.3,373.65
17.433,1119.5,223.93
17.485,361.3,72.88
17.535,1651.2,337.72
17.585,365.1,75.24
17.635,547.2,113.12
17.686,0.0,0.0
17.736,0.0,0.0
17.786,0.0,0.0
17.839,2490.6,503.11
17.892,1033.4,213.33
17.942,1073.2,226.83
17.995,670.1,143.94
18.045,1223.2,266.8
1 t speed_units_per_wall_s rate_deg_per_wall_s
2 0.05 0.0 0.0
3 0.101 4682.4 0.0
4 0.154 1865.9 8.21
5 0.205 1915.4 22.53
6 0.273 1722.2 32.72
7 0.323 2309.7 64.27
8 0.374 0.0 0.0
9 0.426 0.0 0.0
10 0.476 0.0 0.0
11 0.526 3781.4 166.09
12 0.576 1133.2 56.22
13 0.626 2228.8 125.61
14 0.676 735.8 46.29
15 0.726 2161.2 150.9
16 0.777 0.0 0.0
17 0.827 0.0 0.0
18 0.877 0.0 0.0
19 0.927 4795.2 363.58
20 0.978 1400.3 105.58
21 1.028 2080.9 159.73
22 1.078 688.0 53.58
23 1.129 1018.2 79.65
24 1.179 0.0 0.0
25 1.229 0.0 0.0
26 1.279 3169.4 272.63
27 1.332 1891.3 159.33
28 1.382 656.8 55.51
29 1.432 1958.3 167.87
30 1.485 311.4 26.7
31 1.535 0.0 0.0
32 1.585 0.0 0.0
33 1.637 2189.9 217.26
34 1.687 1470.3 152.38
35 1.737 1832.8 178.53
36 1.788 611.6 57.44
37 1.838 311.7 29.03
38 1.889 0.0 0.0
39 1.939 0.0 0.0
40 1.989 2568.6 290.03
41 2.039 1303.4 156.28
42 2.09 1571.3 188.96
43 2.173 987.0 114.66
44 2.223 1389.3 157.19
45 2.274 0.0 0.0
46 2.324 0.0 0.0
47 2.374 0.0 0.0
48 2.425 3014.5 437.25
49 2.476 851.8 137.78
50 2.526 1720.0 282.99
51 2.576 855.8 142.04
52 2.626 1272.7 213.71
53 2.676 420.4 71.25
54 2.726 0.0 0.0
55 2.776 0.0 0.0
56 2.827 2337.7 393.95
57 2.879 605.4 103.05
58 2.929 1229.4 216.06
59 2.979 798.9 145.37
60 3.029 1356.7 257.13
61 3.081 183.1 35.66
62 3.131 0.0 0.0
63 3.181 0.0 0.0
64 3.231 1858.0 372.22
65 3.281 541.0 112.82
66 3.332 1372.1 301.88
67 3.382 335.4 76.89
68 3.432 658.3 154.84
69 3.482 162.0 38.8
70 3.536 0.0 0.0
71 3.586 0.0 0.0
72 3.636 1591.8 390.72
73 3.686 311.3 78.69
74 3.736 1215.5 316.75
75 3.786 602.4 159.01
76 3.839 429.8 113.96
77 3.889 0.0 0.0
78 3.939 0.0 0.0
79 3.989 0.0 0.0
80 4.04 1835.6 469.81
81 4.09 311.3 78.92
82 4.14 1251.2 315.27
83 4.19 317.9 78.47
84 4.24 320.5 78.42
85 4.29 0.0 0.0
86 4.341 0.0 0.0
87 4.391 1352.5 313.43
88 4.441 850.5 192.03
89 4.492 1033.9 227.09
90 4.542 1073.0 227.87
91 4.592 551.1 113.43
92 4.642 0.0 0.0
93 4.692 0.0 0.0
94 4.743 1735.5 337.79
95 4.793 779.7 147.59
96 4.843 1186.4 220.17
97 4.893 808.4 146.17
98 4.943 1018.0 181.41
99 4.993 204.4 36.08
100 5.043 0.0 0.0
101 5.093 0.0 0.0
102 5.144 0.0 0.0
103 5.194 3438.2 575.96
104 5.244 853.2 142.26
105 5.294 1685.8 285.28
106 5.344 1250.1 215.19
107 5.394 825.0 144.01
108 5.445 202.2 35.56
109 5.495 0.0 0.0
110 5.545 0.0 0.0
111 5.596 2042.5 361.76
112 5.674 762.2 138.77
113 5.725 1171.7 219.95
114 5.775 384.3 73.55
115 5.826 0.0 0.0
116 5.877 0.0 0.0
117 5.927 0.0 0.0
118 5.977 1528.0 296.2
119 6.028 1281.9 256.26
120 6.078 365.6 75.03
121 6.128 1073.3 226.52
122 6.178 176.0 37.88
123 6.231 0.0 0.0
124 6.281 0.0 0.0
125 6.332 1720.1 372.76
126 6.382 518.3 114.37
127 6.432 1009.5 230.82
128 6.484 480.0 112.96
129 6.534 807.9 194.56
130 6.584 159.3 38.98
131 6.675 0.0 0.0
132 6.725 1449.1 352.93
133 6.775 477.0 117.26
134 6.826 927.2 232.38
135 6.877 306.8 77.6
136 6.927 928.5 236.59
137 6.977 154.5 39.37
138 7.027 0.0 0.0
139 7.077 0.0 0.0
140 7.131 1353.2 333.31
141 7.181 963.9 234.69
142 7.231 1304.5 311.86
143 7.281 332.6 77.62
144 7.331 506.1 116.36
145 7.381 0.0 0.0
146 7.432 0.0 0.0
147 7.482 0.0 0.0
148 7.534 2615.1 556.47
149 7.584 1101.8 225.72
150 7.634 1108.3 222.17
151 7.686 929.5 182.14
152 7.736 576.3 111.11
153 7.786 0.0 0.0
154 7.836 0.0 0.0
155 7.886 0.0 0.0
156 7.936 2840.4 515.81
157 7.987 807.7 144.56
158 8.037 1214.6 217.75
159 8.087 809.7 145.24
160 8.137 606.3 108.89
161 8.187 0.0 0.0
162 8.237 0.0 0.0
163 8.288 0.0 0.0
164 8.339 2628.6 463.46
165 8.389 811.4 144.9
166 8.439 1198.5 218.35
167 8.489 392.4 72.53
168 8.539 784.5 146.63
169 8.59 0.0 0.0
170 8.64 0.0 0.0
171 8.69 0.0 0.0
172 8.741 2111.3 400.11
173 8.791 946.6 185.46
174 8.841 1110.6 224.19
175 8.891 364.4 75.15
176 8.941 720.3 150.86
177 8.991 0.0 0.0
178 9.042 0.0 0.0
179 9.092 1792.7 378.77
180 9.142 529.6 113.67
181 9.193 1022.7 226.47
182 9.273 624.6 143.36
183 9.325 644.6 151.82
184 9.375 0.0 0.0
185 9.425 0.0 0.0
186 9.476 1289.1 307.07
187 9.526 1122.5 273.41
188 9.577 311.7 76.8
189 9.627 789.7 196.14
190 9.677 156.4 38.99
191 9.727 0.0 0.0
192 9.778 0.0 0.0
193 9.828 2131.2 510.02
194 9.878 653.9 155.64
195 9.928 983.1 233.48
196 9.978 330.0 77.72
197 10.028 496.6 116.32
198 10.079 0.0 0.0
199 10.129 0.0 0.0
200 10.179 0.0 0.0
201 10.23 2470.2 540.62
202 10.282 672.7 144.51
203 10.333 1067.2 227.85
204 10.383 1076.8 227.17
205 10.433 724.0 150.8
206 10.483 0.0 0.0
207 10.533 0.0 0.0
208 10.583 0.0 0.0
209 10.633 2272.0 451.3
210 10.683 759.7 148.67
211 10.734 762.5 148.52
212 10.784 756.3 146.57
213 10.834 770.1 148.16
214 10.885 0.0 0.0
215 10.935 0.0 0.0
216 10.985 0.0 0.0
217 11.035 2168.6 406.08
218 11.085 984.6 183.61
219 11.136 1178.3 220.07
220 11.186 590.5 110.24
221 11.236 393.0 73.44
222 11.286 0.0 0.0
223 11.336 0.0 0.0
224 11.386 2007.6 367.45
225 11.436 597.4 109.35
226 11.486 1180.4 219.81
227 11.537 1160.8 220.86
228 11.587 575.3 111.02
229 11.639 368.0 71.56
230 11.689 0.0 0.0
231 11.739 0.0 0.0
232 11.789 2275.4 445.88
233 11.879 415.2 83.5
234 11.929 1448.9 300.69
235 11.979 356.5 75.48
236 12.031 0.0 0.0
237 12.081 0.0 0.0
238 12.131 1612.8 341.73
239 12.184 504.1 108.0
240 12.234 1042.0 228.85
241 12.284 683.1 153.38
242 12.334 674.3 153.83
243 12.386 0.0 0.0
244 12.473 0.0 0.0
245 12.524 1701.7 386.01
246 12.574 672.1 154.19
247 12.625 974.9 227.26
248 12.675 330.4 77.54
249 12.725 986.1 232.99
250 12.775 163.8 38.73
251 12.825 0.0 0.0
252 12.878 0.0 0.0
253 12.928 0.0 0.0
254 12.978 2405.7 542.85
255 13.029 1022.4 230.5
256 13.079 681.6 153.81
257 13.129 1354.2 305.37
258 13.179 343.9 76.77
259 13.229 692.5 153.38
260 13.28 0.0 0.0
261 13.33 0.0 0.0
262 13.38 0.0 0.0
263 13.43 2362.5 496.01
264 13.483 693.6 143.63
265 13.533 1466.7 300.97
266 13.583 555.0 112.79
267 13.633 184.3 37.4
268 13.683 0.0 0.0
269 13.735 0.0 0.0
270 13.785 1917.4 375.17
271 13.838 542.8 105.29
272 13.888 1144.2 222.78
273 13.938 1513.8 297.05
274 13.988 568.4 111.69
275 14.038 378.0 74.42
276 14.088 0.0 0.0
277 14.139 0.0 0.0
278 14.189 1933.6 372.51
279 14.239 955.5 184.91
280 14.289 756.9 148.61
281 14.374 662.1 132.25
282 14.424 554.7 112.16
283 14.474 0.0 0.0
284 14.524 0.0 0.0
285 14.577 1603.7 323.84
286 14.627 1276.0 263.01
287 14.677 542.3 113.23
288 14.727 714.5 150.87
289 14.777 354.7 75.59
290 14.83 0.0 0.0
291 14.88 0.0 0.0
292 14.93 1795.9 379.83
293 14.98 355.3 75.74
294 15.031 1386.0 301.97
295 15.083 330.9 73.04
296 15.133 688.3 153.24
297 15.183 170.9 38.24
298 15.234 0.0 0.0
299 15.284 0.0 0.0
300 15.334 0.0 0.0
301 15.384 2304.1 499.06
302 15.435 1027.8 225.69
303 15.485 1024.9 230.47
304 15.536 1000.9 229.21
305 15.586 664.6 153.64
306 15.636 665.2 154.54
307 15.687 0.0 0.0
308 15.737 0.0 0.0
309 15.788 0.0 0.0
310 15.84 2131.8 478.6
311 15.89 856.1 192.06
312 15.941 1025.4 230.39
313 15.991 342.4 76.74
314 16.043 663.2 148.34
315 16.093 0.0 0.0
316 16.143 0.0 0.0
317 16.193 0.0 0.0
318 16.246 2555.4 545.64
319 16.296 895.5 189.56
320 16.373 694.2 146.49
321 16.424 1443.5 302.27
322 16.476 0.0 0.0
323 16.526 0.0 0.0
324 16.577 0.0 0.0
325 16.627 2074.2 414.87
326 16.677 751.3 149.12
327 16.727 1123.6 223.97
328 16.777 374.5 74.66
329 16.827 1122.8 223.93
330 16.88 0.0 0.0
331 16.93 0.0 0.0
332 16.98 0.0 0.0
333 17.03 2296.0 447.62
334 17.08 379.9 74.23
335 17.13 1503.9 297.32
336 17.18 563.4 111.98
337 17.233 538.0 107.34
338 17.283 0.0 0.0
339 17.333 0.0 0.0
340 17.383 1890.3 373.65
341 17.433 1119.5 223.93
342 17.485 361.3 72.88
343 17.535 1651.2 337.72
344 17.585 365.1 75.24
345 17.635 547.2 113.12
346 17.686 0.0 0.0
347 17.736 0.0 0.0
348 17.786 0.0 0.0
349 17.839 2490.6 503.11
350 17.892 1033.4 213.33
351 17.942 1073.2 226.83
352 17.995 670.1 143.94
353 18.045 1223.2 266.8

View File

@@ -0,0 +1,40 @@
t,speed_units_per_wall_s,rate_deg_per_wall_s
0.52,766.4,15.56
1.06,875.3,81.57
1.56,319.7,79.47
2.08,589.5,124.0
2.6,833.9,118.23
3.1,846.4,144.01
3.62,682.9,147.83
4.12,442.3,114.32
4.62,782.3,183.76
5.13,869.9,160.12
5.66,691.9,117.79
6.18,770.1,146.5
6.68,659.7,149.99
7.19,546.7,135.85
7.7,760.5,163.7
8.2,645.7,121.72
8.72,884.3,159.2
9.26,546.3,107.3
9.78,633.0,139.66
10.28,716.1,169.56
10.8,607.5,129.02
11.32,866.0,156.23
11.82,677.8,119.63
12.32,537.0,103.57
12.82,821.2,187.87
13.34,545.6,133.44
13.86,608.8,128.22
14.38,778.1,141.08
14.88,543.6,93.59
15.38,935.1,176.36
15.9,708.2,159.77
16.4,439.7,105.71
16.9,847.5,185.58
17.42,584.5,112.34
17.94,874.4,158.62
18.44,733.0,149.31
18.96,527.8,128.4
19.46,642.2,156.88
19.98,737.8,149.45
1 t speed_units_per_wall_s rate_deg_per_wall_s
2 0.52 766.4 15.56
3 1.06 875.3 81.57
4 1.56 319.7 79.47
5 2.08 589.5 124.0
6 2.6 833.9 118.23
7 3.1 846.4 144.01
8 3.62 682.9 147.83
9 4.12 442.3 114.32
10 4.62 782.3 183.76
11 5.13 869.9 160.12
12 5.66 691.9 117.79
13 6.18 770.1 146.5
14 6.68 659.7 149.99
15 7.19 546.7 135.85
16 7.7 760.5 163.7
17 8.2 645.7 121.72
18 8.72 884.3 159.2
19 9.26 546.3 107.3
20 9.78 633.0 139.66
21 10.28 716.1 169.56
22 10.8 607.5 129.02
23 11.32 866.0 156.23
24 11.82 677.8 119.63
25 12.32 537.0 103.57
26 12.82 821.2 187.87
27 13.34 545.6 133.44
28 13.86 608.8 128.22
29 14.38 778.1 141.08
30 14.88 543.6 93.59
31 15.38 935.1 176.36
32 15.9 708.2 159.77
33 16.4 439.7 105.71
34 16.9 847.5 185.58
35 17.42 584.5 112.34
36 17.94 874.4 158.62
37 18.44 733.0 149.31
38 18.96 527.8 128.4
39 19.46 642.2 156.88
40 19.98 737.8 149.45

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -0,0 +1,313 @@
phase,t,droll_deg
slow,0.05,0.0
slow,0.101,-0.0909
slow,0.155,-1.4615
slow,0.206,-7.3152
slow,0.256,-2.7442
slow,0.307,-8.4132
slow,0.357,0.0
slow,0.407,0.0
slow,0.457,0.0
slow,0.507,-38.7821
slow,0.557,-13.0283
slow,0.609,-19.4952
slow,0.659,-12.9643
slow,0.711,-3.2265
slow,0.764,-0.0
slow,0.814,-0.0
slow,0.865,-38.9513
slow,0.915,-13.0541
slow,0.965,-13.0281
slow,1.015,-25.9821
slow,1.066,-12.9527
slow,1.117,0.0
slow,1.167,0.0
slow,1.217,-25.9507
slow,1.268,-9.7894
slow,1.355,-26.0652
slow,1.405,-19.4799
slow,1.456,-9.7073
slow,1.506,0.0
slow,1.557,0.0
slow,1.607,-29.1521
slow,1.661,-9.7987
slow,1.711,-19.5758
slow,1.761,-6.5117
slow,1.811,-16.2414
slow,1.861,-3.2347
slow,1.911,0.0
slow,1.961,0.0
slow,2.012,-29.2256
slow,2.062,-13.0531
slow,2.112,-19.532
slow,2.162,-12.9885
slow,2.212,-9.7139
slow,2.263,-0.0
slow,2.313,-0.0
slow,2.363,-0.0
slow,2.413,-42.2278
slow,2.464,-19.6123
slow,2.514,-13.0415
slow,2.564,-13.0156
slow,2.614,-3.2392
slow,2.664,0.0
slow,2.714,0.0
slow,2.766,-35.7889
slow,2.816,-13.0315
slow,2.867,-6.5058
slow,2.917,-25.9631
slow,2.967,-3.2272
slow,3.017,0.0
slow,3.067,0.0
slow,3.117,-25.9064
slow,3.168,-9.7872
slow,3.218,-22.8201
slow,3.268,-9.762
slow,3.318,-19.4592
slow,3.368,-3.2268
slow,3.456,0.0
slow,3.511,-29.1619
slow,3.561,-6.5294
slow,3.612,-19.5509
slow,3.662,-6.5035
slow,3.713,-22.7155
slow,3.763,-0.0
slow,3.813,-0.0
slow,3.863,-0.0
slow,3.913,-35.7343
slow,3.963,-13.0477
slow,4.013,-22.7862
slow,4.064,-6.4918
slow,4.116,-9.7153
slow,4.167,-0.0
slow,4.217,-0.0
slow,4.267,-32.469
slow,4.317,-19.576
slow,4.368,-6.5118
slow,4.418,-19.4983
slow,4.469,-3.2333
slow,4.519,0.0
slow,4.57,0.0
slow,4.62,-29.208
slow,4.671,-9.8048
slow,4.721,-13.0645
slow,4.773,-6.5222
slow,4.823,-26.0281
slow,4.873,-3.2352
slow,4.923,0.0
slow,4.974,0.0
slow,5.024,-29.2291
slow,5.074,-13.0522
slow,5.125,-13.0262
slow,5.175,-16.259
slow,5.225,-12.9694
slow,5.275,-0.0
slow,5.325,-0.0
slow,5.376,-0.0
slow,5.426,-38.9864
slow,5.476,-9.8137
slow,5.527,-19.5613
slow,5.577,-13.0078
slow,5.632,-6.4941
slow,5.682,-0.0
slow,5.755,-0.0
slow,5.805,-39.0388
slow,5.855,-13.0591
slow,5.905,-26.0433
slow,5.956,-6.4938
slow,6.006,-12.9688
slow,6.056,0.0
slow,6.106,0.0
slow,6.156,-29.1717
slow,6.206,-16.3415
slow,6.257,-13.0519
slow,6.309,-19.5302
slow,6.359,-12.9873
slow,6.412,-6.4839
slow,6.463,0.0
slow,6.513,0.0
slow,6.563,-32.4511
slow,6.613,-22.8937
slow,6.665,-13.0382
slow,6.716,-22.7698
slow,6.766,-12.9684
slow,6.817,-6.4745
slow,6.867,-0.0
slow,6.918,-0.0
slow,6.968,-32.4432
slow,7.018,-16.2949
slow,7.069,-13.0149
slow,7.119,-22.7295
slow,7.17,-16.1918
slow,7.221,-3.2315
slow,7.271,0.0
slow,7.321,0.0
slow,7.371,-38.9877
slow,7.421,-9.8138
slow,7.474,-22.8806
slow,7.555,-19.5384
slow,7.605,-16.2268
slow,7.655,0.0
slow,7.705,0.0
slow,7.756,0.0
slow,7.806,-39.0224
slow,7.856,-13.064
slow,7.907,-19.5481
slow,7.957,-6.5026
slow,8.007,-9.7314
fast,0.05,-0.0596
fast,0.1,-0.3593
fast,0.15,-2.5234
fast,0.202,-4.9514
fast,0.252,-3.1468
fast,0.302,-0.0
fast,0.352,-0.0
fast,0.403,-0.0
fast,0.469,-20.1363
fast,0.519,-8.0449
fast,0.569,-8.6891
fast,0.619,-10.948
fast,0.67,-2.1745
fast,0.72,-0.0
fast,0.77,-0.0
fast,0.821,-23.8257
fast,0.872,-4.363
fast,0.922,-15.4009
fast,0.972,-4.4215
fast,1.023,-17.711
fast,1.073,0.0
fast,1.123,0.0
fast,1.173,0.0
fast,1.223,-26.3637
fast,1.275,-4.4318
fast,1.325,-15.5068
fast,1.375,-4.4229
fast,1.426,-11.048
fast,1.476,0.0
fast,1.527,0.0
fast,1.577,0.0
fast,1.627,-24.1538
fast,1.677,-8.8455
fast,1.727,-15.5045
fast,1.778,-8.8441
fast,1.83,-8.8553
fast,1.88,-0.0
fast,1.93,-0.0
fast,1.98,-0.0
fast,2.034,-28.7329
fast,2.084,-11.0611
fast,2.134,-13.2881
fast,2.184,-8.8429
fast,2.236,-2.2041
fast,2.286,-0.0
fast,2.336,-0.0
fast,2.387,-21.9271
fast,2.437,-6.6459
fast,2.488,-11.0875
fast,2.569,-13.2631
fast,2.619,-8.8432
fast,2.669,-0.0
fast,2.719,-0.0
fast,2.769,-17.7007
fast,2.82,-11.1022
fast,2.87,-4.4224
fast,2.92,-13.265
fast,2.97,-4.3887
fast,3.02,0.0
fast,3.07,0.0
fast,3.12,0.0
fast,3.176,-19.5844
fast,3.226,-17.5675
fast,3.277,-4.4215
fast,3.327,-19.9265
fast,3.377,-2.2046
fast,3.427,0.0
fast,3.478,0.0
fast,3.528,-19.7653
fast,3.578,-4.4075
fast,3.628,-15.5094
fast,3.678,-8.8442
fast,3.729,-11.0476
fast,3.78,0.0
fast,3.83,0.0
fast,3.88,0.0
fast,3.93,-26.3791
fast,3.981,-8.8468
fast,4.031,-13.2966
fast,4.081,-4.4213
fast,4.133,-4.3888
fast,4.183,0.0
fast,4.233,0.0
fast,4.283,-19.5663
fast,4.333,-13.2564
fast,4.383,-4.4215
fast,4.433,-17.6873
fast,4.488,-2.2041
fast,4.569,-0.0
fast,4.619,-0.0
fast,4.67,-17.544
fast,4.72,-8.8326
fast,4.77,-4.4305
fast,4.82,-17.6862
fast,4.872,-2.2041
fast,4.922,-0.0
fast,4.972,-0.0
fast,5.023,-19.7606
fast,5.073,-0.0
fast,5.124,-17.6727
fast,5.174,-4.4215
fast,5.224,-11.0475
fast,5.274,0.0
fast,5.325,0.0
fast,5.375,0.0
fast,5.425,-19.7606
fast,5.475,-8.8292
fast,5.529,-19.9262
fast,5.579,-4.4214
fast,5.629,-4.4216
fast,5.68,0.0
fast,5.73,0.0
fast,5.78,-19.937
fast,5.87,-15.529
fast,5.92,-13.2634
fast,5.971,-6.6258
fast,6.021,0.0
fast,6.071,0.0
fast,6.121,0.0
fast,6.174,-19.7607
fast,6.224,-17.6728
fast,6.274,-4.4215
fast,6.324,-13.2651
fast,6.375,-4.3887
fast,6.425,0.0
fast,6.475,0.0
fast,6.526,-23.9369
fast,6.576,-4.383
fast,6.626,-13.2366
fast,6.676,-8.8431
fast,6.727,-8.8552
fast,6.777,-0.0
fast,6.827,-0.0
fast,6.877,-0.0
fast,6.93,-22.0832
fast,6.98,-8.8599
fast,7.03,-19.929
fast,7.08,-4.4214
fast,7.132,-8.8553
fast,7.182,-0.0
fast,7.232,-0.0
fast,7.285,-19.8506
fast,7.336,-8.8927
fast,7.386,-4.424
fast,7.436,-17.687
fast,7.486,-8.7844
fast,7.537,-0.0
fast,7.589,-0.0
fast,7.639,-15.4299
fast,7.689,-0.0
fast,7.739,-13.3118
fast,7.79,-8.8378
fast,7.84,-15.4965
fast,7.89,0.0
fast,7.969,0.0
fast,8.019,0.0
1 phase t droll_deg
2 slow 0.05 0.0
3 slow 0.101 -0.0909
4 slow 0.155 -1.4615
5 slow 0.206 -7.3152
6 slow 0.256 -2.7442
7 slow 0.307 -8.4132
8 slow 0.357 0.0
9 slow 0.407 0.0
10 slow 0.457 0.0
11 slow 0.507 -38.7821
12 slow 0.557 -13.0283
13 slow 0.609 -19.4952
14 slow 0.659 -12.9643
15 slow 0.711 -3.2265
16 slow 0.764 -0.0
17 slow 0.814 -0.0
18 slow 0.865 -38.9513
19 slow 0.915 -13.0541
20 slow 0.965 -13.0281
21 slow 1.015 -25.9821
22 slow 1.066 -12.9527
23 slow 1.117 0.0
24 slow 1.167 0.0
25 slow 1.217 -25.9507
26 slow 1.268 -9.7894
27 slow 1.355 -26.0652
28 slow 1.405 -19.4799
29 slow 1.456 -9.7073
30 slow 1.506 0.0
31 slow 1.557 0.0
32 slow 1.607 -29.1521
33 slow 1.661 -9.7987
34 slow 1.711 -19.5758
35 slow 1.761 -6.5117
36 slow 1.811 -16.2414
37 slow 1.861 -3.2347
38 slow 1.911 0.0
39 slow 1.961 0.0
40 slow 2.012 -29.2256
41 slow 2.062 -13.0531
42 slow 2.112 -19.532
43 slow 2.162 -12.9885
44 slow 2.212 -9.7139
45 slow 2.263 -0.0
46 slow 2.313 -0.0
47 slow 2.363 -0.0
48 slow 2.413 -42.2278
49 slow 2.464 -19.6123
50 slow 2.514 -13.0415
51 slow 2.564 -13.0156
52 slow 2.614 -3.2392
53 slow 2.664 0.0
54 slow 2.714 0.0
55 slow 2.766 -35.7889
56 slow 2.816 -13.0315
57 slow 2.867 -6.5058
58 slow 2.917 -25.9631
59 slow 2.967 -3.2272
60 slow 3.017 0.0
61 slow 3.067 0.0
62 slow 3.117 -25.9064
63 slow 3.168 -9.7872
64 slow 3.218 -22.8201
65 slow 3.268 -9.762
66 slow 3.318 -19.4592
67 slow 3.368 -3.2268
68 slow 3.456 0.0
69 slow 3.511 -29.1619
70 slow 3.561 -6.5294
71 slow 3.612 -19.5509
72 slow 3.662 -6.5035
73 slow 3.713 -22.7155
74 slow 3.763 -0.0
75 slow 3.813 -0.0
76 slow 3.863 -0.0
77 slow 3.913 -35.7343
78 slow 3.963 -13.0477
79 slow 4.013 -22.7862
80 slow 4.064 -6.4918
81 slow 4.116 -9.7153
82 slow 4.167 -0.0
83 slow 4.217 -0.0
84 slow 4.267 -32.469
85 slow 4.317 -19.576
86 slow 4.368 -6.5118
87 slow 4.418 -19.4983
88 slow 4.469 -3.2333
89 slow 4.519 0.0
90 slow 4.57 0.0
91 slow 4.62 -29.208
92 slow 4.671 -9.8048
93 slow 4.721 -13.0645
94 slow 4.773 -6.5222
95 slow 4.823 -26.0281
96 slow 4.873 -3.2352
97 slow 4.923 0.0
98 slow 4.974 0.0
99 slow 5.024 -29.2291
100 slow 5.074 -13.0522
101 slow 5.125 -13.0262
102 slow 5.175 -16.259
103 slow 5.225 -12.9694
104 slow 5.275 -0.0
105 slow 5.325 -0.0
106 slow 5.376 -0.0
107 slow 5.426 -38.9864
108 slow 5.476 -9.8137
109 slow 5.527 -19.5613
110 slow 5.577 -13.0078
111 slow 5.632 -6.4941
112 slow 5.682 -0.0
113 slow 5.755 -0.0
114 slow 5.805 -39.0388
115 slow 5.855 -13.0591
116 slow 5.905 -26.0433
117 slow 5.956 -6.4938
118 slow 6.006 -12.9688
119 slow 6.056 0.0
120 slow 6.106 0.0
121 slow 6.156 -29.1717
122 slow 6.206 -16.3415
123 slow 6.257 -13.0519
124 slow 6.309 -19.5302
125 slow 6.359 -12.9873
126 slow 6.412 -6.4839
127 slow 6.463 0.0
128 slow 6.513 0.0
129 slow 6.563 -32.4511
130 slow 6.613 -22.8937
131 slow 6.665 -13.0382
132 slow 6.716 -22.7698
133 slow 6.766 -12.9684
134 slow 6.817 -6.4745
135 slow 6.867 -0.0
136 slow 6.918 -0.0
137 slow 6.968 -32.4432
138 slow 7.018 -16.2949
139 slow 7.069 -13.0149
140 slow 7.119 -22.7295
141 slow 7.17 -16.1918
142 slow 7.221 -3.2315
143 slow 7.271 0.0
144 slow 7.321 0.0
145 slow 7.371 -38.9877
146 slow 7.421 -9.8138
147 slow 7.474 -22.8806
148 slow 7.555 -19.5384
149 slow 7.605 -16.2268
150 slow 7.655 0.0
151 slow 7.705 0.0
152 slow 7.756 0.0
153 slow 7.806 -39.0224
154 slow 7.856 -13.064
155 slow 7.907 -19.5481
156 slow 7.957 -6.5026
157 slow 8.007 -9.7314
158 fast 0.05 -0.0596
159 fast 0.1 -0.3593
160 fast 0.15 -2.5234
161 fast 0.202 -4.9514
162 fast 0.252 -3.1468
163 fast 0.302 -0.0
164 fast 0.352 -0.0
165 fast 0.403 -0.0
166 fast 0.469 -20.1363
167 fast 0.519 -8.0449
168 fast 0.569 -8.6891
169 fast 0.619 -10.948
170 fast 0.67 -2.1745
171 fast 0.72 -0.0
172 fast 0.77 -0.0
173 fast 0.821 -23.8257
174 fast 0.872 -4.363
175 fast 0.922 -15.4009
176 fast 0.972 -4.4215
177 fast 1.023 -17.711
178 fast 1.073 0.0
179 fast 1.123 0.0
180 fast 1.173 0.0
181 fast 1.223 -26.3637
182 fast 1.275 -4.4318
183 fast 1.325 -15.5068
184 fast 1.375 -4.4229
185 fast 1.426 -11.048
186 fast 1.476 0.0
187 fast 1.527 0.0
188 fast 1.577 0.0
189 fast 1.627 -24.1538
190 fast 1.677 -8.8455
191 fast 1.727 -15.5045
192 fast 1.778 -8.8441
193 fast 1.83 -8.8553
194 fast 1.88 -0.0
195 fast 1.93 -0.0
196 fast 1.98 -0.0
197 fast 2.034 -28.7329
198 fast 2.084 -11.0611
199 fast 2.134 -13.2881
200 fast 2.184 -8.8429
201 fast 2.236 -2.2041
202 fast 2.286 -0.0
203 fast 2.336 -0.0
204 fast 2.387 -21.9271
205 fast 2.437 -6.6459
206 fast 2.488 -11.0875
207 fast 2.569 -13.2631
208 fast 2.619 -8.8432
209 fast 2.669 -0.0
210 fast 2.719 -0.0
211 fast 2.769 -17.7007
212 fast 2.82 -11.1022
213 fast 2.87 -4.4224
214 fast 2.92 -13.265
215 fast 2.97 -4.3887
216 fast 3.02 0.0
217 fast 3.07 0.0
218 fast 3.12 0.0
219 fast 3.176 -19.5844
220 fast 3.226 -17.5675
221 fast 3.277 -4.4215
222 fast 3.327 -19.9265
223 fast 3.377 -2.2046
224 fast 3.427 0.0
225 fast 3.478 0.0
226 fast 3.528 -19.7653
227 fast 3.578 -4.4075
228 fast 3.628 -15.5094
229 fast 3.678 -8.8442
230 fast 3.729 -11.0476
231 fast 3.78 0.0
232 fast 3.83 0.0
233 fast 3.88 0.0
234 fast 3.93 -26.3791
235 fast 3.981 -8.8468
236 fast 4.031 -13.2966
237 fast 4.081 -4.4213
238 fast 4.133 -4.3888
239 fast 4.183 0.0
240 fast 4.233 0.0
241 fast 4.283 -19.5663
242 fast 4.333 -13.2564
243 fast 4.383 -4.4215
244 fast 4.433 -17.6873
245 fast 4.488 -2.2041
246 fast 4.569 -0.0
247 fast 4.619 -0.0
248 fast 4.67 -17.544
249 fast 4.72 -8.8326
250 fast 4.77 -4.4305
251 fast 4.82 -17.6862
252 fast 4.872 -2.2041
253 fast 4.922 -0.0
254 fast 4.972 -0.0
255 fast 5.023 -19.7606
256 fast 5.073 -0.0
257 fast 5.124 -17.6727
258 fast 5.174 -4.4215
259 fast 5.224 -11.0475
260 fast 5.274 0.0
261 fast 5.325 0.0
262 fast 5.375 0.0
263 fast 5.425 -19.7606
264 fast 5.475 -8.8292
265 fast 5.529 -19.9262
266 fast 5.579 -4.4214
267 fast 5.629 -4.4216
268 fast 5.68 0.0
269 fast 5.73 0.0
270 fast 5.78 -19.937
271 fast 5.87 -15.529
272 fast 5.92 -13.2634
273 fast 5.971 -6.6258
274 fast 6.021 0.0
275 fast 6.071 0.0
276 fast 6.121 0.0
277 fast 6.174 -19.7607
278 fast 6.224 -17.6728
279 fast 6.274 -4.4215
280 fast 6.324 -13.2651
281 fast 6.375 -4.3887
282 fast 6.425 0.0
283 fast 6.475 0.0
284 fast 6.526 -23.9369
285 fast 6.576 -4.383
286 fast 6.626 -13.2366
287 fast 6.676 -8.8431
288 fast 6.727 -8.8552
289 fast 6.777 -0.0
290 fast 6.827 -0.0
291 fast 6.877 -0.0
292 fast 6.93 -22.0832
293 fast 6.98 -8.8599
294 fast 7.03 -19.929
295 fast 7.08 -4.4214
296 fast 7.132 -8.8553
297 fast 7.182 -0.0
298 fast 7.232 -0.0
299 fast 7.285 -19.8506
300 fast 7.336 -8.8927
301 fast 7.386 -4.424
302 fast 7.436 -17.687
303 fast 7.486 -8.7844
304 fast 7.537 -0.0
305 fast 7.589 -0.0
306 fast 7.639 -15.4299
307 fast 7.689 -0.0
308 fast 7.739 -13.3118
309 fast 7.79 -8.8378
310 fast 7.84 -15.4965
311 fast 7.89 0.0
312 fast 7.969 0.0
313 fast 8.019 0.0

View File

@@ -0,0 +1,7 @@
throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s
min,0,103.5,99.3,165.34
min,1,123.8,91.9,149.72
cruise,0,434.7,352.0,149.9
cruise,1,423.1,382.5,150.07
max,0,1230.6,1258.2,102.76
max,1,1624.8,1319.1,105.38
1 throttle rep settled_speed burst_speed rate_deg_per_wall_s
2 min 0 103.5 99.3 165.34
3 min 1 123.8 91.9 149.72
4 cruise 0 434.7 352.0 149.9
5 cruise 1 423.1 382.5 150.07
6 max 0 1230.6 1258.2 102.76
7 max 1 1624.8 1319.1 105.38

View File

@@ -0,0 +1,314 @@
phase,t,fx,fy,fz
slow,0.046,5.36441810913306e-07,0.8829469811387421,-0.4694727132621171
slow,0.124,-0.0037028938908542333,0.8829408973863202,-0.4694695520472787
slow,0.175,-0.029433192564468726,0.8825644180942943,-0.4692693630414654
slow,0.225,-0.047907995026344505,0.8819330671344229,-0.46893377902154315
slow,0.276,-0.05494452988794276,0.8816131314630001,-0.4687636772056853
slow,0.327,-0.05494452988794276,0.8816131314630001,-0.4687636772056853
slow,0.377,-0.05494452988794276,0.8816131314630001,-0.4687636772056853
slow,0.427,-0.05494452988794276,0.8816131314630001,-0.4687636772056853
slow,0.478,-0.2805405845010285,0.8474894135274412,-0.4506203217862406
slow,0.529,-0.3464401476183601,0.828267481843762,-0.440400048408674
slow,0.579,-0.4933270963841563,0.7680254218881261,-0.4083691066997395
slow,0.629,-0.5646325672888053,0.7287328660233411,-0.3874770624621025
slow,0.679,-0.663984471662157,0.6602195443081346,-0.35104810881855686
slow,0.729,-0.6795143538879752,0.6477839998044589,-0.3444359627819725
slow,0.782,-0.6795143538879752,0.6477839998044589,-0.3444359627819725
slow,0.832,-0.6795143538879752,0.6477839998044589,-0.3444359627819725
slow,0.883,-0.6795143538879752,0.6477839998044589,-0.3444359627819725
slow,0.933,-0.8636404059341753,0.44509990979031433,-0.23666710701427646
slow,0.983,-0.9034235025038042,0.37856180077666735,-0.20128819666459757
slow,1.033,-0.9208475303349151,0.34428010688112226,-0.18306019196431236
slow,1.084,-0.9823258963987413,0.1652676638242847,-0.08787737227792251
slow,1.134,-0.9946318488171882,0.09136350259329508,-0.048581845502070904
slow,1.188,-0.9965908416220451,0.07284426607901787,-0.03873509125422061
slow,1.238,-0.9965908416220451,0.07284426607901787,-0.03873509125422061
slow,1.288,-0.9965908416220451,0.07284426607901787,-0.03873509125422061
slow,1.338,-0.9965908416220451,0.07284426607901787,-0.03873509125422061
slow,1.388,-0.9887775514835899,-0.13190930729666128,0.0701347868794932
slow,1.438,-0.9556714469692192,-0.2599717478297875,0.13822726134190855
slow,1.489,-0.8922483691415248,-0.39869133958378805,0.21198599837058513
slow,1.539,-0.8508838444950022,-0.46386065972493185,0.24663732794724316
slow,1.589,-0.7907927164969744,-0.5404386826976731,0.28735502393266027
slow,1.64,-0.7777418936805442,-0.5550070379438635,0.29510122779646286
slow,1.691,-0.7777418936805442,-0.5550070379438635,0.29510122779646286
slow,1.741,-0.7777418936805442,-0.5550070379438635,0.29510122779646286
slow,1.791,-0.5952358692207049,-0.7094937017300517,0.377243882917219
slow,1.841,-0.5604049203743158,-0.7312739567343891,0.38882480042081646
slow,1.892,-0.45017479352935263,-0.7884196750580088,0.4192100562393852
slow,1.942,-0.3527042657551637,-0.8262047790273792,0.4393009947979067
slow,1.993,-0.2515210843607131,-0.8545622769363128,0.454379201724106
slow,2.048,-0.21020554253366847,-0.8632198721332542,0.4589826600672126
slow,2.098,-0.21020554253366847,-0.8632198721332542,0.4589826600672126
slow,2.148,-0.21020554253366847,-0.8632198721332542,0.4589826600672126
slow,2.199,-0.21020554253366847,-0.8632198721332542,0.4589826600672126
slow,2.249,0.06423144170165734,-0.8811238583231025,0.46850300766455694
slow,2.3,0.12787323617667282,-0.8756985100693347,0.46561846498184756
slow,2.35,0.2327336093496518,-0.858701653919306,0.45658135817763307
slow,2.423,0.3547279040834424,-0.8255283263615021,0.43894315855170307
slow,2.479,0.5260315144840211,-0.7509151987562808,0.3992708479797423
slow,2.529,0.5961056688939317,-0.7089229256787852,0.3769433869423229
slow,2.581,0.5961056688939317,-0.7089229256787852,0.3769433869423229
slow,2.631,0.5961056688939317,-0.7089229256787852,0.3769433869423229
slow,2.681,0.5961056688939317,-0.7089229256787852,0.3769433869423229
slow,2.732,0.5961056688939317,-0.7089229256787852,0.3769433869423229
slow,2.782,0.8295924682130262,-0.4930097696572142,0.26214061819328877
slow,2.832,0.8741827941510458,-0.4287555674072037,0.22797610801923318
slow,2.882,0.9439064628362973,-0.29155959525346875,0.15502771310802138
slow,2.932,0.9571066736003423,-0.25582037216180104,0.1360248232371042
slow,2.982,0.9861968747582776,-0.14619466320861924,0.07773573609560003
slow,3.032,0.9966905224322332,-0.07177339798264935,0.03816519141555759
slow,3.083,0.9992422961997571,-0.03436404433766335,0.01827418786692905
slow,3.133,0.9992422961997571,-0.03436404433766335,0.01827418786692905
slow,3.184,0.9992422961997571,-0.03436404433766335,0.01827418786692905
slow,3.234,0.9992422961997571,-0.03436404433766335,0.01827418786692905
slow,3.286,0.9667885938062846,0.22566239526859874,-0.11998457504073406
slow,3.336,0.9415539672577656,0.2974325173987048,-0.15814557956209666
slow,3.386,0.8910494227865149,0.4007762840154738,-0.21309457131181636
slow,3.437,0.8493271610881868,0.46607942161808097,-0.24781716280765573
slow,3.487,0.761860256786668,0.5719223062697806,-0.30409509157499987
slow,3.537,0.748009652602088,0.586002088637891,-0.3115816293142661
slow,3.587,0.748009652602088,0.586002088637891,-0.3115816293142661
slow,3.637,0.748009652602088,0.586002088637891,-0.3115816293142661
slow,3.688,0.591663947524308,0.7118191730405439,-0.3784801686902885
slow,3.738,0.539041368473937,0.7436887413829951,-0.3954256681273002
slow,3.789,0.40803721926756004,0.8061006144181252,-0.4286110441030633
slow,3.839,0.36886970856393964,0.8206831516383724,-0.4363648733810532
slow,3.89,0.24776263895916018,0.8554178600934551,-0.4548339910001527
slow,3.94,0.16475926423798679,0.8708809062626716,-0.46305597065027154
slow,3.992,0.14387633165971442,0.8737609544059406,-0.46458733919873835
slow,4.042,0.14387633165971442,0.8737609544059406,-0.46458733919873835
slow,4.093,0.14387633165971442,0.8737609544059406,-0.46458733919873835
slow,4.143,0.14387633165971442,0.8737609544059406,-0.46458733919873835
slow,4.196,-0.1733023236078747,0.869586949506304,-0.46236872934967393
slow,4.247,-0.21515127447977428,0.86226908085857,-0.4584778743680502
slow,4.297,-0.3579950095311995,0.8244282743035451,-0.4383578374794213
slow,4.347,-0.3974270950667179,0.8102218773848151,-0.43080414751236507
slow,4.397,-0.5648254471144367,0.7286167551161777,-0.3874142982079373
slow,4.448,-0.6161812577464959,0.6954125799901635,-0.36975938283344584
slow,4.498,-0.6161812577464959,0.6954125799901635,-0.36975938283344584
slow,4.55,-0.6161812577464959,0.6954125799901635,-0.36975938283344584
slow,4.6,-0.6161812577464959,0.6954125799901635,-0.36975938283344584
slow,4.65,-0.7949436150360499,0.5356686009745564,-0.2848223987740045
slow,4.706,-0.8320602692300713,0.4897569720337153,-0.26041086135787
slow,4.756,-0.9052591628184888,0.37512792417883484,-0.1994614966213956
slow,4.824,-0.9519766029552919,0.2703318015873179,-0.14374026741403262
slow,4.874,-0.983175920401433,0.1612793283684674,-0.08575597812287565
slow,4.925,-0.992798606527993,0.10577208861815067,-0.05624226298282666
slow,4.975,-0.992798606527993,0.10577208861815067,-0.05624226298282666
slow,5.025,-0.992798606527993,0.10577208861815067,-0.05624226298282666
slow,5.075,-0.992798606527993,0.10577208861815067,-0.05624226298282666
slow,5.125,-0.9909352442124001,-0.11861635420392577,0.06306744241746298
slow,5.177,-0.971089850817662,-0.21077290020723444,0.11206822108502636
slow,5.227,-0.9473137584186095,-0.2828150426309014,0.15037385002881865
slow,5.278,-0.8692337732689488,-0.43653100062660777,0.23210629655517379
slow,5.329,-0.8474958640779253,-0.4686708632974702,0.24919546999657635
slow,5.379,-0.7866667561433955,-0.5451126777938068,0.2898406170420097
slow,5.43,-0.7734621510586307,-0.5596500718853581,0.29757032432430053
slow,5.48,-0.7734621510586307,-0.5596500718853581,0.29757032432430053
slow,5.531,-0.7734621510586307,-0.5596500718853581,0.29757032432430053
slow,5.581,-0.6062043205372735,-0.7022162337138214,0.3733747217886052
slow,5.632,-0.5541510145645213,-0.734979908569316,0.39079558218658444
slow,5.682,-0.42418330732008847,-0.7995763915406578,0.42514246539461586
slow,5.732,-0.3852348981801229,-0.8148002884614528,0.4332373058120499
slow,5.783,-0.243946035449459,-0.8562723940695657,0.45528883024171124
slow,5.833,-0.16070912377840446,-0.8714704720337134,0.4633700399332204
slow,5.883,-0.0975990723650993,-0.8787317852366855,0.4672310677686361
slow,5.934,-0.0975990723650993,-0.8787317852366855,0.4672310677686361
slow,5.984,-0.0975990723650993,-0.8787317852366855,0.4672310677686361
slow,6.034,-0.0975990723650993,-0.8787317852366855,0.4672310677686361
slow,6.085,0.1775602464395945,-0.8689168079517865,0.46201292161928603
slow,6.135,0.2607328887465965,-0.8524065164179079,0.45323447738906825
slow,6.185,0.36194842063416144,-0.8230812569371999,0.4376420743931222
slow,6.235,0.4398997578876258,-0.7929274597606337,0.4216091158501638
slow,6.285,0.5682409772730201,-0.7265432946265349,0.38631209246025844
slow,6.336,0.6359981125758746,-0.6813614183433645,0.36228858440895406
slow,6.386,0.7140739082487315,-0.6181244196428086,0.32866495919039396
slow,6.436,0.7140739082487315,-0.6181244196428086,0.32866495919039396
slow,6.487,0.7140739082487315,-0.6181244196428086,0.32866495919039396
slow,6.539,0.7140739082487315,-0.6181244196428086,0.32866495919039396
slow,6.589,0.7140739082487315,-0.6181244196428086,0.32866495919039396
slow,6.639,0.9065680252911018,-0.37265567940138744,0.1981468145837393
slow,6.691,0.9392685544638382,-0.3030117042642596,0.16111638549285018
slow,6.741,0.965104771584189,-0.2312113232646016,0.12293943167130032
slow,6.792,0.9973294370055789,-0.06448454199620153,0.034289035064803325
slow,6.842,0.9999278161305012,0.010609508165090861,-0.005639225565755396
slow,6.892,0.9930188796365541,0.1041492959551682,-0.055375345031933365
slow,6.943,0.9930188796365541,0.1041492959551682,-0.055375345031933365
slow,6.993,0.9930188796365541,0.1041492959551682,-0.055375345031933365
slow,7.043,0.9930188796365541,0.1041492959551682,-0.055375345031933365
slow,7.093,0.9386688966024551,0.30445842560916364,-0.16188196201775823
slow,7.144,0.9311374675345754,0.32198368527382176,-0.17120024232104936
slow,7.223,0.8558381442539132,0.4566995610987047,-0.24283035587065402
slow,7.273,0.7831408512856074,0.5490564200014606,-0.29193741572952536
slow,7.324,0.7560444192777931,0.5779075266990185,-0.30727793064834297
slow,7.374,0.6509683314574719,0.6702500769547218,-0.3563777010163019
slow,7.425,0.6509683314574719,0.6702500769547218,-0.3563777010163019
slow,7.475,0.6509683314574719,0.6702500769547218,-0.3563777010163019
slow,7.525,0.6509683314574719,0.6702500769547218,-0.3563777010163019
slow,7.576,0.4196485397802218,0.8014397844240222,-0.42613304847512623
slow,7.626,0.3806332297410603,0.8164846784795214,-0.43413259981839836
slow,7.676,0.23917773281080557,0.8573206036655484,-0.4558458014044032
slow,7.727,0.13481190457623585,0.8748870865403633,-0.46518634566100775
slow,7.777,0.007896542705130004,0.8829196865934407,-0.4694576356169389
slow,7.828,-0.055613100836188686,0.8815807152851224,-0.46874580046412767
slow,7.878,-0.055613100836188686,0.8815807152851224,-0.46874580046412767
slow,7.934,-0.055613100836188686,0.8815807152851224,-0.46874580046412767
slow,7.984,-0.055613100836188686,0.8815807152851224,-0.46874580046412767
fast,0.044,-0.468564632951404,0.7800211366930896,-0.4147459596658374
fast,0.094,-0.468564632951404,0.7800211366930896,-0.4147459596658374
fast,0.147,-0.6532919035228096,0.6684843531374839,-0.3554410758507007
fast,0.197,-0.6740804102157376,0.6521956099667656,-0.346780170862553
fast,0.253,-0.7406633321896331,0.593230936921181,-0.31542809613185546
fast,0.303,-0.8067414530300762,0.521736964591286,-0.27741443318975423
fast,0.354,-0.8364927453434133,0.4838350279608412,-0.25726164250811173
fast,0.404,-0.8572846408021899,0.4545782991663938,-0.24170563620165925
fast,0.454,-0.8572846408021899,0.4545782991663938,-0.24170563620165925
fast,0.505,-0.8572846408021899,0.4545782991663938,-0.24170563620165925
fast,0.555,-0.8572846408021899,0.4545782991663938,-0.24170563620165925
fast,0.605,-0.9267948315707897,0.33160599382699485,-0.17632017760790408
fast,0.656,-0.9368960066831657,0.30868477952212847,-0.16413281071288688
fast,0.706,-0.9657135503823218,0.22922111730247924,-0.12188116339522719
fast,0.756,-0.9779586730613649,0.18435730681493703,-0.09802661479413445
fast,0.807,-0.9943971478546243,0.09333425614443461,-0.04962891262715385
fast,0.857,-0.9977694134078435,0.058940059911640835,-0.031341139184466044
fast,0.907,-0.9977694134078435,0.058940059911640835,-0.031341139184466044
fast,0.957,-0.9977694134078435,0.058940059911640835,-0.031341139184466044
fast,1.007,-0.9977694134078435,0.058940059911640835,-0.031341139184466044
fast,1.057,-0.9960740012037427,-0.0781633335984552,0.041558120827859354
fast,1.108,-0.9915869770276278,-0.11429142880777064,0.06076788864432451
fast,1.158,-0.9830488997220782,-0.16188358013218335,0.08607303433014432
fast,1.208,-0.9654882699749504,-0.22996141302144335,0.12227080216453375
fast,1.258,-0.9421438137516855,-0.2959725872352957,0.15736982498139357
fast,1.308,-0.9183006336633192,-0.3495452280775043,0.1858549965478247
fast,1.359,-0.9183006336633192,-0.3495452280775043,0.1858549965478247
fast,1.409,-0.9183006336633192,-0.3495452280775043,0.1858549965478247
fast,1.459,-0.9183006336633192,-0.3495452280775043,0.1858549965478247
fast,1.509,-0.852788869570223,-0.4611250554621998,0.24518325220561926
fast,1.561,-0.8457836830587759,-0.47107600317640114,0.25047427153877355
fast,1.611,-0.7990683904573951,-0.5308639797392242,0.28226431298919213
fast,1.661,-0.7576916738262323,-0.5762231745752734,0.30638240892191654
fast,1.712,-0.7039218688816332,-0.6271380249228601,0.3334544949555229
fast,1.763,-0.6851467559103143,-0.6431437685849701,0.34196493357637503
fast,1.813,-0.6560905528050488,-0.6663450550269401,0.3543013606537654
fast,1.863,-0.6560905528050488,-0.6663450550269401,0.3543013606537654
fast,1.913,-0.6560905528050488,-0.6663450550269401,0.3543013606537654
fast,1.964,-0.6560905528050488,-0.6663450550269401,0.3543013606537654
fast,2.014,-0.5163993954213524,-0.7561103236758572,0.40203089786638574
fast,2.064,-0.4546015920025061,-0.7864369179669822,0.4181559118407643
fast,2.142,-0.3807299710798536,-0.8164494585717856,0.4341140065920148
fast,2.193,-0.2820279695634007,-0.8471052048351421,0.45041424969150085
fast,2.244,-0.23157561174253732,-0.8589461445197458,0.4567102548232671
fast,2.294,-0.1805137900613878,-0.8684427065467883,0.46175971786564723
fast,2.344,-0.1805137900613878,-0.8684427065467883,0.46175971786564723
fast,2.395,-0.1805137900613878,-0.8684427065467883,0.46175971786564723
fast,2.445,-0.1805137900613878,-0.8684427065467883,0.46175971786564723
fast,2.496,-0.024830674288472077,-0.8826749954107264,0.46932748703975774
fast,2.55,0.016627909997720097,-0.8828251361547534,0.4694073833914936
fast,2.6,0.111726663405662,-0.8774189869035709,0.46653303645652927
fast,2.651,0.13780214292537876,-0.874523580821017,0.4649936300565413
fast,2.701,0.2656103428096974,-0.8512318793390828,0.45260958163672177
fast,2.751,0.31554354506824306,-0.8378380863926662,0.4454880606207544
fast,2.801,0.34018885207653954,-0.8302853882293821,0.4414722177166199
fast,2.851,0.34018885207653954,-0.8302853882293821,0.4414722177166199
fast,2.901,0.34018885207653954,-0.8302853882293821,0.4414722177166199
fast,2.952,0.34018885207653954,-0.8302853882293821,0.4414722177166199
fast,3.003,0.4940800181283668,-0.7676483628437457,0.4081677678474743
fast,3.053,0.5530560650928253,-0.7356216755844609,0.39113902806336104
fast,3.103,0.5974397882275826,-0.7080469991770619,0.3764772853691691
fast,3.154,0.6185047351113914,-0.6938025932733614,0.3689035838968582
fast,3.206,0.6881042365676635,-0.6406762784960411,0.34065593461746135
fast,3.256,0.7514898864756772,-0.5825188958027513,0.3097332506488721
fast,3.306,0.7931845845529396,-0.5376975001965116,0.2859014045261112
fast,3.357,0.8009798300561773,-0.5286119824350076,0.28107060299737585
fast,3.407,0.8009798300561773,-0.5286119824350076,0.28107060299737585
fast,3.458,0.8009798300561773,-0.5286119824350076,0.28107060299737585
fast,3.508,0.8009798300561773,-0.5286119824350076,0.28107060299737585
fast,3.566,0.9079615585910537,-0.37000119040604634,0.19673567856139682
fast,3.618,0.9289873638512246,-0.3267879327407989,0.1737588122074601
fast,3.668,0.951171266364975,-0.27253270223930237,0.14491082862158244
fast,3.718,0.97558673482976,-0.1939070387891802,0.10310471925289769
fast,3.768,0.9897808982513759,-0.1259042544228822,0.06694693551550773
fast,3.819,0.9931410372296491,-0.10323546390051833,0.05489370786949623
fast,3.869,0.9931410372296491,-0.10323546390051833,0.05489370786949623
fast,3.943,0.9931410372296491,-0.10323546390051833,0.05489370786949623
fast,3.993,0.9999376400959273,0.009861411882843249,-0.005241037594265275
fast,4.045,0.998654861608302,0.04578216735335978,-0.024340512289846263
fast,4.095,0.992907801560002,0.10497188750958387,-0.05581218893717397
fast,4.145,0.9853453521738103,0.15060635068109599,-0.08007661383945096
fast,4.195,0.9656808627762835,0.22933012769607466,-0.12193508026222302
fast,4.245,0.9584524128068335,0.25186373612958607,-0.13391650685261142
fast,4.295,0.9422656297525576,0.295670151705548,-0.15720891952250804
fast,4.346,0.9422656297525576,0.295670151705548,-0.15720891952250804
fast,4.396,0.9422656297525576,0.295670151705548,-0.15720891952250804
fast,4.446,0.9422656297525576,0.295670151705548,-0.15720891952250804
fast,4.496,0.872076362854367,0.43208850957625344,-0.22974406900477443
fast,4.547,0.8580093568921251,0.45351256088827063,-0.24113544036935863
fast,4.598,0.8132252153454199,0.5138310229603692,-0.2732076663819958
fast,4.648,0.7815435931024417,0.5508278891839419,-0.29287923889836937
fast,4.699,0.7210023605142103,0.6118235759463857,-0.32531140165864775
fast,4.752,0.7119253398407421,0.6200549034607505,-0.32968807559104
fast,4.802,0.7119253398407421,0.6200549034607505,-0.32968807559104
fast,4.852,0.7119253398407421,0.6200549034607505,-0.32968807559104
fast,4.902,0.7119253398407421,0.6200549034607505,-0.32968807559104
fast,4.952,0.5717137662325098,0.7244172953808695,-0.38517911632551577
fast,5.003,0.5489901411529138,0.7379931951737293,-0.392397590199244
fast,5.053,0.4917898196021908,0.7687948374153668,-0.40877533107946273
fast,5.104,0.42168183785580987,0.8006073549916201,-0.42569036958318496
fast,5.154,0.37379846714844805,0.8189426822227043,-0.43543953563193305
fast,5.204,0.33726198026341786,0.8312163487333023,-0.44196576594491466
fast,5.255,0.33726198026341786,0.8312163487333023,-0.44196576594491466
fast,5.306,0.33726198026341786,0.8312163487333023,-0.44196576594491466
fast,5.357,0.33726198026341786,0.8312163487333023,-0.44196576594491466
fast,5.407,0.33726198026341786,0.8312163487333023,-0.44196576594491466
fast,5.459,0.13407634499561424,0.8749752241040766,-0.46523315758513817
fast,5.509,0.1067327874409669,0.8779037141803553,-0.4667902962931195
fast,5.561,0.02627950826709677,0.8826423614597066,-0.46930997134311153
fast,5.611,-0.05263072139273397,0.8817235042090142,-0.4688215751125975
fast,5.662,-0.10470500798344481,0.8780938562969806,-0.46689189416468185
fast,5.712,-0.14352498907655858,0.8738056992414621,-0.46461185680491773
fast,5.762,-0.14352498907655858,0.8738056992414621,-0.46461185680491773
fast,5.812,-0.14352498907655858,0.8738056992414621,-0.46461185680491773
fast,5.862,-0.14352498907655858,0.8738056992414621,-0.46461185680491773
fast,5.912,-0.295103523640452,0.843625197837987,-0.4485648625425387
fast,5.962,-0.33420756849144506,0.8321770526698412,-0.44247785726832983
fast,6.013,-0.4219355057458717,0.8005024328118661,-0.42563632839932636
fast,6.063,-0.44551813189673,0.790478394286142,-0.42030643858743166
fast,6.113,-0.5364964099008817,0.7451210147911475,-0.396189696332547
fast,6.163,-0.5798139907491607,0.719379824283596,-0.38250281638863076
fast,6.213,-0.6213904831858549,0.6917895911437915,-0.3678328818786537
fast,6.265,-0.6213904831858549,0.6917895911437915,-0.3678328818786537
fast,6.316,-0.6213904831858549,0.6917895911437915,-0.3678328818786537
fast,6.366,-0.6213904831858549,0.6917895911437915,-0.3678328818786537
fast,6.416,-0.6213904831858549,0.6917895911437915,-0.3678328818786537
fast,6.467,-0.7697685939313547,0.5636049336495432,-0.2996761427989206
fast,6.517,-0.8188294015799512,0.5068436537072459,-0.26949568049397077
fast,6.567,-0.8407379772940358,0.4780642012631092,-0.2541933771879171
fast,6.618,-0.8928806068283204,0.39758464497224594,-0.21140168408076437
fast,6.668,-0.904333371419307,0.3768648333400775,-0.20038475672801448
fast,6.719,-0.9150935727512862,0.35604033442654803,-0.18931200007056712
fast,6.769,-0.9150935727512862,0.35604033442654803,-0.18931200007056712
fast,6.819,-0.9150935727512862,0.35604033442654803,-0.18931200007056712
fast,6.87,-0.9150935727512862,0.35604033442654803,-0.18931200007056712
fast,6.92,-0.9695072843499856,0.21637647177545588,-0.11505150174735601
fast,6.97,-0.9840519374844526,0.15705915122674283,-0.08351171983039263
fast,7.021,-0.9950416541582717,0.08781629148940584,-0.04669481169271156
fast,7.071,-0.9994288190771032,0.029837554381306492,-0.015866819047602072
fast,7.122,-0.9990051683116948,-0.03937536594069818,0.020934522768823672
fast,7.172,-0.9983402523657028,-0.05085064211870806,0.027036136974427062
fast,7.222,-0.9983402523657028,-0.05085064211870806,0.027036136974427062
fast,7.272,-0.9983402523657028,-0.05085064211870806,0.027036136974427062
fast,7.322,-0.9983402523657028,-0.05085064211870806,0.027036136974427062
fast,7.372,-0.9773662273888087,-0.18679204232103552,0.09931762424315102
fast,7.423,-0.9642049478456077,-0.23412130178924356,0.12448306952577433
fast,7.473,-0.9484068324824643,-0.27994440727138714,0.14884760306451283
fast,7.545,-0.9099733991029075,-0.36612944116866886,0.194673175436727
fast,7.595,-0.8747228862138969,-0.42789759461639953,0.22751597934019752
fast,7.646,-0.8618665613775525,-0.44777421714659554,0.23808460857011965
fast,7.696,-0.8618665613775525,-0.44777421714659554,0.23808460857011965
fast,7.746,-0.8618665613775525,-0.44777421714659554,0.23808460857011965
fast,7.796,-0.8618665613775525,-0.44777421714659554,0.23808460857011965
fast,7.847,-0.7556758579959296,-0.5782831810950133,0.3074777392019586
fast,7.897,-0.7097083644940697,-0.6220330202188311,0.3307400174224341
fast,7.948,-0.6909634215042433,-0.6382740408720933,0.3393756014977489
fast,7.998,-0.6322370482773051,-0.6840859490030367,0.3637344211952114
1 phase t fx fy fz
2 slow 0.046 5.36441810913306e-07 0.8829469811387421 -0.4694727132621171
3 slow 0.124 -0.0037028938908542333 0.8829408973863202 -0.4694695520472787
4 slow 0.175 -0.029433192564468726 0.8825644180942943 -0.4692693630414654
5 slow 0.225 -0.047907995026344505 0.8819330671344229 -0.46893377902154315
6 slow 0.276 -0.05494452988794276 0.8816131314630001 -0.4687636772056853
7 slow 0.327 -0.05494452988794276 0.8816131314630001 -0.4687636772056853
8 slow 0.377 -0.05494452988794276 0.8816131314630001 -0.4687636772056853
9 slow 0.427 -0.05494452988794276 0.8816131314630001 -0.4687636772056853
10 slow 0.478 -0.2805405845010285 0.8474894135274412 -0.4506203217862406
11 slow 0.529 -0.3464401476183601 0.828267481843762 -0.440400048408674
12 slow 0.579 -0.4933270963841563 0.7680254218881261 -0.4083691066997395
13 slow 0.629 -0.5646325672888053 0.7287328660233411 -0.3874770624621025
14 slow 0.679 -0.663984471662157 0.6602195443081346 -0.35104810881855686
15 slow 0.729 -0.6795143538879752 0.6477839998044589 -0.3444359627819725
16 slow 0.782 -0.6795143538879752 0.6477839998044589 -0.3444359627819725
17 slow 0.832 -0.6795143538879752 0.6477839998044589 -0.3444359627819725
18 slow 0.883 -0.6795143538879752 0.6477839998044589 -0.3444359627819725
19 slow 0.933 -0.8636404059341753 0.44509990979031433 -0.23666710701427646
20 slow 0.983 -0.9034235025038042 0.37856180077666735 -0.20128819666459757
21 slow 1.033 -0.9208475303349151 0.34428010688112226 -0.18306019196431236
22 slow 1.084 -0.9823258963987413 0.1652676638242847 -0.08787737227792251
23 slow 1.134 -0.9946318488171882 0.09136350259329508 -0.048581845502070904
24 slow 1.188 -0.9965908416220451 0.07284426607901787 -0.03873509125422061
25 slow 1.238 -0.9965908416220451 0.07284426607901787 -0.03873509125422061
26 slow 1.288 -0.9965908416220451 0.07284426607901787 -0.03873509125422061
27 slow 1.338 -0.9965908416220451 0.07284426607901787 -0.03873509125422061
28 slow 1.388 -0.9887775514835899 -0.13190930729666128 0.0701347868794932
29 slow 1.438 -0.9556714469692192 -0.2599717478297875 0.13822726134190855
30 slow 1.489 -0.8922483691415248 -0.39869133958378805 0.21198599837058513
31 slow 1.539 -0.8508838444950022 -0.46386065972493185 0.24663732794724316
32 slow 1.589 -0.7907927164969744 -0.5404386826976731 0.28735502393266027
33 slow 1.64 -0.7777418936805442 -0.5550070379438635 0.29510122779646286
34 slow 1.691 -0.7777418936805442 -0.5550070379438635 0.29510122779646286
35 slow 1.741 -0.7777418936805442 -0.5550070379438635 0.29510122779646286
36 slow 1.791 -0.5952358692207049 -0.7094937017300517 0.377243882917219
37 slow 1.841 -0.5604049203743158 -0.7312739567343891 0.38882480042081646
38 slow 1.892 -0.45017479352935263 -0.7884196750580088 0.4192100562393852
39 slow 1.942 -0.3527042657551637 -0.8262047790273792 0.4393009947979067
40 slow 1.993 -0.2515210843607131 -0.8545622769363128 0.454379201724106
41 slow 2.048 -0.21020554253366847 -0.8632198721332542 0.4589826600672126
42 slow 2.098 -0.21020554253366847 -0.8632198721332542 0.4589826600672126
43 slow 2.148 -0.21020554253366847 -0.8632198721332542 0.4589826600672126
44 slow 2.199 -0.21020554253366847 -0.8632198721332542 0.4589826600672126
45 slow 2.249 0.06423144170165734 -0.8811238583231025 0.46850300766455694
46 slow 2.3 0.12787323617667282 -0.8756985100693347 0.46561846498184756
47 slow 2.35 0.2327336093496518 -0.858701653919306 0.45658135817763307
48 slow 2.423 0.3547279040834424 -0.8255283263615021 0.43894315855170307
49 slow 2.479 0.5260315144840211 -0.7509151987562808 0.3992708479797423
50 slow 2.529 0.5961056688939317 -0.7089229256787852 0.3769433869423229
51 slow 2.581 0.5961056688939317 -0.7089229256787852 0.3769433869423229
52 slow 2.631 0.5961056688939317 -0.7089229256787852 0.3769433869423229
53 slow 2.681 0.5961056688939317 -0.7089229256787852 0.3769433869423229
54 slow 2.732 0.5961056688939317 -0.7089229256787852 0.3769433869423229
55 slow 2.782 0.8295924682130262 -0.4930097696572142 0.26214061819328877
56 slow 2.832 0.8741827941510458 -0.4287555674072037 0.22797610801923318
57 slow 2.882 0.9439064628362973 -0.29155959525346875 0.15502771310802138
58 slow 2.932 0.9571066736003423 -0.25582037216180104 0.1360248232371042
59 slow 2.982 0.9861968747582776 -0.14619466320861924 0.07773573609560003
60 slow 3.032 0.9966905224322332 -0.07177339798264935 0.03816519141555759
61 slow 3.083 0.9992422961997571 -0.03436404433766335 0.01827418786692905
62 slow 3.133 0.9992422961997571 -0.03436404433766335 0.01827418786692905
63 slow 3.184 0.9992422961997571 -0.03436404433766335 0.01827418786692905
64 slow 3.234 0.9992422961997571 -0.03436404433766335 0.01827418786692905
65 slow 3.286 0.9667885938062846 0.22566239526859874 -0.11998457504073406
66 slow 3.336 0.9415539672577656 0.2974325173987048 -0.15814557956209666
67 slow 3.386 0.8910494227865149 0.4007762840154738 -0.21309457131181636
68 slow 3.437 0.8493271610881868 0.46607942161808097 -0.24781716280765573
69 slow 3.487 0.761860256786668 0.5719223062697806 -0.30409509157499987
70 slow 3.537 0.748009652602088 0.586002088637891 -0.3115816293142661
71 slow 3.587 0.748009652602088 0.586002088637891 -0.3115816293142661
72 slow 3.637 0.748009652602088 0.586002088637891 -0.3115816293142661
73 slow 3.688 0.591663947524308 0.7118191730405439 -0.3784801686902885
74 slow 3.738 0.539041368473937 0.7436887413829951 -0.3954256681273002
75 slow 3.789 0.40803721926756004 0.8061006144181252 -0.4286110441030633
76 slow 3.839 0.36886970856393964 0.8206831516383724 -0.4363648733810532
77 slow 3.89 0.24776263895916018 0.8554178600934551 -0.4548339910001527
78 slow 3.94 0.16475926423798679 0.8708809062626716 -0.46305597065027154
79 slow 3.992 0.14387633165971442 0.8737609544059406 -0.46458733919873835
80 slow 4.042 0.14387633165971442 0.8737609544059406 -0.46458733919873835
81 slow 4.093 0.14387633165971442 0.8737609544059406 -0.46458733919873835
82 slow 4.143 0.14387633165971442 0.8737609544059406 -0.46458733919873835
83 slow 4.196 -0.1733023236078747 0.869586949506304 -0.46236872934967393
84 slow 4.247 -0.21515127447977428 0.86226908085857 -0.4584778743680502
85 slow 4.297 -0.3579950095311995 0.8244282743035451 -0.4383578374794213
86 slow 4.347 -0.3974270950667179 0.8102218773848151 -0.43080414751236507
87 slow 4.397 -0.5648254471144367 0.7286167551161777 -0.3874142982079373
88 slow 4.448 -0.6161812577464959 0.6954125799901635 -0.36975938283344584
89 slow 4.498 -0.6161812577464959 0.6954125799901635 -0.36975938283344584
90 slow 4.55 -0.6161812577464959 0.6954125799901635 -0.36975938283344584
91 slow 4.6 -0.6161812577464959 0.6954125799901635 -0.36975938283344584
92 slow 4.65 -0.7949436150360499 0.5356686009745564 -0.2848223987740045
93 slow 4.706 -0.8320602692300713 0.4897569720337153 -0.26041086135787
94 slow 4.756 -0.9052591628184888 0.37512792417883484 -0.1994614966213956
95 slow 4.824 -0.9519766029552919 0.2703318015873179 -0.14374026741403262
96 slow 4.874 -0.983175920401433 0.1612793283684674 -0.08575597812287565
97 slow 4.925 -0.992798606527993 0.10577208861815067 -0.05624226298282666
98 slow 4.975 -0.992798606527993 0.10577208861815067 -0.05624226298282666
99 slow 5.025 -0.992798606527993 0.10577208861815067 -0.05624226298282666
100 slow 5.075 -0.992798606527993 0.10577208861815067 -0.05624226298282666
101 slow 5.125 -0.9909352442124001 -0.11861635420392577 0.06306744241746298
102 slow 5.177 -0.971089850817662 -0.21077290020723444 0.11206822108502636
103 slow 5.227 -0.9473137584186095 -0.2828150426309014 0.15037385002881865
104 slow 5.278 -0.8692337732689488 -0.43653100062660777 0.23210629655517379
105 slow 5.329 -0.8474958640779253 -0.4686708632974702 0.24919546999657635
106 slow 5.379 -0.7866667561433955 -0.5451126777938068 0.2898406170420097
107 slow 5.43 -0.7734621510586307 -0.5596500718853581 0.29757032432430053
108 slow 5.48 -0.7734621510586307 -0.5596500718853581 0.29757032432430053
109 slow 5.531 -0.7734621510586307 -0.5596500718853581 0.29757032432430053
110 slow 5.581 -0.6062043205372735 -0.7022162337138214 0.3733747217886052
111 slow 5.632 -0.5541510145645213 -0.734979908569316 0.39079558218658444
112 slow 5.682 -0.42418330732008847 -0.7995763915406578 0.42514246539461586
113 slow 5.732 -0.3852348981801229 -0.8148002884614528 0.4332373058120499
114 slow 5.783 -0.243946035449459 -0.8562723940695657 0.45528883024171124
115 slow 5.833 -0.16070912377840446 -0.8714704720337134 0.4633700399332204
116 slow 5.883 -0.0975990723650993 -0.8787317852366855 0.4672310677686361
117 slow 5.934 -0.0975990723650993 -0.8787317852366855 0.4672310677686361
118 slow 5.984 -0.0975990723650993 -0.8787317852366855 0.4672310677686361
119 slow 6.034 -0.0975990723650993 -0.8787317852366855 0.4672310677686361
120 slow 6.085 0.1775602464395945 -0.8689168079517865 0.46201292161928603
121 slow 6.135 0.2607328887465965 -0.8524065164179079 0.45323447738906825
122 slow 6.185 0.36194842063416144 -0.8230812569371999 0.4376420743931222
123 slow 6.235 0.4398997578876258 -0.7929274597606337 0.4216091158501638
124 slow 6.285 0.5682409772730201 -0.7265432946265349 0.38631209246025844
125 slow 6.336 0.6359981125758746 -0.6813614183433645 0.36228858440895406
126 slow 6.386 0.7140739082487315 -0.6181244196428086 0.32866495919039396
127 slow 6.436 0.7140739082487315 -0.6181244196428086 0.32866495919039396
128 slow 6.487 0.7140739082487315 -0.6181244196428086 0.32866495919039396
129 slow 6.539 0.7140739082487315 -0.6181244196428086 0.32866495919039396
130 slow 6.589 0.7140739082487315 -0.6181244196428086 0.32866495919039396
131 slow 6.639 0.9065680252911018 -0.37265567940138744 0.1981468145837393
132 slow 6.691 0.9392685544638382 -0.3030117042642596 0.16111638549285018
133 slow 6.741 0.965104771584189 -0.2312113232646016 0.12293943167130032
134 slow 6.792 0.9973294370055789 -0.06448454199620153 0.034289035064803325
135 slow 6.842 0.9999278161305012 0.010609508165090861 -0.005639225565755396
136 slow 6.892 0.9930188796365541 0.1041492959551682 -0.055375345031933365
137 slow 6.943 0.9930188796365541 0.1041492959551682 -0.055375345031933365
138 slow 6.993 0.9930188796365541 0.1041492959551682 -0.055375345031933365
139 slow 7.043 0.9930188796365541 0.1041492959551682 -0.055375345031933365
140 slow 7.093 0.9386688966024551 0.30445842560916364 -0.16188196201775823
141 slow 7.144 0.9311374675345754 0.32198368527382176 -0.17120024232104936
142 slow 7.223 0.8558381442539132 0.4566995610987047 -0.24283035587065402
143 slow 7.273 0.7831408512856074 0.5490564200014606 -0.29193741572952536
144 slow 7.324 0.7560444192777931 0.5779075266990185 -0.30727793064834297
145 slow 7.374 0.6509683314574719 0.6702500769547218 -0.3563777010163019
146 slow 7.425 0.6509683314574719 0.6702500769547218 -0.3563777010163019
147 slow 7.475 0.6509683314574719 0.6702500769547218 -0.3563777010163019
148 slow 7.525 0.6509683314574719 0.6702500769547218 -0.3563777010163019
149 slow 7.576 0.4196485397802218 0.8014397844240222 -0.42613304847512623
150 slow 7.626 0.3806332297410603 0.8164846784795214 -0.43413259981839836
151 slow 7.676 0.23917773281080557 0.8573206036655484 -0.4558458014044032
152 slow 7.727 0.13481190457623585 0.8748870865403633 -0.46518634566100775
153 slow 7.777 0.007896542705130004 0.8829196865934407 -0.4694576356169389
154 slow 7.828 -0.055613100836188686 0.8815807152851224 -0.46874580046412767
155 slow 7.878 -0.055613100836188686 0.8815807152851224 -0.46874580046412767
156 slow 7.934 -0.055613100836188686 0.8815807152851224 -0.46874580046412767
157 slow 7.984 -0.055613100836188686 0.8815807152851224 -0.46874580046412767
158 fast 0.044 -0.468564632951404 0.7800211366930896 -0.4147459596658374
159 fast 0.094 -0.468564632951404 0.7800211366930896 -0.4147459596658374
160 fast 0.147 -0.6532919035228096 0.6684843531374839 -0.3554410758507007
161 fast 0.197 -0.6740804102157376 0.6521956099667656 -0.346780170862553
162 fast 0.253 -0.7406633321896331 0.593230936921181 -0.31542809613185546
163 fast 0.303 -0.8067414530300762 0.521736964591286 -0.27741443318975423
164 fast 0.354 -0.8364927453434133 0.4838350279608412 -0.25726164250811173
165 fast 0.404 -0.8572846408021899 0.4545782991663938 -0.24170563620165925
166 fast 0.454 -0.8572846408021899 0.4545782991663938 -0.24170563620165925
167 fast 0.505 -0.8572846408021899 0.4545782991663938 -0.24170563620165925
168 fast 0.555 -0.8572846408021899 0.4545782991663938 -0.24170563620165925
169 fast 0.605 -0.9267948315707897 0.33160599382699485 -0.17632017760790408
170 fast 0.656 -0.9368960066831657 0.30868477952212847 -0.16413281071288688
171 fast 0.706 -0.9657135503823218 0.22922111730247924 -0.12188116339522719
172 fast 0.756 -0.9779586730613649 0.18435730681493703 -0.09802661479413445
173 fast 0.807 -0.9943971478546243 0.09333425614443461 -0.04962891262715385
174 fast 0.857 -0.9977694134078435 0.058940059911640835 -0.031341139184466044
175 fast 0.907 -0.9977694134078435 0.058940059911640835 -0.031341139184466044
176 fast 0.957 -0.9977694134078435 0.058940059911640835 -0.031341139184466044
177 fast 1.007 -0.9977694134078435 0.058940059911640835 -0.031341139184466044
178 fast 1.057 -0.9960740012037427 -0.0781633335984552 0.041558120827859354
179 fast 1.108 -0.9915869770276278 -0.11429142880777064 0.06076788864432451
180 fast 1.158 -0.9830488997220782 -0.16188358013218335 0.08607303433014432
181 fast 1.208 -0.9654882699749504 -0.22996141302144335 0.12227080216453375
182 fast 1.258 -0.9421438137516855 -0.2959725872352957 0.15736982498139357
183 fast 1.308 -0.9183006336633192 -0.3495452280775043 0.1858549965478247
184 fast 1.359 -0.9183006336633192 -0.3495452280775043 0.1858549965478247
185 fast 1.409 -0.9183006336633192 -0.3495452280775043 0.1858549965478247
186 fast 1.459 -0.9183006336633192 -0.3495452280775043 0.1858549965478247
187 fast 1.509 -0.852788869570223 -0.4611250554621998 0.24518325220561926
188 fast 1.561 -0.8457836830587759 -0.47107600317640114 0.25047427153877355
189 fast 1.611 -0.7990683904573951 -0.5308639797392242 0.28226431298919213
190 fast 1.661 -0.7576916738262323 -0.5762231745752734 0.30638240892191654
191 fast 1.712 -0.7039218688816332 -0.6271380249228601 0.3334544949555229
192 fast 1.763 -0.6851467559103143 -0.6431437685849701 0.34196493357637503
193 fast 1.813 -0.6560905528050488 -0.6663450550269401 0.3543013606537654
194 fast 1.863 -0.6560905528050488 -0.6663450550269401 0.3543013606537654
195 fast 1.913 -0.6560905528050488 -0.6663450550269401 0.3543013606537654
196 fast 1.964 -0.6560905528050488 -0.6663450550269401 0.3543013606537654
197 fast 2.014 -0.5163993954213524 -0.7561103236758572 0.40203089786638574
198 fast 2.064 -0.4546015920025061 -0.7864369179669822 0.4181559118407643
199 fast 2.142 -0.3807299710798536 -0.8164494585717856 0.4341140065920148
200 fast 2.193 -0.2820279695634007 -0.8471052048351421 0.45041424969150085
201 fast 2.244 -0.23157561174253732 -0.8589461445197458 0.4567102548232671
202 fast 2.294 -0.1805137900613878 -0.8684427065467883 0.46175971786564723
203 fast 2.344 -0.1805137900613878 -0.8684427065467883 0.46175971786564723
204 fast 2.395 -0.1805137900613878 -0.8684427065467883 0.46175971786564723
205 fast 2.445 -0.1805137900613878 -0.8684427065467883 0.46175971786564723
206 fast 2.496 -0.024830674288472077 -0.8826749954107264 0.46932748703975774
207 fast 2.55 0.016627909997720097 -0.8828251361547534 0.4694073833914936
208 fast 2.6 0.111726663405662 -0.8774189869035709 0.46653303645652927
209 fast 2.651 0.13780214292537876 -0.874523580821017 0.4649936300565413
210 fast 2.701 0.2656103428096974 -0.8512318793390828 0.45260958163672177
211 fast 2.751 0.31554354506824306 -0.8378380863926662 0.4454880606207544
212 fast 2.801 0.34018885207653954 -0.8302853882293821 0.4414722177166199
213 fast 2.851 0.34018885207653954 -0.8302853882293821 0.4414722177166199
214 fast 2.901 0.34018885207653954 -0.8302853882293821 0.4414722177166199
215 fast 2.952 0.34018885207653954 -0.8302853882293821 0.4414722177166199
216 fast 3.003 0.4940800181283668 -0.7676483628437457 0.4081677678474743
217 fast 3.053 0.5530560650928253 -0.7356216755844609 0.39113902806336104
218 fast 3.103 0.5974397882275826 -0.7080469991770619 0.3764772853691691
219 fast 3.154 0.6185047351113914 -0.6938025932733614 0.3689035838968582
220 fast 3.206 0.6881042365676635 -0.6406762784960411 0.34065593461746135
221 fast 3.256 0.7514898864756772 -0.5825188958027513 0.3097332506488721
222 fast 3.306 0.7931845845529396 -0.5376975001965116 0.2859014045261112
223 fast 3.357 0.8009798300561773 -0.5286119824350076 0.28107060299737585
224 fast 3.407 0.8009798300561773 -0.5286119824350076 0.28107060299737585
225 fast 3.458 0.8009798300561773 -0.5286119824350076 0.28107060299737585
226 fast 3.508 0.8009798300561773 -0.5286119824350076 0.28107060299737585
227 fast 3.566 0.9079615585910537 -0.37000119040604634 0.19673567856139682
228 fast 3.618 0.9289873638512246 -0.3267879327407989 0.1737588122074601
229 fast 3.668 0.951171266364975 -0.27253270223930237 0.14491082862158244
230 fast 3.718 0.97558673482976 -0.1939070387891802 0.10310471925289769
231 fast 3.768 0.9897808982513759 -0.1259042544228822 0.06694693551550773
232 fast 3.819 0.9931410372296491 -0.10323546390051833 0.05489370786949623
233 fast 3.869 0.9931410372296491 -0.10323546390051833 0.05489370786949623
234 fast 3.943 0.9931410372296491 -0.10323546390051833 0.05489370786949623
235 fast 3.993 0.9999376400959273 0.009861411882843249 -0.005241037594265275
236 fast 4.045 0.998654861608302 0.04578216735335978 -0.024340512289846263
237 fast 4.095 0.992907801560002 0.10497188750958387 -0.05581218893717397
238 fast 4.145 0.9853453521738103 0.15060635068109599 -0.08007661383945096
239 fast 4.195 0.9656808627762835 0.22933012769607466 -0.12193508026222302
240 fast 4.245 0.9584524128068335 0.25186373612958607 -0.13391650685261142
241 fast 4.295 0.9422656297525576 0.295670151705548 -0.15720891952250804
242 fast 4.346 0.9422656297525576 0.295670151705548 -0.15720891952250804
243 fast 4.396 0.9422656297525576 0.295670151705548 -0.15720891952250804
244 fast 4.446 0.9422656297525576 0.295670151705548 -0.15720891952250804
245 fast 4.496 0.872076362854367 0.43208850957625344 -0.22974406900477443
246 fast 4.547 0.8580093568921251 0.45351256088827063 -0.24113544036935863
247 fast 4.598 0.8132252153454199 0.5138310229603692 -0.2732076663819958
248 fast 4.648 0.7815435931024417 0.5508278891839419 -0.29287923889836937
249 fast 4.699 0.7210023605142103 0.6118235759463857 -0.32531140165864775
250 fast 4.752 0.7119253398407421 0.6200549034607505 -0.32968807559104
251 fast 4.802 0.7119253398407421 0.6200549034607505 -0.32968807559104
252 fast 4.852 0.7119253398407421 0.6200549034607505 -0.32968807559104
253 fast 4.902 0.7119253398407421 0.6200549034607505 -0.32968807559104
254 fast 4.952 0.5717137662325098 0.7244172953808695 -0.38517911632551577
255 fast 5.003 0.5489901411529138 0.7379931951737293 -0.392397590199244
256 fast 5.053 0.4917898196021908 0.7687948374153668 -0.40877533107946273
257 fast 5.104 0.42168183785580987 0.8006073549916201 -0.42569036958318496
258 fast 5.154 0.37379846714844805 0.8189426822227043 -0.43543953563193305
259 fast 5.204 0.33726198026341786 0.8312163487333023 -0.44196576594491466
260 fast 5.255 0.33726198026341786 0.8312163487333023 -0.44196576594491466
261 fast 5.306 0.33726198026341786 0.8312163487333023 -0.44196576594491466
262 fast 5.357 0.33726198026341786 0.8312163487333023 -0.44196576594491466
263 fast 5.407 0.33726198026341786 0.8312163487333023 -0.44196576594491466
264 fast 5.459 0.13407634499561424 0.8749752241040766 -0.46523315758513817
265 fast 5.509 0.1067327874409669 0.8779037141803553 -0.4667902962931195
266 fast 5.561 0.02627950826709677 0.8826423614597066 -0.46930997134311153
267 fast 5.611 -0.05263072139273397 0.8817235042090142 -0.4688215751125975
268 fast 5.662 -0.10470500798344481 0.8780938562969806 -0.46689189416468185
269 fast 5.712 -0.14352498907655858 0.8738056992414621 -0.46461185680491773
270 fast 5.762 -0.14352498907655858 0.8738056992414621 -0.46461185680491773
271 fast 5.812 -0.14352498907655858 0.8738056992414621 -0.46461185680491773
272 fast 5.862 -0.14352498907655858 0.8738056992414621 -0.46461185680491773
273 fast 5.912 -0.295103523640452 0.843625197837987 -0.4485648625425387
274 fast 5.962 -0.33420756849144506 0.8321770526698412 -0.44247785726832983
275 fast 6.013 -0.4219355057458717 0.8005024328118661 -0.42563632839932636
276 fast 6.063 -0.44551813189673 0.790478394286142 -0.42030643858743166
277 fast 6.113 -0.5364964099008817 0.7451210147911475 -0.396189696332547
278 fast 6.163 -0.5798139907491607 0.719379824283596 -0.38250281638863076
279 fast 6.213 -0.6213904831858549 0.6917895911437915 -0.3678328818786537
280 fast 6.265 -0.6213904831858549 0.6917895911437915 -0.3678328818786537
281 fast 6.316 -0.6213904831858549 0.6917895911437915 -0.3678328818786537
282 fast 6.366 -0.6213904831858549 0.6917895911437915 -0.3678328818786537
283 fast 6.416 -0.6213904831858549 0.6917895911437915 -0.3678328818786537
284 fast 6.467 -0.7697685939313547 0.5636049336495432 -0.2996761427989206
285 fast 6.517 -0.8188294015799512 0.5068436537072459 -0.26949568049397077
286 fast 6.567 -0.8407379772940358 0.4780642012631092 -0.2541933771879171
287 fast 6.618 -0.8928806068283204 0.39758464497224594 -0.21140168408076437
288 fast 6.668 -0.904333371419307 0.3768648333400775 -0.20038475672801448
289 fast 6.719 -0.9150935727512862 0.35604033442654803 -0.18931200007056712
290 fast 6.769 -0.9150935727512862 0.35604033442654803 -0.18931200007056712
291 fast 6.819 -0.9150935727512862 0.35604033442654803 -0.18931200007056712
292 fast 6.87 -0.9150935727512862 0.35604033442654803 -0.18931200007056712
293 fast 6.92 -0.9695072843499856 0.21637647177545588 -0.11505150174735601
294 fast 6.97 -0.9840519374844526 0.15705915122674283 -0.08351171983039263
295 fast 7.021 -0.9950416541582717 0.08781629148940584 -0.04669481169271156
296 fast 7.071 -0.9994288190771032 0.029837554381306492 -0.015866819047602072
297 fast 7.122 -0.9990051683116948 -0.03937536594069818 0.020934522768823672
298 fast 7.172 -0.9983402523657028 -0.05085064211870806 0.027036136974427062
299 fast 7.222 -0.9983402523657028 -0.05085064211870806 0.027036136974427062
300 fast 7.272 -0.9983402523657028 -0.05085064211870806 0.027036136974427062
301 fast 7.322 -0.9983402523657028 -0.05085064211870806 0.027036136974427062
302 fast 7.372 -0.9773662273888087 -0.18679204232103552 0.09931762424315102
303 fast 7.423 -0.9642049478456077 -0.23412130178924356 0.12448306952577433
304 fast 7.473 -0.9484068324824643 -0.27994440727138714 0.14884760306451283
305 fast 7.545 -0.9099733991029075 -0.36612944116866886 0.194673175436727
306 fast 7.595 -0.8747228862138969 -0.42789759461639953 0.22751597934019752
307 fast 7.646 -0.8618665613775525 -0.44777421714659554 0.23808460857011965
308 fast 7.696 -0.8618665613775525 -0.44777421714659554 0.23808460857011965
309 fast 7.746 -0.8618665613775525 -0.44777421714659554 0.23808460857011965
310 fast 7.796 -0.8618665613775525 -0.44777421714659554 0.23808460857011965
311 fast 7.847 -0.7556758579959296 -0.5782831810950133 0.3074777392019586
312 fast 7.897 -0.7097083644940697 -0.6220330202188311 0.3307400174224341
313 fast 7.948 -0.6909634215042433 -0.6382740408720933 0.3393756014977489
314 fast 7.998 -0.6322370482773051 -0.6840859490030367 0.3637344211952114

View File

@@ -0,0 +1,23 @@
rep,t,speed,rate_deg_per_wall_s
0,0.27,390.1,15.5
0,0.54,233.9,58.9
0,0.81,573.5,325.0
0,1.07,341.0,209.1
0,1.34,222.8,130.3
0,1.61,525.5,321.8
0,1.87,386.6,237.6
0,2.14,190.9,110.4
0,2.41,511.3,310.2
0,2.66,246.7,151.1
0,2.94,312.3,183.0
1,0.27,446.6,51.6
1,0.54,372.5,181.1
1,0.8,377.7,231.0
1,1.07,417.7,246.3
1,1.32,385.0,236.1
1,1.59,232.9,169.4
1,1.85,590.3,368.1
1,2.11,307.0,194.7
1,2.38,311.9,180.7
1,2.64,418.6,255.2
1,2.9,306.5,181.9
1 rep t speed rate_deg_per_wall_s
2 0 0.27 390.1 15.5
3 0 0.54 233.9 58.9
4 0 0.81 573.5 325.0
5 0 1.07 341.0 209.1
6 0 1.34 222.8 130.3
7 0 1.61 525.5 321.8
8 0 1.87 386.6 237.6
9 0 2.14 190.9 110.4
10 0 2.41 511.3 310.2
11 0 2.66 246.7 151.1
12 0 2.94 312.3 183.0
13 1 0.27 446.6 51.6
14 1 0.54 372.5 181.1
15 1 0.8 377.7 231.0
16 1 1.07 417.7 246.3
17 1 1.32 385.0 236.1
18 1 1.59 232.9 169.4
19 1 1.85 590.3 368.1
20 1 2.11 307.0 194.7
21 1 2.38 311.9 180.7
22 1 2.64 418.6 255.2
23 1 2.9 306.5 181.9

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -0,0 +1,786 @@
phase,t,x,y,z
idle,0.0,-1032.5526123046875,881.9141235351562,1004.4220581054688
idle,0.05,-1038.362548828125,881.9141235351562,1004.4220581054688
idle,0.1,-1038.362548828125,881.9141235351562,1004.4220581054688
idle,0.162,-1038.362548828125,881.9141235351562,1004.4220581054688
idle,0.212,-1090.8275146484375,881.9140625,1004.4219360351562
idle,0.262,-1102.4825439453125,881.9140625,1004.4219360351562
idle,0.312,-1143.2926025390625,881.9140625,1004.4218139648438
idle,0.362,-1166.6025390625,881.9140625,1004.4217529296875
idle,0.413,-1201.5675048828125,881.9140014648438,1004.4216918945312
idle,0.463,-1201.5675048828125,881.9140014648438,1004.4216918945312
idle,0.516,-1201.5675048828125,881.9140014648438,1004.4216918945312
idle,0.566,-1201.5675048828125,881.9140014648438,1004.4216918945312
idle,0.616,-1277.342529296875,881.9140014648438,1004.4215698242188
idle,0.666,-1300.652587890625,881.9139404296875,1004.4215087890625
idle,0.716,-1335.6175537109375,881.9139404296875,1004.4214477539062
idle,0.767,-1358.927490234375,881.9139404296875,1004.42138671875
idle,0.817,-1388.0474853515625,881.9139404296875,1004.4213256835938
idle,0.867,-1388.0474853515625,881.9139404296875,1004.4213256835938
idle,0.917,-1388.0474853515625,881.9139404296875,1004.4213256835938
idle,0.968,-1388.0474853515625,881.9139404296875,1004.4213256835938
idle,1.018,-1458.0125732421875,881.9138793945312,1004.4212036132812
idle,1.068,-1492.9775390625,881.9138793945312,1004.421142578125
idle,1.118,-1527.9425048828125,881.913818359375,1004.4210205078125
idle,1.168,-1539.5975341796875,881.913818359375,1004.4210205078125
idle,1.218,-1551.217529296875,881.913818359375,1004.4210205078125
idle,1.269,-1551.217529296875,881.913818359375,1004.4210205078125
idle,1.319,-1551.217529296875,881.913818359375,1004.4210205078125
idle,1.369,-1603.6824951171875,881.913818359375,1004.4208984375
idle,1.419,-1638.6474609375,881.9137573242188,1004.4208374023438
idle,1.469,-1650.302490234375,881.9137573242188,1004.4207763671875
idle,1.519,-1685.2674560546875,881.9137573242188,1004.4207153320312
idle,1.572,-1691.0775146484375,881.9137573242188,1004.4207153320312
idle,1.622,-1691.0775146484375,881.9137573242188,1004.4207153320312
idle,1.672,-1691.0775146484375,881.9137573242188,1004.4207153320312
idle,1.722,-1749.387451171875,881.9136962890625,1004.4205932617188
idle,1.773,-1761.04248046875,881.9136962890625,1004.4205932617188
idle,1.823,-1807.6624755859375,881.9136962890625,1004.4204711914062
idle,1.873,-1819.3175048828125,881.9136962890625,1004.4204711914062
idle,1.923,-1842.5924072265625,881.9136962890625,1004.42041015625
idle,1.973,-1842.5924072265625,881.9136962890625,1004.42041015625
idle,2.024,-1842.5924072265625,881.9136962890625,1004.42041015625
idle,2.074,-1842.5924072265625,881.9136962890625,1004.42041015625
idle,2.124,-1906.71240234375,881.9136352539062,1004.4202880859375
idle,2.174,-1935.867431640625,881.9136352539062,1004.4202270507812
idle,2.224,-1970.8323974609375,881.91357421875,1004.420166015625
idle,2.275,-1982.4874267578125,881.91357421875,1004.4201049804688
idle,2.325,-1994.107421875,881.91357421875,1004.4201049804688
idle,2.375,-1994.107421875,881.91357421875,1004.4201049804688
idle,2.425,-1994.107421875,881.91357421875,1004.4201049804688
idle,2.475,-2058.262451171875,881.91357421875,1004.4199829101562
idle,2.525,-2075.7275390625,881.91357421875,1004.419921875
idle,2.575,-2116.537353515625,881.9135131835938,1004.4198608398438
idle,2.625,-2151.50244140625,881.9135131835938,1004.4197998046875
idle,2.675,-2169.00244140625,881.9135131835938,1004.4197387695312
idle,2.726,-2174.8125,881.9135131835938,1004.4197387695312
idle,2.776,-2174.8125,881.9135131835938,1004.4197387695312
idle,2.826,-2174.8125,881.9135131835938,1004.4197387695312
idle,2.876,-2238.932373046875,881.9134521484375,1004.4196166992188
idle,2.927,-2279.742431640625,881.9134521484375,1004.4194946289062
idle,2.977,-2291.3974609375,881.9134521484375,1004.4194946289062
idle,3.027,-2320.517333984375,881.9133911132812,1004.41943359375
idle,3.077,-2326.327392578125,881.9133911132812,1004.41943359375
idle,3.128,-2326.327392578125,881.9133911132812,1004.41943359375
idle,3.18,-2326.327392578125,881.9133911132812,1004.41943359375
idle,3.23,-2390.482421875,881.9133911132812,1004.4193115234375
idle,3.28,-2419.602294921875,881.9133911132812,1004.4192504882812
idle,3.361,-2454.5673828125,881.913330078125,1004.419189453125
idle,3.411,-2489.532470703125,881.913330078125,1004.4191284179688
idle,3.464,-2501.15234375,881.913330078125,1004.4190673828125
idle,3.514,-2501.15234375,881.913330078125,1004.4190673828125
idle,3.564,-2501.15234375,881.913330078125,1004.4190673828125
idle,3.615,-2547.7724609375,881.9132690429688,1004.4190063476562
idle,3.665,-2559.427490234375,881.9132690429688,1004.4189453125
idle,3.715,-2600.2373046875,881.9132690429688,1004.4188842773438
idle,3.765,-2629.392333984375,881.9132690429688,1004.4188232421875
idle,3.815,-2658.512451171875,881.9132080078125,1004.4187622070312
idle,3.865,-2664.322265625,881.9132080078125,1004.4187622070312
idle,3.916,-2664.322265625,881.9132080078125,1004.4187622070312
idle,3.968,-2664.322265625,881.9132080078125,1004.4187622070312
idle,4.019,-2728.4423828125,881.9132080078125,1004.4186401367188
idle,4.069,-2740.097412109375,881.9132080078125,1004.4185791015625
idle,4.119,-2792.562255859375,881.9131469726562,1004.41845703125
idle,4.169,-2804.21728515625,881.9131469726562,1004.41845703125
idle,4.221,-2815.83740234375,881.9131469726562,1004.41845703125
idle,4.271,-2815.83740234375,881.9131469726562,1004.41845703125
idle,4.324,-2815.83740234375,881.9131469726562,1004.41845703125
idle,4.374,-2874.147216796875,881.9131469726562,1004.4183349609375
idle,4.424,-2903.267333984375,881.9130859375,1004.4182739257812
idle,4.475,-2938.232421875,881.9130859375,1004.418212890625
idle,4.525,-2973.197265625,881.9130859375,1004.4180908203125
idle,4.575,-2996.50732421875,881.9130249023438,1004.4180908203125
idle,4.627,-3008.162353515625,881.9130249023438,1004.4180297851562
idle,4.677,-3008.162353515625,881.9130249023438,1004.4180297851562
idle,4.727,-3008.162353515625,881.9130249023438,1004.4180297851562
idle,4.778,-3072.2822265625,881.9130249023438,1004.4179077148438
idle,4.863,-3113.09228515625,881.9129638671875,1004.4178466796875
idle,4.913,-3148.057373046875,881.9129638671875,1004.4177856445312
idle,4.963,-3165.522216796875,881.9129638671875,1004.417724609375
idle,5.013,-3165.522216796875,881.9129638671875,1004.417724609375
idle,5.064,-3165.522216796875,881.9129638671875,1004.417724609375
idle,5.114,-3223.832275390625,881.9129028320312,1004.4176025390625
idle,5.164,-3241.29736328125,881.9129028320312,1004.4176025390625
idle,5.214,-3276.26220703125,881.9129028320312,1004.41748046875
idle,5.266,-3299.572265625,881.9129028320312,1004.41748046875
idle,5.316,-3334.537353515625,881.912841796875,1004.4173583984375
idle,5.367,-3340.34716796875,881.912841796875,1004.4173583984375
idle,5.417,-3340.34716796875,881.912841796875,1004.4173583984375
idle,5.467,-3340.34716796875,881.912841796875,1004.4173583984375
idle,5.519,-3416.122314453125,881.912841796875,1004.417236328125
idle,5.569,-3427.77734375,881.912841796875,1004.4171752929688
idle,5.619,-3462.7421875,881.9127807617188,1004.4171142578125
idle,5.669,-3491.897216796875,881.9127807617188,1004.4170532226562
idle,5.719,-3521.017333984375,881.9127807617188,1004.4169921875
idle,5.769,-3521.017333984375,881.9127807617188,1004.4169921875
idle,5.819,-3521.017333984375,881.9127807617188,1004.4169921875
idle,5.87,-3521.017333984375,881.9127807617188,1004.4169921875
idle,5.92,-3585.13720703125,881.9127197265625,1004.4168701171875
idle,5.97,-3608.447265625,881.9127197265625,1004.4168090820312
idle,6.02,-3643.412109375,881.9127197265625,1004.416748046875
idle,6.07,-3655.067138671875,881.9127197265625,1004.416748046875
idle,6.12,-3672.567138671875,881.9126586914062,1004.4166870117188
idle,6.173,-3672.567138671875,881.9126586914062,1004.4166870117188
idle,6.223,-3672.567138671875,881.9126586914062,1004.4166870117188
idle,6.273,-3736.687255859375,881.9126586914062,1004.4165649414062
idle,6.323,-3771.652099609375,881.9126586914062,1004.41650390625
idle,6.374,-3783.30712890625,881.9126586914062,1004.41650390625
idle,6.424,-3829.92724609375,881.91259765625,1004.4163818359375
idle,6.474,-3835.7373046875,881.91259765625,1004.4163818359375
idle,6.531,-3835.7373046875,881.91259765625,1004.4163818359375
idle,6.581,-3835.7373046875,881.91259765625,1004.4163818359375
idle,6.633,-3894.047119140625,881.91259765625,1004.416259765625
idle,6.683,-3905.7021484375,881.9125366210938,1004.416259765625
idle,6.761,-3952.322265625,881.9125366210938,1004.4161376953125
idle,6.811,-3981.442138671875,881.9125366210938,1004.4160766601562
idle,6.863,-3987.252197265625,881.9125366210938,1004.4160766601562
idle,6.913,-3987.252197265625,881.9125366210938,1004.4160766601562
idle,6.963,-3987.252197265625,881.9125366210938,1004.4160766601562
idle,7.013,-4039.71728515625,881.9124755859375,1004.4159545898438
idle,7.064,-4063.027099609375,881.9124755859375,1004.4158935546875
idle,7.114,-4097.9921875,881.9124755859375,1004.4158325195312
idle,7.164,-4109.64697265625,881.9124755859375,1004.4158325195312
idle,7.214,-4150.42236328125,881.9124145507812,1004.415771484375
idle,7.264,-4156.23193359375,881.9124145507812,1004.4157104492188
idle,7.315,-4156.23193359375,881.9124145507812,1004.4157104492188
idle,7.365,-4156.23193359375,881.9124145507812,1004.4157104492188
idle,7.415,-4220.35205078125,881.9124145507812,1004.4155883789062
idle,7.466,-4243.662109375,881.912353515625,1004.41552734375
idle,7.516,-4278.626953125,881.912353515625,1004.4154663085938
idle,7.566,-4307.7822265625,881.912353515625,1004.4154052734375
idle,7.616,-4336.90234375,881.912353515625,1004.4153442382812
idle,7.667,-4336.90234375,881.912353515625,1004.4153442382812
idle,7.717,-4336.90234375,881.912353515625,1004.4153442382812
idle,7.767,-4336.90234375,881.912353515625,1004.4153442382812
idle,7.82,-4401.02197265625,881.9122924804688,1004.4152221679688
idle,7.87,-4424.33203125,881.9122924804688,1004.4152221679688
idle,7.92,-4470.9521484375,881.9122314453125,1004.4151000976562
idle,7.97,-4482.60693359375,881.9122314453125,1004.4151000976562
RT,0.0,-4511.76220703125,881.9122314453125,1004.4150390625
RT,0.05,-4511.76220703125,881.9122314453125,1004.4150390625
RT,0.1,-4511.76220703125,881.9122314453125,1004.4150390625
RT,0.151,-4591.10205078125,881.9121704101562,1004.4148559570312
RT,0.203,-4631.14013671875,881.9121704101562,1004.414794921875
RT,0.253,-4688.6787109375,881.9121704101562,1004.4146728515625
RT,0.303,-4745.97314453125,881.912109375,1004.41455078125
RT,0.353,-4758.11572265625,881.912109375,1004.4144897460938
RT,0.404,-4758.11572265625,881.912109375,1004.4144897460938
RT,0.454,-4758.11572265625,881.912109375,1004.4144897460938
RT,0.504,-4894.6865234375,881.9120483398438,1004.4142456054688
RT,0.554,-4976.0556640625,881.9119873046875,1004.4140625
RT,0.605,-5047.275390625,881.9119262695312,1004.4139404296875
RT,0.655,-5163.5263671875,881.911865234375,1004.4136962890625
RT,0.705,-5203.26416015625,881.911865234375,1004.4136352539062
RT,0.756,-5223.07373046875,881.911865234375,1004.41357421875
RT,0.806,-5223.07373046875,881.911865234375,1004.41357421875
RT,0.857,-5223.07373046875,881.911865234375,1004.41357421875
RT,0.908,-5421.8828125,881.9117431640625,1004.4132080078125
RT,0.989,-5541.0966796875,881.9116821289062,1004.4129638671875
RT,1.039,-5700.048828125,881.91162109375,1004.41259765625
RT,1.09,-5739.78662109375,881.9115600585938,1004.4125366210938
RT,1.14,-5779.52490234375,881.9115600585938,1004.4124755859375
RT,1.19,-5779.52490234375,881.9115600585938,1004.4124755859375
RT,1.24,-5779.52490234375,881.9115600585938,1004.4124755859375
RT,1.29,-5978.333984375,881.9114379882812,1004.4120483398438
RT,1.341,-6097.54833984375,881.911376953125,1004.4118041992188
RT,1.391,-6177.02392578125,881.9113159179688,1004.4116821289062
RT,1.441,-6316.1669921875,881.9112548828125,1004.411376953125
RT,1.491,-6355.90478515625,881.9112548828125,1004.4113159179688
RT,1.541,-6455.3095703125,881.9111938476562,1004.4110717773438
RT,1.591,-6455.3095703125,881.9111938476562,1004.4110717773438
RT,1.641,-6455.3095703125,881.9111938476562,1004.4110717773438
RT,1.691,-6455.3095703125,881.9111938476562,1004.4110717773438
RT,1.742,-6713.666015625,881.9110717773438,1004.4105834960938
RT,1.792,-6793.14208984375,881.9110107421875,1004.410400390625
RT,1.842,-6912.35595703125,881.9109497070312,1004.41015625
RT,1.892,-6952.09423828125,881.9109497070312,1004.4100952148438
RT,1.942,-7011.6416015625,881.910888671875,1004.4099731445312
RT,1.992,-7011.6416015625,881.910888671875,1004.4099731445312
RT,2.042,-7011.6416015625,881.910888671875,1004.4099731445312
RT,2.092,-7011.6416015625,881.910888671875,1004.4099731445312
RT,2.144,-7269.998046875,881.9107666015625,1004.409423828125
RT,2.194,-7369.40283203125,881.9107055664062,1004.4092407226562
RT,2.244,-7488.61669921875,881.91064453125,1004.4089965820312
RT,2.294,-7528.3544921875,881.91064453125,1004.408935546875
RT,2.347,-7587.90185546875,881.9105834960938,1004.4088134765625
RT,2.397,-7587.90185546875,881.9105834960938,1004.4088134765625
RT,2.448,-7587.90185546875,881.9105834960938,1004.4088134765625
RT,2.498,-7587.90185546875,881.9105834960938,1004.4088134765625
RT,2.549,-7826.44921875,881.9104614257812,1004.4083251953125
RT,2.599,-7965.591796875,881.910400390625,1004.4080200195312
RT,2.65,-8084.80615234375,881.9103393554688,1004.4077758789062
RT,2.7,-8124.5439453125,881.9102783203125,1004.40771484375
RT,2.751,-8164.16259765625,881.9102783203125,1004.4076538085938
RT,2.801,-8164.16259765625,881.9102783203125,1004.4076538085938
RT,2.852,-8164.16259765625,881.9102783203125,1004.4076538085938
RT,2.902,-8164.16259765625,881.9102783203125,1004.4076538085938
RT,2.952,-8422.638671875,881.91015625,1004.4071044921875
RT,3.004,-8502.1142578125,881.9100952148438,1004.4069213867188
RT,3.054,-8621.3291015625,881.9100341796875,1004.4066772460938
RT,3.104,-8661.06640625,881.9100341796875,1004.4066162109375
RT,3.155,-8740.4228515625,881.9099731445312,1004.4064331054688
RT,3.205,-8740.4228515625,881.9099731445312,1004.4064331054688
RT,3.29,-8740.4228515625,881.9099731445312,1004.4064331054688
RT,3.34,-8939.232421875,881.9098510742188,1004.4060668945312
RT,3.39,-8998.7802734375,881.9098510742188,1004.4059448242188
RT,3.44,-9137.9228515625,881.9097290039062,1004.4056396484375
RT,3.49,-9177.66015625,881.9097290039062,1004.4055786132812
RT,3.54,-9276.9462890625,881.90966796875,1004.4053955078125
RT,3.592,-9296.7548828125,881.90966796875,1004.4053344726562
RT,3.642,-9296.7548828125,881.90966796875,1004.4053344726562
RT,3.692,-9296.7548828125,881.90966796875,1004.4053344726562
RT,3.747,-9555.1123046875,881.9095458984375,1004.40478515625
RT,3.797,-9614.7783203125,881.9094848632812,1004.4046630859375
RT,3.847,-9733.9921875,881.909423828125,1004.4044189453125
RT,3.898,-9793.6591796875,881.909423828125,1004.404296875
RT,3.948,-9873.015625,881.9093627929688,1004.4041748046875
RT,3.998,-9873.015625,881.9093627929688,1004.4041748046875
RT,4.048,-9873.015625,881.9093627929688,1004.4041748046875
RT,4.098,-9873.015625,881.9093627929688,1004.4041748046875
RT,4.148,-10111.5634765625,881.9092407226562,1004.4036865234375
RT,4.198,-10151.30078125,881.9092407226562,1004.4036254882812
RT,4.249,-10310.2529296875,881.9091186523438,1004.4032592773438
RT,4.3,-10349.9912109375,881.9091186523438,1004.4031982421875
RT,4.35,-10469.205078125,881.9090576171875,1004.4029541015625
RT,4.4,-10469.205078125,881.9090576171875,1004.4029541015625
RT,4.451,-10469.205078125,881.9090576171875,1004.4029541015625
RT,4.501,-10469.205078125,881.9090576171875,1004.4029541015625
RT,4.551,-10727.5615234375,881.9088745117188,1004.4024047851562
RT,4.601,-10727.5615234375,881.9088745117188,1004.4024047851562
RT,4.651,-10906.4423828125,881.9088134765625,1004.4020385742188
RT,4.704,-11005.8466796875,881.9087524414062,1004.40185546875
RT,4.754,-11065.39453125,881.9087524414062,1004.4017333984375
RT,4.804,-11065.39453125,881.9087524414062,1004.4017333984375
RT,4.855,-11065.39453125,881.9087524414062,1004.4017333984375
RT,4.905,-11065.39453125,881.9087524414062,1004.4017333984375
RT,4.957,-11323.7509765625,881.9085693359375,1004.4012451171875
RT,5.007,-11423.15625,881.9085083007812,1004.4010009765625
RT,5.058,-11542.3701171875,881.908447265625,1004.4007568359375
RT,5.108,-11621.845703125,881.908447265625,1004.400634765625
RT,5.158,-11681.3935546875,881.9083862304688,1004.4005126953125
RT,5.208,-11681.3935546875,881.9083862304688,1004.4005126953125
RT,5.259,-11681.3935546875,881.9083862304688,1004.4005126953125
RT,5.309,-11681.3935546875,881.9083862304688,1004.4005126953125
RT,5.36,-11939.75,881.9082641601562,1004.3999633789062
RT,5.41,-12058.9638671875,881.908203125,1004.3997192382812
RT,5.489,-12178.177734375,881.9081420898438,1004.3994750976562
RT,5.539,-12297.3916015625,881.9080810546875,1004.3992309570312
RT,5.59,-12297.3916015625,881.9080810546875,1004.3992309570312
RT,5.64,-12297.3916015625,881.9080810546875,1004.3992309570312
RT,5.69,-12297.3916015625,881.9080810546875,1004.3992309570312
RT,5.743,-12555.748046875,881.9078979492188,1004.3987426757812
RT,5.793,-12595.486328125,881.9078979492188,1004.398681640625
RT,5.844,-12714.7001953125,881.9078369140625,1004.3984375
RT,5.894,-12814.10546875,881.9077758789062,1004.398193359375
RT,5.944,-12913.390625,881.90771484375,1004.3980102539062
RT,5.994,-12913.390625,881.90771484375,1004.3980102539062
RT,6.044,-12913.390625,881.90771484375,1004.3980102539062
RT,6.094,-12913.390625,881.90771484375,1004.3980102539062
RT,6.144,-13132.0087890625,881.9075927734375,1004.3975830078125
RT,6.195,-13171.7470703125,881.9075927734375,1004.3975219726562
RT,6.246,-13350.6279296875,881.907470703125,1004.3971557617188
RT,6.296,-13390.365234375,881.907470703125,1004.3970336914062
RT,6.347,-13489.6513671875,881.9074096679688,1004.3968505859375
RT,6.397,-13489.6513671875,881.9074096679688,1004.3968505859375
RT,6.447,-13489.6513671875,881.9074096679688,1004.3968505859375
RT,6.497,-13489.6513671875,881.9074096679688,1004.3968505859375
RT,6.548,-13728.1982421875,881.9072875976562,1004.3963623046875
RT,6.598,-13807.673828125,881.9072265625,1004.3961791992188
RT,6.649,-13966.6259765625,881.9071655273438,1004.3958740234375
RT,6.701,-14066.03125,881.9071044921875,1004.3956909179688
RT,6.752,-14125.578125,881.9071044921875,1004.3955688476562
RT,6.802,-14125.578125,881.9071044921875,1004.3955688476562
RT,6.852,-14125.578125,881.9071044921875,1004.3955688476562
RT,6.902,-14125.578125,881.9071044921875,1004.3955688476562
RT,6.952,-14383.9345703125,881.9069213867188,1004.39501953125
RT,7.002,-14443.6015625,881.9069213867188,1004.3948974609375
RT,7.052,-14562.8154296875,881.9068603515625,1004.3946533203125
RT,7.102,-14602.5537109375,881.9067993164062,1004.3945922851562
RT,7.152,-14721.767578125,881.90673828125,1004.3943481445312
RT,7.202,-14721.767578125,881.90673828125,1004.3943481445312
RT,7.252,-14721.767578125,881.90673828125,1004.3943481445312
RT,7.302,-14721.767578125,881.90673828125,1004.3943481445312
RT,7.354,-14960.314453125,881.9066162109375,1004.3938598632812
RT,7.404,-15059.7197265625,881.9065551757812,1004.3936767578125
RT,7.455,-15178.93359375,881.906494140625,1004.3934326171875
RT,7.505,-15278.337890625,881.9064331054688,1004.3932495117188
RT,7.555,-15337.8857421875,881.9064331054688,1004.3931274414062
RT,7.605,-15337.8857421875,881.9064331054688,1004.3931274414062
RT,7.656,-15337.8857421875,881.9064331054688,1004.3931274414062
RT,7.706,-15496.95703125,881.9063720703125,1004.3927612304688
RT,7.756,-15596.2421875,881.9063110351562,1004.392578125
RT,7.806,-15655.9091796875,881.90625,1004.3924560546875
RT,7.857,-15775.123046875,881.9061889648438,1004.3922119140625
RT,7.907,-15874.52734375,881.9061279296875,1004.3920288085938
RT,7.957,-15894.3369140625,881.9061279296875,1004.3919677734375
coast,0.0,-15894.3369140625,881.9061279296875,1004.3919677734375
coast,0.05,-15894.3369140625,881.9061279296875,1004.3919677734375
coast,0.1,-16132.259765625,881.906005859375,1004.3914794921875
coast,0.15,-16228.6279296875,881.9059448242188,1004.3912963867188
coast,0.201,-16341.4130859375,881.9058837890625,1004.3910522460938
coast,0.251,-16414.818359375,881.9058837890625,1004.3909301757812
coast,0.302,-16432.935546875,881.9058227539062,1004.390869140625
coast,0.352,-16432.935546875,881.9058227539062,1004.390869140625
coast,0.402,-16432.935546875,881.9058227539062,1004.390869140625
coast,0.453,-16589.41015625,881.90576171875,1004.3905639648438
coast,0.503,-16674.68359375,881.9057006835938,1004.390380859375
coast,0.553,-16741.302734375,881.9057006835938,1004.3902587890625
coast,0.603,-16838.55078125,881.9056396484375,1004.3900756835938
coast,0.653,-16870.25390625,881.9056396484375,1004.3900146484375
coast,0.705,-16885.966796875,881.9055786132812,1004.3899536132812
coast,0.755,-16885.966796875,881.9055786132812,1004.3899536132812
coast,0.805,-16885.966796875,881.9055786132812,1004.3899536132812
coast,0.855,-17035.544921875,881.905517578125,1004.3896484375
coast,0.906,-17122.61328125,881.9054565429688,1004.3894653320312
coast,0.956,-17150.923828125,881.9054565429688,1004.389404296875
coast,1.006,-17233.70703125,881.9053955078125,1004.3892822265625
coast,1.056,-17260.5859375,881.9053955078125,1004.3892211914062
coast,1.107,-17287.109375,881.9053955078125,1004.38916015625
coast,1.157,-17287.109375,881.9053955078125,1004.38916015625
coast,1.207,-17387.55859375,881.9053344726562,1004.3889770507812
coast,1.259,-17424.537109375,881.9053344726562,1004.3888549804688
coast,1.309,-17496.0703125,881.9052734375,1004.3887329101562
coast,1.359,-17541.97265625,881.9052734375,1004.3886108398438
coast,1.409,-17586.4453125,881.9052124023438,1004.3885498046875
coast,1.459,-17629.4921875,881.9052124023438,1004.3884887695312
coast,1.509,-17629.4921875,881.9052124023438,1004.3884887695312
coast,1.559,-17629.4921875,881.9052124023438,1004.3884887695312
coast,1.611,-17718.390625,881.9051513671875,1004.3883056640625
coast,1.661,-17747.33984375,881.9051513671875,1004.3882446289062
coast,1.737,-17802.796875,881.9050903320312,1004.3881225585938
coast,1.787,-17855.041015625,881.9050903320312,1004.3880004882812
coast,1.837,-17871.7421875,881.9050903320312,1004.387939453125
coast,1.889,-17896.01171875,881.905029296875,1004.387939453125
coast,1.942,-17896.01171875,881.905029296875,1004.387939453125
coast,1.992,-17896.01171875,881.905029296875,1004.387939453125
coast,2.042,-17976.451171875,881.905029296875,1004.3877563476562
coast,2.098,-18003.77734375,881.905029296875,1004.3876953125
coast,2.148,-18016.90625,881.9049682617188,1004.3876953125
coast,2.198,-18071.580078125,881.9049682617188,1004.3875732421875
coast,2.248,-18077.390625,881.9049682617188,1004.3875732421875
coast,2.302,-18077.390625,881.9049682617188,1004.3875732421875
coast,2.352,-18077.390625,881.9049682617188,1004.3875732421875
coast,2.402,-18135.69921875,881.9049072265625,1004.387451171875
coast,2.452,-18147.35546875,881.9049072265625,1004.3873901367188
coast,2.537,-18193.974609375,881.9049072265625,1004.3873291015625
coast,2.587,-18228.939453125,881.9049072265625,1004.3872680664062
coast,2.638,-18234.75,881.9049072265625,1004.38720703125
coast,2.688,-18234.75,881.9049072265625,1004.38720703125
coast,2.738,-18234.75,881.9049072265625,1004.38720703125
coast,2.788,-18293.060546875,881.9048461914062,1004.3870849609375
coast,2.84,-18310.525390625,881.9048461914062,1004.3870849609375
coast,2.89,-18345.490234375,881.9048461914062,1004.3870239257812
coast,2.94,-18357.14453125,881.90478515625,1004.386962890625
coast,2.99,-18386.265625,881.90478515625,1004.3869018554688
coast,3.043,-18392.07421875,881.90478515625,1004.3869018554688
coast,3.093,-18392.07421875,881.90478515625,1004.3869018554688
coast,3.143,-18392.07421875,881.90478515625,1004.3869018554688
coast,3.193,-18467.849609375,881.9047241210938,1004.3867797851562
coast,3.243,-18479.505859375,881.9047241210938,1004.38671875
coast,3.293,-18514.470703125,881.9047241210938,1004.3866577148438
coast,3.343,-18537.779296875,881.9047241210938,1004.3865966796875
coast,3.394,-18561.0546875,881.9047241210938,1004.3865966796875
coast,3.445,-18561.0546875,881.9047241210938,1004.3865966796875
coast,3.495,-18561.0546875,881.9047241210938,1004.3865966796875
coast,3.546,-18561.0546875,881.9047241210938,1004.3865966796875
coast,3.596,-18631.01953125,881.9046630859375,1004.3864135742188
coast,3.646,-18654.330078125,881.9046630859375,1004.3863525390625
coast,3.697,-18700.94921875,881.9046020507812,1004.3862915039062
coast,3.747,-18712.60546875,881.9046020507812,1004.3862915039062
coast,3.797,-18747.5703125,881.9046020507812,1004.3861694335938
coast,3.847,-18747.5703125,881.9046020507812,1004.3861694335938
coast,3.897,-18747.5703125,881.9046020507812,1004.3861694335938
coast,3.947,-18747.5703125,881.9046020507812,1004.3861694335938
coast,3.998,-18823.345703125,881.904541015625,1004.3860473632812
coast,4.048,-18846.654296875,881.904541015625,1004.385986328125
coast,4.098,-18881.619140625,881.904541015625,1004.3859252929688
coast,4.148,-18904.9296875,881.904541015625,1004.3858642578125
coast,4.199,-18910.740234375,881.904541015625,1004.3858642578125
coast,4.249,-18910.740234375,881.904541015625,1004.3858642578125
coast,4.299,-18910.740234375,881.904541015625,1004.3858642578125
coast,4.349,-18910.740234375,881.904541015625,1004.3858642578125
coast,4.399,-18980.705078125,881.9044799804688,1004.3857421875
coast,4.449,-19021.515625,881.9044799804688,1004.3856201171875
coast,4.499,-19056.48046875,881.9044189453125,1004.3855590820312
coast,4.549,-19068.134765625,881.9044189453125,1004.3855590820312
coast,4.6,-19073.9453125,881.9044189453125,1004.385498046875
coast,4.65,-19073.9453125,881.9044189453125,1004.385498046875
coast,4.7,-19073.9453125,881.9044189453125,1004.385498046875
coast,4.751,-19138.099609375,881.9044189453125,1004.3853759765625
coast,4.801,-19155.564453125,881.9043579101562,1004.3853759765625
coast,4.851,-19190.529296875,881.9043579101562,1004.3853149414062
coast,4.902,-19225.494140625,881.9043579101562,1004.3851928710938
coast,4.952,-19237.150390625,881.9043579101562,1004.3851928710938
coast,5.005,-19242.958984375,881.9043579101562,1004.3851928710938
coast,5.055,-19242.958984375,881.9043579101562,1004.3851928710938
coast,5.109,-19242.958984375,881.9043579101562,1004.3851928710938
coast,5.159,-19312.92578125,881.904296875,1004.3850708007812
coast,5.209,-19347.890625,881.904296875,1004.3849487304688
coast,5.259,-19377.044921875,881.9042358398438,1004.3848876953125
coast,5.31,-19412.009765625,881.9042358398438,1004.3848266601562
coast,5.36,-19423.6640625,881.9042358398438,1004.3848266601562
coast,5.411,-19423.6640625,881.9042358398438,1004.3848266601562
coast,5.461,-19423.6640625,881.9042358398438,1004.3848266601562
coast,5.537,-19481.974609375,881.9042358398438,1004.3847045898438
coast,5.587,-19522.78515625,881.9041748046875,1004.3846435546875
coast,5.637,-19534.439453125,881.9041748046875,1004.3845825195312
coast,5.687,-19569.404296875,881.9041748046875,1004.384521484375
coast,5.737,-19586.869140625,881.9041748046875,1004.3844604492188
coast,5.787,-19586.869140625,881.9041748046875,1004.3844604492188
coast,5.839,-19586.869140625,881.9041748046875,1004.3844604492188
coast,5.889,-19586.869140625,881.9041748046875,1004.3844604492188
coast,5.939,-19650.990234375,881.9041137695312,1004.3843383789062
coast,5.989,-19685.955078125,881.9041137695312,1004.38427734375
coast,6.039,-19697.609375,881.9041137695312,1004.38427734375
coast,6.09,-19744.23046875,881.904052734375,1004.3841552734375
coast,6.14,-19755.849609375,881.904052734375,1004.3841552734375
coast,6.192,-19755.849609375,881.904052734375,1004.3841552734375
coast,6.242,-19755.849609375,881.904052734375,1004.3841552734375
coast,6.292,-19814.16015625,881.904052734375,1004.384033203125
coast,6.343,-19831.625,881.9039916992188,1004.3839721679688
coast,6.393,-19878.244140625,881.9039916992188,1004.3839111328125
coast,6.443,-19889.900390625,881.9039916992188,1004.3838500976562
coast,6.494,-19913.173828125,881.9039916992188,1004.3838500976562
coast,6.544,-19913.173828125,881.9039916992188,1004.3838500976562
coast,6.594,-19913.173828125,881.9039916992188,1004.3838500976562
coast,6.644,-19913.173828125,881.9039916992188,1004.3838500976562
coast,6.694,-19988.94921875,881.9039306640625,1004.3836669921875
coast,6.744,-20006.44921875,881.9039306640625,1004.3836059570312
coast,6.795,-20041.4140625,881.9039306640625,1004.383544921875
coast,6.846,-20070.5703125,881.9038696289062,1004.3834838867188
coast,6.896,-20088.03515625,881.9038696289062,1004.3834838867188
coast,6.946,-20088.03515625,881.9038696289062,1004.3834838867188
coast,6.996,-20088.03515625,881.9038696289062,1004.3834838867188
coast,7.046,-20088.03515625,881.9038696289062,1004.3834838867188
coast,7.097,-20152.154296875,881.9038696289062,1004.3833618164062
coast,7.147,-20192.96484375,881.90380859375,1004.3832397460938
coast,7.197,-20227.9296875,881.90380859375,1004.3831787109375
coast,7.247,-20245.4296875,881.90380859375,1004.3831787109375
coast,7.298,-20257.083984375,881.90380859375,1004.3831176757812
coast,7.348,-20257.083984375,881.90380859375,1004.3831176757812
coast,7.399,-20257.083984375,881.90380859375,1004.3831176757812
coast,7.449,-20315.39453125,881.9037475585938,1004.3829956054688
coast,7.499,-20344.515625,881.9037475585938,1004.3829345703125
coast,7.55,-20367.82421875,881.9037475585938,1004.3828735351562
coast,7.6,-20414.4453125,881.9036865234375,1004.3828125
coast,7.65,-20426.099609375,881.9036865234375,1004.3828125
coast,7.702,-20437.75390625,881.9036865234375,1004.3827514648438
coast,7.752,-20437.75390625,881.9036865234375,1004.3827514648438
coast,7.802,-20437.75390625,881.9036865234375,1004.3827514648438
coast,7.852,-20507.71875,881.9036865234375,1004.3826293945312
coast,7.902,-20542.685546875,881.9036254882812,1004.382568359375
coast,7.952,-20554.33984375,881.9036254882812,1004.3825073242188
LT,0.0,-20600.958984375,881.9036254882812,1004.3824462890625
LT,0.05,-20600.958984375,881.9036254882812,1004.3824462890625
LT,0.104,-20600.958984375,881.9036254882812,1004.3824462890625
LT,0.175,-20641.892578125,881.903564453125,1004.38232421875
LT,0.225,-20670.3359375,881.903564453125,1004.3822631835938
LT,0.275,-20679.1328125,881.903564453125,1004.3822631835938
LT,0.325,-20703.380859375,881.903564453125,1004.3822021484375
LT,0.376,-20714.333984375,881.903564453125,1004.3822021484375
LT,0.426,-20714.333984375,881.903564453125,1004.3822021484375
LT,0.479,-20714.333984375,881.903564453125,1004.3822021484375
LT,0.529,-20714.333984375,881.903564453125,1004.3822021484375
LT,0.579,-20745.40234375,881.9035034179688,1004.3821411132812
LT,0.629,-20758.935546875,881.9035034179688,1004.3821411132812
LT,0.679,-20762.732421875,881.9035034179688,1004.382080078125
LT,0.729,-20772.962890625,881.9035034179688,1004.382080078125
LT,0.779,-20778.05078125,881.9035034179688,1004.382080078125
LT,0.829,-20778.05078125,881.9035034179688,1004.382080078125
LT,0.88,-20778.05078125,881.9035034179688,1004.382080078125
LT,0.93,-20795.037109375,881.9035034179688,1004.3820190429688
LT,0.981,-20800.125,881.9035034179688,1004.3820190429688
LT,1.031,-20808.619140625,881.9035034179688,1004.3820190429688
LT,1.081,-20817.11328125,881.9035034179688,1004.3820190429688
LT,1.131,-20827.298828125,881.9035034179688,1004.3819580078125
LT,1.183,-20828.990234375,881.9035034179688,1004.3819580078125
LT,1.233,-20828.990234375,881.9035034179688,1004.3819580078125
LT,1.283,-20828.990234375,881.9035034179688,1004.3819580078125
LT,1.335,-20847.669921875,881.9035034179688,1004.3819580078125
LT,1.386,-20854.4609375,881.9034423828125,1004.3818969726562
LT,1.436,-20864.646484375,881.9034423828125,1004.3818969726562
LT,1.486,-20868.041015625,881.9034423828125,1004.3818969726562
LT,1.536,-20874.822265625,881.9034423828125,1004.3818969726562
LT,1.586,-20874.822265625,881.9034423828125,1004.3818969726562
LT,1.636,-20874.822265625,881.9034423828125,1004.3818969726562
LT,1.686,-20874.822265625,881.9034423828125,1004.3818969726562
LT,1.737,-20895.203125,881.9034423828125,1004.3818359375
LT,1.787,-20903.697265625,881.9034423828125,1004.3818359375
LT,1.837,-20913.8828125,881.9034423828125,1004.3817749023438
LT,1.887,-20917.279296875,881.9034423828125,1004.3817749023438
LT,1.937,-20924.068359375,881.9034423828125,1004.3817749023438
LT,1.987,-20924.068359375,881.9034423828125,1004.3817749023438
LT,2.037,-20924.068359375,881.9034423828125,1004.3817749023438
LT,2.088,-20924.068359375,881.9034423828125,1004.3817749023438
LT,2.139,-20946.14453125,881.9034423828125,1004.3817138671875
LT,2.189,-20956.330078125,881.9034423828125,1004.3817138671875
LT,2.239,-20966.515625,881.9034423828125,1004.3817138671875
LT,2.289,-20969.91015625,881.9033813476562,1004.3817138671875
LT,2.34,-20971.603515625,881.9033813476562,1004.3816528320312
LT,2.39,-20971.603515625,881.9033813476562,1004.3816528320312
LT,2.44,-20971.603515625,881.9033813476562,1004.3816528320312
LT,2.492,-20991.974609375,881.9033813476562,1004.3816528320312
LT,2.542,-21002.16015625,881.9033813476562,1004.381591796875
LT,2.592,-21005.556640625,881.9033813476562,1004.381591796875
LT,2.642,-21015.7421875,881.9033813476562,1004.381591796875
LT,2.693,-21017.435546875,881.9033813476562,1004.381591796875
LT,2.775,-21017.435546875,881.9033813476562,1004.381591796875
LT,2.825,-21017.435546875,881.9033813476562,1004.381591796875
LT,2.878,-21037.81640625,881.9033813476562,1004.3815307617188
LT,2.928,-21048.001953125,881.9033813476562,1004.3815307617188
LT,2.978,-21051.3984375,881.9033813476562,1004.3815307617188
LT,3.029,-21061.583984375,881.9033813476562,1004.3814697265625
LT,3.079,-21063.275390625,881.9033813476562,1004.3814697265625
LT,3.129,-21063.275390625,881.9033813476562,1004.3814697265625
LT,3.179,-21063.275390625,881.9033813476562,1004.3814697265625
LT,3.229,-21081.955078125,881.9033203125,1004.3814697265625
LT,3.279,-21090.44921875,881.9033203125,1004.3814697265625
LT,3.329,-21097.240234375,881.9033203125,1004.3814086914062
LT,3.379,-21100.634765625,881.9033203125,1004.3814086914062
LT,3.429,-21110.8203125,881.9033203125,1004.3814086914062
LT,3.48,-21110.8203125,881.9033203125,1004.3814086914062
LT,3.53,-21110.8203125,881.9033203125,1004.3814086914062
LT,3.58,-21110.8203125,881.9033203125,1004.3814086914062
LT,3.631,-21132.89453125,881.9033203125,1004.38134765625
LT,3.681,-21143.080078125,881.9033203125,1004.38134765625
LT,3.731,-21153.267578125,881.9033203125,1004.3812866210938
LT,3.781,-21160.056640625,881.9033203125,1004.3812866210938
LT,3.831,-21163.453125,881.9033203125,1004.3812866210938
LT,3.882,-21163.453125,881.9033203125,1004.3812866210938
LT,3.932,-21163.453125,881.9033203125,1004.3812866210938
LT,3.982,-21177.033203125,881.9033203125,1004.3812866210938
LT,4.035,-21188.921875,881.9033203125,1004.3812255859375
LT,4.085,-21199.107421875,881.9032592773438,1004.3812255859375
LT,4.135,-21205.8984375,881.9032592773438,1004.3812255859375
LT,4.187,-21207.591796875,881.9032592773438,1004.3812255859375
LT,4.237,-21207.591796875,881.9032592773438,1004.3812255859375
LT,4.287,-21207.591796875,881.9032592773438,1004.3812255859375
LT,4.337,-21222.875,881.9032592773438,1004.3811645507812
LT,4.387,-21229.666015625,881.9032592773438,1004.3811645507812
LT,4.437,-21239.8515625,881.9032592773438,1004.3811645507812
LT,4.487,-21244.94921875,881.9032592773438,1004.381103515625
LT,4.537,-21251.73046875,881.9032592773438,1004.381103515625
LT,4.587,-21251.73046875,881.9032592773438,1004.381103515625
LT,4.638,-21251.73046875,881.9032592773438,1004.381103515625
LT,4.688,-21251.73046875,881.9032592773438,1004.381103515625
LT,4.741,-21272.111328125,881.9032592773438,1004.381103515625
LT,4.791,-21284.0,881.9032592773438,1004.3810424804688
LT,4.841,-21290.791015625,881.9032592773438,1004.3810424804688
LT,4.891,-21297.58203125,881.9032592773438,1004.3810424804688
LT,4.942,-21299.275390625,881.9032592773438,1004.3810424804688
LT,4.992,-21299.275390625,881.9032592773438,1004.3810424804688
LT,5.042,-21299.275390625,881.9032592773438,1004.3810424804688
LT,5.092,-21316.26171875,881.9031982421875,1004.3809814453125
LT,5.142,-21324.744140625,881.9031982421875,1004.3809814453125
LT,5.192,-21331.53515625,881.9031982421875,1004.3809814453125
LT,5.242,-21341.720703125,881.9031982421875,1004.3809204101562
LT,5.292,-21346.818359375,881.9031982421875,1004.3809204101562
LT,5.343,-21350.21484375,881.9031982421875,1004.3809204101562
LT,5.393,-21350.21484375,881.9031982421875,1004.3809204101562
LT,5.443,-21362.103515625,881.9031982421875,1004.3809204101562
LT,5.493,-21370.5859375,881.9031982421875,1004.380859375
LT,5.578,-21380.771484375,881.9031982421875,1004.380859375
LT,5.628,-21390.95703125,881.9031982421875,1004.380859375
LT,5.678,-21396.044921875,881.9031982421875,1004.3807983398438
LT,5.728,-21396.044921875,881.9031982421875,1004.3807983398438
LT,5.778,-21396.044921875,881.9031982421875,1004.3807983398438
LT,5.828,-21413.03125,881.9031982421875,1004.3807983398438
LT,5.882,-21418.119140625,881.9031982421875,1004.3807983398438
LT,5.932,-21430.0078125,881.9031372070312,1004.3807373046875
LT,5.983,-21436.798828125,881.9031372070312,1004.3807373046875
LT,6.033,-21443.58984375,881.9031372070312,1004.3807373046875
LT,6.085,-21445.283203125,881.9031372070312,1004.3807373046875
LT,6.135,-21445.283203125,881.9031372070312,1004.3807373046875
LT,6.185,-21445.283203125,881.9031372070312,1004.3807373046875
LT,6.235,-21463.9609375,881.9031372070312,1004.3806762695312
LT,6.285,-21469.060546875,881.9031372070312,1004.3806762695312
LT,6.335,-21479.24609375,881.9031372070312,1004.3806762695312
LT,6.385,-21482.640625,881.9031372070312,1004.3806762695312
LT,6.438,-21489.431640625,881.9031372070312,1004.380615234375
LT,6.488,-21489.431640625,881.9031372070312,1004.380615234375
LT,6.538,-21489.431640625,881.9031372070312,1004.380615234375
LT,6.588,-21506.41796875,881.9031372070312,1004.380615234375
LT,6.638,-21514.900390625,881.9031372070312,1004.3805541992188
LT,6.689,-21525.087890625,881.9031372070312,1004.3805541992188
LT,6.739,-21535.2734375,881.9031372070312,1004.3805541992188
LT,6.789,-21538.66796875,881.903076171875,1004.3805541992188
LT,6.84,-21542.064453125,881.903076171875,1004.3805541992188
LT,6.89,-21542.064453125,881.903076171875,1004.3805541992188
LT,6.94,-21542.064453125,881.903076171875,1004.3805541992188
LT,6.99,-21560.7421875,881.903076171875,1004.3804931640625
LT,7.075,-21570.927734375,881.903076171875,1004.3804931640625
LT,7.125,-21581.115234375,881.903076171875,1004.3804321289062
LT,7.175,-21586.203125,881.903076171875,1004.3804321289062
LT,7.225,-21586.203125,881.903076171875,1004.3804321289062
LT,7.275,-21586.203125,881.903076171875,1004.3804321289062
LT,7.325,-21603.189453125,881.903076171875,1004.3804321289062
LT,7.376,-21608.27734375,881.903076171875,1004.38037109375
LT,7.426,-21620.166015625,881.903076171875,1004.38037109375
LT,7.476,-21620.166015625,881.903076171875,1004.38037109375
LT,7.526,-21632.04296875,881.903076171875,1004.38037109375
LT,7.577,-21633.736328125,881.903076171875,1004.38037109375
LT,7.627,-21633.736328125,881.903076171875,1004.38037109375
LT,7.677,-21633.736328125,881.903076171875,1004.38037109375
LT,7.729,-21652.416015625,881.9030151367188,1004.3803100585938
LT,7.779,-21659.20703125,881.9030151367188,1004.3803100585938
LT,7.829,-21672.787109375,881.9030151367188,1004.3802490234375
LT,7.879,-21676.18359375,881.9030151367188,1004.3802490234375
LT,7.929,-21681.271484375,881.9030151367188,1004.3802490234375
LT,7.979,-21681.271484375,881.9030151367188,1004.3802490234375
coast2,0.0,-21699.958984375,881.9030151367188,1004.3801879882812
coast2,0.05,-21709.087890625,881.9030151367188,1004.3801879882812
coast2,0.1,-21722.490234375,881.9030151367188,1004.3801879882812
coast2,0.15,-21733.17578125,881.9030151367188,1004.380126953125
coast2,0.2,-21748.78125,881.9030151367188,1004.380126953125
coast2,0.25,-21748.78125,881.9030151367188,1004.380126953125
coast2,0.301,-21748.78125,881.9030151367188,1004.380126953125
coast2,0.351,-21780.17578125,881.9029541015625,1004.3800659179688
coast2,0.401,-21797.376953125,881.9029541015625,1004.3800048828125
coast2,0.478,-21826.087890625,881.9029541015625,1004.3799438476562
coast2,0.528,-21858.291015625,881.9029541015625,1004.3798828125
coast2,0.579,-21875.611328125,881.9029541015625,1004.3798828125
coast2,0.629,-21875.611328125,881.9029541015625,1004.3798828125
coast2,0.68,-21875.611328125,881.9029541015625,1004.3798828125
coast2,0.73,-21875.611328125,881.9029541015625,1004.3798828125
coast2,0.78,-21951.38671875,881.9028930664062,1004.3796997070312
coast2,0.83,-21986.3515625,881.9028930664062,1004.379638671875
coast2,0.881,-21998.005859375,881.90283203125,1004.3795776367188
coast2,0.932,-22044.626953125,881.90283203125,1004.3795166015625
coast2,0.982,-22062.091796875,881.90283203125,1004.3794555664062
coast2,1.032,-22062.091796875,881.90283203125,1004.3794555664062
coast2,1.082,-22062.091796875,881.90283203125,1004.3794555664062
coast2,1.132,-22062.091796875,881.90283203125,1004.3794555664062
coast2,1.183,-22143.7109375,881.9027709960938,1004.3793334960938
coast2,1.233,-22178.677734375,881.9027709960938,1004.3792114257812
coast2,1.283,-22190.33203125,881.9027709960938,1004.3792114257812
coast2,1.333,-22236.951171875,881.9027099609375,1004.379150390625
coast2,1.383,-22242.76171875,881.9027099609375,1004.3790893554688
coast2,1.433,-22242.76171875,881.9027099609375,1004.3790893554688
coast2,1.483,-22242.76171875,881.9027099609375,1004.3790893554688
coast2,1.533,-22289.416015625,881.9027099609375,1004.3790283203125
coast2,1.583,-22318.537109375,881.9027099609375,1004.3789672851562
coast2,1.634,-22353.501953125,881.9026489257812,1004.37890625
coast2,1.684,-22365.15625,881.9026489257812,1004.3788452148438
coast2,1.734,-22411.77734375,881.9026489257812,1004.3787841796875
coast2,1.784,-22417.5859375,881.9026489257812,1004.3787841796875
coast2,1.834,-22417.5859375,881.9026489257812,1004.3787841796875
coast2,1.885,-22417.5859375,881.9026489257812,1004.3787841796875
coast2,1.935,-22475.896484375,881.902587890625,1004.378662109375
coast2,1.989,-22493.361328125,881.902587890625,1004.3786010742188
coast2,2.042,-22539.982421875,881.902587890625,1004.3785400390625
coast2,2.092,-22563.291015625,881.9025268554688,1004.3784790039062
coast2,2.143,-22592.412109375,881.9025268554688,1004.37841796875
coast2,2.194,-22598.22265625,881.9025268554688,1004.37841796875
coast2,2.279,-22598.22265625,881.9025268554688,1004.37841796875
coast2,2.329,-22598.22265625,881.9025268554688,1004.37841796875
coast2,2.38,-22662.341796875,881.9025268554688,1004.3782348632812
coast2,2.43,-22708.9609375,881.9024658203125,1004.378173828125
coast2,2.48,-22708.9609375,881.9024658203125,1004.378173828125
coast2,2.531,-22743.92578125,881.9024658203125,1004.3781127929688
coast2,2.581,-22761.392578125,881.9024658203125,1004.3780517578125
coast2,2.631,-22761.392578125,881.9024658203125,1004.3780517578125
coast2,2.681,-22761.392578125,881.9024658203125,1004.3780517578125
coast2,2.731,-22761.392578125,881.9024658203125,1004.3780517578125
coast2,2.781,-22837.166015625,881.9024047851562,1004.3779296875
coast2,2.832,-22872.130859375,881.9024047851562,1004.3778686523438
coast2,2.882,-22883.787109375,881.9024047851562,1004.3778076171875
coast2,2.933,-22930.40625,881.90234375,1004.3777465820312
coast2,2.983,-22942.02734375,881.90234375,1004.377685546875
coast2,3.033,-22942.02734375,881.90234375,1004.377685546875
coast2,3.083,-22942.02734375,881.90234375,1004.377685546875
coast2,3.133,-22994.52734375,881.90234375,1004.3775634765625
coast2,3.183,-23011.9921875,881.90234375,1004.3775634765625
coast2,3.234,-23046.95703125,881.9022827148438,1004.3775024414062
coast2,3.284,-23058.611328125,881.9022827148438,1004.37744140625
coast2,3.334,-23105.232421875,881.9022827148438,1004.3773803710938
coast2,3.384,-23111.041015625,881.9022827148438,1004.3773803710938
coast2,3.435,-23111.041015625,881.9022827148438,1004.3773803710938
coast2,3.485,-23111.041015625,881.9022827148438,1004.3773803710938
coast2,3.535,-23163.541015625,881.9022216796875,1004.3772583007812
coast2,3.587,-23181.005859375,881.9022216796875,1004.377197265625
coast2,3.677,-23221.81640625,881.9022216796875,1004.3771362304688
coast2,3.728,-23256.78125,881.9021606445312,1004.3770751953125
coast2,3.778,-23274.24609375,881.9021606445312,1004.3770141601562
coast2,3.828,-23274.24609375,881.9021606445312,1004.3770141601562
coast2,3.878,-23274.24609375,881.9021606445312,1004.3770141601562
coast2,3.928,-23274.24609375,881.9021606445312,1004.3770141601562
coast2,3.979,-23344.2109375,881.9021606445312,1004.3768920898438
coast2,4.029,-23379.17578125,881.902099609375,1004.3768310546875
coast2,4.079,-23390.83203125,881.902099609375,1004.3767700195312
coast2,4.129,-23437.451171875,881.902099609375,1004.376708984375
coast2,4.18,-23449.072265625,881.902099609375,1004.3766479492188
coast2,4.23,-23449.072265625,881.902099609375,1004.3766479492188
coast2,4.28,-23449.072265625,881.902099609375,1004.3766479492188
coast2,4.33,-23449.072265625,881.902099609375,1004.3766479492188
coast2,4.38,-23524.845703125,881.9020385742188,1004.3765258789062
coast2,4.43,-23559.8125,881.9020385742188,1004.37646484375
coast2,4.48,-23571.466796875,881.9020385742188,1004.3764038085938
coast2,4.53,-23606.431640625,881.9019775390625,1004.3763427734375
coast2,4.58,-23623.896484375,881.9019775390625,1004.3763427734375
coast2,4.631,-23623.896484375,881.9019775390625,1004.3763427734375
coast2,4.681,-23623.896484375,881.9019775390625,1004.3763427734375
coast2,4.731,-23623.896484375,881.9019775390625,1004.3763427734375
coast2,4.781,-23688.015625,881.9019775390625,1004.3761596679688
coast2,4.832,-23722.982421875,881.9019165039062,1004.3760986328125
coast2,4.882,-23746.291015625,881.9019165039062,1004.3760986328125
coast2,4.934,-23781.255859375,881.9019165039062,1004.3759765625
coast2,4.984,-23804.56640625,881.9019165039062,1004.3759765625
coast2,5.034,-23822.06640625,881.90185546875,1004.3759155273438
coast2,5.084,-23822.06640625,881.90185546875,1004.3759155273438
coast2,5.134,-23822.06640625,881.90185546875,1004.3759155273438
coast2,5.184,-23874.56640625,881.90185546875,1004.3757934570312
coast2,5.234,-23915.341796875,881.90185546875,1004.375732421875
coast2,5.284,-23938.65234375,881.9017944335938,1004.3756713867188
coast2,5.334,-23985.271484375,881.9017944335938,1004.3756103515625
coast2,5.385,-23996.92578125,881.9017944335938,1004.3755493164062
coast2,5.438,-24008.546875,881.9017944335938,1004.3755493164062
coast2,5.488,-24008.546875,881.9017944335938,1004.3755493164062
coast2,5.539,-24008.546875,881.9017944335938,1004.3755493164062
coast2,5.589,-24008.546875,881.9017944335938,1004.3755493164062
coast2,5.639,-24095.9765625,881.9017333984375,1004.3753662109375
coast2,5.689,-24125.130859375,881.9017333984375,1004.3753051757812
coast2,5.739,-24160.095703125,881.9016723632812,1004.375244140625
coast2,5.789,-24171.751953125,881.9016723632812,1004.3751831054688
coast2,5.839,-24195.02734375,881.9016723632812,1004.3751831054688
coast2,5.889,-24195.02734375,881.9016723632812,1004.3751831054688
coast2,5.94,-24195.02734375,881.9016723632812,1004.3751831054688
coast2,5.99,-24195.02734375,881.9016723632812,1004.3751831054688
coast2,6.04,-24264.9921875,881.9016723632812,1004.375
coast2,6.091,-24288.30078125,881.901611328125,1004.375
coast2,6.141,-24334.921875,881.901611328125,1004.3748779296875
coast2,6.192,-24358.232421875,881.901611328125,1004.3748168945312
coast2,6.242,-24387.3515625,881.9015502929688,1004.374755859375
coast2,6.292,-24393.162109375,881.9015502929688,1004.374755859375
coast2,6.345,-24393.162109375,881.9015502929688,1004.374755859375
coast2,6.395,-24393.162109375,881.9015502929688,1004.374755859375
coast2,6.446,-24451.470703125,881.9015502929688,1004.3746337890625
coast2,6.496,-24480.591796875,881.9015502929688,1004.3745727539062
coast2,6.578,-24515.556640625,881.9014892578125,1004.37451171875
coast2,6.628,-24568.021484375,881.9014892578125,1004.3743896484375
coast2,6.678,-24579.67578125,881.9014892578125,1004.3743896484375
coast2,6.728,-24591.33203125,881.9014892578125,1004.3743286132812
coast2,6.778,-24591.33203125,881.9014892578125,1004.3743286132812
coast2,6.829,-24591.33203125,881.9014892578125,1004.3743286132812
coast2,6.879,-24655.451171875,881.9014282226562,1004.3742065429688
coast2,6.929,-24690.416015625,881.9014282226562,1004.3741455078125
coast2,6.979,-24702.072265625,881.9014282226562,1004.3741455078125
coast2,7.031,-24737.037109375,881.9013671875,1004.3740844726562
coast2,7.081,-24760.345703125,881.9013671875,1004.3740234375
coast2,7.132,-24772.001953125,881.9013671875,1004.3739624023438
coast2,7.182,-24772.001953125,881.9013671875,1004.3739624023438
coast2,7.232,-24772.001953125,881.9013671875,1004.3739624023438
coast2,7.284,-24830.310546875,881.9013671875,1004.3738403320312
coast2,7.334,-24865.27734375,881.9013061523438,1004.373779296875
coast2,7.384,-24894.431640625,881.9013061523438,1004.3737182617188
coast2,7.434,-24929.396484375,881.9013061523438,1004.3736572265625
coast2,7.484,-24952.70703125,881.9012451171875,1004.3735961914062
coast2,7.534,-24958.515625,881.9012451171875,1004.3735961914062
coast2,7.584,-24958.515625,881.9012451171875,1004.3735961914062
coast2,7.635,-24958.515625,881.9012451171875,1004.3735961914062
coast2,7.685,-24958.515625,881.9012451171875,1004.3735961914062
coast2,7.736,-25028.48046875,881.9012451171875,1004.3734741210938
coast2,7.786,-25057.63671875,881.9012451171875,1004.3734130859375
coast2,7.837,-25092.6015625,881.9011840820312,1004.3733520507812
coast2,7.887,-25104.255859375,881.9011840820312,1004.373291015625
coast2,7.937,-25121.720703125,881.9011840820312,1004.373291015625
coast2,7.987,-25121.720703125,881.9011840820312,1004.373291015625
1 phase t x y z
2 idle 0.0 -1032.5526123046875 881.9141235351562 1004.4220581054688
3 idle 0.05 -1038.362548828125 881.9141235351562 1004.4220581054688
4 idle 0.1 -1038.362548828125 881.9141235351562 1004.4220581054688
5 idle 0.162 -1038.362548828125 881.9141235351562 1004.4220581054688
6 idle 0.212 -1090.8275146484375 881.9140625 1004.4219360351562
7 idle 0.262 -1102.4825439453125 881.9140625 1004.4219360351562
8 idle 0.312 -1143.2926025390625 881.9140625 1004.4218139648438
9 idle 0.362 -1166.6025390625 881.9140625 1004.4217529296875
10 idle 0.413 -1201.5675048828125 881.9140014648438 1004.4216918945312
11 idle 0.463 -1201.5675048828125 881.9140014648438 1004.4216918945312
12 idle 0.516 -1201.5675048828125 881.9140014648438 1004.4216918945312
13 idle 0.566 -1201.5675048828125 881.9140014648438 1004.4216918945312
14 idle 0.616 -1277.342529296875 881.9140014648438 1004.4215698242188
15 idle 0.666 -1300.652587890625 881.9139404296875 1004.4215087890625
16 idle 0.716 -1335.6175537109375 881.9139404296875 1004.4214477539062
17 idle 0.767 -1358.927490234375 881.9139404296875 1004.42138671875
18 idle 0.817 -1388.0474853515625 881.9139404296875 1004.4213256835938
19 idle 0.867 -1388.0474853515625 881.9139404296875 1004.4213256835938
20 idle 0.917 -1388.0474853515625 881.9139404296875 1004.4213256835938
21 idle 0.968 -1388.0474853515625 881.9139404296875 1004.4213256835938
22 idle 1.018 -1458.0125732421875 881.9138793945312 1004.4212036132812
23 idle 1.068 -1492.9775390625 881.9138793945312 1004.421142578125
24 idle 1.118 -1527.9425048828125 881.913818359375 1004.4210205078125
25 idle 1.168 -1539.5975341796875 881.913818359375 1004.4210205078125
26 idle 1.218 -1551.217529296875 881.913818359375 1004.4210205078125
27 idle 1.269 -1551.217529296875 881.913818359375 1004.4210205078125
28 idle 1.319 -1551.217529296875 881.913818359375 1004.4210205078125
29 idle 1.369 -1603.6824951171875 881.913818359375 1004.4208984375
30 idle 1.419 -1638.6474609375 881.9137573242188 1004.4208374023438
31 idle 1.469 -1650.302490234375 881.9137573242188 1004.4207763671875
32 idle 1.519 -1685.2674560546875 881.9137573242188 1004.4207153320312
33 idle 1.572 -1691.0775146484375 881.9137573242188 1004.4207153320312
34 idle 1.622 -1691.0775146484375 881.9137573242188 1004.4207153320312
35 idle 1.672 -1691.0775146484375 881.9137573242188 1004.4207153320312
36 idle 1.722 -1749.387451171875 881.9136962890625 1004.4205932617188
37 idle 1.773 -1761.04248046875 881.9136962890625 1004.4205932617188
38 idle 1.823 -1807.6624755859375 881.9136962890625 1004.4204711914062
39 idle 1.873 -1819.3175048828125 881.9136962890625 1004.4204711914062
40 idle 1.923 -1842.5924072265625 881.9136962890625 1004.42041015625
41 idle 1.973 -1842.5924072265625 881.9136962890625 1004.42041015625
42 idle 2.024 -1842.5924072265625 881.9136962890625 1004.42041015625
43 idle 2.074 -1842.5924072265625 881.9136962890625 1004.42041015625
44 idle 2.124 -1906.71240234375 881.9136352539062 1004.4202880859375
45 idle 2.174 -1935.867431640625 881.9136352539062 1004.4202270507812
46 idle 2.224 -1970.8323974609375 881.91357421875 1004.420166015625
47 idle 2.275 -1982.4874267578125 881.91357421875 1004.4201049804688
48 idle 2.325 -1994.107421875 881.91357421875 1004.4201049804688
49 idle 2.375 -1994.107421875 881.91357421875 1004.4201049804688
50 idle 2.425 -1994.107421875 881.91357421875 1004.4201049804688
51 idle 2.475 -2058.262451171875 881.91357421875 1004.4199829101562
52 idle 2.525 -2075.7275390625 881.91357421875 1004.419921875
53 idle 2.575 -2116.537353515625 881.9135131835938 1004.4198608398438
54 idle 2.625 -2151.50244140625 881.9135131835938 1004.4197998046875
55 idle 2.675 -2169.00244140625 881.9135131835938 1004.4197387695312
56 idle 2.726 -2174.8125 881.9135131835938 1004.4197387695312
57 idle 2.776 -2174.8125 881.9135131835938 1004.4197387695312
58 idle 2.826 -2174.8125 881.9135131835938 1004.4197387695312
59 idle 2.876 -2238.932373046875 881.9134521484375 1004.4196166992188
60 idle 2.927 -2279.742431640625 881.9134521484375 1004.4194946289062
61 idle 2.977 -2291.3974609375 881.9134521484375 1004.4194946289062
62 idle 3.027 -2320.517333984375 881.9133911132812 1004.41943359375
63 idle 3.077 -2326.327392578125 881.9133911132812 1004.41943359375
64 idle 3.128 -2326.327392578125 881.9133911132812 1004.41943359375
65 idle 3.18 -2326.327392578125 881.9133911132812 1004.41943359375
66 idle 3.23 -2390.482421875 881.9133911132812 1004.4193115234375
67 idle 3.28 -2419.602294921875 881.9133911132812 1004.4192504882812
68 idle 3.361 -2454.5673828125 881.913330078125 1004.419189453125
69 idle 3.411 -2489.532470703125 881.913330078125 1004.4191284179688
70 idle 3.464 -2501.15234375 881.913330078125 1004.4190673828125
71 idle 3.514 -2501.15234375 881.913330078125 1004.4190673828125
72 idle 3.564 -2501.15234375 881.913330078125 1004.4190673828125
73 idle 3.615 -2547.7724609375 881.9132690429688 1004.4190063476562
74 idle 3.665 -2559.427490234375 881.9132690429688 1004.4189453125
75 idle 3.715 -2600.2373046875 881.9132690429688 1004.4188842773438
76 idle 3.765 -2629.392333984375 881.9132690429688 1004.4188232421875
77 idle 3.815 -2658.512451171875 881.9132080078125 1004.4187622070312
78 idle 3.865 -2664.322265625 881.9132080078125 1004.4187622070312
79 idle 3.916 -2664.322265625 881.9132080078125 1004.4187622070312
80 idle 3.968 -2664.322265625 881.9132080078125 1004.4187622070312
81 idle 4.019 -2728.4423828125 881.9132080078125 1004.4186401367188
82 idle 4.069 -2740.097412109375 881.9132080078125 1004.4185791015625
83 idle 4.119 -2792.562255859375 881.9131469726562 1004.41845703125
84 idle 4.169 -2804.21728515625 881.9131469726562 1004.41845703125
85 idle 4.221 -2815.83740234375 881.9131469726562 1004.41845703125
86 idle 4.271 -2815.83740234375 881.9131469726562 1004.41845703125
87 idle 4.324 -2815.83740234375 881.9131469726562 1004.41845703125
88 idle 4.374 -2874.147216796875 881.9131469726562 1004.4183349609375
89 idle 4.424 -2903.267333984375 881.9130859375 1004.4182739257812
90 idle 4.475 -2938.232421875 881.9130859375 1004.418212890625
91 idle 4.525 -2973.197265625 881.9130859375 1004.4180908203125
92 idle 4.575 -2996.50732421875 881.9130249023438 1004.4180908203125
93 idle 4.627 -3008.162353515625 881.9130249023438 1004.4180297851562
94 idle 4.677 -3008.162353515625 881.9130249023438 1004.4180297851562
95 idle 4.727 -3008.162353515625 881.9130249023438 1004.4180297851562
96 idle 4.778 -3072.2822265625 881.9130249023438 1004.4179077148438
97 idle 4.863 -3113.09228515625 881.9129638671875 1004.4178466796875
98 idle 4.913 -3148.057373046875 881.9129638671875 1004.4177856445312
99 idle 4.963 -3165.522216796875 881.9129638671875 1004.417724609375
100 idle 5.013 -3165.522216796875 881.9129638671875 1004.417724609375
101 idle 5.064 -3165.522216796875 881.9129638671875 1004.417724609375
102 idle 5.114 -3223.832275390625 881.9129028320312 1004.4176025390625
103 idle 5.164 -3241.29736328125 881.9129028320312 1004.4176025390625
104 idle 5.214 -3276.26220703125 881.9129028320312 1004.41748046875
105 idle 5.266 -3299.572265625 881.9129028320312 1004.41748046875
106 idle 5.316 -3334.537353515625 881.912841796875 1004.4173583984375
107 idle 5.367 -3340.34716796875 881.912841796875 1004.4173583984375
108 idle 5.417 -3340.34716796875 881.912841796875 1004.4173583984375
109 idle 5.467 -3340.34716796875 881.912841796875 1004.4173583984375
110 idle 5.519 -3416.122314453125 881.912841796875 1004.417236328125
111 idle 5.569 -3427.77734375 881.912841796875 1004.4171752929688
112 idle 5.619 -3462.7421875 881.9127807617188 1004.4171142578125
113 idle 5.669 -3491.897216796875 881.9127807617188 1004.4170532226562
114 idle 5.719 -3521.017333984375 881.9127807617188 1004.4169921875
115 idle 5.769 -3521.017333984375 881.9127807617188 1004.4169921875
116 idle 5.819 -3521.017333984375 881.9127807617188 1004.4169921875
117 idle 5.87 -3521.017333984375 881.9127807617188 1004.4169921875
118 idle 5.92 -3585.13720703125 881.9127197265625 1004.4168701171875
119 idle 5.97 -3608.447265625 881.9127197265625 1004.4168090820312
120 idle 6.02 -3643.412109375 881.9127197265625 1004.416748046875
121 idle 6.07 -3655.067138671875 881.9127197265625 1004.416748046875
122 idle 6.12 -3672.567138671875 881.9126586914062 1004.4166870117188
123 idle 6.173 -3672.567138671875 881.9126586914062 1004.4166870117188
124 idle 6.223 -3672.567138671875 881.9126586914062 1004.4166870117188
125 idle 6.273 -3736.687255859375 881.9126586914062 1004.4165649414062
126 idle 6.323 -3771.652099609375 881.9126586914062 1004.41650390625
127 idle 6.374 -3783.30712890625 881.9126586914062 1004.41650390625
128 idle 6.424 -3829.92724609375 881.91259765625 1004.4163818359375
129 idle 6.474 -3835.7373046875 881.91259765625 1004.4163818359375
130 idle 6.531 -3835.7373046875 881.91259765625 1004.4163818359375
131 idle 6.581 -3835.7373046875 881.91259765625 1004.4163818359375
132 idle 6.633 -3894.047119140625 881.91259765625 1004.416259765625
133 idle 6.683 -3905.7021484375 881.9125366210938 1004.416259765625
134 idle 6.761 -3952.322265625 881.9125366210938 1004.4161376953125
135 idle 6.811 -3981.442138671875 881.9125366210938 1004.4160766601562
136 idle 6.863 -3987.252197265625 881.9125366210938 1004.4160766601562
137 idle 6.913 -3987.252197265625 881.9125366210938 1004.4160766601562
138 idle 6.963 -3987.252197265625 881.9125366210938 1004.4160766601562
139 idle 7.013 -4039.71728515625 881.9124755859375 1004.4159545898438
140 idle 7.064 -4063.027099609375 881.9124755859375 1004.4158935546875
141 idle 7.114 -4097.9921875 881.9124755859375 1004.4158325195312
142 idle 7.164 -4109.64697265625 881.9124755859375 1004.4158325195312
143 idle 7.214 -4150.42236328125 881.9124145507812 1004.415771484375
144 idle 7.264 -4156.23193359375 881.9124145507812 1004.4157104492188
145 idle 7.315 -4156.23193359375 881.9124145507812 1004.4157104492188
146 idle 7.365 -4156.23193359375 881.9124145507812 1004.4157104492188
147 idle 7.415 -4220.35205078125 881.9124145507812 1004.4155883789062
148 idle 7.466 -4243.662109375 881.912353515625 1004.41552734375
149 idle 7.516 -4278.626953125 881.912353515625 1004.4154663085938
150 idle 7.566 -4307.7822265625 881.912353515625 1004.4154052734375
151 idle 7.616 -4336.90234375 881.912353515625 1004.4153442382812
152 idle 7.667 -4336.90234375 881.912353515625 1004.4153442382812
153 idle 7.717 -4336.90234375 881.912353515625 1004.4153442382812
154 idle 7.767 -4336.90234375 881.912353515625 1004.4153442382812
155 idle 7.82 -4401.02197265625 881.9122924804688 1004.4152221679688
156 idle 7.87 -4424.33203125 881.9122924804688 1004.4152221679688
157 idle 7.92 -4470.9521484375 881.9122314453125 1004.4151000976562
158 idle 7.97 -4482.60693359375 881.9122314453125 1004.4151000976562
159 RT 0.0 -4511.76220703125 881.9122314453125 1004.4150390625
160 RT 0.05 -4511.76220703125 881.9122314453125 1004.4150390625
161 RT 0.1 -4511.76220703125 881.9122314453125 1004.4150390625
162 RT 0.151 -4591.10205078125 881.9121704101562 1004.4148559570312
163 RT 0.203 -4631.14013671875 881.9121704101562 1004.414794921875
164 RT 0.253 -4688.6787109375 881.9121704101562 1004.4146728515625
165 RT 0.303 -4745.97314453125 881.912109375 1004.41455078125
166 RT 0.353 -4758.11572265625 881.912109375 1004.4144897460938
167 RT 0.404 -4758.11572265625 881.912109375 1004.4144897460938
168 RT 0.454 -4758.11572265625 881.912109375 1004.4144897460938
169 RT 0.504 -4894.6865234375 881.9120483398438 1004.4142456054688
170 RT 0.554 -4976.0556640625 881.9119873046875 1004.4140625
171 RT 0.605 -5047.275390625 881.9119262695312 1004.4139404296875
172 RT 0.655 -5163.5263671875 881.911865234375 1004.4136962890625
173 RT 0.705 -5203.26416015625 881.911865234375 1004.4136352539062
174 RT 0.756 -5223.07373046875 881.911865234375 1004.41357421875
175 RT 0.806 -5223.07373046875 881.911865234375 1004.41357421875
176 RT 0.857 -5223.07373046875 881.911865234375 1004.41357421875
177 RT 0.908 -5421.8828125 881.9117431640625 1004.4132080078125
178 RT 0.989 -5541.0966796875 881.9116821289062 1004.4129638671875
179 RT 1.039 -5700.048828125 881.91162109375 1004.41259765625
180 RT 1.09 -5739.78662109375 881.9115600585938 1004.4125366210938
181 RT 1.14 -5779.52490234375 881.9115600585938 1004.4124755859375
182 RT 1.19 -5779.52490234375 881.9115600585938 1004.4124755859375
183 RT 1.24 -5779.52490234375 881.9115600585938 1004.4124755859375
184 RT 1.29 -5978.333984375 881.9114379882812 1004.4120483398438
185 RT 1.341 -6097.54833984375 881.911376953125 1004.4118041992188
186 RT 1.391 -6177.02392578125 881.9113159179688 1004.4116821289062
187 RT 1.441 -6316.1669921875 881.9112548828125 1004.411376953125
188 RT 1.491 -6355.90478515625 881.9112548828125 1004.4113159179688
189 RT 1.541 -6455.3095703125 881.9111938476562 1004.4110717773438
190 RT 1.591 -6455.3095703125 881.9111938476562 1004.4110717773438
191 RT 1.641 -6455.3095703125 881.9111938476562 1004.4110717773438
192 RT 1.691 -6455.3095703125 881.9111938476562 1004.4110717773438
193 RT 1.742 -6713.666015625 881.9110717773438 1004.4105834960938
194 RT 1.792 -6793.14208984375 881.9110107421875 1004.410400390625
195 RT 1.842 -6912.35595703125 881.9109497070312 1004.41015625
196 RT 1.892 -6952.09423828125 881.9109497070312 1004.4100952148438
197 RT 1.942 -7011.6416015625 881.910888671875 1004.4099731445312
198 RT 1.992 -7011.6416015625 881.910888671875 1004.4099731445312
199 RT 2.042 -7011.6416015625 881.910888671875 1004.4099731445312
200 RT 2.092 -7011.6416015625 881.910888671875 1004.4099731445312
201 RT 2.144 -7269.998046875 881.9107666015625 1004.409423828125
202 RT 2.194 -7369.40283203125 881.9107055664062 1004.4092407226562
203 RT 2.244 -7488.61669921875 881.91064453125 1004.4089965820312
204 RT 2.294 -7528.3544921875 881.91064453125 1004.408935546875
205 RT 2.347 -7587.90185546875 881.9105834960938 1004.4088134765625
206 RT 2.397 -7587.90185546875 881.9105834960938 1004.4088134765625
207 RT 2.448 -7587.90185546875 881.9105834960938 1004.4088134765625
208 RT 2.498 -7587.90185546875 881.9105834960938 1004.4088134765625
209 RT 2.549 -7826.44921875 881.9104614257812 1004.4083251953125
210 RT 2.599 -7965.591796875 881.910400390625 1004.4080200195312
211 RT 2.65 -8084.80615234375 881.9103393554688 1004.4077758789062
212 RT 2.7 -8124.5439453125 881.9102783203125 1004.40771484375
213 RT 2.751 -8164.16259765625 881.9102783203125 1004.4076538085938
214 RT 2.801 -8164.16259765625 881.9102783203125 1004.4076538085938
215 RT 2.852 -8164.16259765625 881.9102783203125 1004.4076538085938
216 RT 2.902 -8164.16259765625 881.9102783203125 1004.4076538085938
217 RT 2.952 -8422.638671875 881.91015625 1004.4071044921875
218 RT 3.004 -8502.1142578125 881.9100952148438 1004.4069213867188
219 RT 3.054 -8621.3291015625 881.9100341796875 1004.4066772460938
220 RT 3.104 -8661.06640625 881.9100341796875 1004.4066162109375
221 RT 3.155 -8740.4228515625 881.9099731445312 1004.4064331054688
222 RT 3.205 -8740.4228515625 881.9099731445312 1004.4064331054688
223 RT 3.29 -8740.4228515625 881.9099731445312 1004.4064331054688
224 RT 3.34 -8939.232421875 881.9098510742188 1004.4060668945312
225 RT 3.39 -8998.7802734375 881.9098510742188 1004.4059448242188
226 RT 3.44 -9137.9228515625 881.9097290039062 1004.4056396484375
227 RT 3.49 -9177.66015625 881.9097290039062 1004.4055786132812
228 RT 3.54 -9276.9462890625 881.90966796875 1004.4053955078125
229 RT 3.592 -9296.7548828125 881.90966796875 1004.4053344726562
230 RT 3.642 -9296.7548828125 881.90966796875 1004.4053344726562
231 RT 3.692 -9296.7548828125 881.90966796875 1004.4053344726562
232 RT 3.747 -9555.1123046875 881.9095458984375 1004.40478515625
233 RT 3.797 -9614.7783203125 881.9094848632812 1004.4046630859375
234 RT 3.847 -9733.9921875 881.909423828125 1004.4044189453125
235 RT 3.898 -9793.6591796875 881.909423828125 1004.404296875
236 RT 3.948 -9873.015625 881.9093627929688 1004.4041748046875
237 RT 3.998 -9873.015625 881.9093627929688 1004.4041748046875
238 RT 4.048 -9873.015625 881.9093627929688 1004.4041748046875
239 RT 4.098 -9873.015625 881.9093627929688 1004.4041748046875
240 RT 4.148 -10111.5634765625 881.9092407226562 1004.4036865234375
241 RT 4.198 -10151.30078125 881.9092407226562 1004.4036254882812
242 RT 4.249 -10310.2529296875 881.9091186523438 1004.4032592773438
243 RT 4.3 -10349.9912109375 881.9091186523438 1004.4031982421875
244 RT 4.35 -10469.205078125 881.9090576171875 1004.4029541015625
245 RT 4.4 -10469.205078125 881.9090576171875 1004.4029541015625
246 RT 4.451 -10469.205078125 881.9090576171875 1004.4029541015625
247 RT 4.501 -10469.205078125 881.9090576171875 1004.4029541015625
248 RT 4.551 -10727.5615234375 881.9088745117188 1004.4024047851562
249 RT 4.601 -10727.5615234375 881.9088745117188 1004.4024047851562
250 RT 4.651 -10906.4423828125 881.9088134765625 1004.4020385742188
251 RT 4.704 -11005.8466796875 881.9087524414062 1004.40185546875
252 RT 4.754 -11065.39453125 881.9087524414062 1004.4017333984375
253 RT 4.804 -11065.39453125 881.9087524414062 1004.4017333984375
254 RT 4.855 -11065.39453125 881.9087524414062 1004.4017333984375
255 RT 4.905 -11065.39453125 881.9087524414062 1004.4017333984375
256 RT 4.957 -11323.7509765625 881.9085693359375 1004.4012451171875
257 RT 5.007 -11423.15625 881.9085083007812 1004.4010009765625
258 RT 5.058 -11542.3701171875 881.908447265625 1004.4007568359375
259 RT 5.108 -11621.845703125 881.908447265625 1004.400634765625
260 RT 5.158 -11681.3935546875 881.9083862304688 1004.4005126953125
261 RT 5.208 -11681.3935546875 881.9083862304688 1004.4005126953125
262 RT 5.259 -11681.3935546875 881.9083862304688 1004.4005126953125
263 RT 5.309 -11681.3935546875 881.9083862304688 1004.4005126953125
264 RT 5.36 -11939.75 881.9082641601562 1004.3999633789062
265 RT 5.41 -12058.9638671875 881.908203125 1004.3997192382812
266 RT 5.489 -12178.177734375 881.9081420898438 1004.3994750976562
267 RT 5.539 -12297.3916015625 881.9080810546875 1004.3992309570312
268 RT 5.59 -12297.3916015625 881.9080810546875 1004.3992309570312
269 RT 5.64 -12297.3916015625 881.9080810546875 1004.3992309570312
270 RT 5.69 -12297.3916015625 881.9080810546875 1004.3992309570312
271 RT 5.743 -12555.748046875 881.9078979492188 1004.3987426757812
272 RT 5.793 -12595.486328125 881.9078979492188 1004.398681640625
273 RT 5.844 -12714.7001953125 881.9078369140625 1004.3984375
274 RT 5.894 -12814.10546875 881.9077758789062 1004.398193359375
275 RT 5.944 -12913.390625 881.90771484375 1004.3980102539062
276 RT 5.994 -12913.390625 881.90771484375 1004.3980102539062
277 RT 6.044 -12913.390625 881.90771484375 1004.3980102539062
278 RT 6.094 -12913.390625 881.90771484375 1004.3980102539062
279 RT 6.144 -13132.0087890625 881.9075927734375 1004.3975830078125
280 RT 6.195 -13171.7470703125 881.9075927734375 1004.3975219726562
281 RT 6.246 -13350.6279296875 881.907470703125 1004.3971557617188
282 RT 6.296 -13390.365234375 881.907470703125 1004.3970336914062
283 RT 6.347 -13489.6513671875 881.9074096679688 1004.3968505859375
284 RT 6.397 -13489.6513671875 881.9074096679688 1004.3968505859375
285 RT 6.447 -13489.6513671875 881.9074096679688 1004.3968505859375
286 RT 6.497 -13489.6513671875 881.9074096679688 1004.3968505859375
287 RT 6.548 -13728.1982421875 881.9072875976562 1004.3963623046875
288 RT 6.598 -13807.673828125 881.9072265625 1004.3961791992188
289 RT 6.649 -13966.6259765625 881.9071655273438 1004.3958740234375
290 RT 6.701 -14066.03125 881.9071044921875 1004.3956909179688
291 RT 6.752 -14125.578125 881.9071044921875 1004.3955688476562
292 RT 6.802 -14125.578125 881.9071044921875 1004.3955688476562
293 RT 6.852 -14125.578125 881.9071044921875 1004.3955688476562
294 RT 6.902 -14125.578125 881.9071044921875 1004.3955688476562
295 RT 6.952 -14383.9345703125 881.9069213867188 1004.39501953125
296 RT 7.002 -14443.6015625 881.9069213867188 1004.3948974609375
297 RT 7.052 -14562.8154296875 881.9068603515625 1004.3946533203125
298 RT 7.102 -14602.5537109375 881.9067993164062 1004.3945922851562
299 RT 7.152 -14721.767578125 881.90673828125 1004.3943481445312
300 RT 7.202 -14721.767578125 881.90673828125 1004.3943481445312
301 RT 7.252 -14721.767578125 881.90673828125 1004.3943481445312
302 RT 7.302 -14721.767578125 881.90673828125 1004.3943481445312
303 RT 7.354 -14960.314453125 881.9066162109375 1004.3938598632812
304 RT 7.404 -15059.7197265625 881.9065551757812 1004.3936767578125
305 RT 7.455 -15178.93359375 881.906494140625 1004.3934326171875
306 RT 7.505 -15278.337890625 881.9064331054688 1004.3932495117188
307 RT 7.555 -15337.8857421875 881.9064331054688 1004.3931274414062
308 RT 7.605 -15337.8857421875 881.9064331054688 1004.3931274414062
309 RT 7.656 -15337.8857421875 881.9064331054688 1004.3931274414062
310 RT 7.706 -15496.95703125 881.9063720703125 1004.3927612304688
311 RT 7.756 -15596.2421875 881.9063110351562 1004.392578125
312 RT 7.806 -15655.9091796875 881.90625 1004.3924560546875
313 RT 7.857 -15775.123046875 881.9061889648438 1004.3922119140625
314 RT 7.907 -15874.52734375 881.9061279296875 1004.3920288085938
315 RT 7.957 -15894.3369140625 881.9061279296875 1004.3919677734375
316 coast 0.0 -15894.3369140625 881.9061279296875 1004.3919677734375
317 coast 0.05 -15894.3369140625 881.9061279296875 1004.3919677734375
318 coast 0.1 -16132.259765625 881.906005859375 1004.3914794921875
319 coast 0.15 -16228.6279296875 881.9059448242188 1004.3912963867188
320 coast 0.201 -16341.4130859375 881.9058837890625 1004.3910522460938
321 coast 0.251 -16414.818359375 881.9058837890625 1004.3909301757812
322 coast 0.302 -16432.935546875 881.9058227539062 1004.390869140625
323 coast 0.352 -16432.935546875 881.9058227539062 1004.390869140625
324 coast 0.402 -16432.935546875 881.9058227539062 1004.390869140625
325 coast 0.453 -16589.41015625 881.90576171875 1004.3905639648438
326 coast 0.503 -16674.68359375 881.9057006835938 1004.390380859375
327 coast 0.553 -16741.302734375 881.9057006835938 1004.3902587890625
328 coast 0.603 -16838.55078125 881.9056396484375 1004.3900756835938
329 coast 0.653 -16870.25390625 881.9056396484375 1004.3900146484375
330 coast 0.705 -16885.966796875 881.9055786132812 1004.3899536132812
331 coast 0.755 -16885.966796875 881.9055786132812 1004.3899536132812
332 coast 0.805 -16885.966796875 881.9055786132812 1004.3899536132812
333 coast 0.855 -17035.544921875 881.905517578125 1004.3896484375
334 coast 0.906 -17122.61328125 881.9054565429688 1004.3894653320312
335 coast 0.956 -17150.923828125 881.9054565429688 1004.389404296875
336 coast 1.006 -17233.70703125 881.9053955078125 1004.3892822265625
337 coast 1.056 -17260.5859375 881.9053955078125 1004.3892211914062
338 coast 1.107 -17287.109375 881.9053955078125 1004.38916015625
339 coast 1.157 -17287.109375 881.9053955078125 1004.38916015625
340 coast 1.207 -17387.55859375 881.9053344726562 1004.3889770507812
341 coast 1.259 -17424.537109375 881.9053344726562 1004.3888549804688
342 coast 1.309 -17496.0703125 881.9052734375 1004.3887329101562
343 coast 1.359 -17541.97265625 881.9052734375 1004.3886108398438
344 coast 1.409 -17586.4453125 881.9052124023438 1004.3885498046875
345 coast 1.459 -17629.4921875 881.9052124023438 1004.3884887695312
346 coast 1.509 -17629.4921875 881.9052124023438 1004.3884887695312
347 coast 1.559 -17629.4921875 881.9052124023438 1004.3884887695312
348 coast 1.611 -17718.390625 881.9051513671875 1004.3883056640625
349 coast 1.661 -17747.33984375 881.9051513671875 1004.3882446289062
350 coast 1.737 -17802.796875 881.9050903320312 1004.3881225585938
351 coast 1.787 -17855.041015625 881.9050903320312 1004.3880004882812
352 coast 1.837 -17871.7421875 881.9050903320312 1004.387939453125
353 coast 1.889 -17896.01171875 881.905029296875 1004.387939453125
354 coast 1.942 -17896.01171875 881.905029296875 1004.387939453125
355 coast 1.992 -17896.01171875 881.905029296875 1004.387939453125
356 coast 2.042 -17976.451171875 881.905029296875 1004.3877563476562
357 coast 2.098 -18003.77734375 881.905029296875 1004.3876953125
358 coast 2.148 -18016.90625 881.9049682617188 1004.3876953125
359 coast 2.198 -18071.580078125 881.9049682617188 1004.3875732421875
360 coast 2.248 -18077.390625 881.9049682617188 1004.3875732421875
361 coast 2.302 -18077.390625 881.9049682617188 1004.3875732421875
362 coast 2.352 -18077.390625 881.9049682617188 1004.3875732421875
363 coast 2.402 -18135.69921875 881.9049072265625 1004.387451171875
364 coast 2.452 -18147.35546875 881.9049072265625 1004.3873901367188
365 coast 2.537 -18193.974609375 881.9049072265625 1004.3873291015625
366 coast 2.587 -18228.939453125 881.9049072265625 1004.3872680664062
367 coast 2.638 -18234.75 881.9049072265625 1004.38720703125
368 coast 2.688 -18234.75 881.9049072265625 1004.38720703125
369 coast 2.738 -18234.75 881.9049072265625 1004.38720703125
370 coast 2.788 -18293.060546875 881.9048461914062 1004.3870849609375
371 coast 2.84 -18310.525390625 881.9048461914062 1004.3870849609375
372 coast 2.89 -18345.490234375 881.9048461914062 1004.3870239257812
373 coast 2.94 -18357.14453125 881.90478515625 1004.386962890625
374 coast 2.99 -18386.265625 881.90478515625 1004.3869018554688
375 coast 3.043 -18392.07421875 881.90478515625 1004.3869018554688
376 coast 3.093 -18392.07421875 881.90478515625 1004.3869018554688
377 coast 3.143 -18392.07421875 881.90478515625 1004.3869018554688
378 coast 3.193 -18467.849609375 881.9047241210938 1004.3867797851562
379 coast 3.243 -18479.505859375 881.9047241210938 1004.38671875
380 coast 3.293 -18514.470703125 881.9047241210938 1004.3866577148438
381 coast 3.343 -18537.779296875 881.9047241210938 1004.3865966796875
382 coast 3.394 -18561.0546875 881.9047241210938 1004.3865966796875
383 coast 3.445 -18561.0546875 881.9047241210938 1004.3865966796875
384 coast 3.495 -18561.0546875 881.9047241210938 1004.3865966796875
385 coast 3.546 -18561.0546875 881.9047241210938 1004.3865966796875
386 coast 3.596 -18631.01953125 881.9046630859375 1004.3864135742188
387 coast 3.646 -18654.330078125 881.9046630859375 1004.3863525390625
388 coast 3.697 -18700.94921875 881.9046020507812 1004.3862915039062
389 coast 3.747 -18712.60546875 881.9046020507812 1004.3862915039062
390 coast 3.797 -18747.5703125 881.9046020507812 1004.3861694335938
391 coast 3.847 -18747.5703125 881.9046020507812 1004.3861694335938
392 coast 3.897 -18747.5703125 881.9046020507812 1004.3861694335938
393 coast 3.947 -18747.5703125 881.9046020507812 1004.3861694335938
394 coast 3.998 -18823.345703125 881.904541015625 1004.3860473632812
395 coast 4.048 -18846.654296875 881.904541015625 1004.385986328125
396 coast 4.098 -18881.619140625 881.904541015625 1004.3859252929688
397 coast 4.148 -18904.9296875 881.904541015625 1004.3858642578125
398 coast 4.199 -18910.740234375 881.904541015625 1004.3858642578125
399 coast 4.249 -18910.740234375 881.904541015625 1004.3858642578125
400 coast 4.299 -18910.740234375 881.904541015625 1004.3858642578125
401 coast 4.349 -18910.740234375 881.904541015625 1004.3858642578125
402 coast 4.399 -18980.705078125 881.9044799804688 1004.3857421875
403 coast 4.449 -19021.515625 881.9044799804688 1004.3856201171875
404 coast 4.499 -19056.48046875 881.9044189453125 1004.3855590820312
405 coast 4.549 -19068.134765625 881.9044189453125 1004.3855590820312
406 coast 4.6 -19073.9453125 881.9044189453125 1004.385498046875
407 coast 4.65 -19073.9453125 881.9044189453125 1004.385498046875
408 coast 4.7 -19073.9453125 881.9044189453125 1004.385498046875
409 coast 4.751 -19138.099609375 881.9044189453125 1004.3853759765625
410 coast 4.801 -19155.564453125 881.9043579101562 1004.3853759765625
411 coast 4.851 -19190.529296875 881.9043579101562 1004.3853149414062
412 coast 4.902 -19225.494140625 881.9043579101562 1004.3851928710938
413 coast 4.952 -19237.150390625 881.9043579101562 1004.3851928710938
414 coast 5.005 -19242.958984375 881.9043579101562 1004.3851928710938
415 coast 5.055 -19242.958984375 881.9043579101562 1004.3851928710938
416 coast 5.109 -19242.958984375 881.9043579101562 1004.3851928710938
417 coast 5.159 -19312.92578125 881.904296875 1004.3850708007812
418 coast 5.209 -19347.890625 881.904296875 1004.3849487304688
419 coast 5.259 -19377.044921875 881.9042358398438 1004.3848876953125
420 coast 5.31 -19412.009765625 881.9042358398438 1004.3848266601562
421 coast 5.36 -19423.6640625 881.9042358398438 1004.3848266601562
422 coast 5.411 -19423.6640625 881.9042358398438 1004.3848266601562
423 coast 5.461 -19423.6640625 881.9042358398438 1004.3848266601562
424 coast 5.537 -19481.974609375 881.9042358398438 1004.3847045898438
425 coast 5.587 -19522.78515625 881.9041748046875 1004.3846435546875
426 coast 5.637 -19534.439453125 881.9041748046875 1004.3845825195312
427 coast 5.687 -19569.404296875 881.9041748046875 1004.384521484375
428 coast 5.737 -19586.869140625 881.9041748046875 1004.3844604492188
429 coast 5.787 -19586.869140625 881.9041748046875 1004.3844604492188
430 coast 5.839 -19586.869140625 881.9041748046875 1004.3844604492188
431 coast 5.889 -19586.869140625 881.9041748046875 1004.3844604492188
432 coast 5.939 -19650.990234375 881.9041137695312 1004.3843383789062
433 coast 5.989 -19685.955078125 881.9041137695312 1004.38427734375
434 coast 6.039 -19697.609375 881.9041137695312 1004.38427734375
435 coast 6.09 -19744.23046875 881.904052734375 1004.3841552734375
436 coast 6.14 -19755.849609375 881.904052734375 1004.3841552734375
437 coast 6.192 -19755.849609375 881.904052734375 1004.3841552734375
438 coast 6.242 -19755.849609375 881.904052734375 1004.3841552734375
439 coast 6.292 -19814.16015625 881.904052734375 1004.384033203125
440 coast 6.343 -19831.625 881.9039916992188 1004.3839721679688
441 coast 6.393 -19878.244140625 881.9039916992188 1004.3839111328125
442 coast 6.443 -19889.900390625 881.9039916992188 1004.3838500976562
443 coast 6.494 -19913.173828125 881.9039916992188 1004.3838500976562
444 coast 6.544 -19913.173828125 881.9039916992188 1004.3838500976562
445 coast 6.594 -19913.173828125 881.9039916992188 1004.3838500976562
446 coast 6.644 -19913.173828125 881.9039916992188 1004.3838500976562
447 coast 6.694 -19988.94921875 881.9039306640625 1004.3836669921875
448 coast 6.744 -20006.44921875 881.9039306640625 1004.3836059570312
449 coast 6.795 -20041.4140625 881.9039306640625 1004.383544921875
450 coast 6.846 -20070.5703125 881.9038696289062 1004.3834838867188
451 coast 6.896 -20088.03515625 881.9038696289062 1004.3834838867188
452 coast 6.946 -20088.03515625 881.9038696289062 1004.3834838867188
453 coast 6.996 -20088.03515625 881.9038696289062 1004.3834838867188
454 coast 7.046 -20088.03515625 881.9038696289062 1004.3834838867188
455 coast 7.097 -20152.154296875 881.9038696289062 1004.3833618164062
456 coast 7.147 -20192.96484375 881.90380859375 1004.3832397460938
457 coast 7.197 -20227.9296875 881.90380859375 1004.3831787109375
458 coast 7.247 -20245.4296875 881.90380859375 1004.3831787109375
459 coast 7.298 -20257.083984375 881.90380859375 1004.3831176757812
460 coast 7.348 -20257.083984375 881.90380859375 1004.3831176757812
461 coast 7.399 -20257.083984375 881.90380859375 1004.3831176757812
462 coast 7.449 -20315.39453125 881.9037475585938 1004.3829956054688
463 coast 7.499 -20344.515625 881.9037475585938 1004.3829345703125
464 coast 7.55 -20367.82421875 881.9037475585938 1004.3828735351562
465 coast 7.6 -20414.4453125 881.9036865234375 1004.3828125
466 coast 7.65 -20426.099609375 881.9036865234375 1004.3828125
467 coast 7.702 -20437.75390625 881.9036865234375 1004.3827514648438
468 coast 7.752 -20437.75390625 881.9036865234375 1004.3827514648438
469 coast 7.802 -20437.75390625 881.9036865234375 1004.3827514648438
470 coast 7.852 -20507.71875 881.9036865234375 1004.3826293945312
471 coast 7.902 -20542.685546875 881.9036254882812 1004.382568359375
472 coast 7.952 -20554.33984375 881.9036254882812 1004.3825073242188
473 LT 0.0 -20600.958984375 881.9036254882812 1004.3824462890625
474 LT 0.05 -20600.958984375 881.9036254882812 1004.3824462890625
475 LT 0.104 -20600.958984375 881.9036254882812 1004.3824462890625
476 LT 0.175 -20641.892578125 881.903564453125 1004.38232421875
477 LT 0.225 -20670.3359375 881.903564453125 1004.3822631835938
478 LT 0.275 -20679.1328125 881.903564453125 1004.3822631835938
479 LT 0.325 -20703.380859375 881.903564453125 1004.3822021484375
480 LT 0.376 -20714.333984375 881.903564453125 1004.3822021484375
481 LT 0.426 -20714.333984375 881.903564453125 1004.3822021484375
482 LT 0.479 -20714.333984375 881.903564453125 1004.3822021484375
483 LT 0.529 -20714.333984375 881.903564453125 1004.3822021484375
484 LT 0.579 -20745.40234375 881.9035034179688 1004.3821411132812
485 LT 0.629 -20758.935546875 881.9035034179688 1004.3821411132812
486 LT 0.679 -20762.732421875 881.9035034179688 1004.382080078125
487 LT 0.729 -20772.962890625 881.9035034179688 1004.382080078125
488 LT 0.779 -20778.05078125 881.9035034179688 1004.382080078125
489 LT 0.829 -20778.05078125 881.9035034179688 1004.382080078125
490 LT 0.88 -20778.05078125 881.9035034179688 1004.382080078125
491 LT 0.93 -20795.037109375 881.9035034179688 1004.3820190429688
492 LT 0.981 -20800.125 881.9035034179688 1004.3820190429688
493 LT 1.031 -20808.619140625 881.9035034179688 1004.3820190429688
494 LT 1.081 -20817.11328125 881.9035034179688 1004.3820190429688
495 LT 1.131 -20827.298828125 881.9035034179688 1004.3819580078125
496 LT 1.183 -20828.990234375 881.9035034179688 1004.3819580078125
497 LT 1.233 -20828.990234375 881.9035034179688 1004.3819580078125
498 LT 1.283 -20828.990234375 881.9035034179688 1004.3819580078125
499 LT 1.335 -20847.669921875 881.9035034179688 1004.3819580078125
500 LT 1.386 -20854.4609375 881.9034423828125 1004.3818969726562
501 LT 1.436 -20864.646484375 881.9034423828125 1004.3818969726562
502 LT 1.486 -20868.041015625 881.9034423828125 1004.3818969726562
503 LT 1.536 -20874.822265625 881.9034423828125 1004.3818969726562
504 LT 1.586 -20874.822265625 881.9034423828125 1004.3818969726562
505 LT 1.636 -20874.822265625 881.9034423828125 1004.3818969726562
506 LT 1.686 -20874.822265625 881.9034423828125 1004.3818969726562
507 LT 1.737 -20895.203125 881.9034423828125 1004.3818359375
508 LT 1.787 -20903.697265625 881.9034423828125 1004.3818359375
509 LT 1.837 -20913.8828125 881.9034423828125 1004.3817749023438
510 LT 1.887 -20917.279296875 881.9034423828125 1004.3817749023438
511 LT 1.937 -20924.068359375 881.9034423828125 1004.3817749023438
512 LT 1.987 -20924.068359375 881.9034423828125 1004.3817749023438
513 LT 2.037 -20924.068359375 881.9034423828125 1004.3817749023438
514 LT 2.088 -20924.068359375 881.9034423828125 1004.3817749023438
515 LT 2.139 -20946.14453125 881.9034423828125 1004.3817138671875
516 LT 2.189 -20956.330078125 881.9034423828125 1004.3817138671875
517 LT 2.239 -20966.515625 881.9034423828125 1004.3817138671875
518 LT 2.289 -20969.91015625 881.9033813476562 1004.3817138671875
519 LT 2.34 -20971.603515625 881.9033813476562 1004.3816528320312
520 LT 2.39 -20971.603515625 881.9033813476562 1004.3816528320312
521 LT 2.44 -20971.603515625 881.9033813476562 1004.3816528320312
522 LT 2.492 -20991.974609375 881.9033813476562 1004.3816528320312
523 LT 2.542 -21002.16015625 881.9033813476562 1004.381591796875
524 LT 2.592 -21005.556640625 881.9033813476562 1004.381591796875
525 LT 2.642 -21015.7421875 881.9033813476562 1004.381591796875
526 LT 2.693 -21017.435546875 881.9033813476562 1004.381591796875
527 LT 2.775 -21017.435546875 881.9033813476562 1004.381591796875
528 LT 2.825 -21017.435546875 881.9033813476562 1004.381591796875
529 LT 2.878 -21037.81640625 881.9033813476562 1004.3815307617188
530 LT 2.928 -21048.001953125 881.9033813476562 1004.3815307617188
531 LT 2.978 -21051.3984375 881.9033813476562 1004.3815307617188
532 LT 3.029 -21061.583984375 881.9033813476562 1004.3814697265625
533 LT 3.079 -21063.275390625 881.9033813476562 1004.3814697265625
534 LT 3.129 -21063.275390625 881.9033813476562 1004.3814697265625
535 LT 3.179 -21063.275390625 881.9033813476562 1004.3814697265625
536 LT 3.229 -21081.955078125 881.9033203125 1004.3814697265625
537 LT 3.279 -21090.44921875 881.9033203125 1004.3814697265625
538 LT 3.329 -21097.240234375 881.9033203125 1004.3814086914062
539 LT 3.379 -21100.634765625 881.9033203125 1004.3814086914062
540 LT 3.429 -21110.8203125 881.9033203125 1004.3814086914062
541 LT 3.48 -21110.8203125 881.9033203125 1004.3814086914062
542 LT 3.53 -21110.8203125 881.9033203125 1004.3814086914062
543 LT 3.58 -21110.8203125 881.9033203125 1004.3814086914062
544 LT 3.631 -21132.89453125 881.9033203125 1004.38134765625
545 LT 3.681 -21143.080078125 881.9033203125 1004.38134765625
546 LT 3.731 -21153.267578125 881.9033203125 1004.3812866210938
547 LT 3.781 -21160.056640625 881.9033203125 1004.3812866210938
548 LT 3.831 -21163.453125 881.9033203125 1004.3812866210938
549 LT 3.882 -21163.453125 881.9033203125 1004.3812866210938
550 LT 3.932 -21163.453125 881.9033203125 1004.3812866210938
551 LT 3.982 -21177.033203125 881.9033203125 1004.3812866210938
552 LT 4.035 -21188.921875 881.9033203125 1004.3812255859375
553 LT 4.085 -21199.107421875 881.9032592773438 1004.3812255859375
554 LT 4.135 -21205.8984375 881.9032592773438 1004.3812255859375
555 LT 4.187 -21207.591796875 881.9032592773438 1004.3812255859375
556 LT 4.237 -21207.591796875 881.9032592773438 1004.3812255859375
557 LT 4.287 -21207.591796875 881.9032592773438 1004.3812255859375
558 LT 4.337 -21222.875 881.9032592773438 1004.3811645507812
559 LT 4.387 -21229.666015625 881.9032592773438 1004.3811645507812
560 LT 4.437 -21239.8515625 881.9032592773438 1004.3811645507812
561 LT 4.487 -21244.94921875 881.9032592773438 1004.381103515625
562 LT 4.537 -21251.73046875 881.9032592773438 1004.381103515625
563 LT 4.587 -21251.73046875 881.9032592773438 1004.381103515625
564 LT 4.638 -21251.73046875 881.9032592773438 1004.381103515625
565 LT 4.688 -21251.73046875 881.9032592773438 1004.381103515625
566 LT 4.741 -21272.111328125 881.9032592773438 1004.381103515625
567 LT 4.791 -21284.0 881.9032592773438 1004.3810424804688
568 LT 4.841 -21290.791015625 881.9032592773438 1004.3810424804688
569 LT 4.891 -21297.58203125 881.9032592773438 1004.3810424804688
570 LT 4.942 -21299.275390625 881.9032592773438 1004.3810424804688
571 LT 4.992 -21299.275390625 881.9032592773438 1004.3810424804688
572 LT 5.042 -21299.275390625 881.9032592773438 1004.3810424804688
573 LT 5.092 -21316.26171875 881.9031982421875 1004.3809814453125
574 LT 5.142 -21324.744140625 881.9031982421875 1004.3809814453125
575 LT 5.192 -21331.53515625 881.9031982421875 1004.3809814453125
576 LT 5.242 -21341.720703125 881.9031982421875 1004.3809204101562
577 LT 5.292 -21346.818359375 881.9031982421875 1004.3809204101562
578 LT 5.343 -21350.21484375 881.9031982421875 1004.3809204101562
579 LT 5.393 -21350.21484375 881.9031982421875 1004.3809204101562
580 LT 5.443 -21362.103515625 881.9031982421875 1004.3809204101562
581 LT 5.493 -21370.5859375 881.9031982421875 1004.380859375
582 LT 5.578 -21380.771484375 881.9031982421875 1004.380859375
583 LT 5.628 -21390.95703125 881.9031982421875 1004.380859375
584 LT 5.678 -21396.044921875 881.9031982421875 1004.3807983398438
585 LT 5.728 -21396.044921875 881.9031982421875 1004.3807983398438
586 LT 5.778 -21396.044921875 881.9031982421875 1004.3807983398438
587 LT 5.828 -21413.03125 881.9031982421875 1004.3807983398438
588 LT 5.882 -21418.119140625 881.9031982421875 1004.3807983398438
589 LT 5.932 -21430.0078125 881.9031372070312 1004.3807373046875
590 LT 5.983 -21436.798828125 881.9031372070312 1004.3807373046875
591 LT 6.033 -21443.58984375 881.9031372070312 1004.3807373046875
592 LT 6.085 -21445.283203125 881.9031372070312 1004.3807373046875
593 LT 6.135 -21445.283203125 881.9031372070312 1004.3807373046875
594 LT 6.185 -21445.283203125 881.9031372070312 1004.3807373046875
595 LT 6.235 -21463.9609375 881.9031372070312 1004.3806762695312
596 LT 6.285 -21469.060546875 881.9031372070312 1004.3806762695312
597 LT 6.335 -21479.24609375 881.9031372070312 1004.3806762695312
598 LT 6.385 -21482.640625 881.9031372070312 1004.3806762695312
599 LT 6.438 -21489.431640625 881.9031372070312 1004.380615234375
600 LT 6.488 -21489.431640625 881.9031372070312 1004.380615234375
601 LT 6.538 -21489.431640625 881.9031372070312 1004.380615234375
602 LT 6.588 -21506.41796875 881.9031372070312 1004.380615234375
603 LT 6.638 -21514.900390625 881.9031372070312 1004.3805541992188
604 LT 6.689 -21525.087890625 881.9031372070312 1004.3805541992188
605 LT 6.739 -21535.2734375 881.9031372070312 1004.3805541992188
606 LT 6.789 -21538.66796875 881.903076171875 1004.3805541992188
607 LT 6.84 -21542.064453125 881.903076171875 1004.3805541992188
608 LT 6.89 -21542.064453125 881.903076171875 1004.3805541992188
609 LT 6.94 -21542.064453125 881.903076171875 1004.3805541992188
610 LT 6.99 -21560.7421875 881.903076171875 1004.3804931640625
611 LT 7.075 -21570.927734375 881.903076171875 1004.3804931640625
612 LT 7.125 -21581.115234375 881.903076171875 1004.3804321289062
613 LT 7.175 -21586.203125 881.903076171875 1004.3804321289062
614 LT 7.225 -21586.203125 881.903076171875 1004.3804321289062
615 LT 7.275 -21586.203125 881.903076171875 1004.3804321289062
616 LT 7.325 -21603.189453125 881.903076171875 1004.3804321289062
617 LT 7.376 -21608.27734375 881.903076171875 1004.38037109375
618 LT 7.426 -21620.166015625 881.903076171875 1004.38037109375
619 LT 7.476 -21620.166015625 881.903076171875 1004.38037109375
620 LT 7.526 -21632.04296875 881.903076171875 1004.38037109375
621 LT 7.577 -21633.736328125 881.903076171875 1004.38037109375
622 LT 7.627 -21633.736328125 881.903076171875 1004.38037109375
623 LT 7.677 -21633.736328125 881.903076171875 1004.38037109375
624 LT 7.729 -21652.416015625 881.9030151367188 1004.3803100585938
625 LT 7.779 -21659.20703125 881.9030151367188 1004.3803100585938
626 LT 7.829 -21672.787109375 881.9030151367188 1004.3802490234375
627 LT 7.879 -21676.18359375 881.9030151367188 1004.3802490234375
628 LT 7.929 -21681.271484375 881.9030151367188 1004.3802490234375
629 LT 7.979 -21681.271484375 881.9030151367188 1004.3802490234375
630 coast2 0.0 -21699.958984375 881.9030151367188 1004.3801879882812
631 coast2 0.05 -21709.087890625 881.9030151367188 1004.3801879882812
632 coast2 0.1 -21722.490234375 881.9030151367188 1004.3801879882812
633 coast2 0.15 -21733.17578125 881.9030151367188 1004.380126953125
634 coast2 0.2 -21748.78125 881.9030151367188 1004.380126953125
635 coast2 0.25 -21748.78125 881.9030151367188 1004.380126953125
636 coast2 0.301 -21748.78125 881.9030151367188 1004.380126953125
637 coast2 0.351 -21780.17578125 881.9029541015625 1004.3800659179688
638 coast2 0.401 -21797.376953125 881.9029541015625 1004.3800048828125
639 coast2 0.478 -21826.087890625 881.9029541015625 1004.3799438476562
640 coast2 0.528 -21858.291015625 881.9029541015625 1004.3798828125
641 coast2 0.579 -21875.611328125 881.9029541015625 1004.3798828125
642 coast2 0.629 -21875.611328125 881.9029541015625 1004.3798828125
643 coast2 0.68 -21875.611328125 881.9029541015625 1004.3798828125
644 coast2 0.73 -21875.611328125 881.9029541015625 1004.3798828125
645 coast2 0.78 -21951.38671875 881.9028930664062 1004.3796997070312
646 coast2 0.83 -21986.3515625 881.9028930664062 1004.379638671875
647 coast2 0.881 -21998.005859375 881.90283203125 1004.3795776367188
648 coast2 0.932 -22044.626953125 881.90283203125 1004.3795166015625
649 coast2 0.982 -22062.091796875 881.90283203125 1004.3794555664062
650 coast2 1.032 -22062.091796875 881.90283203125 1004.3794555664062
651 coast2 1.082 -22062.091796875 881.90283203125 1004.3794555664062
652 coast2 1.132 -22062.091796875 881.90283203125 1004.3794555664062
653 coast2 1.183 -22143.7109375 881.9027709960938 1004.3793334960938
654 coast2 1.233 -22178.677734375 881.9027709960938 1004.3792114257812
655 coast2 1.283 -22190.33203125 881.9027709960938 1004.3792114257812
656 coast2 1.333 -22236.951171875 881.9027099609375 1004.379150390625
657 coast2 1.383 -22242.76171875 881.9027099609375 1004.3790893554688
658 coast2 1.433 -22242.76171875 881.9027099609375 1004.3790893554688
659 coast2 1.483 -22242.76171875 881.9027099609375 1004.3790893554688
660 coast2 1.533 -22289.416015625 881.9027099609375 1004.3790283203125
661 coast2 1.583 -22318.537109375 881.9027099609375 1004.3789672851562
662 coast2 1.634 -22353.501953125 881.9026489257812 1004.37890625
663 coast2 1.684 -22365.15625 881.9026489257812 1004.3788452148438
664 coast2 1.734 -22411.77734375 881.9026489257812 1004.3787841796875
665 coast2 1.784 -22417.5859375 881.9026489257812 1004.3787841796875
666 coast2 1.834 -22417.5859375 881.9026489257812 1004.3787841796875
667 coast2 1.885 -22417.5859375 881.9026489257812 1004.3787841796875
668 coast2 1.935 -22475.896484375 881.902587890625 1004.378662109375
669 coast2 1.989 -22493.361328125 881.902587890625 1004.3786010742188
670 coast2 2.042 -22539.982421875 881.902587890625 1004.3785400390625
671 coast2 2.092 -22563.291015625 881.9025268554688 1004.3784790039062
672 coast2 2.143 -22592.412109375 881.9025268554688 1004.37841796875
673 coast2 2.194 -22598.22265625 881.9025268554688 1004.37841796875
674 coast2 2.279 -22598.22265625 881.9025268554688 1004.37841796875
675 coast2 2.329 -22598.22265625 881.9025268554688 1004.37841796875
676 coast2 2.38 -22662.341796875 881.9025268554688 1004.3782348632812
677 coast2 2.43 -22708.9609375 881.9024658203125 1004.378173828125
678 coast2 2.48 -22708.9609375 881.9024658203125 1004.378173828125
679 coast2 2.531 -22743.92578125 881.9024658203125 1004.3781127929688
680 coast2 2.581 -22761.392578125 881.9024658203125 1004.3780517578125
681 coast2 2.631 -22761.392578125 881.9024658203125 1004.3780517578125
682 coast2 2.681 -22761.392578125 881.9024658203125 1004.3780517578125
683 coast2 2.731 -22761.392578125 881.9024658203125 1004.3780517578125
684 coast2 2.781 -22837.166015625 881.9024047851562 1004.3779296875
685 coast2 2.832 -22872.130859375 881.9024047851562 1004.3778686523438
686 coast2 2.882 -22883.787109375 881.9024047851562 1004.3778076171875
687 coast2 2.933 -22930.40625 881.90234375 1004.3777465820312
688 coast2 2.983 -22942.02734375 881.90234375 1004.377685546875
689 coast2 3.033 -22942.02734375 881.90234375 1004.377685546875
690 coast2 3.083 -22942.02734375 881.90234375 1004.377685546875
691 coast2 3.133 -22994.52734375 881.90234375 1004.3775634765625
692 coast2 3.183 -23011.9921875 881.90234375 1004.3775634765625
693 coast2 3.234 -23046.95703125 881.9022827148438 1004.3775024414062
694 coast2 3.284 -23058.611328125 881.9022827148438 1004.37744140625
695 coast2 3.334 -23105.232421875 881.9022827148438 1004.3773803710938
696 coast2 3.384 -23111.041015625 881.9022827148438 1004.3773803710938
697 coast2 3.435 -23111.041015625 881.9022827148438 1004.3773803710938
698 coast2 3.485 -23111.041015625 881.9022827148438 1004.3773803710938
699 coast2 3.535 -23163.541015625 881.9022216796875 1004.3772583007812
700 coast2 3.587 -23181.005859375 881.9022216796875 1004.377197265625
701 coast2 3.677 -23221.81640625 881.9022216796875 1004.3771362304688
702 coast2 3.728 -23256.78125 881.9021606445312 1004.3770751953125
703 coast2 3.778 -23274.24609375 881.9021606445312 1004.3770141601562
704 coast2 3.828 -23274.24609375 881.9021606445312 1004.3770141601562
705 coast2 3.878 -23274.24609375 881.9021606445312 1004.3770141601562
706 coast2 3.928 -23274.24609375 881.9021606445312 1004.3770141601562
707 coast2 3.979 -23344.2109375 881.9021606445312 1004.3768920898438
708 coast2 4.029 -23379.17578125 881.902099609375 1004.3768310546875
709 coast2 4.079 -23390.83203125 881.902099609375 1004.3767700195312
710 coast2 4.129 -23437.451171875 881.902099609375 1004.376708984375
711 coast2 4.18 -23449.072265625 881.902099609375 1004.3766479492188
712 coast2 4.23 -23449.072265625 881.902099609375 1004.3766479492188
713 coast2 4.28 -23449.072265625 881.902099609375 1004.3766479492188
714 coast2 4.33 -23449.072265625 881.902099609375 1004.3766479492188
715 coast2 4.38 -23524.845703125 881.9020385742188 1004.3765258789062
716 coast2 4.43 -23559.8125 881.9020385742188 1004.37646484375
717 coast2 4.48 -23571.466796875 881.9020385742188 1004.3764038085938
718 coast2 4.53 -23606.431640625 881.9019775390625 1004.3763427734375
719 coast2 4.58 -23623.896484375 881.9019775390625 1004.3763427734375
720 coast2 4.631 -23623.896484375 881.9019775390625 1004.3763427734375
721 coast2 4.681 -23623.896484375 881.9019775390625 1004.3763427734375
722 coast2 4.731 -23623.896484375 881.9019775390625 1004.3763427734375
723 coast2 4.781 -23688.015625 881.9019775390625 1004.3761596679688
724 coast2 4.832 -23722.982421875 881.9019165039062 1004.3760986328125
725 coast2 4.882 -23746.291015625 881.9019165039062 1004.3760986328125
726 coast2 4.934 -23781.255859375 881.9019165039062 1004.3759765625
727 coast2 4.984 -23804.56640625 881.9019165039062 1004.3759765625
728 coast2 5.034 -23822.06640625 881.90185546875 1004.3759155273438
729 coast2 5.084 -23822.06640625 881.90185546875 1004.3759155273438
730 coast2 5.134 -23822.06640625 881.90185546875 1004.3759155273438
731 coast2 5.184 -23874.56640625 881.90185546875 1004.3757934570312
732 coast2 5.234 -23915.341796875 881.90185546875 1004.375732421875
733 coast2 5.284 -23938.65234375 881.9017944335938 1004.3756713867188
734 coast2 5.334 -23985.271484375 881.9017944335938 1004.3756103515625
735 coast2 5.385 -23996.92578125 881.9017944335938 1004.3755493164062
736 coast2 5.438 -24008.546875 881.9017944335938 1004.3755493164062
737 coast2 5.488 -24008.546875 881.9017944335938 1004.3755493164062
738 coast2 5.539 -24008.546875 881.9017944335938 1004.3755493164062
739 coast2 5.589 -24008.546875 881.9017944335938 1004.3755493164062
740 coast2 5.639 -24095.9765625 881.9017333984375 1004.3753662109375
741 coast2 5.689 -24125.130859375 881.9017333984375 1004.3753051757812
742 coast2 5.739 -24160.095703125 881.9016723632812 1004.375244140625
743 coast2 5.789 -24171.751953125 881.9016723632812 1004.3751831054688
744 coast2 5.839 -24195.02734375 881.9016723632812 1004.3751831054688
745 coast2 5.889 -24195.02734375 881.9016723632812 1004.3751831054688
746 coast2 5.94 -24195.02734375 881.9016723632812 1004.3751831054688
747 coast2 5.99 -24195.02734375 881.9016723632812 1004.3751831054688
748 coast2 6.04 -24264.9921875 881.9016723632812 1004.375
749 coast2 6.091 -24288.30078125 881.901611328125 1004.375
750 coast2 6.141 -24334.921875 881.901611328125 1004.3748779296875
751 coast2 6.192 -24358.232421875 881.901611328125 1004.3748168945312
752 coast2 6.242 -24387.3515625 881.9015502929688 1004.374755859375
753 coast2 6.292 -24393.162109375 881.9015502929688 1004.374755859375
754 coast2 6.345 -24393.162109375 881.9015502929688 1004.374755859375
755 coast2 6.395 -24393.162109375 881.9015502929688 1004.374755859375
756 coast2 6.446 -24451.470703125 881.9015502929688 1004.3746337890625
757 coast2 6.496 -24480.591796875 881.9015502929688 1004.3745727539062
758 coast2 6.578 -24515.556640625 881.9014892578125 1004.37451171875
759 coast2 6.628 -24568.021484375 881.9014892578125 1004.3743896484375
760 coast2 6.678 -24579.67578125 881.9014892578125 1004.3743896484375
761 coast2 6.728 -24591.33203125 881.9014892578125 1004.3743286132812
762 coast2 6.778 -24591.33203125 881.9014892578125 1004.3743286132812
763 coast2 6.829 -24591.33203125 881.9014892578125 1004.3743286132812
764 coast2 6.879 -24655.451171875 881.9014282226562 1004.3742065429688
765 coast2 6.929 -24690.416015625 881.9014282226562 1004.3741455078125
766 coast2 6.979 -24702.072265625 881.9014282226562 1004.3741455078125
767 coast2 7.031 -24737.037109375 881.9013671875 1004.3740844726562
768 coast2 7.081 -24760.345703125 881.9013671875 1004.3740234375
769 coast2 7.132 -24772.001953125 881.9013671875 1004.3739624023438
770 coast2 7.182 -24772.001953125 881.9013671875 1004.3739624023438
771 coast2 7.232 -24772.001953125 881.9013671875 1004.3739624023438
772 coast2 7.284 -24830.310546875 881.9013671875 1004.3738403320312
773 coast2 7.334 -24865.27734375 881.9013061523438 1004.373779296875
774 coast2 7.384 -24894.431640625 881.9013061523438 1004.3737182617188
775 coast2 7.434 -24929.396484375 881.9013061523438 1004.3736572265625
776 coast2 7.484 -24952.70703125 881.9012451171875 1004.3735961914062
777 coast2 7.534 -24958.515625 881.9012451171875 1004.3735961914062
778 coast2 7.584 -24958.515625 881.9012451171875 1004.3735961914062
779 coast2 7.635 -24958.515625 881.9012451171875 1004.3735961914062
780 coast2 7.685 -24958.515625 881.9012451171875 1004.3735961914062
781 coast2 7.736 -25028.48046875 881.9012451171875 1004.3734741210938
782 coast2 7.786 -25057.63671875 881.9012451171875 1004.3734130859375
783 coast2 7.837 -25092.6015625 881.9011840820312 1004.3733520507812
784 coast2 7.887 -25104.255859375 881.9011840820312 1004.373291015625
785 coast2 7.937 -25121.720703125 881.9011840820312 1004.373291015625
786 coast2 7.987 -25121.720703125 881.9011840820312 1004.373291015625

View File

@@ -0,0 +1,50 @@
container load constant: vbase - file_offset = 0x17FE3FF4 (93 buffers agree)
decoded 356 resources, 422 distinct vertex offsets
vb 0x13FD6E8 v=25448 batches 8 idx 52077 span 104154 gap 2 decpad 2 cover exact f101_bdy_01(v25448,i52077)
vb 0x192961C v=13172 batches 2 idx 24816 span 49632 gap 0 decpad 0 cover exact f101_bdy_02(v13172,i24816)
vb 0x1BF40F4 v=261 batches 3 idx 498 span 996 gap 41476 decpad 41476 cover exact e_rob_f001(v24,i36) e_rou_f003_Near(v24,i36) e_rou_f101_wep_01(v24,i36) e_rou_f105(v24,i36) _rou_f105_break(v261,i498) e_rou_f106(v24,i36) e_rou_f302_barrel(v24,i36) e_rou_f302_base(v24,i36) e_rou_f303_barrel(v24,i36) e_rou_f303_base(v24,i36) e_rou_e007_Far(v24,i36) e_rou_e007_Near(v24,i36) e_rou_e010_Far(v24,i36) e_rou_e010_Near(v24,i36) e_rou_e105(v24,i36) e_rou_e105_wep_01(v24,i36) e_rou_e106(v24,i36) e_rou_e106_eng(v24,i36) e_rou_e106_wep_02_01(v24,i36) e_rou_e106_wep_02_joint(v24,i36) e_rou_e108_Missile_open(v24,i36) e_rou_e201(v24,i36) e_rou_e302_barrel(v24,i36) e_rou_e302_base(v24,i36) e_rou_e303_barrel_Near(v24,i36) e_rou_e303_base_Near(v24,i36) e_rou_e501(v24,i36)
vb 0x1C0F67C v=82 batches 1 idx 144 span 288 gap 133672 decpad 133672 cover exact _rou_f105_break(v82,i144)
vb 0x1C1D92C v=220 batches 3 idx 384 span 768 gap 179872 decpad 179872 cover exact _rou_f105_break(v220,i384)
vb 0x1C1EDCC v=80 batches 2 idx 132 span 264 gap 184888 decpad 184888 cover exact _rou_f105_break(v80,i132)
vb 0x1C1F54C v=148 batches 3 idx 288 span 576 gap 186232 decpad 186232 cover exact _rou_f105_break(v148,i288)
vb 0x1C2032C v=156 batches 1 idx 246 span 492 gap 189292 decpad 189292 cover exact _rou_f105_break(v156,i246)
vb 0x1C2953C v=84 batches 1 idx 156 span 312 gap 220012 decpad 220012 cover exact _rou_f105_break(v84,i156)
vb 0x1C2AF1C v=122 batches 3 idx 351 span 702 gap 224882 decpad 224882 cover exact _rou_f105_break(v122,i351)
vb 0x1C2BA8C v=24 batches 2 idx 36 span 72 gap 227736 decpad 227736 cover exact _rou_f105_break(v24,i36)
vb 0x1ECB4C0 v=2446 batches 4 idx 5466 span 10932 gap 0 decpad 0 cover exact f105_bdy_01_m(v2446,i5466)
vb 0x227AC94 v=1692 batches 3 idx 3651 span 7302 gap 2 decpad 2 cover exact f106_bdy_02_l(v1692,i3651)
vb 0x22C2EF0 v=686 batches 2 idx 1506 span 3012 gap 0 decpad 0 cover exact f106_bdy_03_l(v686,i1506)
vb 0x22C8F50 v=1558 batches 3 idx 4098 span 8196 gap 0 decpad 0 cover exact f106_bdy_03_m(v1558,i4098)
vb 0x22ED420 v=261 batches 4 idx 561 span 1122 gap 2 decpad 2 cover exact f106_eng_01_l(v261,i561)
vb 0x22F0430 v=1162 batches 4 idx 3018 span 6036 gap 0 decpad 0 cover exact f106_eng_01_m(v1162,i3018)
vb 0x2326C9C v=254 batches 2 idx 495 span 990 gap 2 decpad 2 cover exact f106_sld_01_l(v254,i495)
vb 0x233B3FC v=254 batches 2 idx 495 span 990 gap 2 decpad 2 cover exact f106_sld_02_l(v254,i495)
vb 0x233D700 v=627 batches 3 idx 1434 span 2868 gap 0 decpad 0 cover exact f106_sld_02_m(v627,i1434)
vb 0x24CE5F4 v=32 batches 1 idx 60 span 120 gap 0 decpad 0 cover exact f303_body_l(v32,i60)
vb 0x28EA1D4 v=156 batches 2 idx 228 span 456 gap 0 decpad 0 cover exact e105_bdy_01_l(v156,i228)
vb 0x28F7514 v=107 batches 3 idx 180 span 360 gap 0 decpad 0 cover exact e105_bdy_02_l(v107,i180)
vb 0x291E1E8 v=185 batches 2 idx 285 span 570 gap 2 decpad 2 cover exact e105_bdy_03_l(v185,i285)
vb 0x29A4788 v=181 batches 3 idx 318 span 636 gap 0 decpad 0 cover exact e105_bdy_04_l(v181,i318)
vb 0x29B78B8 v=93 batches 2 idx 117 span 234 gap 2 decpad 2 cover exact e105_bdy_05_l(v93,i117)
vb 0x2A22574 v=41 batches 1 idx 51 span 102 gap 2 decpad 2 cover exact e105_bdy_06_l(v41,i51)
vb 0x2A47BAC v=77 batches 1 idx 111 span 222 gap 2 decpad 2 cover exact e105_brg_l(v77,i111)
vb 0x2A9FDA0 v=76 batches 1 idx 90 span 180 gap 0 decpad 0 cover exact e105_eng_01_l(v76,i90)
vb 0x2ACE840 v=60 batches 1 idx 90 span 180 gap 0 decpad 0 cover exact e105_wep_01_l(v60,i90)
vb 0x2D1FEE8 v=119 batches 2 idx 246 span 492 gap 0 decpad 0 cover exact e106_bdy_01_l(v119,i246)
vb 0x2D315D8 v=119 batches 2 idx 246 span 492 gap 0 decpad 0 cover exact e106_bdy_02_l(v119,i246)
vb 0x2D492C4 v=146 batches 2 idx 324 span 648 gap 0 decpad 0 cover exact e106_bdy_03_l(v146,i324)
vb 0x2D7363C v=179 batches 2 idx 399 span 798 gap 2 decpad 2 cover exact e106_bdy_04_l(v179,i399)
vb 0x2D7A418 v=51 batches 2 idx 126 span 252 gap 0 decpad 0 cover exact e106_brg_01_l(v51,i126)
vb 0x2DB0CCC v=58 batches 2 idx 96 span 192 gap 0 decpad 0 cover exact e106_eng_01_l(v58,i96)
vb 0x2DB632C v=44 batches 2 idx 72 span 144 gap 0 decpad 0 cover exact e106_eng_02_l(v44,i72)
vb 0x2DC305C v=82 batches 2 idx 168 span 336 gap 0 decpad 0 cover exact e106_wep_02_01_l(v82,i168)
vb 0x329077C v=6000 batches 1 idx 6000 span 12000 gap 0 decpad 0 cover exact n006_02(v6000,i6000)
vb 0x3434030 v=4 batches 1 idx 6 span 12 gap 24 decpad 24 cover exact n301_02B(v4,i6)
vb 0x3434090 v=4 batches 1 idx 6 span 12 gap 108 decpad 108 cover exact n301_02B(v4,i6)
vb 0x34340F0 v=4 batches 1 idx 6 span 12 gap 192 decpad 192 cover exact n301_02B(v4,i6)
placed 42 drawn buffers in this container
DECODER layout assumption — whole index buffer at vb - 2*idx_count - pad: pad 0 20 · pad 1..3 10 · elsewhere 12 · not decoded here 0
index extent: our idx_count == sum of captured batches for 42 buffers, differs for 0
vertex-pool coverage by the union of batches: exact 42 · short 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

View File

@@ -0,0 +1,589 @@
rt,t,x,y,z
0.0,0.0,-3409.5771484375,881.912841796875,1004.4171752929688
0.0,0.05,-3421.232177734375,881.912841796875,1004.4171752929688
0.0,0.1,-3456.197265625,881.9127807617188,1004.4171142578125
0.0,0.151,-3462.00732421875,881.9127807617188,1004.4170532226562
0.0,0.201,-3462.00732421875,881.9127807617188,1004.4170532226562
0.0,0.251,-3462.00732421875,881.9127807617188,1004.4170532226562
0.0,0.301,-3526.127197265625,881.9127807617188,1004.4169311523438
0.0,0.351,-3537.7822265625,881.9127807617188,1004.4169311523438
0.0,0.402,-3584.402099609375,881.9127197265625,1004.4168090820312
0.0,0.452,-3596.05712890625,881.9127197265625,1004.4168090820312
0.0,0.505,-3631.022216796875,881.9127197265625,1004.416748046875
0.0,0.555,-3631.022216796875,881.9127197265625,1004.416748046875
0.0,0.605,-3631.022216796875,881.9127197265625,1004.416748046875
0.0,0.655,-3631.022216796875,881.9127197265625,1004.416748046875
0.0,0.708,-3706.797119140625,881.9126586914062,1004.4165649414062
0.0,0.758,-3741.76220703125,881.9126586914062,1004.41650390625
0.0,0.808,-3788.382080078125,881.91259765625,1004.4164428710938
0.0,0.859,-3800.037109375,881.91259765625,1004.4163818359375
0.0,0.911,-3817.502197265625,881.91259765625,1004.4163818359375
0.0,0.961,-3817.502197265625,881.91259765625,1004.4163818359375
0.0,1.011,-3817.502197265625,881.91259765625,1004.4163818359375
0.0,1.061,-3817.502197265625,881.91259765625,1004.4163818359375
0.0,1.111,-3893.277099609375,881.91259765625,1004.4161987304688
0.0,1.162,-3916.587158203125,881.9125366210938,1004.4161376953125
0.0,1.212,-3957.397216796875,881.9125366210938,1004.4160766601562
0.0,1.262,-3986.55224609375,881.9125366210938,1004.416015625
0.0,1.315,-3998.20703125,881.9125366210938,1004.416015625
0.0,1.365,-3998.20703125,881.9125366210938,1004.416015625
0.0,1.415,-3998.20703125,881.9125366210938,1004.416015625
0.0,1.465,-4050.70703125,881.9124755859375,1004.4158935546875
0.0,1.515,-4079.8271484375,881.9124755859375,1004.4158325195312
0.0,1.565,-4108.98193359375,881.9124755859375,1004.415771484375
0.0,1.615,-4143.947265625,881.9124145507812,1004.4157104492188
0.0,1.665,-4178.912109375,881.9124145507812,1004.4156494140625
0.0,1.717,-4184.72216796875,881.9124145507812,1004.4155883789062
0.0,1.767,-4184.72216796875,881.9124145507812,1004.4155883789062
0.0,1.817,-4184.72216796875,881.9124145507812,1004.4155883789062
0.0,1.867,-4243.0322265625,881.912353515625,1004.41552734375
0.0,1.917,-4272.15234375,881.912353515625,1004.4154663085938
0.0,1.967,-4307.1171875,881.912353515625,1004.4153442382812
0.0,2.017,-4353.7373046875,881.912353515625,1004.415283203125
0.0,2.067,-4365.39208984375,881.9122924804688,1004.4152221679688
0.0,2.118,-4377.046875,881.9122924804688,1004.4152221679688
0.0,2.168,-4377.046875,881.9122924804688,1004.4152221679688
0.0,2.218,-4377.046875,881.9122924804688,1004.4152221679688
0.0,2.268,-4441.2021484375,881.9122924804688,1004.4151000976562
0.0,2.318,-4476.1669921875,881.9122314453125,1004.4150390625
0.0,2.368,-4493.6669921875,881.9122314453125,1004.4149780273438
0.0,2.418,-4540.287109375,881.9122314453125,1004.4149169921875
0.0,2.468,-4557.787109375,881.9122314453125,1004.4148559570312
0.0,2.52,-4563.59716796875,881.9122314453125,1004.4148559570312
0.0,2.57,-4563.59716796875,881.9122314453125,1004.4148559570312
0.0,2.62,-4610.251953125,881.9121704101562,1004.4147338867188
0.0,2.671,-4633.56201171875,881.9121704101562,1004.4147338867188
0.0,2.75,-4668.52685546875,881.9121704101562,1004.4146118164062
0.0,2.8,-4703.4921875,881.912109375,1004.41455078125
0.0,2.85,-4726.76708984375,881.912109375,1004.4144897460938
0.0,2.9,-4726.76708984375,881.912109375,1004.4144897460938
0.0,2.95,-4726.76708984375,881.912109375,1004.4144897460938
0.0,3.0,-4726.76708984375,881.912109375,1004.4144897460938
0.0,3.053,-4779.23193359375,881.912109375,1004.4144287109375
0.0,3.103,-4820.0419921875,881.9120483398438,1004.414306640625
0.0,3.153,-4831.697265625,881.9120483398438,1004.414306640625
0.0,3.204,-4878.31689453125,881.9120483398438,1004.4141845703125
0.0,3.254,-4884.126953125,881.9120483398438,1004.4141845703125
0.0,3.304,-4884.126953125,881.9120483398438,1004.4141845703125
0.0,3.354,-4884.126953125,881.9120483398438,1004.4141845703125
0.0,3.404,-4936.591796875,881.9119873046875,1004.4140625
0.0,3.454,-4948.2470703125,881.9119873046875,1004.4140625
0.0,3.505,-5000.7119140625,881.9119873046875,1004.4139404296875
0.0,3.555,-5012.3671875,881.9119873046875,1004.4139404296875
0.0,3.605,-5041.48681640625,881.9119262695312,1004.4138793945312
0.0,3.655,-5041.48681640625,881.9119262695312,1004.4138793945312
0.0,3.705,-5041.48681640625,881.9119262695312,1004.4138793945312
0.0,3.755,-5041.48681640625,881.9119262695312,1004.4138793945312
0.0,3.807,-5105.60693359375,881.9119262695312,1004.4137573242188
0.0,3.857,-5128.9169921875,881.9119262695312,1004.4136962890625
0.0,3.907,-5175.537109375,881.911865234375,1004.41357421875
0.0,3.957,-5187.19189453125,881.911865234375,1004.41357421875
0.0,4.01,-5210.501953125,881.911865234375,1004.4135131835938
0.0,4.06,-5210.501953125,881.911865234375,1004.4135131835938
0.0,4.11,-5210.501953125,881.911865234375,1004.4135131835938
0.0,4.16,-5210.501953125,881.911865234375,1004.4135131835938
0.0,4.21,-5286.27685546875,881.9118041992188,1004.4133911132812
0.0,4.26,-5321.2421875,881.9118041992188,1004.413330078125
0.0,4.314,-5356.20703125,881.9118041992188,1004.4132690429688
0.0,4.364,-5385.36181640625,881.9117431640625,1004.4132080078125
0.0,4.414,-5391.171875,881.9117431640625,1004.4131469726562
0.0,4.464,-5391.171875,881.9117431640625,1004.4131469726562
0.0,4.514,-5391.171875,881.9117431640625,1004.4131469726562
0.0,4.565,-5443.671875,881.9117431640625,1004.4130859375
0.0,4.615,-5472.7919921875,881.9117431640625,1004.4130249023438
0.0,4.667,-5496.10205078125,881.9116821289062,1004.4129638671875
0.0,4.717,-5531.06689453125,881.9116821289062,1004.4129028320312
0.0,4.767,-5560.22216796875,881.9116821289062,1004.412841796875
0.0,4.822,-5566.03173828125,881.9116821289062,1004.412841796875
0.0,4.872,-5566.03173828125,881.9116821289062,1004.412841796875
0.0,4.922,-5566.03173828125,881.9116821289062,1004.412841796875
0.0,4.978,-5635.9970703125,881.91162109375,1004.4126586914062
0.0,5.028,-5659.30712890625,881.91162109375,1004.4126586914062
0.0,5.079,-5694.27197265625,881.91162109375,1004.4125366210938
0.0,5.15,-5717.58203125,881.91162109375,1004.4125366210938
0.0,5.2,-5740.89208984375,881.9115600585938,1004.4124755859375
0.0,5.251,-5740.89208984375,881.9115600585938,1004.4124755859375
0.0,5.302,-5740.89208984375,881.9115600585938,1004.4124755859375
0.0,5.353,-5787.546875,881.9115600585938,1004.412353515625
0.0,5.403,-5828.35693359375,881.9115600585938,1004.4122924804688
0.0,5.453,-5840.01171875,881.9114990234375,1004.4122924804688
0.0,5.506,-5892.47705078125,881.9114990234375,1004.4121704101562
0.0,5.556,-5904.1318359375,881.9114990234375,1004.412109375
0.0,5.606,-5915.787109375,881.9114990234375,1004.412109375
0.0,5.656,-5915.787109375,881.9114990234375,1004.412109375
0.0,5.706,-5915.787109375,881.9114990234375,1004.412109375
0.0,5.756,-5974.0966796875,881.9114379882812,1004.4119873046875
0.0,5.806,-5985.751953125,881.9114379882812,1004.4119873046875
0.0,5.857,-6026.56201171875,881.9114379882812,1004.411865234375
0.0,5.907,-6061.52685546875,881.9114379882812,1004.4118041992188
0.0,5.957,-6084.8369140625,881.911376953125,1004.4117431640625
0.25,0.0,-10118.99609375,881.9092407226562,1004.4036254882812
0.25,0.055,-10228.689453125,881.9091796875,1004.4033813476562
0.25,0.105,-10279.3056640625,881.9091186523438,1004.4033203125
0.25,0.155,-10296.177734375,881.9091186523438,1004.4032592773438
0.25,0.205,-10372.126953125,881.9091186523438,1004.403076171875
0.25,0.255,-10380.537109375,881.9091186523438,1004.403076171875
0.25,0.305,-10380.537109375,881.9091186523438,1004.403076171875
0.25,0.356,-10380.537109375,881.9091186523438,1004.403076171875
0.25,0.406,-10380.537109375,881.9091186523438,1004.403076171875
0.25,0.46,-10490.23046875,881.9090576171875,1004.4028930664062
0.25,0.51,-10540.8466796875,881.9089965820312,1004.4027709960938
0.25,0.56,-10557.71875,881.9089965820312,1004.4027099609375
0.25,0.61,-10625.20703125,881.908935546875,1004.402587890625
0.25,0.661,-10650.4892578125,881.908935546875,1004.4025268554688
0.25,0.711,-10650.4892578125,881.908935546875,1004.4025268554688
0.25,0.761,-10650.4892578125,881.908935546875,1004.4025268554688
0.25,0.811,-10718.0283203125,881.908935546875,1004.4024047851562
0.25,0.861,-10743.310546875,881.9088745117188,1004.40234375
0.25,0.912,-10777.0546875,881.9088745117188,1004.4022827148438
0.25,0.962,-10793.9267578125,881.9088745117188,1004.4022216796875
0.25,1.012,-10878.287109375,881.9088134765625,1004.402099609375
0.25,1.064,-10886.697265625,881.9088134765625,1004.4020385742188
0.25,1.114,-10886.697265625,881.9088134765625,1004.4020385742188
0.25,1.164,-10886.697265625,881.9088134765625,1004.4020385742188
0.25,1.214,-10886.697265625,881.9088134765625,1004.4020385742188
0.25,1.268,-11004.8525390625,881.9087524414062,1004.4017944335938
0.25,1.318,-11055.4677734375,881.9087524414062,1004.4017333984375
0.25,1.368,-11080.8017578125,881.90869140625,1004.4016723632812
0.25,1.418,-11131.4169921875,881.90869140625,1004.4015502929688
0.25,1.468,-11148.23828125,881.90869140625,1004.4015502929688
0.25,1.519,-11148.23828125,881.90869140625,1004.4015502929688
0.25,1.569,-11148.23828125,881.90869140625,1004.4015502929688
0.25,1.619,-11232.6494140625,881.9086303710938,1004.4013671875
0.25,1.67,-11257.931640625,881.9086303710938,1004.4013061523438
0.25,1.72,-11308.5478515625,881.9085693359375,1004.4011840820312
0.25,1.771,-11333.8818359375,881.9085693359375,1004.401123046875
0.25,1.821,-11384.4970703125,881.9085693359375,1004.4010620117188
0.25,1.871,-11401.318359375,881.9085693359375,1004.4010009765625
0.25,1.921,-11401.318359375,881.9085693359375,1004.4010009765625
0.25,1.971,-11401.318359375,881.9085693359375,1004.4010009765625
0.25,2.022,-11401.318359375,881.9085693359375,1004.4010009765625
0.25,2.072,-11527.9345703125,881.908447265625,1004.4007568359375
0.25,2.122,-11561.6787109375,881.908447265625,1004.4006958007812
0.25,2.172,-11603.8837890625,881.908447265625,1004.400634765625
0.25,2.222,-11671.3720703125,881.9083862304688,1004.4004516601562
0.25,2.272,-11688.244140625,881.9083862304688,1004.4004516601562
0.25,2.322,-11705.0654296875,881.9083862304688,1004.400390625
0.25,2.373,-11705.0654296875,881.9083862304688,1004.400390625
0.25,2.423,-11705.0654296875,881.9083862304688,1004.400390625
0.25,2.473,-11789.4755859375,881.9083251953125,1004.4002075195312
0.25,2.524,-11814.7587890625,881.9083251953125,1004.4002075195312
0.25,2.574,-11882.2470703125,881.9082641601562,1004.4000244140625
0.25,2.624,-11915.990234375,881.9082641601562,1004.3999633789062
0.25,2.674,-11949.734375,881.9082641601562,1004.39990234375
0.25,2.725,-11958.1455078125,881.9082641601562,1004.39990234375
0.25,2.775,-11958.1455078125,881.9082641601562,1004.39990234375
0.25,2.825,-11958.1455078125,881.9082641601562,1004.39990234375
0.25,2.876,-12042.5556640625,881.908203125,1004.3997192382812
0.25,2.926,-12067.8388671875,881.908203125,1004.399658203125
0.25,2.977,-12118.455078125,881.9081420898438,1004.3995971679688
0.25,3.028,-12185.9423828125,881.9081420898438,1004.3994140625
0.25,3.078,-12228.1474609375,881.9080810546875,1004.3993530273438
0.25,3.128,-12236.55859375,881.9080810546875,1004.3993530273438
0.25,3.178,-12236.55859375,881.9080810546875,1004.3993530273438
0.25,3.228,-12236.55859375,881.9080810546875,1004.3993530273438
0.25,3.278,-12312.55859375,881.9080810546875,1004.399169921875
0.25,3.329,-12354.712890625,881.9080200195312,1004.3991088867188
0.25,3.382,-12396.9189453125,881.9080200195312,1004.3989868164062
0.25,3.432,-12430.662109375,881.9080200195312,1004.39892578125
0.25,3.482,-12489.740234375,881.907958984375,1004.3988037109375
0.25,3.534,-12498.150390625,881.907958984375,1004.3988037109375
0.25,3.584,-12498.150390625,881.907958984375,1004.3988037109375
0.25,3.654,-12498.150390625,881.907958984375,1004.3988037109375
0.25,3.706,-12582.5615234375,881.9078979492188,1004.3986206054688
0.25,3.756,-12616.3056640625,881.9078979492188,1004.3985595703125
0.25,3.807,-12666.9208984375,881.9078369140625,1004.3984375
0.25,3.857,-12700.6650390625,881.9078369140625,1004.3983764648438
0.25,3.907,-12751.28125,881.9078369140625,1004.3983154296875
0.25,3.96,-12751.28125,881.9078369140625,1004.3983154296875
0.25,4.01,-12751.28125,881.9078369140625,1004.3983154296875
0.25,4.06,-12751.28125,881.9078369140625,1004.3983154296875
0.25,4.11,-12844.1025390625,881.9077758789062,1004.3981323242188
0.25,4.16,-12877.8466796875,881.9077758789062,1004.3980102539062
0.25,4.211,-12928.462890625,881.90771484375,1004.39794921875
0.25,4.261,-12962.2060546875,881.90771484375,1004.3978881835938
0.25,4.311,-13012.822265625,881.9076538085938,1004.3977661132812
0.25,4.361,-13021.2333984375,881.9076538085938,1004.3977661132812
0.25,4.411,-13021.2333984375,881.9076538085938,1004.3977661132812
0.25,4.461,-13021.2333984375,881.9076538085938,1004.3977661132812
0.25,4.511,-13105.6435546875,881.9076538085938,1004.3975830078125
0.25,4.562,-13122.515625,881.9075927734375,1004.3975219726562
0.25,4.612,-13198.46484375,881.9075927734375,1004.3973999023438
0.25,4.663,-13215.3369140625,881.9075927734375,1004.3973388671875
0.25,4.713,-13265.953125,881.9075317382812,1004.3972778320312
0.25,4.763,-13274.3642578125,881.9075317382812,1004.397216796875
0.25,4.813,-13274.3642578125,881.9075317382812,1004.397216796875
0.25,4.863,-13274.3642578125,881.9075317382812,1004.397216796875
0.25,4.913,-13358.7744140625,881.907470703125,1004.3970336914062
0.25,4.963,-13375.646484375,881.907470703125,1004.3970336914062
0.25,5.014,-13451.595703125,881.907470703125,1004.3968505859375
0.25,5.064,-13476.9287109375,881.9074096679688,1004.3968505859375
0.25,5.114,-13527.494140625,881.9074096679688,1004.396728515625
0.25,5.164,-13527.494140625,881.9074096679688,1004.396728515625
0.25,5.215,-13527.494140625,881.9074096679688,1004.396728515625
0.25,5.265,-13527.494140625,881.9074096679688,1004.396728515625
0.25,5.315,-13620.3154296875,881.9073486328125,1004.3965454101562
0.25,5.365,-13654.0595703125,881.9073486328125,1004.396484375
0.25,5.416,-13704.67578125,881.9072875976562,1004.3963623046875
0.25,5.466,-13738.419921875,881.9072875976562,1004.3963012695312
0.25,5.516,-13780.57421875,881.9072875976562,1004.3961791992188
0.25,5.567,-13780.57421875,881.9072875976562,1004.3961791992188
0.25,5.617,-13780.57421875,881.9072875976562,1004.3961791992188
0.25,5.667,-13780.57421875,881.9072875976562,1004.3961791992188
0.25,5.717,-13864.9853515625,881.9072265625,1004.3960571289062
0.25,5.768,-13898.7294921875,881.9072265625,1004.39599609375
0.25,5.818,-13949.3447265625,881.9071655273438,1004.3958740234375
0.25,5.868,-13966.216796875,881.9071655273438,1004.3958129882812
0.25,5.918,-14008.3720703125,881.9071655273438,1004.395751953125
0.25,5.968,-14008.3720703125,881.9071655273438,1004.395751953125
0.5,0.0,-19904.896484375,881.9039916992188,1004.3837890625
0.5,0.063,-19953.958984375,881.9039306640625,1004.3837280273438
0.5,0.113,-19990.71875,881.9039306640625,1004.3836669921875
0.5,0.164,-19990.71875,881.9039306640625,1004.3836669921875
0.5,0.215,-19990.71875,881.9039306640625,1004.3836669921875
0.5,0.265,-19990.71875,881.9039306640625,1004.3836669921875
0.5,0.316,-20150.20703125,881.9038696289062,1004.38330078125
0.5,0.366,-20174.73828125,881.90380859375,1004.38330078125
0.5,0.416,-20260.6328125,881.90380859375,1004.3831176757812
0.5,0.467,-20309.6953125,881.9037475585938,1004.3829956054688
0.5,0.517,-20346.455078125,881.9037475585938,1004.3829345703125
0.5,0.567,-20346.455078125,881.9037475585938,1004.3829345703125
0.5,0.62,-20346.455078125,881.9037475585938,1004.3829345703125
0.5,0.67,-20346.455078125,881.9037475585938,1004.3829345703125
0.5,0.72,-20505.943359375,881.9036865234375,1004.3826293945312
0.5,0.771,-20530.474609375,881.9036254882812,1004.382568359375
0.5,0.821,-20616.369140625,881.9036254882812,1004.3823852539062
0.5,0.871,-20689.962890625,881.903564453125,1004.3822021484375
0.5,0.921,-20738.951171875,881.903564453125,1004.3821411132812
0.5,0.971,-20738.951171875,881.903564453125,1004.3821411132812
0.5,1.021,-20738.951171875,881.903564453125,1004.3821411132812
0.5,1.071,-20738.951171875,881.903564453125,1004.3821411132812
0.5,1.124,-20886.2109375,881.9034423828125,1004.3818359375
0.5,1.174,-20935.2734375,881.9034423828125,1004.3817138671875
0.5,1.225,-21033.396484375,881.9033813476562,1004.3815307617188
0.5,1.275,-21057.927734375,881.9033813476562,1004.3814697265625
0.5,1.325,-21106.916015625,881.9033203125,1004.3814086914062
0.5,1.375,-21106.916015625,881.9033203125,1004.3814086914062
0.5,1.427,-21106.916015625,881.9033203125,1004.3814086914062
0.5,1.477,-21106.916015625,881.9033203125,1004.3814086914062
0.5,1.527,-21266.404296875,881.9032592773438,1004.3810424804688
0.5,1.577,-21327.76953125,881.9031982421875,1004.3809204101562
0.5,1.627,-21401.361328125,881.9031982421875,1004.3807983398438
0.5,1.678,-21425.892578125,881.9031372070312,1004.3807373046875
0.5,1.728,-21487.18359375,881.9031372070312,1004.380615234375
0.5,1.778,-21487.18359375,881.9031372070312,1004.380615234375
0.5,1.828,-21487.18359375,881.9031372070312,1004.380615234375
0.5,1.878,-21487.18359375,881.9031372070312,1004.380615234375
0.5,1.93,-21622.140625,881.903076171875,1004.3803100585938
0.5,1.98,-21658.974609375,881.9030151367188,1004.3802490234375
0.5,2.061,-21732.56640625,881.9030151367188,1004.380126953125
0.5,2.111,-21793.857421875,881.9029541015625,1004.3800048828125
0.5,2.162,-21806.0859375,881.9029541015625,1004.3799438476562
0.5,2.212,-21806.0859375,881.9029541015625,1004.3799438476562
0.5,2.262,-21806.0859375,881.9029541015625,1004.3799438476562
0.5,2.312,-21916.513671875,881.9028930664062,1004.3797607421875
0.5,2.365,-21941.04296875,881.9028930664062,1004.3796997070312
0.5,2.415,-22051.470703125,881.90283203125,1004.3794555664062
0.5,2.466,-22051.470703125,881.90283203125,1004.3794555664062
0.5,2.516,-22149.59375,881.9027709960938,1004.3792724609375
0.5,2.566,-22161.822265625,881.9027709960938,1004.3792114257812
0.5,2.616,-22161.822265625,881.9027709960938,1004.3792114257812
0.5,2.667,-22161.822265625,881.9027709960938,1004.3792114257812
0.5,2.717,-22309.08203125,881.9027099609375,1004.37890625
0.5,2.769,-22333.61328125,881.9026489257812,1004.37890625
0.5,2.819,-22431.73828125,881.9026489257812,1004.378662109375
0.5,2.87,-22456.267578125,881.902587890625,1004.378662109375
0.5,2.92,-22554.392578125,881.902587890625,1004.37841796875
0.5,2.973,-22554.392578125,881.902587890625,1004.37841796875
0.5,3.023,-22554.392578125,881.902587890625,1004.37841796875
0.5,3.075,-22554.392578125,881.902587890625,1004.37841796875
0.5,3.125,-22701.65234375,881.9024658203125,1004.3781127929688
0.5,3.176,-22726.18359375,881.9024658203125,1004.3781127929688
0.5,3.261,-22824.306640625,881.9024047851562,1004.3778686523438
0.5,3.311,-22897.900390625,881.9024047851562,1004.3777465820312
0.5,3.362,-22922.357421875,881.90234375,1004.377685546875
0.5,3.412,-22922.357421875,881.90234375,1004.377685546875
0.5,3.462,-22922.357421875,881.90234375,1004.377685546875
0.5,3.512,-23032.857421875,881.9022827148438,1004.37744140625
0.5,3.567,-23069.6171875,881.9022827148438,1004.3773803710938
0.5,3.617,-23143.2109375,881.9022216796875,1004.3772583007812
0.5,3.668,-23192.271484375,881.9022216796875,1004.3771362304688
0.5,3.718,-23241.333984375,881.9022216796875,1004.3770751953125
0.5,3.768,-23265.791015625,881.9021606445312,1004.3770141601562
0.5,3.818,-23265.791015625,881.9021606445312,1004.3770141601562
0.5,3.868,-23265.791015625,881.9021606445312,1004.3770141601562
0.5,3.919,-23265.791015625,881.9021606445312,1004.3770141601562
0.5,3.969,-23413.125,881.902099609375,1004.376708984375
0.5,4.02,-23486.716796875,881.9020385742188,1004.3765258789062
0.5,4.07,-23548.08203125,881.9020385742188,1004.3764038085938
0.5,4.12,-23621.67578125,881.9019775390625,1004.3762817382812
0.5,4.17,-23670.736328125,881.9019775390625,1004.3761596679688
0.5,4.221,-23695.193359375,881.9019775390625,1004.3761596679688
0.5,4.271,-23695.193359375,881.9019775390625,1004.3761596679688
0.5,4.321,-23695.193359375,881.9019775390625,1004.3761596679688
0.5,4.371,-23695.193359375,881.9019775390625,1004.3761596679688
0.5,4.421,-23891.515625,881.90185546875,1004.375732421875
0.5,4.471,-23916.046875,881.90185546875,1004.3756713867188
0.5,4.521,-23989.640625,881.9017944335938,1004.3755493164062
0.5,4.571,-24038.701171875,881.9017333984375,1004.3754272460938
0.5,4.622,-24087.689453125,881.9017333984375,1004.3753662109375
0.5,4.672,-24087.689453125,881.9017333984375,1004.3753662109375
0.5,4.723,-24087.689453125,881.9017333984375,1004.3753662109375
0.5,4.773,-24087.689453125,881.9017333984375,1004.3753662109375
0.5,4.824,-24234.94921875,881.9016723632812,1004.3750610351562
0.5,4.874,-24259.48046875,881.9016723632812,1004.375
0.5,4.925,-24357.60546875,881.901611328125,1004.3748168945312
0.5,4.975,-24394.4375,881.9015502929688,1004.3746948242188
0.5,5.025,-24455.728515625,881.9015502929688,1004.3745727539062
0.5,5.076,-24455.728515625,881.9015502929688,1004.3745727539062
0.5,5.126,-24455.728515625,881.9015502929688,1004.3745727539062
0.5,5.177,-24455.728515625,881.9015502929688,1004.3745727539062
0.5,5.227,-24602.98828125,881.9014892578125,1004.3743286132812
0.5,5.278,-24664.353515625,881.9014282226562,1004.3742065429688
0.5,5.361,-24737.9453125,881.9013671875,1004.3740234375
0.5,5.414,-24811.5390625,881.9013671875,1004.3739013671875
0.5,5.464,-24848.298828125,881.9013061523438,1004.373779296875
0.5,5.517,-24885.130859375,881.9013061523438,1004.3737182617188
0.5,5.567,-24885.130859375,881.9013061523438,1004.3737182617188
0.5,5.618,-24885.130859375,881.9013061523438,1004.3737182617188
0.5,5.668,-24885.130859375,881.9013061523438,1004.3737182617188
0.5,5.718,-25044.619140625,881.9012451171875,1004.3734130859375
0.5,5.768,-25093.681640625,881.9011840820312,1004.373291015625
0.5,5.818,-25167.275390625,881.9011840820312,1004.3731689453125
0.5,5.869,-25228.638671875,881.901123046875,1004.373046875
0.5,5.919,-25289.9296875,881.901123046875,1004.3729248046875
0.5,5.969,-25289.9296875,881.901123046875,1004.3729248046875
0.75,0.0,-32630.017578125,881.8971557617188,1004.3580932617188
0.75,0.056,-32630.017578125,881.8971557617188,1004.3580932617188
0.75,0.109,-32630.017578125,881.8971557617188,1004.3580932617188
0.75,0.167,-32630.017578125,881.8971557617188,1004.3580932617188
0.75,0.217,-32806.5,881.8970336914062,1004.3577270507812
0.75,0.267,-32870.66015625,881.8970336914062,1004.3576049804688
0.75,0.317,-33031.1484375,881.8969116210938,1004.3572387695312
0.75,0.368,-33063.23046875,881.8969116210938,1004.357177734375
0.75,0.421,-33111.30078125,881.8969116210938,1004.3571166992188
0.75,0.471,-33111.30078125,881.8969116210938,1004.3571166992188
0.75,0.521,-33111.30078125,881.8969116210938,1004.3571166992188
0.75,0.571,-33111.30078125,881.8969116210938,1004.3571166992188
0.75,0.624,-33255.703125,881.8967895507812,1004.3568115234375
0.75,0.674,-33368.02734375,881.8967895507812,1004.3565673828125
0.75,0.724,-33464.265625,881.896728515625,1004.3563842773438
0.75,0.774,-33528.421875,881.8966674804688,1004.3562622070312
0.75,0.827,-33576.4921875,881.8966674804688,1004.3561401367188
0.75,0.877,-33576.4921875,881.8966674804688,1004.3561401367188
0.75,0.929,-33576.4921875,881.8966674804688,1004.3561401367188
0.75,0.979,-33736.984375,881.8965454101562,1004.3558349609375
0.75,1.029,-33785.0546875,881.8965454101562,1004.355712890625
0.75,1.079,-33897.37890625,881.896484375,1004.3555297851562
0.75,1.129,-33993.6171875,881.8964233398438,1004.3552856445312
0.75,1.179,-34025.6953125,881.8964233398438,1004.355224609375
0.75,1.23,-34041.6875,881.8964233398438,1004.355224609375
0.75,1.28,-34041.6875,881.8964233398438,1004.355224609375
0.75,1.33,-34041.6875,881.8964233398438,1004.355224609375
0.75,1.381,-34202.1796875,881.8963012695312,1004.3549194335938
0.75,1.431,-34282.328125,881.896240234375,1004.354736328125
0.75,1.482,-34330.4921875,881.896240234375,1004.3546142578125
0.75,1.532,-34426.73046875,881.8961791992188,1004.3544311523438
0.75,1.582,-34458.80859375,881.8961791992188,1004.3543701171875
0.75,1.632,-34474.80078125,881.8961791992188,1004.3543090820312
0.75,1.682,-34474.80078125,881.8961791992188,1004.3543090820312
0.75,1.732,-34474.80078125,881.8961791992188,1004.3543090820312
0.75,1.785,-34635.29296875,881.8960571289062,1004.35400390625
0.75,1.867,-34715.5390625,881.8960571289062,1004.3538208007812
0.75,1.917,-34811.7734375,881.89599609375,1004.3536376953125
0.75,1.967,-34859.84375,881.8959350585938,1004.3535766601562
0.75,2.018,-34859.84375,881.8959350585938,1004.3535766601562
0.75,2.069,-34859.84375,881.8959350585938,1004.3535766601562
0.75,2.119,-34859.84375,881.8959350585938,1004.3535766601562
0.75,2.172,-35004.25,881.8958740234375,1004.353271484375
0.75,2.228,-35132.66015625,881.8958129882812,1004.35302734375
0.75,2.278,-35196.8203125,881.895751953125,1004.3528442382812
0.75,2.328,-35276.96875,881.895751953125,1004.3527221679688
0.75,2.381,-35292.9609375,881.895751953125,1004.3526611328125
0.75,2.431,-35292.9609375,881.895751953125,1004.3526611328125
0.75,2.481,-35292.9609375,881.895751953125,1004.3526611328125
0.75,2.531,-35469.44140625,881.8956298828125,1004.352294921875
0.75,2.581,-35469.44140625,881.8956298828125,1004.352294921875
0.75,2.632,-35597.7578125,881.8955688476562,1004.35205078125
0.75,2.682,-35661.91796875,881.8955078125,1004.3519287109375
0.75,2.732,-35742.06640625,881.8955078125,1004.3517456054688
0.75,2.782,-35758.05859375,881.8954467773438,1004.3517456054688
0.75,2.832,-35758.05859375,881.8954467773438,1004.3517456054688
0.75,2.882,-35758.05859375,881.8954467773438,1004.3517456054688
0.75,2.935,-35950.62890625,881.8953857421875,1004.351318359375
0.75,2.985,-35982.70703125,881.8953857421875,1004.3512573242188
0.75,3.067,-36078.9453125,881.8953247070312,1004.35107421875
0.75,3.117,-36191.171875,881.895263671875,1004.350830078125
0.75,3.168,-36207.1640625,881.895263671875,1004.350830078125
0.75,3.218,-36207.1640625,881.895263671875,1004.350830078125
0.75,3.268,-36207.1640625,881.895263671875,1004.350830078125
0.75,3.32,-36367.65625,881.8951416015625,1004.3505249023438
0.75,3.37,-36367.65625,881.8951416015625,1004.3505249023438
0.75,3.421,-36528.05078125,881.8950805664062,1004.3501586914062
0.75,3.472,-36560.12890625,881.89501953125,1004.35009765625
0.75,3.522,-36672.453125,881.8949584960938,1004.349853515625
0.75,3.572,-36688.4453125,881.8949584960938,1004.349853515625
0.75,3.628,-36688.4453125,881.8949584960938,1004.349853515625
0.75,3.678,-36688.4453125,881.8949584960938,1004.349853515625
0.75,3.728,-36848.9375,881.8948974609375,1004.3495483398438
0.75,3.778,-36881.015625,881.8948974609375,1004.3494262695312
0.75,3.828,-36977.25390625,881.8948364257812,1004.3492431640625
0.75,3.878,-37041.41015625,881.894775390625,1004.34912109375
0.75,3.928,-37105.56640625,881.894775390625,1004.3489990234375
0.75,3.979,-37121.55859375,881.894775390625,1004.3489379882812
0.75,4.029,-37121.55859375,881.894775390625,1004.3489379882812
0.75,4.079,-37121.55859375,881.894775390625,1004.3489379882812
0.75,4.129,-37281.953125,881.8946533203125,1004.3486328125
0.75,4.179,-37281.953125,881.8946533203125,1004.3486328125
0.75,4.23,-37410.26953125,881.8945922851562,1004.348388671875
0.75,4.28,-37474.4296875,881.89453125,1004.3482666015625
0.75,4.33,-37554.578125,881.89453125,1004.3480834960938
0.75,4.382,-37570.5703125,881.89453125,1004.3480834960938
0.75,4.432,-37570.5703125,881.89453125,1004.3480834960938
0.75,4.482,-37570.5703125,881.89453125,1004.3480834960938
0.75,4.532,-37714.97265625,881.8944091796875,1004.3477783203125
0.75,4.582,-37763.140625,881.8944091796875,1004.34765625
0.75,4.632,-37859.375,881.8943481445312,1004.3474731445312
0.75,4.682,-37907.54296875,881.8943481445312,1004.3473510742188
0.75,4.732,-37987.69140625,881.894287109375,1004.3472290039062
0.75,4.783,-37987.69140625,881.894287109375,1004.3472290039062
0.75,4.834,-37987.69140625,881.894287109375,1004.3472290039062
0.75,4.884,-37987.69140625,881.894287109375,1004.3472290039062
0.75,4.937,-38116.0078125,881.8942260742188,1004.3469848632812
0.75,4.987,-38196.25390625,881.8941650390625,1004.3468017578125
0.75,5.037,-38324.5703125,881.8941040039062,1004.3465576171875
0.75,5.088,-38404.81640625,881.89404296875,1004.3463745117188
0.75,5.138,-38420.80859375,881.89404296875,1004.3463134765625
0.75,5.189,-38420.80859375,881.89404296875,1004.3463134765625
0.75,5.239,-38420.80859375,881.89404296875,1004.3463134765625
0.75,5.289,-38549.21875,881.8939819335938,1004.3460693359375
0.75,5.367,-38629.3671875,881.8939208984375,1004.345947265625
0.75,5.417,-38741.69140625,881.8938598632812,1004.345703125
0.75,5.467,-38773.7734375,881.8938598632812,1004.3456420898438
0.75,5.517,-38886.09765625,881.893798828125,1004.3453979492188
0.75,5.567,-38886.09765625,881.893798828125,1004.3453979492188
0.75,5.618,-38886.09765625,881.893798828125,1004.3453979492188
0.75,5.668,-38886.09765625,881.893798828125,1004.3453979492188
0.75,5.722,-39046.58984375,881.8937377929688,1004.3450927734375
0.75,5.772,-39110.74609375,881.8936767578125,1004.344970703125
0.75,5.822,-39255.1484375,881.8936157226562,1004.3446655273438
0.75,5.873,-39335.39453125,881.8935546875,1004.344482421875
0.75,5.923,-39367.37890625,881.8935546875,1004.3444213867188
0.75,5.973,-39367.37890625,881.8935546875,1004.3444213867188
1.0,0.0,-45039.73828125,881.888671875,1004.3260498046875
1.0,0.05,-45039.73828125,881.8886108398438,1004.3258666992188
1.0,0.101,-45039.73828125,881.8886108398438,1004.3258056640625
1.0,0.158,-45039.73828125,881.8886108398438,1004.3258056640625
1.0,0.208,-45039.73828125,881.8886108398438,1004.3258056640625
1.0,0.259,-45019.80859375,881.8884887695312,1004.325439453125
1.0,0.309,-45039.73828125,881.888427734375,1004.3251953125
1.0,0.359,-45039.73828125,881.888427734375,1004.3251342773438
1.0,0.409,-45039.73828125,881.8883666992188,1004.3247680664062
1.0,0.459,-45019.80859375,881.8883056640625,1004.3247680664062
1.0,0.511,-45019.80859375,881.8883056640625,1004.3247680664062
1.0,0.561,-45019.80859375,881.8883056640625,1004.3247680664062
1.0,0.611,-45019.80859375,881.88818359375,1004.3243408203125
1.0,0.661,-45039.73828125,881.88818359375,1004.32421875
1.0,0.711,-45039.73828125,881.8881225585938,1004.3239135742188
1.0,0.761,-45039.73828125,881.8880615234375,1004.3238525390625
1.0,0.811,-45039.73828125,881.8880004882812,1004.3236083984375
1.0,0.863,-45019.80859375,881.8880004882812,1004.3235473632812
1.0,0.914,-45019.80859375,881.8880004882812,1004.3235473632812
1.0,0.964,-45019.80859375,881.8880004882812,1004.3235473632812
1.0,1.014,-45019.80859375,881.8878784179688,1004.3231201171875
1.0,1.065,-45039.73828125,881.8878784179688,1004.322998046875
1.0,1.115,-45039.73828125,881.8878173828125,1004.32275390625
1.0,1.165,-45039.73828125,881.8877563476562,1004.3225708007812
1.0,1.216,-45019.80859375,881.8876953125,1004.3224487304688
1.0,1.266,-45019.80859375,881.8876953125,1004.3224487304688
1.0,1.316,-45019.80859375,881.8876953125,1004.3224487304688
1.0,1.366,-45019.80859375,881.8876953125,1004.3224487304688
1.0,1.416,-45059.66796875,881.8875732421875,1004.3219604492188
1.0,1.466,-45039.73828125,881.8875122070312,1004.32177734375
1.0,1.516,-45039.73828125,881.887451171875,1004.3214721679688
1.0,1.567,-45039.73828125,881.887451171875,1004.3213500976562
1.0,1.618,-45039.73828125,881.8873901367188,1004.3212890625
1.0,1.668,-45039.73828125,881.8873901367188,1004.3212890625
1.0,1.718,-45039.73828125,881.8873901367188,1004.3212890625
1.0,1.771,-45039.73828125,881.8873291015625,1004.3209228515625
1.0,1.821,-45039.73828125,881.8872680664062,1004.3207397460938
1.0,1.871,-45039.73828125,881.8872680664062,1004.3206787109375
1.0,1.921,-45039.73828125,881.8871459960938,1004.3203125
1.0,1.971,-45039.73828125,881.8871459960938,1004.3201904296875
1.0,2.022,-45039.73828125,881.8871459960938,1004.3201904296875
1.0,2.072,-45039.73828125,881.8871459960938,1004.3201904296875
1.0,2.122,-45039.73828125,881.8871459960938,1004.3201904296875
1.0,2.173,-45059.66796875,881.8870239257812,1004.3197021484375
1.0,2.223,-45039.73828125,881.8869018554688,1004.3194580078125
1.0,2.273,-45039.73828125,881.8869018554688,1004.3193969726562
1.0,2.323,-45039.73828125,881.8868408203125,1004.3191528320312
1.0,2.373,-45059.66796875,881.8867797851562,1004.3190307617188
1.0,2.424,-45059.66796875,881.8867797851562,1004.3190307617188
1.0,2.474,-45059.66796875,881.8867797851562,1004.3190307617188
1.0,2.524,-45179.0,881.88671875,1004.3186645507812
1.0,2.575,-45039.73828125,881.8866577148438,1004.3185424804688
1.0,2.625,-45039.73828125,881.8865966796875,1004.3182983398438
1.0,2.678,-45059.66796875,881.8865356445312,1004.3180541992188
1.0,2.728,-45039.73828125,881.886474609375,1004.31787109375
1.0,2.778,-45019.80859375,881.886474609375,1004.3178100585938
1.0,2.86,-45019.80859375,881.886474609375,1004.3178100585938
1.0,2.91,-45019.80859375,881.886474609375,1004.3178100585938
1.0,2.96,-45019.80859375,881.8863525390625,1004.3173828125
1.0,3.01,-45039.73828125,881.8862915039062,1004.317138671875
1.0,3.06,-45039.73828125,881.8862915039062,1004.317138671875
1.0,3.11,-45039.73828125,881.88623046875,1004.3167724609375
1.0,3.16,-45019.80859375,881.8861694335938,1004.316650390625
1.0,3.211,-45019.80859375,881.8861694335938,1004.316650390625
1.0,3.261,-45019.80859375,881.8861694335938,1004.316650390625
1.0,3.311,-45019.80859375,881.8861694335938,1004.316650390625
1.0,3.364,-45019.80859375,881.8861083984375,1004.3162841796875
1.0,3.414,-45039.73828125,881.885986328125,1004.3159790039062
1.0,3.464,-45039.73828125,881.885986328125,1004.31591796875
1.0,3.514,-45039.73828125,881.8859252929688,1004.3156127929688
1.0,3.565,-45019.80859375,881.8858642578125,1004.3155517578125
1.0,3.616,-45019.80859375,881.8858642578125,1004.3155517578125
1.0,3.666,-45019.80859375,881.8858642578125,1004.3155517578125
1.0,3.716,-45218.73828125,881.8857421875,1004.3151245117188
1.0,3.767,-45039.73828125,881.8857421875,1004.3150024414062
1.0,3.817,-45039.73828125,881.8856811523438,1004.3147583007812
1.0,3.867,-45039.73828125,881.8856811523438,1004.3146362304688
1.0,3.918,-45039.73828125,881.8855590820312,1004.3142700195312
1.0,3.968,-45019.80859375,881.8855590820312,1004.3142700195312
1.0,4.024,-45019.80859375,881.8855590820312,1004.3142700195312
1.0,4.074,-45019.80859375,881.8855590820312,1004.3142700195312
1.0,4.124,-45218.73828125,881.8854370117188,1004.3137817382812
1.0,4.175,-45039.73828125,881.8853759765625,1004.3136596679688
1.0,4.225,-45039.73828125,881.8853149414062,1004.3134765625
1.0,4.276,-45079.4765625,881.8853149414062,1004.3132934570312
1.0,4.326,-45019.80859375,881.8851928710938,1004.31298828125
1.0,4.377,-45019.80859375,881.8851928710938,1004.31298828125
1.0,4.458,-45019.80859375,881.8851928710938,1004.31298828125
1.0,4.508,-45019.80859375,881.8851928710938,1004.31298828125
1.0,4.561,-45019.80859375,881.8851318359375,1004.3126220703125
1.0,4.611,-45059.66796875,881.885009765625,1004.3123168945312
1.0,4.661,-45059.66796875,881.885009765625,1004.3123168945312
1.0,4.711,-45039.73828125,881.8849487304688,1004.31201171875
1.0,4.761,-45019.80859375,881.8848876953125,1004.3118896484375
1.0,4.812,-45019.80859375,881.8848876953125,1004.3118896484375
1.0,4.862,-45019.80859375,881.8848876953125,1004.3118896484375
1.0,4.912,-45019.80859375,881.8848876953125,1004.3118896484375
1.0,4.962,-45039.73828125,881.884765625,1004.3114013671875
1.0,5.012,-45039.73828125,881.884765625,1004.3111572265625
1.0,5.062,-45039.73828125,881.8847045898438,1004.3110961914062
1.0,5.112,-45039.73828125,881.8846435546875,1004.310791015625
1.0,5.163,-45019.80859375,881.8845825195312,1004.3106689453125
1.0,5.213,-45019.80859375,881.8845825195312,1004.3106689453125
1.0,5.263,-45019.80859375,881.8845825195312,1004.3106689453125
1.0,5.314,-45159.0703125,881.884521484375,1004.3103637695312
1.0,5.367,-45039.73828125,881.884521484375,1004.3102416992188
1.0,5.417,-45039.73828125,881.8843994140625,1004.3099975585938
1.0,5.468,-45039.73828125,881.8843994140625,1004.3098754882812
1.0,5.518,-45039.73828125,881.8843383789062,1004.3096313476562
1.0,5.569,-45019.80859375,881.8843383789062,1004.3095703125
1.0,5.619,-45019.80859375,881.8843383789062,1004.3095703125
1.0,5.669,-45019.80859375,881.8843383789062,1004.3095703125
1.0,5.719,-45179.0,881.8842163085938,1004.3092041015625
1.0,5.772,-45039.73828125,881.8841552734375,1004.30908203125
1.0,5.858,-45039.73828125,881.8841552734375,1004.3088989257812
1.0,5.908,-45039.73828125,881.884033203125,1004.3084106445312
1.0,5.958,-45019.80859375,881.8839721679688,1004.3084106445312
1 rt t x y z
2 0.0 0.0 -3409.5771484375 881.912841796875 1004.4171752929688
3 0.0 0.05 -3421.232177734375 881.912841796875 1004.4171752929688
4 0.0 0.1 -3456.197265625 881.9127807617188 1004.4171142578125
5 0.0 0.151 -3462.00732421875 881.9127807617188 1004.4170532226562
6 0.0 0.201 -3462.00732421875 881.9127807617188 1004.4170532226562
7 0.0 0.251 -3462.00732421875 881.9127807617188 1004.4170532226562
8 0.0 0.301 -3526.127197265625 881.9127807617188 1004.4169311523438
9 0.0 0.351 -3537.7822265625 881.9127807617188 1004.4169311523438
10 0.0 0.402 -3584.402099609375 881.9127197265625 1004.4168090820312
11 0.0 0.452 -3596.05712890625 881.9127197265625 1004.4168090820312
12 0.0 0.505 -3631.022216796875 881.9127197265625 1004.416748046875
13 0.0 0.555 -3631.022216796875 881.9127197265625 1004.416748046875
14 0.0 0.605 -3631.022216796875 881.9127197265625 1004.416748046875
15 0.0 0.655 -3631.022216796875 881.9127197265625 1004.416748046875
16 0.0 0.708 -3706.797119140625 881.9126586914062 1004.4165649414062
17 0.0 0.758 -3741.76220703125 881.9126586914062 1004.41650390625
18 0.0 0.808 -3788.382080078125 881.91259765625 1004.4164428710938
19 0.0 0.859 -3800.037109375 881.91259765625 1004.4163818359375
20 0.0 0.911 -3817.502197265625 881.91259765625 1004.4163818359375
21 0.0 0.961 -3817.502197265625 881.91259765625 1004.4163818359375
22 0.0 1.011 -3817.502197265625 881.91259765625 1004.4163818359375
23 0.0 1.061 -3817.502197265625 881.91259765625 1004.4163818359375
24 0.0 1.111 -3893.277099609375 881.91259765625 1004.4161987304688
25 0.0 1.162 -3916.587158203125 881.9125366210938 1004.4161376953125
26 0.0 1.212 -3957.397216796875 881.9125366210938 1004.4160766601562
27 0.0 1.262 -3986.55224609375 881.9125366210938 1004.416015625
28 0.0 1.315 -3998.20703125 881.9125366210938 1004.416015625
29 0.0 1.365 -3998.20703125 881.9125366210938 1004.416015625
30 0.0 1.415 -3998.20703125 881.9125366210938 1004.416015625
31 0.0 1.465 -4050.70703125 881.9124755859375 1004.4158935546875
32 0.0 1.515 -4079.8271484375 881.9124755859375 1004.4158325195312
33 0.0 1.565 -4108.98193359375 881.9124755859375 1004.415771484375
34 0.0 1.615 -4143.947265625 881.9124145507812 1004.4157104492188
35 0.0 1.665 -4178.912109375 881.9124145507812 1004.4156494140625
36 0.0 1.717 -4184.72216796875 881.9124145507812 1004.4155883789062
37 0.0 1.767 -4184.72216796875 881.9124145507812 1004.4155883789062
38 0.0 1.817 -4184.72216796875 881.9124145507812 1004.4155883789062
39 0.0 1.867 -4243.0322265625 881.912353515625 1004.41552734375
40 0.0 1.917 -4272.15234375 881.912353515625 1004.4154663085938
41 0.0 1.967 -4307.1171875 881.912353515625 1004.4153442382812
42 0.0 2.017 -4353.7373046875 881.912353515625 1004.415283203125
43 0.0 2.067 -4365.39208984375 881.9122924804688 1004.4152221679688
44 0.0 2.118 -4377.046875 881.9122924804688 1004.4152221679688
45 0.0 2.168 -4377.046875 881.9122924804688 1004.4152221679688
46 0.0 2.218 -4377.046875 881.9122924804688 1004.4152221679688
47 0.0 2.268 -4441.2021484375 881.9122924804688 1004.4151000976562
48 0.0 2.318 -4476.1669921875 881.9122314453125 1004.4150390625
49 0.0 2.368 -4493.6669921875 881.9122314453125 1004.4149780273438
50 0.0 2.418 -4540.287109375 881.9122314453125 1004.4149169921875
51 0.0 2.468 -4557.787109375 881.9122314453125 1004.4148559570312
52 0.0 2.52 -4563.59716796875 881.9122314453125 1004.4148559570312
53 0.0 2.57 -4563.59716796875 881.9122314453125 1004.4148559570312
54 0.0 2.62 -4610.251953125 881.9121704101562 1004.4147338867188
55 0.0 2.671 -4633.56201171875 881.9121704101562 1004.4147338867188
56 0.0 2.75 -4668.52685546875 881.9121704101562 1004.4146118164062
57 0.0 2.8 -4703.4921875 881.912109375 1004.41455078125
58 0.0 2.85 -4726.76708984375 881.912109375 1004.4144897460938
59 0.0 2.9 -4726.76708984375 881.912109375 1004.4144897460938
60 0.0 2.95 -4726.76708984375 881.912109375 1004.4144897460938
61 0.0 3.0 -4726.76708984375 881.912109375 1004.4144897460938
62 0.0 3.053 -4779.23193359375 881.912109375 1004.4144287109375
63 0.0 3.103 -4820.0419921875 881.9120483398438 1004.414306640625
64 0.0 3.153 -4831.697265625 881.9120483398438 1004.414306640625
65 0.0 3.204 -4878.31689453125 881.9120483398438 1004.4141845703125
66 0.0 3.254 -4884.126953125 881.9120483398438 1004.4141845703125
67 0.0 3.304 -4884.126953125 881.9120483398438 1004.4141845703125
68 0.0 3.354 -4884.126953125 881.9120483398438 1004.4141845703125
69 0.0 3.404 -4936.591796875 881.9119873046875 1004.4140625
70 0.0 3.454 -4948.2470703125 881.9119873046875 1004.4140625
71 0.0 3.505 -5000.7119140625 881.9119873046875 1004.4139404296875
72 0.0 3.555 -5012.3671875 881.9119873046875 1004.4139404296875
73 0.0 3.605 -5041.48681640625 881.9119262695312 1004.4138793945312
74 0.0 3.655 -5041.48681640625 881.9119262695312 1004.4138793945312
75 0.0 3.705 -5041.48681640625 881.9119262695312 1004.4138793945312
76 0.0 3.755 -5041.48681640625 881.9119262695312 1004.4138793945312
77 0.0 3.807 -5105.60693359375 881.9119262695312 1004.4137573242188
78 0.0 3.857 -5128.9169921875 881.9119262695312 1004.4136962890625
79 0.0 3.907 -5175.537109375 881.911865234375 1004.41357421875
80 0.0 3.957 -5187.19189453125 881.911865234375 1004.41357421875
81 0.0 4.01 -5210.501953125 881.911865234375 1004.4135131835938
82 0.0 4.06 -5210.501953125 881.911865234375 1004.4135131835938
83 0.0 4.11 -5210.501953125 881.911865234375 1004.4135131835938
84 0.0 4.16 -5210.501953125 881.911865234375 1004.4135131835938
85 0.0 4.21 -5286.27685546875 881.9118041992188 1004.4133911132812
86 0.0 4.26 -5321.2421875 881.9118041992188 1004.413330078125
87 0.0 4.314 -5356.20703125 881.9118041992188 1004.4132690429688
88 0.0 4.364 -5385.36181640625 881.9117431640625 1004.4132080078125
89 0.0 4.414 -5391.171875 881.9117431640625 1004.4131469726562
90 0.0 4.464 -5391.171875 881.9117431640625 1004.4131469726562
91 0.0 4.514 -5391.171875 881.9117431640625 1004.4131469726562
92 0.0 4.565 -5443.671875 881.9117431640625 1004.4130859375
93 0.0 4.615 -5472.7919921875 881.9117431640625 1004.4130249023438
94 0.0 4.667 -5496.10205078125 881.9116821289062 1004.4129638671875
95 0.0 4.717 -5531.06689453125 881.9116821289062 1004.4129028320312
96 0.0 4.767 -5560.22216796875 881.9116821289062 1004.412841796875
97 0.0 4.822 -5566.03173828125 881.9116821289062 1004.412841796875
98 0.0 4.872 -5566.03173828125 881.9116821289062 1004.412841796875
99 0.0 4.922 -5566.03173828125 881.9116821289062 1004.412841796875
100 0.0 4.978 -5635.9970703125 881.91162109375 1004.4126586914062
101 0.0 5.028 -5659.30712890625 881.91162109375 1004.4126586914062
102 0.0 5.079 -5694.27197265625 881.91162109375 1004.4125366210938
103 0.0 5.15 -5717.58203125 881.91162109375 1004.4125366210938
104 0.0 5.2 -5740.89208984375 881.9115600585938 1004.4124755859375
105 0.0 5.251 -5740.89208984375 881.9115600585938 1004.4124755859375
106 0.0 5.302 -5740.89208984375 881.9115600585938 1004.4124755859375
107 0.0 5.353 -5787.546875 881.9115600585938 1004.412353515625
108 0.0 5.403 -5828.35693359375 881.9115600585938 1004.4122924804688
109 0.0 5.453 -5840.01171875 881.9114990234375 1004.4122924804688
110 0.0 5.506 -5892.47705078125 881.9114990234375 1004.4121704101562
111 0.0 5.556 -5904.1318359375 881.9114990234375 1004.412109375
112 0.0 5.606 -5915.787109375 881.9114990234375 1004.412109375
113 0.0 5.656 -5915.787109375 881.9114990234375 1004.412109375
114 0.0 5.706 -5915.787109375 881.9114990234375 1004.412109375
115 0.0 5.756 -5974.0966796875 881.9114379882812 1004.4119873046875
116 0.0 5.806 -5985.751953125 881.9114379882812 1004.4119873046875
117 0.0 5.857 -6026.56201171875 881.9114379882812 1004.411865234375
118 0.0 5.907 -6061.52685546875 881.9114379882812 1004.4118041992188
119 0.0 5.957 -6084.8369140625 881.911376953125 1004.4117431640625
120 0.25 0.0 -10118.99609375 881.9092407226562 1004.4036254882812
121 0.25 0.055 -10228.689453125 881.9091796875 1004.4033813476562
122 0.25 0.105 -10279.3056640625 881.9091186523438 1004.4033203125
123 0.25 0.155 -10296.177734375 881.9091186523438 1004.4032592773438
124 0.25 0.205 -10372.126953125 881.9091186523438 1004.403076171875
125 0.25 0.255 -10380.537109375 881.9091186523438 1004.403076171875
126 0.25 0.305 -10380.537109375 881.9091186523438 1004.403076171875
127 0.25 0.356 -10380.537109375 881.9091186523438 1004.403076171875
128 0.25 0.406 -10380.537109375 881.9091186523438 1004.403076171875
129 0.25 0.46 -10490.23046875 881.9090576171875 1004.4028930664062
130 0.25 0.51 -10540.8466796875 881.9089965820312 1004.4027709960938
131 0.25 0.56 -10557.71875 881.9089965820312 1004.4027099609375
132 0.25 0.61 -10625.20703125 881.908935546875 1004.402587890625
133 0.25 0.661 -10650.4892578125 881.908935546875 1004.4025268554688
134 0.25 0.711 -10650.4892578125 881.908935546875 1004.4025268554688
135 0.25 0.761 -10650.4892578125 881.908935546875 1004.4025268554688
136 0.25 0.811 -10718.0283203125 881.908935546875 1004.4024047851562
137 0.25 0.861 -10743.310546875 881.9088745117188 1004.40234375
138 0.25 0.912 -10777.0546875 881.9088745117188 1004.4022827148438
139 0.25 0.962 -10793.9267578125 881.9088745117188 1004.4022216796875
140 0.25 1.012 -10878.287109375 881.9088134765625 1004.402099609375
141 0.25 1.064 -10886.697265625 881.9088134765625 1004.4020385742188
142 0.25 1.114 -10886.697265625 881.9088134765625 1004.4020385742188
143 0.25 1.164 -10886.697265625 881.9088134765625 1004.4020385742188
144 0.25 1.214 -10886.697265625 881.9088134765625 1004.4020385742188
145 0.25 1.268 -11004.8525390625 881.9087524414062 1004.4017944335938
146 0.25 1.318 -11055.4677734375 881.9087524414062 1004.4017333984375
147 0.25 1.368 -11080.8017578125 881.90869140625 1004.4016723632812
148 0.25 1.418 -11131.4169921875 881.90869140625 1004.4015502929688
149 0.25 1.468 -11148.23828125 881.90869140625 1004.4015502929688
150 0.25 1.519 -11148.23828125 881.90869140625 1004.4015502929688
151 0.25 1.569 -11148.23828125 881.90869140625 1004.4015502929688
152 0.25 1.619 -11232.6494140625 881.9086303710938 1004.4013671875
153 0.25 1.67 -11257.931640625 881.9086303710938 1004.4013061523438
154 0.25 1.72 -11308.5478515625 881.9085693359375 1004.4011840820312
155 0.25 1.771 -11333.8818359375 881.9085693359375 1004.401123046875
156 0.25 1.821 -11384.4970703125 881.9085693359375 1004.4010620117188
157 0.25 1.871 -11401.318359375 881.9085693359375 1004.4010009765625
158 0.25 1.921 -11401.318359375 881.9085693359375 1004.4010009765625
159 0.25 1.971 -11401.318359375 881.9085693359375 1004.4010009765625
160 0.25 2.022 -11401.318359375 881.9085693359375 1004.4010009765625
161 0.25 2.072 -11527.9345703125 881.908447265625 1004.4007568359375
162 0.25 2.122 -11561.6787109375 881.908447265625 1004.4006958007812
163 0.25 2.172 -11603.8837890625 881.908447265625 1004.400634765625
164 0.25 2.222 -11671.3720703125 881.9083862304688 1004.4004516601562
165 0.25 2.272 -11688.244140625 881.9083862304688 1004.4004516601562
166 0.25 2.322 -11705.0654296875 881.9083862304688 1004.400390625
167 0.25 2.373 -11705.0654296875 881.9083862304688 1004.400390625
168 0.25 2.423 -11705.0654296875 881.9083862304688 1004.400390625
169 0.25 2.473 -11789.4755859375 881.9083251953125 1004.4002075195312
170 0.25 2.524 -11814.7587890625 881.9083251953125 1004.4002075195312
171 0.25 2.574 -11882.2470703125 881.9082641601562 1004.4000244140625
172 0.25 2.624 -11915.990234375 881.9082641601562 1004.3999633789062
173 0.25 2.674 -11949.734375 881.9082641601562 1004.39990234375
174 0.25 2.725 -11958.1455078125 881.9082641601562 1004.39990234375
175 0.25 2.775 -11958.1455078125 881.9082641601562 1004.39990234375
176 0.25 2.825 -11958.1455078125 881.9082641601562 1004.39990234375
177 0.25 2.876 -12042.5556640625 881.908203125 1004.3997192382812
178 0.25 2.926 -12067.8388671875 881.908203125 1004.399658203125
179 0.25 2.977 -12118.455078125 881.9081420898438 1004.3995971679688
180 0.25 3.028 -12185.9423828125 881.9081420898438 1004.3994140625
181 0.25 3.078 -12228.1474609375 881.9080810546875 1004.3993530273438
182 0.25 3.128 -12236.55859375 881.9080810546875 1004.3993530273438
183 0.25 3.178 -12236.55859375 881.9080810546875 1004.3993530273438
184 0.25 3.228 -12236.55859375 881.9080810546875 1004.3993530273438
185 0.25 3.278 -12312.55859375 881.9080810546875 1004.399169921875
186 0.25 3.329 -12354.712890625 881.9080200195312 1004.3991088867188
187 0.25 3.382 -12396.9189453125 881.9080200195312 1004.3989868164062
188 0.25 3.432 -12430.662109375 881.9080200195312 1004.39892578125
189 0.25 3.482 -12489.740234375 881.907958984375 1004.3988037109375
190 0.25 3.534 -12498.150390625 881.907958984375 1004.3988037109375
191 0.25 3.584 -12498.150390625 881.907958984375 1004.3988037109375
192 0.25 3.654 -12498.150390625 881.907958984375 1004.3988037109375
193 0.25 3.706 -12582.5615234375 881.9078979492188 1004.3986206054688
194 0.25 3.756 -12616.3056640625 881.9078979492188 1004.3985595703125
195 0.25 3.807 -12666.9208984375 881.9078369140625 1004.3984375
196 0.25 3.857 -12700.6650390625 881.9078369140625 1004.3983764648438
197 0.25 3.907 -12751.28125 881.9078369140625 1004.3983154296875
198 0.25 3.96 -12751.28125 881.9078369140625 1004.3983154296875
199 0.25 4.01 -12751.28125 881.9078369140625 1004.3983154296875
200 0.25 4.06 -12751.28125 881.9078369140625 1004.3983154296875
201 0.25 4.11 -12844.1025390625 881.9077758789062 1004.3981323242188
202 0.25 4.16 -12877.8466796875 881.9077758789062 1004.3980102539062
203 0.25 4.211 -12928.462890625 881.90771484375 1004.39794921875
204 0.25 4.261 -12962.2060546875 881.90771484375 1004.3978881835938
205 0.25 4.311 -13012.822265625 881.9076538085938 1004.3977661132812
206 0.25 4.361 -13021.2333984375 881.9076538085938 1004.3977661132812
207 0.25 4.411 -13021.2333984375 881.9076538085938 1004.3977661132812
208 0.25 4.461 -13021.2333984375 881.9076538085938 1004.3977661132812
209 0.25 4.511 -13105.6435546875 881.9076538085938 1004.3975830078125
210 0.25 4.562 -13122.515625 881.9075927734375 1004.3975219726562
211 0.25 4.612 -13198.46484375 881.9075927734375 1004.3973999023438
212 0.25 4.663 -13215.3369140625 881.9075927734375 1004.3973388671875
213 0.25 4.713 -13265.953125 881.9075317382812 1004.3972778320312
214 0.25 4.763 -13274.3642578125 881.9075317382812 1004.397216796875
215 0.25 4.813 -13274.3642578125 881.9075317382812 1004.397216796875
216 0.25 4.863 -13274.3642578125 881.9075317382812 1004.397216796875
217 0.25 4.913 -13358.7744140625 881.907470703125 1004.3970336914062
218 0.25 4.963 -13375.646484375 881.907470703125 1004.3970336914062
219 0.25 5.014 -13451.595703125 881.907470703125 1004.3968505859375
220 0.25 5.064 -13476.9287109375 881.9074096679688 1004.3968505859375
221 0.25 5.114 -13527.494140625 881.9074096679688 1004.396728515625
222 0.25 5.164 -13527.494140625 881.9074096679688 1004.396728515625
223 0.25 5.215 -13527.494140625 881.9074096679688 1004.396728515625
224 0.25 5.265 -13527.494140625 881.9074096679688 1004.396728515625
225 0.25 5.315 -13620.3154296875 881.9073486328125 1004.3965454101562
226 0.25 5.365 -13654.0595703125 881.9073486328125 1004.396484375
227 0.25 5.416 -13704.67578125 881.9072875976562 1004.3963623046875
228 0.25 5.466 -13738.419921875 881.9072875976562 1004.3963012695312
229 0.25 5.516 -13780.57421875 881.9072875976562 1004.3961791992188
230 0.25 5.567 -13780.57421875 881.9072875976562 1004.3961791992188
231 0.25 5.617 -13780.57421875 881.9072875976562 1004.3961791992188
232 0.25 5.667 -13780.57421875 881.9072875976562 1004.3961791992188
233 0.25 5.717 -13864.9853515625 881.9072265625 1004.3960571289062
234 0.25 5.768 -13898.7294921875 881.9072265625 1004.39599609375
235 0.25 5.818 -13949.3447265625 881.9071655273438 1004.3958740234375
236 0.25 5.868 -13966.216796875 881.9071655273438 1004.3958129882812
237 0.25 5.918 -14008.3720703125 881.9071655273438 1004.395751953125
238 0.25 5.968 -14008.3720703125 881.9071655273438 1004.395751953125
239 0.5 0.0 -19904.896484375 881.9039916992188 1004.3837890625
240 0.5 0.063 -19953.958984375 881.9039306640625 1004.3837280273438
241 0.5 0.113 -19990.71875 881.9039306640625 1004.3836669921875
242 0.5 0.164 -19990.71875 881.9039306640625 1004.3836669921875
243 0.5 0.215 -19990.71875 881.9039306640625 1004.3836669921875
244 0.5 0.265 -19990.71875 881.9039306640625 1004.3836669921875
245 0.5 0.316 -20150.20703125 881.9038696289062 1004.38330078125
246 0.5 0.366 -20174.73828125 881.90380859375 1004.38330078125
247 0.5 0.416 -20260.6328125 881.90380859375 1004.3831176757812
248 0.5 0.467 -20309.6953125 881.9037475585938 1004.3829956054688
249 0.5 0.517 -20346.455078125 881.9037475585938 1004.3829345703125
250 0.5 0.567 -20346.455078125 881.9037475585938 1004.3829345703125
251 0.5 0.62 -20346.455078125 881.9037475585938 1004.3829345703125
252 0.5 0.67 -20346.455078125 881.9037475585938 1004.3829345703125
253 0.5 0.72 -20505.943359375 881.9036865234375 1004.3826293945312
254 0.5 0.771 -20530.474609375 881.9036254882812 1004.382568359375
255 0.5 0.821 -20616.369140625 881.9036254882812 1004.3823852539062
256 0.5 0.871 -20689.962890625 881.903564453125 1004.3822021484375
257 0.5 0.921 -20738.951171875 881.903564453125 1004.3821411132812
258 0.5 0.971 -20738.951171875 881.903564453125 1004.3821411132812
259 0.5 1.021 -20738.951171875 881.903564453125 1004.3821411132812
260 0.5 1.071 -20738.951171875 881.903564453125 1004.3821411132812
261 0.5 1.124 -20886.2109375 881.9034423828125 1004.3818359375
262 0.5 1.174 -20935.2734375 881.9034423828125 1004.3817138671875
263 0.5 1.225 -21033.396484375 881.9033813476562 1004.3815307617188
264 0.5 1.275 -21057.927734375 881.9033813476562 1004.3814697265625
265 0.5 1.325 -21106.916015625 881.9033203125 1004.3814086914062
266 0.5 1.375 -21106.916015625 881.9033203125 1004.3814086914062
267 0.5 1.427 -21106.916015625 881.9033203125 1004.3814086914062
268 0.5 1.477 -21106.916015625 881.9033203125 1004.3814086914062
269 0.5 1.527 -21266.404296875 881.9032592773438 1004.3810424804688
270 0.5 1.577 -21327.76953125 881.9031982421875 1004.3809204101562
271 0.5 1.627 -21401.361328125 881.9031982421875 1004.3807983398438
272 0.5 1.678 -21425.892578125 881.9031372070312 1004.3807373046875
273 0.5 1.728 -21487.18359375 881.9031372070312 1004.380615234375
274 0.5 1.778 -21487.18359375 881.9031372070312 1004.380615234375
275 0.5 1.828 -21487.18359375 881.9031372070312 1004.380615234375
276 0.5 1.878 -21487.18359375 881.9031372070312 1004.380615234375
277 0.5 1.93 -21622.140625 881.903076171875 1004.3803100585938
278 0.5 1.98 -21658.974609375 881.9030151367188 1004.3802490234375
279 0.5 2.061 -21732.56640625 881.9030151367188 1004.380126953125
280 0.5 2.111 -21793.857421875 881.9029541015625 1004.3800048828125
281 0.5 2.162 -21806.0859375 881.9029541015625 1004.3799438476562
282 0.5 2.212 -21806.0859375 881.9029541015625 1004.3799438476562
283 0.5 2.262 -21806.0859375 881.9029541015625 1004.3799438476562
284 0.5 2.312 -21916.513671875 881.9028930664062 1004.3797607421875
285 0.5 2.365 -21941.04296875 881.9028930664062 1004.3796997070312
286 0.5 2.415 -22051.470703125 881.90283203125 1004.3794555664062
287 0.5 2.466 -22051.470703125 881.90283203125 1004.3794555664062
288 0.5 2.516 -22149.59375 881.9027709960938 1004.3792724609375
289 0.5 2.566 -22161.822265625 881.9027709960938 1004.3792114257812
290 0.5 2.616 -22161.822265625 881.9027709960938 1004.3792114257812
291 0.5 2.667 -22161.822265625 881.9027709960938 1004.3792114257812
292 0.5 2.717 -22309.08203125 881.9027099609375 1004.37890625
293 0.5 2.769 -22333.61328125 881.9026489257812 1004.37890625
294 0.5 2.819 -22431.73828125 881.9026489257812 1004.378662109375
295 0.5 2.87 -22456.267578125 881.902587890625 1004.378662109375
296 0.5 2.92 -22554.392578125 881.902587890625 1004.37841796875
297 0.5 2.973 -22554.392578125 881.902587890625 1004.37841796875
298 0.5 3.023 -22554.392578125 881.902587890625 1004.37841796875
299 0.5 3.075 -22554.392578125 881.902587890625 1004.37841796875
300 0.5 3.125 -22701.65234375 881.9024658203125 1004.3781127929688
301 0.5 3.176 -22726.18359375 881.9024658203125 1004.3781127929688
302 0.5 3.261 -22824.306640625 881.9024047851562 1004.3778686523438
303 0.5 3.311 -22897.900390625 881.9024047851562 1004.3777465820312
304 0.5 3.362 -22922.357421875 881.90234375 1004.377685546875
305 0.5 3.412 -22922.357421875 881.90234375 1004.377685546875
306 0.5 3.462 -22922.357421875 881.90234375 1004.377685546875
307 0.5 3.512 -23032.857421875 881.9022827148438 1004.37744140625
308 0.5 3.567 -23069.6171875 881.9022827148438 1004.3773803710938
309 0.5 3.617 -23143.2109375 881.9022216796875 1004.3772583007812
310 0.5 3.668 -23192.271484375 881.9022216796875 1004.3771362304688
311 0.5 3.718 -23241.333984375 881.9022216796875 1004.3770751953125
312 0.5 3.768 -23265.791015625 881.9021606445312 1004.3770141601562
313 0.5 3.818 -23265.791015625 881.9021606445312 1004.3770141601562
314 0.5 3.868 -23265.791015625 881.9021606445312 1004.3770141601562
315 0.5 3.919 -23265.791015625 881.9021606445312 1004.3770141601562
316 0.5 3.969 -23413.125 881.902099609375 1004.376708984375
317 0.5 4.02 -23486.716796875 881.9020385742188 1004.3765258789062
318 0.5 4.07 -23548.08203125 881.9020385742188 1004.3764038085938
319 0.5 4.12 -23621.67578125 881.9019775390625 1004.3762817382812
320 0.5 4.17 -23670.736328125 881.9019775390625 1004.3761596679688
321 0.5 4.221 -23695.193359375 881.9019775390625 1004.3761596679688
322 0.5 4.271 -23695.193359375 881.9019775390625 1004.3761596679688
323 0.5 4.321 -23695.193359375 881.9019775390625 1004.3761596679688
324 0.5 4.371 -23695.193359375 881.9019775390625 1004.3761596679688
325 0.5 4.421 -23891.515625 881.90185546875 1004.375732421875
326 0.5 4.471 -23916.046875 881.90185546875 1004.3756713867188
327 0.5 4.521 -23989.640625 881.9017944335938 1004.3755493164062
328 0.5 4.571 -24038.701171875 881.9017333984375 1004.3754272460938
329 0.5 4.622 -24087.689453125 881.9017333984375 1004.3753662109375
330 0.5 4.672 -24087.689453125 881.9017333984375 1004.3753662109375
331 0.5 4.723 -24087.689453125 881.9017333984375 1004.3753662109375
332 0.5 4.773 -24087.689453125 881.9017333984375 1004.3753662109375
333 0.5 4.824 -24234.94921875 881.9016723632812 1004.3750610351562
334 0.5 4.874 -24259.48046875 881.9016723632812 1004.375
335 0.5 4.925 -24357.60546875 881.901611328125 1004.3748168945312
336 0.5 4.975 -24394.4375 881.9015502929688 1004.3746948242188
337 0.5 5.025 -24455.728515625 881.9015502929688 1004.3745727539062
338 0.5 5.076 -24455.728515625 881.9015502929688 1004.3745727539062
339 0.5 5.126 -24455.728515625 881.9015502929688 1004.3745727539062
340 0.5 5.177 -24455.728515625 881.9015502929688 1004.3745727539062
341 0.5 5.227 -24602.98828125 881.9014892578125 1004.3743286132812
342 0.5 5.278 -24664.353515625 881.9014282226562 1004.3742065429688
343 0.5 5.361 -24737.9453125 881.9013671875 1004.3740234375
344 0.5 5.414 -24811.5390625 881.9013671875 1004.3739013671875
345 0.5 5.464 -24848.298828125 881.9013061523438 1004.373779296875
346 0.5 5.517 -24885.130859375 881.9013061523438 1004.3737182617188
347 0.5 5.567 -24885.130859375 881.9013061523438 1004.3737182617188
348 0.5 5.618 -24885.130859375 881.9013061523438 1004.3737182617188
349 0.5 5.668 -24885.130859375 881.9013061523438 1004.3737182617188
350 0.5 5.718 -25044.619140625 881.9012451171875 1004.3734130859375
351 0.5 5.768 -25093.681640625 881.9011840820312 1004.373291015625
352 0.5 5.818 -25167.275390625 881.9011840820312 1004.3731689453125
353 0.5 5.869 -25228.638671875 881.901123046875 1004.373046875
354 0.5 5.919 -25289.9296875 881.901123046875 1004.3729248046875
355 0.5 5.969 -25289.9296875 881.901123046875 1004.3729248046875
356 0.75 0.0 -32630.017578125 881.8971557617188 1004.3580932617188
357 0.75 0.056 -32630.017578125 881.8971557617188 1004.3580932617188
358 0.75 0.109 -32630.017578125 881.8971557617188 1004.3580932617188
359 0.75 0.167 -32630.017578125 881.8971557617188 1004.3580932617188
360 0.75 0.217 -32806.5 881.8970336914062 1004.3577270507812
361 0.75 0.267 -32870.66015625 881.8970336914062 1004.3576049804688
362 0.75 0.317 -33031.1484375 881.8969116210938 1004.3572387695312
363 0.75 0.368 -33063.23046875 881.8969116210938 1004.357177734375
364 0.75 0.421 -33111.30078125 881.8969116210938 1004.3571166992188
365 0.75 0.471 -33111.30078125 881.8969116210938 1004.3571166992188
366 0.75 0.521 -33111.30078125 881.8969116210938 1004.3571166992188
367 0.75 0.571 -33111.30078125 881.8969116210938 1004.3571166992188
368 0.75 0.624 -33255.703125 881.8967895507812 1004.3568115234375
369 0.75 0.674 -33368.02734375 881.8967895507812 1004.3565673828125
370 0.75 0.724 -33464.265625 881.896728515625 1004.3563842773438
371 0.75 0.774 -33528.421875 881.8966674804688 1004.3562622070312
372 0.75 0.827 -33576.4921875 881.8966674804688 1004.3561401367188
373 0.75 0.877 -33576.4921875 881.8966674804688 1004.3561401367188
374 0.75 0.929 -33576.4921875 881.8966674804688 1004.3561401367188
375 0.75 0.979 -33736.984375 881.8965454101562 1004.3558349609375
376 0.75 1.029 -33785.0546875 881.8965454101562 1004.355712890625
377 0.75 1.079 -33897.37890625 881.896484375 1004.3555297851562
378 0.75 1.129 -33993.6171875 881.8964233398438 1004.3552856445312
379 0.75 1.179 -34025.6953125 881.8964233398438 1004.355224609375
380 0.75 1.23 -34041.6875 881.8964233398438 1004.355224609375
381 0.75 1.28 -34041.6875 881.8964233398438 1004.355224609375
382 0.75 1.33 -34041.6875 881.8964233398438 1004.355224609375
383 0.75 1.381 -34202.1796875 881.8963012695312 1004.3549194335938
384 0.75 1.431 -34282.328125 881.896240234375 1004.354736328125
385 0.75 1.482 -34330.4921875 881.896240234375 1004.3546142578125
386 0.75 1.532 -34426.73046875 881.8961791992188 1004.3544311523438
387 0.75 1.582 -34458.80859375 881.8961791992188 1004.3543701171875
388 0.75 1.632 -34474.80078125 881.8961791992188 1004.3543090820312
389 0.75 1.682 -34474.80078125 881.8961791992188 1004.3543090820312
390 0.75 1.732 -34474.80078125 881.8961791992188 1004.3543090820312
391 0.75 1.785 -34635.29296875 881.8960571289062 1004.35400390625
392 0.75 1.867 -34715.5390625 881.8960571289062 1004.3538208007812
393 0.75 1.917 -34811.7734375 881.89599609375 1004.3536376953125
394 0.75 1.967 -34859.84375 881.8959350585938 1004.3535766601562
395 0.75 2.018 -34859.84375 881.8959350585938 1004.3535766601562
396 0.75 2.069 -34859.84375 881.8959350585938 1004.3535766601562
397 0.75 2.119 -34859.84375 881.8959350585938 1004.3535766601562
398 0.75 2.172 -35004.25 881.8958740234375 1004.353271484375
399 0.75 2.228 -35132.66015625 881.8958129882812 1004.35302734375
400 0.75 2.278 -35196.8203125 881.895751953125 1004.3528442382812
401 0.75 2.328 -35276.96875 881.895751953125 1004.3527221679688
402 0.75 2.381 -35292.9609375 881.895751953125 1004.3526611328125
403 0.75 2.431 -35292.9609375 881.895751953125 1004.3526611328125
404 0.75 2.481 -35292.9609375 881.895751953125 1004.3526611328125
405 0.75 2.531 -35469.44140625 881.8956298828125 1004.352294921875
406 0.75 2.581 -35469.44140625 881.8956298828125 1004.352294921875
407 0.75 2.632 -35597.7578125 881.8955688476562 1004.35205078125
408 0.75 2.682 -35661.91796875 881.8955078125 1004.3519287109375
409 0.75 2.732 -35742.06640625 881.8955078125 1004.3517456054688
410 0.75 2.782 -35758.05859375 881.8954467773438 1004.3517456054688
411 0.75 2.832 -35758.05859375 881.8954467773438 1004.3517456054688
412 0.75 2.882 -35758.05859375 881.8954467773438 1004.3517456054688
413 0.75 2.935 -35950.62890625 881.8953857421875 1004.351318359375
414 0.75 2.985 -35982.70703125 881.8953857421875 1004.3512573242188
415 0.75 3.067 -36078.9453125 881.8953247070312 1004.35107421875
416 0.75 3.117 -36191.171875 881.895263671875 1004.350830078125
417 0.75 3.168 -36207.1640625 881.895263671875 1004.350830078125
418 0.75 3.218 -36207.1640625 881.895263671875 1004.350830078125
419 0.75 3.268 -36207.1640625 881.895263671875 1004.350830078125
420 0.75 3.32 -36367.65625 881.8951416015625 1004.3505249023438
421 0.75 3.37 -36367.65625 881.8951416015625 1004.3505249023438
422 0.75 3.421 -36528.05078125 881.8950805664062 1004.3501586914062
423 0.75 3.472 -36560.12890625 881.89501953125 1004.35009765625
424 0.75 3.522 -36672.453125 881.8949584960938 1004.349853515625
425 0.75 3.572 -36688.4453125 881.8949584960938 1004.349853515625
426 0.75 3.628 -36688.4453125 881.8949584960938 1004.349853515625
427 0.75 3.678 -36688.4453125 881.8949584960938 1004.349853515625
428 0.75 3.728 -36848.9375 881.8948974609375 1004.3495483398438
429 0.75 3.778 -36881.015625 881.8948974609375 1004.3494262695312
430 0.75 3.828 -36977.25390625 881.8948364257812 1004.3492431640625
431 0.75 3.878 -37041.41015625 881.894775390625 1004.34912109375
432 0.75 3.928 -37105.56640625 881.894775390625 1004.3489990234375
433 0.75 3.979 -37121.55859375 881.894775390625 1004.3489379882812
434 0.75 4.029 -37121.55859375 881.894775390625 1004.3489379882812
435 0.75 4.079 -37121.55859375 881.894775390625 1004.3489379882812
436 0.75 4.129 -37281.953125 881.8946533203125 1004.3486328125
437 0.75 4.179 -37281.953125 881.8946533203125 1004.3486328125
438 0.75 4.23 -37410.26953125 881.8945922851562 1004.348388671875
439 0.75 4.28 -37474.4296875 881.89453125 1004.3482666015625
440 0.75 4.33 -37554.578125 881.89453125 1004.3480834960938
441 0.75 4.382 -37570.5703125 881.89453125 1004.3480834960938
442 0.75 4.432 -37570.5703125 881.89453125 1004.3480834960938
443 0.75 4.482 -37570.5703125 881.89453125 1004.3480834960938
444 0.75 4.532 -37714.97265625 881.8944091796875 1004.3477783203125
445 0.75 4.582 -37763.140625 881.8944091796875 1004.34765625
446 0.75 4.632 -37859.375 881.8943481445312 1004.3474731445312
447 0.75 4.682 -37907.54296875 881.8943481445312 1004.3473510742188
448 0.75 4.732 -37987.69140625 881.894287109375 1004.3472290039062
449 0.75 4.783 -37987.69140625 881.894287109375 1004.3472290039062
450 0.75 4.834 -37987.69140625 881.894287109375 1004.3472290039062
451 0.75 4.884 -37987.69140625 881.894287109375 1004.3472290039062
452 0.75 4.937 -38116.0078125 881.8942260742188 1004.3469848632812
453 0.75 4.987 -38196.25390625 881.8941650390625 1004.3468017578125
454 0.75 5.037 -38324.5703125 881.8941040039062 1004.3465576171875
455 0.75 5.088 -38404.81640625 881.89404296875 1004.3463745117188
456 0.75 5.138 -38420.80859375 881.89404296875 1004.3463134765625
457 0.75 5.189 -38420.80859375 881.89404296875 1004.3463134765625
458 0.75 5.239 -38420.80859375 881.89404296875 1004.3463134765625
459 0.75 5.289 -38549.21875 881.8939819335938 1004.3460693359375
460 0.75 5.367 -38629.3671875 881.8939208984375 1004.345947265625
461 0.75 5.417 -38741.69140625 881.8938598632812 1004.345703125
462 0.75 5.467 -38773.7734375 881.8938598632812 1004.3456420898438
463 0.75 5.517 -38886.09765625 881.893798828125 1004.3453979492188
464 0.75 5.567 -38886.09765625 881.893798828125 1004.3453979492188
465 0.75 5.618 -38886.09765625 881.893798828125 1004.3453979492188
466 0.75 5.668 -38886.09765625 881.893798828125 1004.3453979492188
467 0.75 5.722 -39046.58984375 881.8937377929688 1004.3450927734375
468 0.75 5.772 -39110.74609375 881.8936767578125 1004.344970703125
469 0.75 5.822 -39255.1484375 881.8936157226562 1004.3446655273438
470 0.75 5.873 -39335.39453125 881.8935546875 1004.344482421875
471 0.75 5.923 -39367.37890625 881.8935546875 1004.3444213867188
472 0.75 5.973 -39367.37890625 881.8935546875 1004.3444213867188
473 1.0 0.0 -45039.73828125 881.888671875 1004.3260498046875
474 1.0 0.05 -45039.73828125 881.8886108398438 1004.3258666992188
475 1.0 0.101 -45039.73828125 881.8886108398438 1004.3258056640625
476 1.0 0.158 -45039.73828125 881.8886108398438 1004.3258056640625
477 1.0 0.208 -45039.73828125 881.8886108398438 1004.3258056640625
478 1.0 0.259 -45019.80859375 881.8884887695312 1004.325439453125
479 1.0 0.309 -45039.73828125 881.888427734375 1004.3251953125
480 1.0 0.359 -45039.73828125 881.888427734375 1004.3251342773438
481 1.0 0.409 -45039.73828125 881.8883666992188 1004.3247680664062
482 1.0 0.459 -45019.80859375 881.8883056640625 1004.3247680664062
483 1.0 0.511 -45019.80859375 881.8883056640625 1004.3247680664062
484 1.0 0.561 -45019.80859375 881.8883056640625 1004.3247680664062
485 1.0 0.611 -45019.80859375 881.88818359375 1004.3243408203125
486 1.0 0.661 -45039.73828125 881.88818359375 1004.32421875
487 1.0 0.711 -45039.73828125 881.8881225585938 1004.3239135742188
488 1.0 0.761 -45039.73828125 881.8880615234375 1004.3238525390625
489 1.0 0.811 -45039.73828125 881.8880004882812 1004.3236083984375
490 1.0 0.863 -45019.80859375 881.8880004882812 1004.3235473632812
491 1.0 0.914 -45019.80859375 881.8880004882812 1004.3235473632812
492 1.0 0.964 -45019.80859375 881.8880004882812 1004.3235473632812
493 1.0 1.014 -45019.80859375 881.8878784179688 1004.3231201171875
494 1.0 1.065 -45039.73828125 881.8878784179688 1004.322998046875
495 1.0 1.115 -45039.73828125 881.8878173828125 1004.32275390625
496 1.0 1.165 -45039.73828125 881.8877563476562 1004.3225708007812
497 1.0 1.216 -45019.80859375 881.8876953125 1004.3224487304688
498 1.0 1.266 -45019.80859375 881.8876953125 1004.3224487304688
499 1.0 1.316 -45019.80859375 881.8876953125 1004.3224487304688
500 1.0 1.366 -45019.80859375 881.8876953125 1004.3224487304688
501 1.0 1.416 -45059.66796875 881.8875732421875 1004.3219604492188
502 1.0 1.466 -45039.73828125 881.8875122070312 1004.32177734375
503 1.0 1.516 -45039.73828125 881.887451171875 1004.3214721679688
504 1.0 1.567 -45039.73828125 881.887451171875 1004.3213500976562
505 1.0 1.618 -45039.73828125 881.8873901367188 1004.3212890625
506 1.0 1.668 -45039.73828125 881.8873901367188 1004.3212890625
507 1.0 1.718 -45039.73828125 881.8873901367188 1004.3212890625
508 1.0 1.771 -45039.73828125 881.8873291015625 1004.3209228515625
509 1.0 1.821 -45039.73828125 881.8872680664062 1004.3207397460938
510 1.0 1.871 -45039.73828125 881.8872680664062 1004.3206787109375
511 1.0 1.921 -45039.73828125 881.8871459960938 1004.3203125
512 1.0 1.971 -45039.73828125 881.8871459960938 1004.3201904296875
513 1.0 2.022 -45039.73828125 881.8871459960938 1004.3201904296875
514 1.0 2.072 -45039.73828125 881.8871459960938 1004.3201904296875
515 1.0 2.122 -45039.73828125 881.8871459960938 1004.3201904296875
516 1.0 2.173 -45059.66796875 881.8870239257812 1004.3197021484375
517 1.0 2.223 -45039.73828125 881.8869018554688 1004.3194580078125
518 1.0 2.273 -45039.73828125 881.8869018554688 1004.3193969726562
519 1.0 2.323 -45039.73828125 881.8868408203125 1004.3191528320312
520 1.0 2.373 -45059.66796875 881.8867797851562 1004.3190307617188
521 1.0 2.424 -45059.66796875 881.8867797851562 1004.3190307617188
522 1.0 2.474 -45059.66796875 881.8867797851562 1004.3190307617188
523 1.0 2.524 -45179.0 881.88671875 1004.3186645507812
524 1.0 2.575 -45039.73828125 881.8866577148438 1004.3185424804688
525 1.0 2.625 -45039.73828125 881.8865966796875 1004.3182983398438
526 1.0 2.678 -45059.66796875 881.8865356445312 1004.3180541992188
527 1.0 2.728 -45039.73828125 881.886474609375 1004.31787109375
528 1.0 2.778 -45019.80859375 881.886474609375 1004.3178100585938
529 1.0 2.86 -45019.80859375 881.886474609375 1004.3178100585938
530 1.0 2.91 -45019.80859375 881.886474609375 1004.3178100585938
531 1.0 2.96 -45019.80859375 881.8863525390625 1004.3173828125
532 1.0 3.01 -45039.73828125 881.8862915039062 1004.317138671875
533 1.0 3.06 -45039.73828125 881.8862915039062 1004.317138671875
534 1.0 3.11 -45039.73828125 881.88623046875 1004.3167724609375
535 1.0 3.16 -45019.80859375 881.8861694335938 1004.316650390625
536 1.0 3.211 -45019.80859375 881.8861694335938 1004.316650390625
537 1.0 3.261 -45019.80859375 881.8861694335938 1004.316650390625
538 1.0 3.311 -45019.80859375 881.8861694335938 1004.316650390625
539 1.0 3.364 -45019.80859375 881.8861083984375 1004.3162841796875
540 1.0 3.414 -45039.73828125 881.885986328125 1004.3159790039062
541 1.0 3.464 -45039.73828125 881.885986328125 1004.31591796875
542 1.0 3.514 -45039.73828125 881.8859252929688 1004.3156127929688
543 1.0 3.565 -45019.80859375 881.8858642578125 1004.3155517578125
544 1.0 3.616 -45019.80859375 881.8858642578125 1004.3155517578125
545 1.0 3.666 -45019.80859375 881.8858642578125 1004.3155517578125
546 1.0 3.716 -45218.73828125 881.8857421875 1004.3151245117188
547 1.0 3.767 -45039.73828125 881.8857421875 1004.3150024414062
548 1.0 3.817 -45039.73828125 881.8856811523438 1004.3147583007812
549 1.0 3.867 -45039.73828125 881.8856811523438 1004.3146362304688
550 1.0 3.918 -45039.73828125 881.8855590820312 1004.3142700195312
551 1.0 3.968 -45019.80859375 881.8855590820312 1004.3142700195312
552 1.0 4.024 -45019.80859375 881.8855590820312 1004.3142700195312
553 1.0 4.074 -45019.80859375 881.8855590820312 1004.3142700195312
554 1.0 4.124 -45218.73828125 881.8854370117188 1004.3137817382812
555 1.0 4.175 -45039.73828125 881.8853759765625 1004.3136596679688
556 1.0 4.225 -45039.73828125 881.8853149414062 1004.3134765625
557 1.0 4.276 -45079.4765625 881.8853149414062 1004.3132934570312
558 1.0 4.326 -45019.80859375 881.8851928710938 1004.31298828125
559 1.0 4.377 -45019.80859375 881.8851928710938 1004.31298828125
560 1.0 4.458 -45019.80859375 881.8851928710938 1004.31298828125
561 1.0 4.508 -45019.80859375 881.8851928710938 1004.31298828125
562 1.0 4.561 -45019.80859375 881.8851318359375 1004.3126220703125
563 1.0 4.611 -45059.66796875 881.885009765625 1004.3123168945312
564 1.0 4.661 -45059.66796875 881.885009765625 1004.3123168945312
565 1.0 4.711 -45039.73828125 881.8849487304688 1004.31201171875
566 1.0 4.761 -45019.80859375 881.8848876953125 1004.3118896484375
567 1.0 4.812 -45019.80859375 881.8848876953125 1004.3118896484375
568 1.0 4.862 -45019.80859375 881.8848876953125 1004.3118896484375
569 1.0 4.912 -45019.80859375 881.8848876953125 1004.3118896484375
570 1.0 4.962 -45039.73828125 881.884765625 1004.3114013671875
571 1.0 5.012 -45039.73828125 881.884765625 1004.3111572265625
572 1.0 5.062 -45039.73828125 881.8847045898438 1004.3110961914062
573 1.0 5.112 -45039.73828125 881.8846435546875 1004.310791015625
574 1.0 5.163 -45019.80859375 881.8845825195312 1004.3106689453125
575 1.0 5.213 -45019.80859375 881.8845825195312 1004.3106689453125
576 1.0 5.263 -45019.80859375 881.8845825195312 1004.3106689453125
577 1.0 5.314 -45159.0703125 881.884521484375 1004.3103637695312
578 1.0 5.367 -45039.73828125 881.884521484375 1004.3102416992188
579 1.0 5.417 -45039.73828125 881.8843994140625 1004.3099975585938
580 1.0 5.468 -45039.73828125 881.8843994140625 1004.3098754882812
581 1.0 5.518 -45039.73828125 881.8843383789062 1004.3096313476562
582 1.0 5.569 -45019.80859375 881.8843383789062 1004.3095703125
583 1.0 5.619 -45019.80859375 881.8843383789062 1004.3095703125
584 1.0 5.669 -45019.80859375 881.8843383789062 1004.3095703125
585 1.0 5.719 -45179.0 881.8842163085938 1004.3092041015625
586 1.0 5.772 -45039.73828125 881.8841552734375 1004.30908203125
587 1.0 5.858 -45039.73828125 881.8841552734375 1004.3088989257812
588 1.0 5.908 -45039.73828125 881.884033203125 1004.3084106445312
589 1.0 5.958 -45019.80859375 881.8839721679688 1004.3084106445312

View File

@@ -0,0 +1,394 @@
lt,t,x,y,z
0.0,0.0,-1241.3275146484375,881.9140014648438,1004.421630859375
0.0,0.05,-1287.947509765625,881.9139404296875,1004.4215087890625
0.0,0.1,-1299.6025390625,881.9139404296875,1004.4215087890625
0.0,0.15,-1334.5675048828125,881.9139404296875,1004.4214477539062
0.0,0.2,-1352.032470703125,881.9139404296875,1004.42138671875
0.0,0.251,-1352.032470703125,881.9139404296875,1004.42138671875
0.0,0.301,-1352.032470703125,881.9139404296875,1004.42138671875
0.0,0.351,-1410.342529296875,881.9138793945312,1004.4212646484375
0.0,0.401,-1427.8074951171875,881.9138793945312,1004.4212646484375
0.0,0.451,-1462.7724609375,881.9138793945312,1004.4212036132812
0.0,0.501,-1474.427490234375,881.9138793945312,1004.421142578125
0.0,0.551,-1509.3924560546875,881.9138793945312,1004.4210815429688
0.0,0.602,-1515.2025146484375,881.913818359375,1004.4210815429688
0.0,0.652,-1515.2025146484375,881.913818359375,1004.4210815429688
0.0,0.702,-1515.2025146484375,881.913818359375,1004.4210815429688
0.0,0.752,-1567.66748046875,881.913818359375,1004.4209594726562
0.0,0.803,-1579.322509765625,881.913818359375,1004.4209594726562
0.0,0.853,-1625.9425048828125,881.9137573242188,1004.4208374023438
0.0,0.903,-1649.25244140625,881.9137573242188,1004.4207763671875
0.0,0.953,-1684.1824951171875,881.9137573242188,1004.4207153320312
0.0,1.003,-1684.1824951171875,881.9137573242188,1004.4207153320312
0.0,1.053,-1684.1824951171875,881.9137573242188,1004.4207153320312
0.0,1.104,-1684.1824951171875,881.9137573242188,1004.4207153320312
0.0,1.155,-1748.302490234375,881.9136962890625,1004.4205932617188
0.0,1.205,-1771.6124267578125,881.9136962890625,1004.4205322265625
0.0,1.255,-1824.077392578125,881.9136962890625,1004.4204711914062
0.0,1.305,-1835.732421875,881.9136962890625,1004.42041015625
0.0,1.357,-1841.54248046875,881.9136962890625,1004.42041015625
0.0,1.407,-1841.54248046875,881.9136962890625,1004.42041015625
0.0,1.457,-1841.54248046875,881.9136962890625,1004.42041015625
0.0,1.507,-1894.0074462890625,881.9136352539062,1004.4202880859375
0.0,1.56,-1928.972412109375,881.9136352539062,1004.4202270507812
0.0,1.61,-1952.2823486328125,881.9136352539062,1004.420166015625
0.0,1.66,-1987.2474365234375,881.91357421875,1004.4201049804688
0.0,1.711,-1993.057373046875,881.91357421875,1004.4201049804688
0.0,1.761,-1993.057373046875,881.91357421875,1004.4201049804688
0.0,1.811,-1993.057373046875,881.91357421875,1004.4201049804688
0.0,1.861,-2045.5223388671875,881.91357421875,1004.4199829101562
0.0,1.911,-2057.177490234375,881.91357421875,1004.4199829101562
0.0,1.998,-2103.79736328125,881.9135131835938,1004.4198608398438
0.0,2.048,-2132.91748046875,881.9135131835938,1004.4197998046875
0.0,2.101,-2138.727294921875,881.9135131835938,1004.4197998046875
0.0,2.151,-2138.727294921875,881.9135131835938,1004.4197998046875
0.0,2.201,-2138.727294921875,881.9135131835938,1004.4197998046875
0.0,2.251,-2202.847412109375,881.9134521484375,1004.419677734375
0.0,2.301,-2226.157470703125,881.9134521484375,1004.4196166992188
0.0,2.351,-2261.122314453125,881.9134521484375,1004.4195556640625
0.0,2.401,-2284.432373046875,881.9134521484375,1004.4194946289062
0.0,2.451,-2313.55224609375,881.9133911132812,1004.41943359375
0.0,2.502,-2313.55224609375,881.9133911132812,1004.41943359375
0.0,2.552,-2313.55224609375,881.9133911132812,1004.41943359375
0.0,2.602,-2313.55224609375,881.9133911132812,1004.41943359375
0.0,2.652,-2383.517333984375,881.9133911132812,1004.4193115234375
0.0,2.711,-2418.482421875,881.9133911132812,1004.4192504882812
0.0,2.761,-2453.447265625,881.913330078125,1004.419189453125
0.0,2.812,-2476.75732421875,881.913330078125,1004.4191284179688
0.0,2.862,-2476.75732421875,881.913330078125,1004.4191284179688
0.0,2.913,-2476.75732421875,881.913330078125,1004.4191284179688
0.0,2.963,-2529.222412109375,881.913330078125,1004.4190063476562
0.0,3.016,-2546.687255859375,881.9132690429688,1004.4190063476562
0.0,3.066,-2581.65234375,881.9132690429688,1004.4188842773438
0.0,3.116,-2604.96240234375,881.9132690429688,1004.4188842773438
0.0,3.166,-2634.082275390625,881.9132690429688,1004.4188232421875
0.0,3.217,-2634.082275390625,881.9132690429688,1004.4188232421875
0.0,3.296,-2634.082275390625,881.9132690429688,1004.4188232421875
0.0,3.346,-2692.392333984375,881.9132080078125,1004.418701171875
0.0,3.399,-2709.857421875,881.9132080078125,1004.4186401367188
0.0,3.453,-2744.822265625,881.9132080078125,1004.4185791015625
0.0,3.504,-2768.13232421875,881.9131469726562,1004.4185180664062
0.0,3.554,-2785.597412109375,881.9131469726562,1004.4185180664062
0.0,3.604,-2785.597412109375,881.9131469726562,1004.4185180664062
0.0,3.655,-2785.597412109375,881.9131469726562,1004.4185180664062
0.0,3.705,-2785.597412109375,881.9131469726562,1004.4185180664062
0.0,3.755,-2855.562255859375,881.9131469726562,1004.4183349609375
0.0,3.807,-2890.52734375,881.9130859375,1004.4182739257812
0.0,3.857,-2925.4921875,881.9130859375,1004.418212890625
0.0,3.907,-2954.647216796875,881.9130859375,1004.4181518554688
0.0,3.958,-2966.30224609375,881.9130859375,1004.4181518554688
0.25,0.0,-3754.611328125,881.9126586914062,1004.4165649414062
0.25,0.05,-3774.8525390625,881.9126586914062,1004.41650390625
0.25,0.1,-3805.21435546875,881.91259765625,1004.4164428710938
0.25,0.15,-3810.25927734375,881.91259765625,1004.4164428710938
0.25,0.201,-3810.25927734375,881.91259765625,1004.4164428710938
0.25,0.251,-3810.25927734375,881.91259765625,1004.4164428710938
0.25,0.301,-3850.77197265625,881.91259765625,1004.4163208007812
0.25,0.351,-3876.058349609375,881.91259765625,1004.4163208007812
0.25,0.402,-3906.420166015625,881.9125366210938,1004.416259765625
0.25,0.454,-3916.540771484375,881.9125366210938,1004.4161987304688
0.25,0.505,-3962.0986328125,881.9125366210938,1004.4161376953125
0.25,0.555,-3967.1435546875,881.9125366210938,1004.4161376953125
0.25,0.64,-3967.1435546875,881.9125366210938,1004.4161376953125
0.25,0.69,-3967.1435546875,881.9125366210938,1004.4161376953125
0.25,0.743,-4032.942626953125,881.9124755859375,1004.4159545898438
0.25,0.793,-4063.304443359375,881.9124755859375,1004.4158935546875
0.25,0.843,-4063.304443359375,881.9124755859375,1004.4158935546875
0.25,0.893,-4103.78662109375,881.9124755859375,1004.4158325195312
0.25,0.943,-4118.95263671875,881.9124755859375,1004.4158325195312
0.25,0.994,-4118.95263671875,881.9124755859375,1004.4158325195312
0.25,1.045,-4118.95263671875,881.9124755859375,1004.4158325195312
0.25,1.095,-4118.95263671875,881.9124755859375,1004.4158325195312
0.25,1.145,-4179.70654296875,881.9124145507812,1004.4157104492188
0.25,1.198,-4210.06787109375,881.9124145507812,1004.4156494140625
0.25,1.248,-4225.26416015625,881.9124145507812,1004.4155883789062
0.25,1.299,-4255.6259765625,881.912353515625,1004.41552734375
0.25,1.351,-4265.71630859375,881.912353515625,1004.41552734375
0.25,1.401,-4265.71630859375,881.912353515625,1004.41552734375
0.25,1.451,-4265.71630859375,881.912353515625,1004.41552734375
0.25,1.501,-4321.4248046875,881.912353515625,1004.4154052734375
0.25,1.552,-4336.5908203125,881.912353515625,1004.4153442382812
0.25,1.602,-4372.02783203125,881.9122924804688,1004.415283203125
0.25,1.652,-4397.3447265625,881.9122924804688,1004.4152221679688
0.25,1.703,-4427.70654296875,881.9122924804688,1004.4151611328125
0.25,1.755,-4432.75146484375,881.9122924804688,1004.4151611328125
0.25,1.805,-4432.75146484375,881.9122924804688,1004.4151611328125
0.25,1.855,-4432.75146484375,881.9122924804688,1004.4151611328125
0.25,1.905,-4488.4296875,881.9122314453125,1004.4150390625
0.25,1.955,-4498.55029296875,881.9122314453125,1004.4150390625
0.25,2.042,-4539.03271484375,881.9122314453125,1004.4149780273438
0.25,2.092,-4569.39453125,881.9122314453125,1004.4149169921875
0.25,2.143,-4574.439453125,881.9122314453125,1004.4148559570312
0.25,2.193,-4574.439453125,881.9122314453125,1004.4148559570312
0.25,2.243,-4574.439453125,881.9122314453125,1004.4148559570312
0.25,2.293,-4625.07275390625,881.9121704101562,1004.414794921875
0.25,2.344,-4640.23876953125,881.9121704101562,1004.4147338867188
0.25,2.394,-4680.72119140625,881.9121704101562,1004.4146728515625
0.25,2.444,-4690.841796875,881.9121704101562,1004.4146728515625
0.25,2.494,-4716.1279296875,881.912109375,1004.4146118164062
0.25,2.545,-4721.1728515625,881.912109375,1004.4146118164062
0.25,2.595,-4721.1728515625,881.912109375,1004.4146118164062
0.25,2.645,-4721.1728515625,881.912109375,1004.4146118164062
0.25,2.695,-4776.8515625,881.912109375,1004.4144897460938
0.25,2.745,-4786.97216796875,881.912109375,1004.4144287109375
0.25,2.795,-4822.4091796875,881.9120483398438,1004.4143676757812
0.25,2.845,-4842.650390625,881.9120483398438,1004.414306640625
0.25,2.895,-4873.01220703125,881.9120483398438,1004.4142456054688
0.25,2.946,-4878.05712890625,881.9120483398438,1004.4142456054688
0.25,2.997,-4878.05712890625,881.9120483398438,1004.4142456054688
0.25,3.047,-4878.05712890625,881.9120483398438,1004.4142456054688
0.25,3.097,-4923.615234375,881.9120483398438,1004.4141845703125
0.25,3.147,-4933.73583984375,881.9119873046875,1004.4141235351562
0.25,3.197,-4974.2177734375,881.9119873046875,1004.4140625
0.25,3.248,-4994.458984375,881.9119873046875,1004.4140014648438
0.25,3.298,-5024.82080078125,881.9119873046875,1004.4139404296875
0.25,3.348,-5029.8662109375,881.9119873046875,1004.4139404296875
0.25,3.399,-5029.8662109375,881.9119873046875,1004.4139404296875
0.25,3.449,-5029.8662109375,881.9119873046875,1004.4139404296875
0.25,3.499,-5090.6201171875,881.9119262695312,1004.413818359375
0.25,3.549,-5100.74072265625,881.9119262695312,1004.413818359375
0.25,3.6,-5131.10205078125,881.9119262695312,1004.4137573242188
0.25,3.651,-5151.34326171875,881.9119262695312,1004.4136962890625
0.25,3.701,-5166.50927734375,881.911865234375,1004.4136962890625
0.25,3.751,-5166.50927734375,881.911865234375,1004.4136962890625
0.25,3.802,-5166.50927734375,881.911865234375,1004.4136962890625
0.25,3.852,-5166.50927734375,881.911865234375,1004.4136962890625
0.25,3.902,-5222.1875,881.911865234375,1004.41357421875
0.25,3.952,-5252.54931640625,881.911865234375,1004.4135131835938
0.5,0.0,-5905.412109375,881.9114990234375,1004.4121704101562
0.5,0.062,-5905.412109375,881.9114990234375,1004.4121704101562
0.5,0.112,-5905.412109375,881.9114990234375,1004.4121704101562
0.5,0.162,-5948.697265625,881.9114379882812,1004.412109375
0.5,0.212,-5980.16943359375,881.9114379882812,1004.4120483398438
0.5,0.263,-5988.037109375,881.9114379882812,1004.4119873046875
0.5,0.313,-6023.45458984375,881.9114379882812,1004.4119262695312
0.5,0.363,-6027.376953125,881.9114379882812,1004.4119262695312
0.5,0.413,-6031.298828125,881.9114379882812,1004.4119262695312
0.5,0.464,-6031.298828125,881.9114379882812,1004.4119262695312
0.5,0.514,-6031.298828125,881.9114379882812,1004.4119262695312
0.5,0.564,-6074.58447265625,881.911376953125,1004.411865234375
0.5,0.614,-6098.1884765625,881.911376953125,1004.4118041992188
0.5,0.665,-6106.05615234375,881.911376953125,1004.4117431640625
0.5,0.715,-6137.52783203125,881.911376953125,1004.4116821289062
0.5,0.765,-6145.3720703125,881.911376953125,1004.4116821289062
0.5,0.815,-6145.3720703125,881.911376953125,1004.4116821289062
0.5,0.865,-6145.3720703125,881.911376953125,1004.4116821289062
0.5,0.915,-6180.8134765625,881.9113159179688,1004.41162109375
0.5,0.965,-6184.73583984375,881.9113159179688,1004.41162109375
0.5,1.017,-6216.20751953125,881.9113159179688,1004.4115600585938
0.5,1.067,-6216.20751953125,881.9113159179688,1004.4115600585938
0.5,1.117,-6255.546875,881.9113159179688,1004.4114990234375
0.5,1.168,-6263.3916015625,881.9113159179688,1004.4114379882812
0.5,1.22,-6263.3916015625,881.9113159179688,1004.4114379882812
0.5,1.27,-6263.3916015625,881.9113159179688,1004.4114379882812
0.5,1.32,-6298.80908203125,881.9112548828125,1004.411376953125
0.5,1.37,-6306.6767578125,881.9112548828125,1004.411376953125
0.5,1.42,-6338.1484375,881.9112548828125,1004.4113159179688
0.5,1.471,-6346.0166015625,881.9112548828125,1004.4112548828125
0.5,1.521,-6361.72900390625,881.9112548828125,1004.4112548828125
0.5,1.571,-6361.72900390625,881.9112548828125,1004.4112548828125
0.5,1.621,-6361.72900390625,881.9112548828125,1004.4112548828125
0.5,1.672,-6361.72900390625,881.9112548828125,1004.4112548828125
0.5,1.722,-6397.146484375,881.9112548828125,1004.4111938476562
0.5,1.772,-6412.88232421875,881.9111938476562,1004.4111328125
0.5,1.822,-6440.43212890625,881.9111938476562,1004.4110717773438
0.5,1.872,-6460.11376953125,881.9111938476562,1004.4110717773438
0.5,1.922,-6471.90380859375,881.9111938476562,1004.4110107421875
0.5,1.973,-6471.90380859375,881.9111938476562,1004.4110107421875
0.5,2.023,-6471.90380859375,881.9111938476562,1004.4110107421875
0.5,2.073,-6471.90380859375,881.9111938476562,1004.4110107421875
0.5,2.123,-6519.134765625,881.9111328125,1004.4109497070312
0.5,2.173,-6542.73876953125,881.9111328125,1004.410888671875
0.5,2.223,-6566.3427734375,881.9111328125,1004.4108276367188
0.5,2.273,-6574.21044921875,881.9111328125,1004.4108276367188
0.5,2.323,-6578.1328125,881.9111328125,1004.4108276367188
0.5,2.373,-6578.1328125,881.9111328125,1004.4108276367188
0.5,2.423,-6578.1328125,881.9111328125,1004.4108276367188
0.5,2.474,-6621.41796875,881.9111328125,1004.4107055664062
0.5,2.524,-6641.099609375,881.9110717773438,1004.4107055664062
0.5,2.574,-6648.9677734375,881.9110717773438,1004.41064453125
0.5,2.624,-6684.38525390625,881.9110717773438,1004.4105834960938
0.5,2.674,-6688.3076171875,881.9110717773438,1004.4105834960938
0.5,2.725,-6688.3076171875,881.9110717773438,1004.4105834960938
0.5,2.775,-6688.3076171875,881.9110717773438,1004.4105834960938
0.5,2.825,-6727.6708984375,881.9110717773438,1004.4105224609375
0.5,2.875,-6739.4609375,881.9110717773438,1004.4104614257812
0.5,2.964,-6770.9326171875,881.9110107421875,1004.410400390625
0.5,3.014,-6790.5908203125,881.9110107421875,1004.410400390625
0.5,3.066,-6794.5126953125,881.9110107421875,1004.410400390625
0.5,3.117,-6794.5126953125,881.9110107421875,1004.410400390625
0.5,3.167,-6794.5126953125,881.9110107421875,1004.410400390625
0.5,3.217,-6829.93017578125,881.9110107421875,1004.4102783203125
0.5,3.269,-6837.79833984375,881.9110107421875,1004.4102783203125
0.5,3.321,-6873.2158203125,881.9109497070312,1004.4102172851562
0.5,3.371,-6881.083984375,881.9109497070312,1004.4102172851562
0.5,3.421,-6896.7958984375,881.9109497070312,1004.41015625
0.5,3.472,-6896.7958984375,881.9109497070312,1004.41015625
0.5,3.522,-6896.7958984375,881.9109497070312,1004.41015625
0.5,3.572,-6896.7958984375,881.9109497070312,1004.41015625
0.5,3.625,-6936.1591796875,881.9109497070312,1004.4100952148438
0.5,3.675,-6963.708984375,881.9109497070312,1004.4100341796875
0.5,3.725,-6987.31298828125,881.910888671875,1004.4099731445312
0.5,3.775,-7006.99462890625,881.910888671875,1004.4099731445312
0.5,3.825,-7014.8623046875,881.910888671875,1004.409912109375
0.5,3.876,-7014.8623046875,881.910888671875,1004.409912109375
0.5,3.926,-7014.8623046875,881.910888671875,1004.409912109375
0.5,3.976,-7054.2255859375,881.910888671875,1004.4098510742188
0.75,0.0,-7539.572265625,881.91064453125,1004.4088745117188
0.75,0.05,-7539.572265625,881.91064453125,1004.4088745117188
0.75,0.1,-7539.572265625,881.91064453125,1004.4088745117188
0.75,0.15,-7539.572265625,881.91064453125,1004.4088745117188
0.75,0.2,-7573.47705078125,881.9105834960938,1004.4088134765625
0.75,0.26,-7584.77294921875,881.9105834960938,1004.4087524414062
0.75,0.311,-7607.36474609375,881.9105834960938,1004.4087524414062
0.75,0.361,-7613.0126953125,881.9105834960938,1004.40869140625
0.75,0.413,-7621.47607421875,881.9105834960938,1004.40869140625
0.75,0.463,-7621.47607421875,881.9105834960938,1004.40869140625
0.75,0.513,-7621.47607421875,881.9105834960938,1004.40869140625
0.75,0.563,-7646.900390625,881.9105834960938,1004.4086303710938
0.75,0.614,-7669.4921875,881.9105224609375,1004.4086303710938
0.75,0.664,-7675.14013671875,881.9105224609375,1004.4085693359375
0.75,0.714,-7692.083984375,881.9105224609375,1004.4085693359375
0.75,0.764,-7700.54736328125,881.9105224609375,1004.4085693359375
0.75,0.814,-7700.54736328125,881.9105224609375,1004.4085693359375
0.75,0.864,-7700.54736328125,881.9105224609375,1004.4085693359375
0.75,0.914,-7700.54736328125,881.9105224609375,1004.4085693359375
0.75,0.966,-7737.26708984375,881.9105224609375,1004.408447265625
0.75,1.017,-7754.2109375,881.9105224609375,1004.408447265625
0.75,1.067,-7759.85888671875,881.9105224609375,1004.408447265625
0.75,1.117,-7785.283203125,881.9104614257812,1004.4083862304688
0.75,1.17,-7788.0986328125,881.9104614257812,1004.4083862304688
0.75,1.22,-7788.0986328125,881.9104614257812,1004.4083862304688
0.75,1.272,-7788.0986328125,881.9104614257812,1004.4083862304688
0.75,1.322,-7819.1708984375,881.9104614257812,1004.4083251953125
0.75,1.372,-7824.81884765625,881.9104614257812,1004.4082641601562
0.75,1.422,-7847.41064453125,881.9104614257812,1004.4082641601562
0.75,1.472,-7853.05859375,881.9104614257812,1004.408203125
0.75,1.522,-7864.33740234375,881.9104614257812,1004.408203125
0.75,1.573,-7864.33740234375,881.9104614257812,1004.408203125
0.75,1.624,-7864.33740234375,881.9104614257812,1004.408203125
0.75,1.674,-7864.33740234375,881.9104614257812,1004.408203125
0.75,1.726,-7898.2421875,881.910400390625,1004.4081420898438
0.75,1.776,-7915.18603515625,881.910400390625,1004.4080810546875
0.75,1.827,-7932.1298828125,881.910400390625,1004.4080810546875
0.75,1.877,-7943.42578125,881.910400390625,1004.4080200195312
0.75,1.928,-7951.88916015625,881.910400390625,1004.4080200195312
0.75,1.978,-7951.88916015625,881.910400390625,1004.4080200195312
0.75,2.028,-7951.88916015625,881.910400390625,1004.4080200195312
0.75,2.078,-7980.1455078125,881.910400390625,1004.407958984375
0.75,2.129,-7988.60888671875,881.910400390625,1004.407958984375
0.75,2.179,-8005.552734375,881.9103393554688,1004.4078979492188
0.75,2.229,-8022.49658203125,881.9103393554688,1004.4078979492188
0.75,2.279,-8028.14453125,881.9103393554688,1004.4078979492188
0.75,2.329,-8036.625,881.9103393554688,1004.4078369140625
0.75,2.379,-8036.625,881.9103393554688,1004.4078369140625
0.75,2.429,-8036.625,881.9103393554688,1004.4078369140625
0.75,2.482,-8067.697265625,881.9103393554688,1004.4077758789062
0.75,2.56,-8081.82568359375,881.9103393554688,1004.4077758789062
0.75,2.61,-8098.76953125,881.9103393554688,1004.40771484375
0.75,2.66,-8107.23291015625,881.9103393554688,1004.40771484375
0.75,2.71,-8107.23291015625,881.9103393554688,1004.40771484375
0.75,2.761,-8107.23291015625,881.9103393554688,1004.40771484375
0.75,2.811,-8107.23291015625,881.9103393554688,1004.40771484375
0.75,2.861,-8132.6572265625,881.9102783203125,1004.4076538085938
0.75,2.911,-8149.6005859375,881.9102783203125,1004.4076538085938
0.75,2.961,-8155.24853515625,881.9102783203125,1004.4075927734375
0.75,3.011,-8180.6728515625,881.9102783203125,1004.4075927734375
0.75,3.062,-8183.48828125,881.9102783203125,1004.4075317382812
0.75,3.112,-8183.48828125,881.9102783203125,1004.4075317382812
0.75,3.162,-8183.48828125,881.9102783203125,1004.4075317382812
0.75,3.212,-8214.560546875,881.9102783203125,1004.407470703125
0.75,3.262,-8220.208984375,881.9102783203125,1004.407470703125
0.75,3.313,-8242.80078125,881.9102172851562,1004.407470703125
0.75,3.363,-8248.4482421875,881.9102172851562,1004.4074096679688
0.75,3.413,-8268.2080078125,881.9102172851562,1004.4074096679688
0.75,3.464,-8268.2080078125,881.9102172851562,1004.4074096679688
0.75,3.514,-8268.2080078125,881.9102172851562,1004.4074096679688
0.75,3.564,-8268.2080078125,881.9102172851562,1004.4074096679688
0.75,3.615,-8299.279296875,881.9102172851562,1004.4073486328125
0.75,3.665,-8310.5751953125,881.9102172851562,1004.4072875976562
0.75,3.716,-8330.3515625,881.9102172851562,1004.4072875976562
0.75,3.766,-8336.0,881.9102172851562,1004.4072265625
0.75,3.818,-8344.462890625,881.91015625,1004.4072265625
0.75,3.87,-8344.462890625,881.91015625,1004.4072265625
0.75,3.92,-8344.462890625,881.91015625,1004.4072265625
0.75,3.97,-8369.8876953125,881.91015625,1004.4071655273438
1.0,0.0,-8673.5283203125,881.9100341796875,1004.4065551757812
1.0,0.05,-8673.5283203125,881.9100341796875,1004.4065551757812
1.0,0.1,-8673.5283203125,881.9100341796875,1004.4065551757812
1.0,0.15,-8687.119140625,881.9099731445312,1004.4065551757812
1.0,0.201,-8695.6025390625,881.9099731445312,1004.406494140625
1.0,0.259,-8702.392578125,881.9099731445312,1004.406494140625
1.0,0.309,-8715.974609375,881.9099731445312,1004.406494140625
1.0,0.359,-8719.369140625,881.9099731445312,1004.406494140625
1.0,0.412,-8722.7646484375,881.9099731445312,1004.406494140625
1.0,0.464,-8722.7646484375,881.9099731445312,1004.406494140625
1.0,0.514,-8722.7646484375,881.9099731445312,1004.406494140625
1.0,0.564,-8738.048828125,881.9099731445312,1004.4064331054688
1.0,0.614,-8753.3330078125,881.9099731445312,1004.4064331054688
1.0,0.664,-8756.7275390625,881.9099731445312,1004.4063720703125
1.0,0.714,-8766.9140625,881.9099731445312,1004.4063720703125
1.0,0.767,-8770.298828125,881.9099731445312,1004.4063720703125
1.0,0.817,-8770.298828125,881.9099731445312,1004.4063720703125
1.0,0.867,-8770.298828125,881.9099731445312,1004.4063720703125
1.0,0.917,-8787.28515625,881.9099731445312,1004.4063110351562
1.0,0.967,-8792.373046875,881.9099731445312,1004.4063110351562
1.0,1.018,-8802.5595703125,881.909912109375,1004.4063110351562
1.0,1.068,-8805.955078125,881.909912109375,1004.4063110351562
1.0,1.118,-8816.1298828125,881.909912109375,1004.40625
1.0,1.169,-8816.1298828125,881.909912109375,1004.40625
1.0,1.219,-8816.1298828125,881.909912109375,1004.40625
1.0,1.269,-8816.1298828125,881.909912109375,1004.40625
1.0,1.321,-8836.5126953125,881.909912109375,1004.40625
1.0,1.371,-8846.6982421875,881.909912109375,1004.4061889648438
1.0,1.421,-8856.8837890625,881.909912109375,1004.4061889648438
1.0,1.471,-8865.376953125,881.909912109375,1004.4061889648438
1.0,1.522,-8867.0703125,881.909912109375,1004.4061889648438
1.0,1.572,-8867.0703125,881.909912109375,1004.4061889648438
1.0,1.622,-8867.0703125,881.909912109375,1004.4061889648438
1.0,1.672,-8885.7490234375,881.909912109375,1004.4061279296875
1.0,1.722,-8895.9345703125,881.909912109375,1004.4061279296875
1.0,1.772,-8899.330078125,881.909912109375,1004.4061279296875
1.0,1.823,-8907.8134765625,881.9098510742188,1004.4060668945312
1.0,1.873,-8909.505859375,881.9098510742188,1004.4060668945312
1.0,1.923,-8909.505859375,881.9098510742188,1004.4060668945312
1.0,1.974,-8909.505859375,881.9098510742188,1004.4060668945312
1.0,2.024,-8926.4921875,881.9098510742188,1004.4060668945312
1.0,2.074,-8929.8876953125,881.9098510742188,1004.4060668945312
1.0,2.159,-8945.171875,881.9098510742188,1004.406005859375
1.0,2.209,-8958.7529296875,881.9098510742188,1004.406005859375
1.0,2.26,-8960.4453125,881.9098510742188,1004.406005859375
1.0,2.311,-8960.4453125,881.9098510742188,1004.406005859375
1.0,2.361,-8960.4453125,881.9098510742188,1004.406005859375
1.0,2.412,-8977.4326171875,881.9098510742188,1004.4059448242188
1.0,2.462,-8980.8271484375,881.9098510742188,1004.4059448242188
1.0,2.512,-8996.111328125,881.9098510742188,1004.4058837890625
1.0,2.562,-8999.5068359375,881.9098510742188,1004.4058837890625
1.0,2.614,-9006.296875,881.9098510742188,1004.4058837890625
1.0,2.664,-9006.296875,881.9098510742188,1004.4058837890625
1.0,2.714,-9006.296875,881.9098510742188,1004.4058837890625
1.0,2.764,-9024.9765625,881.9097900390625,1004.4058227539062
1.0,2.814,-9035.162109375,881.9097900390625,1004.4058227539062
1.0,2.865,-9035.162109375,881.9097900390625,1004.4058227539062
1.0,2.915,-9045.3486328125,881.9097900390625,1004.4058227539062
1.0,2.966,-9050.4365234375,881.9097900390625,1004.4058227539062
1.0,3.016,-9050.4365234375,881.9097900390625,1004.4058227539062
1.0,3.066,-9050.4365234375,881.9097900390625,1004.4058227539062
1.0,3.116,-9064.02734375,881.9097900390625,1004.40576171875
1.0,3.167,-9069.115234375,881.9097900390625,1004.40576171875
1.0,3.217,-9082.6962890625,881.9097900390625,1004.40576171875
1.0,3.267,-9082.6962890625,881.9097900390625,1004.40576171875
1.0,3.317,-9091.1796875,881.9097900390625,1004.4057006835938
1.0,3.367,-9092.8720703125,881.9097900390625,1004.4057006835938
1.0,3.418,-9092.8720703125,881.9097900390625,1004.4057006835938
1.0,3.468,-9092.8720703125,881.9097900390625,1004.4057006835938
1.0,3.518,-9111.5517578125,881.9097900390625,1004.4057006835938
1.0,3.568,-9118.341796875,881.9097900390625,1004.4056396484375
1.0,3.618,-9128.5283203125,881.9097900390625,1004.4056396484375
1.0,3.669,-9135.318359375,881.9097290039062,1004.4056396484375
1.0,3.719,-9143.8017578125,881.9097290039062,1004.4056396484375
1.0,3.769,-9143.8017578125,881.9097290039062,1004.4056396484375
1.0,3.819,-9143.8017578125,881.9097290039062,1004.4056396484375
1.0,3.87,-9143.8017578125,881.9097290039062,1004.4056396484375
1.0,3.92,-9162.48046875,881.9097290039062,1004.4055786132812
1.0,3.97,-9172.6669921875,881.9097290039062,1004.4055786132812
1 lt t x y z
2 0.0 0.0 -1241.3275146484375 881.9140014648438 1004.421630859375
3 0.0 0.05 -1287.947509765625 881.9139404296875 1004.4215087890625
4 0.0 0.1 -1299.6025390625 881.9139404296875 1004.4215087890625
5 0.0 0.15 -1334.5675048828125 881.9139404296875 1004.4214477539062
6 0.0 0.2 -1352.032470703125 881.9139404296875 1004.42138671875
7 0.0 0.251 -1352.032470703125 881.9139404296875 1004.42138671875
8 0.0 0.301 -1352.032470703125 881.9139404296875 1004.42138671875
9 0.0 0.351 -1410.342529296875 881.9138793945312 1004.4212646484375
10 0.0 0.401 -1427.8074951171875 881.9138793945312 1004.4212646484375
11 0.0 0.451 -1462.7724609375 881.9138793945312 1004.4212036132812
12 0.0 0.501 -1474.427490234375 881.9138793945312 1004.421142578125
13 0.0 0.551 -1509.3924560546875 881.9138793945312 1004.4210815429688
14 0.0 0.602 -1515.2025146484375 881.913818359375 1004.4210815429688
15 0.0 0.652 -1515.2025146484375 881.913818359375 1004.4210815429688
16 0.0 0.702 -1515.2025146484375 881.913818359375 1004.4210815429688
17 0.0 0.752 -1567.66748046875 881.913818359375 1004.4209594726562
18 0.0 0.803 -1579.322509765625 881.913818359375 1004.4209594726562
19 0.0 0.853 -1625.9425048828125 881.9137573242188 1004.4208374023438
20 0.0 0.903 -1649.25244140625 881.9137573242188 1004.4207763671875
21 0.0 0.953 -1684.1824951171875 881.9137573242188 1004.4207153320312
22 0.0 1.003 -1684.1824951171875 881.9137573242188 1004.4207153320312
23 0.0 1.053 -1684.1824951171875 881.9137573242188 1004.4207153320312
24 0.0 1.104 -1684.1824951171875 881.9137573242188 1004.4207153320312
25 0.0 1.155 -1748.302490234375 881.9136962890625 1004.4205932617188
26 0.0 1.205 -1771.6124267578125 881.9136962890625 1004.4205322265625
27 0.0 1.255 -1824.077392578125 881.9136962890625 1004.4204711914062
28 0.0 1.305 -1835.732421875 881.9136962890625 1004.42041015625
29 0.0 1.357 -1841.54248046875 881.9136962890625 1004.42041015625
30 0.0 1.407 -1841.54248046875 881.9136962890625 1004.42041015625
31 0.0 1.457 -1841.54248046875 881.9136962890625 1004.42041015625
32 0.0 1.507 -1894.0074462890625 881.9136352539062 1004.4202880859375
33 0.0 1.56 -1928.972412109375 881.9136352539062 1004.4202270507812
34 0.0 1.61 -1952.2823486328125 881.9136352539062 1004.420166015625
35 0.0 1.66 -1987.2474365234375 881.91357421875 1004.4201049804688
36 0.0 1.711 -1993.057373046875 881.91357421875 1004.4201049804688
37 0.0 1.761 -1993.057373046875 881.91357421875 1004.4201049804688
38 0.0 1.811 -1993.057373046875 881.91357421875 1004.4201049804688
39 0.0 1.861 -2045.5223388671875 881.91357421875 1004.4199829101562
40 0.0 1.911 -2057.177490234375 881.91357421875 1004.4199829101562
41 0.0 1.998 -2103.79736328125 881.9135131835938 1004.4198608398438
42 0.0 2.048 -2132.91748046875 881.9135131835938 1004.4197998046875
43 0.0 2.101 -2138.727294921875 881.9135131835938 1004.4197998046875
44 0.0 2.151 -2138.727294921875 881.9135131835938 1004.4197998046875
45 0.0 2.201 -2138.727294921875 881.9135131835938 1004.4197998046875
46 0.0 2.251 -2202.847412109375 881.9134521484375 1004.419677734375
47 0.0 2.301 -2226.157470703125 881.9134521484375 1004.4196166992188
48 0.0 2.351 -2261.122314453125 881.9134521484375 1004.4195556640625
49 0.0 2.401 -2284.432373046875 881.9134521484375 1004.4194946289062
50 0.0 2.451 -2313.55224609375 881.9133911132812 1004.41943359375
51 0.0 2.502 -2313.55224609375 881.9133911132812 1004.41943359375
52 0.0 2.552 -2313.55224609375 881.9133911132812 1004.41943359375
53 0.0 2.602 -2313.55224609375 881.9133911132812 1004.41943359375
54 0.0 2.652 -2383.517333984375 881.9133911132812 1004.4193115234375
55 0.0 2.711 -2418.482421875 881.9133911132812 1004.4192504882812
56 0.0 2.761 -2453.447265625 881.913330078125 1004.419189453125
57 0.0 2.812 -2476.75732421875 881.913330078125 1004.4191284179688
58 0.0 2.862 -2476.75732421875 881.913330078125 1004.4191284179688
59 0.0 2.913 -2476.75732421875 881.913330078125 1004.4191284179688
60 0.0 2.963 -2529.222412109375 881.913330078125 1004.4190063476562
61 0.0 3.016 -2546.687255859375 881.9132690429688 1004.4190063476562
62 0.0 3.066 -2581.65234375 881.9132690429688 1004.4188842773438
63 0.0 3.116 -2604.96240234375 881.9132690429688 1004.4188842773438
64 0.0 3.166 -2634.082275390625 881.9132690429688 1004.4188232421875
65 0.0 3.217 -2634.082275390625 881.9132690429688 1004.4188232421875
66 0.0 3.296 -2634.082275390625 881.9132690429688 1004.4188232421875
67 0.0 3.346 -2692.392333984375 881.9132080078125 1004.418701171875
68 0.0 3.399 -2709.857421875 881.9132080078125 1004.4186401367188
69 0.0 3.453 -2744.822265625 881.9132080078125 1004.4185791015625
70 0.0 3.504 -2768.13232421875 881.9131469726562 1004.4185180664062
71 0.0 3.554 -2785.597412109375 881.9131469726562 1004.4185180664062
72 0.0 3.604 -2785.597412109375 881.9131469726562 1004.4185180664062
73 0.0 3.655 -2785.597412109375 881.9131469726562 1004.4185180664062
74 0.0 3.705 -2785.597412109375 881.9131469726562 1004.4185180664062
75 0.0 3.755 -2855.562255859375 881.9131469726562 1004.4183349609375
76 0.0 3.807 -2890.52734375 881.9130859375 1004.4182739257812
77 0.0 3.857 -2925.4921875 881.9130859375 1004.418212890625
78 0.0 3.907 -2954.647216796875 881.9130859375 1004.4181518554688
79 0.0 3.958 -2966.30224609375 881.9130859375 1004.4181518554688
80 0.25 0.0 -3754.611328125 881.9126586914062 1004.4165649414062
81 0.25 0.05 -3774.8525390625 881.9126586914062 1004.41650390625
82 0.25 0.1 -3805.21435546875 881.91259765625 1004.4164428710938
83 0.25 0.15 -3810.25927734375 881.91259765625 1004.4164428710938
84 0.25 0.201 -3810.25927734375 881.91259765625 1004.4164428710938
85 0.25 0.251 -3810.25927734375 881.91259765625 1004.4164428710938
86 0.25 0.301 -3850.77197265625 881.91259765625 1004.4163208007812
87 0.25 0.351 -3876.058349609375 881.91259765625 1004.4163208007812
88 0.25 0.402 -3906.420166015625 881.9125366210938 1004.416259765625
89 0.25 0.454 -3916.540771484375 881.9125366210938 1004.4161987304688
90 0.25 0.505 -3962.0986328125 881.9125366210938 1004.4161376953125
91 0.25 0.555 -3967.1435546875 881.9125366210938 1004.4161376953125
92 0.25 0.64 -3967.1435546875 881.9125366210938 1004.4161376953125
93 0.25 0.69 -3967.1435546875 881.9125366210938 1004.4161376953125
94 0.25 0.743 -4032.942626953125 881.9124755859375 1004.4159545898438
95 0.25 0.793 -4063.304443359375 881.9124755859375 1004.4158935546875
96 0.25 0.843 -4063.304443359375 881.9124755859375 1004.4158935546875
97 0.25 0.893 -4103.78662109375 881.9124755859375 1004.4158325195312
98 0.25 0.943 -4118.95263671875 881.9124755859375 1004.4158325195312
99 0.25 0.994 -4118.95263671875 881.9124755859375 1004.4158325195312
100 0.25 1.045 -4118.95263671875 881.9124755859375 1004.4158325195312
101 0.25 1.095 -4118.95263671875 881.9124755859375 1004.4158325195312
102 0.25 1.145 -4179.70654296875 881.9124145507812 1004.4157104492188
103 0.25 1.198 -4210.06787109375 881.9124145507812 1004.4156494140625
104 0.25 1.248 -4225.26416015625 881.9124145507812 1004.4155883789062
105 0.25 1.299 -4255.6259765625 881.912353515625 1004.41552734375
106 0.25 1.351 -4265.71630859375 881.912353515625 1004.41552734375
107 0.25 1.401 -4265.71630859375 881.912353515625 1004.41552734375
108 0.25 1.451 -4265.71630859375 881.912353515625 1004.41552734375
109 0.25 1.501 -4321.4248046875 881.912353515625 1004.4154052734375
110 0.25 1.552 -4336.5908203125 881.912353515625 1004.4153442382812
111 0.25 1.602 -4372.02783203125 881.9122924804688 1004.415283203125
112 0.25 1.652 -4397.3447265625 881.9122924804688 1004.4152221679688
113 0.25 1.703 -4427.70654296875 881.9122924804688 1004.4151611328125
114 0.25 1.755 -4432.75146484375 881.9122924804688 1004.4151611328125
115 0.25 1.805 -4432.75146484375 881.9122924804688 1004.4151611328125
116 0.25 1.855 -4432.75146484375 881.9122924804688 1004.4151611328125
117 0.25 1.905 -4488.4296875 881.9122314453125 1004.4150390625
118 0.25 1.955 -4498.55029296875 881.9122314453125 1004.4150390625
119 0.25 2.042 -4539.03271484375 881.9122314453125 1004.4149780273438
120 0.25 2.092 -4569.39453125 881.9122314453125 1004.4149169921875
121 0.25 2.143 -4574.439453125 881.9122314453125 1004.4148559570312
122 0.25 2.193 -4574.439453125 881.9122314453125 1004.4148559570312
123 0.25 2.243 -4574.439453125 881.9122314453125 1004.4148559570312
124 0.25 2.293 -4625.07275390625 881.9121704101562 1004.414794921875
125 0.25 2.344 -4640.23876953125 881.9121704101562 1004.4147338867188
126 0.25 2.394 -4680.72119140625 881.9121704101562 1004.4146728515625
127 0.25 2.444 -4690.841796875 881.9121704101562 1004.4146728515625
128 0.25 2.494 -4716.1279296875 881.912109375 1004.4146118164062
129 0.25 2.545 -4721.1728515625 881.912109375 1004.4146118164062
130 0.25 2.595 -4721.1728515625 881.912109375 1004.4146118164062
131 0.25 2.645 -4721.1728515625 881.912109375 1004.4146118164062
132 0.25 2.695 -4776.8515625 881.912109375 1004.4144897460938
133 0.25 2.745 -4786.97216796875 881.912109375 1004.4144287109375
134 0.25 2.795 -4822.4091796875 881.9120483398438 1004.4143676757812
135 0.25 2.845 -4842.650390625 881.9120483398438 1004.414306640625
136 0.25 2.895 -4873.01220703125 881.9120483398438 1004.4142456054688
137 0.25 2.946 -4878.05712890625 881.9120483398438 1004.4142456054688
138 0.25 2.997 -4878.05712890625 881.9120483398438 1004.4142456054688
139 0.25 3.047 -4878.05712890625 881.9120483398438 1004.4142456054688
140 0.25 3.097 -4923.615234375 881.9120483398438 1004.4141845703125
141 0.25 3.147 -4933.73583984375 881.9119873046875 1004.4141235351562
142 0.25 3.197 -4974.2177734375 881.9119873046875 1004.4140625
143 0.25 3.248 -4994.458984375 881.9119873046875 1004.4140014648438
144 0.25 3.298 -5024.82080078125 881.9119873046875 1004.4139404296875
145 0.25 3.348 -5029.8662109375 881.9119873046875 1004.4139404296875
146 0.25 3.399 -5029.8662109375 881.9119873046875 1004.4139404296875
147 0.25 3.449 -5029.8662109375 881.9119873046875 1004.4139404296875
148 0.25 3.499 -5090.6201171875 881.9119262695312 1004.413818359375
149 0.25 3.549 -5100.74072265625 881.9119262695312 1004.413818359375
150 0.25 3.6 -5131.10205078125 881.9119262695312 1004.4137573242188
151 0.25 3.651 -5151.34326171875 881.9119262695312 1004.4136962890625
152 0.25 3.701 -5166.50927734375 881.911865234375 1004.4136962890625
153 0.25 3.751 -5166.50927734375 881.911865234375 1004.4136962890625
154 0.25 3.802 -5166.50927734375 881.911865234375 1004.4136962890625
155 0.25 3.852 -5166.50927734375 881.911865234375 1004.4136962890625
156 0.25 3.902 -5222.1875 881.911865234375 1004.41357421875
157 0.25 3.952 -5252.54931640625 881.911865234375 1004.4135131835938
158 0.5 0.0 -5905.412109375 881.9114990234375 1004.4121704101562
159 0.5 0.062 -5905.412109375 881.9114990234375 1004.4121704101562
160 0.5 0.112 -5905.412109375 881.9114990234375 1004.4121704101562
161 0.5 0.162 -5948.697265625 881.9114379882812 1004.412109375
162 0.5 0.212 -5980.16943359375 881.9114379882812 1004.4120483398438
163 0.5 0.263 -5988.037109375 881.9114379882812 1004.4119873046875
164 0.5 0.313 -6023.45458984375 881.9114379882812 1004.4119262695312
165 0.5 0.363 -6027.376953125 881.9114379882812 1004.4119262695312
166 0.5 0.413 -6031.298828125 881.9114379882812 1004.4119262695312
167 0.5 0.464 -6031.298828125 881.9114379882812 1004.4119262695312
168 0.5 0.514 -6031.298828125 881.9114379882812 1004.4119262695312
169 0.5 0.564 -6074.58447265625 881.911376953125 1004.411865234375
170 0.5 0.614 -6098.1884765625 881.911376953125 1004.4118041992188
171 0.5 0.665 -6106.05615234375 881.911376953125 1004.4117431640625
172 0.5 0.715 -6137.52783203125 881.911376953125 1004.4116821289062
173 0.5 0.765 -6145.3720703125 881.911376953125 1004.4116821289062
174 0.5 0.815 -6145.3720703125 881.911376953125 1004.4116821289062
175 0.5 0.865 -6145.3720703125 881.911376953125 1004.4116821289062
176 0.5 0.915 -6180.8134765625 881.9113159179688 1004.41162109375
177 0.5 0.965 -6184.73583984375 881.9113159179688 1004.41162109375
178 0.5 1.017 -6216.20751953125 881.9113159179688 1004.4115600585938
179 0.5 1.067 -6216.20751953125 881.9113159179688 1004.4115600585938
180 0.5 1.117 -6255.546875 881.9113159179688 1004.4114990234375
181 0.5 1.168 -6263.3916015625 881.9113159179688 1004.4114379882812
182 0.5 1.22 -6263.3916015625 881.9113159179688 1004.4114379882812
183 0.5 1.27 -6263.3916015625 881.9113159179688 1004.4114379882812
184 0.5 1.32 -6298.80908203125 881.9112548828125 1004.411376953125
185 0.5 1.37 -6306.6767578125 881.9112548828125 1004.411376953125
186 0.5 1.42 -6338.1484375 881.9112548828125 1004.4113159179688
187 0.5 1.471 -6346.0166015625 881.9112548828125 1004.4112548828125
188 0.5 1.521 -6361.72900390625 881.9112548828125 1004.4112548828125
189 0.5 1.571 -6361.72900390625 881.9112548828125 1004.4112548828125
190 0.5 1.621 -6361.72900390625 881.9112548828125 1004.4112548828125
191 0.5 1.672 -6361.72900390625 881.9112548828125 1004.4112548828125
192 0.5 1.722 -6397.146484375 881.9112548828125 1004.4111938476562
193 0.5 1.772 -6412.88232421875 881.9111938476562 1004.4111328125
194 0.5 1.822 -6440.43212890625 881.9111938476562 1004.4110717773438
195 0.5 1.872 -6460.11376953125 881.9111938476562 1004.4110717773438
196 0.5 1.922 -6471.90380859375 881.9111938476562 1004.4110107421875
197 0.5 1.973 -6471.90380859375 881.9111938476562 1004.4110107421875
198 0.5 2.023 -6471.90380859375 881.9111938476562 1004.4110107421875
199 0.5 2.073 -6471.90380859375 881.9111938476562 1004.4110107421875
200 0.5 2.123 -6519.134765625 881.9111328125 1004.4109497070312
201 0.5 2.173 -6542.73876953125 881.9111328125 1004.410888671875
202 0.5 2.223 -6566.3427734375 881.9111328125 1004.4108276367188
203 0.5 2.273 -6574.21044921875 881.9111328125 1004.4108276367188
204 0.5 2.323 -6578.1328125 881.9111328125 1004.4108276367188
205 0.5 2.373 -6578.1328125 881.9111328125 1004.4108276367188
206 0.5 2.423 -6578.1328125 881.9111328125 1004.4108276367188
207 0.5 2.474 -6621.41796875 881.9111328125 1004.4107055664062
208 0.5 2.524 -6641.099609375 881.9110717773438 1004.4107055664062
209 0.5 2.574 -6648.9677734375 881.9110717773438 1004.41064453125
210 0.5 2.624 -6684.38525390625 881.9110717773438 1004.4105834960938
211 0.5 2.674 -6688.3076171875 881.9110717773438 1004.4105834960938
212 0.5 2.725 -6688.3076171875 881.9110717773438 1004.4105834960938
213 0.5 2.775 -6688.3076171875 881.9110717773438 1004.4105834960938
214 0.5 2.825 -6727.6708984375 881.9110717773438 1004.4105224609375
215 0.5 2.875 -6739.4609375 881.9110717773438 1004.4104614257812
216 0.5 2.964 -6770.9326171875 881.9110107421875 1004.410400390625
217 0.5 3.014 -6790.5908203125 881.9110107421875 1004.410400390625
218 0.5 3.066 -6794.5126953125 881.9110107421875 1004.410400390625
219 0.5 3.117 -6794.5126953125 881.9110107421875 1004.410400390625
220 0.5 3.167 -6794.5126953125 881.9110107421875 1004.410400390625
221 0.5 3.217 -6829.93017578125 881.9110107421875 1004.4102783203125
222 0.5 3.269 -6837.79833984375 881.9110107421875 1004.4102783203125
223 0.5 3.321 -6873.2158203125 881.9109497070312 1004.4102172851562
224 0.5 3.371 -6881.083984375 881.9109497070312 1004.4102172851562
225 0.5 3.421 -6896.7958984375 881.9109497070312 1004.41015625
226 0.5 3.472 -6896.7958984375 881.9109497070312 1004.41015625
227 0.5 3.522 -6896.7958984375 881.9109497070312 1004.41015625
228 0.5 3.572 -6896.7958984375 881.9109497070312 1004.41015625
229 0.5 3.625 -6936.1591796875 881.9109497070312 1004.4100952148438
230 0.5 3.675 -6963.708984375 881.9109497070312 1004.4100341796875
231 0.5 3.725 -6987.31298828125 881.910888671875 1004.4099731445312
232 0.5 3.775 -7006.99462890625 881.910888671875 1004.4099731445312
233 0.5 3.825 -7014.8623046875 881.910888671875 1004.409912109375
234 0.5 3.876 -7014.8623046875 881.910888671875 1004.409912109375
235 0.5 3.926 -7014.8623046875 881.910888671875 1004.409912109375
236 0.5 3.976 -7054.2255859375 881.910888671875 1004.4098510742188
237 0.75 0.0 -7539.572265625 881.91064453125 1004.4088745117188
238 0.75 0.05 -7539.572265625 881.91064453125 1004.4088745117188
239 0.75 0.1 -7539.572265625 881.91064453125 1004.4088745117188
240 0.75 0.15 -7539.572265625 881.91064453125 1004.4088745117188
241 0.75 0.2 -7573.47705078125 881.9105834960938 1004.4088134765625
242 0.75 0.26 -7584.77294921875 881.9105834960938 1004.4087524414062
243 0.75 0.311 -7607.36474609375 881.9105834960938 1004.4087524414062
244 0.75 0.361 -7613.0126953125 881.9105834960938 1004.40869140625
245 0.75 0.413 -7621.47607421875 881.9105834960938 1004.40869140625
246 0.75 0.463 -7621.47607421875 881.9105834960938 1004.40869140625
247 0.75 0.513 -7621.47607421875 881.9105834960938 1004.40869140625
248 0.75 0.563 -7646.900390625 881.9105834960938 1004.4086303710938
249 0.75 0.614 -7669.4921875 881.9105224609375 1004.4086303710938
250 0.75 0.664 -7675.14013671875 881.9105224609375 1004.4085693359375
251 0.75 0.714 -7692.083984375 881.9105224609375 1004.4085693359375
252 0.75 0.764 -7700.54736328125 881.9105224609375 1004.4085693359375
253 0.75 0.814 -7700.54736328125 881.9105224609375 1004.4085693359375
254 0.75 0.864 -7700.54736328125 881.9105224609375 1004.4085693359375
255 0.75 0.914 -7700.54736328125 881.9105224609375 1004.4085693359375
256 0.75 0.966 -7737.26708984375 881.9105224609375 1004.408447265625
257 0.75 1.017 -7754.2109375 881.9105224609375 1004.408447265625
258 0.75 1.067 -7759.85888671875 881.9105224609375 1004.408447265625
259 0.75 1.117 -7785.283203125 881.9104614257812 1004.4083862304688
260 0.75 1.17 -7788.0986328125 881.9104614257812 1004.4083862304688
261 0.75 1.22 -7788.0986328125 881.9104614257812 1004.4083862304688
262 0.75 1.272 -7788.0986328125 881.9104614257812 1004.4083862304688
263 0.75 1.322 -7819.1708984375 881.9104614257812 1004.4083251953125
264 0.75 1.372 -7824.81884765625 881.9104614257812 1004.4082641601562
265 0.75 1.422 -7847.41064453125 881.9104614257812 1004.4082641601562
266 0.75 1.472 -7853.05859375 881.9104614257812 1004.408203125
267 0.75 1.522 -7864.33740234375 881.9104614257812 1004.408203125
268 0.75 1.573 -7864.33740234375 881.9104614257812 1004.408203125
269 0.75 1.624 -7864.33740234375 881.9104614257812 1004.408203125
270 0.75 1.674 -7864.33740234375 881.9104614257812 1004.408203125
271 0.75 1.726 -7898.2421875 881.910400390625 1004.4081420898438
272 0.75 1.776 -7915.18603515625 881.910400390625 1004.4080810546875
273 0.75 1.827 -7932.1298828125 881.910400390625 1004.4080810546875
274 0.75 1.877 -7943.42578125 881.910400390625 1004.4080200195312
275 0.75 1.928 -7951.88916015625 881.910400390625 1004.4080200195312
276 0.75 1.978 -7951.88916015625 881.910400390625 1004.4080200195312
277 0.75 2.028 -7951.88916015625 881.910400390625 1004.4080200195312
278 0.75 2.078 -7980.1455078125 881.910400390625 1004.407958984375
279 0.75 2.129 -7988.60888671875 881.910400390625 1004.407958984375
280 0.75 2.179 -8005.552734375 881.9103393554688 1004.4078979492188
281 0.75 2.229 -8022.49658203125 881.9103393554688 1004.4078979492188
282 0.75 2.279 -8028.14453125 881.9103393554688 1004.4078979492188
283 0.75 2.329 -8036.625 881.9103393554688 1004.4078369140625
284 0.75 2.379 -8036.625 881.9103393554688 1004.4078369140625
285 0.75 2.429 -8036.625 881.9103393554688 1004.4078369140625
286 0.75 2.482 -8067.697265625 881.9103393554688 1004.4077758789062
287 0.75 2.56 -8081.82568359375 881.9103393554688 1004.4077758789062
288 0.75 2.61 -8098.76953125 881.9103393554688 1004.40771484375
289 0.75 2.66 -8107.23291015625 881.9103393554688 1004.40771484375
290 0.75 2.71 -8107.23291015625 881.9103393554688 1004.40771484375
291 0.75 2.761 -8107.23291015625 881.9103393554688 1004.40771484375
292 0.75 2.811 -8107.23291015625 881.9103393554688 1004.40771484375
293 0.75 2.861 -8132.6572265625 881.9102783203125 1004.4076538085938
294 0.75 2.911 -8149.6005859375 881.9102783203125 1004.4076538085938
295 0.75 2.961 -8155.24853515625 881.9102783203125 1004.4075927734375
296 0.75 3.011 -8180.6728515625 881.9102783203125 1004.4075927734375
297 0.75 3.062 -8183.48828125 881.9102783203125 1004.4075317382812
298 0.75 3.112 -8183.48828125 881.9102783203125 1004.4075317382812
299 0.75 3.162 -8183.48828125 881.9102783203125 1004.4075317382812
300 0.75 3.212 -8214.560546875 881.9102783203125 1004.407470703125
301 0.75 3.262 -8220.208984375 881.9102783203125 1004.407470703125
302 0.75 3.313 -8242.80078125 881.9102172851562 1004.407470703125
303 0.75 3.363 -8248.4482421875 881.9102172851562 1004.4074096679688
304 0.75 3.413 -8268.2080078125 881.9102172851562 1004.4074096679688
305 0.75 3.464 -8268.2080078125 881.9102172851562 1004.4074096679688
306 0.75 3.514 -8268.2080078125 881.9102172851562 1004.4074096679688
307 0.75 3.564 -8268.2080078125 881.9102172851562 1004.4074096679688
308 0.75 3.615 -8299.279296875 881.9102172851562 1004.4073486328125
309 0.75 3.665 -8310.5751953125 881.9102172851562 1004.4072875976562
310 0.75 3.716 -8330.3515625 881.9102172851562 1004.4072875976562
311 0.75 3.766 -8336.0 881.9102172851562 1004.4072265625
312 0.75 3.818 -8344.462890625 881.91015625 1004.4072265625
313 0.75 3.87 -8344.462890625 881.91015625 1004.4072265625
314 0.75 3.92 -8344.462890625 881.91015625 1004.4072265625
315 0.75 3.97 -8369.8876953125 881.91015625 1004.4071655273438
316 1.0 0.0 -8673.5283203125 881.9100341796875 1004.4065551757812
317 1.0 0.05 -8673.5283203125 881.9100341796875 1004.4065551757812
318 1.0 0.1 -8673.5283203125 881.9100341796875 1004.4065551757812
319 1.0 0.15 -8687.119140625 881.9099731445312 1004.4065551757812
320 1.0 0.201 -8695.6025390625 881.9099731445312 1004.406494140625
321 1.0 0.259 -8702.392578125 881.9099731445312 1004.406494140625
322 1.0 0.309 -8715.974609375 881.9099731445312 1004.406494140625
323 1.0 0.359 -8719.369140625 881.9099731445312 1004.406494140625
324 1.0 0.412 -8722.7646484375 881.9099731445312 1004.406494140625
325 1.0 0.464 -8722.7646484375 881.9099731445312 1004.406494140625
326 1.0 0.514 -8722.7646484375 881.9099731445312 1004.406494140625
327 1.0 0.564 -8738.048828125 881.9099731445312 1004.4064331054688
328 1.0 0.614 -8753.3330078125 881.9099731445312 1004.4064331054688
329 1.0 0.664 -8756.7275390625 881.9099731445312 1004.4063720703125
330 1.0 0.714 -8766.9140625 881.9099731445312 1004.4063720703125
331 1.0 0.767 -8770.298828125 881.9099731445312 1004.4063720703125
332 1.0 0.817 -8770.298828125 881.9099731445312 1004.4063720703125
333 1.0 0.867 -8770.298828125 881.9099731445312 1004.4063720703125
334 1.0 0.917 -8787.28515625 881.9099731445312 1004.4063110351562
335 1.0 0.967 -8792.373046875 881.9099731445312 1004.4063110351562
336 1.0 1.018 -8802.5595703125 881.909912109375 1004.4063110351562
337 1.0 1.068 -8805.955078125 881.909912109375 1004.4063110351562
338 1.0 1.118 -8816.1298828125 881.909912109375 1004.40625
339 1.0 1.169 -8816.1298828125 881.909912109375 1004.40625
340 1.0 1.219 -8816.1298828125 881.909912109375 1004.40625
341 1.0 1.269 -8816.1298828125 881.909912109375 1004.40625
342 1.0 1.321 -8836.5126953125 881.909912109375 1004.40625
343 1.0 1.371 -8846.6982421875 881.909912109375 1004.4061889648438
344 1.0 1.421 -8856.8837890625 881.909912109375 1004.4061889648438
345 1.0 1.471 -8865.376953125 881.909912109375 1004.4061889648438
346 1.0 1.522 -8867.0703125 881.909912109375 1004.4061889648438
347 1.0 1.572 -8867.0703125 881.909912109375 1004.4061889648438
348 1.0 1.622 -8867.0703125 881.909912109375 1004.4061889648438
349 1.0 1.672 -8885.7490234375 881.909912109375 1004.4061279296875
350 1.0 1.722 -8895.9345703125 881.909912109375 1004.4061279296875
351 1.0 1.772 -8899.330078125 881.909912109375 1004.4061279296875
352 1.0 1.823 -8907.8134765625 881.9098510742188 1004.4060668945312
353 1.0 1.873 -8909.505859375 881.9098510742188 1004.4060668945312
354 1.0 1.923 -8909.505859375 881.9098510742188 1004.4060668945312
355 1.0 1.974 -8909.505859375 881.9098510742188 1004.4060668945312
356 1.0 2.024 -8926.4921875 881.9098510742188 1004.4060668945312
357 1.0 2.074 -8929.8876953125 881.9098510742188 1004.4060668945312
358 1.0 2.159 -8945.171875 881.9098510742188 1004.406005859375
359 1.0 2.209 -8958.7529296875 881.9098510742188 1004.406005859375
360 1.0 2.26 -8960.4453125 881.9098510742188 1004.406005859375
361 1.0 2.311 -8960.4453125 881.9098510742188 1004.406005859375
362 1.0 2.361 -8960.4453125 881.9098510742188 1004.406005859375
363 1.0 2.412 -8977.4326171875 881.9098510742188 1004.4059448242188
364 1.0 2.462 -8980.8271484375 881.9098510742188 1004.4059448242188
365 1.0 2.512 -8996.111328125 881.9098510742188 1004.4058837890625
366 1.0 2.562 -8999.5068359375 881.9098510742188 1004.4058837890625
367 1.0 2.614 -9006.296875 881.9098510742188 1004.4058837890625
368 1.0 2.664 -9006.296875 881.9098510742188 1004.4058837890625
369 1.0 2.714 -9006.296875 881.9098510742188 1004.4058837890625
370 1.0 2.764 -9024.9765625 881.9097900390625 1004.4058227539062
371 1.0 2.814 -9035.162109375 881.9097900390625 1004.4058227539062
372 1.0 2.865 -9035.162109375 881.9097900390625 1004.4058227539062
373 1.0 2.915 -9045.3486328125 881.9097900390625 1004.4058227539062
374 1.0 2.966 -9050.4365234375 881.9097900390625 1004.4058227539062
375 1.0 3.016 -9050.4365234375 881.9097900390625 1004.4058227539062
376 1.0 3.066 -9050.4365234375 881.9097900390625 1004.4058227539062
377 1.0 3.116 -9064.02734375 881.9097900390625 1004.40576171875
378 1.0 3.167 -9069.115234375 881.9097900390625 1004.40576171875
379 1.0 3.217 -9082.6962890625 881.9097900390625 1004.40576171875
380 1.0 3.267 -9082.6962890625 881.9097900390625 1004.40576171875
381 1.0 3.317 -9091.1796875 881.9097900390625 1004.4057006835938
382 1.0 3.367 -9092.8720703125 881.9097900390625 1004.4057006835938
383 1.0 3.418 -9092.8720703125 881.9097900390625 1004.4057006835938
384 1.0 3.468 -9092.8720703125 881.9097900390625 1004.4057006835938
385 1.0 3.518 -9111.5517578125 881.9097900390625 1004.4057006835938
386 1.0 3.568 -9118.341796875 881.9097900390625 1004.4056396484375
387 1.0 3.618 -9128.5283203125 881.9097900390625 1004.4056396484375
388 1.0 3.669 -9135.318359375 881.9097290039062 1004.4056396484375
389 1.0 3.719 -9143.8017578125 881.9097290039062 1004.4056396484375
390 1.0 3.769 -9143.8017578125 881.9097290039062 1004.4056396484375
391 1.0 3.819 -9143.8017578125 881.9097290039062 1004.4056396484375
392 1.0 3.87 -9143.8017578125 881.9097290039062 1004.4056396484375
393 1.0 3.92 -9162.48046875 881.9097290039062 1004.4055786132812
394 1.0 3.97 -9172.6669921875 881.9097290039062 1004.4055786132812

View File

@@ -0,0 +1,491 @@
rt,t,x,y,z
0.0,0.0,-7005.12646484375,881.910888671875,1004.4099731445312
0.0,0.05,-7057.591796875,881.910888671875,1004.4098510742188
0.0,0.1,-7075.056640625,881.910888671875,1004.4098510742188
0.0,0.173,-7110.021484375,881.9108276367188,1004.4097290039062
0.0,0.223,-7144.98681640625,881.9108276367188,1004.40966796875
0.0,0.274,-7156.6064453125,881.9108276367188,1004.40966796875
0.0,0.324,-7156.6064453125,881.9108276367188,1004.40966796875
0.0,0.374,-7156.6064453125,881.9108276367188,1004.40966796875
0.0,0.424,-7214.91650390625,881.9107666015625,1004.4095458984375
0.0,0.476,-7232.3818359375,881.9107666015625,1004.4094848632812
0.0,0.526,-7267.3466796875,881.9107666015625,1004.409423828125
0.0,0.577,-7279.00146484375,881.9107666015625,1004.409423828125
0.0,0.627,-7308.12158203125,881.9107666015625,1004.4093627929688
0.0,0.677,-7313.931640625,881.9107055664062,1004.4093627929688
0.0,0.727,-7313.931640625,881.9107055664062,1004.4093627929688
0.0,0.777,-7313.931640625,881.9107055664062,1004.4093627929688
0.0,0.827,-7378.0517578125,881.9107055664062,1004.4091796875
0.0,0.877,-7401.36181640625,881.9107055664062,1004.4091796875
0.0,0.927,-7447.9814453125,881.91064453125,1004.4090576171875
0.0,0.977,-7459.63671875,881.91064453125,1004.4090576171875
0.0,1.027,-7494.6015625,881.91064453125,1004.4089965820312
0.0,1.077,-7494.6015625,881.91064453125,1004.4089965820312
0.0,1.128,-7494.6015625,881.91064453125,1004.4089965820312
0.0,1.178,-7494.6015625,881.91064453125,1004.4089965820312
0.0,1.229,-7570.37646484375,881.9105834960938,1004.4088134765625
0.0,1.279,-7605.341796875,881.9105834960938,1004.4087524414062
0.0,1.329,-7628.65185546875,881.9105834960938,1004.40869140625
0.0,1.379,-7640.306640625,881.9105834960938,1004.40869140625
0.0,1.429,-7651.96142578125,881.9105834960938,1004.4086303710938
0.0,1.479,-7651.96142578125,881.9105834960938,1004.4086303710938
0.0,1.529,-7651.96142578125,881.9105834960938,1004.4086303710938
0.0,1.583,-7698.58154296875,881.9105224609375,1004.4085693359375
0.0,1.639,-7751.04638671875,881.9105224609375,1004.408447265625
0.0,1.689,-7780.20166015625,881.9104614257812,1004.4083862304688
0.0,1.739,-7809.32177734375,881.9104614257812,1004.4083251953125
0.0,1.789,-7809.32177734375,881.9104614257812,1004.4083251953125
0.0,1.839,-7809.32177734375,881.9104614257812,1004.4083251953125
0.0,1.892,-7809.32177734375,881.9104614257812,1004.4083251953125
0.0,1.942,-7873.44140625,881.9104614257812,1004.408203125
0.0,1.992,-7890.94140625,881.910400390625,1004.4081420898438
0.0,2.073,-7925.90673828125,881.910400390625,1004.4080810546875
0.0,2.123,-7949.181640625,881.910400390625,1004.4080810546875
0.0,2.173,-7949.181640625,881.910400390625,1004.4080810546875
0.0,2.223,-7949.181640625,881.910400390625,1004.4080810546875
0.0,2.273,-7949.181640625,881.910400390625,1004.4080810546875
0.0,2.325,-8024.95654296875,881.9103393554688,1004.4078979492188
0.0,2.376,-8059.92138671875,881.9103393554688,1004.4078369140625
0.0,2.426,-8094.88671875,881.9103393554688,1004.4077758789062
0.0,2.476,-8106.54150390625,881.9103393554688,1004.40771484375
0.0,2.526,-8124.00634765625,881.9102783203125,1004.40771484375
0.0,2.576,-8124.00634765625,881.9102783203125,1004.40771484375
0.0,2.626,-8124.00634765625,881.9102783203125,1004.40771484375
0.0,2.676,-8164.81640625,881.9102783203125,1004.4075927734375
0.0,2.727,-8199.78125,881.9102783203125,1004.4075317382812
0.0,2.777,-8211.4365234375,881.9102783203125,1004.4075317382812
0.0,2.827,-8246.4013671875,881.9102172851562,1004.407470703125
0.0,2.877,-8263.8662109375,881.9102172851562,1004.4074096679688
0.0,2.927,-8263.8662109375,881.9102172851562,1004.4074096679688
0.0,2.978,-8263.8662109375,881.9102172851562,1004.4074096679688
0.0,3.028,-8263.8662109375,881.9102172851562,1004.4074096679688
0.0,3.078,-8333.8310546875,881.9102172851562,1004.4072875976562
0.0,3.131,-8368.796875,881.91015625,1004.4072265625
0.0,3.181,-8380.451171875,881.91015625,1004.4071655273438
0.0,3.231,-8427.0712890625,881.91015625,1004.4071044921875
0.0,3.281,-8432.8818359375,881.91015625,1004.4070434570312
0.0,3.334,-8432.8818359375,881.91015625,1004.4070434570312
0.0,3.385,-8432.8818359375,881.91015625,1004.4070434570312
0.0,3.435,-8485.3818359375,881.9100952148438,1004.406982421875
0.0,3.485,-8502.8466796875,881.9100952148438,1004.4069213867188
0.0,3.535,-8549.466796875,881.9100952148438,1004.4067993164062
0.0,3.585,-8572.7763671875,881.9100341796875,1004.4067993164062
0.0,3.635,-8601.896484375,881.9100341796875,1004.40673828125
0.0,3.686,-8601.896484375,881.9100341796875,1004.40673828125
0.0,3.736,-8601.896484375,881.9100341796875,1004.40673828125
0.0,3.788,-8601.896484375,881.9100341796875,1004.40673828125
0.0,3.838,-8677.671875,881.9100341796875,1004.4065551757812
0.0,3.888,-8689.326171875,881.9099731445312,1004.4065551757812
0.0,3.938,-8735.9462890625,881.9099731445312,1004.4064331054688
0.0,3.988,-8747.6015625,881.9099731445312,1004.4064331054688
0.0,4.038,-8765.06640625,881.9099731445312,1004.4063720703125
0.0,4.089,-8765.06640625,881.9099731445312,1004.4063720703125
0.0,4.139,-8765.06640625,881.9099731445312,1004.4063720703125
0.0,4.189,-8817.56640625,881.909912109375,1004.4063110351562
0.0,4.24,-8846.6865234375,881.909912109375,1004.40625
0.0,4.29,-8875.841796875,881.909912109375,1004.4061889648438
0.0,4.34,-8910.806640625,881.9098510742188,1004.4060668945312
0.0,4.39,-8922.4619140625,881.9098510742188,1004.4060668945312
0.0,4.441,-8934.1162109375,881.9098510742188,1004.4060668945312
0.0,4.491,-8934.1162109375,881.9098510742188,1004.4060668945312
0.0,4.541,-8980.771484375,881.9098510742188,1004.4059448242188
0.0,4.591,-8998.236328125,881.9098510742188,1004.4059448242188
0.0,4.641,-9033.201171875,881.9097900390625,1004.4058227539062
0.0,4.691,-9044.8564453125,881.9097900390625,1004.4058227539062
0.0,4.741,-9073.9765625,881.9097900390625,1004.40576171875
0.0,4.793,-9079.7861328125,881.9097900390625,1004.40576171875
0.0,4.844,-9079.7861328125,881.9097900390625,1004.40576171875
0.0,4.894,-9079.7861328125,881.9097900390625,1004.40576171875
0.0,4.944,-9155.5615234375,881.9097290039062,1004.4055786132812
0.0,4.994,-9167.216796875,881.9097290039062,1004.4055786132812
0.25,0.0,-10721.111328125,881.908935546875,1004.4024047851562
0.25,0.056,-10788.650390625,881.9088745117188,1004.4022827148438
0.25,0.106,-10830.8046875,881.9088745117188,1004.4022216796875
0.25,0.156,-10847.6767578125,881.9088134765625,1004.4021606445312
0.25,0.206,-10898.29296875,881.9088134765625,1004.4020385742188
0.25,0.258,-10923.5751953125,881.9088134765625,1004.4020385742188
0.25,0.308,-10923.5751953125,881.9088134765625,1004.4020385742188
0.25,0.358,-10923.5751953125,881.9088134765625,1004.4020385742188
0.25,0.408,-10923.5751953125,881.9088134765625,1004.4020385742188
0.25,0.461,-11016.396484375,881.9087524414062,1004.4017944335938
0.25,0.511,-11075.4736328125,881.90869140625,1004.4017333984375
0.25,0.561,-11092.345703125,881.90869140625,1004.4016723632812
0.25,0.611,-11142.9619140625,881.90869140625,1004.4015502929688
0.25,0.663,-11159.783203125,881.90869140625,1004.4015502929688
0.25,0.713,-11159.783203125,881.90869140625,1004.4015502929688
0.25,0.763,-11159.783203125,881.90869140625,1004.4015502929688
0.25,0.813,-11261.06640625,881.9086303710938,1004.4013061523438
0.25,0.864,-11277.9384765625,881.9086303710938,1004.4013061523438
0.25,0.914,-11345.42578125,881.9085693359375,1004.4011840820312
0.25,0.964,-11345.42578125,881.9085693359375,1004.4011840820312
0.25,1.014,-11429.7861328125,881.9085083007812,1004.4010009765625
0.25,1.065,-11438.1962890625,881.9085083007812,1004.4009399414062
0.25,1.115,-11438.1962890625,881.9085083007812,1004.4009399414062
0.25,1.165,-11438.1962890625,881.9085083007812,1004.4009399414062
0.25,1.216,-11514.146484375,881.9085083007812,1004.4008178710938
0.25,1.266,-11547.8896484375,881.908447265625,1004.4007568359375
0.25,1.318,-11615.3779296875,881.908447265625,1004.400634765625
0.25,1.368,-11632.25,881.908447265625,1004.4005737304688
0.25,1.418,-11691.2763671875,881.9083862304688,1004.4004516601562
0.25,1.469,-11691.2763671875,881.9083862304688,1004.4004516601562
0.25,1.519,-11691.2763671875,881.9083862304688,1004.4004516601562
0.25,1.57,-11691.2763671875,881.9083862304688,1004.4004516601562
0.25,1.62,-11800.9697265625,881.9083251953125,1004.4002075195312
0.25,1.67,-11817.841796875,881.9083251953125,1004.4002075195312
0.25,1.72,-11876.9189453125,881.9082641601562,1004.4000854492188
0.25,1.77,-11927.53515625,881.9082641601562,1004.3999633789062
0.25,1.82,-11961.279296875,881.9082641601562,1004.39990234375
0.25,1.87,-11961.279296875,881.9082641601562,1004.39990234375
0.25,1.924,-11961.279296875,881.9082641601562,1004.39990234375
0.25,1.974,-11961.279296875,881.9082641601562,1004.39990234375
0.25,2.025,-12070.97265625,881.908203125,1004.399658203125
0.25,2.075,-12113.177734375,881.9081420898438,1004.3995971679688
0.25,2.125,-12163.7939453125,881.9081420898438,1004.3994750976562
0.25,2.175,-12205.9990234375,881.9080810546875,1004.3994140625
0.25,2.226,-12222.8203125,881.9080810546875,1004.3993530273438
0.25,2.276,-12222.8203125,881.9080810546875,1004.3993530273438
0.25,2.356,-12222.8203125,881.9080810546875,1004.3993530273438
0.25,2.408,-12307.2314453125,881.9080810546875,1004.3992309570312
0.25,2.458,-12340.9755859375,881.9080200195312,1004.3991088867188
0.25,2.508,-12416.9248046875,881.9080200195312,1004.3989868164062
0.25,2.558,-12433.796875,881.907958984375,1004.39892578125
0.25,2.608,-12476.001953125,881.907958984375,1004.3988647460938
0.25,2.658,-12476.001953125,881.907958984375,1004.3988647460938
0.25,2.708,-12476.001953125,881.907958984375,1004.3988647460938
0.25,2.758,-12476.001953125,881.907958984375,1004.3988647460938
0.25,2.809,-12577.2841796875,881.9078979492188,1004.398681640625
0.25,2.859,-12611.0283203125,881.9078979492188,1004.3985595703125
0.25,2.909,-12686.9775390625,881.9078369140625,1004.3984375
0.25,2.959,-12703.849609375,881.9078369140625,1004.3983764648438
0.25,3.01,-12737.59375,881.9078369140625,1004.3983154296875
0.25,3.06,-12737.59375,881.9078369140625,1004.3983154296875
0.25,3.113,-12737.59375,881.9078369140625,1004.3983154296875
0.25,3.163,-12822.0048828125,881.9077758789062,1004.3981323242188
0.25,3.216,-12864.1591796875,881.9077758789062,1004.3980712890625
0.25,3.268,-12914.775390625,881.90771484375,1004.39794921875
0.25,3.318,-12965.3916015625,881.90771484375,1004.3978881835938
0.25,3.368,-12982.2626953125,881.90771484375,1004.3978271484375
0.25,3.419,-12990.673828125,881.90771484375,1004.3978271484375
0.25,3.469,-12990.673828125,881.90771484375,1004.3978271484375
0.25,3.519,-12990.673828125,881.90771484375,1004.3978271484375
0.25,3.572,-13075.0849609375,881.9076538085938,1004.3976440429688
0.25,3.622,-13125.7001953125,881.9075927734375,1004.3975219726562
0.25,3.672,-13159.4443359375,881.9075927734375,1004.3974609375
0.25,3.722,-13210.060546875,881.9075927734375,1004.3973999023438
0.25,3.772,-13226.9326171875,881.9075927734375,1004.3973388671875
0.25,3.823,-13243.8046875,881.9075317382812,1004.3972778320312
0.25,3.873,-13243.8046875,881.9075317382812,1004.3972778320312
0.25,3.923,-13243.8046875,881.9075317382812,1004.3972778320312
0.25,3.973,-13336.6259765625,881.9075317382812,1004.3970947265625
0.25,4.023,-13387.2421875,881.907470703125,1004.3970336914062
0.25,4.073,-13404.1142578125,881.907470703125,1004.39697265625
0.25,4.123,-13463.19140625,881.9074096679688,1004.3968505859375
0.25,4.173,-13505.396484375,881.9074096679688,1004.3967895507812
0.25,4.223,-13513.806640625,881.9074096679688,1004.3967895507812
0.25,4.274,-13513.806640625,881.9074096679688,1004.3967895507812
0.25,4.324,-13581.345703125,881.9073486328125,1004.3966064453125
0.25,4.374,-13606.62890625,881.9073486328125,1004.3965454101562
0.25,4.456,-13657.244140625,881.9073486328125,1004.396484375
0.25,4.506,-13707.8603515625,881.9072875976562,1004.3963623046875
0.25,4.556,-13724.732421875,881.9072875976562,1004.3963623046875
0.25,4.609,-13750.0146484375,881.9072875976562,1004.3963012695312
0.25,4.659,-13750.0146484375,881.9072875976562,1004.3963012695312
0.25,4.709,-13750.0146484375,881.9072875976562,1004.3963012695312
0.25,4.761,-13834.42578125,881.9072265625,1004.3961181640625
0.25,4.811,-13901.9140625,881.9072265625,1004.39599609375
0.25,4.861,-13901.9140625,881.9072265625,1004.39599609375
0.25,4.911,-13969.4013671875,881.9071655273438,1004.3958129882812
0.25,4.962,-13986.22265625,881.9071655273438,1004.3958129882812
0.5,0.0,-16303.880859375,881.9058837890625,1004.39111328125
0.5,0.051,-16352.869140625,881.9058837890625,1004.3909912109375
0.5,0.101,-16352.869140625,881.9058837890625,1004.3909912109375
0.5,0.151,-16352.869140625,881.9058837890625,1004.3909912109375
0.5,0.201,-16352.869140625,881.9058837890625,1004.3909912109375
0.5,0.252,-16475.59765625,881.9058227539062,1004.3907470703125
0.5,0.302,-16500.12890625,881.9058227539062,1004.3906860351562
0.5,0.376,-16586.025390625,881.90576171875,1004.3905639648438
0.5,0.426,-16696.451171875,881.9057006835938,1004.3903198242188
0.5,0.477,-16708.6796875,881.9057006835938,1004.3903198242188
0.5,0.527,-16708.6796875,881.9057006835938,1004.3903198242188
0.5,0.577,-16708.6796875,881.9057006835938,1004.3903198242188
0.5,0.627,-16831.408203125,881.9056396484375,1004.3900146484375
0.5,0.678,-16831.408203125,881.9056396484375,1004.3900146484375
0.5,0.728,-16929.53125,881.9055786132812,1004.3898315429688
0.5,0.778,-16954.0625,881.9055786132812,1004.3897705078125
0.5,0.829,-17015.353515625,881.905517578125,1004.3896484375
0.5,0.879,-17027.58203125,881.905517578125,1004.3896484375
0.5,0.929,-17027.58203125,881.905517578125,1004.3896484375
0.5,0.979,-17027.58203125,881.905517578125,1004.3896484375
0.5,1.029,-17162.5390625,881.9054565429688,1004.3893432617188
0.5,1.079,-17211.6015625,881.9054565429688,1004.3892822265625
0.5,1.13,-17297.498046875,881.9053955078125,1004.3890991210938
0.5,1.18,-17346.55859375,881.9053344726562,1004.3889770507812
0.5,1.23,-17407.849609375,881.9053344726562,1004.3888549804688
0.5,1.28,-17407.849609375,881.9053344726562,1004.3888549804688
0.5,1.331,-17407.849609375,881.9053344726562,1004.3888549804688
0.5,1.381,-17407.849609375,881.9053344726562,1004.3888549804688
0.5,1.431,-17555.109375,881.9052124023438,1004.3885498046875
0.5,1.481,-17604.171875,881.9052124023438,1004.3884887695312
0.5,1.532,-17677.763671875,881.9051513671875,1004.3883056640625
0.5,1.585,-17726.826171875,881.9051513671875,1004.3882446289062
0.5,1.635,-17763.5859375,881.9051513671875,1004.38818359375
0.5,1.685,-17763.5859375,881.9051513671875,1004.38818359375
0.5,1.735,-17763.5859375,881.9051513671875,1004.38818359375
0.5,1.785,-17763.5859375,881.9051513671875,1004.38818359375
0.5,1.835,-17910.845703125,881.905029296875,1004.3878784179688
0.5,1.885,-17959.908203125,881.905029296875,1004.3877563476562
0.5,1.936,-18058.03125,881.9049682617188,1004.3875732421875
0.5,1.986,-18082.5625,881.9049682617188,1004.3875122070312
0.5,2.037,-18107.01953125,881.9049682617188,1004.387451171875
0.5,2.087,-18107.01953125,881.9049682617188,1004.387451171875
0.5,2.138,-18107.01953125,881.9049682617188,1004.387451171875
0.5,2.188,-18107.01953125,881.9049682617188,1004.387451171875
0.5,2.238,-18278.810546875,881.9048461914062,1004.3871459960938
0.5,2.288,-18352.404296875,881.90478515625,1004.386962890625
0.5,2.339,-18425.99609375,881.90478515625,1004.3868408203125
0.5,2.389,-18450.52734375,881.90478515625,1004.3867797851562
0.5,2.441,-18475.05859375,881.9047241210938,1004.38671875
0.5,2.491,-18475.05859375,881.9047241210938,1004.38671875
0.5,2.541,-18475.05859375,881.9047241210938,1004.38671875
0.5,2.591,-18610.015625,881.9046630859375,1004.386474609375
0.5,2.641,-18683.609375,881.9046630859375,1004.3862915039062
0.5,2.691,-18732.671875,881.9046020507812,1004.38623046875
0.5,2.741,-18781.732421875,881.9046020507812,1004.3861083984375
0.5,2.791,-18806.189453125,881.904541015625,1004.3860473632812
0.5,2.842,-18806.189453125,881.904541015625,1004.3860473632812
0.5,2.892,-18806.189453125,881.904541015625,1004.3860473632812
0.5,2.942,-18928.91796875,881.9044799804688,1004.3858032226562
0.5,2.994,-18965.677734375,881.9044799804688,1004.3857421875
0.5,3.075,-19027.04296875,881.9044799804688,1004.3856201171875
0.5,3.125,-19125.166015625,881.9044189453125,1004.3854370117188
0.5,3.175,-19149.625,881.9043579101562,1004.3853759765625
0.5,3.226,-19149.625,881.9043579101562,1004.3853759765625
0.5,3.277,-19149.625,881.9043579101562,1004.3853759765625
0.5,3.327,-19149.625,881.9043579101562,1004.3853759765625
0.5,3.38,-19272.353515625,881.904296875,1004.3851318359375
0.5,3.43,-19358.248046875,881.904296875,1004.3849487304688
0.5,3.48,-19407.310546875,881.9042358398438,1004.3848266601562
0.5,3.53,-19480.90234375,881.9042358398438,1004.3847045898438
0.5,3.58,-19505.361328125,881.9041748046875,1004.3846435546875
0.5,3.63,-19505.361328125,881.9041748046875,1004.3846435546875
0.5,3.68,-19505.361328125,881.9041748046875,1004.3846435546875
0.5,3.731,-19640.390625,881.9041137695312,1004.3843994140625
0.5,3.783,-19677.150390625,881.9041137695312,1004.38427734375
0.5,3.833,-19775.275390625,881.904052734375,1004.3840942382812
0.5,3.883,-19775.275390625,881.904052734375,1004.3840942382812
0.5,3.933,-19848.8671875,881.9039916992188,1004.3839721679688
0.5,3.983,-19861.09765625,881.9039916992188,1004.3839111328125
0.5,4.033,-19861.09765625,881.9039916992188,1004.3839111328125
0.5,4.084,-19861.09765625,881.9039916992188,1004.3839111328125
0.5,4.134,-19996.0546875,881.9039306640625,1004.3836669921875
0.5,4.184,-20020.5859375,881.9039306640625,1004.3836059570312
0.5,4.242,-20118.708984375,881.9038696289062,1004.3834228515625
0.5,4.292,-20143.240234375,881.9038696289062,1004.3833618164062
0.5,4.342,-20229.0625,881.90380859375,1004.3831787109375
0.5,4.392,-20229.0625,881.90380859375,1004.3831787109375
0.5,4.442,-20229.0625,881.90380859375,1004.3831787109375
0.5,4.496,-20229.0625,881.90380859375,1004.3831787109375
0.5,4.546,-20351.791015625,881.9037475585938,1004.3829345703125
0.5,4.596,-20400.8515625,881.9036865234375,1004.3828125
0.5,4.675,-20474.4453125,881.9036865234375,1004.3826904296875
0.5,4.725,-20572.5703125,881.9036254882812,1004.3825073242188
0.5,4.778,-20584.798828125,881.9036254882812,1004.3824462890625
0.5,4.828,-20584.798828125,881.9036254882812,1004.3824462890625
0.5,4.878,-20584.798828125,881.9036254882812,1004.3824462890625
0.5,4.929,-20719.755859375,881.903564453125,1004.3822021484375
0.5,4.98,-20744.287109375,881.9035034179688,1004.3821411132812
0.75,0.0,-23732.6171875,881.9019165039062,1004.3760986328125
0.75,0.05,-23732.6171875,881.9019165039062,1004.3760986328125
0.75,0.1,-23732.6171875,881.9019165039062,1004.3760986328125
0.75,0.15,-23732.6171875,881.9019165039062,1004.3760986328125
0.75,0.201,-23957.267578125,881.9017944335938,1004.3756103515625
0.75,0.251,-24021.42578125,881.9017944335938,1004.37548828125
0.75,0.301,-24101.669921875,881.9017333984375,1004.3753051757812
0.75,0.365,-24165.828125,881.9016723632812,1004.3751831054688
0.75,0.415,-24213.8984375,881.9016723632812,1004.3751220703125
0.75,0.465,-24213.8984375,881.9016723632812,1004.3751220703125
0.75,0.516,-24213.8984375,881.9016723632812,1004.3751220703125
0.75,0.566,-24213.8984375,881.9016723632812,1004.3751220703125
0.75,0.616,-24406.46875,881.9015502929688,1004.3746948242188
0.75,0.666,-24438.548828125,881.9015502929688,1004.3746337890625
0.75,0.717,-24582.951171875,881.9014892578125,1004.3743286132812
0.75,0.767,-24615.03125,881.9014282226562,1004.374267578125
0.75,0.817,-24727.35546875,881.9013671875,1004.3740844726562
0.75,0.868,-24727.35546875,881.9013671875,1004.3740844726562
0.75,0.918,-24727.35546875,881.9013671875,1004.3740844726562
0.75,0.968,-24727.35546875,881.9013671875,1004.3740844726562
0.75,1.021,-24887.84765625,881.9013061523438,1004.3737182617188
0.75,1.071,-24919.92578125,881.9013061523438,1004.3736572265625
0.75,1.121,-25032.25,881.9012451171875,1004.3734130859375
0.75,1.171,-25064.330078125,881.9011840820312,1004.3733520507812
0.75,1.221,-25144.478515625,881.9011840820312,1004.3732299804688
0.75,1.274,-25160.470703125,881.9011840820312,1004.3731689453125
0.75,1.324,-25160.470703125,881.9011840820312,1004.3731689453125
0.75,1.374,-25160.470703125,881.9011840820312,1004.3731689453125
0.75,1.424,-25304.970703125,881.9010620117188,1004.3728637695312
0.75,1.476,-25353.041015625,881.9010620117188,1004.372802734375
0.75,1.565,-25449.27734375,881.9010009765625,1004.3726196289062
0.75,1.615,-25609.671875,881.9009399414062,1004.3722534179688
0.75,1.665,-25657.7421875,881.90087890625,1004.3721923828125
0.75,1.715,-25657.7421875,881.90087890625,1004.3721923828125
0.75,1.765,-25657.7421875,881.90087890625,1004.3721923828125
0.75,1.816,-25657.7421875,881.90087890625,1004.3721923828125
0.75,1.866,-25786.154296875,881.9008178710938,1004.3718872070312
0.75,1.916,-25882.392578125,881.9007568359375,1004.3717041015625
0.75,1.966,-25914.470703125,881.9007568359375,1004.3716430664062
0.75,2.016,-26010.708984375,881.9006958007812,1004.3714599609375
0.75,2.067,-26058.779296875,881.9006958007812,1004.371337890625
0.75,2.117,-26058.779296875,881.9006958007812,1004.371337890625
0.75,2.168,-26058.779296875,881.9006958007812,1004.371337890625
0.75,2.218,-26058.779296875,881.9006958007812,1004.371337890625
0.75,2.27,-26203.181640625,881.9005737304688,1004.37109375
0.75,2.32,-26299.419921875,881.9005737304688,1004.370849609375
0.75,2.37,-26299.419921875,881.9005737304688,1004.370849609375
0.75,2.42,-26459.814453125,881.9004516601562,1004.3705444335938
0.75,2.473,-26475.8046875,881.9004516601562,1004.3704833984375
0.75,2.523,-26475.8046875,881.9004516601562,1004.3704833984375
0.75,2.573,-26475.8046875,881.9004516601562,1004.3704833984375
0.75,2.623,-26604.21875,881.900390625,1004.3702392578125
0.75,2.677,-26620.208984375,881.900390625,1004.3702392578125
0.75,2.727,-26732.533203125,881.9003295898438,1004.3699951171875
0.75,2.777,-26764.61328125,881.9003295898438,1004.3699340820312
0.75,2.827,-26892.9296875,881.9002075195312,1004.3696899414062
0.75,2.88,-26908.919921875,881.9002075195312,1004.36962890625
0.75,2.935,-26908.919921875,881.9002075195312,1004.36962890625
0.75,3.015,-26908.919921875,881.9002075195312,1004.36962890625
0.75,3.065,-27053.32421875,881.900146484375,1004.3693237304688
0.75,3.117,-27165.6484375,881.9000854492188,1004.369140625
0.75,3.167,-27197.7265625,881.9000854492188,1004.3690185546875
0.75,3.217,-27342.130859375,881.8999633789062,1004.3687744140625
0.75,3.27,-27358.123046875,881.8999633789062,1004.3687133789062
0.75,3.32,-27358.123046875,881.8999633789062,1004.3687133789062
0.75,3.37,-27358.123046875,881.8999633789062,1004.3687133789062
0.75,3.42,-27502.623046875,881.89990234375,1004.368408203125
0.75,3.473,-27518.61328125,881.89990234375,1004.368408203125
0.75,3.523,-27630.9375,881.8998413085938,1004.3681640625
0.75,3.573,-27663.017578125,881.8998413085938,1004.3681030273438
0.75,3.623,-27759.25390625,881.8997802734375,1004.367919921875
0.75,3.674,-27775.24609375,881.8997802734375,1004.3678588867188
0.75,3.724,-27775.24609375,881.8997802734375,1004.3678588867188
0.75,3.774,-27775.24609375,881.8997802734375,1004.3678588867188
0.75,3.824,-27935.736328125,881.899658203125,1004.3675537109375
0.75,3.876,-27951.728515625,881.899658203125,1004.3674926757812
0.75,3.926,-28080.044921875,881.8995971679688,1004.3672485351562
0.75,3.978,-28144.203125,881.8995361328125,1004.3671264648438
0.75,4.028,-28256.52734375,881.8994750976562,1004.3668823242188
0.75,4.078,-28272.517578125,881.8994750976562,1004.3668823242188
0.75,4.165,-28272.517578125,881.8994750976562,1004.3668823242188
0.75,4.215,-28272.517578125,881.8994750976562,1004.3668823242188
0.75,4.265,-28433.009765625,881.8994140625,1004.3665771484375
0.75,4.321,-28545.333984375,881.8993530273438,1004.3663330078125
0.75,4.371,-28577.4140625,881.8993530273438,1004.3662719726562
0.75,4.421,-28721.81640625,881.8992309570312,1004.365966796875
0.75,4.473,-28737.80859375,881.8992309570312,1004.365966796875
0.75,4.523,-28737.80859375,881.8992309570312,1004.365966796875
0.75,4.573,-28737.80859375,881.8992309570312,1004.365966796875
0.75,4.623,-28737.80859375,881.8992309570312,1004.365966796875
0.75,4.673,-28898.298828125,881.899169921875,1004.3656005859375
0.75,4.723,-29010.625,881.8991088867188,1004.3653564453125
0.75,4.773,-29042.703125,881.8991088867188,1004.3652954101562
0.75,4.824,-29171.01953125,881.8989868164062,1004.3650512695312
0.75,4.874,-29187.009765625,881.8989868164062,1004.3650512695312
0.75,4.924,-29187.009765625,881.8989868164062,1004.3650512695312
0.75,4.974,-29187.009765625,881.8989868164062,1004.3650512695312
1.0,0.0,-33019.671875,881.89697265625,1004.3572998046875
1.0,0.05,-33019.671875,881.89697265625,1004.3572998046875
1.0,0.1,-33019.671875,881.89697265625,1004.3572998046875
1.0,0.152,-33238.29296875,881.8968505859375,1004.3568115234375
1.0,0.202,-33278.03125,881.8967895507812,1004.3567504882812
1.0,0.252,-33417.171875,881.896728515625,1004.3564453125
1.0,0.302,-33516.578125,881.8966674804688,1004.3562622070312
1.0,0.352,-33615.86328125,881.8966064453125,1004.3560791015625
1.0,0.402,-33615.86328125,881.8966064453125,1004.3560791015625
1.0,0.476,-33615.86328125,881.8966064453125,1004.3560791015625
1.0,0.526,-33794.7421875,881.8965454101562,1004.355712890625
1.0,0.579,-33834.48046875,881.896484375,1004.3555908203125
1.0,0.629,-34013.36328125,881.8964233398438,1004.355224609375
1.0,0.679,-34053.09765625,881.8963623046875,1004.3551635742188
1.0,0.729,-34152.3828125,881.8963623046875,1004.35498046875
1.0,0.779,-34152.3828125,881.8963623046875,1004.35498046875
1.0,0.83,-34152.3828125,881.8963623046875,1004.35498046875
1.0,0.88,-34152.3828125,881.8963623046875,1004.35498046875
1.0,0.93,-34311.3359375,881.896240234375,1004.3546752929688
1.0,0.98,-34351.07421875,881.896240234375,1004.3545532226562
1.0,1.03,-34529.95703125,881.8961181640625,1004.3541870117188
1.0,1.08,-34569.6953125,881.8961181640625,1004.3541259765625
1.0,1.131,-34688.90625,881.8960571289062,1004.3538818359375
1.0,1.181,-34688.90625,881.8960571289062,1004.3538818359375
1.0,1.231,-34688.90625,881.8960571289062,1004.3538818359375
1.0,1.281,-34688.90625,881.8960571289062,1004.3538818359375
1.0,1.331,-34887.71484375,881.8959350585938,1004.3534545898438
1.0,1.381,-34967.19140625,881.8958740234375,1004.3533325195312
1.0,1.431,-35106.3359375,881.8958129882812,1004.35302734375
1.0,1.482,-35185.8125,881.8958129882812,1004.3529052734375
1.0,1.533,-35225.55078125,881.895751953125,1004.352783203125
1.0,1.583,-35225.55078125,881.895751953125,1004.352783203125
1.0,1.633,-35225.55078125,881.895751953125,1004.352783203125
1.0,1.684,-35404.55078125,881.8956909179688,1004.3524169921875
1.0,1.734,-35464.09765625,881.8956298828125,1004.352294921875
1.0,1.784,-35583.3125,881.8955688476562,1004.35205078125
1.0,1.834,-35702.5234375,881.8955078125,1004.351806640625
1.0,1.884,-35742.26171875,881.8955078125,1004.3517456054688
1.0,1.936,-35782.0,881.8954467773438,1004.3516845703125
1.0,1.989,-35782.0,881.8954467773438,1004.3516845703125
1.0,2.039,-35782.0,881.8954467773438,1004.3516845703125
1.0,2.09,-35980.80859375,881.8953857421875,1004.3512573242188
1.0,2.178,-36060.28515625,881.8953247070312,1004.3511352539062
1.0,2.228,-36219.23828125,881.8952026367188,1004.3507690429688
1.0,2.278,-36278.78515625,881.8952026367188,1004.3506469726562
1.0,2.328,-36278.78515625,881.8952026367188,1004.3506469726562
1.0,2.378,-36278.78515625,881.8952026367188,1004.3506469726562
1.0,2.428,-36278.78515625,881.8952026367188,1004.3506469726562
1.0,2.479,-36457.6640625,881.8950805664062,1004.3502807617188
1.0,2.529,-36576.87890625,881.89501953125,1004.3500366210938
1.0,2.579,-36616.6171875,881.89501953125,1004.3499755859375
1.0,2.629,-36775.5703125,881.8949584960938,1004.3496704101562
1.0,2.681,-36795.37890625,881.8948974609375,1004.349609375
1.0,2.731,-36795.37890625,881.8948974609375,1004.349609375
1.0,2.782,-36795.37890625,881.8948974609375,1004.349609375
1.0,2.832,-36994.1875,881.8948364257812,1004.3491821289062
1.0,2.882,-37013.99609375,881.894775390625,1004.3491821289062
1.0,2.932,-37172.94921875,881.8947143554688,1004.348876953125
1.0,2.982,-37212.6875,881.8947143554688,1004.3487548828125
1.0,3.033,-37311.97265625,881.8946533203125,1004.3485717773438
1.0,3.083,-37331.78125,881.8946533203125,1004.3485107421875
1.0,3.133,-37331.78125,881.8946533203125,1004.3485107421875
1.0,3.183,-37331.78125,881.8946533203125,1004.3485107421875
1.0,3.233,-37550.40234375,881.89453125,1004.3480834960938
1.0,3.283,-37590.140625,881.8944702148438,1004.3480224609375
1.0,3.335,-37709.3515625,881.8944091796875,1004.3477783203125
1.0,3.385,-37788.828125,881.8944091796875,1004.3475952148438
1.0,3.435,-37907.92578125,881.8943481445312,1004.3473510742188
1.0,3.485,-37907.92578125,881.8943481445312,1004.3473510742188
1.0,3.536,-37907.92578125,881.8943481445312,1004.3473510742188
1.0,3.587,-37907.92578125,881.8943481445312,1004.3473510742188
1.0,3.637,-38126.54296875,881.8942260742188,1004.346923828125
1.0,3.687,-38206.01953125,881.8941650390625,1004.3467407226562
1.0,3.737,-38384.8984375,881.89404296875,1004.3463745117188
1.0,3.787,-38424.63671875,881.89404296875,1004.3463134765625
1.0,3.838,-38444.4453125,881.89404296875,1004.3462524414062
1.0,3.888,-38444.4453125,881.89404296875,1004.3462524414062
1.0,3.938,-38444.4453125,881.89404296875,1004.3462524414062
1.0,3.988,-38444.4453125,881.89404296875,1004.3462524414062
1.0,4.038,-38682.9921875,881.8939208984375,1004.3457641601562
1.0,4.088,-38762.46875,881.8938598632812,1004.3456420898438
1.0,4.138,-38881.68359375,881.893798828125,1004.3453979492188
1.0,4.188,-38981.08984375,881.8937377929688,1004.34521484375
1.0,4.239,-39040.63671875,881.8937377929688,1004.3450927734375
1.0,4.289,-39040.63671875,881.8937377929688,1004.3450927734375
1.0,4.339,-39040.63671875,881.8937377929688,1004.3450927734375
1.0,4.389,-39040.63671875,881.8937377929688,1004.3450927734375
1.0,4.439,-39239.32421875,881.8936157226562,1004.3446655273438
1.0,4.489,-39358.5390625,881.8935546875,1004.3444213867188
1.0,4.539,-39477.75390625,881.8934936523438,1004.3441772460938
1.0,4.589,-39517.4921875,881.8934326171875,1004.3441162109375
1.0,4.641,-39577.16015625,881.8934326171875,1004.343994140625
1.0,4.691,-39577.16015625,881.8934326171875,1004.343994140625
1.0,4.744,-39577.16015625,881.8934326171875,1004.343994140625
1.0,4.794,-39775.96875,881.893310546875,1004.3435668945312
1.0,4.876,-39875.37109375,881.8932495117188,1004.3433837890625
1.0,4.926,-39994.5859375,881.8931884765625,1004.3431396484375
1.0,4.976,-40054.1328125,881.8931884765625,1004.343017578125
1 rt t x y z
2 0.0 0.0 -7005.12646484375 881.910888671875 1004.4099731445312
3 0.0 0.05 -7057.591796875 881.910888671875 1004.4098510742188
4 0.0 0.1 -7075.056640625 881.910888671875 1004.4098510742188
5 0.0 0.173 -7110.021484375 881.9108276367188 1004.4097290039062
6 0.0 0.223 -7144.98681640625 881.9108276367188 1004.40966796875
7 0.0 0.274 -7156.6064453125 881.9108276367188 1004.40966796875
8 0.0 0.324 -7156.6064453125 881.9108276367188 1004.40966796875
9 0.0 0.374 -7156.6064453125 881.9108276367188 1004.40966796875
10 0.0 0.424 -7214.91650390625 881.9107666015625 1004.4095458984375
11 0.0 0.476 -7232.3818359375 881.9107666015625 1004.4094848632812
12 0.0 0.526 -7267.3466796875 881.9107666015625 1004.409423828125
13 0.0 0.577 -7279.00146484375 881.9107666015625 1004.409423828125
14 0.0 0.627 -7308.12158203125 881.9107666015625 1004.4093627929688
15 0.0 0.677 -7313.931640625 881.9107055664062 1004.4093627929688
16 0.0 0.727 -7313.931640625 881.9107055664062 1004.4093627929688
17 0.0 0.777 -7313.931640625 881.9107055664062 1004.4093627929688
18 0.0 0.827 -7378.0517578125 881.9107055664062 1004.4091796875
19 0.0 0.877 -7401.36181640625 881.9107055664062 1004.4091796875
20 0.0 0.927 -7447.9814453125 881.91064453125 1004.4090576171875
21 0.0 0.977 -7459.63671875 881.91064453125 1004.4090576171875
22 0.0 1.027 -7494.6015625 881.91064453125 1004.4089965820312
23 0.0 1.077 -7494.6015625 881.91064453125 1004.4089965820312
24 0.0 1.128 -7494.6015625 881.91064453125 1004.4089965820312
25 0.0 1.178 -7494.6015625 881.91064453125 1004.4089965820312
26 0.0 1.229 -7570.37646484375 881.9105834960938 1004.4088134765625
27 0.0 1.279 -7605.341796875 881.9105834960938 1004.4087524414062
28 0.0 1.329 -7628.65185546875 881.9105834960938 1004.40869140625
29 0.0 1.379 -7640.306640625 881.9105834960938 1004.40869140625
30 0.0 1.429 -7651.96142578125 881.9105834960938 1004.4086303710938
31 0.0 1.479 -7651.96142578125 881.9105834960938 1004.4086303710938
32 0.0 1.529 -7651.96142578125 881.9105834960938 1004.4086303710938
33 0.0 1.583 -7698.58154296875 881.9105224609375 1004.4085693359375
34 0.0 1.639 -7751.04638671875 881.9105224609375 1004.408447265625
35 0.0 1.689 -7780.20166015625 881.9104614257812 1004.4083862304688
36 0.0 1.739 -7809.32177734375 881.9104614257812 1004.4083251953125
37 0.0 1.789 -7809.32177734375 881.9104614257812 1004.4083251953125
38 0.0 1.839 -7809.32177734375 881.9104614257812 1004.4083251953125
39 0.0 1.892 -7809.32177734375 881.9104614257812 1004.4083251953125
40 0.0 1.942 -7873.44140625 881.9104614257812 1004.408203125
41 0.0 1.992 -7890.94140625 881.910400390625 1004.4081420898438
42 0.0 2.073 -7925.90673828125 881.910400390625 1004.4080810546875
43 0.0 2.123 -7949.181640625 881.910400390625 1004.4080810546875
44 0.0 2.173 -7949.181640625 881.910400390625 1004.4080810546875
45 0.0 2.223 -7949.181640625 881.910400390625 1004.4080810546875
46 0.0 2.273 -7949.181640625 881.910400390625 1004.4080810546875
47 0.0 2.325 -8024.95654296875 881.9103393554688 1004.4078979492188
48 0.0 2.376 -8059.92138671875 881.9103393554688 1004.4078369140625
49 0.0 2.426 -8094.88671875 881.9103393554688 1004.4077758789062
50 0.0 2.476 -8106.54150390625 881.9103393554688 1004.40771484375
51 0.0 2.526 -8124.00634765625 881.9102783203125 1004.40771484375
52 0.0 2.576 -8124.00634765625 881.9102783203125 1004.40771484375
53 0.0 2.626 -8124.00634765625 881.9102783203125 1004.40771484375
54 0.0 2.676 -8164.81640625 881.9102783203125 1004.4075927734375
55 0.0 2.727 -8199.78125 881.9102783203125 1004.4075317382812
56 0.0 2.777 -8211.4365234375 881.9102783203125 1004.4075317382812
57 0.0 2.827 -8246.4013671875 881.9102172851562 1004.407470703125
58 0.0 2.877 -8263.8662109375 881.9102172851562 1004.4074096679688
59 0.0 2.927 -8263.8662109375 881.9102172851562 1004.4074096679688
60 0.0 2.978 -8263.8662109375 881.9102172851562 1004.4074096679688
61 0.0 3.028 -8263.8662109375 881.9102172851562 1004.4074096679688
62 0.0 3.078 -8333.8310546875 881.9102172851562 1004.4072875976562
63 0.0 3.131 -8368.796875 881.91015625 1004.4072265625
64 0.0 3.181 -8380.451171875 881.91015625 1004.4071655273438
65 0.0 3.231 -8427.0712890625 881.91015625 1004.4071044921875
66 0.0 3.281 -8432.8818359375 881.91015625 1004.4070434570312
67 0.0 3.334 -8432.8818359375 881.91015625 1004.4070434570312
68 0.0 3.385 -8432.8818359375 881.91015625 1004.4070434570312
69 0.0 3.435 -8485.3818359375 881.9100952148438 1004.406982421875
70 0.0 3.485 -8502.8466796875 881.9100952148438 1004.4069213867188
71 0.0 3.535 -8549.466796875 881.9100952148438 1004.4067993164062
72 0.0 3.585 -8572.7763671875 881.9100341796875 1004.4067993164062
73 0.0 3.635 -8601.896484375 881.9100341796875 1004.40673828125
74 0.0 3.686 -8601.896484375 881.9100341796875 1004.40673828125
75 0.0 3.736 -8601.896484375 881.9100341796875 1004.40673828125
76 0.0 3.788 -8601.896484375 881.9100341796875 1004.40673828125
77 0.0 3.838 -8677.671875 881.9100341796875 1004.4065551757812
78 0.0 3.888 -8689.326171875 881.9099731445312 1004.4065551757812
79 0.0 3.938 -8735.9462890625 881.9099731445312 1004.4064331054688
80 0.0 3.988 -8747.6015625 881.9099731445312 1004.4064331054688
81 0.0 4.038 -8765.06640625 881.9099731445312 1004.4063720703125
82 0.0 4.089 -8765.06640625 881.9099731445312 1004.4063720703125
83 0.0 4.139 -8765.06640625 881.9099731445312 1004.4063720703125
84 0.0 4.189 -8817.56640625 881.909912109375 1004.4063110351562
85 0.0 4.24 -8846.6865234375 881.909912109375 1004.40625
86 0.0 4.29 -8875.841796875 881.909912109375 1004.4061889648438
87 0.0 4.34 -8910.806640625 881.9098510742188 1004.4060668945312
88 0.0 4.39 -8922.4619140625 881.9098510742188 1004.4060668945312
89 0.0 4.441 -8934.1162109375 881.9098510742188 1004.4060668945312
90 0.0 4.491 -8934.1162109375 881.9098510742188 1004.4060668945312
91 0.0 4.541 -8980.771484375 881.9098510742188 1004.4059448242188
92 0.0 4.591 -8998.236328125 881.9098510742188 1004.4059448242188
93 0.0 4.641 -9033.201171875 881.9097900390625 1004.4058227539062
94 0.0 4.691 -9044.8564453125 881.9097900390625 1004.4058227539062
95 0.0 4.741 -9073.9765625 881.9097900390625 1004.40576171875
96 0.0 4.793 -9079.7861328125 881.9097900390625 1004.40576171875
97 0.0 4.844 -9079.7861328125 881.9097900390625 1004.40576171875
98 0.0 4.894 -9079.7861328125 881.9097900390625 1004.40576171875
99 0.0 4.944 -9155.5615234375 881.9097290039062 1004.4055786132812
100 0.0 4.994 -9167.216796875 881.9097290039062 1004.4055786132812
101 0.25 0.0 -10721.111328125 881.908935546875 1004.4024047851562
102 0.25 0.056 -10788.650390625 881.9088745117188 1004.4022827148438
103 0.25 0.106 -10830.8046875 881.9088745117188 1004.4022216796875
104 0.25 0.156 -10847.6767578125 881.9088134765625 1004.4021606445312
105 0.25 0.206 -10898.29296875 881.9088134765625 1004.4020385742188
106 0.25 0.258 -10923.5751953125 881.9088134765625 1004.4020385742188
107 0.25 0.308 -10923.5751953125 881.9088134765625 1004.4020385742188
108 0.25 0.358 -10923.5751953125 881.9088134765625 1004.4020385742188
109 0.25 0.408 -10923.5751953125 881.9088134765625 1004.4020385742188
110 0.25 0.461 -11016.396484375 881.9087524414062 1004.4017944335938
111 0.25 0.511 -11075.4736328125 881.90869140625 1004.4017333984375
112 0.25 0.561 -11092.345703125 881.90869140625 1004.4016723632812
113 0.25 0.611 -11142.9619140625 881.90869140625 1004.4015502929688
114 0.25 0.663 -11159.783203125 881.90869140625 1004.4015502929688
115 0.25 0.713 -11159.783203125 881.90869140625 1004.4015502929688
116 0.25 0.763 -11159.783203125 881.90869140625 1004.4015502929688
117 0.25 0.813 -11261.06640625 881.9086303710938 1004.4013061523438
118 0.25 0.864 -11277.9384765625 881.9086303710938 1004.4013061523438
119 0.25 0.914 -11345.42578125 881.9085693359375 1004.4011840820312
120 0.25 0.964 -11345.42578125 881.9085693359375 1004.4011840820312
121 0.25 1.014 -11429.7861328125 881.9085083007812 1004.4010009765625
122 0.25 1.065 -11438.1962890625 881.9085083007812 1004.4009399414062
123 0.25 1.115 -11438.1962890625 881.9085083007812 1004.4009399414062
124 0.25 1.165 -11438.1962890625 881.9085083007812 1004.4009399414062
125 0.25 1.216 -11514.146484375 881.9085083007812 1004.4008178710938
126 0.25 1.266 -11547.8896484375 881.908447265625 1004.4007568359375
127 0.25 1.318 -11615.3779296875 881.908447265625 1004.400634765625
128 0.25 1.368 -11632.25 881.908447265625 1004.4005737304688
129 0.25 1.418 -11691.2763671875 881.9083862304688 1004.4004516601562
130 0.25 1.469 -11691.2763671875 881.9083862304688 1004.4004516601562
131 0.25 1.519 -11691.2763671875 881.9083862304688 1004.4004516601562
132 0.25 1.57 -11691.2763671875 881.9083862304688 1004.4004516601562
133 0.25 1.62 -11800.9697265625 881.9083251953125 1004.4002075195312
134 0.25 1.67 -11817.841796875 881.9083251953125 1004.4002075195312
135 0.25 1.72 -11876.9189453125 881.9082641601562 1004.4000854492188
136 0.25 1.77 -11927.53515625 881.9082641601562 1004.3999633789062
137 0.25 1.82 -11961.279296875 881.9082641601562 1004.39990234375
138 0.25 1.87 -11961.279296875 881.9082641601562 1004.39990234375
139 0.25 1.924 -11961.279296875 881.9082641601562 1004.39990234375
140 0.25 1.974 -11961.279296875 881.9082641601562 1004.39990234375
141 0.25 2.025 -12070.97265625 881.908203125 1004.399658203125
142 0.25 2.075 -12113.177734375 881.9081420898438 1004.3995971679688
143 0.25 2.125 -12163.7939453125 881.9081420898438 1004.3994750976562
144 0.25 2.175 -12205.9990234375 881.9080810546875 1004.3994140625
145 0.25 2.226 -12222.8203125 881.9080810546875 1004.3993530273438
146 0.25 2.276 -12222.8203125 881.9080810546875 1004.3993530273438
147 0.25 2.356 -12222.8203125 881.9080810546875 1004.3993530273438
148 0.25 2.408 -12307.2314453125 881.9080810546875 1004.3992309570312
149 0.25 2.458 -12340.9755859375 881.9080200195312 1004.3991088867188
150 0.25 2.508 -12416.9248046875 881.9080200195312 1004.3989868164062
151 0.25 2.558 -12433.796875 881.907958984375 1004.39892578125
152 0.25 2.608 -12476.001953125 881.907958984375 1004.3988647460938
153 0.25 2.658 -12476.001953125 881.907958984375 1004.3988647460938
154 0.25 2.708 -12476.001953125 881.907958984375 1004.3988647460938
155 0.25 2.758 -12476.001953125 881.907958984375 1004.3988647460938
156 0.25 2.809 -12577.2841796875 881.9078979492188 1004.398681640625
157 0.25 2.859 -12611.0283203125 881.9078979492188 1004.3985595703125
158 0.25 2.909 -12686.9775390625 881.9078369140625 1004.3984375
159 0.25 2.959 -12703.849609375 881.9078369140625 1004.3983764648438
160 0.25 3.01 -12737.59375 881.9078369140625 1004.3983154296875
161 0.25 3.06 -12737.59375 881.9078369140625 1004.3983154296875
162 0.25 3.113 -12737.59375 881.9078369140625 1004.3983154296875
163 0.25 3.163 -12822.0048828125 881.9077758789062 1004.3981323242188
164 0.25 3.216 -12864.1591796875 881.9077758789062 1004.3980712890625
165 0.25 3.268 -12914.775390625 881.90771484375 1004.39794921875
166 0.25 3.318 -12965.3916015625 881.90771484375 1004.3978881835938
167 0.25 3.368 -12982.2626953125 881.90771484375 1004.3978271484375
168 0.25 3.419 -12990.673828125 881.90771484375 1004.3978271484375
169 0.25 3.469 -12990.673828125 881.90771484375 1004.3978271484375
170 0.25 3.519 -12990.673828125 881.90771484375 1004.3978271484375
171 0.25 3.572 -13075.0849609375 881.9076538085938 1004.3976440429688
172 0.25 3.622 -13125.7001953125 881.9075927734375 1004.3975219726562
173 0.25 3.672 -13159.4443359375 881.9075927734375 1004.3974609375
174 0.25 3.722 -13210.060546875 881.9075927734375 1004.3973999023438
175 0.25 3.772 -13226.9326171875 881.9075927734375 1004.3973388671875
176 0.25 3.823 -13243.8046875 881.9075317382812 1004.3972778320312
177 0.25 3.873 -13243.8046875 881.9075317382812 1004.3972778320312
178 0.25 3.923 -13243.8046875 881.9075317382812 1004.3972778320312
179 0.25 3.973 -13336.6259765625 881.9075317382812 1004.3970947265625
180 0.25 4.023 -13387.2421875 881.907470703125 1004.3970336914062
181 0.25 4.073 -13404.1142578125 881.907470703125 1004.39697265625
182 0.25 4.123 -13463.19140625 881.9074096679688 1004.3968505859375
183 0.25 4.173 -13505.396484375 881.9074096679688 1004.3967895507812
184 0.25 4.223 -13513.806640625 881.9074096679688 1004.3967895507812
185 0.25 4.274 -13513.806640625 881.9074096679688 1004.3967895507812
186 0.25 4.324 -13581.345703125 881.9073486328125 1004.3966064453125
187 0.25 4.374 -13606.62890625 881.9073486328125 1004.3965454101562
188 0.25 4.456 -13657.244140625 881.9073486328125 1004.396484375
189 0.25 4.506 -13707.8603515625 881.9072875976562 1004.3963623046875
190 0.25 4.556 -13724.732421875 881.9072875976562 1004.3963623046875
191 0.25 4.609 -13750.0146484375 881.9072875976562 1004.3963012695312
192 0.25 4.659 -13750.0146484375 881.9072875976562 1004.3963012695312
193 0.25 4.709 -13750.0146484375 881.9072875976562 1004.3963012695312
194 0.25 4.761 -13834.42578125 881.9072265625 1004.3961181640625
195 0.25 4.811 -13901.9140625 881.9072265625 1004.39599609375
196 0.25 4.861 -13901.9140625 881.9072265625 1004.39599609375
197 0.25 4.911 -13969.4013671875 881.9071655273438 1004.3958129882812
198 0.25 4.962 -13986.22265625 881.9071655273438 1004.3958129882812
199 0.5 0.0 -16303.880859375 881.9058837890625 1004.39111328125
200 0.5 0.051 -16352.869140625 881.9058837890625 1004.3909912109375
201 0.5 0.101 -16352.869140625 881.9058837890625 1004.3909912109375
202 0.5 0.151 -16352.869140625 881.9058837890625 1004.3909912109375
203 0.5 0.201 -16352.869140625 881.9058837890625 1004.3909912109375
204 0.5 0.252 -16475.59765625 881.9058227539062 1004.3907470703125
205 0.5 0.302 -16500.12890625 881.9058227539062 1004.3906860351562
206 0.5 0.376 -16586.025390625 881.90576171875 1004.3905639648438
207 0.5 0.426 -16696.451171875 881.9057006835938 1004.3903198242188
208 0.5 0.477 -16708.6796875 881.9057006835938 1004.3903198242188
209 0.5 0.527 -16708.6796875 881.9057006835938 1004.3903198242188
210 0.5 0.577 -16708.6796875 881.9057006835938 1004.3903198242188
211 0.5 0.627 -16831.408203125 881.9056396484375 1004.3900146484375
212 0.5 0.678 -16831.408203125 881.9056396484375 1004.3900146484375
213 0.5 0.728 -16929.53125 881.9055786132812 1004.3898315429688
214 0.5 0.778 -16954.0625 881.9055786132812 1004.3897705078125
215 0.5 0.829 -17015.353515625 881.905517578125 1004.3896484375
216 0.5 0.879 -17027.58203125 881.905517578125 1004.3896484375
217 0.5 0.929 -17027.58203125 881.905517578125 1004.3896484375
218 0.5 0.979 -17027.58203125 881.905517578125 1004.3896484375
219 0.5 1.029 -17162.5390625 881.9054565429688 1004.3893432617188
220 0.5 1.079 -17211.6015625 881.9054565429688 1004.3892822265625
221 0.5 1.13 -17297.498046875 881.9053955078125 1004.3890991210938
222 0.5 1.18 -17346.55859375 881.9053344726562 1004.3889770507812
223 0.5 1.23 -17407.849609375 881.9053344726562 1004.3888549804688
224 0.5 1.28 -17407.849609375 881.9053344726562 1004.3888549804688
225 0.5 1.331 -17407.849609375 881.9053344726562 1004.3888549804688
226 0.5 1.381 -17407.849609375 881.9053344726562 1004.3888549804688
227 0.5 1.431 -17555.109375 881.9052124023438 1004.3885498046875
228 0.5 1.481 -17604.171875 881.9052124023438 1004.3884887695312
229 0.5 1.532 -17677.763671875 881.9051513671875 1004.3883056640625
230 0.5 1.585 -17726.826171875 881.9051513671875 1004.3882446289062
231 0.5 1.635 -17763.5859375 881.9051513671875 1004.38818359375
232 0.5 1.685 -17763.5859375 881.9051513671875 1004.38818359375
233 0.5 1.735 -17763.5859375 881.9051513671875 1004.38818359375
234 0.5 1.785 -17763.5859375 881.9051513671875 1004.38818359375
235 0.5 1.835 -17910.845703125 881.905029296875 1004.3878784179688
236 0.5 1.885 -17959.908203125 881.905029296875 1004.3877563476562
237 0.5 1.936 -18058.03125 881.9049682617188 1004.3875732421875
238 0.5 1.986 -18082.5625 881.9049682617188 1004.3875122070312
239 0.5 2.037 -18107.01953125 881.9049682617188 1004.387451171875
240 0.5 2.087 -18107.01953125 881.9049682617188 1004.387451171875
241 0.5 2.138 -18107.01953125 881.9049682617188 1004.387451171875
242 0.5 2.188 -18107.01953125 881.9049682617188 1004.387451171875
243 0.5 2.238 -18278.810546875 881.9048461914062 1004.3871459960938
244 0.5 2.288 -18352.404296875 881.90478515625 1004.386962890625
245 0.5 2.339 -18425.99609375 881.90478515625 1004.3868408203125
246 0.5 2.389 -18450.52734375 881.90478515625 1004.3867797851562
247 0.5 2.441 -18475.05859375 881.9047241210938 1004.38671875
248 0.5 2.491 -18475.05859375 881.9047241210938 1004.38671875
249 0.5 2.541 -18475.05859375 881.9047241210938 1004.38671875
250 0.5 2.591 -18610.015625 881.9046630859375 1004.386474609375
251 0.5 2.641 -18683.609375 881.9046630859375 1004.3862915039062
252 0.5 2.691 -18732.671875 881.9046020507812 1004.38623046875
253 0.5 2.741 -18781.732421875 881.9046020507812 1004.3861083984375
254 0.5 2.791 -18806.189453125 881.904541015625 1004.3860473632812
255 0.5 2.842 -18806.189453125 881.904541015625 1004.3860473632812
256 0.5 2.892 -18806.189453125 881.904541015625 1004.3860473632812
257 0.5 2.942 -18928.91796875 881.9044799804688 1004.3858032226562
258 0.5 2.994 -18965.677734375 881.9044799804688 1004.3857421875
259 0.5 3.075 -19027.04296875 881.9044799804688 1004.3856201171875
260 0.5 3.125 -19125.166015625 881.9044189453125 1004.3854370117188
261 0.5 3.175 -19149.625 881.9043579101562 1004.3853759765625
262 0.5 3.226 -19149.625 881.9043579101562 1004.3853759765625
263 0.5 3.277 -19149.625 881.9043579101562 1004.3853759765625
264 0.5 3.327 -19149.625 881.9043579101562 1004.3853759765625
265 0.5 3.38 -19272.353515625 881.904296875 1004.3851318359375
266 0.5 3.43 -19358.248046875 881.904296875 1004.3849487304688
267 0.5 3.48 -19407.310546875 881.9042358398438 1004.3848266601562
268 0.5 3.53 -19480.90234375 881.9042358398438 1004.3847045898438
269 0.5 3.58 -19505.361328125 881.9041748046875 1004.3846435546875
270 0.5 3.63 -19505.361328125 881.9041748046875 1004.3846435546875
271 0.5 3.68 -19505.361328125 881.9041748046875 1004.3846435546875
272 0.5 3.731 -19640.390625 881.9041137695312 1004.3843994140625
273 0.5 3.783 -19677.150390625 881.9041137695312 1004.38427734375
274 0.5 3.833 -19775.275390625 881.904052734375 1004.3840942382812
275 0.5 3.883 -19775.275390625 881.904052734375 1004.3840942382812
276 0.5 3.933 -19848.8671875 881.9039916992188 1004.3839721679688
277 0.5 3.983 -19861.09765625 881.9039916992188 1004.3839111328125
278 0.5 4.033 -19861.09765625 881.9039916992188 1004.3839111328125
279 0.5 4.084 -19861.09765625 881.9039916992188 1004.3839111328125
280 0.5 4.134 -19996.0546875 881.9039306640625 1004.3836669921875
281 0.5 4.184 -20020.5859375 881.9039306640625 1004.3836059570312
282 0.5 4.242 -20118.708984375 881.9038696289062 1004.3834228515625
283 0.5 4.292 -20143.240234375 881.9038696289062 1004.3833618164062
284 0.5 4.342 -20229.0625 881.90380859375 1004.3831787109375
285 0.5 4.392 -20229.0625 881.90380859375 1004.3831787109375
286 0.5 4.442 -20229.0625 881.90380859375 1004.3831787109375
287 0.5 4.496 -20229.0625 881.90380859375 1004.3831787109375
288 0.5 4.546 -20351.791015625 881.9037475585938 1004.3829345703125
289 0.5 4.596 -20400.8515625 881.9036865234375 1004.3828125
290 0.5 4.675 -20474.4453125 881.9036865234375 1004.3826904296875
291 0.5 4.725 -20572.5703125 881.9036254882812 1004.3825073242188
292 0.5 4.778 -20584.798828125 881.9036254882812 1004.3824462890625
293 0.5 4.828 -20584.798828125 881.9036254882812 1004.3824462890625
294 0.5 4.878 -20584.798828125 881.9036254882812 1004.3824462890625
295 0.5 4.929 -20719.755859375 881.903564453125 1004.3822021484375
296 0.5 4.98 -20744.287109375 881.9035034179688 1004.3821411132812
297 0.75 0.0 -23732.6171875 881.9019165039062 1004.3760986328125
298 0.75 0.05 -23732.6171875 881.9019165039062 1004.3760986328125
299 0.75 0.1 -23732.6171875 881.9019165039062 1004.3760986328125
300 0.75 0.15 -23732.6171875 881.9019165039062 1004.3760986328125
301 0.75 0.201 -23957.267578125 881.9017944335938 1004.3756103515625
302 0.75 0.251 -24021.42578125 881.9017944335938 1004.37548828125
303 0.75 0.301 -24101.669921875 881.9017333984375 1004.3753051757812
304 0.75 0.365 -24165.828125 881.9016723632812 1004.3751831054688
305 0.75 0.415 -24213.8984375 881.9016723632812 1004.3751220703125
306 0.75 0.465 -24213.8984375 881.9016723632812 1004.3751220703125
307 0.75 0.516 -24213.8984375 881.9016723632812 1004.3751220703125
308 0.75 0.566 -24213.8984375 881.9016723632812 1004.3751220703125
309 0.75 0.616 -24406.46875 881.9015502929688 1004.3746948242188
310 0.75 0.666 -24438.548828125 881.9015502929688 1004.3746337890625
311 0.75 0.717 -24582.951171875 881.9014892578125 1004.3743286132812
312 0.75 0.767 -24615.03125 881.9014282226562 1004.374267578125
313 0.75 0.817 -24727.35546875 881.9013671875 1004.3740844726562
314 0.75 0.868 -24727.35546875 881.9013671875 1004.3740844726562
315 0.75 0.918 -24727.35546875 881.9013671875 1004.3740844726562
316 0.75 0.968 -24727.35546875 881.9013671875 1004.3740844726562
317 0.75 1.021 -24887.84765625 881.9013061523438 1004.3737182617188
318 0.75 1.071 -24919.92578125 881.9013061523438 1004.3736572265625
319 0.75 1.121 -25032.25 881.9012451171875 1004.3734130859375
320 0.75 1.171 -25064.330078125 881.9011840820312 1004.3733520507812
321 0.75 1.221 -25144.478515625 881.9011840820312 1004.3732299804688
322 0.75 1.274 -25160.470703125 881.9011840820312 1004.3731689453125
323 0.75 1.324 -25160.470703125 881.9011840820312 1004.3731689453125
324 0.75 1.374 -25160.470703125 881.9011840820312 1004.3731689453125
325 0.75 1.424 -25304.970703125 881.9010620117188 1004.3728637695312
326 0.75 1.476 -25353.041015625 881.9010620117188 1004.372802734375
327 0.75 1.565 -25449.27734375 881.9010009765625 1004.3726196289062
328 0.75 1.615 -25609.671875 881.9009399414062 1004.3722534179688
329 0.75 1.665 -25657.7421875 881.90087890625 1004.3721923828125
330 0.75 1.715 -25657.7421875 881.90087890625 1004.3721923828125
331 0.75 1.765 -25657.7421875 881.90087890625 1004.3721923828125
332 0.75 1.816 -25657.7421875 881.90087890625 1004.3721923828125
333 0.75 1.866 -25786.154296875 881.9008178710938 1004.3718872070312
334 0.75 1.916 -25882.392578125 881.9007568359375 1004.3717041015625
335 0.75 1.966 -25914.470703125 881.9007568359375 1004.3716430664062
336 0.75 2.016 -26010.708984375 881.9006958007812 1004.3714599609375
337 0.75 2.067 -26058.779296875 881.9006958007812 1004.371337890625
338 0.75 2.117 -26058.779296875 881.9006958007812 1004.371337890625
339 0.75 2.168 -26058.779296875 881.9006958007812 1004.371337890625
340 0.75 2.218 -26058.779296875 881.9006958007812 1004.371337890625
341 0.75 2.27 -26203.181640625 881.9005737304688 1004.37109375
342 0.75 2.32 -26299.419921875 881.9005737304688 1004.370849609375
343 0.75 2.37 -26299.419921875 881.9005737304688 1004.370849609375
344 0.75 2.42 -26459.814453125 881.9004516601562 1004.3705444335938
345 0.75 2.473 -26475.8046875 881.9004516601562 1004.3704833984375
346 0.75 2.523 -26475.8046875 881.9004516601562 1004.3704833984375
347 0.75 2.573 -26475.8046875 881.9004516601562 1004.3704833984375
348 0.75 2.623 -26604.21875 881.900390625 1004.3702392578125
349 0.75 2.677 -26620.208984375 881.900390625 1004.3702392578125
350 0.75 2.727 -26732.533203125 881.9003295898438 1004.3699951171875
351 0.75 2.777 -26764.61328125 881.9003295898438 1004.3699340820312
352 0.75 2.827 -26892.9296875 881.9002075195312 1004.3696899414062
353 0.75 2.88 -26908.919921875 881.9002075195312 1004.36962890625
354 0.75 2.935 -26908.919921875 881.9002075195312 1004.36962890625
355 0.75 3.015 -26908.919921875 881.9002075195312 1004.36962890625
356 0.75 3.065 -27053.32421875 881.900146484375 1004.3693237304688
357 0.75 3.117 -27165.6484375 881.9000854492188 1004.369140625
358 0.75 3.167 -27197.7265625 881.9000854492188 1004.3690185546875
359 0.75 3.217 -27342.130859375 881.8999633789062 1004.3687744140625
360 0.75 3.27 -27358.123046875 881.8999633789062 1004.3687133789062
361 0.75 3.32 -27358.123046875 881.8999633789062 1004.3687133789062
362 0.75 3.37 -27358.123046875 881.8999633789062 1004.3687133789062
363 0.75 3.42 -27502.623046875 881.89990234375 1004.368408203125
364 0.75 3.473 -27518.61328125 881.89990234375 1004.368408203125
365 0.75 3.523 -27630.9375 881.8998413085938 1004.3681640625
366 0.75 3.573 -27663.017578125 881.8998413085938 1004.3681030273438
367 0.75 3.623 -27759.25390625 881.8997802734375 1004.367919921875
368 0.75 3.674 -27775.24609375 881.8997802734375 1004.3678588867188
369 0.75 3.724 -27775.24609375 881.8997802734375 1004.3678588867188
370 0.75 3.774 -27775.24609375 881.8997802734375 1004.3678588867188
371 0.75 3.824 -27935.736328125 881.899658203125 1004.3675537109375
372 0.75 3.876 -27951.728515625 881.899658203125 1004.3674926757812
373 0.75 3.926 -28080.044921875 881.8995971679688 1004.3672485351562
374 0.75 3.978 -28144.203125 881.8995361328125 1004.3671264648438
375 0.75 4.028 -28256.52734375 881.8994750976562 1004.3668823242188
376 0.75 4.078 -28272.517578125 881.8994750976562 1004.3668823242188
377 0.75 4.165 -28272.517578125 881.8994750976562 1004.3668823242188
378 0.75 4.215 -28272.517578125 881.8994750976562 1004.3668823242188
379 0.75 4.265 -28433.009765625 881.8994140625 1004.3665771484375
380 0.75 4.321 -28545.333984375 881.8993530273438 1004.3663330078125
381 0.75 4.371 -28577.4140625 881.8993530273438 1004.3662719726562
382 0.75 4.421 -28721.81640625 881.8992309570312 1004.365966796875
383 0.75 4.473 -28737.80859375 881.8992309570312 1004.365966796875
384 0.75 4.523 -28737.80859375 881.8992309570312 1004.365966796875
385 0.75 4.573 -28737.80859375 881.8992309570312 1004.365966796875
386 0.75 4.623 -28737.80859375 881.8992309570312 1004.365966796875
387 0.75 4.673 -28898.298828125 881.899169921875 1004.3656005859375
388 0.75 4.723 -29010.625 881.8991088867188 1004.3653564453125
389 0.75 4.773 -29042.703125 881.8991088867188 1004.3652954101562
390 0.75 4.824 -29171.01953125 881.8989868164062 1004.3650512695312
391 0.75 4.874 -29187.009765625 881.8989868164062 1004.3650512695312
392 0.75 4.924 -29187.009765625 881.8989868164062 1004.3650512695312
393 0.75 4.974 -29187.009765625 881.8989868164062 1004.3650512695312
394 1.0 0.0 -33019.671875 881.89697265625 1004.3572998046875
395 1.0 0.05 -33019.671875 881.89697265625 1004.3572998046875
396 1.0 0.1 -33019.671875 881.89697265625 1004.3572998046875
397 1.0 0.152 -33238.29296875 881.8968505859375 1004.3568115234375
398 1.0 0.202 -33278.03125 881.8967895507812 1004.3567504882812
399 1.0 0.252 -33417.171875 881.896728515625 1004.3564453125
400 1.0 0.302 -33516.578125 881.8966674804688 1004.3562622070312
401 1.0 0.352 -33615.86328125 881.8966064453125 1004.3560791015625
402 1.0 0.402 -33615.86328125 881.8966064453125 1004.3560791015625
403 1.0 0.476 -33615.86328125 881.8966064453125 1004.3560791015625
404 1.0 0.526 -33794.7421875 881.8965454101562 1004.355712890625
405 1.0 0.579 -33834.48046875 881.896484375 1004.3555908203125
406 1.0 0.629 -34013.36328125 881.8964233398438 1004.355224609375
407 1.0 0.679 -34053.09765625 881.8963623046875 1004.3551635742188
408 1.0 0.729 -34152.3828125 881.8963623046875 1004.35498046875
409 1.0 0.779 -34152.3828125 881.8963623046875 1004.35498046875
410 1.0 0.83 -34152.3828125 881.8963623046875 1004.35498046875
411 1.0 0.88 -34152.3828125 881.8963623046875 1004.35498046875
412 1.0 0.93 -34311.3359375 881.896240234375 1004.3546752929688
413 1.0 0.98 -34351.07421875 881.896240234375 1004.3545532226562
414 1.0 1.03 -34529.95703125 881.8961181640625 1004.3541870117188
415 1.0 1.08 -34569.6953125 881.8961181640625 1004.3541259765625
416 1.0 1.131 -34688.90625 881.8960571289062 1004.3538818359375
417 1.0 1.181 -34688.90625 881.8960571289062 1004.3538818359375
418 1.0 1.231 -34688.90625 881.8960571289062 1004.3538818359375
419 1.0 1.281 -34688.90625 881.8960571289062 1004.3538818359375
420 1.0 1.331 -34887.71484375 881.8959350585938 1004.3534545898438
421 1.0 1.381 -34967.19140625 881.8958740234375 1004.3533325195312
422 1.0 1.431 -35106.3359375 881.8958129882812 1004.35302734375
423 1.0 1.482 -35185.8125 881.8958129882812 1004.3529052734375
424 1.0 1.533 -35225.55078125 881.895751953125 1004.352783203125
425 1.0 1.583 -35225.55078125 881.895751953125 1004.352783203125
426 1.0 1.633 -35225.55078125 881.895751953125 1004.352783203125
427 1.0 1.684 -35404.55078125 881.8956909179688 1004.3524169921875
428 1.0 1.734 -35464.09765625 881.8956298828125 1004.352294921875
429 1.0 1.784 -35583.3125 881.8955688476562 1004.35205078125
430 1.0 1.834 -35702.5234375 881.8955078125 1004.351806640625
431 1.0 1.884 -35742.26171875 881.8955078125 1004.3517456054688
432 1.0 1.936 -35782.0 881.8954467773438 1004.3516845703125
433 1.0 1.989 -35782.0 881.8954467773438 1004.3516845703125
434 1.0 2.039 -35782.0 881.8954467773438 1004.3516845703125
435 1.0 2.09 -35980.80859375 881.8953857421875 1004.3512573242188
436 1.0 2.178 -36060.28515625 881.8953247070312 1004.3511352539062
437 1.0 2.228 -36219.23828125 881.8952026367188 1004.3507690429688
438 1.0 2.278 -36278.78515625 881.8952026367188 1004.3506469726562
439 1.0 2.328 -36278.78515625 881.8952026367188 1004.3506469726562
440 1.0 2.378 -36278.78515625 881.8952026367188 1004.3506469726562
441 1.0 2.428 -36278.78515625 881.8952026367188 1004.3506469726562
442 1.0 2.479 -36457.6640625 881.8950805664062 1004.3502807617188
443 1.0 2.529 -36576.87890625 881.89501953125 1004.3500366210938
444 1.0 2.579 -36616.6171875 881.89501953125 1004.3499755859375
445 1.0 2.629 -36775.5703125 881.8949584960938 1004.3496704101562
446 1.0 2.681 -36795.37890625 881.8948974609375 1004.349609375
447 1.0 2.731 -36795.37890625 881.8948974609375 1004.349609375
448 1.0 2.782 -36795.37890625 881.8948974609375 1004.349609375
449 1.0 2.832 -36994.1875 881.8948364257812 1004.3491821289062
450 1.0 2.882 -37013.99609375 881.894775390625 1004.3491821289062
451 1.0 2.932 -37172.94921875 881.8947143554688 1004.348876953125
452 1.0 2.982 -37212.6875 881.8947143554688 1004.3487548828125
453 1.0 3.033 -37311.97265625 881.8946533203125 1004.3485717773438
454 1.0 3.083 -37331.78125 881.8946533203125 1004.3485107421875
455 1.0 3.133 -37331.78125 881.8946533203125 1004.3485107421875
456 1.0 3.183 -37331.78125 881.8946533203125 1004.3485107421875
457 1.0 3.233 -37550.40234375 881.89453125 1004.3480834960938
458 1.0 3.283 -37590.140625 881.8944702148438 1004.3480224609375
459 1.0 3.335 -37709.3515625 881.8944091796875 1004.3477783203125
460 1.0 3.385 -37788.828125 881.8944091796875 1004.3475952148438
461 1.0 3.435 -37907.92578125 881.8943481445312 1004.3473510742188
462 1.0 3.485 -37907.92578125 881.8943481445312 1004.3473510742188
463 1.0 3.536 -37907.92578125 881.8943481445312 1004.3473510742188
464 1.0 3.587 -37907.92578125 881.8943481445312 1004.3473510742188
465 1.0 3.637 -38126.54296875 881.8942260742188 1004.346923828125
466 1.0 3.687 -38206.01953125 881.8941650390625 1004.3467407226562
467 1.0 3.737 -38384.8984375 881.89404296875 1004.3463745117188
468 1.0 3.787 -38424.63671875 881.89404296875 1004.3463134765625
469 1.0 3.838 -38444.4453125 881.89404296875 1004.3462524414062
470 1.0 3.888 -38444.4453125 881.89404296875 1004.3462524414062
471 1.0 3.938 -38444.4453125 881.89404296875 1004.3462524414062
472 1.0 3.988 -38444.4453125 881.89404296875 1004.3462524414062
473 1.0 4.038 -38682.9921875 881.8939208984375 1004.3457641601562
474 1.0 4.088 -38762.46875 881.8938598632812 1004.3456420898438
475 1.0 4.138 -38881.68359375 881.893798828125 1004.3453979492188
476 1.0 4.188 -38981.08984375 881.8937377929688 1004.34521484375
477 1.0 4.239 -39040.63671875 881.8937377929688 1004.3450927734375
478 1.0 4.289 -39040.63671875 881.8937377929688 1004.3450927734375
479 1.0 4.339 -39040.63671875 881.8937377929688 1004.3450927734375
480 1.0 4.389 -39040.63671875 881.8937377929688 1004.3450927734375
481 1.0 4.439 -39239.32421875 881.8936157226562 1004.3446655273438
482 1.0 4.489 -39358.5390625 881.8935546875 1004.3444213867188
483 1.0 4.539 -39477.75390625 881.8934936523438 1004.3441772460938
484 1.0 4.589 -39517.4921875 881.8934326171875 1004.3441162109375
485 1.0 4.641 -39577.16015625 881.8934326171875 1004.343994140625
486 1.0 4.691 -39577.16015625 881.8934326171875 1004.343994140625
487 1.0 4.744 -39577.16015625 881.8934326171875 1004.343994140625
488 1.0 4.794 -39775.96875 881.893310546875 1004.3435668945312
489 1.0 4.876 -39875.37109375 881.8932495117188 1004.3433837890625
490 1.0 4.926 -39994.5859375 881.8931884765625 1004.3431396484375
491 1.0 4.976 -40054.1328125 881.8931884765625 1004.343017578125

View File

@@ -0,0 +1,473 @@
phase,t,fx,fy,fz
slow_down,0.0,-0.9999999999979217,-5.364418989006872e-07,-1.9669536293025197e-06
slow_down,0.055,-0.9999931441638505,-0.003270491953406279,0.0017365217186252632
slow_down,0.106,-0.9998075678152163,-0.01732181066707776,0.00920772581236021
slow_down,0.156,-0.9984570236826587,-0.04903096590809946,0.026067915929080705
slow_down,0.206,-0.9959234059606977,-0.07964543509725727,0.04234588678740652
slow_down,0.256,-0.9949974062198822,-0.0882080473352674,0.046898848610662965
slow_down,0.308,-0.9949974062198822,-0.0882080473352674,0.046898848610662965
slow_down,0.358,-0.9949974062198822,-0.0882080473352674,0.046898848610662965
slow_down,0.408,-0.9742287842225655,-0.19916037362801364,0.10589344440791315
slow_down,0.48,-0.9465655723613469,-0.2847614479418032,0.15140850367903233
slow_down,0.53,-0.8914624347306995,-0.4000593644081642,0.2127139685430863
slow_down,0.58,-0.8716372552912262,-0.4327785818328047,0.23011126503316684
slow_down,0.63,-0.8154459106136834,-0.5110798322402205,0.27174504952386647
slow_down,0.68,-0.8154459106136834,-0.5110798322402205,0.27174504952386647
slow_down,0.73,-0.8154459106136834,-0.5110798322402205,0.27174504952386647
slow_down,0.782,-0.8154459106136834,-0.5110798322402205,0.27174504952386647
slow_down,0.832,-0.6283422527343198,-0.6868777132566759,0.3652191403254217
slow_down,0.882,-0.5946716694847226,-0.7098621875663405,0.3774404326192183
slow_down,0.932,-0.4876749892181813,-0.7708354120554387,0.40986079638380735
slow_down,0.982,-0.41202774678544607,-0.8045162551187721,0.427769483634089
slow_down,1.034,-0.33356518582907857,-0.8323782939339731,0.44258405144150914
slow_down,1.084,-0.33356518582907857,-0.8323782939339731,0.44258405144150914
slow_down,1.134,-0.33356518582907857,-0.8323782939339731,0.44258405144150914
slow_down,1.184,-0.33356518582907857,-0.8323782939339731,0.44258405144150914
slow_down,1.234,-0.12829325207912554,-0.875650566375165,0.4655930917419358
slow_down,1.284,0.01999288837244423,-0.8827703771186131,0.4693791065827161
slow_down,1.334,0.14647633503077626,-0.8734233776363055,0.46440961087636784
slow_down,1.384,0.2294525395929343,-0.8593894358220113,0.4569478413034447
slow_down,1.437,0.24987913985400062,-0.8549368999870867,0.454580369688678
slow_down,1.487,0.24987913985400062,-0.8549368999870867,0.454580369688678
slow_down,1.537,0.24987913985400062,-0.8549368999870867,0.454580369688678
slow_down,1.587,0.46631421415396884,-0.7810712750954569,0.41530557051251255
slow_down,1.637,0.5748418033213702,-0.7224835385509736,0.38415418477103586
slow_down,1.687,0.6089893568992764,-0.700333722219096,0.3723770142022088
slow_down,1.737,0.704521028047038,-0.6266117341975116,0.33317841407499954
slow_down,1.788,0.7193167990693469,-0.6133666704535744,0.3261359688125875
slow_down,1.838,0.7193167990693469,-0.6133666704535744,0.3261359688125875
slow_down,1.89,0.7193167990693469,-0.6133666704535744,0.3261359688125875
slow_down,1.94,0.849066896281655,-0.46644693570280316,0.2480174627160401
slow_down,1.99,0.8810436144109307,-0.41766387138482547,0.222078904999019
slow_down,2.04,0.9484328657603022,-0.2798737472266781,0.1488145986084635
slow_down,2.09,0.9610413097510078,-0.24404963350980377,0.12976662643298606
slow_down,2.141,0.9939216935112383,-0.09720198191703029,0.051685993065371263
slow_down,2.191,0.9976931470309339,-0.05993776893335393,0.031872373975016126
slow_down,2.241,0.9976931470309339,-0.05993776893335393,0.031872373975016126
slow_down,2.292,0.9976931470309339,-0.05993776893335393,0.031872373975016126
slow_down,2.342,0.9896563458191195,0.12666726325652128,-0.06734776610289538
slow_down,2.392,0.9688328898337262,0.21872041518359675,-0.11629364367129405
slow_down,2.443,0.9442856108918024,0.29060279698667507,-0.1545143988313609
slow_down,2.493,0.8947993986761507,0.3942088393731278,-0.20960302261391808
slow_down,2.543,0.8309037105646212,0.49128695070578754,-0.26122051189780854
slow_down,2.593,0.8065858741842986,0.5219257641234278,-0.2775116651791901
slow_down,2.643,0.7536882578227702,0.5803018854525123,-0.308551019703933
slow_down,2.693,0.7536882578227702,0.5803018854525123,-0.308551019703933
slow_down,2.743,0.7536882578227702,0.5803018854525123,-0.308551019703933
slow_down,2.793,0.7536882578227702,0.5803018854525123,-0.308551019703933
slow_down,2.844,0.5464292801028885,0.7394732111173732,-0.3931849588755906
slow_down,2.894,0.4542920662458938,0.7865761484815041,-0.4182304163807783
slow_down,2.944,0.33724237713970884,0.8312222802162891,-0.4419695690126091
slow_down,2.995,0.2969454116172929,0.8431213928515923,-0.4482964860841846
slow_down,3.045,0.19416339979478872,0.8661439018126901,-0.46053807175174793
slow_down,3.095,0.19416339979478872,0.8661439018126901,-0.46053807175174793
slow_down,3.145,0.19416339979478872,0.8661439018126901,-0.46053807175174793
slow_down,3.195,0.19416339979478872,0.8661439018126901,-0.46053807175174793
slow_down,3.245,-0.08056448227304423,0.8800766715066983,-0.4679470231401919
slow_down,3.295,-0.20674220671814517,0.8638708932840495,-0.4593307519619497
slow_down,3.345,-0.36917998882389613,0.8205732127784867,-0.4363092232836481
slow_down,3.395,-0.40826537853398315,0.8060092833540977,-0.4285655327222631
slow_down,3.446,-0.4274712950772437,0.7982089720099239,-0.4244181062205577
slow_down,3.496,-0.4274712950772437,0.7982089720099239,-0.4244181062205577
slow_down,3.546,-0.4274712950772437,0.7982089720099239,-0.4244181062205577
slow_down,3.596,-0.6082231710880547,0.7008524983325218,-0.3726531225317367
slow_down,3.647,-0.6890657017287396,0.6398696963671466,-0.34022820337546267
slow_down,3.698,-0.762143003366288,0.5716265197273306,-0.3039426991461283
slow_down,3.748,-0.8382680494161782,0.4814331278329663,-0.2559859776490942
slow_down,3.798,-0.8713041042377916,0.43329936687430565,-0.23039274425360168
slow_down,3.849,-0.8913381334740916,0.4002732381357301,-0.21283248494358056
slow_down,3.899,-0.8913381334740916,0.4002732381357301,-0.21283248494358056
slow_down,3.954,-0.8913381334740916,0.4002732381357301,-0.21283248494358056
slow_down,4.004,-0.9668278549473198,0.2255289063838423,-0.11991918646852343
slow_down,4.054,-0.988482045003392,0.1336223546024849,-0.07105148173261426
slow_down,4.104,-0.9989645669952419,0.04016845004198468,-0.021360934184474142
slow_down,4.154,-0.9966424267396048,-0.0722944195265059,0.038436832958986006
slow_down,4.204,-0.9861088546477905,-0.1466589830214944,0.07797736520506265
slow_down,4.254,-0.9823755362869574,-0.16503976362875877,0.08775068162855647
slow_down,4.304,-0.9823755362869574,-0.16503976362875877,0.08775068162855647
slow_down,4.354,-0.9823755362869574,-0.16503976362875877,0.08775068162855647
slow_down,4.405,-0.9209647726441181,-0.34403770228142444,0.18292606964969713
slow_down,4.455,-0.8743898972057189,-0.42842805892694735,0.22779751093605147
slow_down,4.505,-0.8299912670076615,-0.4924878804154499,0.26185909251907646
slow_down,4.555,-0.7523228900523915,-0.5816815188929995,0.3092844640158157
slow_down,4.605,-0.6625352693826098,-0.6613550972756903,0.3516481936987236
slow_down,4.659,-0.6302746771466385,-0.6854961772366975,0.36448432386259716
slow_down,4.709,-0.6302746771466385,-0.6854961772366975,0.36448432386259716
slow_down,4.78,-0.6302746771466385,-0.6854961772366975,0.36448432386259716
slow_down,4.831,-0.4525978574008272,-0.7873373046911097,0.4186348625209313
slow_down,4.881,-0.41426647045914855,-0.8036195683143964,0.4272925003735763
slow_down,4.931,-0.274715147969851,-0.8489764429252736,0.45140955554114326
slow_down,4.981,-0.23364090031412207,-0.8585099251579216,0.4564785187779883
slow_down,5.031,-0.04480010659454584,-0.8820604850600307,0.4690013338411531
slow_down,5.083,-0.023683103154920795,-0.8826993337726754,0.46934102397108685
slow_down,5.133,-0.023683103154920795,-0.8826993337726754,0.46934102397108685
slow_down,5.183,-0.023683103154920795,-0.8826993337726754,0.46934102397108685
slow_down,5.233,0.1453592269195889,-0.8735689453585949,0.46448680589916846
slow_down,5.286,0.22874062128632777,-0.8595374327749778,0.4570263994914793
slow_down,5.336,0.35043482719640695,-0.8269562640048762,0.43970304673827526
slow_down,5.386,0.4284669431857837,-0.7977927831777877,0.42419659794306436
slow_down,5.437,0.521489921000824,-0.7533803887235785,0.40058239125211675
slow_down,5.488,0.521489921000824,-0.7533803887235785,0.40058239125211675
slow_down,5.538,0.521489921000824,-0.7533803887235785,0.40058239125211675
slow_down,5.588,0.521489921000824,-0.7533803887235785,0.40058239125211675
slow_down,5.64,0.7340500600490995,-0.5996042690723751,0.3188184904488701
slow_down,5.69,0.7890549608342304,-0.5424133153670134,0.28840954230998667
slow_down,5.74,0.8607130204977756,-0.4494988131338322,0.23900609476930043
slow_down,5.79,0.8815363856269739,-0.41685239315276573,0.2216476553869751
slow_down,5.84,0.918368956231027,-0.34940329267058484,0.185784281633532
slow_down,5.89,0.918368956231027,-0.34940329267058484,0.185784281633532
slow_down,5.941,0.918368956231027,-0.34940329267058484,0.185784281633532
slow_down,5.991,0.918368956231027,-0.34940329267058484,0.185784281633532
fast_down,0.0,0.9443584250101847,0.2904182906726782,-0.15441626065619846
fast_down,0.051,0.9436765232896925,0.2921411966275288,-0.15533235537039236
fast_down,0.101,0.9413498555259846,0.2979356698970741,-0.15841333941366673
fast_down,0.151,0.9359648416782657,0.3108808857007239,-0.16529637034161546
fast_down,0.201,0.9359648416782657,0.3108808857007239,-0.16529637034161546
fast_down,0.251,0.9359648416782657,0.3108808857007239,-0.16529637034161546
fast_down,0.302,0.9359648416782657,0.3108808857007239,-0.16529637034161546
fast_down,0.352,0.9069682473230593,0.37189736355510283,-0.19773959979857733
fast_down,0.402,0.8846064485621233,0.41175300754402716,-0.21893124934726846
fast_down,0.452,0.8540047786366772,0.45936747444995185,-0.24424856495626104
fast_down,0.502,0.8282129470457974,0.49481636271239404,-0.2630970952667319
fast_down,0.553,0.7845202085163289,0.5475191291668909,-0.2911199849303122
fast_down,0.605,0.7845202085163289,0.5475191291668909,-0.2911199849303122
fast_down,0.655,0.7845202085163289,0.5475191291668909,-0.2911199849303122
fast_down,0.705,0.7845202085163289,0.5475191291668909,-0.2911199849303122
fast_down,0.755,0.6764926071616988,0.6502464180323504,-0.34574173640401795
fast_down,0.805,0.658050205681294,0.6648368510249885,-0.3534994884324219
fast_down,0.855,0.6002218773366298,0.7062112257134413,-0.37549887169312585
fast_down,0.905,0.549340559411765,0.7377897883828349,-0.3922896607650788
fast_down,0.955,0.49584529498589064,0.766761273134124,-0.407694240163008
fast_down,1.005,0.48512337186675963,0.7720896571445868,-0.410527557417258
fast_down,1.056,0.48512337186675963,0.7720896571445868,-0.410527557417258
fast_down,1.106,0.48512337186675963,0.7720896571445868,-0.410527557417258
fast_down,1.159,0.3622432608277545,0.8229807007440995,-0.4375872326606736
fast_down,1.209,0.32689929716992755,0.8344373883855656,-0.4436790443260581
fast_down,1.259,0.25427817274032954,0.853925751514516,-0.45404121153063653
fast_down,1.309,0.2298587258053575,0.8593053722677841,-0.456901787436712
fast_down,1.359,0.16760580400920777,0.8704570196341962,-0.462831363924248
fast_down,1.409,0.16760580400920777,0.8704570196341962,-0.462831363924248
fast_down,1.46,0.16760580400920777,0.8704570196341962,-0.462831363924248
fast_down,1.51,0.16760580400920777,0.8704570196341962,-0.462831363924248
fast_down,1.56,0.002540052170349648,0.8829440689248292,-0.46947131891675575
fast_down,1.612,-0.060902995462806364,0.8813078425991426,-0.4686014422906764
fast_down,1.662,-0.13719170887921703,0.8745981313071235,-0.4650339167511203
fast_down,1.712,-0.17489675318047473,0.8693377382286037,-0.4622369766889098
fast_down,1.763,-0.20036620128936147,0.8650415136381839,-0.45995278568939074
fast_down,1.813,-0.20036620128936147,0.8650415136381839,-0.45995278568939074
fast_down,1.863,-0.20036620128936147,0.8650415136381839,-0.45995278568939074
fast_down,1.913,-0.3251335273823679,0.8349744124881198,-0.4439661246784693
fast_down,1.964,-0.3973065881096412,0.8102676243119484,-0.4308292608871257
fast_down,2.014,-0.4206417783991093,0.8010327730400488,-0.4259189955625415
fast_down,2.064,-0.4777331010732428,0.775672931494927,-0.412434949398095
fast_down,2.114,-0.488795575431501,0.7702810463478054,-0.4095680591500243
fast_down,2.2,-0.488795575431501,0.7702810463478054,-0.4095680591500243
fast_down,2.25,-0.5739522440973305,0.723034797529328,-0.3844470094269976
fast_down,2.301,-0.5844536749020949,0.7164465126356567,-0.3809439544416504
fast_down,2.351,-0.6655292434246848,0.6590060504026063,-0.35040241391766147
fast_down,2.401,-0.6844791420847829,0.6436963242533531,-0.3422621016028532
fast_down,2.451,-0.7643784717763241,0.5692950061586564,-0.30270240806393794
fast_down,2.502,-0.7725813754143398,0.560596161839983,-0.2980771069592003
fast_down,2.552,-0.7725813754143398,0.560596161839983,-0.2980771069592003
fast_down,2.602,-0.7725813754143398,0.560596161839983,-0.2980771069592003
fast_down,2.654,-0.8262843180314257,0.4973219093770416,-0.264433629156572
fast_down,2.704,-0.8262843180314257,0.4973219093770416,-0.264433629156572
fast_down,2.757,-0.8746773850824483,0.4279683944410753,-0.22755774077112537
fast_down,2.807,-0.8984966762022762,0.38759540618962496,-0.20609105743375078
fast_down,2.857,-0.9198514942946016,0.3463497804526146,-0.18416041383645462
fast_down,2.907,-0.9198514942946016,0.3463497804526146,-0.18416041383645462
fast_down,2.959,-0.9198514942946016,0.3463497804526146,-0.18416041383645462
fast_down,3.009,-0.9198514942946016,0.3463497804526146,-0.18416041383645462
fast_down,3.059,-0.965513097061632,0.229878182640904,-0.12223125847413475
fast_down,3.109,-0.9807575239828921,0.17237651768286696,-0.09165705266085657
fast_down,3.159,-0.9929977466389756,0.10430437127883818,-0.055462359326332346
fast_down,3.209,-0.9977780037787286,0.05882634956765883,-0.03128123673832199
fast_down,3.259,-0.9998855681302515,0.013355956398558844,-0.007104158889265936
fast_down,3.31,-0.9998855681302515,0.013355956398558844,-0.007104158889265936
fast_down,3.36,-0.9998855681302515,0.013355956398558844,-0.007104158889265936
fast_down,3.41,-0.9998855681302515,0.013355956398558844,-0.007104158889265936
fast_down,3.46,-0.9864097173511808,-0.14507296850283008,0.07713432001995296
fast_down,3.51,-0.9816537064216652,-0.1683547235000568,0.0895136176446171
fast_down,3.562,-0.9637402505323968,-0.23560849343709017,0.12527317080707187
fast_down,3.612,-0.9564950177231987,-0.2575996165326645,0.13696612220882184
fast_down,3.662,-0.9307476539483766,-0.3228612242140167,0.1716666379021257
fast_down,3.712,-0.9307476539483766,-0.3228612242140167,0.1716666379021257
fast_down,3.763,-0.9307476539483766,-0.3228612242140167,0.1716666379021257
fast_down,3.813,-0.9307476539483766,-0.3228612242140167,0.1716666379021257
fast_down,3.865,-0.8688054358698426,-0.4371952554269202,0.23245950880788432
fast_down,3.915,-0.855129825769737,-0.45773293913947277,0.2433794106036063
fast_down,3.965,-0.7963049513123122,-0.5340913405869819,0.28398039443858913
fast_down,4.015,-0.7803317574044676,-0.5521655692420058,0.2935907568873839
fast_down,4.065,-0.7469460207485172,-0.5870586975863323,0.3121437612322162
fast_down,4.116,-0.7469460207485172,-0.5870586975863323,0.3121437612322162
fast_down,4.166,-0.7469460207485172,-0.5870586975863323,0.3121437612322162
fast_down,4.216,-0.7469460207485172,-0.5870586975863323,0.3121437612322162
fast_down,4.266,-0.6559126974803943,-0.6664814960318208,0.3543740237816236
fast_down,4.316,-0.6350795565364296,-0.682030139179491,0.36264148427930326
fast_down,4.366,-0.5503710891724398,-0.737190715165822,0.3919713174155045
fast_down,4.416,-0.4949668020490733,-0.7672035380458677,0.40792964599207093
fast_down,4.467,-0.4371063450622004,-0.7941315787105723,0.42224765103078876
fast_down,4.518,-0.4371063450622004,-0.7941315787105723,0.42224765103078876
fast_down,4.568,-0.4371063450622004,-0.7941315787105723,0.42224765103078876
fast_down,4.618,-0.4371063450622004,-0.7941315787105723,0.42224765103078876
fast_down,4.668,-0.30410075514103085,-0.8411307425186387,0.4472379732454506
fast_down,4.72,-0.265045812905107,-0.8513693528072396,0.45268194371109266
fast_down,4.77,-0.2003329822946081,-0.8650478680243607,0.45995530460193246
fast_down,4.821,-0.12328116655487778,-0.8762116341647558,0.4658915390165362
fast_down,4.872,-0.057139366364265136,-0.8815044087383488,0.4687057394425038
fast_down,4.922,-0.04426235386956533,-0.8820815936116289,0.4690126930494469
fast_down,4.973,-0.04426235386956533,-0.8820815936116289,0.4690126930494469
fast_down,5.023,-0.04426235386956533,-0.8820815936116289,0.4690126930494469
fast_down,5.073,0.09704906741017645,-0.8787789051539171,0.46725701104563183
fast_down,5.124,0.12437400586434713,-0.8760911483104105,0.4658276575273324
fast_down,5.202,0.21618720601044192,-0.8620667339021633,0.45837107048400827
fast_down,5.252,0.291742848342586,-0.8445356380649158,0.4490497371998343
fast_down,5.302,0.32882509356397704,-0.8338467065508258,0.443366358463272
fast_down,5.352,0.32882509356397704,-0.8338467065508258,0.443366358463272
fast_down,5.403,0.32882509356397704,-0.8338467065508258,0.443366358463272
fast_down,5.453,0.32882509356397704,-0.8338467065508258,0.443366358463272
fast_down,5.503,0.45952482584513876,-0.7842020657461503,0.41697008826948917
fast_down,5.554,0.5305290068915852,-0.7484442024246722,0.3979575966149214
fast_down,5.604,0.5742746008802159,-0.722835081025216,0.38434116149995984
fast_down,5.655,0.6364506879255921,-0.6810316271325519,0.36211385596829787
fast_down,5.705,0.6757433888807985,-0.6508520702427965,0.34606712505605
fast_down,5.755,0.6945720610670142,-0.6352116685048377,0.3377510742846278
fast_down,5.807,0.6945720610670142,-0.6352116685048377,0.3377510742846278
fast_down,5.857,0.6945720610670142,-0.6352116685048377,0.3377510742846278
fast_down,5.907,0.6945720610670142,-0.6352116685048377,0.3377510742846278
fast_down,5.957,0.805526153300102,-0.5231983974143916,0.2781924752622779
slow_up,0.0,0.9460594585111224,-0.28606766878165435,0.15210782307123943
slow_up,0.05,0.9455190535326738,-0.2874571518654766,0.15284667234868138
slow_up,0.103,0.9436479027598054,-0.2922112658093419,0.15537442437905588
slow_up,0.153,0.9281349974776371,-0.32867052977816213,0.17476014795292694
slow_up,0.203,0.9138692565342911,-0.3584831868409579,0.19061161222185014
slow_up,0.253,0.9138692565342911,-0.3584831868409579,0.19061161222185014
slow_up,0.305,0.9138692565342911,-0.3584831868409579,0.19061161222185014
slow_up,0.355,0.9138692565342911,-0.3584831868409579,0.19061161222185014
slow_up,0.405,0.7239423526708754,-0.6091094630016742,0.32387209217709695
slow_up,0.455,0.6293332508032875,-0.6861687877540366,0.3648452468451829
slow_up,0.506,0.5088001344152956,-0.7601149159245445,0.40416300895554474
slow_up,0.556,0.2006744641318691,-0.8649857893145051,0.4599231932935648
slow_up,0.606,0.11787401800375455,-0.8767915347130336,0.4661998718738709
slow_up,0.656,0.11787401800375455,-0.8767915347130336,0.4661998718738709
slow_up,0.709,0.11787401800375455,-0.8767915347130336,0.4661998718738709
slow_up,0.759,-0.2574125705516465,-0.8531933418076191,0.45365172766907963
slow_up,0.809,-0.4176502870922448,-0.8022529549718921,0.4265658611874992
slow_up,0.86,-0.6336358186718246,-0.683076147606698,0.3631977778936416
slow_up,0.91,-0.6970562053773977,-0.6330881401226467,0.33661855768942883
slow_up,0.96,-0.8082954591867698,-0.519859669896834,0.27641341189024043
slow_up,1.01,-0.8082954591867698,-0.519859669896834,0.27641341189024043
slow_up,1.06,-0.8082954591867698,-0.519859669896834,0.27641341189024043
slow_up,1.11,-0.9453328096216951,-0.2879361825972544,0.15309681186776067
slow_up,1.16,-0.9993838042771488,-0.03099239233204635,0.016476752291336164
slow_up,1.21,-0.9843571845612721,0.15556049447275458,-0.08271557146026204
slow_up,1.261,-0.9082569628582936,0.3694354300610396,-0.19643510998556962
slow_up,1.311,-0.889740162873185,0.4030356323142681,-0.21430054049263708
slow_up,1.361,-0.889740162873185,0.4030356323142681,-0.21430054049263708
slow_up,1.412,-0.889740162873185,0.4030356323142681,-0.21430054049263708
slow_up,1.462,-0.6223888813459727,0.6910891995086466,-0.3674612887086295
slow_up,1.512,-0.480532290011011,0.7743237638152762,-0.411717654525183
slow_up,1.562,-0.24261548960731635,0.856566634122575,-0.45544629267403736
slow_up,1.612,-0.0738911400080343,0.8805333010618643,-0.4681892834627991
slow_up,1.662,-0.03125769323670315,0.8825156096955135,-0.4692431728403476
slow_up,1.712,-0.03125769323670315,0.8825156096955135,-0.4692431728403476
slow_up,1.768,0.2241277713578036,0.8604849053373076,-0.45752865461392567
slow_up,1.818,0.3473353775299449,0.8279759987262889,-0.44024297955712494
slow_up,1.9,0.5751840484866985,0.7222726069742372,-0.38403852877164607
slow_up,1.95,0.8180024556066614,0.5078850346428319,-0.27004587426458004
slow_up,2.0,0.8180024556066614,0.5078850346428319,-0.27004587426458004
slow_up,2.053,0.8180024556066614,0.5078850346428319,-0.27004587426458004
slow_up,2.103,0.9645428546616037,0.233034025921976,-0.12390409308751824
slow_up,2.159,0.9968894319322942,-0.06958644228403679,0.03700253439912434
slow_up,2.209,0.9863654677307515,-0.1453051191165562,0.07726309873943166
slow_up,2.259,0.8928133915845599,-0.3977019785730571,0.21146485298117748
slow_up,2.31,0.8726503468714266,-0.4311822752385455,0.22926669541232975
slow_up,2.362,0.8726503468714266,-0.4311822752385455,0.22926669541232975
slow_up,2.412,0.8726503468714266,-0.4311822752385455,0.22926669541232975
slow_up,2.462,0.5173848369823976,-0.7555838645467454,0.40175359873597066
slow_up,2.512,0.3638628419775382,-0.8224229286365694,0.4372920747977001
slow_up,2.563,0.030276956173901977,-0.8825423704391177,0.46925714731322626
slow_up,2.613,-0.1400363320223416,-0.8742470628997733,0.46484610219388584
slow_up,2.663,-0.3462867098718835,-0.8283184186962228,0.44042492188191973
slow_up,2.713,-0.3462867098718835,-0.8283184186962228,0.44042492188191973
slow_up,2.763,-0.3462867098718835,-0.8283184186962228,0.44042492188191973
slow_up,2.813,-0.3462867098718835,-0.8283184186962228,0.44042492188191973
slow_up,2.865,-0.7880047141406812,-0.5436041292865107,0.2890382692909674
slow_up,2.915,-0.8808957926333647,-0.41790878582056723,0.22220452122946407
slow_up,2.965,-0.9718759547947202,-0.20792912990918935,0.11055589277400987
slow_up,3.015,-0.9883794204725632,-0.13421507201771118,0.07136130344662131
slow_up,3.068,-0.9939391147607629,-0.09706507750782017,0.05160820551997346
slow_up,3.118,-0.9939391147607629,-0.09706507750782017,0.05160820551997346
slow_up,3.168,-0.9939391147607629,-0.09706507750782017,0.05160820551997346
slow_up,3.221,-0.9031886181841449,0.3789988448497372,-0.20151971512777545
slow_up,3.271,-0.7650423133942607,0.568599632262469,-0.3023321301273535
slow_up,3.321,-0.6443448039857576,0.6752201347722225,-0.3590230398940119
slow_up,3.372,-0.5046723416544423,0.7622574756233951,-0.4053015771314876
slow_up,3.422,-0.35003973199079835,0.8270871530148888,-0.43977156268400996
slow_up,3.472,-0.35003973199079835,0.8270871530148888,-0.43977156268400996
slow_up,3.522,-0.35003973199079835,0.8270871530148888,-0.43977156268400996
slow_up,3.572,0.028648741414159226,0.8825848569956232,-0.46927946877889304
slow_up,3.623,0.11439877296310579,0.8771507294215819,-0.4663898783418468
slow_up,3.7,0.36444888629399075,0.8222214906436482,-0.43718283315199696
slow_up,3.75,0.6581699845647005,0.6647445562902361,-0.35345006196151546
slow_up,3.8,0.7499137882773798,0.5841017515611069,-0.3105711737665239
slow_up,3.85,0.7499137882773798,0.5841017515611069,-0.3105711737665239
slow_up,3.901,0.7499137882773798,0.5841017515611069,-0.3105711737665239
slow_up,3.951,0.944853713737145,0.28915970744475394,-0.15374694542523298
slow_up,4.001,0.987073460765884,0.1415095385608459,-0.07523984016435208
slow_up,4.051,0.9952287934257223,-0.0861470572830881,0.04580756769186928
slow_up,4.101,0.9831485410797727,-0.1614092230539248,0.08582545593145892
slow_up,4.151,0.9514851776842375,-0.2716770827188241,0.14445594266967454
slow_up,4.202,0.9514851776842375,-0.2716770827188241,0.14445594266967454
slow_up,4.252,0.9514851776842375,-0.2716770827188241,0.14445594266967454
slow_up,4.302,0.817478280706118,-0.5085408943702865,0.2703986304085845
slow_up,4.352,0.6109722822106246,-0.6989862373662259,0.37165993911497514
slow_up,4.404,0.4672943504185334,-0.7806146992377567,0.4150622620774715
slow_up,4.454,0.22797412062338523,-0.859696462259006,0.45711026361846624
slow_up,4.504,0.1019805158473573,-0.8783436551347776,0.4670250505829271
slow_up,4.556,0.1019805158473573,-0.8783436551347776,0.4670250505829271
slow_up,4.606,0.1019805158473573,-0.8783436551347776,0.4670250505829271
slow_up,4.656,-0.3183559817455473,-0.8370088449547444,0.4450456856934504
slow_up,4.706,-0.47435305110652926,-0.7772894490363829,0.41329202184731645
slow_up,4.757,-0.6812740324869003,-0.6463430266112673,0.34366609464715075
slow_up,4.807,-0.7410175281701447,-0.5928870382326016,0.3152427363800513
slow_up,4.857,-0.7954006377318663,-0.5351408051556996,0.28453847569889373
slow_up,4.907,-0.7954006377318663,-0.5351408051556996,0.28453847569889373
slow_up,4.957,-0.9382737590874874,-0.3054064703788552,0.16238608579113264
slow_up,5.01,-0.9746451076223235,-0.19756585392545004,0.10504593067119374
slow_up,5.06,-0.9995555377864727,0.026321162775145374,-0.01399725939459622
slow_up,5.11,-0.9933899075837224,0.10135166986621261,-0.05389184099781622
slow_up,5.16,-0.9595584087348238,0.24855720515081176,-0.13216268760096483
slow_up,5.21,-0.9595584087348238,0.24855720515081176,-0.13216268760096483
slow_up,5.26,-0.9595584087348238,0.24855720515081176,-0.13216268760096483
slow_up,5.31,-0.9595584087348238,0.24855720515081176,-0.13216268760096483
slow_up,5.361,-0.6344321026557155,0.682498725142766,-0.3628930934839445
slow_up,5.411,-0.4933419890705726,0.7680182893224405,-0.4083645296620692
slow_up,5.461,-0.17152978632357008,0.8698608835422476,-0.4625144059236326
slow_up,5.514,-0.1291155327559682,0.8755564233177349,-0.46554283238838295
slow_up,5.6,-0.1291155327559682,0.8755564233177349,-0.46554283238838295
slow_up,5.65,0.21338902235490834,0.8626108712472731,-0.4586584894498703
slow_up,5.7,0.2968244767769392,0.8431549337904639,-0.44831349255949776
slow_up,5.75,0.5679548809958221,0.7267188547019362,-0.38640258717266307
slow_up,5.801,0.7011935122846394,0.629516423465519,-0.33471888341877687
slow_up,5.851,0.7601848090823583,0.5736576506187725,-0.30501796000722453
slow_up,5.901,0.7601848090823583,0.5736576506187725,-0.30501796000722453
slow_up,5.952,0.919381823157543,0.34732255587449573,-0.18467296886204015
fast_up,0.0,0.7436855448063273,-0.5902756462634178,0.3138574069134272
fast_up,0.05,0.7436855448063273,-0.5902756462634178,0.3138574069134272
fast_up,0.1,0.7436855448063273,-0.5902756462634178,0.3138574069134272
fast_up,0.151,0.7415339496885803,-0.5923820730917216,0.3149775879944604
fast_up,0.201,0.7251426517885042,-0.6079954954680392,0.32327946431487065
fast_up,0.251,0.6911707438303796,-0.6380976912929389,0.3392850412847302
fast_up,0.301,0.6755171522407909,-0.6510353167218098,0.34616411340493514
fast_up,0.352,0.657506379493412,-0.6652549837006473,0.353724705932335
fast_up,0.402,0.657506379493412,-0.6652549837006473,0.353724705932335
fast_up,0.452,0.657506379493412,-0.6652549837006473,0.353724705932335
fast_up,0.502,0.5133602385345539,-0.7577210603341615,0.40288963776426395
fast_up,0.552,0.43935111799574095,-0.7931645569110259,0.42173520220160454
fast_up,0.602,0.3981844308412644,-0.8099317212166465,0.43065039881864586
fast_up,0.652,0.2686492856912895,-0.8504879652558426,0.4522143100926115
fast_up,0.702,0.24641792365539766,-0.8557199718773686,0.4549961940846956
fast_up,0.752,0.24641792365539766,-0.8557199718773686,0.4549961940846956
fast_up,0.803,0.24641792365539766,-0.8557199718773686,0.4549961940846956
fast_up,0.853,0.02057293045563342,-0.8827601620250191,0.4693732532580332
fast_up,0.903,-0.07422876549978216,-0.8805113066433957,0.468177241272489
fast_up,0.953,-0.21516179433137206,-0.8622672317493021,0.4584764152183838
fast_up,1.003,-0.2615988381204001,-0.8522001917503188,0.4531234722178677
fast_up,1.053,-0.3303372482550225,-0.8333813503635584,0.4431171710524334
fast_up,1.104,-0.3303372482550225,-0.8333813503635584,0.4431171710524334
fast_up,1.154,-0.3303372482550225,-0.8333813503635584,0.4431171710524334
fast_up,1.204,-0.5438623258853152,-0.7409471258505598,0.39396843423859473
fast_up,1.254,-0.6459092452751304,-0.6740549185668148,0.3584009118626741
fast_up,1.305,-0.7188503244392938,-0.6137944456673244,0.32635960154630667
fast_up,1.355,-0.8147838758289627,-0.5119023505212549,0.2721823271631494
fast_up,1.405,-0.8290800352983082,-0.4936828909103429,0.26249475859940974
fast_up,1.455,-0.8290800352983082,-0.4936828909103429,0.26249475859940974
fast_up,1.505,-0.8290800352983082,-0.4936828909103429,0.26249475859940974
fast_up,1.555,-0.9420068922851647,-0.2963122038659241,0.15755028634491672
fast_up,1.606,-0.9590164600201834,-0.2501842140742355,0.1330236386452166
fast_up,1.656,-0.9924115082243777,-0.10856893811461031,0.05772507271958899
fast_up,1.706,-0.9999445866713543,0.009294093939699495,-0.004944027153488152
fast_up,1.757,-0.9958913420586946,0.079955429596009,-0.04251545707915836
fast_up,1.807,-0.9958913420586946,0.079955429596009,-0.04251545707915836
fast_up,1.858,-0.9958913420586946,0.079955429596009,-0.04251545707915836
fast_up,1.908,-0.9958913420586946,0.079955429596009,-0.04251545707915836
fast_up,1.959,-0.9150231402146553,0.35618113505987486,-0.1893875706036974
fast_up,2.009,-0.8604916235298544,0.4498294242203849,-0.23918121778373866
fast_up,2.059,-0.7569777758441463,0.5769527254909279,-0.3067738571434005
fast_up,2.11,-0.6531020844533343,0.6686284965867637,-0.35551877704958706
fast_up,2.16,-0.5843458023963333,0.7165152052928653,-0.38098024070272796
fast_up,2.21,-0.5843458023963333,0.7165152052928653,-0.38098024070272796
fast_up,2.287,-0.5843458023963333,0.7165152052928653,-0.38098024070272796
fast_up,2.337,-0.29759691186014037,0.8429418991475414,-0.44820199989830933
fast_up,2.387,-0.17288959048961605,0.8696507226880431,-0.46240329802943353
fast_up,2.439,0.0528426867196658,0.8817134989386609,-0.46881654860893207
fast_up,2.489,0.11750941653421512,0.8768299049337306,-0.4662197495169991
fast_up,2.54,0.3387106575899876,0.8307569097795758,-0.4417216853273653
fast_up,2.59,0.3387106575899876,0.8307569097795758,-0.4417216853273653
fast_up,2.641,0.3387106575899876,0.8307569097795758,-0.4417216853273653
fast_up,2.692,0.3387106575899876,0.8307569097795758,-0.4417216853273653
fast_up,2.742,0.6725788995836892,0.6534039040384242,-0.3474204398450665
fast_up,2.792,0.7637787136075531,0.569923763588385,-0.30303296905987287
fast_up,2.842,0.8420851195741881,0.4762135465397938,-0.25320606130919715
fast_up,2.892,0.9059572778692444,0.3738133295921229,-0.19875866093078726
fast_up,2.944,0.9320625853533521,0.319890207637745,-0.1700870131488755
fast_up,2.994,0.9320625853533521,0.319890207637745,-0.1700870131488755
fast_up,3.044,0.9320625853533521,0.319890207637745,-0.1700870131488755
fast_up,3.094,0.9995868168775316,-0.025378198850278165,0.013496019700636873
fast_up,3.145,0.9737572335070697,-0.2009484251765163,0.1068484001365312
fast_up,3.195,0.9343593809559442,-0.3146215313212742,0.16728968661779853
fast_up,3.246,0.8432265639718923,-0.47463486271897926,0.2523701822797059
fast_up,3.296,0.8245274704190423,-0.4995901221141962,0.2656391545128427
fast_up,3.346,0.8245274704190423,-0.4995901221141962,0.2656391545128427
fast_up,3.396,0.8245274704190423,-0.4995901221141962,0.2656391545128427
fast_up,3.446,0.8245274704190423,-0.4995901221141962,0.2656391545128427
fast_up,3.496,0.560559310620797,-0.7311805980446815,0.38877781870801065
fast_up,3.546,0.3167082774612079,-0.8374953553597589,0.44530595857049304
fast_up,3.598,0.18394843471814523,-0.8678802595262894,0.46146162190297557
fast_up,3.648,-0.0905296924928885,-0.8793215748514271,0.46754458907996027
fast_up,3.698,-0.15903691458437788,-0.8717096400615488,0.46349710163413776
fast_up,3.749,-0.2604128505118988,-0.8524833003013681,0.45327405616862193
fast_up,3.799,-0.2604128505118988,-0.8524833003013681,0.45327405616862193
fast_up,3.849,-0.484042556809481,-0.7726183440706232,0.4108085899818897
fast_up,3.9,-0.6263636201595283,-0.6882851615010694,0.3659674190390409
fast_up,3.95,-0.7271348616896539,-0.6061389762113589,0.32228936444290796
fast_up,4.0,-0.8335559354602529,-0.48777154516490967,0.25935192728495254
fast_up,4.05,-0.9152025193193423,-0.3558231540800539,0.18919363533705685
fast_up,4.101,-0.9152025193193423,-0.3558231540800539,0.18919363533705685
fast_up,4.151,-0.9152025193193423,-0.3558231540800539,0.18919363533705685
fast_up,4.201,-0.9152025193193423,-0.3558231540800539,0.18919363533705685
fast_up,4.251,-0.9999653794523607,-0.007347658786176997,0.0039053562011961474
fast_up,4.301,-0.9982722741623554,0.05187931833534815,-0.02758628223916066
fast_up,4.357,-0.9473362244513863,0.28275503128264595,-0.1503451699474996
fast_up,4.407,-0.8965970539364008,0.39101017281360906,-0.20790567002570753
fast_up,4.457,-0.8965970539364008,0.39101017281360906,-0.20790567002570753
fast_up,4.507,-0.8965970539364008,0.39101017281360906,-0.20790567002570753
fast_up,4.557,-0.7494544996760373,0.5845598923018723,-0.31081776851937554
fast_up,4.608,-0.6811810712116455,0.6464184443030486,-0.3437085147152765
fast_up,4.69,-0.5260437628224534,0.750908769275774,-0.39926680280275867
fast_up,4.74,-0.3515317530989304,0.8265937289313039,-0.4395090827896901
fast_up,4.79,-0.25921047650601087,0.8527686685878513,-0.45342642925223303
fast_up,4.841,-0.25921047650601087,0.8527686685878513,-0.45342642925223303
fast_up,4.891,-0.25921047650601087,0.8527686685878513,-0.45342642925223303
fast_up,4.941,0.029032410272141315,0.8825750679575304,-0.4692742999286777
fast_up,4.991,0.12468465513391183,0.87605725215134,-0.4658083594432166
fast_up,5.042,0.312103840700244,0.8388425601545466,-0.4460205733971502
fast_up,5.092,0.4601026048132257,0.7839390238700766,-0.41682754215348583
fast_up,5.142,0.5962937494197067,0.7088008659157505,-0.3768754394757906
fast_up,5.192,0.5962937494197067,0.7088008659157505,-0.3768754394757906
fast_up,5.242,0.5962937494197067,0.7088008659157505,-0.3768754394757906
fast_up,5.293,0.5962937494197067,0.7088008659157505,-0.3768754394757906
fast_up,5.343,0.8713288736836602,0.43326257799090145,-0.2303682538846054
fast_up,5.395,0.9274080640937924,0.33026837460772646,-0.17560490707202564
fast_up,5.445,0.9924918410489542,0.1079949995732303,-0.05741973108989097
fast_up,5.495,0.9983717965936116,0.050365731961324836,-0.026777767092200574
fast_up,5.546,0.9999629087894729,-0.007603720153555103,0.004045304082834395
fast_up,5.596,0.9999629087894729,-0.007603720153555103,0.004045304082834395
fast_up,5.649,0.9999629087894729,-0.007603720153555103,0.004045304082834395
fast_up,5.699,0.9319867371924816,-0.3200607761380319,0.17018173014525656
fast_up,5.749,0.8597874640302131,-0.4508780240427165,0.2397384494231805
fast_up,5.8,0.7409676384604902,-0.5929343161341589,0.3152710825699075
fast_up,5.85,0.534386630982945,-0.7463020032608736,0.39681765151704723
fast_up,5.9,0.4450856110633426,-0.7906682356171415,0.42040758795536404
fast_up,5.954,0.35082136337402364,-0.8268289378421346,0.4396342554297136
1 phase t fx fy fz
2 slow_down 0.0 -0.9999999999979217 -5.364418989006872e-07 -1.9669536293025197e-06
3 slow_down 0.055 -0.9999931441638505 -0.003270491953406279 0.0017365217186252632
4 slow_down 0.106 -0.9998075678152163 -0.01732181066707776 0.00920772581236021
5 slow_down 0.156 -0.9984570236826587 -0.04903096590809946 0.026067915929080705
6 slow_down 0.206 -0.9959234059606977 -0.07964543509725727 0.04234588678740652
7 slow_down 0.256 -0.9949974062198822 -0.0882080473352674 0.046898848610662965
8 slow_down 0.308 -0.9949974062198822 -0.0882080473352674 0.046898848610662965
9 slow_down 0.358 -0.9949974062198822 -0.0882080473352674 0.046898848610662965
10 slow_down 0.408 -0.9742287842225655 -0.19916037362801364 0.10589344440791315
11 slow_down 0.48 -0.9465655723613469 -0.2847614479418032 0.15140850367903233
12 slow_down 0.53 -0.8914624347306995 -0.4000593644081642 0.2127139685430863
13 slow_down 0.58 -0.8716372552912262 -0.4327785818328047 0.23011126503316684
14 slow_down 0.63 -0.8154459106136834 -0.5110798322402205 0.27174504952386647
15 slow_down 0.68 -0.8154459106136834 -0.5110798322402205 0.27174504952386647
16 slow_down 0.73 -0.8154459106136834 -0.5110798322402205 0.27174504952386647
17 slow_down 0.782 -0.8154459106136834 -0.5110798322402205 0.27174504952386647
18 slow_down 0.832 -0.6283422527343198 -0.6868777132566759 0.3652191403254217
19 slow_down 0.882 -0.5946716694847226 -0.7098621875663405 0.3774404326192183
20 slow_down 0.932 -0.4876749892181813 -0.7708354120554387 0.40986079638380735
21 slow_down 0.982 -0.41202774678544607 -0.8045162551187721 0.427769483634089
22 slow_down 1.034 -0.33356518582907857 -0.8323782939339731 0.44258405144150914
23 slow_down 1.084 -0.33356518582907857 -0.8323782939339731 0.44258405144150914
24 slow_down 1.134 -0.33356518582907857 -0.8323782939339731 0.44258405144150914
25 slow_down 1.184 -0.33356518582907857 -0.8323782939339731 0.44258405144150914
26 slow_down 1.234 -0.12829325207912554 -0.875650566375165 0.4655930917419358
27 slow_down 1.284 0.01999288837244423 -0.8827703771186131 0.4693791065827161
28 slow_down 1.334 0.14647633503077626 -0.8734233776363055 0.46440961087636784
29 slow_down 1.384 0.2294525395929343 -0.8593894358220113 0.4569478413034447
30 slow_down 1.437 0.24987913985400062 -0.8549368999870867 0.454580369688678
31 slow_down 1.487 0.24987913985400062 -0.8549368999870867 0.454580369688678
32 slow_down 1.537 0.24987913985400062 -0.8549368999870867 0.454580369688678
33 slow_down 1.587 0.46631421415396884 -0.7810712750954569 0.41530557051251255
34 slow_down 1.637 0.5748418033213702 -0.7224835385509736 0.38415418477103586
35 slow_down 1.687 0.6089893568992764 -0.700333722219096 0.3723770142022088
36 slow_down 1.737 0.704521028047038 -0.6266117341975116 0.33317841407499954
37 slow_down 1.788 0.7193167990693469 -0.6133666704535744 0.3261359688125875
38 slow_down 1.838 0.7193167990693469 -0.6133666704535744 0.3261359688125875
39 slow_down 1.89 0.7193167990693469 -0.6133666704535744 0.3261359688125875
40 slow_down 1.94 0.849066896281655 -0.46644693570280316 0.2480174627160401
41 slow_down 1.99 0.8810436144109307 -0.41766387138482547 0.222078904999019
42 slow_down 2.04 0.9484328657603022 -0.2798737472266781 0.1488145986084635
43 slow_down 2.09 0.9610413097510078 -0.24404963350980377 0.12976662643298606
44 slow_down 2.141 0.9939216935112383 -0.09720198191703029 0.051685993065371263
45 slow_down 2.191 0.9976931470309339 -0.05993776893335393 0.031872373975016126
46 slow_down 2.241 0.9976931470309339 -0.05993776893335393 0.031872373975016126
47 slow_down 2.292 0.9976931470309339 -0.05993776893335393 0.031872373975016126
48 slow_down 2.342 0.9896563458191195 0.12666726325652128 -0.06734776610289538
49 slow_down 2.392 0.9688328898337262 0.21872041518359675 -0.11629364367129405
50 slow_down 2.443 0.9442856108918024 0.29060279698667507 -0.1545143988313609
51 slow_down 2.493 0.8947993986761507 0.3942088393731278 -0.20960302261391808
52 slow_down 2.543 0.8309037105646212 0.49128695070578754 -0.26122051189780854
53 slow_down 2.593 0.8065858741842986 0.5219257641234278 -0.2775116651791901
54 slow_down 2.643 0.7536882578227702 0.5803018854525123 -0.308551019703933
55 slow_down 2.693 0.7536882578227702 0.5803018854525123 -0.308551019703933
56 slow_down 2.743 0.7536882578227702 0.5803018854525123 -0.308551019703933
57 slow_down 2.793 0.7536882578227702 0.5803018854525123 -0.308551019703933
58 slow_down 2.844 0.5464292801028885 0.7394732111173732 -0.3931849588755906
59 slow_down 2.894 0.4542920662458938 0.7865761484815041 -0.4182304163807783
60 slow_down 2.944 0.33724237713970884 0.8312222802162891 -0.4419695690126091
61 slow_down 2.995 0.2969454116172929 0.8431213928515923 -0.4482964860841846
62 slow_down 3.045 0.19416339979478872 0.8661439018126901 -0.46053807175174793
63 slow_down 3.095 0.19416339979478872 0.8661439018126901 -0.46053807175174793
64 slow_down 3.145 0.19416339979478872 0.8661439018126901 -0.46053807175174793
65 slow_down 3.195 0.19416339979478872 0.8661439018126901 -0.46053807175174793
66 slow_down 3.245 -0.08056448227304423 0.8800766715066983 -0.4679470231401919
67 slow_down 3.295 -0.20674220671814517 0.8638708932840495 -0.4593307519619497
68 slow_down 3.345 -0.36917998882389613 0.8205732127784867 -0.4363092232836481
69 slow_down 3.395 -0.40826537853398315 0.8060092833540977 -0.4285655327222631
70 slow_down 3.446 -0.4274712950772437 0.7982089720099239 -0.4244181062205577
71 slow_down 3.496 -0.4274712950772437 0.7982089720099239 -0.4244181062205577
72 slow_down 3.546 -0.4274712950772437 0.7982089720099239 -0.4244181062205577
73 slow_down 3.596 -0.6082231710880547 0.7008524983325218 -0.3726531225317367
74 slow_down 3.647 -0.6890657017287396 0.6398696963671466 -0.34022820337546267
75 slow_down 3.698 -0.762143003366288 0.5716265197273306 -0.3039426991461283
76 slow_down 3.748 -0.8382680494161782 0.4814331278329663 -0.2559859776490942
77 slow_down 3.798 -0.8713041042377916 0.43329936687430565 -0.23039274425360168
78 slow_down 3.849 -0.8913381334740916 0.4002732381357301 -0.21283248494358056
79 slow_down 3.899 -0.8913381334740916 0.4002732381357301 -0.21283248494358056
80 slow_down 3.954 -0.8913381334740916 0.4002732381357301 -0.21283248494358056
81 slow_down 4.004 -0.9668278549473198 0.2255289063838423 -0.11991918646852343
82 slow_down 4.054 -0.988482045003392 0.1336223546024849 -0.07105148173261426
83 slow_down 4.104 -0.9989645669952419 0.04016845004198468 -0.021360934184474142
84 slow_down 4.154 -0.9966424267396048 -0.0722944195265059 0.038436832958986006
85 slow_down 4.204 -0.9861088546477905 -0.1466589830214944 0.07797736520506265
86 slow_down 4.254 -0.9823755362869574 -0.16503976362875877 0.08775068162855647
87 slow_down 4.304 -0.9823755362869574 -0.16503976362875877 0.08775068162855647
88 slow_down 4.354 -0.9823755362869574 -0.16503976362875877 0.08775068162855647
89 slow_down 4.405 -0.9209647726441181 -0.34403770228142444 0.18292606964969713
90 slow_down 4.455 -0.8743898972057189 -0.42842805892694735 0.22779751093605147
91 slow_down 4.505 -0.8299912670076615 -0.4924878804154499 0.26185909251907646
92 slow_down 4.555 -0.7523228900523915 -0.5816815188929995 0.3092844640158157
93 slow_down 4.605 -0.6625352693826098 -0.6613550972756903 0.3516481936987236
94 slow_down 4.659 -0.6302746771466385 -0.6854961772366975 0.36448432386259716
95 slow_down 4.709 -0.6302746771466385 -0.6854961772366975 0.36448432386259716
96 slow_down 4.78 -0.6302746771466385 -0.6854961772366975 0.36448432386259716
97 slow_down 4.831 -0.4525978574008272 -0.7873373046911097 0.4186348625209313
98 slow_down 4.881 -0.41426647045914855 -0.8036195683143964 0.4272925003735763
99 slow_down 4.931 -0.274715147969851 -0.8489764429252736 0.45140955554114326
100 slow_down 4.981 -0.23364090031412207 -0.8585099251579216 0.4564785187779883
101 slow_down 5.031 -0.04480010659454584 -0.8820604850600307 0.4690013338411531
102 slow_down 5.083 -0.023683103154920795 -0.8826993337726754 0.46934102397108685
103 slow_down 5.133 -0.023683103154920795 -0.8826993337726754 0.46934102397108685
104 slow_down 5.183 -0.023683103154920795 -0.8826993337726754 0.46934102397108685
105 slow_down 5.233 0.1453592269195889 -0.8735689453585949 0.46448680589916846
106 slow_down 5.286 0.22874062128632777 -0.8595374327749778 0.4570263994914793
107 slow_down 5.336 0.35043482719640695 -0.8269562640048762 0.43970304673827526
108 slow_down 5.386 0.4284669431857837 -0.7977927831777877 0.42419659794306436
109 slow_down 5.437 0.521489921000824 -0.7533803887235785 0.40058239125211675
110 slow_down 5.488 0.521489921000824 -0.7533803887235785 0.40058239125211675
111 slow_down 5.538 0.521489921000824 -0.7533803887235785 0.40058239125211675
112 slow_down 5.588 0.521489921000824 -0.7533803887235785 0.40058239125211675
113 slow_down 5.64 0.7340500600490995 -0.5996042690723751 0.3188184904488701
114 slow_down 5.69 0.7890549608342304 -0.5424133153670134 0.28840954230998667
115 slow_down 5.74 0.8607130204977756 -0.4494988131338322 0.23900609476930043
116 slow_down 5.79 0.8815363856269739 -0.41685239315276573 0.2216476553869751
117 slow_down 5.84 0.918368956231027 -0.34940329267058484 0.185784281633532
118 slow_down 5.89 0.918368956231027 -0.34940329267058484 0.185784281633532
119 slow_down 5.941 0.918368956231027 -0.34940329267058484 0.185784281633532
120 slow_down 5.991 0.918368956231027 -0.34940329267058484 0.185784281633532
121 fast_down 0.0 0.9443584250101847 0.2904182906726782 -0.15441626065619846
122 fast_down 0.051 0.9436765232896925 0.2921411966275288 -0.15533235537039236
123 fast_down 0.101 0.9413498555259846 0.2979356698970741 -0.15841333941366673
124 fast_down 0.151 0.9359648416782657 0.3108808857007239 -0.16529637034161546
125 fast_down 0.201 0.9359648416782657 0.3108808857007239 -0.16529637034161546
126 fast_down 0.251 0.9359648416782657 0.3108808857007239 -0.16529637034161546
127 fast_down 0.302 0.9359648416782657 0.3108808857007239 -0.16529637034161546
128 fast_down 0.352 0.9069682473230593 0.37189736355510283 -0.19773959979857733
129 fast_down 0.402 0.8846064485621233 0.41175300754402716 -0.21893124934726846
130 fast_down 0.452 0.8540047786366772 0.45936747444995185 -0.24424856495626104
131 fast_down 0.502 0.8282129470457974 0.49481636271239404 -0.2630970952667319
132 fast_down 0.553 0.7845202085163289 0.5475191291668909 -0.2911199849303122
133 fast_down 0.605 0.7845202085163289 0.5475191291668909 -0.2911199849303122
134 fast_down 0.655 0.7845202085163289 0.5475191291668909 -0.2911199849303122
135 fast_down 0.705 0.7845202085163289 0.5475191291668909 -0.2911199849303122
136 fast_down 0.755 0.6764926071616988 0.6502464180323504 -0.34574173640401795
137 fast_down 0.805 0.658050205681294 0.6648368510249885 -0.3534994884324219
138 fast_down 0.855 0.6002218773366298 0.7062112257134413 -0.37549887169312585
139 fast_down 0.905 0.549340559411765 0.7377897883828349 -0.3922896607650788
140 fast_down 0.955 0.49584529498589064 0.766761273134124 -0.407694240163008
141 fast_down 1.005 0.48512337186675963 0.7720896571445868 -0.410527557417258
142 fast_down 1.056 0.48512337186675963 0.7720896571445868 -0.410527557417258
143 fast_down 1.106 0.48512337186675963 0.7720896571445868 -0.410527557417258
144 fast_down 1.159 0.3622432608277545 0.8229807007440995 -0.4375872326606736
145 fast_down 1.209 0.32689929716992755 0.8344373883855656 -0.4436790443260581
146 fast_down 1.259 0.25427817274032954 0.853925751514516 -0.45404121153063653
147 fast_down 1.309 0.2298587258053575 0.8593053722677841 -0.456901787436712
148 fast_down 1.359 0.16760580400920777 0.8704570196341962 -0.462831363924248
149 fast_down 1.409 0.16760580400920777 0.8704570196341962 -0.462831363924248
150 fast_down 1.46 0.16760580400920777 0.8704570196341962 -0.462831363924248
151 fast_down 1.51 0.16760580400920777 0.8704570196341962 -0.462831363924248
152 fast_down 1.56 0.002540052170349648 0.8829440689248292 -0.46947131891675575
153 fast_down 1.612 -0.060902995462806364 0.8813078425991426 -0.4686014422906764
154 fast_down 1.662 -0.13719170887921703 0.8745981313071235 -0.4650339167511203
155 fast_down 1.712 -0.17489675318047473 0.8693377382286037 -0.4622369766889098
156 fast_down 1.763 -0.20036620128936147 0.8650415136381839 -0.45995278568939074
157 fast_down 1.813 -0.20036620128936147 0.8650415136381839 -0.45995278568939074
158 fast_down 1.863 -0.20036620128936147 0.8650415136381839 -0.45995278568939074
159 fast_down 1.913 -0.3251335273823679 0.8349744124881198 -0.4439661246784693
160 fast_down 1.964 -0.3973065881096412 0.8102676243119484 -0.4308292608871257
161 fast_down 2.014 -0.4206417783991093 0.8010327730400488 -0.4259189955625415
162 fast_down 2.064 -0.4777331010732428 0.775672931494927 -0.412434949398095
163 fast_down 2.114 -0.488795575431501 0.7702810463478054 -0.4095680591500243
164 fast_down 2.2 -0.488795575431501 0.7702810463478054 -0.4095680591500243
165 fast_down 2.25 -0.5739522440973305 0.723034797529328 -0.3844470094269976
166 fast_down 2.301 -0.5844536749020949 0.7164465126356567 -0.3809439544416504
167 fast_down 2.351 -0.6655292434246848 0.6590060504026063 -0.35040241391766147
168 fast_down 2.401 -0.6844791420847829 0.6436963242533531 -0.3422621016028532
169 fast_down 2.451 -0.7643784717763241 0.5692950061586564 -0.30270240806393794
170 fast_down 2.502 -0.7725813754143398 0.560596161839983 -0.2980771069592003
171 fast_down 2.552 -0.7725813754143398 0.560596161839983 -0.2980771069592003
172 fast_down 2.602 -0.7725813754143398 0.560596161839983 -0.2980771069592003
173 fast_down 2.654 -0.8262843180314257 0.4973219093770416 -0.264433629156572
174 fast_down 2.704 -0.8262843180314257 0.4973219093770416 -0.264433629156572
175 fast_down 2.757 -0.8746773850824483 0.4279683944410753 -0.22755774077112537
176 fast_down 2.807 -0.8984966762022762 0.38759540618962496 -0.20609105743375078
177 fast_down 2.857 -0.9198514942946016 0.3463497804526146 -0.18416041383645462
178 fast_down 2.907 -0.9198514942946016 0.3463497804526146 -0.18416041383645462
179 fast_down 2.959 -0.9198514942946016 0.3463497804526146 -0.18416041383645462
180 fast_down 3.009 -0.9198514942946016 0.3463497804526146 -0.18416041383645462
181 fast_down 3.059 -0.965513097061632 0.229878182640904 -0.12223125847413475
182 fast_down 3.109 -0.9807575239828921 0.17237651768286696 -0.09165705266085657
183 fast_down 3.159 -0.9929977466389756 0.10430437127883818 -0.055462359326332346
184 fast_down 3.209 -0.9977780037787286 0.05882634956765883 -0.03128123673832199
185 fast_down 3.259 -0.9998855681302515 0.013355956398558844 -0.007104158889265936
186 fast_down 3.31 -0.9998855681302515 0.013355956398558844 -0.007104158889265936
187 fast_down 3.36 -0.9998855681302515 0.013355956398558844 -0.007104158889265936
188 fast_down 3.41 -0.9998855681302515 0.013355956398558844 -0.007104158889265936
189 fast_down 3.46 -0.9864097173511808 -0.14507296850283008 0.07713432001995296
190 fast_down 3.51 -0.9816537064216652 -0.1683547235000568 0.0895136176446171
191 fast_down 3.562 -0.9637402505323968 -0.23560849343709017 0.12527317080707187
192 fast_down 3.612 -0.9564950177231987 -0.2575996165326645 0.13696612220882184
193 fast_down 3.662 -0.9307476539483766 -0.3228612242140167 0.1716666379021257
194 fast_down 3.712 -0.9307476539483766 -0.3228612242140167 0.1716666379021257
195 fast_down 3.763 -0.9307476539483766 -0.3228612242140167 0.1716666379021257
196 fast_down 3.813 -0.9307476539483766 -0.3228612242140167 0.1716666379021257
197 fast_down 3.865 -0.8688054358698426 -0.4371952554269202 0.23245950880788432
198 fast_down 3.915 -0.855129825769737 -0.45773293913947277 0.2433794106036063
199 fast_down 3.965 -0.7963049513123122 -0.5340913405869819 0.28398039443858913
200 fast_down 4.015 -0.7803317574044676 -0.5521655692420058 0.2935907568873839
201 fast_down 4.065 -0.7469460207485172 -0.5870586975863323 0.3121437612322162
202 fast_down 4.116 -0.7469460207485172 -0.5870586975863323 0.3121437612322162
203 fast_down 4.166 -0.7469460207485172 -0.5870586975863323 0.3121437612322162
204 fast_down 4.216 -0.7469460207485172 -0.5870586975863323 0.3121437612322162
205 fast_down 4.266 -0.6559126974803943 -0.6664814960318208 0.3543740237816236
206 fast_down 4.316 -0.6350795565364296 -0.682030139179491 0.36264148427930326
207 fast_down 4.366 -0.5503710891724398 -0.737190715165822 0.3919713174155045
208 fast_down 4.416 -0.4949668020490733 -0.7672035380458677 0.40792964599207093
209 fast_down 4.467 -0.4371063450622004 -0.7941315787105723 0.42224765103078876
210 fast_down 4.518 -0.4371063450622004 -0.7941315787105723 0.42224765103078876
211 fast_down 4.568 -0.4371063450622004 -0.7941315787105723 0.42224765103078876
212 fast_down 4.618 -0.4371063450622004 -0.7941315787105723 0.42224765103078876
213 fast_down 4.668 -0.30410075514103085 -0.8411307425186387 0.4472379732454506
214 fast_down 4.72 -0.265045812905107 -0.8513693528072396 0.45268194371109266
215 fast_down 4.77 -0.2003329822946081 -0.8650478680243607 0.45995530460193246
216 fast_down 4.821 -0.12328116655487778 -0.8762116341647558 0.4658915390165362
217 fast_down 4.872 -0.057139366364265136 -0.8815044087383488 0.4687057394425038
218 fast_down 4.922 -0.04426235386956533 -0.8820815936116289 0.4690126930494469
219 fast_down 4.973 -0.04426235386956533 -0.8820815936116289 0.4690126930494469
220 fast_down 5.023 -0.04426235386956533 -0.8820815936116289 0.4690126930494469
221 fast_down 5.073 0.09704906741017645 -0.8787789051539171 0.46725701104563183
222 fast_down 5.124 0.12437400586434713 -0.8760911483104105 0.4658276575273324
223 fast_down 5.202 0.21618720601044192 -0.8620667339021633 0.45837107048400827
224 fast_down 5.252 0.291742848342586 -0.8445356380649158 0.4490497371998343
225 fast_down 5.302 0.32882509356397704 -0.8338467065508258 0.443366358463272
226 fast_down 5.352 0.32882509356397704 -0.8338467065508258 0.443366358463272
227 fast_down 5.403 0.32882509356397704 -0.8338467065508258 0.443366358463272
228 fast_down 5.453 0.32882509356397704 -0.8338467065508258 0.443366358463272
229 fast_down 5.503 0.45952482584513876 -0.7842020657461503 0.41697008826948917
230 fast_down 5.554 0.5305290068915852 -0.7484442024246722 0.3979575966149214
231 fast_down 5.604 0.5742746008802159 -0.722835081025216 0.38434116149995984
232 fast_down 5.655 0.6364506879255921 -0.6810316271325519 0.36211385596829787
233 fast_down 5.705 0.6757433888807985 -0.6508520702427965 0.34606712505605
234 fast_down 5.755 0.6945720610670142 -0.6352116685048377 0.3377510742846278
235 fast_down 5.807 0.6945720610670142 -0.6352116685048377 0.3377510742846278
236 fast_down 5.857 0.6945720610670142 -0.6352116685048377 0.3377510742846278
237 fast_down 5.907 0.6945720610670142 -0.6352116685048377 0.3377510742846278
238 fast_down 5.957 0.805526153300102 -0.5231983974143916 0.2781924752622779
239 slow_up 0.0 0.9460594585111224 -0.28606766878165435 0.15210782307123943
240 slow_up 0.05 0.9455190535326738 -0.2874571518654766 0.15284667234868138
241 slow_up 0.103 0.9436479027598054 -0.2922112658093419 0.15537442437905588
242 slow_up 0.153 0.9281349974776371 -0.32867052977816213 0.17476014795292694
243 slow_up 0.203 0.9138692565342911 -0.3584831868409579 0.19061161222185014
244 slow_up 0.253 0.9138692565342911 -0.3584831868409579 0.19061161222185014
245 slow_up 0.305 0.9138692565342911 -0.3584831868409579 0.19061161222185014
246 slow_up 0.355 0.9138692565342911 -0.3584831868409579 0.19061161222185014
247 slow_up 0.405 0.7239423526708754 -0.6091094630016742 0.32387209217709695
248 slow_up 0.455 0.6293332508032875 -0.6861687877540366 0.3648452468451829
249 slow_up 0.506 0.5088001344152956 -0.7601149159245445 0.40416300895554474
250 slow_up 0.556 0.2006744641318691 -0.8649857893145051 0.4599231932935648
251 slow_up 0.606 0.11787401800375455 -0.8767915347130336 0.4661998718738709
252 slow_up 0.656 0.11787401800375455 -0.8767915347130336 0.4661998718738709
253 slow_up 0.709 0.11787401800375455 -0.8767915347130336 0.4661998718738709
254 slow_up 0.759 -0.2574125705516465 -0.8531933418076191 0.45365172766907963
255 slow_up 0.809 -0.4176502870922448 -0.8022529549718921 0.4265658611874992
256 slow_up 0.86 -0.6336358186718246 -0.683076147606698 0.3631977778936416
257 slow_up 0.91 -0.6970562053773977 -0.6330881401226467 0.33661855768942883
258 slow_up 0.96 -0.8082954591867698 -0.519859669896834 0.27641341189024043
259 slow_up 1.01 -0.8082954591867698 -0.519859669896834 0.27641341189024043
260 slow_up 1.06 -0.8082954591867698 -0.519859669896834 0.27641341189024043
261 slow_up 1.11 -0.9453328096216951 -0.2879361825972544 0.15309681186776067
262 slow_up 1.16 -0.9993838042771488 -0.03099239233204635 0.016476752291336164
263 slow_up 1.21 -0.9843571845612721 0.15556049447275458 -0.08271557146026204
264 slow_up 1.261 -0.9082569628582936 0.3694354300610396 -0.19643510998556962
265 slow_up 1.311 -0.889740162873185 0.4030356323142681 -0.21430054049263708
266 slow_up 1.361 -0.889740162873185 0.4030356323142681 -0.21430054049263708
267 slow_up 1.412 -0.889740162873185 0.4030356323142681 -0.21430054049263708
268 slow_up 1.462 -0.6223888813459727 0.6910891995086466 -0.3674612887086295
269 slow_up 1.512 -0.480532290011011 0.7743237638152762 -0.411717654525183
270 slow_up 1.562 -0.24261548960731635 0.856566634122575 -0.45544629267403736
271 slow_up 1.612 -0.0738911400080343 0.8805333010618643 -0.4681892834627991
272 slow_up 1.662 -0.03125769323670315 0.8825156096955135 -0.4692431728403476
273 slow_up 1.712 -0.03125769323670315 0.8825156096955135 -0.4692431728403476
274 slow_up 1.768 0.2241277713578036 0.8604849053373076 -0.45752865461392567
275 slow_up 1.818 0.3473353775299449 0.8279759987262889 -0.44024297955712494
276 slow_up 1.9 0.5751840484866985 0.7222726069742372 -0.38403852877164607
277 slow_up 1.95 0.8180024556066614 0.5078850346428319 -0.27004587426458004
278 slow_up 2.0 0.8180024556066614 0.5078850346428319 -0.27004587426458004
279 slow_up 2.053 0.8180024556066614 0.5078850346428319 -0.27004587426458004
280 slow_up 2.103 0.9645428546616037 0.233034025921976 -0.12390409308751824
281 slow_up 2.159 0.9968894319322942 -0.06958644228403679 0.03700253439912434
282 slow_up 2.209 0.9863654677307515 -0.1453051191165562 0.07726309873943166
283 slow_up 2.259 0.8928133915845599 -0.3977019785730571 0.21146485298117748
284 slow_up 2.31 0.8726503468714266 -0.4311822752385455 0.22926669541232975
285 slow_up 2.362 0.8726503468714266 -0.4311822752385455 0.22926669541232975
286 slow_up 2.412 0.8726503468714266 -0.4311822752385455 0.22926669541232975
287 slow_up 2.462 0.5173848369823976 -0.7555838645467454 0.40175359873597066
288 slow_up 2.512 0.3638628419775382 -0.8224229286365694 0.4372920747977001
289 slow_up 2.563 0.030276956173901977 -0.8825423704391177 0.46925714731322626
290 slow_up 2.613 -0.1400363320223416 -0.8742470628997733 0.46484610219388584
291 slow_up 2.663 -0.3462867098718835 -0.8283184186962228 0.44042492188191973
292 slow_up 2.713 -0.3462867098718835 -0.8283184186962228 0.44042492188191973
293 slow_up 2.763 -0.3462867098718835 -0.8283184186962228 0.44042492188191973
294 slow_up 2.813 -0.3462867098718835 -0.8283184186962228 0.44042492188191973
295 slow_up 2.865 -0.7880047141406812 -0.5436041292865107 0.2890382692909674
296 slow_up 2.915 -0.8808957926333647 -0.41790878582056723 0.22220452122946407
297 slow_up 2.965 -0.9718759547947202 -0.20792912990918935 0.11055589277400987
298 slow_up 3.015 -0.9883794204725632 -0.13421507201771118 0.07136130344662131
299 slow_up 3.068 -0.9939391147607629 -0.09706507750782017 0.05160820551997346
300 slow_up 3.118 -0.9939391147607629 -0.09706507750782017 0.05160820551997346
301 slow_up 3.168 -0.9939391147607629 -0.09706507750782017 0.05160820551997346
302 slow_up 3.221 -0.9031886181841449 0.3789988448497372 -0.20151971512777545
303 slow_up 3.271 -0.7650423133942607 0.568599632262469 -0.3023321301273535
304 slow_up 3.321 -0.6443448039857576 0.6752201347722225 -0.3590230398940119
305 slow_up 3.372 -0.5046723416544423 0.7622574756233951 -0.4053015771314876
306 slow_up 3.422 -0.35003973199079835 0.8270871530148888 -0.43977156268400996
307 slow_up 3.472 -0.35003973199079835 0.8270871530148888 -0.43977156268400996
308 slow_up 3.522 -0.35003973199079835 0.8270871530148888 -0.43977156268400996
309 slow_up 3.572 0.028648741414159226 0.8825848569956232 -0.46927946877889304
310 slow_up 3.623 0.11439877296310579 0.8771507294215819 -0.4663898783418468
311 slow_up 3.7 0.36444888629399075 0.8222214906436482 -0.43718283315199696
312 slow_up 3.75 0.6581699845647005 0.6647445562902361 -0.35345006196151546
313 slow_up 3.8 0.7499137882773798 0.5841017515611069 -0.3105711737665239
314 slow_up 3.85 0.7499137882773798 0.5841017515611069 -0.3105711737665239
315 slow_up 3.901 0.7499137882773798 0.5841017515611069 -0.3105711737665239
316 slow_up 3.951 0.944853713737145 0.28915970744475394 -0.15374694542523298
317 slow_up 4.001 0.987073460765884 0.1415095385608459 -0.07523984016435208
318 slow_up 4.051 0.9952287934257223 -0.0861470572830881 0.04580756769186928
319 slow_up 4.101 0.9831485410797727 -0.1614092230539248 0.08582545593145892
320 slow_up 4.151 0.9514851776842375 -0.2716770827188241 0.14445594266967454
321 slow_up 4.202 0.9514851776842375 -0.2716770827188241 0.14445594266967454
322 slow_up 4.252 0.9514851776842375 -0.2716770827188241 0.14445594266967454
323 slow_up 4.302 0.817478280706118 -0.5085408943702865 0.2703986304085845
324 slow_up 4.352 0.6109722822106246 -0.6989862373662259 0.37165993911497514
325 slow_up 4.404 0.4672943504185334 -0.7806146992377567 0.4150622620774715
326 slow_up 4.454 0.22797412062338523 -0.859696462259006 0.45711026361846624
327 slow_up 4.504 0.1019805158473573 -0.8783436551347776 0.4670250505829271
328 slow_up 4.556 0.1019805158473573 -0.8783436551347776 0.4670250505829271
329 slow_up 4.606 0.1019805158473573 -0.8783436551347776 0.4670250505829271
330 slow_up 4.656 -0.3183559817455473 -0.8370088449547444 0.4450456856934504
331 slow_up 4.706 -0.47435305110652926 -0.7772894490363829 0.41329202184731645
332 slow_up 4.757 -0.6812740324869003 -0.6463430266112673 0.34366609464715075
333 slow_up 4.807 -0.7410175281701447 -0.5928870382326016 0.3152427363800513
334 slow_up 4.857 -0.7954006377318663 -0.5351408051556996 0.28453847569889373
335 slow_up 4.907 -0.7954006377318663 -0.5351408051556996 0.28453847569889373
336 slow_up 4.957 -0.9382737590874874 -0.3054064703788552 0.16238608579113264
337 slow_up 5.01 -0.9746451076223235 -0.19756585392545004 0.10504593067119374
338 slow_up 5.06 -0.9995555377864727 0.026321162775145374 -0.01399725939459622
339 slow_up 5.11 -0.9933899075837224 0.10135166986621261 -0.05389184099781622
340 slow_up 5.16 -0.9595584087348238 0.24855720515081176 -0.13216268760096483
341 slow_up 5.21 -0.9595584087348238 0.24855720515081176 -0.13216268760096483
342 slow_up 5.26 -0.9595584087348238 0.24855720515081176 -0.13216268760096483
343 slow_up 5.31 -0.9595584087348238 0.24855720515081176 -0.13216268760096483
344 slow_up 5.361 -0.6344321026557155 0.682498725142766 -0.3628930934839445
345 slow_up 5.411 -0.4933419890705726 0.7680182893224405 -0.4083645296620692
346 slow_up 5.461 -0.17152978632357008 0.8698608835422476 -0.4625144059236326
347 slow_up 5.514 -0.1291155327559682 0.8755564233177349 -0.46554283238838295
348 slow_up 5.6 -0.1291155327559682 0.8755564233177349 -0.46554283238838295
349 slow_up 5.65 0.21338902235490834 0.8626108712472731 -0.4586584894498703
350 slow_up 5.7 0.2968244767769392 0.8431549337904639 -0.44831349255949776
351 slow_up 5.75 0.5679548809958221 0.7267188547019362 -0.38640258717266307
352 slow_up 5.801 0.7011935122846394 0.629516423465519 -0.33471888341877687
353 slow_up 5.851 0.7601848090823583 0.5736576506187725 -0.30501796000722453
354 slow_up 5.901 0.7601848090823583 0.5736576506187725 -0.30501796000722453
355 slow_up 5.952 0.919381823157543 0.34732255587449573 -0.18467296886204015
356 fast_up 0.0 0.7436855448063273 -0.5902756462634178 0.3138574069134272
357 fast_up 0.05 0.7436855448063273 -0.5902756462634178 0.3138574069134272
358 fast_up 0.1 0.7436855448063273 -0.5902756462634178 0.3138574069134272
359 fast_up 0.151 0.7415339496885803 -0.5923820730917216 0.3149775879944604
360 fast_up 0.201 0.7251426517885042 -0.6079954954680392 0.32327946431487065
361 fast_up 0.251 0.6911707438303796 -0.6380976912929389 0.3392850412847302
362 fast_up 0.301 0.6755171522407909 -0.6510353167218098 0.34616411340493514
363 fast_up 0.352 0.657506379493412 -0.6652549837006473 0.353724705932335
364 fast_up 0.402 0.657506379493412 -0.6652549837006473 0.353724705932335
365 fast_up 0.452 0.657506379493412 -0.6652549837006473 0.353724705932335
366 fast_up 0.502 0.5133602385345539 -0.7577210603341615 0.40288963776426395
367 fast_up 0.552 0.43935111799574095 -0.7931645569110259 0.42173520220160454
368 fast_up 0.602 0.3981844308412644 -0.8099317212166465 0.43065039881864586
369 fast_up 0.652 0.2686492856912895 -0.8504879652558426 0.4522143100926115
370 fast_up 0.702 0.24641792365539766 -0.8557199718773686 0.4549961940846956
371 fast_up 0.752 0.24641792365539766 -0.8557199718773686 0.4549961940846956
372 fast_up 0.803 0.24641792365539766 -0.8557199718773686 0.4549961940846956
373 fast_up 0.853 0.02057293045563342 -0.8827601620250191 0.4693732532580332
374 fast_up 0.903 -0.07422876549978216 -0.8805113066433957 0.468177241272489
375 fast_up 0.953 -0.21516179433137206 -0.8622672317493021 0.4584764152183838
376 fast_up 1.003 -0.2615988381204001 -0.8522001917503188 0.4531234722178677
377 fast_up 1.053 -0.3303372482550225 -0.8333813503635584 0.4431171710524334
378 fast_up 1.104 -0.3303372482550225 -0.8333813503635584 0.4431171710524334
379 fast_up 1.154 -0.3303372482550225 -0.8333813503635584 0.4431171710524334
380 fast_up 1.204 -0.5438623258853152 -0.7409471258505598 0.39396843423859473
381 fast_up 1.254 -0.6459092452751304 -0.6740549185668148 0.3584009118626741
382 fast_up 1.305 -0.7188503244392938 -0.6137944456673244 0.32635960154630667
383 fast_up 1.355 -0.8147838758289627 -0.5119023505212549 0.2721823271631494
384 fast_up 1.405 -0.8290800352983082 -0.4936828909103429 0.26249475859940974
385 fast_up 1.455 -0.8290800352983082 -0.4936828909103429 0.26249475859940974
386 fast_up 1.505 -0.8290800352983082 -0.4936828909103429 0.26249475859940974
387 fast_up 1.555 -0.9420068922851647 -0.2963122038659241 0.15755028634491672
388 fast_up 1.606 -0.9590164600201834 -0.2501842140742355 0.1330236386452166
389 fast_up 1.656 -0.9924115082243777 -0.10856893811461031 0.05772507271958899
390 fast_up 1.706 -0.9999445866713543 0.009294093939699495 -0.004944027153488152
391 fast_up 1.757 -0.9958913420586946 0.079955429596009 -0.04251545707915836
392 fast_up 1.807 -0.9958913420586946 0.079955429596009 -0.04251545707915836
393 fast_up 1.858 -0.9958913420586946 0.079955429596009 -0.04251545707915836
394 fast_up 1.908 -0.9958913420586946 0.079955429596009 -0.04251545707915836
395 fast_up 1.959 -0.9150231402146553 0.35618113505987486 -0.1893875706036974
396 fast_up 2.009 -0.8604916235298544 0.4498294242203849 -0.23918121778373866
397 fast_up 2.059 -0.7569777758441463 0.5769527254909279 -0.3067738571434005
398 fast_up 2.11 -0.6531020844533343 0.6686284965867637 -0.35551877704958706
399 fast_up 2.16 -0.5843458023963333 0.7165152052928653 -0.38098024070272796
400 fast_up 2.21 -0.5843458023963333 0.7165152052928653 -0.38098024070272796
401 fast_up 2.287 -0.5843458023963333 0.7165152052928653 -0.38098024070272796
402 fast_up 2.337 -0.29759691186014037 0.8429418991475414 -0.44820199989830933
403 fast_up 2.387 -0.17288959048961605 0.8696507226880431 -0.46240329802943353
404 fast_up 2.439 0.0528426867196658 0.8817134989386609 -0.46881654860893207
405 fast_up 2.489 0.11750941653421512 0.8768299049337306 -0.4662197495169991
406 fast_up 2.54 0.3387106575899876 0.8307569097795758 -0.4417216853273653
407 fast_up 2.59 0.3387106575899876 0.8307569097795758 -0.4417216853273653
408 fast_up 2.641 0.3387106575899876 0.8307569097795758 -0.4417216853273653
409 fast_up 2.692 0.3387106575899876 0.8307569097795758 -0.4417216853273653
410 fast_up 2.742 0.6725788995836892 0.6534039040384242 -0.3474204398450665
411 fast_up 2.792 0.7637787136075531 0.569923763588385 -0.30303296905987287
412 fast_up 2.842 0.8420851195741881 0.4762135465397938 -0.25320606130919715
413 fast_up 2.892 0.9059572778692444 0.3738133295921229 -0.19875866093078726
414 fast_up 2.944 0.9320625853533521 0.319890207637745 -0.1700870131488755
415 fast_up 2.994 0.9320625853533521 0.319890207637745 -0.1700870131488755
416 fast_up 3.044 0.9320625853533521 0.319890207637745 -0.1700870131488755
417 fast_up 3.094 0.9995868168775316 -0.025378198850278165 0.013496019700636873
418 fast_up 3.145 0.9737572335070697 -0.2009484251765163 0.1068484001365312
419 fast_up 3.195 0.9343593809559442 -0.3146215313212742 0.16728968661779853
420 fast_up 3.246 0.8432265639718923 -0.47463486271897926 0.2523701822797059
421 fast_up 3.296 0.8245274704190423 -0.4995901221141962 0.2656391545128427
422 fast_up 3.346 0.8245274704190423 -0.4995901221141962 0.2656391545128427
423 fast_up 3.396 0.8245274704190423 -0.4995901221141962 0.2656391545128427
424 fast_up 3.446 0.8245274704190423 -0.4995901221141962 0.2656391545128427
425 fast_up 3.496 0.560559310620797 -0.7311805980446815 0.38877781870801065
426 fast_up 3.546 0.3167082774612079 -0.8374953553597589 0.44530595857049304
427 fast_up 3.598 0.18394843471814523 -0.8678802595262894 0.46146162190297557
428 fast_up 3.648 -0.0905296924928885 -0.8793215748514271 0.46754458907996027
429 fast_up 3.698 -0.15903691458437788 -0.8717096400615488 0.46349710163413776
430 fast_up 3.749 -0.2604128505118988 -0.8524833003013681 0.45327405616862193
431 fast_up 3.799 -0.2604128505118988 -0.8524833003013681 0.45327405616862193
432 fast_up 3.849 -0.484042556809481 -0.7726183440706232 0.4108085899818897
433 fast_up 3.9 -0.6263636201595283 -0.6882851615010694 0.3659674190390409
434 fast_up 3.95 -0.7271348616896539 -0.6061389762113589 0.32228936444290796
435 fast_up 4.0 -0.8335559354602529 -0.48777154516490967 0.25935192728495254
436 fast_up 4.05 -0.9152025193193423 -0.3558231540800539 0.18919363533705685
437 fast_up 4.101 -0.9152025193193423 -0.3558231540800539 0.18919363533705685
438 fast_up 4.151 -0.9152025193193423 -0.3558231540800539 0.18919363533705685
439 fast_up 4.201 -0.9152025193193423 -0.3558231540800539 0.18919363533705685
440 fast_up 4.251 -0.9999653794523607 -0.007347658786176997 0.0039053562011961474
441 fast_up 4.301 -0.9982722741623554 0.05187931833534815 -0.02758628223916066
442 fast_up 4.357 -0.9473362244513863 0.28275503128264595 -0.1503451699474996
443 fast_up 4.407 -0.8965970539364008 0.39101017281360906 -0.20790567002570753
444 fast_up 4.457 -0.8965970539364008 0.39101017281360906 -0.20790567002570753
445 fast_up 4.507 -0.8965970539364008 0.39101017281360906 -0.20790567002570753
446 fast_up 4.557 -0.7494544996760373 0.5845598923018723 -0.31081776851937554
447 fast_up 4.608 -0.6811810712116455 0.6464184443030486 -0.3437085147152765
448 fast_up 4.69 -0.5260437628224534 0.750908769275774 -0.39926680280275867
449 fast_up 4.74 -0.3515317530989304 0.8265937289313039 -0.4395090827896901
450 fast_up 4.79 -0.25921047650601087 0.8527686685878513 -0.45342642925223303
451 fast_up 4.841 -0.25921047650601087 0.8527686685878513 -0.45342642925223303
452 fast_up 4.891 -0.25921047650601087 0.8527686685878513 -0.45342642925223303
453 fast_up 4.941 0.029032410272141315 0.8825750679575304 -0.4692742999286777
454 fast_up 4.991 0.12468465513391183 0.87605725215134 -0.4658083594432166
455 fast_up 5.042 0.312103840700244 0.8388425601545466 -0.4460205733971502
456 fast_up 5.092 0.4601026048132257 0.7839390238700766 -0.41682754215348583
457 fast_up 5.142 0.5962937494197067 0.7088008659157505 -0.3768754394757906
458 fast_up 5.192 0.5962937494197067 0.7088008659157505 -0.3768754394757906
459 fast_up 5.242 0.5962937494197067 0.7088008659157505 -0.3768754394757906
460 fast_up 5.293 0.5962937494197067 0.7088008659157505 -0.3768754394757906
461 fast_up 5.343 0.8713288736836602 0.43326257799090145 -0.2303682538846054
462 fast_up 5.395 0.9274080640937924 0.33026837460772646 -0.17560490707202564
463 fast_up 5.445 0.9924918410489542 0.1079949995732303 -0.05741973108989097
464 fast_up 5.495 0.9983717965936116 0.050365731961324836 -0.026777767092200574
465 fast_up 5.546 0.9999629087894729 -0.007603720153555103 0.004045304082834395
466 fast_up 5.596 0.9999629087894729 -0.007603720153555103 0.004045304082834395
467 fast_up 5.649 0.9999629087894729 -0.007603720153555103 0.004045304082834395
468 fast_up 5.699 0.9319867371924816 -0.3200607761380319 0.17018173014525656
469 fast_up 5.749 0.8597874640302131 -0.4508780240427165 0.2397384494231805
470 fast_up 5.8 0.7409676384604902 -0.5929343161341589 0.3152710825699075
471 fast_up 5.85 0.534386630982945 -0.7463020032608736 0.39681765151704723
472 fast_up 5.9 0.4450856110633426 -0.7906682356171415 0.42040758795536404
473 fast_up 5.954 0.35082136337402364 -0.8268289378421346 0.4396342554297136

View File

@@ -0,0 +1,158 @@
phase,t,ux,uy,uz
slow_roll,0.0,5.364417883966259e-07,0.8829469440778077,-0.4694727829633716
slow_roll,0.05,5.364417883966259e-07,0.8829469440778077,-0.4694727829633716
slow_roll,0.128,0.0003251433520745835,0.907077055804204,-0.4209644986401793
slow_roll,0.178,0.0034536272684164153,0.9557110180986144,-0.2942864630654985
slow_roll,0.229,0.004462063366683055,0.9639291880290134,-0.2661214205137173
slow_roll,0.279,0.004462063366683055,0.9639291880290134,-0.2661214205137173
slow_roll,0.329,0.004462063366683055,0.9639291880290134,-0.2661214205137173
slow_roll,0.38,0.03156978751811861,0.9865808845796968,0.16019209311949129
slow_roll,0.43,0.04618248291021098,0.9261940016468521,0.37420829705611663
slow_roll,0.48,0.07209846660150727,0.7068731466017404,0.7036562837970437
slow_roll,0.531,0.07884267175871004,0.6220030945016755,0.7790352903048027
slow_roll,0.581,0.09389665181370353,0.3775338908873316,0.9212228720617223
slow_roll,0.631,0.09389665181370353,0.3775338908873316,0.9212228720617223
slow_roll,0.681,0.09389665181370353,0.3775338908873316,0.9212228720617223
slow_roll,0.731,0.09389665181370353,0.3775338908873316,0.9212228720617223
slow_roll,0.782,0.11626024739570803,-0.2910297934919785,0.94962372241615
slow_roll,0.832,0.11331737850132788,-0.5957757659732928,0.7951166005112225
slow_roll,0.882,0.10258919760138681,-0.8301250953132597,0.5480581927739564
slow_roll,0.932,0.09172466968431676,-0.9336924862997908,0.3461284819234293
slow_roll,0.982,0.08855641690308262,-0.9521140126478002,0.2926374342851443
slow_roll,1.032,0.08855641690308262,-0.9521140126478002,0.2926374342851443
slow_roll,1.083,0.08855641690308262,-0.9521140126478002,0.2926374342851443
slow_roll,1.133,0.06314271520385657,-0.9856858587151895,-0.15632141710458003
slow_roll,1.183,0.03871241049647199,-0.8771323194061645,-0.4786859550130072
slow_roll,1.233,0.02278590617030732,-0.7469560671312695,-0.6644828336802873
slow_roll,1.283,0.0014766457114187138,-0.48236413746616297,-0.8759695533544346
slow_roll,1.333,-0.009957047288894565,-0.2732769792151122,-0.9618838546520833
slow_roll,1.383,-0.014615090702282351,-0.16289975489324235,-0.986534372933597
slow_roll,1.434,-0.014615090702282351,-0.16289975489324235,-0.986534372933597
slow_roll,1.484,-0.014615090702282351,-0.16289975489324235,-0.986534372933597
slow_roll,1.534,-0.021590294173402004,0.28521754629199986,-0.958219604519067
slow_roll,1.585,-0.018226593529973842,0.6796250267681222,-0.733333221856696
slow_roll,1.638,-0.015215515922222613,0.7588021671351416,-0.6511434244667093
slow_roll,1.688,0.007627889727199663,0.9806664264156518,-0.19553816865119905
slow_roll,1.738,0.02129921910039987,0.999324814604695,0.02993757139457134
slow_roll,1.791,0.024856976638209058,0.9959630755215296,0.0862535965053266
slow_roll,1.841,0.024856976638209058,0.9959630755215296,0.0862535965053266
slow_roll,1.891,0.024856976638209058,0.9959630755215296,0.0862535965053266
slow_roll,1.942,0.07458550391003292,0.7172507675680203,0.6928119073959196
slow_roll,1.992,0.09368970595946137,0.44068963461450666,0.8927569013682068
slow_roll,2.042,0.09891259247091141,0.3354630624781779,0.9368462161760838
slow_roll,2.092,0.11022117626527345,-7.212161947528295e-06,0.9939070843145672
slow_roll,2.142,0.1130640269505834,-0.16963542419702776,0.9789996673478557
slow_roll,2.192,0.1130640269505834,-0.16963542419702776,0.9789996673478557
slow_roll,2.242,0.1130640269505834,-0.16963542419702776,0.9789996673478557
slow_roll,2.293,0.11471063275557963,-0.5849230213172406,0.8029361928982436
slow_roll,2.343,0.11019948262240672,-0.7142827003817095,0.6911268320396532
slow_roll,2.426,0.10141341251295233,-0.8534859365604823,0.5111526932883697
slow_roll,2.477,0.07595491159352484,-0.9936428121723654,0.08309520577634615
slow_roll,2.527,0.06448994421768593,-0.9941772535855863,-0.08632864847674089
slow_roll,2.577,0.06448994421768593,-0.9941772535855863,-0.08632864847674089
slow_roll,2.627,0.06448994421768593,-0.9941772535855863,-0.08632864847674089
slow_roll,2.678,0.06448994421768593,-0.9941772535855863,-0.08632864847674089
slow_roll,2.728,0.028817026488532304,-0.7934000725072533,-0.6080180128333736
slow_roll,2.779,0.0032352514477921655,-0.4937015107403189,-0.8696254086908893
slow_roll,2.829,-0.0030165019643082686,-0.39140603848225103,-0.9202131349614229
slow_roll,2.879,-0.02194342210848925,0.11072398209318217,-0.9936089200563758
slow_roll,2.929,-0.024032596122042907,0.22242838263297865,-0.9746527837763107
slow_roll,2.979,-0.024032596122042907,0.22242838263297865,-0.9746527837763107
slow_roll,3.03,-0.024032596122042907,0.22242838263297865,-0.9746527837763107
slow_roll,3.08,-0.016998113363041106,0.6714604955713218,-0.7408453732252177
slow_roll,3.132,-0.01247060336728103,0.7881419301563627,-0.6153671928052867
slow_roll,3.182,0.0017347782937767963,0.9491205263327873,-0.31490826765590657
slow_roll,3.232,0.007717609638179204,0.97873380750562,-0.20498920104977397
slow_roll,3.282,0.03587973910508903,0.9687888154822927,0.24527713981977012
slow_roll,3.334,0.03587973910508903,0.9687888154822927,0.24527713981977012
slow_roll,3.384,0.03587973910508903,0.9687888154822927,0.24527713981977012
slow_roll,3.434,0.03587973910508903,0.9687888154822927,0.24527713981977012
slow_roll,3.486,0.0773596494901135,0.6831469198642757,0.726171997883917
slow_roll,3.536,0.08396325243571906,0.5951635161658628,0.7992062069738338
slow_roll,3.586,0.10665408569280613,0.12264052944652912,0.9867037075749268
slow_roll,3.637,0.10964775782794625,0.008981705283138778,0.9939299261887182
slow_roll,3.687,0.11339630501426597,-0.27174721513415995,0.955664548403853
slow_roll,3.737,0.11339630501426597,-0.27174721513415995,0.955664548403853
slow_roll,3.787,0.11339630501426597,-0.27174721513415995,0.955664548403853
slow_roll,3.837,0.11339630501426597,-0.27174721513415995,0.955664548403853
slow_roll,3.888,0.10609239313921122,-0.7832115089350282,0.6126370347846358
slow_roll,3.938,0.08995628366017921,-0.9453017089776493,0.3135483153103919
slow_roll,3.988,0.06882244451400554,-0.9974002650242589,-0.021358428328288378
fast_roll,0.0,-0.008855284367132087,-0.1892332671169339,-0.9818922316400249
fast_roll,0.07,-0.009079338778959034,-0.18350878730578224,-0.9829761393792313
fast_roll,0.12,-0.010844887563568405,-0.13094766470039781,-0.9913299639994979
fast_roll,0.171,-0.011626663266558038,-0.1013832901335635,-0.9947794977697217
fast_roll,0.221,-0.013588458181442458,0.11000248694105531,-0.9938384208064378
fast_roll,0.271,-0.013553649516693318,0.13987046820323737,-0.9900770428150457
fast_roll,0.321,-0.013553649516693318,0.13987046820323737,-0.9900770428150457
fast_roll,0.371,-0.013553649516693318,0.13987046820323737,-0.9900770428150457
fast_roll,0.421,-0.006220758125301114,0.49530507440045424,-0.8686968317206567
fast_roll,0.472,-0.003314405697850606,0.5920532974235793,-0.8058919950742387
fast_roll,0.522,0.00441828382207292,0.7619502753296359,-0.647620457284326
fast_roll,0.574,0.007511079032515748,0.810291021781891,-0.5859795591242294
fast_roll,0.624,0.024014725961227404,0.9631712904402981,-0.2678140366160408
fast_roll,0.675,0.02597855007862328,0.9728863746848865,-0.22981996625252366
fast_roll,0.725,0.02597855007862328,0.9728863746848865,-0.22981996625252366
fast_roll,0.776,0.02597855007862328,0.9728863746848865,-0.22981996625252366
fast_roll,0.826,0.04868464141203835,0.9861706433133424,0.15842117269332898
fast_roll,0.876,0.05286310421905672,0.9703418261427044,0.2358860586180681
fast_roll,0.926,0.06484538276965729,0.8874555771771414,0.456308749500427
fast_roll,0.977,0.07218322140163734,0.8043338636706839,0.589776752933406
fast_roll,1.027,0.08026447949825838,0.6727395105986717,0.7355128579503784
fast_roll,1.079,0.08167273377955657,0.6434443447451975,0.761123472093981
fast_roll,1.129,0.08167273377955657,0.6434443447451975,0.761123472093981
fast_roll,1.179,0.08167273377955657,0.6434443447451975,0.761123472093981
fast_roll,1.229,0.09611703670528068,0.26936935196850487,0.9582284004740538
fast_roll,1.28,0.09757823976817694,0.15352635522555744,0.9833148760061042
fast_roll,1.33,0.09823604865691905,-0.08212983146319404,0.9917683043574758
fast_roll,1.38,0.09694679551098685,-0.23748907927294635,0.9665403540805936
fast_roll,1.43,0.09341384952042775,-0.4228500863358093,0.9013720969741483
fast_roll,1.481,0.0924495732731865,-0.4577981398954497,0.8842363595271753
fast_roll,1.567,0.0924495732731865,-0.4577981398954497,0.8842363595271753
fast_roll,1.617,0.0924495732731865,-0.4577981398954497,0.8842363595271753
fast_roll,1.671,0.07640115459065343,-0.8308754661661121,0.5511885551247062
fast_roll,1.721,0.06860250673497353,-0.9076870847962724,0.4140022369066653
fast_roll,1.771,0.06444845651060765,-0.9377356503677196,0.3413183945860967
fast_roll,1.821,0.04452538840952553,-0.9989901855288692,-0.0060082446668173126
fast_roll,1.872,0.03992449458605998,-0.9956634626810288,-0.08402561403566944
fast_roll,1.923,0.03992449458605998,-0.9956634626810288,-0.08402561403566944
fast_roll,1.973,0.03992449458605998,-0.9956634626810288,-0.08402561403566944
fast_roll,2.024,0.022197751797496647,-0.9075294163332098,-0.41940150012254407
fast_roll,2.075,0.015937330627194494,-0.8519898088332791,-0.52331574325326
fast_roll,2.125,0.004667849544530708,-0.7060150524798743,-0.7081814434539146
fast_roll,2.175,0.0013530555546399704,-0.648155304131301,-0.761506973682531
fast_roll,2.226,-0.010055305667179194,-0.34305984964047753,-0.9392597246728897
fast_roll,2.278,-0.010975597965093486,-0.3059300411291784,-0.9519907279926669
fast_roll,2.328,-0.010975597965093486,-0.3059300411291784,-0.9519907279926669
fast_roll,2.379,-0.010975597965093486,-0.3059300411291784,-0.9519907279926669
fast_roll,2.429,-0.013147653645135052,0.04085678327034154,-0.9990785066572235
fast_roll,2.479,-0.013055267066359103,0.15918016034161872,-0.9871632269059877
fast_roll,2.568,-0.010483057404651826,0.38589633572112736,-0.922482587144309
fast_roll,2.618,-0.0025064649020058844,0.652755248321719,-0.7575647189660735
fast_roll,2.669,0.0016507506674964703,0.7373859422292015,-0.6754696493736685
fast_roll,2.719,0.0016507506674964703,0.7373859422292015,-0.6754696493736685
fast_roll,2.769,0.0016507506674964703,0.7373859422292015,-0.6754696493736685
fast_roll,2.82,0.0016507506674964703,0.7373859422292015,-0.6754696493736685
fast_roll,2.87,0.023670912467358265,0.9516266261089918,-0.30634368343966173
fast_roll,2.92,0.03612722161345726,0.9965580319340878,-0.07461174737365275
fast_roll,2.97,0.040383366447819695,0.9991763265386772,0.00398148201251869
fast_roll,3.02,0.05312824253858915,0.9699096092023001,0.23759785315065957
fast_roll,3.071,0.059284390015703244,0.9348424830246419,0.3500784098352654
fast_roll,3.121,0.059284390015703244,0.9348424830246419,0.3500784098352654
fast_roll,3.171,0.059284390015703244,0.9348424830246419,0.3500784098352654
fast_roll,3.221,0.059284390015703244,0.9348424830246419,0.3500784098352654
fast_roll,3.272,0.08072510807136501,0.70137248333348,0.708209076861836
fast_roll,3.322,0.08779502096077971,0.5478328579420104,0.8319682650519702
fast_roll,3.373,0.08779502096077971,0.5478328579420104,0.8319682650519702
fast_roll,3.423,0.09648741582489807,0.18419646700908573,0.9781420347417874
fast_roll,3.475,0.09712661424334584,0.10679261118594469,0.9895260274503708
fast_roll,3.525,0.09712661424334584,0.10679261118594469,0.9895260274503708
fast_roll,3.576,0.09712661424334584,0.10679261118594469,0.9895260274503708
fast_roll,3.626,0.09808125521867511,-0.276992602937651,0.9558531086378043
fast_roll,3.678,0.09588170136722707,-0.3885191729020873,0.9164385149208886
fast_roll,3.728,0.09071503326084339,-0.5619048646134545,0.822212688946248
fast_roll,3.78,0.08808219791306586,-0.6251522557051209,0.7755167203855778
fast_roll,3.83,0.07489843104312643,-0.8360677205153536,0.5434896427159753
fast_roll,3.881,0.0729683550057793,-0.8569144732195361,0.5102677774998492
fast_roll,3.931,0.0729683550057793,-0.8569144732195361,0.5102677774998492
fast_roll,3.982,0.0729683550057793,-0.8569144732195361,0.5102677774998492
1 phase t ux uy uz
2 slow_roll 0.0 5.364417883966259e-07 0.8829469440778077 -0.4694727829633716
3 slow_roll 0.05 5.364417883966259e-07 0.8829469440778077 -0.4694727829633716
4 slow_roll 0.128 0.0003251433520745835 0.907077055804204 -0.4209644986401793
5 slow_roll 0.178 0.0034536272684164153 0.9557110180986144 -0.2942864630654985
6 slow_roll 0.229 0.004462063366683055 0.9639291880290134 -0.2661214205137173
7 slow_roll 0.279 0.004462063366683055 0.9639291880290134 -0.2661214205137173
8 slow_roll 0.329 0.004462063366683055 0.9639291880290134 -0.2661214205137173
9 slow_roll 0.38 0.03156978751811861 0.9865808845796968 0.16019209311949129
10 slow_roll 0.43 0.04618248291021098 0.9261940016468521 0.37420829705611663
11 slow_roll 0.48 0.07209846660150727 0.7068731466017404 0.7036562837970437
12 slow_roll 0.531 0.07884267175871004 0.6220030945016755 0.7790352903048027
13 slow_roll 0.581 0.09389665181370353 0.3775338908873316 0.9212228720617223
14 slow_roll 0.631 0.09389665181370353 0.3775338908873316 0.9212228720617223
15 slow_roll 0.681 0.09389665181370353 0.3775338908873316 0.9212228720617223
16 slow_roll 0.731 0.09389665181370353 0.3775338908873316 0.9212228720617223
17 slow_roll 0.782 0.11626024739570803 -0.2910297934919785 0.94962372241615
18 slow_roll 0.832 0.11331737850132788 -0.5957757659732928 0.7951166005112225
19 slow_roll 0.882 0.10258919760138681 -0.8301250953132597 0.5480581927739564
20 slow_roll 0.932 0.09172466968431676 -0.9336924862997908 0.3461284819234293
21 slow_roll 0.982 0.08855641690308262 -0.9521140126478002 0.2926374342851443
22 slow_roll 1.032 0.08855641690308262 -0.9521140126478002 0.2926374342851443
23 slow_roll 1.083 0.08855641690308262 -0.9521140126478002 0.2926374342851443
24 slow_roll 1.133 0.06314271520385657 -0.9856858587151895 -0.15632141710458003
25 slow_roll 1.183 0.03871241049647199 -0.8771323194061645 -0.4786859550130072
26 slow_roll 1.233 0.02278590617030732 -0.7469560671312695 -0.6644828336802873
27 slow_roll 1.283 0.0014766457114187138 -0.48236413746616297 -0.8759695533544346
28 slow_roll 1.333 -0.009957047288894565 -0.2732769792151122 -0.9618838546520833
29 slow_roll 1.383 -0.014615090702282351 -0.16289975489324235 -0.986534372933597
30 slow_roll 1.434 -0.014615090702282351 -0.16289975489324235 -0.986534372933597
31 slow_roll 1.484 -0.014615090702282351 -0.16289975489324235 -0.986534372933597
32 slow_roll 1.534 -0.021590294173402004 0.28521754629199986 -0.958219604519067
33 slow_roll 1.585 -0.018226593529973842 0.6796250267681222 -0.733333221856696
34 slow_roll 1.638 -0.015215515922222613 0.7588021671351416 -0.6511434244667093
35 slow_roll 1.688 0.007627889727199663 0.9806664264156518 -0.19553816865119905
36 slow_roll 1.738 0.02129921910039987 0.999324814604695 0.02993757139457134
37 slow_roll 1.791 0.024856976638209058 0.9959630755215296 0.0862535965053266
38 slow_roll 1.841 0.024856976638209058 0.9959630755215296 0.0862535965053266
39 slow_roll 1.891 0.024856976638209058 0.9959630755215296 0.0862535965053266
40 slow_roll 1.942 0.07458550391003292 0.7172507675680203 0.6928119073959196
41 slow_roll 1.992 0.09368970595946137 0.44068963461450666 0.8927569013682068
42 slow_roll 2.042 0.09891259247091141 0.3354630624781779 0.9368462161760838
43 slow_roll 2.092 0.11022117626527345 -7.212161947528295e-06 0.9939070843145672
44 slow_roll 2.142 0.1130640269505834 -0.16963542419702776 0.9789996673478557
45 slow_roll 2.192 0.1130640269505834 -0.16963542419702776 0.9789996673478557
46 slow_roll 2.242 0.1130640269505834 -0.16963542419702776 0.9789996673478557
47 slow_roll 2.293 0.11471063275557963 -0.5849230213172406 0.8029361928982436
48 slow_roll 2.343 0.11019948262240672 -0.7142827003817095 0.6911268320396532
49 slow_roll 2.426 0.10141341251295233 -0.8534859365604823 0.5111526932883697
50 slow_roll 2.477 0.07595491159352484 -0.9936428121723654 0.08309520577634615
51 slow_roll 2.527 0.06448994421768593 -0.9941772535855863 -0.08632864847674089
52 slow_roll 2.577 0.06448994421768593 -0.9941772535855863 -0.08632864847674089
53 slow_roll 2.627 0.06448994421768593 -0.9941772535855863 -0.08632864847674089
54 slow_roll 2.678 0.06448994421768593 -0.9941772535855863 -0.08632864847674089
55 slow_roll 2.728 0.028817026488532304 -0.7934000725072533 -0.6080180128333736
56 slow_roll 2.779 0.0032352514477921655 -0.4937015107403189 -0.8696254086908893
57 slow_roll 2.829 -0.0030165019643082686 -0.39140603848225103 -0.9202131349614229
58 slow_roll 2.879 -0.02194342210848925 0.11072398209318217 -0.9936089200563758
59 slow_roll 2.929 -0.024032596122042907 0.22242838263297865 -0.9746527837763107
60 slow_roll 2.979 -0.024032596122042907 0.22242838263297865 -0.9746527837763107
61 slow_roll 3.03 -0.024032596122042907 0.22242838263297865 -0.9746527837763107
62 slow_roll 3.08 -0.016998113363041106 0.6714604955713218 -0.7408453732252177
63 slow_roll 3.132 -0.01247060336728103 0.7881419301563627 -0.6153671928052867
64 slow_roll 3.182 0.0017347782937767963 0.9491205263327873 -0.31490826765590657
65 slow_roll 3.232 0.007717609638179204 0.97873380750562 -0.20498920104977397
66 slow_roll 3.282 0.03587973910508903 0.9687888154822927 0.24527713981977012
67 slow_roll 3.334 0.03587973910508903 0.9687888154822927 0.24527713981977012
68 slow_roll 3.384 0.03587973910508903 0.9687888154822927 0.24527713981977012
69 slow_roll 3.434 0.03587973910508903 0.9687888154822927 0.24527713981977012
70 slow_roll 3.486 0.0773596494901135 0.6831469198642757 0.726171997883917
71 slow_roll 3.536 0.08396325243571906 0.5951635161658628 0.7992062069738338
72 slow_roll 3.586 0.10665408569280613 0.12264052944652912 0.9867037075749268
73 slow_roll 3.637 0.10964775782794625 0.008981705283138778 0.9939299261887182
74 slow_roll 3.687 0.11339630501426597 -0.27174721513415995 0.955664548403853
75 slow_roll 3.737 0.11339630501426597 -0.27174721513415995 0.955664548403853
76 slow_roll 3.787 0.11339630501426597 -0.27174721513415995 0.955664548403853
77 slow_roll 3.837 0.11339630501426597 -0.27174721513415995 0.955664548403853
78 slow_roll 3.888 0.10609239313921122 -0.7832115089350282 0.6126370347846358
79 slow_roll 3.938 0.08995628366017921 -0.9453017089776493 0.3135483153103919
80 slow_roll 3.988 0.06882244451400554 -0.9974002650242589 -0.021358428328288378
81 fast_roll 0.0 -0.008855284367132087 -0.1892332671169339 -0.9818922316400249
82 fast_roll 0.07 -0.009079338778959034 -0.18350878730578224 -0.9829761393792313
83 fast_roll 0.12 -0.010844887563568405 -0.13094766470039781 -0.9913299639994979
84 fast_roll 0.171 -0.011626663266558038 -0.1013832901335635 -0.9947794977697217
85 fast_roll 0.221 -0.013588458181442458 0.11000248694105531 -0.9938384208064378
86 fast_roll 0.271 -0.013553649516693318 0.13987046820323737 -0.9900770428150457
87 fast_roll 0.321 -0.013553649516693318 0.13987046820323737 -0.9900770428150457
88 fast_roll 0.371 -0.013553649516693318 0.13987046820323737 -0.9900770428150457
89 fast_roll 0.421 -0.006220758125301114 0.49530507440045424 -0.8686968317206567
90 fast_roll 0.472 -0.003314405697850606 0.5920532974235793 -0.8058919950742387
91 fast_roll 0.522 0.00441828382207292 0.7619502753296359 -0.647620457284326
92 fast_roll 0.574 0.007511079032515748 0.810291021781891 -0.5859795591242294
93 fast_roll 0.624 0.024014725961227404 0.9631712904402981 -0.2678140366160408
94 fast_roll 0.675 0.02597855007862328 0.9728863746848865 -0.22981996625252366
95 fast_roll 0.725 0.02597855007862328 0.9728863746848865 -0.22981996625252366
96 fast_roll 0.776 0.02597855007862328 0.9728863746848865 -0.22981996625252366
97 fast_roll 0.826 0.04868464141203835 0.9861706433133424 0.15842117269332898
98 fast_roll 0.876 0.05286310421905672 0.9703418261427044 0.2358860586180681
99 fast_roll 0.926 0.06484538276965729 0.8874555771771414 0.456308749500427
100 fast_roll 0.977 0.07218322140163734 0.8043338636706839 0.589776752933406
101 fast_roll 1.027 0.08026447949825838 0.6727395105986717 0.7355128579503784
102 fast_roll 1.079 0.08167273377955657 0.6434443447451975 0.761123472093981
103 fast_roll 1.129 0.08167273377955657 0.6434443447451975 0.761123472093981
104 fast_roll 1.179 0.08167273377955657 0.6434443447451975 0.761123472093981
105 fast_roll 1.229 0.09611703670528068 0.26936935196850487 0.9582284004740538
106 fast_roll 1.28 0.09757823976817694 0.15352635522555744 0.9833148760061042
107 fast_roll 1.33 0.09823604865691905 -0.08212983146319404 0.9917683043574758
108 fast_roll 1.38 0.09694679551098685 -0.23748907927294635 0.9665403540805936
109 fast_roll 1.43 0.09341384952042775 -0.4228500863358093 0.9013720969741483
110 fast_roll 1.481 0.0924495732731865 -0.4577981398954497 0.8842363595271753
111 fast_roll 1.567 0.0924495732731865 -0.4577981398954497 0.8842363595271753
112 fast_roll 1.617 0.0924495732731865 -0.4577981398954497 0.8842363595271753
113 fast_roll 1.671 0.07640115459065343 -0.8308754661661121 0.5511885551247062
114 fast_roll 1.721 0.06860250673497353 -0.9076870847962724 0.4140022369066653
115 fast_roll 1.771 0.06444845651060765 -0.9377356503677196 0.3413183945860967
116 fast_roll 1.821 0.04452538840952553 -0.9989901855288692 -0.0060082446668173126
117 fast_roll 1.872 0.03992449458605998 -0.9956634626810288 -0.08402561403566944
118 fast_roll 1.923 0.03992449458605998 -0.9956634626810288 -0.08402561403566944
119 fast_roll 1.973 0.03992449458605998 -0.9956634626810288 -0.08402561403566944
120 fast_roll 2.024 0.022197751797496647 -0.9075294163332098 -0.41940150012254407
121 fast_roll 2.075 0.015937330627194494 -0.8519898088332791 -0.52331574325326
122 fast_roll 2.125 0.004667849544530708 -0.7060150524798743 -0.7081814434539146
123 fast_roll 2.175 0.0013530555546399704 -0.648155304131301 -0.761506973682531
124 fast_roll 2.226 -0.010055305667179194 -0.34305984964047753 -0.9392597246728897
125 fast_roll 2.278 -0.010975597965093486 -0.3059300411291784 -0.9519907279926669
126 fast_roll 2.328 -0.010975597965093486 -0.3059300411291784 -0.9519907279926669
127 fast_roll 2.379 -0.010975597965093486 -0.3059300411291784 -0.9519907279926669
128 fast_roll 2.429 -0.013147653645135052 0.04085678327034154 -0.9990785066572235
129 fast_roll 2.479 -0.013055267066359103 0.15918016034161872 -0.9871632269059877
130 fast_roll 2.568 -0.010483057404651826 0.38589633572112736 -0.922482587144309
131 fast_roll 2.618 -0.0025064649020058844 0.652755248321719 -0.7575647189660735
132 fast_roll 2.669 0.0016507506674964703 0.7373859422292015 -0.6754696493736685
133 fast_roll 2.719 0.0016507506674964703 0.7373859422292015 -0.6754696493736685
134 fast_roll 2.769 0.0016507506674964703 0.7373859422292015 -0.6754696493736685
135 fast_roll 2.82 0.0016507506674964703 0.7373859422292015 -0.6754696493736685
136 fast_roll 2.87 0.023670912467358265 0.9516266261089918 -0.30634368343966173
137 fast_roll 2.92 0.03612722161345726 0.9965580319340878 -0.07461174737365275
138 fast_roll 2.97 0.040383366447819695 0.9991763265386772 0.00398148201251869
139 fast_roll 3.02 0.05312824253858915 0.9699096092023001 0.23759785315065957
140 fast_roll 3.071 0.059284390015703244 0.9348424830246419 0.3500784098352654
141 fast_roll 3.121 0.059284390015703244 0.9348424830246419 0.3500784098352654
142 fast_roll 3.171 0.059284390015703244 0.9348424830246419 0.3500784098352654
143 fast_roll 3.221 0.059284390015703244 0.9348424830246419 0.3500784098352654
144 fast_roll 3.272 0.08072510807136501 0.70137248333348 0.708209076861836
145 fast_roll 3.322 0.08779502096077971 0.5478328579420104 0.8319682650519702
146 fast_roll 3.373 0.08779502096077971 0.5478328579420104 0.8319682650519702
147 fast_roll 3.423 0.09648741582489807 0.18419646700908573 0.9781420347417874
148 fast_roll 3.475 0.09712661424334584 0.10679261118594469 0.9895260274503708
149 fast_roll 3.525 0.09712661424334584 0.10679261118594469 0.9895260274503708
150 fast_roll 3.576 0.09712661424334584 0.10679261118594469 0.9895260274503708
151 fast_roll 3.626 0.09808125521867511 -0.276992602937651 0.9558531086378043
152 fast_roll 3.678 0.09588170136722707 -0.3885191729020873 0.9164385149208886
153 fast_roll 3.728 0.09071503326084339 -0.5619048646134545 0.822212688946248
154 fast_roll 3.78 0.08808219791306586 -0.6251522557051209 0.7755167203855778
155 fast_roll 3.83 0.07489843104312643 -0.8360677205153536 0.5434896427159753
156 fast_roll 3.881 0.0729683550057793 -0.8569144732195361 0.5102677774998492
157 fast_roll 3.931 0.0729683550057793 -0.8569144732195361 0.5102677774998492
158 fast_roll 3.982 0.0729683550057793 -0.8569144732195361 0.5102677774998492

View File

@@ -0,0 +1,397 @@
phase,t,ax,ay,az
pitch_slow,0.0,-0.9999999999979217,-5.364418989006872e-07,-1.9669536293025197e-06
pitch_slow,0.05,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
pitch_slow,0.101,-0.9999946097522772,-0.002899959954216824,0.0015397073276159146
pitch_slow,0.151,-0.9996914710730174,-0.02193220056967232,0.011659384290695667
pitch_slow,0.201,-0.9990433177471238,-0.03861357394968149,0.02052903240905178
pitch_slow,0.251,-0.9955393575780669,-0.08330440446892036,0.04429180182752193
pitch_slow,0.301,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
pitch_slow,0.352,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
pitch_slow,0.402,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
pitch_slow,0.452,-0.9665289434485363,-0.2265277037558541,0.120445011965445
pitch_slow,0.503,-0.9524349663446977,-0.2690718666714829,0.14306629739354546
pitch_slow,0.553,-0.9108739498774162,-0.3643795134075017,0.19374265829606738
pitch_slow,0.604,-0.8927282973927168,-0.39785273467789245,0.21154051277148683
pitch_slow,0.654,-0.8045973153675007,-0.5243130904039117,0.27878117464152785
pitch_slow,0.707,-0.7919632518359564,-0.539100668887106,0.2866438147717345
pitch_slow,0.757,-0.7919632518359564,-0.539100668887106,0.2866438147717345
pitch_slow,0.807,-0.7919632518359564,-0.539100668887106,0.2866438147717345
pitch_slow,0.858,-0.6306143663605143,-0.6852525159721327,0.36435492352044474
pitch_slow,0.909,-0.5969978086641158,-0.7083385123283029,0.3766300152706506
pitch_slow,0.989,-0.4901269140966694,-0.7696220973259926,0.40921563433673497
pitch_slow,1.039,-0.2959745212014831,-0.8433875991219522,0.4484377776758578
pitch_slow,1.089,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
pitch_slow,1.139,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
pitch_slow,1.189,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
pitch_slow,1.24,-0.06819632577165725,-0.8808914329655914,0.4683797011817154
pitch_slow,1.291,-0.04700410626905134,-0.8819710505695748,0.46895381430482924
pitch_slow,1.341,0.0804919641427089,-0.8800818771721879,0.46794971223575604
pitch_slow,1.392,0.12273622707003892,-0.8762710913963212,0.465923591319126
pitch_slow,1.443,0.24764949379728085,-0.8554426534039724,0.454848980387031
pitch_slow,1.493,0.2680409389698348,-0.850637454777343,0.45229412506254507
pitch_slow,1.543,0.2680409389698348,-0.850637454777343,0.45229412506254507
pitch_slow,1.593,0.2680409389698348,-0.850637454777343,0.45229412506254507
pitch_slow,1.646,0.44568378731971126,-0.790405284398606,0.42026830491379813
pitch_slow,1.696,0.5199457201418952,-0.7542121380720035,0.40102431209464473
pitch_slow,1.746,0.6404468011624063,-0.6781048415424452,0.36055751102637784
pitch_slow,1.796,0.7030142148952,-0.6279298245105502,0.33387894384856803
pitch_slow,1.848,0.7323232029501937,-0.6012483512095225,0.3196922685780814
pitch_slow,1.898,0.7323232029501937,-0.6012483512095225,0.3196922685780814
pitch_slow,1.948,0.7323232029501937,-0.6012483512095225,0.3196922685780814
pitch_slow,1.998,0.7323232029501937,-0.6012483512095225,0.3196922685780814
pitch_slow,2.048,0.8897380340111771,-0.4030392516581421,0.21430257221221208
pitch_slow,2.099,0.933233802564986,-0.31721510699436495,0.1686690417493688
pitch_slow,2.149,0.9603861359896795,-0.24605226051444695,0.1308310165616077
pitch_slow,2.199,0.980573947813806,-0.17318882586052553,0.09208888893835017
pitch_slow,2.249,0.9958260680318584,-0.08058666195316148,0.042851279367782436
pitch_slow,2.299,0.9958260680318584,-0.08058666195316148,0.042851279367782436
pitch_slow,2.349,0.9958260680318584,-0.08058666195316148,0.042851279367782436
pitch_slow,2.399,0.9958260680318584,-0.08058666195316148,0.042851279367782436
pitch_slow,2.449,0.9867075939747381,0.14348496871944313,-0.07629015496224935
pitch_slow,2.502,0.9788907200689967,0.18046150766335733,-0.09595104175916487
pitch_slow,2.552,0.9376915842954128,0.30679733050810604,-0.16312538347743036
pitch_slow,2.602,0.8955218717201378,0.3929277552667634,-0.208921890695742
pitch_slow,2.652,0.8074786582920991,0.5208483459556673,-0.2769390129939024
pitch_slow,2.705,0.7948361291190185,0.5357942751067662,-0.2848859817714975
pitch_slow,2.755,0.7948361291190185,0.5357942751067662,-0.2848859817714975
pitch_slow,2.805,0.7948361291190185,0.5357942751067662,-0.2848859817714975
pitch_slow,2.855,0.7948361291190185,0.5357942751067662,-0.2848859817714975
pitch_slow,2.907,0.5994415250023212,0.706727700968031,-0.3757736217290043
pitch_slow,2.957,0.49283526451379894,0.7682725100239381,-0.408498166939745
pitch_slow,3.007,0.39786304462993477,0.810055404003031,-0.430714801421178
pitch_slow,3.089,0.318739170854854,0.8368948941205249,-0.4449857044420142
pitch_slow,3.139,0.17535239247571457,0.8692665281025396,-0.46219827084661375
pitch_slow,3.189,0.17535239247571457,0.8692665281025396,-0.46219827084661375
pitch_slow,3.24,0.17535239247571457,0.8692665281025396,-0.46219827084661375
pitch_slow,3.29,0.17535239247571457,0.8692665281025396,-0.46219827084661375
pitch_slow,3.341,-0.09908743529417109,0.8786016525498629,-0.4671625159443696
pitch_slow,3.391,-0.14138414029685945,0.8740774161778089,-0.464757135932783
pitch_slow,3.441,-0.26633940859742644,0.8510540435243772,-0.45251556263711057
pitch_slow,3.491,-0.30709438990594357,0.8402818955853142,-0.44678783739023986
pitch_slow,3.541,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
pitch_slow,3.591,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
pitch_slow,3.642,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
pitch_slow,3.695,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
pitch_slow,3.745,-0.6562113189584854,0.6662510666680376,-0.3542544580304771
pitch_slow,3.796,-0.7469125955220236,0.5870904643133257,-0.31216399754442814
pitch_slow,3.846,-0.8253836786665388,0.49848665361931915,-0.2650525215015027
pitch_slow,3.899,-0.8702852029309188,0.43489315599579026,-0.23123928824382511
pitch_slow,3.949,-0.9257474045462728,0.3338789511759494,-0.17752912137868407
pitch_slow,3.999,-0.9257474045462728,0.3338789511759494,-0.17752912137868407
pitch_mid,0.0,-0.9816648888232054,-0.16830355359423707,0.08948720522664506
pitch_mid,0.05,-0.9810975290596479,-0.17086321869736415,0.09084821940704273
pitch_mid,0.1,-0.9789055744250569,-0.18039841850141844,0.09591812634604903
pitch_mid,0.151,-0.9720546521805088,-0.2072765936920349,0.11020964967577598
pitch_mid,0.201,-0.9685934206365122,-0.21954537835213525,0.11673308161733022
pitch_mid,0.251,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
pitch_mid,0.301,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
pitch_mid,0.352,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
pitch_mid,0.403,-0.9299022445524333,-0.3247544249367914,0.17267419917382107
pitch_mid,0.453,-0.8941007235504668,-0.39544242183534284,0.21025980871181893
pitch_mid,0.503,-0.878818394880348,-0.42130434615048,0.22401088530391827
pitch_mid,0.553,-0.8210382535878776,-0.5040511900472064,0.26800855202280954
pitch_mid,0.603,-0.7987442841989482,-0.531243736804092,0.2824670964306011
pitch_mid,0.653,-0.7987442841989482,-0.531243736804092,0.2824670964306011
pitch_mid,0.704,-0.7987442841989482,-0.531243736804092,0.2824670964306011
pitch_mid,0.754,-0.7987442841989482,-0.531243736804092,0.2824670964306011
pitch_mid,0.804,-0.6703148659769064,-0.6552147427406548,0.3483843012330774
pitch_mid,0.855,-0.5483367797483034,-0.7383712411310113,0.3925999060696661
pitch_mid,0.905,-0.5483367797483034,-0.7383712411310113,0.3925999060696661
pitch_mid,0.955,-0.4487495579282873,-0.7890522755928274,0.4195477811178932
pitch_mid,1.007,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
pitch_mid,1.058,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
pitch_mid,1.108,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
pitch_mid,1.158,-0.2145711905918272,-0.8623815090531974,0.45853826122924113
pitch_mid,1.208,-0.19538810247600916,-0.8659288745293109,0.46042444946725575
pitch_mid,1.258,-0.020561785443441487,-0.8827600285609496,0.46937399262682766
pitch_mid,1.309,-0.020561785443441487,-0.8827600285609496,0.46937399262682766
pitch_mid,1.359,0.15293449802923037,-0.8725598819330923,0.4639507428094662
pitch_mid,1.409,0.17190451458064285,-0.869802646207114,0.4624848046345908
pitch_mid,1.459,0.17190451458064285,-0.869802646207114,0.4624848046345908
pitch_mid,1.509,0.17190451458064285,-0.869802646207114,0.4624848046345908
pitch_mid,1.559,0.32147374512483523,-0.8360783992242294,0.4445531931569748
pitch_mid,1.61,0.39499557938420454,-0.8111479471335701,0.43129746130476065
pitch_mid,1.66,0.5495718115709906,-0.7376542883593693,0.3922205690572743
pitch_mid,1.711,0.5815293845209076,-0.7182991118346882,0.38192926161297525
pitch_mid,1.761,0.6124392459964019,-0.6979845517377493,0.37112765391279023
pitch_mid,1.811,0.6124392459964019,-0.6979845517377493,0.37112765391279023
pitch_mid,1.861,0.6124392459964019,-0.6979845517377493,0.37112765391279023
pitch_mid,1.911,0.6124392459964019,-0.6979845517377493,0.37112765391279023
pitch_mid,1.961,0.7785765031694168,-0.5540923970909359,0.294618811684698
pitch_mid,2.013,0.8368345419742745,-0.4833737565967571,0.257017043777733
pitch_mid,2.063,0.8954853668773045,-0.3929909578852798,0.20895948106996629
pitch_mid,2.113,0.9122278787664543,-0.3617276762612271,0.19233664608677187
pitch_mid,2.165,0.9346839297400513,-0.3138690827235641,0.1668896353760875
pitch_mid,2.216,0.9346839297400513,-0.3138690827235641,0.1668896353760875
pitch_mid,2.266,0.9346839297400513,-0.3138690827235641,0.1668896353760875
pitch_mid,2.316,0.9858281374907293,-0.1481209242722237,0.078759603378267
pitch_mid,2.366,0.9941186237329943,-0.09561938551914852,0.050843830109049304
pitch_mid,2.416,0.9995934657948521,-0.025173307197407468,0.01338684970338031
pitch_mid,2.466,0.9887113359982596,0.13229521133882916,-0.07034110551698297
pitch_mid,2.516,0.9780864001457492,0.18382969276719566,-0.09774271280790084
pitch_mid,2.566,0.958687336730862,0.25116550323250036,-0.133545798802701
pitch_mid,2.618,0.958687336730862,0.25116550323250036,-0.133545798802701
pitch_mid,2.7,0.958687336730862,0.25116550323250036,-0.133545798802701
pitch_mid,2.75,0.958687336730862,0.25116550323250036,-0.133545798802701
pitch_mid,2.8,0.8655891820395757,0.44214057059579587,-0.23508952288284238
pitch_mid,2.85,0.774505313261317,0.5585239764741124,-0.29697219976545675
pitch_mid,2.901,0.7486457582891431,0.5853679923169459,-0.3112456299556701
pitch_mid,2.951,0.649419187957182,0.6714202776236611,-0.35700074104797064
pitch_mid,3.001,0.5873275292440099,0.71461285445045,-0.3799668954610477
pitch_mid,3.051,0.4708037762291508,0.7789694709287421,-0.4141863924000489
pitch_mid,3.101,0.4708037762291508,0.7789694709287421,-0.4141863924000489
pitch_mid,3.151,0.4708037762291508,0.7789694709287421,-0.4141863924000489
pitch_mid,3.201,0.4708037762291508,0.7789694709287421,-0.4141863924000489
pitch_mid,3.251,0.2519525835347419,0.8544627076303289,-0.4543273895763011
pitch_mid,3.302,0.2128006333502304,0.8627235754094408,-0.4587198740827476
pitch_mid,3.352,0.05407075118963116,0.8816552045589018,-0.468786149688736
pitch_mid,3.402,0.01418978409318777,0.8828579500186226,-0.46942570244534326
pitch_mid,3.453,-0.14418506374713955,0.8737205730756915,-0.46456757051748526
pitch_mid,3.503,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
pitch_mid,3.553,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
pitch_mid,3.604,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
pitch_mid,3.654,-0.35427595284385854,0.8256794667561332,-0.4390238802319113
pitch_mid,3.704,-0.3912019273537199,0.8125800850081012,-0.43205862736781675
pitch_mid,3.754,-0.5482164422060858,0.7384403493165538,-0.3926379795640603
pitch_mid,3.804,-0.5807364030212269,0.7187993267341519,-0.38219465994764656
pitch_mid,3.856,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
pitch_mid,3.907,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
pitch_mid,3.957,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
pitch_fast,0.0,-0.9658675830256226,0.2287146756684362,-0.1216117148720633
pitch_fast,0.052,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
pitch_fast,0.102,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
pitch_fast,0.152,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
pitch_fast,0.202,-0.9664701307517564,0.22672168832295678,-0.1205519075281309
pitch_fast,0.252,-0.9672076235909816,0.22425644292630353,-0.11924118698473131
pitch_fast,0.302,-0.9708059463052539,0.21178855073766029,-0.11261183061651185
pitch_fast,0.352,-0.9767019499389217,0.18948015575759153,-0.10075004496071996
pitch_fast,0.402,-0.9828596538946014,0.16277540934979576,-0.0865509494875172
pitch_fast,0.453,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
pitch_fast,0.503,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
pitch_fast,0.553,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
pitch_fast,0.604,-0.9969658526909927,0.06872814001554328,-0.03654492219345491
pitch_fast,0.654,-0.9997555993589555,0.01951919570264511,-0.010379910863662752
pitch_fast,0.704,-0.999639503820263,-0.023706604137760323,0.01260394074223997
pitch_fast,0.754,-0.9949411990718958,-0.08870043606639172,0.047161881122471744
pitch_fast,0.804,-0.9868629348189862,-0.14264913437357063,0.07584703252552663
pitch_fast,0.855,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
pitch_fast,0.905,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
pitch_fast,0.955,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
pitch_fast,1.005,-0.9556544968116132,-0.2600196152203893,0.13825441195268626
pitch_fast,1.055,-0.9350970976005369,-0.3129094240539954,0.16637641178138443
pitch_fast,1.106,-0.9163015999238947,-0.35361089987496885,0.18801784347908457
pitch_fast,1.186,-0.8838134201281153,-0.41307791101375835,0.21963715039572226
pitch_fast,1.236,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
pitch_fast,1.287,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
pitch_fast,1.338,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
pitch_fast,1.388,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
pitch_fast,1.438,-0.7493450951253482,-0.5846697798695479,0.3108748573282781
pitch_fast,1.488,-0.7319942059929913,-0.6015615906409889,0.31985642882107823
pitch_fast,1.54,-0.6685767864516847,-0.6565976821256674,0.34911969930833103
pitch_fast,1.59,-0.6495652494628392,-0.6713099785415564,0.35694243149395194
pitch_fast,1.64,-0.600269177220929,-0.7061793659967437,0.3754831792756447
pitch_fast,1.692,-0.5902399761670327,-0.7127394615556399,0.378971279222736
pitch_fast,1.742,-0.5902399761670327,-0.7127394615556399,0.378971279222736
pitch_fast,1.792,-0.5902399761670327,-0.7127394615556399,0.378971279222736
pitch_fast,1.842,-0.4744737419514673,-0.7772313800698689,0.413262688895646
pitch_fast,1.894,-0.41659370360552633,-0.8026806747323841,0.426794353907588
pitch_fast,1.944,-0.36930494798762,-0.8205298691575033,0.43628498623288875
pitch_fast,1.994,-0.3214551905466611,-0.8360842723890491,0.4445555645071649
pitch_fast,2.044,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
pitch_fast,2.094,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
pitch_fast,2.145,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
pitch_fast,2.195,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
pitch_fast,2.246,-0.15018401469533893,-0.8729324279310241,0.4641484008336534
pitch_fast,2.296,-0.085167143910571,-0.8797387312536471,0.46776738057536615
pitch_fast,2.347,-0.00785863441309952,-0.8829194777000005,0.46945866459478597
pitch_fast,2.397,0.017787069774809663,-0.882807050745268,0.4693989042416567
pitch_fast,2.447,0.06928193596374152,-0.880825046181548,0.46834522669542594
pitch_fast,2.497,0.06928193596374152,-0.880825046181548,0.46834522669542594
pitch_fast,2.55,0.06928193596374152,-0.880825046181548,0.46834522669542594
pitch_fast,2.6,0.06928193596374152,-0.880825046181548,0.46834522669542594
pitch_fast,2.651,0.21198297365514238,-0.8628802036656676,0.4588038502478148
pitch_fast,2.702,0.2764694675691825,-0.8485316906739566,0.4511746928009255
pitch_fast,2.786,0.37429753186942033,-0.8187640417930946,0.4353467600695977
pitch_fast,2.836,0.40981689666516385,-0.8053954345525633,0.4282386077989958
pitch_fast,2.886,0.40981689666516385,-0.8053954345525633,0.4282386077989958
pitch_fast,2.936,0.40981689666516385,-0.8053954345525633,0.4282386077989958
pitch_fast,2.986,0.40981689666516385,-0.8053954345525633,0.4282386077989958
pitch_fast,3.036,0.5566205022404467,-0.733522684693819,0.39002318844546285
pitch_fast,3.087,0.5998982910452404,-0.7064244402176132,0.37561489675495024
pitch_fast,3.137,0.6701810944739728,-0.6553205823511672,0.34844258487819035
pitch_fast,3.187,0.6891597392050487,-0.639791239336044,0.34018527882270017
pitch_fast,3.243,0.725701824041233,-0.6074752934115958,0.3230025239494625
pitch_fast,3.293,0.725701824041233,-0.6074752934115958,0.3230025239494625
pitch_fast,3.343,0.725701824041233,-0.6074752934115958,0.3230025239494625
pitch_fast,3.393,0.725701824041233,-0.6074752934115958,0.3230025239494625
pitch_fast,3.445,0.8389337242743994,-0.4805288759274782,0.25550382712390113
pitch_fast,3.495,0.8799044064239339,-0.4195323653889136,0.22307135617763135
pitch_fast,3.545,0.9141904204223267,-0.35784452205993644,0.19027131481057563
pitch_fast,3.596,0.9243948817285977,-0.33678800362072325,0.17907524466307298
pitch_fast,3.646,0.9473286584095463,-0.2827747557609607,0.1503557463494435
pitch_fast,3.696,0.9473286584095463,-0.2827747557609607,0.1503557463494435
pitch_fast,3.746,0.9473286584095463,-0.2827747557609607,0.1503557463494435
pitch_fast,3.796,0.9473286584095463,-0.2827747557609607,0.1503557463494435
pitch_fast,3.846,0.9877392592272928,-0.13783858151526024,0.07329175415406497
pitch_fast,3.899,0.9948580115516917,-0.08942388935224614,0.04754897332783676
pitch_fast,3.949,0.999765524196005,-0.019118849051913748,0.010166918904840748
pitch_fast,3.999,0.9990569989225466,0.03833614305138446,-0.020382665179474877
roll_slow,0.0,0.49464193227975,-0.7673659362109184,0.4080182333838721
roll_slow,0.051,0.4945496776180339,-0.7598559960158229,0.4219472498864052
roll_slow,0.101,0.490520535370487,-0.7112149514342452,0.5035502926582757
roll_slow,0.151,0.47881435208968187,-0.6485736215805378,0.5916832544722247
roll_slow,0.201,0.45245216893643586,-0.5542244875816128,0.6986574641336151
roll_slow,0.252,0.4323161301272065,-0.4947074292801451,0.7539014014092735
roll_slow,0.302,0.4323161301272065,-0.4947074292801451,0.7539014014092735
roll_slow,0.352,0.4323161301272065,-0.4947074292801451,0.7539014014092735
roll_slow,0.402,0.24096377557112272,-0.08105081943187036,0.967143848417562
roll_slow,0.452,0.10030562620891256,0.16679538851627507,0.9808761796070606
roll_slow,0.502,-0.08212564081597067,0.4415128599898792,0.8934885413837849
roll_slow,0.552,-0.20200007527010713,0.595981384950017,0.7771757577176032
roll_slow,0.602,-0.38780473662709397,0.7847876353439257,0.4834416755523667
roll_slow,0.652,-0.4102647584203325,0.8018482887633847,0.4344216267700514
roll_slow,0.703,-0.4102647584203325,0.8018482887633847,0.4344216267700514
roll_slow,0.77,-0.4102647584203325,0.8018482887633847,0.4344216267700514
roll_slow,0.82,-0.5758197542243373,0.789110513896689,-0.21386025227406602
roll_slow,0.87,-0.5718945362478904,0.6698446984239761,-0.4735448441310526
roll_slow,0.921,-0.5101713830730059,0.453525450011233,-0.7307802857805381
roll_slow,0.971,-0.476863939310634,0.36772720461622704,-0.7983592464362641
roll_slow,1.021,-0.2648817218028197,-0.0631100664684199,-0.9622134861688052
roll_slow,1.071,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
roll_slow,1.121,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
roll_slow,1.171,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
roll_slow,1.222,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
roll_slow,1.272,0.17893611908814816,-0.7049346351677062,-0.6863301140316116
roll_slow,1.322,0.3333006981050639,-0.8462206472685584,-0.4157177657727163
roll_slow,1.372,0.41270347148109937,-0.8873011969134804,-0.20584564747245515
roll_slow,1.422,0.4865576824524262,-0.8645598977193693,0.12568931896544588
roll_slow,1.472,0.4978190954600369,-0.8348605144988362,0.23491289774316146
roll_slow,1.522,0.5014421756195666,-0.7708306670667784,0.3929068938302064
roll_slow,1.573,0.5014421756195666,-0.7708306670667784,0.3929068938302064
roll_slow,1.623,0.5014421756195666,-0.7708306670667784,0.3929068938302064
roll_slow,1.673,0.4166169613758028,-0.46082806205764126,0.7836247856686206
roll_slow,1.724,0.3173553910906107,-0.2302952385040919,0.9199182892344672
roll_slow,1.774,0.16147651620343692,0.06606448650839164,0.9846627942281478
roll_slow,1.825,-0.0783437241000817,0.4380676421854982,0.8955216366811963
roll_slow,1.875,-0.13886219900504984,0.5188239454963641,0.8435277133959901
roll_slow,1.926,-0.19803797831806363,0.5925181248079477,0.7808349575408157
roll_slow,1.976,-0.19803797831806363,0.5925181248079477,0.7808349575408157
roll_slow,2.026,-0.19803797831806363,0.5925181248079477,0.7808349575408157
roll_slow,2.076,-0.19803797831806363,0.5925181248079477,0.7808349575408157
roll_slow,2.126,-0.5222051882739432,0.8439920179771123,0.12238960303349734
roll_slow,2.176,-0.5753348981855904,0.7898716215308815,-0.21235012698360206
roll_slow,2.226,-0.5652936143706975,0.6403510022902671,-0.5199939647895575
roll_slow,2.277,-0.5240535417867741,0.49631946930012355,-0.6921234497792873
roll_slow,2.327,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
roll_slow,2.377,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
roll_slow,2.428,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
roll_slow,2.479,-0.3215006227186099,0.03693793982139597,-0.9461886377426528
roll_slow,2.529,-0.08885249584475184,-0.3498540853722495,-0.9325810168186488
roll_slow,2.579,-0.027265554342407936,-0.4388170553388613,-0.8981626698377816
roll_slow,2.629,0.2091778463424695,-0.7300533910213715,-0.6505894825907677
roll_slow,2.679,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
roll_slow,2.729,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
roll_slow,2.78,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
roll_slow,2.83,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
roll_slow,2.88,0.4820781498777898,-0.8684021265489136,0.1160965288702979
roll_slow,2.93,0.49670236634390524,-0.7496290263282555,0.4374278022194253
roll_slow,2.98,0.47126382569148145,-0.6219313535323155,0.6253893172161569
roll_slow,3.03,0.3840408409877701,-0.3747603670690986,0.8438408023600428
roll_slow,3.08,0.34339375730743976,-0.28183413723003453,0.8959074988714412
roll_slow,3.131,0.29780950842709214,-0.1856293249325127,0.9364033588232761
roll_slow,3.181,0.29780950842709214,-0.1856293249325127,0.9364033588232761
roll_slow,3.231,0.29780950842709214,-0.1856293249325127,0.9364033588232761
roll_slow,3.283,0.014967353835082657,0.29998979365854544,0.9538249850050473
roll_slow,3.333,-0.16737993925757846,0.5523554967923565,0.8166317169308319
roll_slow,3.383,-0.22576571916360996,0.6227711415790569,0.7491234512861391
roll_slow,3.433,-0.44830963594391343,0.8253296124209226,0.3432921513535746
roll_slow,3.483,-0.4849676037351503,0.8416531335127756,0.2375424723612857
roll_slow,3.534,-0.4849676037351503,0.8416531335127756,0.2375424723612857
roll_slow,3.584,-0.4849676037351503,0.8416531335127756,0.2375424723612857
roll_slow,3.634,-0.4849676037351503,0.8416531335127756,0.2375424723612857
roll_slow,3.684,-0.5802453680987208,0.7549564144331459,-0.305542345847884
roll_slow,3.734,-0.5611914651497782,0.6147249024521652,-0.5542359008113974
roll_slow,3.784,-0.482471837248575,0.3791959988327134,-0.7895766718509644
roll_slow,3.834,-0.35219315832064674,0.09734608547423916,-0.9308510723391632
roll_slow,3.884,-0.24419845097576873,-0.10001761109088095,-0.9645535723912427
roll_slow,3.935,-0.15607902585337452,-0.24554580947801147,-0.9567374734672253
roll_slow,3.985,-0.15607902585337452,-0.24554580947801147,-0.9567374734672253
roll_fast,0.0,0.4274921031039902,-0.892995645067824,-0.14074544281655502
roll_fast,0.055,0.4274921031039902,-0.892995645067824,-0.14074544281655502
roll_fast,0.106,0.4274921031039902,-0.892995645067824,-0.14074544281655502
roll_fast,0.156,0.4274921031039902,-0.892995645067824,-0.14074544281655502
roll_fast,0.206,0.4290243150695981,-0.8931294880771208,-0.13512162893542323
roll_fast,0.256,0.4364763111133057,-0.8933822372001555,-0.10656738756376555
roll_fast,0.309,0.45598085615143524,-0.8897766198339296,-0.019468580336297992
roll_fast,0.359,0.4710183775560644,-0.8794502007709485,0.0686223897018397
roll_fast,0.409,0.48614999379346735,-0.8481296101097635,0.21055723210014018
roll_fast,0.459,0.48614999379346735,-0.8481296101097635,0.21055723210014018
roll_fast,0.509,0.48614999379346735,-0.8481296101097635,0.21055723210014018
roll_fast,0.56,0.48614999379346735,-0.8481296101097635,0.21055723210014018
roll_fast,0.611,0.4522165107922734,-0.6191590493907155,0.6419830986283418
roll_fast,0.661,0.3948458905804791,-0.45576815372939883,0.7977293480484489
roll_fast,0.711,0.31297543284889107,-0.26644512261413045,0.911621289279814
roll_fast,0.761,0.24722211208448244,-0.13184762873360015,0.9599465766873772
roll_fast,0.811,0.17443191144629244,0.005508304311644434,0.9846538309745223
roll_fast,0.862,0.17443191144629244,0.005508304311644434,0.9846538309745223
roll_fast,0.912,0.17443191144629244,0.005508304311644434,0.9846538309745223
roll_fast,0.962,0.17443191144629244,0.005508304311644434,0.9846538309745223
roll_fast,1.015,-0.07028931952835214,0.4009372621088909,0.9134050160869863
roll_fast,1.065,-0.19181828427149575,0.5682368786979131,0.8001953483411366
roll_fast,1.115,-0.3047168205187675,0.7027745223635194,0.6428496169475878
roll_fast,1.165,-0.3877485638908776,0.7843408476187816,0.48421119974367904
roll_fast,1.216,-0.4028277976127009,0.797062751252426,0.4499119203093136
roll_fast,1.266,-0.4028277976127009,0.797062751252426,0.4499119203093136
roll_fast,1.316,-0.4028277976127009,0.797062751252426,0.4499119203093136
roll_fast,1.366,-0.5117094565052331,0.8509062608923823,0.11879380159445974
roll_fast,1.416,-0.5463802858802032,0.8341169424957295,-0.07561421455680888
roll_fast,1.467,-0.5614516425968921,0.7703677587767183,-0.30216811423872614
roll_fast,1.517,-0.5361264604361383,0.617802887890881,-0.5752286589991021
roll_fast,1.567,-0.5218812351566515,0.5690784589905927,-0.6354444774362747
roll_fast,1.617,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
roll_fast,1.667,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
roll_fast,1.717,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
roll_fast,1.767,-0.3440174302857372,0.1396931047835701,-0.9285137824154925
roll_fast,1.82,-0.23525805420746415,-0.06570749303078906,-0.9697093241225057
roll_fast,1.87,-0.19625879783423691,-0.13411075867198055,-0.9713376285726225
roll_fast,1.92,-0.0949890023289495,-0.30100858394679586,-0.9488787708800822
roll_fast,1.971,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
roll_fast,2.021,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
roll_fast,2.071,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
roll_fast,2.121,0.14448794249717334,-0.6431590637002322,-0.7519771627205005
roll_fast,2.171,0.18283601243163217,-0.6892883761074453,-0.7010367516195289
roll_fast,2.221,0.3204922974597805,-0.8299477804497861,-0.4565866500407401
roll_fast,2.272,0.3498674652034662,-0.8530130176217724,-0.38724869084336405
roll_fast,2.322,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
roll_fast,2.372,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
roll_fast,2.454,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
roll_fast,2.504,0.4745114350931557,-0.8744296665576758,0.10105273974349113
roll_fast,2.554,0.48267297224869277,-0.8576071884180729,0.17758578837919575
roll_fast,2.604,0.4790699338423226,-0.7195469224608153,0.5027367351462215
roll_fast,2.654,0.46937636788590276,-0.6762101067234576,0.56782542813376
roll_fast,2.704,0.41135253131562505,-0.49459186357414753,0.7656160809873834
roll_fast,2.756,0.4003164340439995,-0.46567532370481146,0.7892358617844955
roll_fast,2.806,0.4003164340439995,-0.46567532370481146,0.7892358617844955
roll_fast,2.856,0.4003164340439995,-0.46567532370481146,0.7892358617844955
roll_fast,2.909,0.23776990821948535,-0.11571873999513957,0.9644037764127819
roll_fast,2.959,0.16427200734952954,0.021719340056452676,0.9861759365695698
roll_fast,3.009,0.045283382036564734,0.22486689122887976,0.9733366820069969
roll_fast,3.06,-0.036992167616838594,0.3533761993353274,0.9347496142167305
roll_fast,3.11,-0.11945927877262154,0.4727802269146366,0.8730454385389513
roll_fast,3.16,-0.11945927877262154,0.4727802269146366,0.8730454385389513
roll_fast,3.21,-0.11945927877262154,0.4727802269146366,0.8730454385389513
roll_fast,3.26,-0.11945927877262154,0.4727802269146366,0.8730454385389513
roll_fast,3.31,-0.34832219782009477,0.7463942489988824,0.5670690183453625
roll_fast,3.36,-0.41060542302987857,0.8020551652797916,0.43371730242919837
roll_fast,3.412,-0.5060192508828523,0.8512722526760851,0.1388526901422534
roll_fast,3.462,-0.5367672669096389,0.8435913083033272,-0.015316844630572738
roll_fast,3.514,-0.5424930121603433,0.838335256896307,-0.05380825960575971
roll_fast,3.564,-0.5424930121603433,0.838335256896307,-0.05380825960575971
roll_fast,3.614,-0.5424930121603433,0.838335256896307,-0.05380825960575971
roll_fast,3.664,-0.5596773753080179,0.7324962784354845,-0.3875699132369452
roll_fast,3.715,-0.5187323267754228,0.5571689196924458,-0.6484439590950855
roll_fast,3.765,-0.5007518821327692,0.5038887555605733,-0.7038065604696406
roll_fast,3.815,-0.4301120965633418,0.32618176435100704,-0.8417891903527572
roll_fast,3.865,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
roll_fast,3.915,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
roll_fast,3.965,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
1 phase t ax ay az
2 pitch_slow 0.0 -0.9999999999979217 -5.364418989006872e-07 -1.9669536293025197e-06
3 pitch_slow 0.05 -0.9999999999976801 -5.364418029772711e-07 -2.0861625671338324e-06
4 pitch_slow 0.101 -0.9999946097522772 -0.002899959954216824 0.0015397073276159146
5 pitch_slow 0.151 -0.9996914710730174 -0.02193220056967232 0.011659384290695667
6 pitch_slow 0.201 -0.9990433177471238 -0.03861357394968149 0.02052903240905178
7 pitch_slow 0.251 -0.9955393575780669 -0.08330440446892036 0.04429180182752193
8 pitch_slow 0.301 -0.9945412469804451 -0.09213126987556873 0.048985070845069034
9 pitch_slow 0.352 -0.9945412469804451 -0.09213126987556873 0.048985070845069034
10 pitch_slow 0.402 -0.9945412469804451 -0.09213126987556873 0.048985070845069034
11 pitch_slow 0.452 -0.9665289434485363 -0.2265277037558541 0.120445011965445
12 pitch_slow 0.503 -0.9524349663446977 -0.2690718666714829 0.14306629739354546
13 pitch_slow 0.553 -0.9108739498774162 -0.3643795134075017 0.19374265829606738
14 pitch_slow 0.604 -0.8927282973927168 -0.39785273467789245 0.21154051277148683
15 pitch_slow 0.654 -0.8045973153675007 -0.5243130904039117 0.27878117464152785
16 pitch_slow 0.707 -0.7919632518359564 -0.539100668887106 0.2866438147717345
17 pitch_slow 0.757 -0.7919632518359564 -0.539100668887106 0.2866438147717345
18 pitch_slow 0.807 -0.7919632518359564 -0.539100668887106 0.2866438147717345
19 pitch_slow 0.858 -0.6306143663605143 -0.6852525159721327 0.36435492352044474
20 pitch_slow 0.909 -0.5969978086641158 -0.7083385123283029 0.3766300152706506
21 pitch_slow 0.989 -0.4901269140966694 -0.7696220973259926 0.40921563433673497
22 pitch_slow 1.039 -0.2959745212014831 -0.8433875991219522 0.4484377776758578
23 pitch_slow 1.089 -0.27580244899421963 -0.8487015247581735 0.45126348290321716
24 pitch_slow 1.139 -0.27580244899421963 -0.8487015247581735 0.45126348290321716
25 pitch_slow 1.189 -0.27580244899421963 -0.8487015247581735 0.45126348290321716
26 pitch_slow 1.24 -0.06819632577165725 -0.8808914329655914 0.4683797011817154
27 pitch_slow 1.291 -0.04700410626905134 -0.8819710505695748 0.46895381430482924
28 pitch_slow 1.341 0.0804919641427089 -0.8800818771721879 0.46794971223575604
29 pitch_slow 1.392 0.12273622707003892 -0.8762710913963212 0.465923591319126
30 pitch_slow 1.443 0.24764949379728085 -0.8554426534039724 0.454848980387031
31 pitch_slow 1.493 0.2680409389698348 -0.850637454777343 0.45229412506254507
32 pitch_slow 1.543 0.2680409389698348 -0.850637454777343 0.45229412506254507
33 pitch_slow 1.593 0.2680409389698348 -0.850637454777343 0.45229412506254507
34 pitch_slow 1.646 0.44568378731971126 -0.790405284398606 0.42026830491379813
35 pitch_slow 1.696 0.5199457201418952 -0.7542121380720035 0.40102431209464473
36 pitch_slow 1.746 0.6404468011624063 -0.6781048415424452 0.36055751102637784
37 pitch_slow 1.796 0.7030142148952 -0.6279298245105502 0.33387894384856803
38 pitch_slow 1.848 0.7323232029501937 -0.6012483512095225 0.3196922685780814
39 pitch_slow 1.898 0.7323232029501937 -0.6012483512095225 0.3196922685780814
40 pitch_slow 1.948 0.7323232029501937 -0.6012483512095225 0.3196922685780814
41 pitch_slow 1.998 0.7323232029501937 -0.6012483512095225 0.3196922685780814
42 pitch_slow 2.048 0.8897380340111771 -0.4030392516581421 0.21430257221221208
43 pitch_slow 2.099 0.933233802564986 -0.31721510699436495 0.1686690417493688
44 pitch_slow 2.149 0.9603861359896795 -0.24605226051444695 0.1308310165616077
45 pitch_slow 2.199 0.980573947813806 -0.17318882586052553 0.09208888893835017
46 pitch_slow 2.249 0.9958260680318584 -0.08058666195316148 0.042851279367782436
47 pitch_slow 2.299 0.9958260680318584 -0.08058666195316148 0.042851279367782436
48 pitch_slow 2.349 0.9958260680318584 -0.08058666195316148 0.042851279367782436
49 pitch_slow 2.399 0.9958260680318584 -0.08058666195316148 0.042851279367782436
50 pitch_slow 2.449 0.9867075939747381 0.14348496871944313 -0.07629015496224935
51 pitch_slow 2.502 0.9788907200689967 0.18046150766335733 -0.09595104175916487
52 pitch_slow 2.552 0.9376915842954128 0.30679733050810604 -0.16312538347743036
53 pitch_slow 2.602 0.8955218717201378 0.3929277552667634 -0.208921890695742
54 pitch_slow 2.652 0.8074786582920991 0.5208483459556673 -0.2769390129939024
55 pitch_slow 2.705 0.7948361291190185 0.5357942751067662 -0.2848859817714975
56 pitch_slow 2.755 0.7948361291190185 0.5357942751067662 -0.2848859817714975
57 pitch_slow 2.805 0.7948361291190185 0.5357942751067662 -0.2848859817714975
58 pitch_slow 2.855 0.7948361291190185 0.5357942751067662 -0.2848859817714975
59 pitch_slow 2.907 0.5994415250023212 0.706727700968031 -0.3757736217290043
60 pitch_slow 2.957 0.49283526451379894 0.7682725100239381 -0.408498166939745
61 pitch_slow 3.007 0.39786304462993477 0.810055404003031 -0.430714801421178
62 pitch_slow 3.089 0.318739170854854 0.8368948941205249 -0.4449857044420142
63 pitch_slow 3.139 0.17535239247571457 0.8692665281025396 -0.46219827084661375
64 pitch_slow 3.189 0.17535239247571457 0.8692665281025396 -0.46219827084661375
65 pitch_slow 3.24 0.17535239247571457 0.8692665281025396 -0.46219827084661375
66 pitch_slow 3.29 0.17535239247571457 0.8692665281025396 -0.46219827084661375
67 pitch_slow 3.341 -0.09908743529417109 0.8786016525498629 -0.4671625159443696
68 pitch_slow 3.391 -0.14138414029685945 0.8740774161778089 -0.464757135932783
69 pitch_slow 3.441 -0.26633940859742644 0.8510540435243772 -0.45251556263711057
70 pitch_slow 3.491 -0.30709438990594357 0.8402818955853142 -0.44678783739023986
71 pitch_slow 3.541 -0.46368621578966956 0.7822901813508235 -0.41595332123779405
72 pitch_slow 3.591 -0.46368621578966956 0.7822901813508235 -0.41595332123779405
73 pitch_slow 3.642 -0.46368621578966956 0.7822901813508235 -0.41595332123779405
74 pitch_slow 3.695 -0.46368621578966956 0.7822901813508235 -0.41595332123779405
75 pitch_slow 3.745 -0.6562113189584854 0.6662510666680376 -0.3542544580304771
76 pitch_slow 3.796 -0.7469125955220236 0.5870904643133257 -0.31216399754442814
77 pitch_slow 3.846 -0.8253836786665388 0.49848665361931915 -0.2650525215015027
78 pitch_slow 3.899 -0.8702852029309188 0.43489315599579026 -0.23123928824382511
79 pitch_slow 3.949 -0.9257474045462728 0.3338789511759494 -0.17752912137868407
80 pitch_slow 3.999 -0.9257474045462728 0.3338789511759494 -0.17752912137868407
81 pitch_mid 0.0 -0.9816648888232054 -0.16830355359423707 0.08948720522664506
82 pitch_mid 0.05 -0.9810975290596479 -0.17086321869736415 0.09084821940704273
83 pitch_mid 0.1 -0.9789055744250569 -0.18039841850141844 0.09591812634604903
84 pitch_mid 0.151 -0.9720546521805088 -0.2072765936920349 0.11020964967577598
85 pitch_mid 0.201 -0.9685934206365122 -0.21954537835213525 0.11673308161733022
86 pitch_mid 0.251 -0.9621063375474502 -0.24075780571714026 0.12801200817618447
87 pitch_mid 0.301 -0.9621063375474502 -0.24075780571714026 0.12801200817618447
88 pitch_mid 0.352 -0.9621063375474502 -0.24075780571714026 0.12801200817618447
89 pitch_mid 0.403 -0.9299022445524333 -0.3247544249367914 0.17267419917382107
90 pitch_mid 0.453 -0.8941007235504668 -0.39544242183534284 0.21025980871181893
91 pitch_mid 0.503 -0.878818394880348 -0.42130434615048 0.22401088530391827
92 pitch_mid 0.553 -0.8210382535878776 -0.5040511900472064 0.26800855202280954
93 pitch_mid 0.603 -0.7987442841989482 -0.531243736804092 0.2824670964306011
94 pitch_mid 0.653 -0.7987442841989482 -0.531243736804092 0.2824670964306011
95 pitch_mid 0.704 -0.7987442841989482 -0.531243736804092 0.2824670964306011
96 pitch_mid 0.754 -0.7987442841989482 -0.531243736804092 0.2824670964306011
97 pitch_mid 0.804 -0.6703148659769064 -0.6552147427406548 0.3483843012330774
98 pitch_mid 0.855 -0.5483367797483034 -0.7383712411310113 0.3925999060696661
99 pitch_mid 0.905 -0.5483367797483034 -0.7383712411310113 0.3925999060696661
100 pitch_mid 0.955 -0.4487495579282873 -0.7890522755928274 0.4195477811178932
101 pitch_mid 1.007 -0.3966576493503013 -0.8105158880387838 0.43096021214097596
102 pitch_mid 1.058 -0.3966576493503013 -0.8105158880387838 0.43096021214097596
103 pitch_mid 1.108 -0.3966576493503013 -0.8105158880387838 0.43096021214097596
104 pitch_mid 1.158 -0.2145711905918272 -0.8623815090531974 0.45853826122924113
105 pitch_mid 1.208 -0.19538810247600916 -0.8659288745293109 0.46042444946725575
106 pitch_mid 1.258 -0.020561785443441487 -0.8827600285609496 0.46937399262682766
107 pitch_mid 1.309 -0.020561785443441487 -0.8827600285609496 0.46937399262682766
108 pitch_mid 1.359 0.15293449802923037 -0.8725598819330923 0.4639507428094662
109 pitch_mid 1.409 0.17190451458064285 -0.869802646207114 0.4624848046345908
110 pitch_mid 1.459 0.17190451458064285 -0.869802646207114 0.4624848046345908
111 pitch_mid 1.509 0.17190451458064285 -0.869802646207114 0.4624848046345908
112 pitch_mid 1.559 0.32147374512483523 -0.8360783992242294 0.4445531931569748
113 pitch_mid 1.61 0.39499557938420454 -0.8111479471335701 0.43129746130476065
114 pitch_mid 1.66 0.5495718115709906 -0.7376542883593693 0.3922205690572743
115 pitch_mid 1.711 0.5815293845209076 -0.7182991118346882 0.38192926161297525
116 pitch_mid 1.761 0.6124392459964019 -0.6979845517377493 0.37112765391279023
117 pitch_mid 1.811 0.6124392459964019 -0.6979845517377493 0.37112765391279023
118 pitch_mid 1.861 0.6124392459964019 -0.6979845517377493 0.37112765391279023
119 pitch_mid 1.911 0.6124392459964019 -0.6979845517377493 0.37112765391279023
120 pitch_mid 1.961 0.7785765031694168 -0.5540923970909359 0.294618811684698
121 pitch_mid 2.013 0.8368345419742745 -0.4833737565967571 0.257017043777733
122 pitch_mid 2.063 0.8954853668773045 -0.3929909578852798 0.20895948106996629
123 pitch_mid 2.113 0.9122278787664543 -0.3617276762612271 0.19233664608677187
124 pitch_mid 2.165 0.9346839297400513 -0.3138690827235641 0.1668896353760875
125 pitch_mid 2.216 0.9346839297400513 -0.3138690827235641 0.1668896353760875
126 pitch_mid 2.266 0.9346839297400513 -0.3138690827235641 0.1668896353760875
127 pitch_mid 2.316 0.9858281374907293 -0.1481209242722237 0.078759603378267
128 pitch_mid 2.366 0.9941186237329943 -0.09561938551914852 0.050843830109049304
129 pitch_mid 2.416 0.9995934657948521 -0.025173307197407468 0.01338684970338031
130 pitch_mid 2.466 0.9887113359982596 0.13229521133882916 -0.07034110551698297
131 pitch_mid 2.516 0.9780864001457492 0.18382969276719566 -0.09774271280790084
132 pitch_mid 2.566 0.958687336730862 0.25116550323250036 -0.133545798802701
133 pitch_mid 2.618 0.958687336730862 0.25116550323250036 -0.133545798802701
134 pitch_mid 2.7 0.958687336730862 0.25116550323250036 -0.133545798802701
135 pitch_mid 2.75 0.958687336730862 0.25116550323250036 -0.133545798802701
136 pitch_mid 2.8 0.8655891820395757 0.44214057059579587 -0.23508952288284238
137 pitch_mid 2.85 0.774505313261317 0.5585239764741124 -0.29697219976545675
138 pitch_mid 2.901 0.7486457582891431 0.5853679923169459 -0.3112456299556701
139 pitch_mid 2.951 0.649419187957182 0.6714202776236611 -0.35700074104797064
140 pitch_mid 3.001 0.5873275292440099 0.71461285445045 -0.3799668954610477
141 pitch_mid 3.051 0.4708037762291508 0.7789694709287421 -0.4141863924000489
142 pitch_mid 3.101 0.4708037762291508 0.7789694709287421 -0.4141863924000489
143 pitch_mid 3.151 0.4708037762291508 0.7789694709287421 -0.4141863924000489
144 pitch_mid 3.201 0.4708037762291508 0.7789694709287421 -0.4141863924000489
145 pitch_mid 3.251 0.2519525835347419 0.8544627076303289 -0.4543273895763011
146 pitch_mid 3.302 0.2128006333502304 0.8627235754094408 -0.4587198740827476
147 pitch_mid 3.352 0.05407075118963116 0.8816552045589018 -0.468786149688736
148 pitch_mid 3.402 0.01418978409318777 0.8828579500186226 -0.46942570244534326
149 pitch_mid 3.453 -0.14418506374713955 0.8737205730756915 -0.46456757051748526
150 pitch_mid 3.503 -0.16365548928393295 0.8710424080824322 -0.4631436107183107
151 pitch_mid 3.553 -0.16365548928393295 0.8710424080824322 -0.4631436107183107
152 pitch_mid 3.604 -0.16365548928393295 0.8710424080824322 -0.4631436107183107
153 pitch_mid 3.654 -0.35427595284385854 0.8256794667561332 -0.4390238802319113
154 pitch_mid 3.704 -0.3912019273537199 0.8125800850081012 -0.43205862736781675
155 pitch_mid 3.754 -0.5482164422060858 0.7384403493165538 -0.3926379795640603
156 pitch_mid 3.804 -0.5807364030212269 0.7187993267341519 -0.38219465994764656
157 pitch_mid 3.856 -0.6427510623155457 0.6764032530991501 -0.35965220851417645
158 pitch_mid 3.907 -0.6427510623155457 0.6764032530991501 -0.35965220851417645
159 pitch_mid 3.957 -0.6427510623155457 0.6764032530991501 -0.35965220851417645
160 pitch_fast 0.0 -0.9658675830256226 0.2287146756684362 -0.1216117148720633
161 pitch_fast 0.052 -0.9658676051980126 0.2287146636567734 -0.12161156136414396
162 pitch_fast 0.102 -0.9658676051980126 0.2287146636567734 -0.12161156136414396
163 pitch_fast 0.152 -0.9658676051980126 0.2287146636567734 -0.12161156136414396
164 pitch_fast 0.202 -0.9664701307517564 0.22672168832295678 -0.1205519075281309
165 pitch_fast 0.252 -0.9672076235909816 0.22425644292630353 -0.11924118698473131
166 pitch_fast 0.302 -0.9708059463052539 0.21178855073766029 -0.11261183061651185
167 pitch_fast 0.352 -0.9767019499389217 0.18948015575759153 -0.10075004496071996
168 pitch_fast 0.402 -0.9828596538946014 0.16277540934979576 -0.0865509494875172
169 pitch_fast 0.453 -0.9840999852715604 0.15682439933205652 -0.08338661021203694
170 pitch_fast 0.503 -0.9840999852715604 0.15682439933205652 -0.08338661021203694
171 pitch_fast 0.553 -0.9840999852715604 0.15682439933205652 -0.08338661021203694
172 pitch_fast 0.604 -0.9969658526909927 0.06872814001554328 -0.03654492219345491
173 pitch_fast 0.654 -0.9997555993589555 0.01951919570264511 -0.010379910863662752
174 pitch_fast 0.704 -0.999639503820263 -0.023706604137760323 0.01260394074223997
175 pitch_fast 0.754 -0.9949411990718958 -0.08870043606639172 0.047161881122471744
176 pitch_fast 0.804 -0.9868629348189862 -0.14264913437357063 0.07584703252552663
177 pitch_fast 0.855 -0.9847624772088613 -0.15354912716138713 0.08164269121876744
178 pitch_fast 0.905 -0.9847624772088613 -0.15354912716138713 0.08164269121876744
179 pitch_fast 0.955 -0.9847624772088613 -0.15354912716138713 0.08164269121876744
180 pitch_fast 1.005 -0.9556544968116132 -0.2600196152203893 0.13825441195268626
181 pitch_fast 1.055 -0.9350970976005369 -0.3129094240539954 0.16637641178138443
182 pitch_fast 1.106 -0.9163015999238947 -0.35361089987496885 0.18801784347908457
183 pitch_fast 1.186 -0.8838134201281153 -0.41307791101375835 0.21963715039572226
184 pitch_fast 1.236 -0.8324192085803622 -0.4892822509035454 0.26015599193023287
185 pitch_fast 1.287 -0.8324192085803622 -0.4892822509035454 0.26015599193023287
186 pitch_fast 1.338 -0.8324192085803622 -0.4892822509035454 0.26015599193023287
187 pitch_fast 1.388 -0.8324192085803622 -0.4892822509035454 0.26015599193023287
188 pitch_fast 1.438 -0.7493450951253482 -0.5846697798695479 0.3108748573282781
189 pitch_fast 1.488 -0.7319942059929913 -0.6015615906409889 0.31985642882107823
190 pitch_fast 1.54 -0.6685767864516847 -0.6565976821256674 0.34911969930833103
191 pitch_fast 1.59 -0.6495652494628392 -0.6713099785415564 0.35694243149395194
192 pitch_fast 1.64 -0.600269177220929 -0.7061793659967437 0.3754831792756447
193 pitch_fast 1.692 -0.5902399761670327 -0.7127394615556399 0.378971279222736
194 pitch_fast 1.742 -0.5902399761670327 -0.7127394615556399 0.378971279222736
195 pitch_fast 1.792 -0.5902399761670327 -0.7127394615556399 0.378971279222736
196 pitch_fast 1.842 -0.4744737419514673 -0.7772313800698689 0.413262688895646
197 pitch_fast 1.894 -0.41659370360552633 -0.8026806747323841 0.426794353907588
198 pitch_fast 1.944 -0.36930494798762 -0.8205298691575033 0.43628498623288875
199 pitch_fast 1.994 -0.3214551905466611 -0.8360842723890491 0.4445555645071649
200 pitch_fast 2.044 -0.2729415791863457 -0.8494219198880473 0.45164731413456627
201 pitch_fast 2.094 -0.2729415791863457 -0.8494219198880473 0.45164731413456627
202 pitch_fast 2.145 -0.2729415791863457 -0.8494219198880473 0.45164731413456627
203 pitch_fast 2.195 -0.2729415791863457 -0.8494219198880473 0.45164731413456627
204 pitch_fast 2.246 -0.15018401469533893 -0.8729324279310241 0.4641484008336534
205 pitch_fast 2.296 -0.085167143910571 -0.8797387312536471 0.46776738057536615
206 pitch_fast 2.347 -0.00785863441309952 -0.8829194777000005 0.46945866459478597
207 pitch_fast 2.397 0.017787069774809663 -0.882807050745268 0.4693989042416567
208 pitch_fast 2.447 0.06928193596374152 -0.880825046181548 0.46834522669542594
209 pitch_fast 2.497 0.06928193596374152 -0.880825046181548 0.46834522669542594
210 pitch_fast 2.55 0.06928193596374152 -0.880825046181548 0.46834522669542594
211 pitch_fast 2.6 0.06928193596374152 -0.880825046181548 0.46834522669542594
212 pitch_fast 2.651 0.21198297365514238 -0.8628802036656676 0.4588038502478148
213 pitch_fast 2.702 0.2764694675691825 -0.8485316906739566 0.4511746928009255
214 pitch_fast 2.786 0.37429753186942033 -0.8187640417930946 0.4353467600695977
215 pitch_fast 2.836 0.40981689666516385 -0.8053954345525633 0.4282386077989958
216 pitch_fast 2.886 0.40981689666516385 -0.8053954345525633 0.4282386077989958
217 pitch_fast 2.936 0.40981689666516385 -0.8053954345525633 0.4282386077989958
218 pitch_fast 2.986 0.40981689666516385 -0.8053954345525633 0.4282386077989958
219 pitch_fast 3.036 0.5566205022404467 -0.733522684693819 0.39002318844546285
220 pitch_fast 3.087 0.5998982910452404 -0.7064244402176132 0.37561489675495024
221 pitch_fast 3.137 0.6701810944739728 -0.6553205823511672 0.34844258487819035
222 pitch_fast 3.187 0.6891597392050487 -0.639791239336044 0.34018527882270017
223 pitch_fast 3.243 0.725701824041233 -0.6074752934115958 0.3230025239494625
224 pitch_fast 3.293 0.725701824041233 -0.6074752934115958 0.3230025239494625
225 pitch_fast 3.343 0.725701824041233 -0.6074752934115958 0.3230025239494625
226 pitch_fast 3.393 0.725701824041233 -0.6074752934115958 0.3230025239494625
227 pitch_fast 3.445 0.8389337242743994 -0.4805288759274782 0.25550382712390113
228 pitch_fast 3.495 0.8799044064239339 -0.4195323653889136 0.22307135617763135
229 pitch_fast 3.545 0.9141904204223267 -0.35784452205993644 0.19027131481057563
230 pitch_fast 3.596 0.9243948817285977 -0.33678800362072325 0.17907524466307298
231 pitch_fast 3.646 0.9473286584095463 -0.2827747557609607 0.1503557463494435
232 pitch_fast 3.696 0.9473286584095463 -0.2827747557609607 0.1503557463494435
233 pitch_fast 3.746 0.9473286584095463 -0.2827747557609607 0.1503557463494435
234 pitch_fast 3.796 0.9473286584095463 -0.2827747557609607 0.1503557463494435
235 pitch_fast 3.846 0.9877392592272928 -0.13783858151526024 0.07329175415406497
236 pitch_fast 3.899 0.9948580115516917 -0.08942388935224614 0.04754897332783676
237 pitch_fast 3.949 0.999765524196005 -0.019118849051913748 0.010166918904840748
238 pitch_fast 3.999 0.9990569989225466 0.03833614305138446 -0.020382665179474877
239 roll_slow 0.0 0.49464193227975 -0.7673659362109184 0.4080182333838721
240 roll_slow 0.051 0.4945496776180339 -0.7598559960158229 0.4219472498864052
241 roll_slow 0.101 0.490520535370487 -0.7112149514342452 0.5035502926582757
242 roll_slow 0.151 0.47881435208968187 -0.6485736215805378 0.5916832544722247
243 roll_slow 0.201 0.45245216893643586 -0.5542244875816128 0.6986574641336151
244 roll_slow 0.252 0.4323161301272065 -0.4947074292801451 0.7539014014092735
245 roll_slow 0.302 0.4323161301272065 -0.4947074292801451 0.7539014014092735
246 roll_slow 0.352 0.4323161301272065 -0.4947074292801451 0.7539014014092735
247 roll_slow 0.402 0.24096377557112272 -0.08105081943187036 0.967143848417562
248 roll_slow 0.452 0.10030562620891256 0.16679538851627507 0.9808761796070606
249 roll_slow 0.502 -0.08212564081597067 0.4415128599898792 0.8934885413837849
250 roll_slow 0.552 -0.20200007527010713 0.595981384950017 0.7771757577176032
251 roll_slow 0.602 -0.38780473662709397 0.7847876353439257 0.4834416755523667
252 roll_slow 0.652 -0.4102647584203325 0.8018482887633847 0.4344216267700514
253 roll_slow 0.703 -0.4102647584203325 0.8018482887633847 0.4344216267700514
254 roll_slow 0.77 -0.4102647584203325 0.8018482887633847 0.4344216267700514
255 roll_slow 0.82 -0.5758197542243373 0.789110513896689 -0.21386025227406602
256 roll_slow 0.87 -0.5718945362478904 0.6698446984239761 -0.4735448441310526
257 roll_slow 0.921 -0.5101713830730059 0.453525450011233 -0.7307802857805381
258 roll_slow 0.971 -0.476863939310634 0.36772720461622704 -0.7983592464362641
259 roll_slow 1.021 -0.2648817218028197 -0.0631100664684199 -0.9622134861688052
260 roll_slow 1.071 -0.2077269214538732 -0.16080378491037264 -0.9648790954631544
261 roll_slow 1.121 -0.2077269214538732 -0.16080378491037264 -0.9648790954631544
262 roll_slow 1.171 -0.2077269214538732 -0.16080378491037264 -0.9648790954631544
263 roll_slow 1.222 -0.2077269214538732 -0.16080378491037264 -0.9648790954631544
264 roll_slow 1.272 0.17893611908814816 -0.7049346351677062 -0.6863301140316116
265 roll_slow 1.322 0.3333006981050639 -0.8462206472685584 -0.4157177657727163
266 roll_slow 1.372 0.41270347148109937 -0.8873011969134804 -0.20584564747245515
267 roll_slow 1.422 0.4865576824524262 -0.8645598977193693 0.12568931896544588
268 roll_slow 1.472 0.4978190954600369 -0.8348605144988362 0.23491289774316146
269 roll_slow 1.522 0.5014421756195666 -0.7708306670667784 0.3929068938302064
270 roll_slow 1.573 0.5014421756195666 -0.7708306670667784 0.3929068938302064
271 roll_slow 1.623 0.5014421756195666 -0.7708306670667784 0.3929068938302064
272 roll_slow 1.673 0.4166169613758028 -0.46082806205764126 0.7836247856686206
273 roll_slow 1.724 0.3173553910906107 -0.2302952385040919 0.9199182892344672
274 roll_slow 1.774 0.16147651620343692 0.06606448650839164 0.9846627942281478
275 roll_slow 1.825 -0.0783437241000817 0.4380676421854982 0.8955216366811963
276 roll_slow 1.875 -0.13886219900504984 0.5188239454963641 0.8435277133959901
277 roll_slow 1.926 -0.19803797831806363 0.5925181248079477 0.7808349575408157
278 roll_slow 1.976 -0.19803797831806363 0.5925181248079477 0.7808349575408157
279 roll_slow 2.026 -0.19803797831806363 0.5925181248079477 0.7808349575408157
280 roll_slow 2.076 -0.19803797831806363 0.5925181248079477 0.7808349575408157
281 roll_slow 2.126 -0.5222051882739432 0.8439920179771123 0.12238960303349734
282 roll_slow 2.176 -0.5753348981855904 0.7898716215308815 -0.21235012698360206
283 roll_slow 2.226 -0.5652936143706975 0.6403510022902671 -0.5199939647895575
284 roll_slow 2.277 -0.5240535417867741 0.49631946930012355 -0.6921234497792873
285 roll_slow 2.327 -0.4937895498524031 0.41409211552018416 -0.7646565244085605
286 roll_slow 2.377 -0.4937895498524031 0.41409211552018416 -0.7646565244085605
287 roll_slow 2.428 -0.4937895498524031 0.41409211552018416 -0.7646565244085605
288 roll_slow 2.479 -0.3215006227186099 0.03693793982139597 -0.9461886377426528
289 roll_slow 2.529 -0.08885249584475184 -0.3498540853722495 -0.9325810168186488
290 roll_slow 2.579 -0.027265554342407936 -0.4388170553388613 -0.8981626698377816
291 roll_slow 2.629 0.2091778463424695 -0.7300533910213715 -0.6505894825907677
292 roll_slow 2.679 0.2360296376178349 -0.7571521572053442 -0.6091064118898168
293 roll_slow 2.729 0.2360296376178349 -0.7571521572053442 -0.6091064118898168
294 roll_slow 2.78 0.2360296376178349 -0.7571521572053442 -0.6091064118898168
295 roll_slow 2.83 0.2360296376178349 -0.7571521572053442 -0.6091064118898168
296 roll_slow 2.88 0.4820781498777898 -0.8684021265489136 0.1160965288702979
297 roll_slow 2.93 0.49670236634390524 -0.7496290263282555 0.4374278022194253
298 roll_slow 2.98 0.47126382569148145 -0.6219313535323155 0.6253893172161569
299 roll_slow 3.03 0.3840408409877701 -0.3747603670690986 0.8438408023600428
300 roll_slow 3.08 0.34339375730743976 -0.28183413723003453 0.8959074988714412
301 roll_slow 3.131 0.29780950842709214 -0.1856293249325127 0.9364033588232761
302 roll_slow 3.181 0.29780950842709214 -0.1856293249325127 0.9364033588232761
303 roll_slow 3.231 0.29780950842709214 -0.1856293249325127 0.9364033588232761
304 roll_slow 3.283 0.014967353835082657 0.29998979365854544 0.9538249850050473
305 roll_slow 3.333 -0.16737993925757846 0.5523554967923565 0.8166317169308319
306 roll_slow 3.383 -0.22576571916360996 0.6227711415790569 0.7491234512861391
307 roll_slow 3.433 -0.44830963594391343 0.8253296124209226 0.3432921513535746
308 roll_slow 3.483 -0.4849676037351503 0.8416531335127756 0.2375424723612857
309 roll_slow 3.534 -0.4849676037351503 0.8416531335127756 0.2375424723612857
310 roll_slow 3.584 -0.4849676037351503 0.8416531335127756 0.2375424723612857
311 roll_slow 3.634 -0.4849676037351503 0.8416531335127756 0.2375424723612857
312 roll_slow 3.684 -0.5802453680987208 0.7549564144331459 -0.305542345847884
313 roll_slow 3.734 -0.5611914651497782 0.6147249024521652 -0.5542359008113974
314 roll_slow 3.784 -0.482471837248575 0.3791959988327134 -0.7895766718509644
315 roll_slow 3.834 -0.35219315832064674 0.09734608547423916 -0.9308510723391632
316 roll_slow 3.884 -0.24419845097576873 -0.10001761109088095 -0.9645535723912427
317 roll_slow 3.935 -0.15607902585337452 -0.24554580947801147 -0.9567374734672253
318 roll_slow 3.985 -0.15607902585337452 -0.24554580947801147 -0.9567374734672253
319 roll_fast 0.0 0.4274921031039902 -0.892995645067824 -0.14074544281655502
320 roll_fast 0.055 0.4274921031039902 -0.892995645067824 -0.14074544281655502
321 roll_fast 0.106 0.4274921031039902 -0.892995645067824 -0.14074544281655502
322 roll_fast 0.156 0.4274921031039902 -0.892995645067824 -0.14074544281655502
323 roll_fast 0.206 0.4290243150695981 -0.8931294880771208 -0.13512162893542323
324 roll_fast 0.256 0.4364763111133057 -0.8933822372001555 -0.10656738756376555
325 roll_fast 0.309 0.45598085615143524 -0.8897766198339296 -0.019468580336297992
326 roll_fast 0.359 0.4710183775560644 -0.8794502007709485 0.0686223897018397
327 roll_fast 0.409 0.48614999379346735 -0.8481296101097635 0.21055723210014018
328 roll_fast 0.459 0.48614999379346735 -0.8481296101097635 0.21055723210014018
329 roll_fast 0.509 0.48614999379346735 -0.8481296101097635 0.21055723210014018
330 roll_fast 0.56 0.48614999379346735 -0.8481296101097635 0.21055723210014018
331 roll_fast 0.611 0.4522165107922734 -0.6191590493907155 0.6419830986283418
332 roll_fast 0.661 0.3948458905804791 -0.45576815372939883 0.7977293480484489
333 roll_fast 0.711 0.31297543284889107 -0.26644512261413045 0.911621289279814
334 roll_fast 0.761 0.24722211208448244 -0.13184762873360015 0.9599465766873772
335 roll_fast 0.811 0.17443191144629244 0.005508304311644434 0.9846538309745223
336 roll_fast 0.862 0.17443191144629244 0.005508304311644434 0.9846538309745223
337 roll_fast 0.912 0.17443191144629244 0.005508304311644434 0.9846538309745223
338 roll_fast 0.962 0.17443191144629244 0.005508304311644434 0.9846538309745223
339 roll_fast 1.015 -0.07028931952835214 0.4009372621088909 0.9134050160869863
340 roll_fast 1.065 -0.19181828427149575 0.5682368786979131 0.8001953483411366
341 roll_fast 1.115 -0.3047168205187675 0.7027745223635194 0.6428496169475878
342 roll_fast 1.165 -0.3877485638908776 0.7843408476187816 0.48421119974367904
343 roll_fast 1.216 -0.4028277976127009 0.797062751252426 0.4499119203093136
344 roll_fast 1.266 -0.4028277976127009 0.797062751252426 0.4499119203093136
345 roll_fast 1.316 -0.4028277976127009 0.797062751252426 0.4499119203093136
346 roll_fast 1.366 -0.5117094565052331 0.8509062608923823 0.11879380159445974
347 roll_fast 1.416 -0.5463802858802032 0.8341169424957295 -0.07561421455680888
348 roll_fast 1.467 -0.5614516425968921 0.7703677587767183 -0.30216811423872614
349 roll_fast 1.517 -0.5361264604361383 0.617802887890881 -0.5752286589991021
350 roll_fast 1.567 -0.5218812351566515 0.5690784589905927 -0.6354444774362747
351 roll_fast 1.617 -0.49494010214581236 0.4890850190322566 -0.7182131573886056
352 roll_fast 1.667 -0.49494010214581236 0.4890850190322566 -0.7182131573886056
353 roll_fast 1.717 -0.49494010214581236 0.4890850190322566 -0.7182131573886056
354 roll_fast 1.767 -0.3440174302857372 0.1396931047835701 -0.9285137824154925
355 roll_fast 1.82 -0.23525805420746415 -0.06570749303078906 -0.9697093241225057
356 roll_fast 1.87 -0.19625879783423691 -0.13411075867198055 -0.9713376285726225
357 roll_fast 1.92 -0.0949890023289495 -0.30100858394679586 -0.9488787708800822
358 roll_fast 1.971 -0.07453710913781955 -0.3329263212727339 -0.9400022787021216
359 roll_fast 2.021 -0.07453710913781955 -0.3329263212727339 -0.9400022787021216
360 roll_fast 2.071 -0.07453710913781955 -0.3329263212727339 -0.9400022787021216
361 roll_fast 2.121 0.14448794249717334 -0.6431590637002322 -0.7519771627205005
362 roll_fast 2.171 0.18283601243163217 -0.6892883761074453 -0.7010367516195289
363 roll_fast 2.221 0.3204922974597805 -0.8299477804497861 -0.4565866500407401
364 roll_fast 2.272 0.3498674652034662 -0.8530130176217724 -0.38724869084336405
365 roll_fast 2.322 0.4124430332010092 -0.8877915231565959 -0.20424729074149947
366 roll_fast 2.372 0.4124430332010092 -0.8877915231565959 -0.20424729074149947
367 roll_fast 2.454 0.4124430332010092 -0.8877915231565959 -0.20424729074149947
368 roll_fast 2.504 0.4745114350931557 -0.8744296665576758 0.10105273974349113
369 roll_fast 2.554 0.48267297224869277 -0.8576071884180729 0.17758578837919575
370 roll_fast 2.604 0.4790699338423226 -0.7195469224608153 0.5027367351462215
371 roll_fast 2.654 0.46937636788590276 -0.6762101067234576 0.56782542813376
372 roll_fast 2.704 0.41135253131562505 -0.49459186357414753 0.7656160809873834
373 roll_fast 2.756 0.4003164340439995 -0.46567532370481146 0.7892358617844955
374 roll_fast 2.806 0.4003164340439995 -0.46567532370481146 0.7892358617844955
375 roll_fast 2.856 0.4003164340439995 -0.46567532370481146 0.7892358617844955
376 roll_fast 2.909 0.23776990821948535 -0.11571873999513957 0.9644037764127819
377 roll_fast 2.959 0.16427200734952954 0.021719340056452676 0.9861759365695698
378 roll_fast 3.009 0.045283382036564734 0.22486689122887976 0.9733366820069969
379 roll_fast 3.06 -0.036992167616838594 0.3533761993353274 0.9347496142167305
380 roll_fast 3.11 -0.11945927877262154 0.4727802269146366 0.8730454385389513
381 roll_fast 3.16 -0.11945927877262154 0.4727802269146366 0.8730454385389513
382 roll_fast 3.21 -0.11945927877262154 0.4727802269146366 0.8730454385389513
383 roll_fast 3.26 -0.11945927877262154 0.4727802269146366 0.8730454385389513
384 roll_fast 3.31 -0.34832219782009477 0.7463942489988824 0.5670690183453625
385 roll_fast 3.36 -0.41060542302987857 0.8020551652797916 0.43371730242919837
386 roll_fast 3.412 -0.5060192508828523 0.8512722526760851 0.1388526901422534
387 roll_fast 3.462 -0.5367672669096389 0.8435913083033272 -0.015316844630572738
388 roll_fast 3.514 -0.5424930121603433 0.838335256896307 -0.05380825960575971
389 roll_fast 3.564 -0.5424930121603433 0.838335256896307 -0.05380825960575971
390 roll_fast 3.614 -0.5424930121603433 0.838335256896307 -0.05380825960575971
391 roll_fast 3.664 -0.5596773753080179 0.7324962784354845 -0.3875699132369452
392 roll_fast 3.715 -0.5187323267754228 0.5571689196924458 -0.6484439590950855
393 roll_fast 3.765 -0.5007518821327692 0.5038887555605733 -0.7038065604696406
394 roll_fast 3.815 -0.4301120965633418 0.32618176435100704 -0.8417891903527572
395 roll_fast 3.865 -0.41609751831590275 0.29451533035891825 -0.8603043504684399
396 roll_fast 3.915 -0.41609751831590275 0.29451533035891825 -0.8603043504684399
397 roll_fast 3.965 -0.41609751831590275 0.29451533035891825 -0.8603043504684399

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,459 @@
# Challenge / EX missions — the stage set, the GamePart graph, and the kind field
**Status:** ✅ for the static structure (stage set, GamePart ids, the config-section
switch) and for the **unlock mechanism** — a bit test against a *cleared-stage* mask,
now **read live off the running game and matching the profile's progress exactly**
(§5.6). 🟡 for the stage-field crash mechanism, for word B's writer, and for which
mission consumes which bit; ❔ how the challenge menu is actually entered.
**Method:** static analysis (`.pe` strings/pointers + DuckDB disassembly + disc
records), then confirmed on the running title via the container-safe
[`--hid=file` pad](../../../xenia-canary-native/src/xenia/hid/file/file_input_driver.h)
and a live guest-memory read.
**Evidence:** [`captures/challenge-map.txt`](captures/challenge-map.txt),
[`captures/challenge-screen-config.txt`](captures/challenge-screen-config.txt),
[`structures/achievements.md`](structures/achievements.md);
`examples/challenge_map.rs`, `examples/challenge_screen.rs`.
## Why this was worth doing
The Route-B unit harvest is complete for the **story** campaign (68 of 110 units,
7 115 defaulted-on-disc values) and stalled there: the remaining units are `*_EX4` /
`*_EX5` / `*EX` variants that only the challenge missions field. The save's stage
field addresses those stage records — but setting it to **27** boots to the title and
then the emulator **exits during the load**, while 116 all load normally. This note
answers *what the challenge missions are on disc* and *why the stage field alone is
not enough*, so the next runtime attempt is targeted rather than another probe sweep.
## 1. The disc has exactly 29 stage records, in three families ✅
`StageResource` (schema `0x3c9ae32e`) in `dat/GP_MAIN_GAME_E.pak`:
| ids | count | `BackGroundID` | reading |
|---|---|---|---|
| `S01``S16` | 16 | Lebendorf … PD (real locations) | the **story** campaign |
| `S18``S23` | 6 | `Original` (all six) | the **tutorial** missions |
| `S24``S29` | 6 | Anastasis, Hargenteen ×2, Planet_Lebendorf, Lebendorf, Earth | the **challenge** missions |
| `Test` | 1 | Earth | developer stage |
`S17` does not exist. This **matches `weapon.tbl`'s sprite-key set exactly**
`stage01…16` + `tutorial01…06` + `challenge01…06` (recorded in
[static screen config](#)) — which is an independent confirmation of the three-way
split: 16 + 6 + 6 + Test = 29.
The `Original` six carry ~43 tokens each while the story and challenge records carry
5159, consistent with tutorials having no squadron/route/formation tables.
## 2. `GP_CHALLENGE.pak` is a screen, not mission data ✅
151 entries, **0 IDXD objects** — sprites and layout only. So challenge missions are
*not* a separate data set: they are ordinary `StageResource` records in
`GP_MAIN_GAME_E.pak`, reached through a different menu. That is why the EX unit
rosters show up in the same `EnumUnit_S<NN>` tables the story stages use.
## 3. The GamePart id table — the game's whole screen graph ✅
`.rdata` pointer array at **`0x820A1630`**, 29 entries, index = GamePart id:
```
0 GP_TITLE 10 GP_BUNK 20 GP_STAGE_CLEAR
1 GP_ADVERTISE_DEMO 11 GP_READY_ROOM 21 GP_MISSION_LOG
2 GP_SELECT_STORAGE 12 GP_HANGAR 22 GP_GAMEOVER
3 GP_LOAD 13 GP_ARSENAL 23 GP_DEBRIEFING
4 GP_SAVE 14 GP_PILOT_LOG 24 GP_DIALOG
5 GP_EXTRAS 15 GP_SYSTEM 25 GP_TUTORIAL
6 GP_MOVIE_THEATER 16 GP_DEMO *26 GP_CHALLENGE
7 GP_MISSION_SELECT 17 GP_MAIN_GAME 27 GP_LEADERBOARD
8 GP_OPTIONS 18 GP_SELECTOR 28 GP_TEST
9 GP_MOVIE 19 GP_PAUSE_MENU
```
The indices are **not inferred from position** — the image carries the factory
registration text, e.g.
`silph::GamePartTask::RegisterToFactory<26, class silph::GamePart_ChallengeMission>::RegisterToFactory is failed!`
and `<10, … GamePart_Bunk>`, both of which agree with this table. So `GP_CHALLENGE`
is GamePart **26** and `GP_TUTORIAL` is **25**.
## 4. A mission-**kind** field selects the stage config section ✅
Immediately before the array above, `0x820A1600``0x820A162C` holds the stage-config
key list: `BASE_INFO`, `StageResource`, `Background`, `PlayerUnit`,
`EQUIIP_LIMITATION` *(sic)*, `MODEL_PATH`, `NEW_ITEM`, `LOADING`, `CHALLENGE`,
`EXTRA`, `FILE`.
The stage loader picks **one of the last three** by a field at **`object + 144`**, and
the same three-way switch appears at two independent sites (`0x82184df0` inside the
all-keys config reader, and `0x82185ed0` in `sub_82185E80`):
```asm
lwz r11, 144(r30)
cmpi r11, 3 ; == 3 -> "EXTRA" (0x820A2160)
beq extra
addi r11, r11, -5
cmpli r11, 1 ; == 5 or 6 -> "CHALLENGE" (0x820A2154)
bgt file ; otherwise -> "FILE" (0x820A2168)
```
Two further sites (`0x82186a60`, `0x82186cb8`) classify the same field as
`{3, 5, 6}` versus everything else — i.e. **EXTRA and CHALLENGE together are "not an
ordinary story load"**. Every write to `+144` inside this class (`0x82184b10`,
`0x82185d48`, `0x82186ab4`) only *clears* it, and nothing in the image stores an
immediate 3/5/6 into it, so the kind is **supplied from outside the class** — by
whichever GamePart launches the mission — not derived from the stage number.
> ⚠️ **Withdrawn:** this section used to add "the field is initialised to 0 in the
> constructor `sub_821783D8`, alongside `+148 = 0`, `+132 = 2`, `+136/+140 = -1`".
> That linked two code regions on nothing more than both touching `+144`/`+148`, and
> a snapshot **refutes it**: `sub_821783D8` initialises the **static** at
> `0x828F3EC0` (its first act is `InitializeCriticalSection(obj, 256)`), and in an
> in-flight snapshot that object's `+144` holds `0x000B1C8B` and `+592` a float —
> not a kind and not flags. So **the object owning the kind field is unidentified**.
> Scanning the snapshot for it (kind ∈ {0,3,5,6} at `+144`, stage at `+148`,
> pointers at `+0`/`+52`/`+604`) returns only matches inside the executable's own
> static data — `10` at `+148` is far too common to discriminate. The **switch
> itself stands**: it is direct disassembly at two sites. Only the constructor
> attribution was wrong.
**Confirmed on screen instead:** launching a story stage from MISSION SELECT reaches
a READY ROOM carrying an **"EXTRA" watermark**
([capture](captures/ready-room-extra-mode.png)) — the `EXTRA` config section, i.e.
kind **3**, visible in the UI. That is independent evidence the kind field means what
§4 says, even though its owning object is not pinned.
### 4.1 Why the stage-field probe crashes 🟡
That gives a mechanism for the observed failure: patching the save's stage field to
27 selects the `S27` **record** while the kind stays **0**, so the loader reads the
`FILE` section for a stage whose config lives under `CHALLENGE`. A missing section
then propagates into the load, and the title exits. It fits the evidence (116 fine,
every 2429 the same failure, `/dev/shm` empty and disk free, so not the resource
trap) but it is **not proven** — proving it needs a run.
**Cheap untried discriminator, no new tooling:** patch the stage field to **1823**
(the tutorials). If those also die, the failure tracks "record outside the story
range", and the kind field is the likely gate. It has never been tested — only
116 and 2429 were.
## 5. The challenge screen, its six missions, and the unlock gate ✅
The factory registration sites (`0x8280C000``0x8280F800`) give **id → creator** for
22 of the 24 registered parts, and the creators bound each class's code block. So
`GamePart_ChallengeMission`'s methods are **`0x82187E60``0x8218CF10`** (between
`GP_BUNK`'s creator `0x82187E38` and its own `0x8218CF10`). Resolving every string
that range references gives the screen's whole config schema:
```
MISSIONS · MISSION_ID · RECORD_TYPE · REQUIREMENT · REQUIREMENT_DESC
NORMAL_BUTTON · GRAY_BUTTON · THUMBNAIL · STAGE_DESC · TEXT_STAGE
TEXT_RECORD · NEW_STAGE · "Always" · "Time" · BASE_INFO
```
**The record itself is on disc**, in `tables.pak` (schema `54a10697`, one copy per
language — English is entry #64), *not* in `GP_CHALLENGE.pak`. It names six missions:
| slot | `MISSION_ID` | buttons / thumbnail | record |
|---|---|---|---|
| 1 | `TimeAttack` | `Button_TimeAttack{,_Gray}`, `Thumbnail_TimeAttack` | `Time` |
| 2 | `ScoreAttack` | `Button_ScoreAttack{,_Gray}` | `Points` |
| 36 | `Extra01``Extra04` | `Button_Extra0N{,_Gray}` | — |
`GRAY_BUTTON` is the locked art, `NORMAL_BUTTON` the unlocked art — so the screen
always shows all six and greys out what you have not earned. Full dump:
[`captures/challenge-screen-config.txt`](captures/challenge-screen-config.txt).
### 5.1 The gate is a bit test against a progress bitfield ✅
`0x82189870` builds the list, and `0x82189970``0x821899D8` is the availability
decision for each mission:
```asm
lookup REQUIREMENT in the mission record ; bl 0x82448C50
absent -> AVAILABLE
== "Always" -> AVAILABLE ; strcmp, bl 0x825EDD20
else n = atoi(v) ; bl 0x825EDCD0
n == 0 -> LOCKED
n < 24 -> bit n of word A
n >= 24 -> bit (n-24) of word B
bit set ? AVAILABLE : LOCKED
```
Word A and word B are read from a **singleton** (`0x821707C0`; the object pointer
lives at the global `0x828F48B0`, with a construct-once flag at `0x828F48BC`) at
offsets **`+80`** and **`+1956`**. So challenge
availability is one bit in a progress bitfield, and `REQUIREMENT` is that bit's index
**not** a stage number, a score, or a difficulty.
### 5.2 The bit space is CLEARED STAGES ✅
Word A has exactly **one** writer in the image, and finding it settles the question.
Scanning all 22 callers of the `+80` struct copier (`0x82175110`) for one that stores
to the copy's **word 0** gives a single hit, `0x821C1820`, inside
**`GamePart_StageClear`** (`0x821C09D8``0x821C29F0`):
```asm
if (this+1004 & 0x20000) skip ; already recorded
this+80 = 1
copy local = singleton->progress ; bl 0x82175110, src = obj+80
x = this+84
local.word0 |= 1 << x ; slw r10, r26, r10
if changed: singleton->set(local) ; bl 0x8216FF70 (assign + async persist)
```
**`this+84` is the stage number**, and two independent uses prove it:
- `0x821C1760` indexes a **20-byte record array** with it — `this + (x+7)*20`, whose
records are written as three words plus an 8-byte timestamp, i.e. the shape of the
savegame's 16×20-byte `SHAB` table;
- `0x821C1EEC` and `0x821C1924` pass it as the **index into the config key `STAGE`**
(`0x820A2540`) — the debriefing config's `px_deb_stage01…16` sprite list.
So **word A is a "stage cleared" bitmask**, and a challenge mission's `REQUIREMENT n`
means **"stage `n` has been cleared"**. The `< 24` / `>= 24` split then lines up with
the disc's own stage numbering from §1: story `1``16` and tutorial `18``23` sit in
word A, and the challenge stages `24``29` are exactly word B's bits `0``5`.
> ⚠️ **Third revision of this claim — the first two were wrong, and how they went
> wrong is worth keeping.** An earlier pass read the split at 24 as "the game's 24
> achievements" because `ACHIEVEMENTS_REQUIREMENTS` has exactly 24 entries. That is a
> **coincidence**: the achievement count and the first challenge stage id are both 24
> for unrelated reasons. The achievement work itself stands — the `XACH` table, the
> 1000G self-check, and the `XACHIEVEMENT_DETAILS`/XAM enumeration are all solid, and
> are documented in [structures/achievements.md](structures/achievements.md) — it just
> **does not gate the challenge missions**. The lesson: a numeric coincidence is not a
> join; find the writer.
### 5.3 What the six requirement values are ✅/🟡
The record's numeric tokens are `16`, `25`, `26`, `27`, `29`, with `24`/`28` already
in the pool earlier (they double as font metrics) and so **deduped away** if used.
IDXD dedup makes positional key/value pairing unsound in general — but `16` sits
*immediately* before `REQUIREMENT` (tokens 96 → 97), the documented value-before-key
adjacency, so the first mission's value is well-supported.
**`TimeAttack` requires stage 16 cleared** — the final story mission. That is the
natural gate, and it is what the *first* reading of these numbers suggested before the
achievement detour talked me out of it.
The other five values are `≥ 24`, i.e. **challenge stages 2429**: the challenge
missions chain off each other. 🟡 on the exact pairing (which mission needs which),
which needs the record's binary index section rather than the string pool.
🟡 **Word B has no known writer.** `GamePart_StageClear` sets `1 << x` into word A
unconditionally, which for a challenge stage (`x ≥ 24`) would land on word A bits
2429, *not* word B — so clearing a challenge mission must be recorded by a different
path, presumably one that also stores its `Time`/`Points` record. Not yet found.
**Negative worth keeping:** the requirement *text* (`TimeAttackRequirement`,
`Extra01Requirement`, …) is **not** in `GP_CHALLENGE.pak` — building a `TextIndex`
over it yields **0 entries** and its only wordy payload is embedded font copyright.
The config's `PATH` is `dat\GP_CHALLENGE.pak+eng\`, a per-language branch, so those
keys resolve through a naming scheme the current loader does not reproduce. Reading
them would say in plain English what each mission asks for — worth one more attempt
via `hash::TOC_NAME_SCHEMES`.
### 5.4 Where the mask lives, and one lead refuted
### 5.5 Both gate words are one record — and it is **not** the savegame ✅
`0x82175110` copies the record at singleton `+80` in full: two words, an 8-byte pair, a
184-byte `memcpy`, 8 words from `+200`, then **816 bytes at `+232`, 816 more at
`+1048`**, a sub-object at `+1864`, and a final word at **`+1876`**. So the record runs
`+0 … ~+1880`, i.e. singleton `+80 … +1960` — which means
- **word A** is record `+0` (singleton `+80`), and
- **word B is record `+1876`** (singleton `+1956`).
That answers §5.3's "word B has no known writer": there is no separate `stw` because
the whole record is copied out, modified and assigned back as a unit
(`0x8216FF70` → compare `0x822C3708`, assign `0x82170650`, then spawn a worker
`0x821700A8` under a lock which retries a commit `0x822C33B8` up to five times).
`GamePart_Debriefing` uses the same get/modify/set to accumulate saturating career
counters at `+200``+224` (the last 64-bit) — the quantities the achievement
requirements test.
**And the record is not what `savedata` holds.** Two independent checks:
- **Size.** Every real save on disk is a **276-byte** container deflating to a
**545-byte** payload. The progress record is **~1 880 bytes**. It does not fit.
- **Files.** After many sessions the game's content tree holds only
`game0N/savedata` + `game0N/__thumbnail.png` per slot and the three
`Headers/*.header` — no second data file anywhere.
Also checked and negative: the savegame object is `*(*(this+4)) + 304`, and the
singleton's holder address (`0x828F48B0`) is referenced **nowhere but inside the
accessor itself**, so `this+4` is a different holder — the save block is not a window
into this record.
⚠️ **So hand-editing a save cannot unlock the challenge missions.** That kills the
operational hope this section previously carried; the earlier savegame-editing win
does not extend here.
### 5.6 CONFIRMED ON THE RUNNING GAME ✅
Read live from a booted title (`tools/re-capture/gpoke.py r32`):
```
0x828F40C0 = 0x00000002 word A
0x828F4814 = 0x00000000 word B
```
**Word A = 2 = bit 1 set.** The profile's save is *Stage 02, "At Standby"* — i.e.
**stage 01 cleared** — so the mask is exactly one bit, at the index of the one
cleared stage, **1-based**. Reproduced on two separate cold boots. That confirms, on
the running game and against a known progress state:
- the singleton really is the static object at `0x828F4070`;
- word A is a **cleared-stage bitmask**, not achievements, not a stage number;
- bit index = **stage id, 1-based** — so `TimeAttack`'s `REQUIREMENT 16` is
"clear stage 16", the last story mission;
- word B is the challenge half and is `0` on a story-only profile, as expected.
Both words were then poked (`0xFFFFFFFF` / `0x3F`) and read back OK.
**MISSION SELECT shows the mask directly** ([capture](captures/mission-select-stage01-only.png)).
With word A = 2 the screen lists `Stage01` **selectable, with a High Score and Best
Time**, and `Stage02``Stage08` **greyed out**. One cleared stage, one selectable
entry, at the bit index that names it — the semantics are visible on screen, not
inferred.
**And the mask drives that screen.** Two runs, identical navigation, fresh boot each:
| run | word A | MISSION SELECT |
|---|---|---|
| control | `0x00000002` (untouched) | opens; Stage01 selectable, rest greyed |
| poked | `0xFFFFFFFF` | `MmAllocatePhysicalMemoryEx` fails on a 128 MB request, guest throws, Xenia shows "Disc Read Error" |
So the earlier failure was **caused by the poke**, and by a careless one: `0xFFFFFFFF`
claims stages that do not exist (`0`, `17`, `24``31` in word A). Poking only real
story ids (`0x0001FFFE` = stages 116) does **not** blow the heap. That the list
screen changes behaviour with the mask is itself confirmation that word A feeds it.
**Poking real stage ids unlocks the story campaign in the menu** ✅. With word A =
`0x0001FFFE` (stages 116) every entry `Stage01``Stage16` is selectable
([capture](captures/mission-select-all-story-unlocked.png)) where the control had only
`Stage01`; `Stage16` reads *"Lonely Blue Planet — NO RECORD"*. So **any story stage
can now be launched from the menu**, with no save editing, by poking one word.
**But MISSION SELECT is story-only** ❌. With word B = `0x3F` (challenge stages 2429
marked cleared) the list still **saturates at `Stage16`**
([capture](captures/mission-select-ends-at-stage16.png)) — the cursor stops there and
further presses do nothing. That matches the data: the debriefing config declares
exactly `px_deb_stage01…16`, so the list length is capped by the disc, not by the
mask. **The challenge missions cannot be reached through this screen**, and word B
does not feed it.
**What the poke did not do (yet):** `EXTRAS` still shows only `MISSION SELECT /
MOVIE THEATER / BACK` — no challenge entry — although the menu was built 26 s
*after* the poke, so this is not staleness. Entering `MISSION SELECT` then failed,
and the log gives the real reason: **`MmAllocatePhysicalMemoryEx` could not satisfy
a 128 MB request** (`parent free 30633/131072 pages`), the guest threw a C++
exception, and Xenia surfaced it as its generic *"Disc Read Error"* dialog. It is
preceded by `BaseHeap::Release failed because address is not a region start`, a
failed release that leaks the range. So that is an emulator/heap problem on the way
into the screen, **not** evidence about the gate. Open: repeat without the poke to
see whether `MISSION SELECT` fails the same way regardless.
### 5.7 What *would* work — static addresses for a live write
The singleton is a **static object at `0x828F4070`** (`0x8216F650`:
`addis 0x828F` + `addi …, 16496`), with the holder at `0x828F48B0` pointing at it. So
the two gate words are at fixed guest addresses, no scanning required:
| word | guest VA | meaning |
|---|---|---|
| A | **`0x828F40C0`** | cleared stages, bit = stage id (`< 24`) |
| B | **`0x828F4814`** | cleared stages, bit = stage id 24 (challenge 2429) |
Canary maps guest RAM into `/dev/shm`, which the project already reads live
([`tools/re-capture/gmem.py`](../../tools/re-capture/gmem.py)). Writing
`0xFFFF` into word A and `0x3F` into word B while the title sits on a menu should
open all six challenge missions **without playing the campaign** — and that is the
route to the last 42 `*_EX4`/`*_EX5` units. Untested: it needs a run, and the run
needs gamepad input to reach the menu.
**The obvious lead is dead.** The three `stw`s to `+1956` in `0x822AF278` /
`sub_822C8748` looked promising because they sit in the save serializer's code region
— they are on a **different object**. That one is fetched through `0x822CEB30`, has a
`+2652` flag the code checks first, and stores **string pointers** at `+1956`/`+2024`
(built by `0x822D35F8`); a pointer `AND`ed with `1 << n` would be meaningless as a
gate. So **nothing in the image stores to this singleton's `+1956` field-wise**, which
means it is filled by a bulk copy or by a path not yet found.
Two candidates remain and they need different levers: the **save** (hand-write it) or
the **Xbox profile** (the emulator's profile data). Note that XEX imports are resolved
**by ordinal**, so the absence of `XamUser*` name strings in the `.pe` is not evidence
against the profile route. `+80` at least is handled as a small struct by address
(`addi r4, obj, 80` → copy helper `0x82175110`, written back via `0x8216FF70`), which
is what a serialised value object looks like.
### 5.8 The part id is never persisted — differential search ✅ (negative)
`sub_821749C0` creates a part from `slot+12`, and no literal 26 exists anywhere, so
the id is computed. It can still be found by **differential search**, because the id
is *known* at each screen from §3: `GP_EXTRAS` = 5, `GP_MISSION_SELECT` = 7. Snapshot
both screens and intersect (`tools/re-capture/diff_words.py`):
```
scanned 171 MB of allocated guest memory
addresses reading 5 on EXTRAS and 7 on MISSION SELECT: 4
0x708FFBEC 0x708FFCBC 0x708FFDAC 0x708FFE20
```
**All four are guest stack** (thread stacks sit at `0x709…` in the same run's log).
So the requested part id exists only as a **stack argument in flight** — there is no
persistent field holding it, which is consistent with finding no literal store and
means **there is nothing stable to poke**. Forcing a transition to GamePart 26 needs
the caller's context, i.e. an emulator-side hook rather than a memory write.
**Every memory-and-menu route to the challenge missions is now closed** (§5.4, §5.6,
§5.7, this section). What remains is the genuine in-game unlock — an in-mission
attainment, per `AVSCRIPT_COMMAND_ATTAINMENT_CHALLENGE_MISSION_CARGO_SCORE` — or a
Canary patch that forces the transition in emulator code.
## 6. The unlock condition, from the strings ❔
Three strings say challenge missions are *announced*, not menu-browsed:
- `AVSCRIPT_COMMAND_ATTAINMENT_CHALLENGE_MISSION_CARGO_SCORE` — a mission-script
command that grants challenge-mission attainment from a **cargo score**;
- `DLG_CHALLENGE_MISSION_AVAILABLE` — the "a challenge mission is now available"
dialog;
- `DLG_GO_CHALLENGE_MISSION_MENU` — the prompt that takes you to GamePart 26.
So the gate is plausibly an in-mission achievement, not a title-menu state — which is
consistent with `Game Status = GAME_CLEAR` unlocking nothing (measured, refuted).
Neither dialog key is reachable by xref: they are selected **by index** through a
config lookup, exactly like the save screen's sprite keys, so there is nothing to
grep back to. Naming the flag needs the challenge-availability check disassembled
from the screen side.
## 7. What this makes actionable
`roster_target` against the harvested CSV, with the stage families now named:
| stage | family | roster units not yet read |
|---|---|---|
| `S27` | challenge | `f003_ArrowHead_EX4`, `e107_AAFrigate_EX4`, `e010_Attacker_S_EX4`, `e011_Attacker_B_EX4`, `e007_Turret_EX4`, `e008_TurretPlus_EX4` |
| `S28` | challenge | `f004_DeltaSaber_A_Player`, `f001_DeltaSaber_T_EX5(_el)`, `f003_ArrowHead_EX5`, `f104_Battleship_EX5`, `f105_Cruiser_EX5` |
| `S25` | challenge | `e101_SDBattleshipEX`, `e102_BattleshipEX`, `e105_CruiserEX`, `e108_ASFrigateEX` |
| `S29` | challenge | `e101_SDBattleshipEX`, `e102_BattleshipEX`, `e105_CruiserEX` |
| `S24` | challenge | `e105_CruiserEX`, `e106_DestroyerEX` |
| `S10` | **story** | `e005_ADAN_ElanTypeQ_Margras` |
⚠️ **The `S10` row contradicts "the story campaign is complete."** One story stage
still fields a unit that has never been read. Either `S10` was never flown (it is the
smallest stage container on the disc — 7 XBG7 resources — so it may be a cutscene
stage that is not flyable), or the completeness claim was one unit optimistic. Flagged
rather than resolved: it costs one ordinary story run to settle.
Remaining coverage: 42 units missing, of which the rosters above account for ~23. The
rest are not in any stage roster table and need a different lever.
## Reproduce
```bash
cargo run --release -q -p sylpheed-formats --example challenge_map -- <disc-root>
cargo run --release -q -p sylpheed-formats --example challenge_screen -- <disc-root>
python3 xenia-rs/zq.py dis 0x82184df0 0x82184e30 # the three-way section switch
python3 xenia-rs/zq.py dis 0x82185ed0 0x82185f10 # the same switch, second site
python3 xenia-rs/zq.py dis 0x82189860 0x821899f0 # the challenge availability gate
```

738
docs/re/flight-speed-law.md Normal file
View File

@@ -0,0 +1,738 @@
# The throttle is a TARGET-SPEED selector — measured against the definition (2026-08-13)
**Status: ✅ for the shape of the law, 🟡 for the unit scale.**
The unit definition gives `MinimumVelocity 100`, `CruisingVelocity 350`,
`MaximumVelocity 1200`, `Acceleration 600` and `Deceleration 500` for
`UN_f001_TCAF_DeltaSaber_T_Player` ([values](captures/unit-runtime-fields.csv)),
but not **how** the game applies them. This measures it.
Method — [`tools/re-capture/speed_law.py`](../../tools/re-capture/speed_law.py):
lock onto the player entity once, then sample its own position triple in guest RAM
while holding each throttle input in turn (8 s per phase, 20 Hz). Speed is
differentiated over **1-second windows**, never per sample.
## Result
| phase | measured speed (1 s windows) | settles to | definition field |
|---|---|---|---|
| no throttle | 367 403 471 365 463 463 365 | **~420** | `CruisingVelocity` 350 |
| `RT` held | 1041 1376 1551 1379 1596 1510 1620 | **~1 530** | `MaximumVelocity` 1200 |
| release | 1314 672 432 452 432 450 408 | back to **~440** | — |
| `LT` held | 203 121 135 121 115 146 122 | **~125** | `MinimumVelocity` 100 |
| release | 369 451 427 425 445 390 465 | back to **~430** | — |
So the throttle **selects a target speed** and the craft converges to it; releasing
either trigger returns it to cruise. (**Refined below**: the trigger is analogue, so
the target is a continuous interpolation and these three are its endpoints.) It is not a
force model with the throttle adding thrust, which is what a reimplementation would
most likely have assumed from `Acceleration`/`Deceleration` alone. Those two fields
govern the **convergence rate**: the release phase falls ~1 314 → ~432 in about two
seconds (~440 units/s², against `Deceleration` 500) and the `RT` phase climbs ~420 →
~1 550 in two to three seconds (~470560 units/s², against `Acceleration` 600).
## 🟡 The unit scale
Measured world-space speeds run **≈1.21.3× the definition numbers** in all three
regimes (cruise 1.21, maximum 1.28, minimum 1.32). The HUD, meanwhile, reads
**350** at cruise — the definition value exactly. So the definition's velocity unit
is the HUD's, and entity world coordinates are a constant multiple of it, close to
**1.25**. The spread across regimes is larger than the constant itself is precise,
because the craft is manoeuvring under fire while sampled (straight-line
displacement per window under-reads a curving path), so this is recorded as a
measured range rather than a pinned constant.
## Traps
* **`RT`/`LT` are analogue triggers**, so `vgamepad trig RT 1.0` holds the throttle;
the button verb `hold RT` is a **silent no-op**. The first run of this probe
measured the drift of a craft nobody was flying.
* **Do not differentiate per sample.** The guest updates the position slower than
20 Hz, so per-sample differences alternate between 0 and a double step —
`0, 1519, 1985, 0, 2681…` for a craft flying smoothly.
* **Bind late, measure fast.** The player entity is not in the typed-entity scan
for the first ~15 s of a mission, and the craft dies within a few minutes if
nobody is flying it — one earlier attempt ended at `GAME OVER` mid-probe.
Raw samples: [`captures/speed-law-throttle-phases.csv`](captures/speed-law-throttle-phases.csv).
---
# Turn rates: `AV_*` are rate caps, and `_Min`/`_Max` mean *at minimum/maximum speed*
`tools/re-capture/turn_law.py` pins the speed regime with a throttle, holds a stick
axis, and differentiates the craft's **own forward vector** over 1-second windows.
**Control mapping, measured**`LX` is **roll** (the forward vector barely moves
under it: 35 °/s residual), `LY` is **pitch** (`vgamepad` documents `LY: -1 = up`,
so `+1` is nose down = the `PitchMinus` family), and the **right stick does not
steer at all** (0 °/s).
| phase | measured (1 s windows) | definition |
|---|---|---|
| slow + nose down | 85 · 96 · 82 → **~87** | `AV_PitchMinus_Min` **75** |
| fast + nose down | 55 · 45 · 63 → **~54** | `AV_PitchMinus_Max` **40** |
| slow + nose up | 181 · 164 · 181 → **~175** | `AV_PitchPlus_Min` **150** |
| fast + nose up | 103 · 130 · 175 → **~136** | `AV_PitchPlus_Max` **70** |
Two claims of the field names are confirmed:
* **Agility falls with speed** — every rate drops when the throttle goes from `LT`
to `RT`, so `_Min`/`_Max` are *at minimum / maximum speed*, not floor/ceiling of
the rate.
* **Pitching up is about twice as fast as pitching down**, exactly as the pair
150/75 (slow) and 70/40 (fast) says.
## The ~1.2× factor — ⚠️ WITHDRAWN, see "Settled rates match exactly" below
The speed law measured 1.21 / 1.28 / 1.32 × its definition values; the pitch rates
measure 1.16 / 1.35 / 1.17 / 1.94 × theirs. A **unit scale** would have to differ
between metres-per-second and degrees-per-second — it cannot explain both. A **time
base** does: if the guest's simulated second is shorter than the wall-clock second
this probe measures against, every rate reads high by the same factor. So the
definition numbers are self-consistent and a reimplementation should take them at
face value; these measurements confirm the **shape** of the law (which field governs
what, and how the regimes switch), not a scale correction.
🟡 **No yaw input was found.** `AV_Yaw_{Min,Max}` (45 / 25 °/s) exists, but neither
stick yaws the craft. With `MaximumBank_Normal` (60) and roll on `LX`, a
**bank-to-turn** model is the obvious reading — sustained turns come from rolling and
pitching — but the yaw fields may equally belong to the AI or to an input this probe
has not driven.
Raw samples: [`captures/turn-law-pitch-phases.csv`](captures/turn-law-pitch-phases.csv).
---
# The afterburner is not on the obvious buttons — a bounded negative
The definition describes the burner without naming its input: `AB_ConsumeShield_Begin`
**50**, `AB_ConsumeShield` **10**, and a set of `AB_AV_*` turn caps far below the
normal ones (roll 40 vs 125200 °/s, pitch-up 30 vs 70150). Notably there is **no
`AB_*Velocity`**, so the burner may not raise the speed target at all.
Two independent probes, both negative for `A`, `B`, `X`, `LB` (and `LS`/`RS` on the
first):
* [`tools/re-capture/ab_probe.py`](../../tools/re-capture/ab_probe.py) — hold `RT`
for a max-speed baseline, then hold each candidate: speed stayed inside the
baseline's own noise band (1 2001 580 units/s) for every one.
* [`tools/re-capture/ab_state_probe.py`](../../tools/re-capture/ab_state_probe.py) —
sample a window of the player object while each candidate is held and report any
float that falls during the hold: **nothing fell**.
* And the cheapest oracle of the three, needing no offsets at all: **count the green
pixels of the HUD's SHIELD bar** before and after each hold, on a freshly spawned
craft with a full shield. `AB_ConsumeShield_Begin 50` should take a visible bite;
the bar read **156, 156, 156, 157, 157** across baseline and all four buttons.
So the burner is **not a simple hold on `A`/`B`/`X`/`LB`/`LS`/`RS`**. What remains:
a chord (something plus `RT`), an input this pad cannot reach, a craft variant that
has it, or fields that belong to the AI rather than the player. Worth knowing before
anyone re-probes the obvious buttons.
(`RB` is the nose gun, `Y` the missile mount and the d-pad the tactical map — see
[flight controls](flight-controls-runtime.md) — so those were not held here.)
---
# The throttle is ANALOGUE: the target speed interpolates cruise → maximum
`RT` is an analogue trigger, so "held" was only ever one point on a curve. Walking
it in five steps ([`tools/re-capture/throttle_curve.py`](../../tools/re-capture/throttle_curve.py),
2.5 s to converge then 5 s of sampling per step):
| `RT` | settled speed (1 s windows) | mean |
|---|---|---|
| 0.00 | 465 · 411 · 373 · 504 | **438** |
| 0.25 | 648 · 554 · 678 · 622 | **626** |
| 0.50 | 739 · 961 · 897 · 919 | **879** |
| 0.75 | 1028 · 1086 · 977 · 1283 | **1094** |
| 1.00 | 1359 · 1306 · 1517 · 1186 | **1342** |
A straight ramp. Dividing by the ~1.2 time-base factor established above, the
endpoints land on the definition's own numbers — 438/1.2 ≈ **365** against
`CruisingVelocity` **350**, and 1342/1.2 ≈ **1118** against `MaximumVelocity`
**1200** — and the midpoint follows: 879/1.2 ≈ 733 against the predicted
350 + 0.5·(1200350) = 775. So
```
target speed = CruisingVelocity + RT · (MaximumVelocity CruisingVelocity)
```
and `LT` mirrors it down to `MinimumVelocity`**measured**, see below.
**This also refutes a live hypothesis about the afterburner.** Full `RT` producing
more than `MaximumVelocity` looked like it might *be* the burner; it is not — the
curve is smooth through full deflection, with no step, and the shield does not move.
Full throttle is simply full throttle.
Raw samples: [`captures/throttle-curve-rt.csv`](captures/throttle-curve-rt.csv).
(The entity scan that locks onto the player searches *changing* position triples, so
it only sees the craft while it still has speed — bind early, or a mission left
idling drops out of the scan entirely and every tool reports "player entity not
found" while the game is visibly flying.)
---
# `LT` mirrors `RT`, and roll does NOT depend on speed
One flight, both measurements
([`tools/re-capture/flight_law2.py`](../../tools/re-capture/flight_law2.py)).
## The braking half of the curve
| `LT` | 0.00 | 0.25 | 0.50 | 0.75 | 1.00 |
|---|---|---|---|---|---|
| speed | 436 | 379 | 289 | 209 | **126** |
A straight ramp down from cruise to ~126, and dividing by the ~1.2 time-base factor
the endpoints are the definition's own numbers again — 363 against
`CruisingVelocity` **350** and 105 against `MinimumVelocity` **100**. So the throttle
law is symmetric:
```
RT held: target = Cruising + RT · (Maximum Cruising)
LT held: target = Cruising LT · (Cruising Minimum)
```
## Roll
Roll turns the craft about its own forward axis, so it has to be measured on a
different row of the rotation matrix than pitch was:
| phase | rate per 1 s window | mean |
|---|---|---|
| minimum speed + full roll | 171 · 103 · 157 | **~144 °/s** |
| maximum speed + full roll | 140 · 145 · 164 | **~150 °/s** |
**Roll shows no speed dependence** — the two regimes agree inside the noise, where
pitch dropped by a third to a half between them. Against the definition
(`AV_Roll_Min` 200, `AV_Roll_Max` 125) the measured ~145 °/s is ~121 after the
time-base factor, i.e. **the `Max` value in both regimes**.
So the `_Min`/`_Max` pair does *not* mean the same thing for every axis: pitch
interpolates between them with speed, roll appears pinned at `Max`. A
reimplementation that applies one rule to all axes would get roll wrong at low
speed by ~60 %.
🟡 Caveat kept: the roll phases were 2 s of settling apart, which is marginal for a
full 126 → 1 342 speed change, so "no dependence" is a measurement over a real but
not perfectly separated pair of regimes.
Raw samples: [`captures/throttle-curve-lt.csv`](captures/throttle-curve-lt.csv) ·
[`captures/turn-law-roll.csv`](captures/turn-law-roll.csv).
---
# ⚠️ Settled rates match the definition EXACTLY — the "time base" reading is withdrawn
The earlier turn measurements settled each phase for 1.5 s and then differentiated
from the first second. Re-running with **5 s of settle** and the craft's speed
recorded *at the moment the turn starts*
([`tools/re-capture/flight_law3.py`](../../tools/re-capture/flight_law3.py)):
| phase | speed at turn | measured rate | definition |
|---|---|---|---|
| pitch, minimum speed | 130 /s | **74.9 °/s** | `AV_PitchMinus_Min` **75** |
| pitch, half throttle | 388 /s | 73.7 °/s | (between, see below) |
| pitch, maximum speed | 1 821 /s | **41.1 °/s** | `AV_PitchMinus_Max` **40** |
| roll, minimum speed | 110 /s | 129.5 °/s | `AV_Roll_Min` 200 |
| roll, maximum speed | 1 722 /s | 149.3 °/s | `AV_Roll_Max` 125 |
**Pitch lands on 75 and 40 — the definition's own numbers, with no scale factor.**
So the ~1.2× I attributed to the emulated time base was an artefact of measuring
during the `AA_*` acceleration ramp with too little settle, and that explanation is
**withdrawn**: angular rates need no correction, and a reimplementation should use
`AV_*` verbatim.
What remains unexplained is only on the **linear** side: settled speeds still read
high and vary between runs (`RT` full measured 1 342 in one flight and 1 821 in
another, against `MaximumVelocity` 1 200), which is what a craft being shoved around
in a firefight looks like. The HUD, meanwhile, reads exactly `CruisingVelocity` at
neutral throttle. A clean linear measurement wants a quiet corner of a map, not this
one — until then, no cause is claimed.
**Roll, re-measured with proper settles, confirms the axis difference**: 129.5 at
110 /s and 149.3 at 1 722 /s — no speed dependence, both near `AV_Roll_Max` **125**,
where pitch moved 75 → 40 across the same range. The mid-throttle pitch point does
not discriminate lerp-versus-switch, because at half throttle the craft only reached
388 /s, where an interpolation would predict ~66 °/s against a measured 73.7 — inside
this probe's noise.
Raw samples: [`captures/turn-law-settled.csv`](captures/turn-law-settled.csv).
---
# The linear discrepancy is real, and it is between WORLD units and DISPLAYED speed
Last section removed the "time base" explanation by showing settled *angular* rates
match the definition exactly. That leaves the linear side, and the HUD settles it:
screenshotting the speed readout at each throttle step, next to the position-derived
measurement of the same moment
([`captures/throttle-curve-hud.csv`](captures/throttle-curve-hud.csv)):
| `RT` | HUD readout | position-derived | ratio |
|---|---|---|---|
| 0.00 | **350** (= `CruisingVelocity`) | ~447 | 1.28 |
| 0.25 | **507** | ~652 | 1.29 |
| 0.75 | **963** | ~1 141 | 1.19 |
Two things follow.
* **The HUD speaks the definition's language.** It reads exactly `CruisingVelocity`
at neutral and climbs toward `MaximumVelocity` as the trigger is pressed — 963 at
three-quarters, against the 987 the interpolation predicts. So the throttle law
stated above is confirmed in the game's *own* units, independent of any position
sampling.
* **World displacement runs ~1.2× the displayed speed.** Since the angular rates
need no such factor, this is not a clock effect: it is a **unit difference between
the position triple and the velocity fields**. A reimplementation that places
entities in world coordinates and moves them at `MaximumVelocity` will be ~20 %
slow.
🟡 The ratio is 1.191.29 across the three points rather than a clean constant, and
every sample was taken in a firefight where the craft is also being pushed. Pinning
it exactly wants a quiet map or a scripted straight run; the *existence and rough
size* of the factor is what these measurements support.
**A methodological note worth keeping.** This line of work went: hold a trigger →
"three target speeds" → analogue interpolation → an unexplained 1.2× → "time base"
→ withdrawn → a *unit* difference confined to the linear side. Every step came from
one of two moves: **let a held input vary** (the trigger's analogue range), or
**bring in an independent oracle** (the HUD, the definitions, a longer settle). The
wrong turn — the time base — came from explaining a number instead of first
measuring the same quantity a second, cleaner way.
---
# ✅ The linear factor IS the clock — measured against the game's own mission timer
The cleanest possible version of the linear measurement: neutral throttle (HUD reads
exactly `CruisingVelocity` 350), sticks centred, **20 s of perfectly straight flight**
(`straightness = displacement/path = 1.000`, so no manoeuvring contaminates it) —
[`tools/re-capture/cruise_ratio.py`](../../tools/re-capture/cruise_ratio.py):
```
displacement 8 900 world units in 20.1 s -> 443.6 /s
ratio vs the HUD's 350 -> 1.267
```
And the game's **own clock**, read off the HUD across a wall-clock interval:
```
mission TIME 00:08.79 -> 00:46.97 = 38.18 s of game time
wall clock = 30.29 s
ratio = 1.260
```
**1.260 against 1.267 — the same number.** So the linear "discrepancy" was never a
unit difference: **the mission clock runs ~1.26× faster than wall time under this
emulator**, and a speed derived by dividing world displacement by *wall* seconds is
inflated by exactly that. World units and the displayed speed share one unit, and a
reimplementation should take `CruisingVelocity`/`MaximumVelocity` at face value —
per **game** second.
This supersedes the previous section's "world-unit vs displayed-speed difference".
**One thing does not fit, and is left open.** The settled turn rates measured
74.9 and 41.1 °/s *in wall time* against `AV_PitchMinus_{Min,Max}` 75/40 — but if
game time runs 1.26× fast, a 75 °/game-second cap should have read ~94 °/wall-second.
Either that agreement was luck inside a noisy sample (the per-window rates spanned
6196), or angular integration is frame-based where linear is time-based. The check:
re-measure pitch and convert wall→game seconds with the clock ratio, expecting ~94
if the clock explanation is universal.
---
# ✅ The clock factor applies to the ANGULAR side too — and it varies per run
The open question was whether the ~1.26× mission-clock factor explains only the
linear measurements. Measuring **both in the same run** settles it
([`tools/re-capture/pitch_gametime.py`](../../tools/re-capture/pitch_gametime.py):
HUD screenshots bracket each turn phase, so the mission clock's own advance converts
wall seconds to game seconds):
```
this run's clock: TIME 00:33.68 -> 00:44.12 = 10.44 s game in 7.96 s wall = 1.311
```
| phase | wall-time rate | ÷ 1.311 → game-time | definition |
|---|---|---|---|
| pitch, minimum speed | 88.9 °/s | **67.8 °/s** | `AV_PitchMinus_Min` **75** (0.90×) |
| pitch, maximum speed | 53.6 °/s | **40.9 °/s** | `AV_PitchMinus_Max` **40** (1.02×) |
So with the clock correction both land on the definition (the slow phase runs 10 %
low, consistent with the `AA_*` ramp being included in an 8 s window). **The clock
explanation is universal**: every rate the game states is per **game** second, and a
probe that divides by wall seconds reads high by that run's ratio.
**And the ratio is not a constant of the machine — it varies with scene load**:
1.260 in the earlier flight, **1.311** here. It has to be measured *in the same run*
as whatever it is correcting, which is why this probe brackets its own phases with
HUD screenshots.
Bonus confirmation from the same screenshots: at full `LT` the HUD reads **102**,
against `MinimumVelocity` **100** — the throttle law's lower endpoint, in the game's
own units.
## The trap that cost three runs: a dead emulator looks alive
A killed Canary leaves **both** its `/dev/shm/xenia_memory_*` image *and* its last
frame on the X display. So the screenshot shows a mission in progress, the memory
image still parses, and the scans quietly report `0 moving triples` / "player entity
not found" — which reads like a tooling bug. `pgrep -x xenia_canary` does **not**
help: zombies match it. `speed_law.require_live_emulator()` now checks the process
*state letter* and refuses to measure a corpse, naming the stale image in its error.
---
# ⚠️ The roll result is WITHDRAWN — the probe was not isolating roll
Re-running the roll phases with 5 s settles and in-run clock brackets
([`tools/re-capture/roll_gametime.py`](../../tools/re-capture/roll_gametime.py)):
```
this run's clock: TIME 00:34.93 -> 00:45.97 = 11.04 s game in 7.98 s wall = 1.383
minimum speed: 90.6 °/wall-s ÷ 1.383 -> 65.5 °/game-s (AV_Roll_Min 200)
maximum speed: 59.1 °/wall-s ÷ 1.383 -> 42.7 °/game-s (AV_Roll_Max 125)
```
Two things are wrong with reading this as "roll".
* The corrected numbers — **65.5 and 42.7** — are within a few per cent of the
**pitch** run's **67.8 and 40.9**. Two different stick axes producing the same
rates is the signature of a measurement that is not separating them.
* Watching a non-forward matrix row sees **any** rotation that moves that row, and
pitch moves it as much as roll does. The forward row was the wrong thing to avoid;
what is needed is the rotation **about** the forward axis — project the row onto
the plane perpendicular to forward and track the angle of that projection.
So the earlier conclusion — *"roll shows no speed dependence, unlike pitch"* — is
**withdrawn**. It rested on 2 s settles (which this session has twice shown to
produce wrong answers) and on a row that mixes the axes. The two runs do not even
agree with each other (144/150 then, 90.6/59.1 now), which is itself the tell.
What survives: `AV_Roll_{Min,Max}` are **not** confirmed, and the axis question —
does roll follow the same speed rule as pitch? — is **open**, with the correct
measurement specified above.
**The clock ratio has now been measured three times in three flights: 1.260, 1.311,
1.383.** It is not a property of the machine but of the moment, so any rate probe
must bracket its own phases.
## Roll, re-measured about the forward axis — the withdrawal is reversed ✅
The earlier roll result was withdrawn because the *measurement* was wrong, not the
input: watching a non-forward row of the rotation matrix sees **any** rotation that
moves that row, and pitch moves it as much as roll, which is why two different stick
axes produced the same rates. `tools/re-capture/roll_axis.py` measures rotation
**about** the forward axis instead — express the new up-vector in the old
`(up, right)` basis and take `atan2(u_new·w_old, u_new·u_old)`, so any component
along forward (what pitch produces) is dropped by construction.
Run on stage 02 with the container-safe file pad, which matters here: the pad state
is written whole, so the stick is deflected on **exactly one axis** (`lx=32767`,
every other channel exactly 0) while the throttle trigger is held in the same write.
5-second settles, 8-second dwells, and each phase bracketed by HUD-clock screenshots
because the clock ratio is a property of the moment (1.260/1.311/1.383 previously).
| phase | swept | wall | HUD clock | per **game** second | definition |
|---|---|---|---|---|---|
| min speed (`LT`) | 1 856.9° | 8.01 s | 01:20.64 → 01:30.63 (×1.247) | **185.9 °/s** | `AV_Roll_Min` **200** |
| max speed (`RT`) | 1 181.2° | 8.02 s | 01:37.11 → 01:46.88 (×1.218) | **120.9 °/s** | `AV_Roll_Max` **125** |
**Roll DOES depend on speed**, and the withdrawn claim ("roll shows no speed
dependence, unlike pitch") is **reversed**. Roll behaves exactly like pitch: the rate
cap falls as speed rises, and `_Min`/`_Max` mean *at minimum / at maximum speed*
the same rule the pitch work established, now confirmed on a second axis rather than
contradicted by it.
Both measurements land **just under** their caps (93 % and 97 %), which is the right
side for a rate limit. 🟡 The shortfall is not explained: candidates are the craft not
being exactly at min/max speed after 5 s, and the swept-angle sum slightly
undercounting at 20 Hz. Neither is worth a claim without measuring it.
Method note: the tell that the *old* result was broken was two conditions agreeing
too well (pitch ≈ roll). The tell that this one is sound is that they now **disagree
in the direction the definitions predict**, on two independently-bracketed phases.
Data: [`captures/roll-about-forward-axis.csv`](captures/roll-about-forward-axis.csv).
## Which input drives which axis — and the yaw answer ✅
`tools/re-capture/axis_probe.py` holds one channel at a time (file pad, so every
other channel is exactly zero) and decomposes the result into **all three** rotation
components at once, rather than measuring one axis through a row that moves under any
rotation — the flaw that once made roll and pitch produce identical numbers.
**The row labelling is measured, not assumed.** `entities2` pins row 2 = forward
against velocity; the probe pins the other two by comparing **world-Y** in flight:
```
row world-Y means: [0.469, 0.883, -0.000] forward = row 2
-> up = row 1, right = row 0 CONFIDENT
```
That is the **opposite** of the D3D convention an earlier run assumed, which means
that run's *yaw* and *pitch* columns were swapped — under the correct labels its
`ly+` reading of 154.1 °/wall-s is **pitch**, which is what a left-stick Y axis
should do.
| input | roll | yaw | pitch | |
|---|---|---|---|---|
| `rx` right-stick X | 0.0 | 0.0 | 0.0 | nothing |
| `ry` right-stick Y | 0.0 | 0.0 | 0.0 | nothing |
| `LB` | 0.0 | 0.0 | 0.0 | nothing |
| `RB` | 0.0 | 0.0 | 0.0 | nothing (it is the nose gun) |
| `lx` left-stick X | 209.8 | ~0 | ~10 | **roll** |
| `ly` left-stick Y | ~0 | ~0 | 154.1 | **pitch** |
These zeros are **trustworthy**, unlike the previous attempt's: the four unknown
inputs were measured *first*, each passing a liveness check, and the run aborted the
moment the craft stopped moving instead of reporting the clean zeros a destroyed
craft produces.
**So no pad input yaws the craft directly.** `AV_Yaw_*` (45/25) exists in the unit
definitions but nothing on the right stick or the shoulders drives it — the earlier
*"no input found"* is upgraded from "we could not find one" to **"the remaining
candidates measurably do nothing"**. The natural reading is that yaw is a
*consequence* of banking rather than a commanded axis, which a reimplementation
should model as such.
🟡 Not covered: the **d-pad** (the tactical map) and the **face buttons** (fire /
weapon select). Neither is a plausible flight axis, but neither was measured here.
Data: [`captures/axis-probe-rows-pinned.csv`](captures/axis-probe-rows-pinned.csv).
## ⚠️ Angular-rate probes measure a MOVING speed — the dwell bleeds it
Measuring pitch with the rows properly pinned gave, for
`UN_f001_TCAF_DeltaSaber_T_Player` (whose own disc values are
`AV_PitchPlus_Min` **150°**, `AV_PitchPlus_Max` **70°**):
| phase | swept | clock | per game-s | cap |
|---|---|---|---|---|
| min speed (`LT`) | 1 391.0° / 8.00 s | ×1.326 | **131.1** | 150 |
| max speed (`RT`) | 989.0° / 8.05 s | ×1.318 | **93.2** | 70 — **133 % of cap** |
A rate 33 % *above* a cap is not a finding, it is a broken instrument, so read the
HUD speed off the same bracketing screenshots that gave the clock:
```
slow phase 102 -> 18
fast phase 1193 -> 589
```
**The speed is not constant during the dwell — pitching bleeds it hard**, halving it
in 8 seconds. The rate cap is itself speed-dependent, so as the craft slowed its cap
*rose*, and the 8-second average necessarily lands between the max-speed cap and a
mid-speed one. The 133 % is fully explained by the instrument.
**This weakens the roll numbers above as well.** They were taken the same way, so
`120.9` vs `AV_Roll_Max` `125` is *consistent* but is **not a tight test** — the true
max-speed roll cap could be lower and still produce that average. The min-speed
figures are less affected (there is little speed left to lose).
**How to measure it properly** (not yet done): keep the dwell to ~12 s so the speed
barely moves, or sample the HUD speed continuously and fit rate against
*instantaneous* speed rather than assuming the endpoint. The second is strictly
better and gives the whole rate-vs-speed curve rather than two points.
**And a flight-model finding in its own right:** *turning costs speed*, steeply —
1 193 → 589 under 8 s of full pitch, with the throttle still held at maximum. A
reimplementation that treats the throttle as setting a speed the craft simply holds
will be wrong during manoeuvres. Data:
[`captures/pitch-rate-speed-bleed.csv`](captures/pitch-rate-speed-bleed.csv).
## ⚠️ Polling faster than the guest updates manufactures a curve
Trying to fit rate against *instantaneous* speed (`rate_curve.py`, one long hold so
the speed-bleed sweeps the range) produced a beautifully clean result that is
entirely an artefact:
```
speed 0- 599 rate 29.4 speed 1199-1798 rate 279.8
speed 599-1199 rate 174.9 speed 1798-2398 rate 317.5
```
Rate rising with speed, and speeds to **4 795** when the craft's maximum is 1 200.
The cause: **20 Hz polling is faster than the guest updates these fields**, so a
per-read delta is either exactly zero (no update yet) or a whole frame's worth
divided by a fraction of a frame. In that run **111 of 352 reads were zero on BOTH
channels** — position and attitude update on the same frame, so the two are
perfectly correlated, and dividing each by the short wall `dt` produced a tidy
correlation out of nothing.
**Fix: aggregate over windows spanning many frames** (0.5 s here). The sum of
`|Δ|` over a window is right however the updates fall inside it.
**This does NOT affect the swept-total probes** (`roll_axis.py`, `rate_probe.py`):
they already summed over the whole dwell, which is immune for the same reason. Only
per-sample instantaneous rates were ever wrong.
🟡 **The windowed re-run is not yet a result.** It gives plausible magnitudes
(speed 320935, rate 80149 °/wall-s) but still shows rate *rising* with speed,
against the definition's `AV_PitchPlus_Min` 150 > `_Max` 70. Two disqualifiers: it
ran on an instance where the craft was already tumbling from the previous sweep, so
the row pinning reported **WEAK — craft may not be level**, and the starting speed
was mid-range rather than maximum. A clean answer needs a **fresh flight**, pinning
CONFIDENT, one sweep, nothing before it. Recorded as an open question rather than a
finding — the definitions' `_Min`/`_Max` meaning is exactly what is in doubt, so a
measurement taken through a doubtful instrument cannot settle it.
Data: [aliased, for reference](captures/rate-curve-aliased-BAD.csv) ·
[windowed](captures/rate-curve-windowed.csv).
## The clean sweep: magnitudes agree, the LAW does not follow 🟡
Fresh flight, row pinning **CONFIDENT** (margin 0.413), one sweep and nothing before
it — the conditions the previous attempt lacked. Clock 01:16.08 → 01:41.46 (×1.26).
Binned by speed, both converted to game units:
| speed (game) | measured °/game-s | linear interpolation of the caps |
|---|---|---|
| ~435 | 100.8 | 125.6 |
| ~572 | 113.8 | 115.7 |
| ~709 | 126.3 | 105.7 |
| ~846 | 83.1 | 95.7 |
| ~983 | 72.7 | 85.8 |
(prediction = `AV_PitchPlus_Min` 150 at `MinimumVelocity` 100 → `_Max` 70 at
`MaximumVelocity` 1200, interpolated linearly.)
**What this supports:** the magnitudes are right — measured 73126 °/game-s across
speeds 4001 050 against a predicted 86126 — and the high-speed end falls, as a
speed-dependent cap should.
**What it does not support:** the interpolation *law*. The scatter is ±25 %, the two
fastest bins hold only 1 and 2 windows each (they are the first moments before the
speed bled), and the slowest bin disagrees in the wrong direction (100.8 measured vs
125.6 predicted). A sweep that is *driven* by the speed bleeding cannot spend long at
either extreme, which is exactly where the law is most testable.
**The design that would settle it**, and why this one cannot: hold a *settled*
throttle, pitch for only **~1 second**, and read the rate — the speed barely moves
inside a 1 s burst, so each burst yields one honest `(speed, rate)` point. Repeat at
`LT` / neutral / `RT` for three clean points at known speeds, instead of one smeared
sweep. Data:
[`captures/pitch-rate-curve-clean.csv`](captures/pitch-rate-curve-clean.csv).
## ✅ Short bursts at settled speeds: the law's SHAPE is confirmed, clock-free
The design the sweep could not provide: settle the throttle, measure the settled
speed, then pitch for **one second** so the speed barely moves inside the burst.
Three throttle settings, two repeats each, row pin **CONFIDENT**, fresh flight.
| throttle | burst speed (wall) | rate (°/wall-s) |
|---|---|---|
| `LT` min | ~105 | 113.6, 109.5 |
| none, cruise | ~383 | 100.2, 88.4 |
| `RT` max | ~1 483 | 52.2, 70.5 |
**Rate falls monotonically with speed** — 111.5 → 94.3 → 61.4 — measured at three
*known, settled* speeds rather than smeared across a bleeding one.
**And the decisive comparison needs no clock at all.** Absolute rates depend on the
run's clock ratio, but the **min:max ratio cancels it**:
```
measured min:max = 1.82
AV_PitchMinus_Min/Max 75/40 = 1.88 -> 3.0 % apart
AV_PitchPlus_Min/Max 150/70 = 2.14 -> 15.1 % apart
```
So two things follow, neither resting on a clock measurement:
1. **`_Min` / `_Max` really do mean "at minimum / at maximum speed"**, with the rate
interpolating between them — the shape is confirmed to 3 %.
2. **`ly+` drives pitch-MINUS**, not pitch-plus. The craft has asymmetric pitch
authority (75/40 down versus 150/70 up), and the ratio picks the pair cleanly.
🟡 **Absolute magnitudes are still open** — this run did not bracket the HUD clock, so
deg/*game*-second cannot be computed from it, and choosing a ratio that makes the
numbers fit would be circular. The probe now takes clock screenshots at both ends so
the next run closes it. Data:
[`captures/pitch-burst-settled-speeds.csv`](captures/pitch-burst-settled-speeds.csv).
## Both axes, three settled speeds: shape ✅, absolute scale 🟡
Repeat of the burst design with the HUD clock bracketed (01:01.86 → 02:10.61) and
roll measured in the same flight. Clock ≈ ×1.26.
| axis | min speed | cruise | max speed | min:max | definition ratio |
|---|---|---|---|---|---|
| pitch | 87.0 °/game-s @ 85 | 82.8 @ 308 | 47.0 @ 1 077 | **1.85** | `PitchMinus` 75/40 = **1.88** |
| roll | 125.0 @ 76 | 119.0 @ 291 | 82.6 @ 1 023 | **1.51** | `Roll` 200/125 = **1.60** |
**The shape is confirmed on both axes** — the rate interpolates between `_Min` (at
minimum speed) and `_Max` (at maximum speed), matching to **1.6 %** for pitch and
**5.6 %** for roll. These ratios are **clock-independent**, so they stand regardless
of the conversion. Pitch's ratio also re-confirms `ly+` = **pitch-minus** (1.88)
rather than plus (2.14), reproducing the earlier run's 1.82.
**The absolute scale does not match, and not in the same direction:**
```
pitch measured / predicted = 1.15, 1.21, 1.07 (consistently OVER)
roll measured / predicted = 0.62, 0.64, 0.60 (consistently UNDER, and very flat)
```
**A clock error cannot explain this** — it would scale both axes the same way, and
these go opposite. So the discrepancy is per-axis. Two candidates, neither measured:
- a **1-second burst may not complete the angular-acceleration ramp**, which would
*under*-read — that fits roll's remarkably constant 0.62 but not pitch's excess;
- a **per-axis multiplier** applied to the cap that is not yet identified.
Recorded as an open question. The next measurement that would separate them is cheap:
**1 s versus 3 s bursts at the same throttle** — if the ramp is the cause, the longer
burst reads higher. Data:
[pitch](captures/pitch-burst-final.csv) · [roll](captures/roll-burst-final.csv).
## Note on the WEAK-pin guard
The roll run refused to start: after the pitch bursts the craft was no longer level,
so the row pin came back **WEAK** (margin 0.109). That refusal is correct for pitch
and yaw — but **roll is immune to the up/right labelling**, which is exactly what the
guard's own message says, so `ALLOW_WEAK_PIN=1` is the documented and legitimate
override there. It is worth having a guard that states its own exception.
## The ramp test is inconclusive — and says what the next tool must be 🟡
To separate "a 1 s burst never reaches the steady rate" from "a per-axis multiplier",
the cheapest test measures *inside* one hold: successive 0.25 s windows of a single
3 s press, so speed, attitude and starting conditions are held constant by
construction. Two repeats, roll, at cruise:
```
rep0 rate 16 59 325 209 130 322 238 110 310 151 183
speed 390 234 574 341 223 526 387 191 511 247 312
rep1 rate 52 181 231 246 236 169 368 195 181 255 182
speed 447 372 378 418 385 233 590 307 312 419 306
```
**Not usable.** At 0.25 s the windows do not contain enough guest updates to average,
so both channels swing by 3× window to window — the same aliasing that once
manufactured a rate-vs-speed curve, reappearing at finer resolution. The first window
is the lowest in *both* repeats, which is what a ramp would look like, but the
sequence never plateaus, so the signal cannot be separated from the sampling.
**Widening the window does not rescue it**: 0.5 s windows average well enough (that is
what the earlier sweep used), but a hold long enough to contain several of them bleeds
speed, and speed is the very variable under test. The two effects are entangled at
this observation rate.
**So this residual needs a different instrument, not another script.** Live-RAM polling
samples an unsynchronised snapshot; what the question wants is the craft's angular
velocity *as the guest computes it, once per frame*. That is a Canary-side hook —
the same shape as the existing F10 ship-capture patch — and the rebuild toolchain
already makes it cheap. Recorded as the recommendation rather than attempted as a
seventh variation of the same measurement.
Data: [`captures/roll-ramp-inconclusive.csv`](captures/roll-ramp-inconclusive.csv).

View File

@@ -0,0 +1,182 @@
# Achievements — the 24-entry table, and where the earned state comes from
**Conf.:** ✅ for the table and for the XAM read path; 🟡 for the requirement list's
bit numbering.
**Spec:** [`tools/xach_dump.py`](../../../tools/xach_dump.py) ·
[`examples/achievements_map.rs`](../../../crates/sylpheed-formats/examples/achievements_map.rs)
**Evidence:** [`captures/achievements-xach.txt`](../captures/achievements-xach.txt)
> **Retracted here, and it matters:** earlier drafts of this file claimed the
> challenge missions gate on this achievement mask. **They do not.** That gate reads a
> *cleared-stage* bitmask whose sole writer is `GamePart_StageClear` — see
> [challenge-mission-gate §5.2](../challenge-mission-gate.md). The link was invented
> out of a numeric coincidence: `ACHIEVEMENTS_REQUIREMENTS` has 24 entries and the
> challenge gate splits its two words at 24, for entirely unrelated reasons (24 is
> also the first challenge stage's id). Everything below is what survived checking the
> writer.
The title reads its earned-achievement state from the console, and separately carries
a disc table of what each achievement requires. Both are useful to the
reimplementation on their own terms.
## 1. The table: 24 achievements, 1000G ✅
The XEX embeds an SPA/XDBF resource. `XACH` sits at `.pe` offset **`0x8FBCBC`**:
| field | type | notes |
|---|---|---|
| magic | `char[4]` | `XACH` |
| version | `u32` | 1 |
| size | `u32` | 874 |
| count | `u16` | **24** |
then `count` records of **36 bytes**:
| off | type | field |
|---|---|---|
| 0 | `u16` | achievement id (1…24) |
| 2 | `u16` | name string id |
| 4 | `u16` | unlocked-description string id |
| 6 | `u16` | locked-description string id |
| 8 | `u32` | image id |
| 12 | `u16` | gamerscore |
| 14 | `u16` | pad (0) |
| 16 | `u32` | flags (`0x0C` throughout) |
| 20 | — | 16 bytes of zeroes |
Strings come from one `XSTR` section per language (7 present); each is
`magic[4] "XSTR"`, `version u32`, `size u32`, `count u16`, then entries of
`id u16, len u16, len bytes ASCII`. English is table **#5**.
**The stride and field offsets are self-checked**: the 24 gamerscores sum to
**exactly 1000**, the retail total. A wrong stride does not add up to a round 1000.
Ids run `1…24` with no gaps.
> **Correction 1 of 2 (same day).** This file first said "bit `n` ↔ achievement id `n+1`",
> i.e. 0-based bits. That was wrong-headed: the only place the image is *observed*
> turning an achievement into a bit does `1 << dwId` with `dwId` 1-based (§3.1), so
> the bit index is the **id itself** and bit 0 is unused. The 0-based reading came
> from assuming the config list's position was the bit, which §3 no longer supports.
## 2. The 24 achievements ✅
Ids run `1…24` with no gaps. Where the image turns one into a bit it uses `1 << dwId`
(§3.1), so the id is the bit and bit 0 is unused — but note that this mask is *not*
the challenge gate's (§4).
| id | G | name |
|---|---|---|
| 1 | 20 | Space Combat Award |
| 2 | 20 | Schlos Base Defense Award |
| 3 | 20 | Aegis of the People Medal |
| 4 | 20 | TCAF Luna Medal |
| 5 | 40 | TCAF Mars Medal |
| 6 | 50 | Soldier's Charm Amulet |
| 7 | 20 | White Griffons Patch |
| 8 | 30 | TCAF Jupiter Medal |
| 9 | 40 | Furious Pursuit Badge |
| 10 | 30 | Solo Aerospace Combat Award |
| 11 | 30 | Operation Nebula Blaze Award |
| 12 | 40 | Guilty Roses Patch |
| 13 | 30 | Super Battleship Slayer Patch |
| 14 | 40 | TCAF Terra Medal |
| 15 | 40 | Hellfires Patch |
| 16 | 50 | Night Ravens Patch |
| 17 | 40 | Solar System Defense Award |
| 18 | 40 | Special Operations Medal |
| 19 | 30 | 1,000 Units Destroyed Medal |
| 20 | 70 | 10,000 Units Destroyed Medal |
| 21 | 50 | Ship Hunter Award |
| 22 | 70 | Gigaton Club Patch |
| 23 | 80 | Weapon Lord Patch |
| 24 | 100 | TCAF Pilot's Commendation |
## 3. The game evaluates them itself, from a disc config ✅ (numbering 🟡)
`GamePart_Debriefing` (`0x8218CF38``0x82191B18`, bounded by the factory creator
thunks either side) runs `sub_8218F9A8` after a mission:
```asm
for i = 0, 1, 2, :
node = child(ACHIEVEMENTS_REQUIREMENTS, i, &x) ; bl 0x82448338
bit = 1 << x
if (this+208 & bit) continue ; already awarded
if (evaluate(this, node)) ; bl 0x8218FAB0
this+208 |= bit
```
The list is on disc — `tables.pak` entry **#16**, schema `744c0519`, the
`GP_DEBRIEFING_PILOTLOG.pak+eng` config — and its entries are literally
`ACHIEVEMENT01``ACHIEVEMENT24`, in order.
⚠️ **`x` is not proven to be the loop index.** `0x82448338` walks a 12-byte child
array and writes the child entry's **first word** to the out-parameter; whether that
word is the ordinal, an explicit id, or a name hash is not pinned. Since §3.1 shows
the image elsewhere shifting by a **1-based achievement id**, `x` is most likely the
id too — but this file previously stated "the list index is the bit index" as fact,
and that is withdrawn.
### 3.1 The earned state comes from XAM — the console profile, not the save ✅
The same class enumerates a buffer of **36-byte** records (`0x8218F888`):
- the record count is a byte count divided by 36 — via the multiply-high magic
**`0x38E38E39`** plus `srawi 3`, which is the standard unsigned `/36` sequence, so
the stride is confirmed by the arithmetic and not just by inspection;
- field **`+0`** is used as a shift amount (`1 << id`), field **`+32`** is tested for
bit **`0x00020000`**;
- the buffer is produced asynchronously: a handle at `this+100` is waited on
(`0x824AA330(h, -1)`) then closed (`0x824AA3E0`).
That is exactly the XDK's `XACHIEVEMENT_DETAILS`
`{ DWORD dwId; PWSTR pwszLabel, pwszDescription, pwszUnachieved; DWORD dwImageId,
dwCred; FILETIME ftAchieved; DWORD dwFlags; }` = 36 bytes, with
`XACHIEVEMENT_DETAILS_ACHIEVED == 0x00020000` — fetched through the
`XamUserCreateAchievementEnumerator` / `XEnumerate` pattern.
**So the title does not persist earned achievements itself: it asks the console.**
The masks it builds (`this+208`, `+736`, `+740`) are `1 << dwId`, i.e. **bit = the
1-based achievement id**, bit 0 unused.
For anything that wants to unlock achievement-gated content, the lever is therefore
the **emulator's profile achievement data**, not the 545-byte savegame.
The record also carries each requirement's **type and parameters**:
`StageClear`(`Stage`), `MissionObjective`, `Item`, `Rank` (`S`),
`ShootDownAircrafts`(`Count` 1000 / 10000), `ShootDownShips`(`Count` 100),
`ShootDownWeight`(`MegaTons`), `GetAllWeapons`, `GetAllAchievements`.
**That set independently confirms the list's ORDER** (not the bit numbering): the last
five types line up with ids 1924 exactly as the XACH table names them — 1 000 units,
10 000 units, 100 warships, one gigaton, all Delta Saber equipment, and finally the
meta `GetAllAchievements` → id 24, `TCAF Pilot's Commendation`, the 100G one. So the
config list is in achievement-id order; what it does **not** settle is whether the bit
the code shifts by is that position or the id (see the ⚠️ above).
⚠️ `GetAllAchievements` and `GetAllWeapons` **look like debug cheats and are not**
they are requirement *types* in the achievement table. Worth stating because the
strings sit next to genuinely debug-looking ones in the image.
## 4. What this is *not*: the challenge-mission gate ✅ (refuted)
`GamePart_ChallengeMission` gates each mission on a bit of a word at singleton `+80`.
That word has exactly one writer in the image — `0x821C1820` in `GamePart_StageClear`
— and it sets `1 << (this+84)` where `this+84` is the **stage number** (it also
indexes a 20-byte per-stage record array and the debriefing config's `STAGE` sprite
list). So that word is a **cleared-stage** mask, not this achievement mask, and the
`< 24` / `>= 24` split is the disc's stage numbering (story 116 and tutorial 1823
below 24; challenge 2429 above), not a count of achievements.
Nothing observed copies the Debriefing's achievement masks (`+208`, `+736`, `+740`)
into that word, which is the check that should have been done before the claim was
made rather than after.
## Reproduce
```bash
python3 tools/xach_dump.py "<disc>/…/Project Sylpheed ….pe"
cargo run --release -q -p sylpheed-formats --example achievements_map -- <disc-root>
python3 xenia-rs/zq.py dis 0x8218f9a8 0x8218fa60 # the requirement walk
python3 xenia-rs/zq.py dis 0x8218f888 0x8218f990 # the XACHIEVEMENT_DETAILS scan
```

View File

@@ -76,7 +76,7 @@ photographed against this exact save (see "Naming the fields", further down).
| +0 | 0 | ❔ | | +0 | 0 | ❔ |
| +4 | **324773** | ✅ **flight time, milliseconds** — the screen shows `Flight Time 000:05:24` and 324773 ms = 5 m 24.773 s | | +4 | **324773** | ✅ **flight time, milliseconds** — the screen shows `Flight Time 000:05:24` and 324773 ms = 5 m 24.773 s |
| +8 | 5 | ✅ **clear ratio, percent** — the screen shows `Clear Ratio 5 %`. **It is not a stage counter**: developing one Arsenal weapon stepped it to 6 (see [the develop differential](#the-develop-differential-one-weapon-three-fields)) | | +8 | 5 | ✅ **clear ratio, percent** — the screen shows `Clear Ratio 5 %`. **It is not a stage counter**: developing one Arsenal weapon stepped it to 6 (see [the develop differential](#the-develop-differential-one-weapon-three-fields)) |
| +12 | 0 | | | +12 | 0 | 🟡 **Times Cleared** — mirrored to header `+0x28`, and the panel prints `Times Cleared: 0` |
| +16 | 1 | ❔ | | +16 | 1 | ❔ |
| +20 | 0 | ❔ | | +20 | 0 | ❔ |
| +24 | **4101** (`0x1005`) | ✅ **Points — the spendable balance.** Named from the Details panel, and **separated from +28** by the develop differential: spending 4000 P moved *only* this field (4101 → 101) and the panel then read `Points 101 P` | | +24 | **4101** (`0x1005`) | ✅ **Points — the spendable balance.** Named from the Details panel, and **separated from +28** by the develop differential: spending 4000 P moved *only* this field (4101 → 101) and the panel then read `Points 101 P` |
@@ -84,8 +84,8 @@ photographed against this exact save (see "Naming the fields", further down).
| +32 | 79 | ❔ | | +32 | 79 | ❔ |
| +36 | 2 | ❌ **not** difficulty and **not** stage — refuted by probe saves (see below) | | +36 | 2 | ❌ **not** difficulty and **not** stage — refuted by probe saves (see below) |
| +40 (u64) | 2014400 | ❔ | | +40 (u64) | 2014400 | ❔ |
| +48 | 0 | ❔ (`Times Cleared: 0` is on screen, so it is one of the zero fields) | | +48 | 0 | 🟡 **Game Status enum** — mirrored to header `+0x18`; `0` renders `At Standby`, matching the screen's own `STATE_STAND_BY / STATE_STAGE_CLEAR / STATE_GAME_CLEAR` list |
| +52 | 2 | ❌ see +36 — refuted | | +52 | 2 | **STAGE NUMBER, 1-based** — set it to 5 (with the header mirror, below) and the game reads `STAGE 05 — Star System Escape`, loads it, and **flies Stage 05** |
| +56 | 2 | ❌ see +36 — refuted | | +56 | 2 | ❌ see +36 — refuted |
| +60 | 0 | ❔ | | +60 | 0 | ❔ |
| +64 (raw 4) | `09 15 00 00` | ❔ the trailer's u32 is the **same** value | | +64 (raw 4) | `09 15 00 00` | ❔ the trailer's u32 is the **same** value |
@@ -466,3 +466,110 @@ strings are reached through a config lookup, not an immediate, so there is no
disassembling the save-screen's populate path, not another grep. disassembling the save-screen's populate path, not another grep.
Editing beyond a throwaway slot is still the user's call. Editing beyond a throwaway slot is still the user's call.
## Stage unlock: four probes, all negative — and a method correction (2026-08-13)
The motivating question ("can stage progress be reached without winning
missions?") got its first tests **against slot 01**, the save the title-menu
screens actually read. Slot 01 was backed up, edited, and restored
byte-identically after each run (md5 `142b4f43…`, verified twice).
| probe (in slot 01) | oracle | result |
|---|---|---|
| `SHAB[1..7]` filled with record 0's shape | `EXTRAS → MISSION SELECT` | **Stage0208 stay greyed out**; the cursor will not leave Stage01 (two d-pad steps, no movement) |
| GHAD `+36 = +52 = +56 = 5` | MISSION SELECT + LOAD GAME Details for slot 01 | **still locked**, panel **still `STAGE 02`/`EASY`** |
| GHAD `+16 = 4` (a 0-based stage index would read `STAGE 05`) | LOAD GAME Details for slot 01 | **still `STAGE 02`** |
| live-RAM writes into the loaded container header (Points, and its `+0x14`) | LOAD GAME Details, re-rendered by moving the cursor off and back | **no change** |
So the per-stage record table is **not** the unlock gate — that is now tested on
the save the screens read, where the earlier `SHAB[1]` attempt was written to a
throwaway slot and could prove nothing. And `+16` joins `+36/+52/+56` as **not**
the displayed stage; the earlier refutation of those three stands, now confirmed
against slot 01 itself.
**The method correction, which is the useful part.** Searching guest RAM at the
LOAD GAME screen finds **no payload bytes at all** — neither the `4101/4101/79`
triple nor the 54-byte develop blob is anywhere in the guest address space — but
it does find the save's **`GDHA` container header**, loaded verbatim, carrying a
summary copy:
```
+0x00 'GDHA' +0x04 136 +0x08 FILETIME (2026-07-23 20:07:23)
+0x14 2 +0x1c 4101 (Points) +0x20 324773 (flight ms) +0x24 5 (clear ratio)
```
Two consequences:
1. **The Details panel is not a payload oracle.** The numbers it shows exist in
the *header* too, and `savegame_edit.py` copies the donor header verbatim — so a
payload edit leaves a stale summary beside it, and "the panel did not change"
cannot distinguish *"that field is not the stage"* from *"the panel never reads
the payload"*. Any future stage/difficulty probe must patch the header copy as
well, or be judged by what the game **does** on load rather than by the panel.
(This does not disturb the Points/flight-time/clear-ratio namings: those values
sit at both places and the two agree.)
2. The panel is **not** live-editable either: writing the header copy in
`/dev/shm` and forcing a re-render changed nothing, so the strings are formatted
before that copy is consulted again.
**Where this leaves the question.** Field guessing is now measurably the wrong
tool: three of the four candidate fields are eliminated and the remaining ones
(`+0`, `+12`, `+20`, `+32 = 79`, `+40 = 2014400`, `+48`, `+60`, `+64 = 09 15 00 00`)
have no oracle that a probe can read. The two routes that do have one are
**static analysis of the loader** — find what the title reads when it decides the
current mission and the selectable set, the same way the serializer at
`0x822C00E8` was found — or **clearing a stage in game**, which also settles
`Times Cleared` and whether `SHAB[1]` fills.
## ✅ SOLVED: `+52` is the stage, and the save picks the mission (2026-08-13)
**One `u32` chooses which of the 16 story stages the game plays.** Set GHAD `+52`
(and its header mirror, below) to 5 and the title reads
`STAGE 05 — Star System Escape`, loads it, briefs the **Gallia Asteroid Group**,
and takes off into an asteroid field with a different objective, roster and pilot
chatter — from a save whose only edited bytes are that field and its mirror
([details panel](../captures/savegame-stage05-probe-details.png) ·
[in flight](../captures/savegame-stage05-probe-inflight.png)).
### Why the earlier probes said "not the stage"
The header builder at `0x822870b4…0x82287128` copies a **summary of the progress
block into the GDHA container header**, and the screens read *that*:
| header | ← progress block (GHAD offset) | in this save |
|---|---|---|
| `+0x10` | `+0` | 0 |
| `+0x14` | **`+52`** | 2 → the panel's `STAGE 02` |
| `+0x18` | `+48` | 0 → `Game Status: At Standby` |
| `+0x1c` | `+24` | 4101 → `Points` |
| `+0x20` | `+4` | 324773 → `Flight Time` |
| `+0x24` | *computed* (`0x822842B0`, also cached to `+8`) | 5 → `Clear Ratio` |
| `+0x28` | `+12` | 0 → `Times Cleared` |
`savegame_edit.py` copies the donor header verbatim, so a payload-only edit leaves
that summary stale and the panel keeps showing the **old** stage — which is exactly
what made `+52` look refuted. **Patch both** (`hdr[0x14] = stage` and
`ghad[+52] = stage`) and the whole chain follows. The payload writer
`0x822BF678` walks the block field-by-field from `save+8`, so payload offset ==
progress-block offset; the block itself sits at **game-state `+312`** (Points at
`+336` = `312+24`, flight at `+316`), which is how the header mapping was read off
the disassembly rather than guessed.
The content header's **display string** (`Game01 07/23/2026 21:08 STAGE02 EASY`)
is separate and was *not* patched, so the slot row still reads `STAGE02` while the
Details panel reads `STAGE 05` — harmless, and a useful reminder that the row and
the panel have different sources.
### What this unlocks
Any story stage is now reachable without playing to it: write the probe into
slot 01 (back it up first — restore verified byte-identical here) and the existing
`tools/re-capture/launch_mission.sh` route loads it and takes off. That opens
**runtime captures in containers other than `Stage_S02`** — the remaining 85 XBG7
misses, the 24-vertex box identity, ship-placement generalisation to other classes
— and **per-stage unit definitions** for the Route-B coverage that grows by
visiting missions.
Still open: `+36` and `+56` (both 2, one of which is likely `Difficulty`, since the
header carries no difficulty field and the display string does), and the
`+32 = 79` / `+40 = 2014400` / `+64 = 09 15 00 00` fields.

View File

@@ -377,3 +377,144 @@ which the key-string extraction did not pick up.
`+0x00c` is below the first field the loader ever names (`+0x018`), and the same `+0x00c` is below the first field the loader ever names (`+0x018`), and the same
trap produced a false `YawDragFactor → +0x0c` hit when the code-derived map was trap produced a false `YawDragFactor → +0x0c` hit when the code-derived map was
being built. It is an int-typed word, not a ratio. being built. It is an int-typed word, not a ratio.
## Stage select makes the coverage limit go away (2026-08-13)
Unit definitions are instantiated **per stage**, so this note's coverage figure
(21 units, "grows by visiting missions") was blocked on progress. It no longer is:
the save's stage field is solved ([savegame](savegame-format.md#-solved-52-is-the-stage-and-the-save-picks-the-mission-2026-08-13)),
so any story stage can be flown from a hand-edited save and snapshotted.
First harvest — a mission at the **Night Ravens** (027 objectives, a different
roster entirely):
| | before | after |
|---|---|---|
| units with runtime values | 21 | **26** |
| rows in [`unit-runtime-fields.csv`](../captures/unit-runtime-fields.csv) | 1 827 | **2 143** |
| defaulted-on-disc values | 963 | **1 059** |
New units: `UN_e004_ADAN_ElanPlus_N`, `UN_e006_ADAN_Vindicator_Margras`,
`UN_f002_TCAF_DeltaSaber_W`, `UN_f002_TCAF_DeltaSaber_W_Player` (a second player
craft!) and `UN_mn040_Asteroid_Big` (47 defaulted values, `Size_Z = 2000`).
**Two traps, both paid for in this run:**
1. **`launch_mission.sh` does not load slot 01.** The LOAD GAME list preselects the
**last-used** slot — here **03** — and the script simply presses `A` on it, so a
probe written to slot 01 is ignored and the game flies whatever that slot holds.
The first "stage 14" snapshot was therefore stage 02 again, and the solver
correctly reported **0 new units**. Fix used: **patch every slot** (01/02/03) to
the target stage, or drive the list explicitly and confirm the highlighted slot
by screenshot before pressing `A`.
2. **Back up before patching, not after.** The backup taken mid-run already
contained the probe, so "restoring" it restored the probe; the pristine copy from
the earlier session was what actually restored slot 01 (`142b4f43…`, verified).
Regenerating the solver's token file: `idxd_tokens <GP_MAIN_GAME_E.pak> Generic`
emits the `REC`/`F` records `unit_runtime.py` wants — **110** of them are `UN_*`,
which is the disc's full unit count.
### Reading the objects with the code-derived layout, not the solver (2026-08-13)
`unit_runtime.py` places a field only if the **disc** values it somewhere — that is
what lets it score `(field, offset, encoding)` triples — so it resolved 58 of 153
fields from a single-mission snapshot. The layout in
[`data/unit_definition_layout.txt`](../../../crates/sylpheed-formats/data/unit_definition_layout.txt)
came from the title's own loader instead (`sub_82341A20`, where the field *name* of
every store is a string in the image), so it places **all 159**, including the ones
no disc record ever sets — which is precisely the Route-B target.
[`tools/re-capture/unit_dump_layout.py`](../../../tools/re-capture/unit_dump_layout.py)
reads every field of every live definition object with that layout, and keeps the
project's discipline: a field the disc **does** value is a **check**, not a new
value. Over two snapshots (19 objects): **700 disc cross-checks agree, 0 disagree.**
| | solver-derived | layout-derived |
|---|---|---|
| fields placed per object | 58 of 153 | **159** |
| rows over these 19 units | 609 | **2 736** |
| defaulted-on-disc values, disc-wide file | 1 059 | **2 351** |
Two things the run pinned down, both cheap to re-learn the hard way:
* **The layout table's offsets are DECIMAL** (`48 f32 Size_X`), while the solver's
CSV prints hex. Parsing it as hex puts every field `0x18` bytes late — and the
disc cross-check then fails on *everything*, which is exactly how the mistake
announced itself.
* **Angle fields can carry a prefix.** `AB_AA_PitchPlus` (afterburner) is still an
angle, so anchoring the `AV_`/`AA_` test at the start of the name reported two
player-craft fields as contradictions when they were 15°/16° in radians. With the
token matched anywhere, the cross-check is clean.
⚠️ One unit's object is **not** byte-identical between the two missions —
`UN_f201_TCAF_Tanker`. Either a per-mission override or a field the runtime mutates;
the merged CSV holds the later reading, and separating them needs a third snapshot.
### Targeting the next mission, and the check that these really are definitions (2026-08-13)
[`examples/roster_target.rs`](../../../crates/sylpheed-formats/examples/roster_target.rs)
ranks the stages by how many of their roster units are **not yet harvested**. The
rosters are `EnumUnit_S<NN>` tables whose TOC entries store a *path hash*, so the
stage label comes from hashing the candidate paths
(`hash::TOC_NAME_SCHEMES`) rather than from `UnitRoster::stage`, which can only
infer a tag when the roster happens to carry a `UN_S<NN>_…` prop.
It picked **S09 (10 missing)**; flying it took the file to **36 units / 4 785 rows /
3 439 defaulted-on-disc values**, adding `UN_e102_ADAN_Battleship`,
`UN_e104_ADAN_Carrier`, `UN_e107_ADAN_AAFrigate`, `UN_e011_ADAN_Attacker_B`,
`UN_e008_ADAN_TurretPlus`, `UN_be001_ADAN_TerrafoamingUnit`,
`UN_e001_ADAN_Elan_GR{,_Violeta}`, `UN_f102_TCAF_LightCarrier_Inv` and
`UN_f106_TCAF_Destroyer_Inv`.
**The objects are mission-independent — measured, not assumed.** Eleven units appear
in more than one snapshot, and four of them are *not* byte-identical across missions.
Comparing them **through the layout**: **zero mapped fields differ**. The 12 differing
4-byte slots are all **unmapped** — offsets `4/8/16/20` (the object header and name
pointer) and `0x250/0x268/0x3000x308/0x3300x338` (sub-object pointers) — i.e. guest
addresses, not data. So a value harvested in one mission is the unit's definition, not
a per-mission tweak, and the earlier `UN_f201_TCAF_Tanker` flag resolves the same way.
Cross-checks against the disc over the three snapshots: **1 052 agree, 0 disagree.**
One more angle field turned up the same way as the last: `Through_AngleMaximum`
(object `1.0472` = 60° in radians) carries neither an `AV_`/`AA_` token nor `Bank`, so
the degrees↔radians rule covers **anything with `Angle` in the name** too.
### Harvest state: 60 of 110 units, and where the remaining 50 live (2026-08-13)
Six targeted missions (S03, S06, S09, S13, S15, S16, plus the earlier Night Ravens
run) take the file to **60 units · 8 241 rows · 6 071 defaulted-on-disc values**,
from 21 units / 963 values this morning. Cross-checks against the disc across every
snapshot: **agree, 0 disagree** — the discipline never had to be relaxed.
Two results worth calling out:
* **`UN_e901_ADAN_Boss` and `UN_e910_core_ADAN_GeneratorCore` are harvested**
(HP 10 000, `Size_X` 500, `Size_Radius` 250, `MaximumVelocity` 450) — **without the
boss ever appearing on screen**. Definitions are instantiated when the stage loads,
so a unit only has to be in the mission's roster, not in view. That is a much
weaker requirement than the capture work needs, and it is why the same stage that
could not give the `e901` geometry gave its stats immediately.
* **The extra stages are not reachable this way.** Setting the save's stage field to
**27** boots to the title and then the emulator exits during the load — likewise
the other `S24…S29` entries. Story stages 116 all load normally. So the field
addresses the **story campaign only**, and the EX/challenge rosters need whatever
menu path Challenge mode uses.
That bounds the rest of the work: of the units still unread, the roster ranking puts
almost all of them in `S24/S25/S27/S28/S29` (`*_EX4`, `*_EX5`, `*EX` variants,
`UN_f004_TCAF_DeltaSaber_A_Player`).
**S08 closed the story stages** — `UN_be005_ADAN_SpaceFortress` and
`UN_mn500_ADAN_FloatingMine` (plus six `UN_S08_Asteroid_cmesh_*` collision meshes),
taking the file to **68 units · 9 393 rows · 7 115 defaulted-on-disc values**. Every
unit any story mission fields is now read.
**Probe: `Game Status = GAME_CLEAR` does NOT unlock a Challenge entry.** Setting GHAD
`+48` (and its header mirror `+0x18`) to **2** — the `STATE_GAME_CLEAR` end of the
enum this doc names — leaves both menus exactly as they were: the title still offers
`NEW GAME / LOAD GAME / TUTORIAL / OPTIONS / EXTRAS`, and EXTRAS still offers only
`MISSION SELECT / MOVIE THEATER / BACK`. So the EX rosters are not gated on that
field, and `GP_CHALLENGE.pak`'s content is reached some other way (or not at all from
these screens).

View File

@@ -1354,3 +1354,376 @@ Not settled: `e106_brg_01_b_02` ≡ `e106_brg_01_l` (51 verts). A second 51-vert
holds three near-identical 51-vertex runs, so the pair has no oracle yet. holds three near-identical 51-vertex runs, so the pair has no oracle yet.
`n006_01A``n006_01B` shows a single `vbase` in all three logs — consistent `n006_01A``n006_01B` shows a single `vbase` in all three logs — consistent
with real reuse, but equally with only one of the two being on screen. with real reuse, but equally with only one of the two being on screen.
## ✅ The `[index buffer][vertex buffer]` layout is RUNTIME-VERIFIED (2026-08-13)
Every anchor decision in this decoder rests on one assumption nothing on disc
states: a block's index buffer sits **immediately before** its vertex buffer, at
`vb idx_count*2 pad` with `pad ≤ 3` (`anchor_pool_mesh`). It was also the
prime suspect for the residual misses — the note above recorded a capture-proven
`e106_eng_02_l` block that the decoder *rejected*, and "the index buffer is
somewhere else" would have explained it.
It is now measured, not assumed. The F10 ship capture in `xenia-canary-native`
was extended to log each draw's index buffer (`ib base=… count=… min=… max=…`,
`CaptureShipDrawForRE`), and `examples/capture_ib_truth.rs` scores it against our
decode of the same container (`Stage_S02`, load constant `0x17FE3FF4`,
[full table](../captures/stage-s02-index-buffer-truth.txt)):
| measurement, 42 drawn buffers placed in the container | result |
|---|---|
| our `idx_count` == sum of the draw's index batches | **42 / 42** |
| union of batches covers the vertex pool exactly (`max_idx == vcount1`) | **42 / 42** |
| index data at `vb 2*idx_count pad`, `pad ≤ 3` (single-block path) | **30 / 30** (20 at pad 0, 10 at pad 2) |
| the remaining 12 | all **grouped pools** — one index pool for the whole group, so the per-sub-mesh distance is larger by construction (`_rou_f105_break` sub-meshes, `n301_02B`) |
So the layout assumption is **correct**, the index count we decode is **exactly**
what the engine indexes, and `eng_02_l`'s rejection was the connectivity gate
(since replaced by the winding gate), not the index location. The coverage rule
shipped earlier (`XBG7_COVER_SLACK = 1`, "a real block reaches its last vertex")
is independently confirmed: every drawn buffer's index union ends exactly at
`vcount1`.
### The trap that hid this: the capture kept only the FIRST batch
The engine issues **several draws over one vertex buffer**, each indexing a
sub-range (29 batches here; the player craft's 10 891-vertex buffer takes 9).
The capture de-duped by `(vbase, WVP transform)`, so it recorded one batch per
placement — which is exactly the recorded mystery *"the capture's `indices=` field
disagrees with the descriptor index count (119-vert twin draws log `indices=21`
vs our 246)"*. Not a disagreement: `21` was the first of two batches, and
`21 + 225 = 246`. Both twins now read `batches 2 · idx 246 · span 492 · gap 0`.
Mixing the index range into the de-dup key (same commit) makes every batch
appear. **Any conclusion drawn from a pre-2026-08-13 capture's `indices=` value,
or from `vbase ibase`, is about one batch and not about the block.**
### ✅ FIXED, and it is the biggest silent defect found so far: the index run was one element late (2026-08-13)
Comparing captured index VALUES (not just counts) against our decode turned the
layout check above into a byte-level oracle — `examples/capture_index_bytes.rs`
lines each draw batch up against `GameMesh::indices` at the batch's own offset.
Result on `Stage_S02`: **76 of 93 index runs identical, 17 differing — and every
difference was a shift by exactly one element**, on buffers whose real index data
sits at **pad 2**.
Cause: `anchor_pool_mesh` took the **first** pad that validated, and pad 0 is
tried first *with the looser gate* (`XBG7_PAD0_CONSISTENCY` 0.70, against 0.85 for
pad ≥ 1). For a pad-2 block, reading at pad 0 yields `[true[1], true[2], …,
garbage]` — every index still in range, the pool still covered, the positions
untouched, and the winding often just above 0.70. So it validated, and every
triangle came out mis-wired.
**The signature is decidable offline** (`examples/index_pad_check.rs`): a shifted
run wires arbitrary vertices, so triangles come out **degenerate** (a repeated
index). In `Stage_S02`, 32 resources read at pad 0 with 12 156 degenerate
triangles and winding 0.630.76, while the same blocks at pad 2 give **zero**
degenerate triangles and winding 0.981.00. And degeneracy is near-perfectly
clean as an invariant: **282 of 283** correctly anchored blocks in that container
have zero degenerate triangles.
**Fix:** score every validating pad by `(degenerate triangles, then winding)` and
keep the best, instead of returning the first. Revert knob
`XBG7_PAD_FIRST_MATCH=1` restores the old behaviour, which is how the before/after
below was measured.
| measurement | first-match (old) | scored (new) |
|---|---|---|
| captured index runs identical to ours (`Stage_S02`, 2 025 elements) | 76 / 93 | **93 / 93** |
| decoded sub-meshes whose index run holds a degenerate triangle (disc-wide) | **579** | **16** |
| sub-meshes whose index run changed | — | **575** of 8 850 |
| resources decoded · vertex anchors · cross-container minority decodes | 6 209 · — · 89 | **unchanged** (6 209 · identical `vb` · 89) |
So 575 sub-meshes — 6.5 % of the disc's geometry — were being decoded with
mis-wired triangles under a completely correct-looking decode: right resource,
right buffer, right vertex count, right coverage. **No count-based metric could
see it**; only the captured index values, and then the degeneracy signature they
pointed at. Locked in by
`tests/mesh_disc.rs::decoded_index_runs_have_almost_no_degenerate_triangles`.
Honest limits: of the moved runs, **92** had a pad-0 reading with no degenerate
triangle and moved on the winding tie-break alone (83 such cases existed before
the fix, so the tie-break newly decides 9) — weaker evidence than the degeneracy
signature, and unverified by the capture. The **16** remaining degenerate runs are
the grouped `.dat` break composites in `ptc_pack` (`f102`/`f104`/`e107`, whose
marker lists are documented not to map onto the stored blocks), `e201_bdy_03_m`
(2 containers) and `_rou_f402_dead` (9) — each already suspect on other grounds,
and now the concrete next targets.
**And it is plainly visible** — the check the numbers kept failing at.
`ship_render --static` on `f101` (the ACROPOLIS, whose 25 448-vertex hull carried
2 156 degenerate triangles) both ways:
[before / after](../captures/f101-index-shift-before-after.png). The old decode is
a torn mess of shards; the new one is a coherent capital ship with flat decks,
panel lines, bridge tower and funnels. Same 31 991 triangles, same 4 placements,
same bounds — only the wiring differs. Third time this project has learned it:
**render the output**; a metric that cannot see a 1 600-unit slab could not see
this either.
### ✅ Following it through: degenerate index runs 582 → 1 (2026-08-13)
The pad-scoring fix left 16 dirty sub-meshes. Two follow-ups cleared all but one.
**1. The grouped path had the same first-match bug.** `anchor_grouped_meshes`
picks `ib0 = vb0 span pad` the same way, so it got the same scoring (pivot
run's degenerate count, then winding). That cleared every remaining `ptc_pack`
composite — `f102_break.dat` (161 degenerate triangles), `f104_break.dat` (3
sub-meshes) and `e107_break.dat` — 16 → 11.
**2. Prefer a degenerate-free candidate over an earlier dirty one.** The last two
resources were anchored on a *lookalike earlier in file order*:
`examples/better_home.rs` scores every candidate `(start, pad)` for a resource and
showed **exactly one** degenerate-free, pool-covering block for `e201_bdy_03_m`
(`0x316383C`, ours was `0x248D054` with 4 degenerate triangles) and one for
`_rou_f402_dead`. So `anchor_pool_mesh` now keeps first-match order for every
clean hit and only searches on when the accepted block is provably mis-fitted,
falling back to the dirty block if nothing clean exists (coverage can never
regress). 11 → 1.
| | first-match | + pad scoring | + these two |
|---|---|---|---|
| decoded sub-meshes with a degenerate index run (disc-wide) | 582 | 11 | **1** |
| captured index runs identical (`Stage_S02`) | 76/93 | 93/93 | **93/93** |
| resources decoded / misses | 6 209 / 85 | 6 209 / 85 | **6 209 / 85** |
| sub-meshes whose index run changed | — | 580 | 590 |
| of those, vertex anchor moved | — | 0 | **10** (`_rou_f402_dead` ×8, `e201_bdy_03_m` ×2) |
**The consistency screen went 89 → 96 minority decodes, and that is progress.**
All seven new rows are `_rou_f402_dead`: eight containers now agree on a
**32 × 25 × 8** box, which gives the resource a *majority for the first time*, so
the seven copies that still land elsewhere (`160×160×78`, `519×100000×519`,
`856×463×803`, `779×5769×5769`) are finally **named** instead of hiding behind "no
majority". Textbook case of consistency being the weaker witness: the number rose
because the decoder got better.
**The one remaining dirty run** is `_rou_f402_dead` in `Stage_S09`. Its
degenerate-free block (`0x17AE620`, validates at pad 0) is **claimed by
`e_rou_f003_Near`** — so distinct assignment blocks it, not a gate. Both are
24-vertex bounding boxes: the identity class that needs descriptor-level data, not
another heuristic. A winding-floor escalation for this case was written, measured
to fire for **nothing** on the disc, and reverted (the comment survives in
`anchor_pool_mesh`).
**Next target, with the caveat that killed the last attempt:** six containers
decode `_rou_f402_dead` to a *clean but wrong* block, so several degenerate-free
candidates exist and file order picks badly. The majority span would separate
them — but "flag, don't silently rewrite geometry on a vote" still stands, so this
needs the box-identity data, or a capture of a stage that draws it.
### A capture from a DIFFERENT mission — out-of-sample validation, and how containers get loaded (2026-08-13)
With the stage now selectable from a hand-edited save
([savegame notes](savegame-format.md#-solved-52-is-the-stage-and-the-save-picks-the-mission-2026-08-13)),
`ship_capture_close.sh` was run in **story stage 05** (`Lebendorf_far`, the Gallia
asteroid field) instead of stage 02 — three logs, ~11 200 draws, target
`UN_f105_TCAF_Cruiser` closed to 1 375 units.
**The pad fix validates out of sample.** These draws had no part in deriving it:
```
index runs compared: 124 identical · 0 differing · 4 no decoded resource
2 769 index elements checked against the GPU
```
So 124/124 index runs from a mission the fix never saw agree byte for byte, on top
of the 93/93 from the stage-02 capture.
**A mission has SEVERAL stage containers resident, and the drawn buffers split
between them.** Scoring the same logs against two containers:
| container | its own load constant | drawn buffers placed | what they are |
|---|---|---|---|
| `Stage_S02.xpr` | `0x17FE3FF4` (same as the stage-02 run) | **65** | the shared TCAF/ADAN fleet — `f105_*`, `e105_*`, `e106_*`, `f106_*`, `_rou_*` |
| `Stage_S05.xpr` | `0x1927B7F4` | **5** | the **f101 ACROPOLIS** (`bdy_01/02/03`, `eng_01`, `wep_01`) — the mission's escort |
Both sets have exact index counts and exact pool coverage, so both placements are
real. The split is explained by content, not by guesswork: `f105_bdy_01` is in
**13 of the 22** stage containers and **not in `Stage_S05.xpr` at all**, while the
f101 parts the engine drew match S05's own copy. So the resident set follows the
**mission's unit roster** — every mission that fields the common fleet pulls the
container that holds it (`Stage_S02.xpr`, the largest at 57 MB), while its own
container supplies what is unique to it.
**Consequence for the remaining 8285 misses:** flying a different *story* stage
is not the same as reaching a different *container*. To cover a specific container
one has to pick a mission whose roster contains units that live **only** there —
which is a static question (resource names per container × the stage's
`EnumUnit_SNN` roster), not another capture run. That is the cheap way to aim the
next capture, and the first-ever truth rows for a non-`Stage_S02` container (the
five f101 rows above) show the method works the moment the roster does.
### 🔎 ROOT CAUSE for a never-decoding family: a grouped pool can MIX STRIDES (2026-08-13)
A capture can do more than check anchors — it can name a resource we never decode.
`capture_ib_truth` now proposes an identity for every drawn buffer our decoder
cannot place, by matching the buffer's `(vertex, index)` counts against
**declared-but-not-decoded** resources. In the stage-05 and stage-16 mission
captures that fired on one buffer, and it identified a member of the
never-decoding set: **`n201_01` / `_02` / `_03`** in `Stage_S02.xpr` (three of the
63 resources that decode in no container at all).
The capture pins the whole group. Its four declared markers are
`(777,4464) (869,4464) (192,576) (869,4464)`, and the drawn offsets are
| sub | vertex buffer | index buffer | indices | verts | **stride** | shader |
|---|---|---|---|---|---|---|
| #0 | `0x32BA71C` | `0x32B39FC` | 4464 | 777 | **24** | `0xD2D7612373F4AE3D` |
| #1 | `0x32BEFF4` | `0x32B5CDC` | 4464 | 869 | **24** | `0xD742809411292720` |
| #2 | `0x32C416C` | `0x32B7FBC` | 576 | 192 | **24** | `0x57A54C86C90995F8` |
| #3 | `0x32C536C` | `0x32B843C` | 4464 | 869 | **28** | `0x4F5B7E6C2ED3460A` |
Measured against the file, the layout is **exactly what the decoder assumes**: the
index buffers pack tightly (`#0` ends where `#1` starts, …), the last one ends
*flush* at `vb0` (so pad 0, and the pool span 27 936 matches
`align4`-summed markers to the byte), the vertex buffers are contiguous, and every
sub-mesh's max index is `verts 1`. Nothing about the grouping is wrong.
**What is wrong is one stride.** Sub-mesh #3 is stride **28**, not 24 — and each
sub-mesh has its **own vertex shader**, i.e. its own declaration.
`anchor_grouped_meshes` parses a *single* declaration per resource and applies its
stride to the whole pool, so it reads #3 out of phase: dumping that pool at stride
24 gives 372 non-finite position components out of 2 607, and
`mesh::debug_grouped_report` at the capture-proven `vb0` reports exactly that —
`pad 0: position component NaN is not finite/plausible`. The pivot is chosen as the
largest index count, ties going to the last marker, which lands **on the one
sub-mesh whose stride is wrong**, so the entire resource is declined.
So this family is not a threshold problem and not an anchoring problem: **the
descriptor must carry a declaration per sub-mesh**, and reading one for all of them
is the defect. Next step is to look for those per-sub-mesh declarations in the
descriptor (the four distinct shader hashes say the game has four), then let the
grouped path use them.
**Targeting, for the record** (`examples/miss_targets.rs`): of the misses, **63
decode nowhere** and 13 miss in one container while decoding in another. The
never-decoding set clusters as `Stage_S16.xpr` 21 (all `e901_wing_05_*`),
`ptc_pack.xpr` 12 (`.DAT` composites), `Base.xpr` 6 (`g005`, `t170`, `t180`, …),
then per-stage `n2xx` station groups (S02 `n201`, S06 `n202`, S07 `n203`,
S09/S25 `n205`, S15 `n207_208`). 58 of the 63 live in exactly one container.
Flying stage 16 did **not** get the `e901` wings drawn (the boss appears later in
the mission), which is the next lesson: choosing the mission puts a container in
memory, but the unit still has to be **on screen** for a draw to exist.
### ✅ The descriptor carries a declaration PER SUB-MESH — worth 38 misses (2026-08-13)
Following the `n201` mixed-stride finding: the descriptor was dumped around every
index marker (`examples/desc_dump.rs`), and the layout is unambiguous — **each
marker is followed by its own element triples**, terminated by
`off=0x00FF0000 / code=0xFFFFFFFF`:
| `n201_01` marker | verts / indices | elements (offset, code) | stride |
|---|---|---|---|
| `@0x428` | 777 / 4464 | 0 `2A23B9`, 12 `1A2360`, 20 `182886` | 24 |
| `@0x900` | 869 / 4464 | 0 `2A23B9`, 12 `1A2360`, 20 `2C235F` | 24 |
| `@0xDD8` | 192 / 576 | 0 `2A23B9`, 12 `1A2360`, 20 `182886` | 24 |
| `@0x12B0` | 869 / 4464 | 0 `2A23B9`, 12 `1A2360`, 20 `182886`, **24 `2C235F`** | **28** |
That is exactly the capture's `stride=28` on the fourth draw, and it explains the
four distinct vertex-shader hashes. `parse_vertex_decl` read the **first**
declaration and applied it to the whole pool; `all_vertex_decls` now reads one per
marker, and `anchor_grouped_meshes` uses each sub-mesh's own stride for the vertex
pool walk, the pivot validation and the read.
**Measured with `XBG7_SUBMESH_DECLS=1`:**
| | default | per-sub-mesh declarations |
|---|---|---|
| resources that never decode (disc-wide) | 85 | **47** |
| resources that decode in **no** container | 63 | **30** |
| capture oracles (`Stage_S02`) | 93/93 runs, 42/42 index counts | **unchanged** |
| cross-container minority decodes | 96 | 96 |
| decoded index runs with a degenerate triangle | 1 | 5 |
And `debug_grouped_report` at `n201_01`'s **capture-proven** pool start now reads
`pad 0: ACCEPTED`, where it used to read `position component NaN` — the block the
engine draws from is finally acceptable to the decoder.
**Selection had to catch up first** (it now has — see the next section):
* the three `n201_0x` copies all settle on ONE pool, so
`tests/mesh_consistency_disc.rs::twin_pairs_do_not_share_a_buffer` fails — a twin
collapse is the one thing this project has decided never to ship;
* production still picks a pool start 4 bytes before sub-mesh **#1** (`0x32BEFF0`)
instead of the proven `0x32BA71C`, even though that start **is** in the candidate
list, validates at pad 0, and is claimed by nobody in the final output — so the
remaining defect is in *choosing* among candidates, not in the format reading;
* four newly decoded `ptc_pack` `.dat` composites carry degenerate triangles
(`f202_break`, `e108_break`, `f106_break`, `eff_s901_e04`) — new coverage of
imperfect quality rather than a regression, but not clean either.
So the format question is **settled** (and capture-confirmed), the coverage win is
real and measured, and what stands between the two is the same
selection/distinct-assignment machinery that the pad work already improved once.
That is the next step, with `n201`'s proven offsets as the acceptance test.
### ✅ …and the selection bug it exposed: prefer the candidate that explains the WHOLE pool
With per-sub-mesh declarations on, `n201_01` decoded as a 2-part fragment **4 bytes**
off. The reason, from `debug_grouped_report` at both offsets:
```
vb0 0x32BA718 (4 bytes early) pad 2: ACCEPTED ← earlier in file order, so first-match took it
vb0 0x32BA71C (capture-proven) pad 0: ACCEPTED
```
Both validate for the **pivot** — the pivot alone cannot separate them. At the early
one, two of the four sub-meshes then fall out as out-of-range, so the resource decoded
as a fragment whose first sub-mesh sat at `0x32BEFF0` (= the early `vb0` + 777·24).
`anchor_grouped_meshes` now **builds** each accepted candidate and keeps the one that
explains the most of the declared pool, returning immediately when a candidate
explains all `n` sub-meshes and falling back to the best partial otherwise (so it can
never decode less than first-match did). The result is exact:
| `n201_01` sub-mesh | decoded vertex offset | capture-proven |
|---|---|---|
| #0 | `0x32BA71C` | `0x32BA71C` ✅ |
| #1 | `0x32BEFF4` | `0x32BEFF4` ✅ |
| #2 | `0x32C416C` | `0x32C416C` ✅ |
| #3 | `0x32C536C` | `0x32C536C` ✅ |
and `n201_02` / `n201_03` take their own distinct pools (`0x3353BEC`, `0x3388BEC`), so
the twin collapse is gone.
**Both changes are now the default** (`XBG7_SUBMESH_DECLS=0` reverts the declaration
reading):
| | before | after |
|---|---|---|
| resources that never decode | 85 | **47** |
| resources decoding in **no** container | 63 | **30** |
| decoded index runs with a degenerate triangle | 1 | **1** |
| cross-container minority decodes | 96 | 96 |
| captured index runs identical, stage-02 capture | 93/93 | **93/93** |
| captured index runs identical, stage-05 mission capture | 124/128 (4 undecoded) | **128/128** |
The last row is the one that matters most: the four buffers that capture could not
name are the `n201` family, and now they decode **and** their index runs match the
GPU byte for byte. Suite green (`twin_pairs_do_not_share_a_buffer` included) apart
from the pre-existing known-failing cross-container consistency test.
### Where the anchor work stands: 6 247 / 6 294 (99.25 %), and what the residual 47 is
`examples/why_missed.rs` reports the furthest gate for every resource a container
fails to decode. Disc-wide that is **47 rows / 43 distinct names**, and they are
not a threshold away — they are mostly **not ship geometry**:
| class | rows | what they are |
|---|---|---|
| `e_rou_` / `_rou_` pose & proxy composites | **30** | scene-composite records like `e_rou_e901_attackA_start`, `…_guard_end`, `…_stand` — 24-vertex marker boxes whose extent is **0.010** |
| `.DAT` particle composites (`ptc_pack`) | 6 | `h309.DAT`, `m001_n.DAT`, … — the marker lists that provably do not map onto the stored blocks |
| damage / LOD variants | 8 | `e101_bdy_02_d` (indices reach 13 171 of 15 430 vertices), `e901_wing_05_*_m`, … |
| props / other | 3 | `g005` (extent 0.196), `_rou_f001_wep_05`, `e_rou_e005` |
By gate: **extent 32 · coverage 8 · winding 7**. The extent bucket is almost
entirely the pose-proxy boxes — a 0.010-unit cube is a *marker*, not a mesh, and
lowering the floor to admit them was measured before and refuted (it bought 2
resources and cost cross-container consistency). The `e901_wing_05_L/R` pair is the
one genuinely interesting residual: winding **0.587 / 0.570** against the 0.70 floor,
which is what a **thin double-sided sheet** looks like when face normals are compared
to averaged vertex normals — plausible but unproven, and the only way to settle it is
a capture with the boss on screen (flying stage 16 was not enough: the container is
resident but the unit never appeared).
So the anchor line of work is **done for practical purposes**: every real mesh the
engine draws in three captured missions decodes, at the offsets the GPU used, with
index runs matching byte for byte (93/93 and 128/128).

View File

@@ -0,0 +1,65 @@
#!/usr/bin/env python3
"""Which input is the AFTERBURNER, and what does it do?
The definition carries `AB_ConsumeShield_Begin 50`, `AB_ConsumeShield 10` and a set
of `AB_AV_*` turn caps far below the normal ones (roll 40 vs 125-200 °/s, pitch-up
30 vs 70-150) — so the burner should cost shield and cut agility. It carries no
`AB_*Velocity`, so whether it raises the speed target at all is an open question.
Method: hold `RT` (max-speed baseline), then hold each candidate button in turn and
measure speed over 1-second windows. A button that pushes speed past the RT plateau
is the burner. Buttons known to do something else are skipped: `RB` is the nose gun,
`Y` the missile mount, the d-pad the tactical map (see flight-controls-runtime.md).
Usage: ab_probe.py <out.csv> [hold_s]
"""
import math, os, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def windowed(seq, lo, hi):
a = [s for s in seq if s[0] >= lo][0]
b = [s for s in seq if s[0] <= hi][-1]
return math.dist(a[1:], b[1:]) / (b[0] - a[0])
def main():
out_csv = sys.argv[1]
hold = float(sys.argv[2]) if len(sys.argv) > 2 else 5.0
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
rows = []
pad("trig", "RT", "1.0") # max-speed baseline for every phase
time.sleep(2.0)
for label in ("baseline", "A", "B", "X", "LB", "baseline2"):
if label.startswith("baseline"):
pass
else:
pad("press", label)
seq, t0 = [], time.time()
while time.time() - t0 < hold:
p = speed_law.pos_at(w.fd, off)
seq.append((round(time.time() - t0, 3), *p))
time.sleep(0.05)
if not label.startswith("baseline"):
pad("release", label)
for s in seq:
rows.append((label, *s))
try:
v = [windowed(seq, t, t + 1.0) for t in range(int(hold) - 1)]
print(f"# {label:<10} speed per 1 s window: " + " ".join(f"{x:6.0f}" for x in v))
except Exception as e:
print(f"# {label:<10} failed: {e}")
pad("trig", "RT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("phase,t,x,y,z\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
"""Find the afterburner by what it COSTS, not by what it speeds up.
`ab_probe.py` held A/B/X/LB at full throttle and none of them moved the speed —
so either the burner is a different input or it does not raise the speed target
(the definition has no `AB_*Velocity`, only `AB_AV_*` turn caps and
`AB_ConsumeShield{,_Begin}` 10 / 50). This looks for the cost instead: sample a
window of the player object while each candidate is held, and report any float
that FALLS during the hold and not before it — `AB_ConsumeShield_Begin 50` should
be a visible step.
Usage: ab_state_probe.py [hold_s]
"""
import os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
WIN_LO, WIN_HI = 0x100, 0x220 # object window, relative to the position triple
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def snap(fd, off):
b = os.pread(fd, WIN_HI - WIN_LO, off + WIN_LO)
return [struct.unpack_from(">f", b, i)[0] for i in range(0, len(b) - 3, 4)]
def main():
hold = float(sys.argv[1]) if len(sys.argv) > 1 else 4.0
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}; window {WIN_LO:#x}..{WIN_HI:#x}")
pad("trig", "RT", "1.0")
time.sleep(1.5)
for btn in ("LS", "RS", "A", "B", "X", "LB"):
before = snap(w.fd, off)
pad("press", btn)
time.sleep(hold)
during = snap(w.fd, off)
pad("release", btn)
time.sleep(1.0)
after = snap(w.fd, off)
drops = []
for i, (b, d, a) in enumerate(zip(before, during, after)):
# a float that fell while held and did not fall further after release
if b - d > 1.0 and (a - d) > -1.0 and abs(b) < 1e6:
drops.append((WIN_LO + i * 4, round(b, 1), round(d, 1), round(a, 1)))
tag = ", ".join(f"{o:#05x}: {b}->{d}->{a}" for o, b, d, a in drops[:4]) or "nothing fell"
print(f"# {btn:<3} {tag}")
pad("trig", "RT", "0.0"); pad("reset")
if __name__ == "__main__":
main()

186
tools/re-capture/axis_probe.py Executable file
View File

@@ -0,0 +1,186 @@
#!/usr/bin/env python3
"""Which pad input drives which rotation axis — all three measured at once.
The control mapping was left with **yaw ❔ "no input found"**: `AV_Yaw_*` exists in
the definitions (45/25) but no stick appeared to yaw. That conclusion came from
probes that measured one axis at a time using a non-forward matrix row, which is
exactly the flaw that made roll and pitch produce identical numbers — a row like
that moves under *any* rotation, so "this input yaws" and "this input pitches"
cannot be told apart by it.
So decompose properly. For each small step, with the previous frame's orthonormal
rows `(f, u, w)` = forward, up, right:
roll = atan2(u_new . w_old, u_new . u_old) rotation of UP about forward
yaw = atan2(f_new . w_old, f_new . f_old) rotation of FORWARD about up
pitch = atan2(f_new . u_old, f_new . f_old) rotation of FORWARD about right
Each drops the components the other two produce, so one held input yields three
numbers and the axis it actually drives is whichever is large.
Every candidate is held with the file pad, which writes the WHOLE state at once —
so `rx` really means right-stick-X with every other channel exactly zero, which a
quantising virtual stick could not promise.
⚠️ TWO THINGS THIS PROBE DOES NOT YET HANDLE, both learned the hard way:
1. **The craft can DIE mid-run.** Holding a stick at full deflection spins the ship
at 150-200 deg/s in a live combat mission; two minutes of that and the first run
ended on GAME OVER. Inputs measured after that point are meaningless, and the
symptom is only "0 player candidates, best displacement 0.000" *afterwards* --
the earlier rows still look fine. Check the player is alive BETWEEN inputs, or
probe somewhere nothing shoots back.
2. **Which row is UP and which is RIGHT is not pinned.** `entities2` measures that
row 2 is forward (against velocity), but rows 0 and 1 are assigned by the D3D
convention, not by evidence. Roll is unaffected -- rotation of either non-forward
row within their shared plane is roll either way -- but YAW and PITCH swap if the
convention is wrong, so this probe's last two columns are named on an assumption.
Usage: axis_probe.py <out.csv> [dwell_s]
"""
import json
import math
import os
import struct
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law # noqa: E402
PAD_FILE = os.environ.get("XENIA_PAD_FILE", "/tmp/xenia_pad.txt")
# Candidates. Sticks at full deflection, shoulders as buttons. Triggers are the
# throttle (already settled) and are left out.
# Order matters: the craft can be shot down mid-run, so the UNKNOWN inputs go
# first while it is healthy and the already-established ones (lx = roll) go last
# as controls. A row measured after death looks like a clean zero.
CANDIDATES = [
("rx+", {"rx": 32767}),
("ry+", {"ry": 32767}),
("LB", {"press": "LB"}),
("RB", {"press": "RB"}),
("lx+", {"lx": 32767}),
("ly+", {"ly": 32767}),
]
def pad_state(**kw):
parts = [f"{k}={v}" for k, v in kw.items() if v is not None]
tmp = PAD_FILE + ".tmp"
with open(tmp, "w") as f:
f.write(" ".join(parts))
os.replace(tmp, PAD_FILE)
def rows_at(fd, off, cfg):
base = off + cfg["rot_delta"]
out = []
for r in range(3):
v = struct.unpack(">3f", os.pread(fd, 12, base + r * cfg["rot_stride"]))
n = math.sqrt(sum(c * c for c in v)) or 1.0
out.append(tuple(c / n for c in v))
return out
def dot(a, b):
return sum(a[i] * b[i] for i in range(3))
def alive(w, off, cfg, secs=1.0):
"""Is the craft still flying? A destroyed craft stops moving, and every
subsequent input then measures a clean, meaningless zero — the failure mode
that invalidated this probe's first run (it ended on GAME OVER and only said
so afterwards)."""
p0 = struct.unpack(">3f", os.pread(w.fd, 12, off))
time.sleep(secs)
p1 = struct.unpack(">3f", os.pread(w.fd, 12, off))
return math.dist(p0, p1) > 1.0
def pin_rows(w, off, cfg):
"""Which non-forward row is UP and which is RIGHT?
`entities2` measures row 2 = forward against the velocity vector, but the other
two are assigned by the D3D convention rather than evidence — and yaw and pitch
SWAP if that is wrong, so naming them without this test is a guess.
Discriminator: in level flight the craft's up-vector points along world +Y and
its right-vector lies near the horizontal plane. Sample at neutral and compare
|world-Y| across the rows."""
f_i = cfg["fwd_row"]
acc = [0.0, 0.0, 0.0]
n = 0
for _ in range(20):
time.sleep(0.05)
rs = rows_at(w.fd, off, cfg)
for r in range(3):
acc[r] += rs[r][1] # world Y component
n += 1
ys = [a / n for a in acc]
cand = [r for r in (0, 1, 2) if r != f_i]
up_i = max(cand, key=lambda r: abs(ys[r]))
right_i = [r for r in cand if r != up_i][0]
print(f"# row world-Y means: {[round(y,3) for y in ys]} (forward = row {f_i})")
margin = abs(ys[up_i]) - abs(ys[right_i])
ok = margin > 0.3
print(f"# -> up = row {up_i}, right = row {right_i} margin {margin:.3f} "
f"{'CONFIDENT' if ok else 'WEAK — craft is not level'}")
if not ok and os.environ.get("ALLOW_WEAK_PIN") != "1":
sys.exit("refusing to measure with a WEAK row pin — fly level first, or set "
"ALLOW_WEAK_PIN=1 if the caller genuinely does not care "
"(roll is immune to the labelling; pitch and yaw are not)")
return up_i, right_i
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 5.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found")
print(f"# locked on {nm}")
f_i = cfg["fwd_row"]
if not alive(w, off, cfg):
sys.exit("craft is not moving at the start — not in flight, or already dead")
u_i, w_i = pin_rows(w, off, cfg)
rows = []
print(f"# {'input':<6} {'roll':>9} {'yaw':>9} {'pitch':>9} (deg over the dwell)")
for label, state in CANDIDATES:
pad_state() # neutral
time.sleep(2.0)
prev = rows_at(w.fd, off, cfg)
pad_state(**state)
t0 = time.time()
sw = [0.0, 0.0, 0.0]
while time.time() - t0 < dwell:
time.sleep(0.05)
cur = rows_at(w.fd, off, cfg)
roll = math.degrees(math.atan2(dot(cur[u_i], prev[w_i]), dot(cur[u_i], prev[u_i])))
yaw = math.degrees(math.atan2(dot(cur[f_i], prev[w_i]), dot(cur[f_i], prev[f_i])))
pitch = math.degrees(math.atan2(dot(cur[f_i], prev[u_i]), dot(cur[f_i], prev[f_i])))
for k, v in enumerate((roll, yaw, pitch)):
sw[k] += abs(v)
prev = cur
pad_state()
wall = time.time() - t0
if not alive(w, off, cfg):
print(f"# CRAFT STOPPED MOVING after {label} — everything from here is "
f"meaningless, aborting rather than reporting zeros")
break
rate = [v / wall for v in sw]
rows.append((label, *[round(v, 2) for v in rate]))
print(f"# {label:<6} {rate[0]:9.1f} {rate[1]:9.1f} {rate[2]:9.1f} deg/wall-s")
time.sleep(1.5)
with open(out_csv, "w") as f:
f.write("input,roll_deg_s,yaw_deg_s,pitch_deg_s\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
raise SystemExit(main())

113
tools/re-capture/burst_probe.py Executable file
View File

@@ -0,0 +1,113 @@
#!/usr/bin/env python3
"""Angular rate at a KNOWN, SETTLED speed — short bursts instead of one sweep.
Why not a sweep: turning bleeds speed hard (1 193 -> 589 in 8 s at full throttle),
so a long hold averages a rate over a moving speed and lands between two different
caps. A sweep *driven* by that bleed also cannot dwell at either extreme, which is
exactly where a speed-dependent law is most testable.
So: settle the throttle, measure the settled speed, then pitch for only ~1 second.
The speed barely moves inside a burst, so each burst is one honest `(speed, rate)`
point. Three throttle settings give three clean points at known speeds.
Row pinning is done ONCE while the craft is still level — the pin decides which
matrix ROW is up and which is right, which is a property of the layout, not of the
current attitude, so it stays valid after the craft has been thrown around.
Accumulation is windowed over the whole burst (never per-read): polling is faster
than the guest updates these fields, so a per-read delta is either zero or a whole
frame divided by a fraction of one — that aliasing once manufactured an entire
rate-vs-speed curve.
Usage: burst_probe.py <roll|pitch> <out.csv> [burst_s] [repeats]
"""
import json
import math
import os
import struct
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law # noqa: E402
from axis_probe import alive, pad_state, pin_rows, rows_at, dot # noqa: E402
DRIVER = {"roll": {"lx": 32767}, "pitch": {"ly": 32767}}
THROTTLES = [("min", {"lt": 255}), ("cruise", {}), ("max", {"rt": 255})]
def pos_at(fd, off):
return struct.unpack(">3f", os.pread(fd, 12, off))
def measure(w, off, cfg, axis, u_i, w_i, f_i, hold, secs):
"""Accumulate path length and swept angle over one interval."""
prev_r, prev_p = rows_at(w.fd, off, cfg), pos_at(w.fd, off)
t0 = time.time()
path = swept = 0.0
while time.time() - t0 < secs:
time.sleep(0.02)
cur_r, cur_p = rows_at(w.fd, off, cfg), pos_at(w.fd, off)
path += math.dist(cur_p, prev_p)
if axis == "roll":
d = math.atan2(dot(cur_r[u_i], prev_r[w_i]), dot(cur_r[u_i], prev_r[u_i]))
else:
d = math.atan2(dot(cur_r[f_i], prev_r[u_i]), dot(cur_r[f_i], prev_r[f_i]))
swept += abs(math.degrees(d))
prev_r, prev_p = cur_r, cur_p
span = time.time() - t0
return path / span, swept / span
def main():
axis, out_csv = sys.argv[1], sys.argv[2]
burst = float(sys.argv[3]) if len(sys.argv) > 3 else 1.0
reps = int(sys.argv[4]) if len(sys.argv) > 4 else 3
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found")
f_i = cfg["fwd_row"]
if not alive(w, off, cfg):
sys.exit("craft is not moving")
u_i, w_i = pin_rows(w, off, cfg) # once, while level
print(f"# locked on {nm}, {axis} in {burst}s bursts x{reps}")
# ⚠️ Gap in the first run of this probe: it did NOT bracket the HUD clock, so
# the absolute deg/GAME-second could not be computed and only the (clock-free)
# min:max ratio was usable. Screenshot the HUD at the start and end.
import subprocess
subprocess.run(["screenshot", "/sylph-home/re/shots/burst_clock_a.png"],
capture_output=True)
rows = []
for tname, tstate in THROTTLES:
for rep in range(reps):
pad_state(**tstate)
time.sleep(6.0) # settle the throttle, wings level-ish
settled, _ = measure(w, off, cfg, axis, u_i, w_i, f_i, None, 1.0)
pad_state(**tstate, **DRIVER[axis])
bspeed, rate = measure(w, off, cfg, axis, u_i, w_i, f_i, None, burst)
pad_state(**tstate)
rows.append((tname, rep, round(settled, 1), round(bspeed, 1), round(rate, 2)))
print(f"# {tname:<6} rep{rep} settled {settled:7.1f} "
f"during {bspeed:7.1f} rate {rate:6.1f} deg/wall-s")
if not alive(w, off, cfg):
print("# CRAFT STOPPED MOVING — aborting")
pad_state()
break
else:
continue
break
pad_state()
subprocess.run(["screenshot", "/sylph-home/re/shots/burst_clock_b.png"],
capture_output=True)
with open(out_csv, "w") as f:
f.write("throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,137 @@
#!/usr/bin/env bash
# Probe the challenge-mission gate on the running game.
#
# The gate (docs/re/challenge-mission-gate.md): GamePart_ChallengeMission tests a
# CLEARED-STAGE bitmask on a static singleton at guest 0x828F4070 —
# word A 0x828F40C0 bit = stage id, for ids < 24 (story 1-16, tutorial 18-23)
# word B 0x828F4814 bit = stage id - 24 (challenge 24-29)
# so setting every bit should make all six challenge missions available without
# playing the campaign.
#
# POKE=1 (default) sets both words; POKE=0 runs the identical navigation without
# touching them. Run it BOTH ways: the first poked run hit a Xenia heap failure on
# the way into MISSION SELECT, and only the control says whether that failure has
# anything to do with the poke.
#
# Runs as ONE blocking foreground call on purpose: setsid'd processes are reaped
# at turn boundaries, so a session split across calls loses its emulator.
#
# Usage: [POKE=0|1] [TAG=name] challenge_probe.sh [boot_timeout_s]
set -u
export HOME=/sylph-home/re
export DISPLAY=:99
export SDL_AUDIODRIVER=dummy
export XENIA_PAD_FILE=/tmp/xenia_pad.txt
HERE="$(cd "$(dirname "$0")" && pwd)"
pad() { python3 "$HERE/pad.py" "$@"; }
poke() { python3 "$HERE/gpoke.py" "$@"; }
SHOTS="$HOME/shots"
BOOT_TIMEOUT="${1:-400}"
POKE="${POKE:-1}"
POKE_A="${POKE_A:-0x0001FFFE}" # stages 1-16 cleared
POKE_B="${POKE_B:-0x0000003F}" # challenge stages 24-29 cleared
TAG="${TAG:-$([ "$POKE" = 1 ] && echo poked || echo control)}"
mkdir -p "$SHOTS"
say() { echo "[$(date +%H:%M:%S)] $*"; }
shot() { screenshot "$SHOTS/chal-$TAG-$1.png" >/dev/null 2>&1; }
# --- clean slate -------------------------------------------------------------
pkill -9 -x xenia_canary 2>/dev/null
sleep 1
rm -f /dev/shm/xenia_* 2>/dev/null
: > "$XENIA_PAD_FILE"
LOG="$HOME/canary.stdout"
# --- launch ------------------------------------------------------------------
say "launching canary (lavapipe, file pad) — POKE=$POKE tag=$TAG"
run-canary --audio --apu=sdl --log_mask=13 \
--logged_profile_slot_0_xuid=E0300000EFBEA3D4 \
--hid=file --pad_file="$XENIA_PAD_FILE" &
# Xvfb keeps the LAST instance's framebuffer until the new one draws, so a
# screenshot taken seconds after launch shows the PREVIOUS run's screen. That is
# how a control run once reported "MAIN MENU reached after 1s" against a menu
# belonging to a process that no longer existed. Blank the root, and refuse to
# believe any screen oracle until the emulator has had time to draw its own.
xsetroot -solid black 2>/dev/null || true
LAUNCH_GRACE=40
# --- reach the MAIN MENU, verifying instead of pressing blind ----------------
# Two oracles, both sampled from real screenshots:
# title screen : green "PRESS (A) BUTTON" glyph at (625,618)
# main menu : the "NEW GAME" text at (648,221) is pure white (254,254,254),
# where the title has the yellow planet (208,189,88)
# The first control run pressed A while the ATTRACT MOVIE happened to show a
# greenish pixel at the title-glyph spot, then navigated a menu that was never
# open and reported "0 failures" for a screen it never reached. Verify the menu.
px() { convert /tmp/nav-probe.png -format \
"%[fx:int(255*p{$1}.r)] %[fx:int(255*p{$1}.g)] %[fx:int(255*p{$1}.b)]" info: 2>/dev/null; }
# A screen is identified by a PATTERN of sampled points, never by one pixel. A
# single "is (648,221) white?" test matched a white loading flash, and the run
# then navigated a menu that was not on screen -- the same class of mistake as
# trusting the stale framebuffer. Require the menu's contrast: white "NEW GAME"
# text AND the dark blue panel behind it.
at_menu() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "648,221") # NEW GAME text: white
[ -n "${r:-}" ] || return 1
[ "$r" -gt 230 ] && [ "$g" -gt 230 ] && [ "$b" -gt 230 ] || return 1
read -r r2 g2 b2 < <(px "560,300") # panel left of LOAD GAME: dark blue
[ -n "${r2:-}" ] || return 1
[ "$r2" -lt 120 ] && [ "$b2" -gt "$r2" ]
}
at_title() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "625,618")
[ -n "${g:-}" ] && [ "$g" -gt 130 ] && [ $((g - r)) -gt 45 ] && [ $((g - b)) -gt 45 ]
}
say "waiting for the main menu (up to ${BOOT_TIMEOUT}s)"
MENU=0
for i in $(seq 1 "$BOOT_TIMEOUT"); do
if [ "$i" -lt "$LAUNCH_GRACE" ]; then sleep 1; continue; fi
if at_menu && sleep 1 && at_menu; then say "MAIN MENU reached after ${i}s"; MENU=1; break; fi
if at_title; then say " title visible — tapping A"; pad tap A 0.25; sleep 2; fi
sleep 1
done
[ "$MENU" = 1 ] || { say "TIMEOUT: never reached the main menu"; shot 00-timeout; exit 1; }
shot 01-mainmenu
say "gate words:"
poke r32 0x828F40C0 1
poke r32 0x828F4814 1
if [ "$POKE" = 1 ]; then
# Default to REAL stage ids only. 0xFFFFFFFF claims stages that do not exist
# (0, 17, and 24-31 in word A), and that run blew the guest heap:
# MmAllocatePhysicalMemoryEx could not satisfy 128 MB and the guest threw.
# Word A bits 1..16 = the story campaign; 18..23 would be the tutorials.
say "poking word A = $POKE_A, word B = $POKE_B"
poke w32 0x828F40C0 "$POKE_A"
poke w32 0x828F4814 "$POKE_B"
else
say "control run — leaving the words untouched"
fi
# --- main menu -> EXTRAS -----------------------------------------------------
# NEW GAME / LOAD GAME / TUTORIAL / OPTIONS / EXTRAS
for _ in 1 2 3 4; do pad dpad down 0.06; sleep 0.35; done
sleep 0.5
pad tap A 0.15
sleep 3
shot 02-extras
# --- EXTRAS -> MISSION SELECT ------------------------------------------------
ALLOC_BEFORE=$(grep -c 'MmAllocatePhysicalMemoryEx: Allocation failed' "$LOG" 2>/dev/null | head -1)
pad tap A 0.15
sleep 4
shot 03-missionselect
ALLOC_AFTER=$(grep -c 'MmAllocatePhysicalMemoryEx: Allocation failed' "$LOG" 2>/dev/null | head -1)
say "MmAllocatePhysicalMemoryEx failures: before=$ALLOC_BEFORE after=$ALLOC_AFTER"
say "guest C++ exceptions: $(grep -c 'Guest attempted to throw a C++ exception' "$LOG" 2>/dev/null | head -1)"
say "shots: $SHOTS/chal-$TAG-*.png"
say "done — emulator left running"

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
"""Pin the world-unit / displayed-speed ratio at the one unambiguous point.
At neutral throttle the HUD reads exactly `CruisingVelocity` (350 for the player),
so no digit-reading is needed to know the game's own number — only a clean
measurement of how far the craft actually travels in world units.
Cleanliness matters more than length here: earlier ratios (1.191.29) were sampled
in a firefight where the craft is shoved around, and with a stick input the path is
longer than the displacement. So this flies straight, holds neutral throttle, and
takes ONE long displacement over a 20 s window, plus screenshots at both ends to
confirm the HUD never moved off 350.
Usage: cruise_ratio.py [window_s]
"""
import math, os, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
CRUISE = 350.0 # UN_f001_TCAF_DeltaSaber_T_Player CruisingVelocity
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def shot(name):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{name}.png"], capture_output=True)
def main():
win = float(sys.argv[1]) if len(sys.argv) > 1 else 20.0
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
pad("reset")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
time.sleep(6.0) # settle at cruise, sticks centred
shot("cruise_start")
p0, t0 = speed_law.pos_at(w.fd, off), time.time()
samples = [(0.0, *p0)]
while time.time() - t0 < win:
time.sleep(0.25)
samples.append((round(time.time() - t0, 3), *speed_law.pos_at(w.fd, off)))
shot("cruise_end")
p1, t1 = samples[-1][1:], samples[-1][0]
disp = math.dist(p0, p1)
path = sum(math.dist(samples[i][1:], samples[i + 1][1:]) for i in range(len(samples) - 1))
print(f"# window {t1:.1f}s displacement {disp:8.0f} path {path:8.0f} "
f"straightness {disp / path:.3f}")
print(f"# speed by displacement {disp / t1:7.1f}/s by path {path / t1:7.1f}/s")
print(f"# ratio vs HUD {CRUISE:.0f}: displacement {disp / t1 / CRUISE:.3f} path {path / t1 / CRUISE:.3f}")
if __name__ == "__main__":
main()

74
tools/re-capture/diff_words.py Executable file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env python3
"""Find guest addresses holding one value in snapshot A and another in snapshot B.
The classic differential search, which is how you locate a field whose ADDRESS is
unknown but whose VALUE is known at two moments. Used here for the GamePart slot:
`GP_EXTRAS` = 5 on the extras screen, `GP_MISSION_SELECT` = 7 on the next one, so
the slot is a word that reads 5 then 7.
Both snapshots are sparse copies of `/dev/shm/xenia_memory_*`, so the ~4.6 GB of
holes cost nothing: walk A's allocated extents with SEEK_DATA and only look at B
where A already matched.
diff_words.py <snapA> <valA> <snapB> <valB> [--near <va> <span>]
"""
import os
import struct
import sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from gmem import off_to_vas # noqa: E402
def main():
if len(sys.argv) < 5:
print(__doc__)
return 1
pa, va_, pb, vb_ = sys.argv[1], int(sys.argv[2], 0), sys.argv[3], int(sys.argv[4], 0)
pat_a = struct.pack(">I", va_)
fa, fb = open(pa, "rb"), open(pb, "rb")
size = min(os.path.getsize(pa), os.path.getsize(pb))
hits, scanned = [], 0
off = 0
while off < size:
try:
off = os.lseek(fa.fileno(), off, os.SEEK_DATA)
except OSError:
break
if off >= size:
break
try:
end = min(os.lseek(fa.fileno(), off, os.SEEK_HOLE), size)
except OSError:
end = size
while off < end:
n = min(1 << 22, end - off)
fa.seek(off)
buf = fa.read(n)
scanned += len(buf)
i = 0
while True:
i = buf.find(pat_a, i)
if i < 0:
break
p = off + i
if p % 4 == 0:
fb.seek(p)
if fb.read(4) == struct.pack(">I", vb_):
hits.append(p)
i += 1
off += n
print(f"scanned {scanned/1e6:.0f} MB of allocated guest memory")
print(f"addresses reading {va_} in A and {vb_} in B: {len(hits)}")
for h in hits[:40]:
vas = off_to_vas(h)
print(f" file off {h:#012x} guest VA {[hex(v) for v in vas][:2]}")
if len(hits) > 40:
print(f" … and {len(hits)-40} more")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -145,7 +145,18 @@ def main():
return return
if cmd == "self": if cmd == "self":
# The "_Player" suffix is STAGE-SPECIFIC. Stage 02 fields
# UN_f002_TCAF_DeltaSaber_W_Player, but stage 01 fields
# UN_f001_TCAF_DeltaSaber_T with no suffix at all, and this filter then
# found nothing while the game was visibly flying. Fall back to the
# player's craft class and prefer the instance that is actually moving —
# a mission holds more than one.
me = [e for e in ents if "Player" in e[1]] me = [e for e in ents if "Player" in e[1]]
if not me:
me = [e for e in ents if "DeltaSaber" in e[1] or "ArrowHead" in e[1]]
me.sort(key=lambda e: -e[3]) # fastest first: the flown one
if me:
print(f"# no *_Player entity; falling back to craft class -> {me[0][1]}")
if not me: if not me:
sys.exit("player entity not found") sys.exit("player entity not found")
off, nm, pos, sp = me[0] off, nm, pos, sp = me[0]

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env bash
# Locate the GamePart "slot" in guest memory by DIFFERENTIAL SEARCH.
#
# sub_821749C0 creates a part from slot+12 (the requested part id) and stores the
# result at *(slot+16). The id is computed from a menu selection -- no literal 26
# exists anywhere -- so it cannot be found statically. But the id is KNOWN at each
# screen from the GamePart table (docs/re/challenge-mission-gate.md section 3):
#
# GP_EXTRAS = 5 GP_MISSION_SELECT = 7
#
# so the slot is simply the word that reads 5 on the EXTRAS screen and 7 on the
# MISSION SELECT screen. Snapshot both, intersect, and the candidates are few.
#
# Usage: find_partslot.sh [boot_timeout_s]
set -u
export HOME=/sylph-home/re DISPLAY=:99 SDL_AUDIODRIVER=dummy
export XENIA_PAD_FILE=/tmp/xenia_pad.txt
HERE="$(cd "$(dirname "$0")" && pwd)"
pad() { python3 "$HERE/pad.py" "$@"; }
poke() { python3 "$HERE/gpoke.py" "$@"; }
BOOT_TIMEOUT="${1:-400}"
say() { echo "[$(date +%H:%M:%S)] $*"; }
px() { convert /tmp/nav-probe.png -format \
"%[fx:int(255*p{$1}.r)] %[fx:int(255*p{$1}.g)] %[fx:int(255*p{$1}.b)]" info: 2>/dev/null; }
at_menu() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "648,221"); [ -n "${r:-}" ] || return 1
[ "$r" -gt 230 ] && [ "$g" -gt 230 ] && [ "$b" -gt 230 ] || return 1
read -r r2 g2 b2 < <(px "560,300"); [ -n "${r2:-}" ] || return 1
[ "$r2" -lt 120 ] && [ "$b2" -gt "$r2" ]
}
at_title() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "625,618"); [ -n "${g:-}" ] || return 1
[ "$g" -gt 130 ] && [ $((g - r)) -gt 45 ] && [ $((g - b)) -gt 45 ]
}
snap() { SHM=$(ls /dev/shm/xenia_memory_* 2>/dev/null | head -1); cp --sparse=always "$SHM" "$1"; }
pkill -9 -x xenia_canary 2>/dev/null; sleep 1
rm -f /dev/shm/xenia_* 2>/dev/null; : > "$XENIA_PAD_FILE"
say "launching"
run-canary --audio --apu=sdl --log_mask=13 \
--logged_profile_slot_0_xuid=E0300000EFBEA3D4 \
--hid=file --pad_file="$XENIA_PAD_FILE" &
xsetroot -solid black 2>/dev/null || true
MENU=0
for i in $(seq 1 "$BOOT_TIMEOUT"); do
[ "$i" -lt 40 ] && { sleep 1; continue; }
if at_menu && sleep 1 && at_menu; then say "MAIN MENU after ${i}s"; MENU=1; break; fi
at_title && { say " title — tapping A"; pad tap A 0.25; sleep 2; }
sleep 1
done
[ "$MENU" = 1 ] || { say "TIMEOUT"; exit 1; }
say "-> EXTRAS (GamePart 5)"
for _ in 1 2 3 4; do pad dpad down 0.06; sleep 0.35; done
sleep 0.5; pad tap A 0.15; sleep 4
screenshot "$HOME/shots/slot-01-extras.png" >/dev/null
snap /sylph-home/re/snap-extras.bin; say "snapshot A (EXTRAS) taken"
say "-> MISSION SELECT (GamePart 7)"
pad tap A 0.15; sleep 5
screenshot "$HOME/shots/slot-02-missionselect.png" >/dev/null
snap /sylph-home/re/snap-msel.bin; say "snapshot B (MISSION SELECT) taken"
say "intersecting: word == 5 in A and == 7 in B"
python3 "$HERE/diff_words.py" /sylph-home/re/snap-extras.bin 5 /sylph-home/re/snap-msel.bin 7
say "done — emulator left running"

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env python3
"""Two measurements the first flight-model pass left open, in ONE flight.
1. **The `LT` half of the throttle curve** — `RT` was walked 0→1 and gave
`target = CruisingVelocity + RT·(MaximumVelocity CruisingVelocity)`; `LT`
should mirror it down to `MinimumVelocity`.
2. **Roll rate** vs `AV_Roll_{Min,Max}` (200 / 125 °/s). Roll turns the craft about
its own forward axis, so the forward vector barely moves (35 °/s residual, which
is how `LX` was identified as roll at all) — measure a DIFFERENT matrix row.
Binding happens first and fast: the entity scan searches *changing* position
triples, so it only sees the craft while it still has speed. A mission left idling
drops out of the scan entirely.
Usage: flight_law2.py <out-prefix> [dwell_s]
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def row_at(fd, off, cfg, row):
at = off + cfg["rot_delta"] + row * cfg["rot_stride"]
v = struct.unpack(">3f", os.pread(fd, 12, at))
n = math.sqrt(sum(c * c for c in v)) or 1.0
return tuple(c / n for c in v)
def ang(a, b):
d = max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3))))
return math.degrees(math.acos(d))
def main():
prefix = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 4.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
# ── 1. LT curve (speed from position) ─────────────────────────────────────
lt_rows = []
for v in (0.0, 0.25, 0.5, 0.75, 1.0):
pad("trig", "RT", "0.0"); pad("trig", "LT", str(v))
time.sleep(2.0)
seq, t0 = [], time.time()
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *speed_law.pos_at(w.fd, off)))
time.sleep(0.05)
lt_rows += [(v, *s) for s in seq]
a, b = seq[0], seq[-1]
print(f"# LT={v:<5} speed {math.dist(a[1:], b[1:]) / (b[0] - a[0]):7.0f}/s")
# ── 2. Roll rate, measured on a non-forward row ───────────────────────────
roll_rows = []
other = 1 if cfg.get("fwd_row", 0) != 1 else 2
for label, trig in (("slow_roll", "LT"), ("fast_roll", "RT")):
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
pad("trig", trig, "1.0")
time.sleep(2.0)
pad("axis", "LX", "1.0")
seq, t0 = [], time.time()
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, other)))
time.sleep(0.05)
pad("axis", "LX", "0.0")
roll_rows += [(label, *s) for s in seq]
rates = []
for t in range(int(dwell) - 1):
a = [s for s in seq if s[0] >= t][0]
b = [s for s in seq if s[0] <= t + 1][-1]
rates.append(ang(a[1:], b[1:]) / (b[0] - a[0]))
print(f"# {label:<10} row {other} turn rate: " + " ".join(f"{r:6.1f}" for r in rates) + " deg/s")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
with open(prefix + "-lt.csv", "w") as f:
f.write("lt,t,x,y,z\n")
for r in lt_rows:
f.write(",".join(str(x) for x in r) + "\n")
with open(prefix + "-roll.csv", "w") as f:
f.write("phase,t,ux,uy,uz\n")
for r in roll_rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {prefix}-lt.csv and {prefix}-roll.csv")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,82 @@
#!/usr/bin/env python3
"""Is the `_Min`/`_Max` pair a LERP on speed, and is roll really speed-independent?
Pitch measured 87 deg/s at minimum speed and 54 at maximum, against
`AV_PitchMinus_{Min,Max}` 75/40 — consistent with either a two-state switch or an
interpolation. A THIRD point settles it: at half throttle the craft sits midway
between cruise and maximum, so an interpolation must put the pitch rate between the
two, while a switch cannot.
Roll measured ~144 and ~150 in the two regimes, but only 2 s apart — not enough
settle for a 126 -> 1342 speed change. Here every phase settles 5 s.
Usage: flight_law3.py <out.csv> [dwell_s]
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
SETTLE = 5.0
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def row_at(fd, off, cfg, row):
at = off + cfg["rot_delta"] + row * cfg["rot_stride"]
v = struct.unpack(">3f", os.pread(fd, 12, at))
n = math.sqrt(sum(c * c for c in v)) or 1.0
return tuple(c / n for c in v)
def ang(a, b):
return math.degrees(math.acos(max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3))))))
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 4.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
fwd, other = cfg.get("fwd_row", 0), (1 if cfg.get("fwd_row", 0) != 1 else 2)
rows = []
phases = [
# label, throttle, stick, matrix row to watch
("pitch_slow", ("LT", 1.0), ("LY", 1.0), fwd),
("pitch_mid", ("RT", 0.5), ("LY", 1.0), fwd),
("pitch_fast", ("RT", 1.0), ("LY", 1.0), fwd),
("roll_slow", ("LT", 1.0), ("LX", 1.0), other),
("roll_fast", ("RT", 1.0), ("LX", 1.0), other),
]
for label, (trig, tv), (axis, av), row in phases:
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
pad("axis", "LX", "0.0"); pad("axis", "LY", "0.0")
pad("trig", trig, str(tv))
time.sleep(SETTLE) # 5 s: a full 126 -> 1342 change needs ~2 s
# speed at the moment of the turn, so the regime is recorded not assumed
p0 = speed_law.pos_at(w.fd, off); time.sleep(0.6); p1 = speed_law.pos_at(w.fd, off)
v_at_turn = math.dist(p0, p1) / 0.6
pad("axis", axis, str(av))
seq, t0 = [], time.time()
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, row)))
time.sleep(0.05)
pad("axis", axis, "0.0")
rows += [(label, *s) for s in seq]
rates = []
for t in range(int(dwell) - 1):
a = [s for s in seq if s[0] >= t][0]
b = [s for s in seq if s[0] <= t + 1][-1]
rates.append(ang(a[1:], b[1:]) / (b[0] - a[0]))
mean = sum(rates) / len(rates)
print(f"# {label:<11} speed {v_at_turn:6.0f}/s rate {mean:6.1f} deg/s " +
" ".join(f"{r:5.0f}" for r in rates))
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("phase,t,ax,ay,az\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
main()

133
tools/re-capture/fly_stage.sh Executable file
View File

@@ -0,0 +1,133 @@
#!/usr/bin/env bash
# Launch any STORY stage from MISSION SELECT and snapshot guest RAM in flight.
#
# Supersedes the save-editing route (patch GHAD +52 in every slot, boot, LOAD
# GAME, TAKE OFF): poking ONE word marks every story stage cleared, and MISSION
# SELECT will then launch any of them —
# 0x828F40C0 = 0x0001FFFE cleared-stage mask, bits 1..16
# See docs/re/challenge-mission-gate.md. Nothing is written to disc, so there is
# no save to back up and restore afterwards.
#
# Usage: fly_stage.sh <stage 1..16> [boot_timeout_s]
set -u
STAGE="${1:?usage: fly_stage.sh <stage 1..16>}"
BOOT_TIMEOUT="${2:-400}"
export HOME=/sylph-home/re DISPLAY=:99 SDL_AUDIODRIVER=dummy
export XENIA_PAD_FILE=/tmp/xenia_pad.txt
HERE="$(cd "$(dirname "$0")" && pwd)"
pad() { python3 "$HERE/pad.py" "$@"; }
poke() { python3 "$HERE/gpoke.py" "$@"; }
SHOTS="$HOME/shots"; mkdir -p "$SHOTS"
say() { echo "[$(date +%H:%M:%S)] $*"; }
shot() { screenshot "$SHOTS/fly$STAGE-$1.png" >/dev/null 2>&1; }
px() { convert /tmp/nav-probe.png -format \
"%[fx:int(255*p{$1}.r)] %[fx:int(255*p{$1}.g)] %[fx:int(255*p{$1}.b)]" info: 2>/dev/null; }
# A screen is identified by a PATTERN of points, never one pixel — a single
# bright-pixel test once matched a white loading flash and the run navigated a
# menu that was not on screen.
at_menu() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "648,221"); [ -n "${r:-}" ] || return 1
[ "$r" -gt 230 ] && [ "$g" -gt 230 ] && [ "$b" -gt 230 ] || return 1
read -r r2 g2 b2 < <(px "560,300"); [ -n "${r2:-}" ] || return 1
[ "$r2" -lt 120 ] && [ "$b2" -gt "$r2" ]
}
at_title() {
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || return 1
read -r r g b < <(px "625,618"); [ -n "${g:-}" ] || return 1
[ "$g" -gt 130 ] && [ $((g - r)) -gt 45 ] && [ $((g - b)) -gt 45 ]
}
pkill -9 -x xenia_canary 2>/dev/null; sleep 1
rm -f /dev/shm/xenia_* 2>/dev/null
: > "$XENIA_PAD_FILE"
say "launching canary for stage $STAGE"
run-canary --audio --apu=sdl --log_mask=13 \
--logged_profile_slot_0_xuid=E0300000EFBEA3D4 \
--hid=file --pad_file="$XENIA_PAD_FILE" &
# Xvfb keeps the previous instance's framebuffer until the new one draws.
xsetroot -solid black 2>/dev/null || true
say "waiting for the main menu"
MENU=0
for i in $(seq 1 "$BOOT_TIMEOUT"); do
[ "$i" -lt 40 ] && { sleep 1; continue; }
if at_menu && sleep 1 && at_menu; then say "MAIN MENU after ${i}s"; MENU=1; break; fi
at_title && { say " title — tapping A"; pad tap A 0.25; sleep 2; }
sleep 1
done
[ "$MENU" = 1 ] || { say "TIMEOUT: no main menu"; shot 00-timeout; exit 1; }
say "poking the cleared-stage mask so every story stage is selectable"
poke w32 0x828F40C0 0x0001FFFE
# main menu -> EXTRAS -> MISSION SELECT
for _ in 1 2 3 4; do pad dpad down 0.06; sleep 0.35; done
sleep 0.5; pad tap A 0.15; sleep 3; shot 01-extras
pad tap A 0.15; sleep 4; shot 02-missionselect
# the list starts on Stage01
say "stepping to Stage$STAGE"
for _ in $(seq 2 "$STAGE"); do pad dpad down 0.06; sleep 0.30; done
sleep 1; shot 03-selected
pad tap A 0.20; sleep 3; shot 04-after-A
pad tap A 0.20; sleep 3; shot 05-after-A2
# Wait for a screen instead of sleeping a guess. The fixed sleeps below used to be
# enough and then were not: one run's stage load ran long, the script pressed START
# into a black loading screen, and every later step went to nothing while the shots
# recorded a plausible-looking sequence. Same lesson as the menu oracles.
wait_not_black() { # $1 = timeout s
for _ in $(seq 1 "$1"); do
screenshot /tmp/nav-probe.png >/dev/null 2>&1 || { sleep 1; continue; }
read -r r g b < <(px "640,360")
read -r r2 g2 b2 < <(px "200,200")
if [ -n "${r:-}" ] && [ $((r + g + b + r2 + g2 + b2)) -gt 60 ]; then return 0; fi
sleep 1
done
return 1
}
# Selecting a stage lands on the mission BRIEFING (A: Continue), which leads to the
# READY ROOM (TAKE OFF / BRIEFINGS / HANGAR / ...) with BRIEFINGS pre-highlighted.
# A snapshot taken at the briefing yields ZERO unit-definition objects — they are
# instantiated at stage load proper — so the run has to reach flight.
# START (Skip) clears the briefing. `A` does NOT: it pages through the brief and
# ten taps still left the run sitting on a briefing screen, twice. One START press
# lands on the READY ROOM.
say "waiting for the stage to finish loading"
if ! wait_not_black 180; then
say "STILL BLACK after 180s — the load hung (this happens; check the log for"
say " 'PhysicalHeap::Release failed'), aborting instead of pressing into nothing"
shot 06-stuck-black
exit 2
fi
sleep 3
say "skipping the briefing (START, not A)"
pad tap START 0.30; sleep 6
shot 06-readyroom
say "READY ROOM -> TAKE OFF (one up from the pre-highlighted BRIEFINGS)"
pad dpad up 0.06; sleep 1; shot 07-takeoff-hl
pad tap A 0.20; sleep 8
# TAKE OFF starts its own load, and it hangs black just as the stage load can --
# guarding only the first transition left a run pressing A into a black screen and
# then reporting "player entity not found" from a game that never reached flight.
say "waiting for the take-off load"
if ! wait_not_black 180; then
say "STILL BLACK after take-off — load hung, aborting"
shot 08-stuck-black
exit 2
fi
for _ in $(seq 1 6); do pad tap A 0.20; sleep 4; done
say "waiting for flight to settle"
sleep 25
shot 08-flight
SHM=$(ls /dev/shm/xenia_memory_* 2>/dev/null | head -1)
if [ -n "$SHM" ]; then
OUT="$HOME/snap-stage$STAGE.bin"
cp --sparse=always "$SHM" "$OUT" && say "snapshot -> $OUT ($(du -h "$OUT" | cut -f1) actual)"
fi
say "shots: $SHOTS/fly$STAGE-*.png"

76
tools/re-capture/gpoke.py Executable file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env python3
"""WRITE to the live guest memory of a running Xenia Canary.
The read-side companion is `gmem.py`, and this shares its guest-VA → file-offset
table. Canary backs the whole guest address space with one shared-memory file
(`/dev/shm/xenia_memory_*`), so a write here lands in the running guest with no
debugger and no pause.
gpoke.py w32 <va> <value> [...] write big-endian u32s at consecutive VAs
gpoke.py r32 <va> [n] read back n big-endian u32s (verify)
Values and addresses accept `0x` form. Every write prints the before/after word,
because a poke you cannot see is a poke you cannot trust.
⚠️ This mutates a running game. It is a research tool: there is no undo, and a
wrong address will corrupt whatever it lands on. Read back before believing.
"""
import os
import struct
import sys
from gmem import MAP, va_to_off # noqa: F401 (MAP re-exported for callers)
def shm_path():
cands = [f"/dev/shm/{n}" for n in os.listdir("/dev/shm") if n.startswith("xenia_memory")]
if not cands:
raise SystemExit("no /dev/shm/xenia_memory_* — is Canary running?")
if len(cands) > 1:
raise SystemExit(f"several guest images, refusing to guess: {cands}")
return cands[0]
def read32(f, va):
f.seek(va_to_off(va))
return struct.unpack(">I", f.read(4))[0]
def main():
if len(sys.argv) < 3:
print(__doc__)
return 1
cmd = sys.argv[1]
path = shm_path()
if cmd == "r32":
va = int(sys.argv[2], 0)
n = int(sys.argv[3], 0) if len(sys.argv) > 3 else 1
with open(path, "rb") as f:
for i in range(n):
a = va + 4 * i
print(f" {a:#010x} = {read32(f, a):#010x}")
return 0
if cmd == "w32":
va = int(sys.argv[2], 0)
vals = [int(v, 0) for v in sys.argv[3:]]
if not vals:
print("nothing to write")
return 1
with open(path, "r+b") as f:
for i, v in enumerate(vals):
a = va + 4 * i
before = read32(f, a)
f.seek(va_to_off(a))
f.write(struct.pack(">I", v))
f.flush()
after = read32(f, a)
ok = "OK" if after == v else "!! MISMATCH"
print(f" {a:#010x}: {before:#010x} -> {after:#010x} {ok}")
return 0
print(f"unknown command {cmd!r}")
return 1
if __name__ == "__main__":
raise SystemExit(main())

70
tools/re-capture/pad.py Executable file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env python3
"""Drive Xenia Canary's `--hid=file` pad — the container-safe controller.
Replaces the old `vgamepad` path, which created its device through `/dev/uinput`.
Input devices are not namespaced, so that device registered with the HOST's input
stack and every scripted press leaked to the user's desktop. This one writes a
text file the emulator polls; nothing leaves the container.
pad.py set "press=A" set the pad state and leave it held
pad.py clear release everything
pad.py tap A [secs] press, hold `secs` (default 0.10), release
pad.py dpad down [secs] one menu step (default 0.06 — longer
auto-repeats and overshoots)
pad.py hold "lt=255" secs hold an arbitrary state for `secs`
Buttons: UP DOWN LEFT RIGHT START BACK LS RS LB RB A B X Y.
Path from $XENIA_PAD_FILE, default /tmp/xenia_pad.txt (matches --pad_file).
Menu conventions in this game: A = OK, B = Back, Y = Gallery/extra, X = Delete.
"""
import os
import sys
import time
PAD = os.environ.get("XENIA_PAD_FILE", "/tmp/xenia_pad.txt")
def write(state: str):
# The driver re-parses on any (mtime-ns, size) change, so a plain rewrite is
# enough — but write through a temp + rename so a poll can never observe a
# half-written file.
tmp = PAD + ".tmp"
with open(tmp, "w") as f:
f.write(state)
os.replace(tmp, PAD)
def main():
a = sys.argv[1:]
if not a:
print(__doc__)
return 1
cmd = a[0]
if cmd == "set":
write(a[1])
elif cmd == "clear":
write("")
elif cmd == "tap":
secs = float(a[2]) if len(a) > 2 else 0.10
write(f"press={a[1]}")
time.sleep(secs)
write("")
elif cmd == "dpad":
secs = float(a[2]) if len(a) > 2 else 0.06
write(f"press={a[1].upper()}")
time.sleep(secs)
write("")
elif cmd == "hold":
write(a[1])
time.sleep(float(a[2]))
write("")
else:
print(f"unknown command {cmd!r}")
return 1
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,72 @@
#!/usr/bin/env python3
"""Is the clock factor universal, or does it apply only to linear motion?
The mission clock runs ~1.26x wall time, which fully explains the linear
measurements. Applied to the angular ones it predicts a wall-time pitch rate of
~94 deg/s for `AV_PitchMinus_Min` 75 — but the settled measurement read 74.9.
Either that was luck inside a noisy sample or angular integration is frame-based.
The flaw in comparing across runs is that the emulator's speed depends on scene
load, so the clock ratio is not a constant of the machine. This measures BOTH in
the same run: a HUD screenshot brackets each turn phase, so the mission clock's
own advance over that phase converts wall seconds to game seconds.
Usage: pitch_gametime.py <out.csv> [dwell_s] (then read the HUD TIME off the shots)
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def shot(n):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True)
def row_at(fd, off, cfg, row):
at = off + cfg["rot_delta"] + row * cfg["rot_stride"]
v = struct.unpack(">3f", os.pread(fd, 12, at))
n = math.sqrt(sum(c * c for c in v)) or 1.0
return tuple(c / n for c in v)
def ang(a, b):
return math.degrees(math.acos(max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3))))))
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 8.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
fwd = cfg.get("fwd_row", 0)
rows = []
for label, (trig, tv) in (("slow", ("LT", 1.0)), ("fast", ("RT", 1.0))):
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("axis", "LY", "0.0")
pad("trig", trig, str(tv))
time.sleep(5.0)
shot(f"gt_{label}_a") # HUD TIME at the start of the phase
t0 = time.time()
pad("axis", "LY", "1.0") # nose down = PitchMinus
seq = []
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, fwd)))
time.sleep(0.05)
pad("axis", "LY", "0.0")
wall = seq[-1][0]
shot(f"gt_{label}_b") # HUD TIME at the end
rows += [(label, *s) for s in seq]
total = sum(ang(seq[i][1:], seq[i + 1][1:]) for i in range(len(seq) - 1))
print(f"# {label:<5} wall {wall:5.2f}s swept {total:7.1f}deg "
f"rate {total / wall:6.1f} deg/wall-s "
f"(x1.26 -> {total / wall * 1.26:6.1f} deg/game-s if the clock applies)")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("phase,t,fx,fy,fz\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print("# read HUD TIME off gt_slow_a/b and gt_fast_a/b to get the run's own ratio")
if __name__ == "__main__":
main()

94
tools/re-capture/ramp_probe.py Executable file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env python3
"""Does the angular rate RAMP after the stick goes over?
Burst measurements came out a strikingly flat 0.60-0.64x of the roll cap and
1.07-1.21x of the pitch cap. A clock error cannot do that (it would move both the
same way), so something per-axis is going on, and the cheapest candidate is that a
short burst never reaches the steady rate — an angular-acceleration ramp would make
a 1-second burst under-read.
Rather than compare separate bursts (which differ in speed, attitude and starting
conditions), measure INSIDE one hold: successive 0.25 s windows of a single 3 s
press. A ramp shows up as the first windows reading low and the later ones
plateauing, with everything else held constant by construction.
Windows, never per-read deltas: polling outruns the guest's update of these fields.
Usage: ramp_probe.py <roll|pitch> <out.csv> [hold_s] [repeats]
"""
import json
import math
import os
import struct
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law # noqa: E402
from axis_probe import alive, pad_state, pin_rows, rows_at, dot # noqa: E402
DRIVER = {"roll": {"lx": 32767}, "pitch": {"ly": 32767}}
WIN = 0.25
def pos_at(fd, off):
return struct.unpack(">3f", os.pread(fd, 12, off))
def main():
axis, out_csv = sys.argv[1], sys.argv[2]
hold = float(sys.argv[3]) if len(sys.argv) > 3 else 3.0
reps = int(sys.argv[4]) if len(sys.argv) > 4 else 2
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found")
f_i = cfg["fwd_row"]
if not alive(w, off, cfg):
sys.exit("craft is not moving")
u_i, w_i = pin_rows(w, off, cfg)
print(f"# locked on {nm}, {axis} ramp over {hold}s in {WIN}s windows")
rows = []
for rep in range(reps):
pad_state() # cruise: least speed bleed of the three
time.sleep(6.0)
prev_r, prev_p = rows_at(w.fd, off, cfg), pos_at(w.fd, off)
pad_state(**DRIVER[axis])
t0 = wt0 = time.time()
path = swept = 0.0
seq = []
while time.time() - t0 < hold:
time.sleep(0.02)
now = time.time()
cur_r, cur_p = rows_at(w.fd, off, cfg), pos_at(w.fd, off)
path += math.dist(cur_p, prev_p)
if axis == "roll":
d = math.atan2(dot(cur_r[u_i], prev_r[w_i]), dot(cur_r[u_i], prev_r[u_i]))
else:
d = math.atan2(dot(cur_r[f_i], prev_r[u_i]), dot(cur_r[f_i], prev_r[f_i]))
swept += abs(math.degrees(d))
prev_r, prev_p = cur_r, cur_p
if now - wt0 >= WIN:
span = now - wt0
seq.append((round(now - t0, 2), round(path / span, 1), round(swept / span, 1)))
wt0, path, swept = now, 0.0, 0.0
pad_state()
for t, sp, rt in seq:
rows.append((rep, t, sp, rt))
print(f"# rep{rep}: " + " ".join(f"{rt:.0f}" for _, _, rt in seq))
print(f"# speed " + " ".join(f"{sp:.0f}" for _, sp, _ in seq))
if not alive(w, off, cfg):
print("# CRAFT STOPPED MOVING — aborting")
break
time.sleep(2.0)
with open(out_csv, "w") as f:
f.write("rep,t,speed,rate_deg_per_wall_s\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
raise SystemExit(main())

117
tools/re-capture/rate_curve.py Executable file
View File

@@ -0,0 +1,117 @@
#!/usr/bin/env python3
"""Angular rate as a FUNCTION of speed — fitted, not sampled at two endpoints.
The two-point probe (`rate_probe.py`) assumed the craft held the speed its throttle
selects. It does not: full pitch bleeds 1 193 -> 589 in eight seconds *with the
throttle still at maximum*, so an 8-second average is taken over a moving speed and
lands between two different caps. That is how a measured pitch rate came out 33 %
ABOVE its own cap.
Turn the bug into the instrument. Because the speed bleeds on its own, one long hold
sweeps the whole range, so sampling position *and* attitude together gives
`(speed, rate)` pairs across it — the entire curve from a single phase, with no
assumption about what speed the craft is at.
Speed comes from the position deltas (no HUD OCR needed). Both speed and rate are
per wall-second here; the run's clock ratio converts both to game units afterwards
and cancels out of the SHAPE of the curve.
⚠️ SAMPLE IN WINDOWS, NOT PER READ. Polling at 20 Hz is faster than the guest
updates these fields, so a per-read delta is either exactly zero (no update yet) or
a whole frame's worth divided by a fraction of a frame. In a first run 111 of 352
reads were zero on BOTH channels — position and attitude update on the same frame,
so the two are perfectly correlated, and dividing each by the short wall dt
manufactured a clean "rate rises with speed" curve out of pure aliasing. Summing
|delta| over a window that spans many frames is immune: the total is right however
the updates fall inside it. (This is also why the swept-total probes were never
affected — only per-sample instantaneous rates were.)
Usage: rate_curve.py <roll|pitch> <out.csv> [dwell_s]
"""
import json
import math
import os
import struct
import subprocess
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law # noqa: E402
from axis_probe import alive, pad_state, pin_rows, rows_at, dot # noqa: E402
DRIVER = {"roll": {"lx": 32767}, "pitch": {"ly": 32767}}
def shot(n):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True)
def pos_at(fd, off):
return struct.unpack(">3f", os.pread(fd, 12, off))
def main():
axis, out_csv = sys.argv[1], sys.argv[2]
dwell = float(sys.argv[3]) if len(sys.argv) > 3 else 16.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found")
f_i = cfg["fwd_row"]
if not alive(w, off, cfg):
sys.exit("craft is not moving")
u_i, w_i = pin_rows(w, off, cfg)
print(f"# locked on {nm}, sweeping {axis}")
# Start at maximum speed and let the turn bleed it: one hold, whole range.
pad_state(rt=255)
time.sleep(6.0)
shot(f"curve_{axis}_a")
prev_r, prev_p, prev_t = rows_at(w.fd, off, cfg), pos_at(w.fd, off), time.time()
pad_state(rt=255, **DRIVER[axis])
t0 = time.time()
rows = []
WIN = 0.5 # seconds per emitted point: many guest frames
win_t0, win_path, win_swept = time.time(), 0.0, 0.0
while time.time() - t0 < dwell:
time.sleep(0.02)
now = time.time()
cur_r, cur_p = rows_at(w.fd, off, cfg), pos_at(w.fd, off)
win_path += math.dist(cur_p, prev_p)
if axis == "roll":
d = math.atan2(dot(cur_r[u_i], prev_r[w_i]), dot(cur_r[u_i], prev_r[u_i]))
else:
d = math.atan2(dot(cur_r[f_i], prev_r[u_i]), dot(cur_r[f_i], prev_r[f_i]))
win_swept += abs(math.degrees(d))
prev_r, prev_p = cur_r, cur_p
if now - win_t0 >= WIN:
span = now - win_t0
rows.append((round(now - t0, 2), round(win_path / span, 1),
round(win_swept / span, 2)))
win_t0, win_path, win_swept = now, 0.0, 0.0
pad_state()
shot(f"curve_{axis}_b")
with open(out_csv, "w") as f:
f.write("t,speed_units_per_wall_s,rate_deg_per_wall_s\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
# Bin by speed so the shape is visible without any curve-fitting assumption.
print(f"# {len(rows)} windows of {WIN}s; rate binned by speed (per WALL second):")
lo = min(r[1] for r in rows)
hi = max(r[1] for r in rows)
print(f"# speed swept {lo:.0f} -> {hi:.0f} units/wall-s")
nb = 6
for b in range(nb):
a = lo + (hi - lo) * b / nb
z = lo + (hi - lo) * (b + 1) / nb
sel = [r[2] for r in rows if a <= r[1] < z]
if sel:
print(f"# speed {a:7.0f}-{z:7.0f} n={len(sel):3d} rate {sum(sel)/len(sel):6.1f}")
print(f"# wrote {out_csv}; read HUD TIME off curve_{axis}_[ab] for the clock")
if __name__ == "__main__":
raise SystemExit(main())

94
tools/re-capture/rate_probe.py Executable file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env python3
"""Angular rate cap for one axis, at minimum and maximum speed.
Generalises `roll_axis.py`. Two things it does that the probes before it did not:
* **Pins the matrix rows.** `entities2` measures row 2 = forward against velocity,
but up-vs-right was previously taken from the D3D convention — and measuring
world-Y in flight showed the convention is *backwards* here (up = row 1, right =
row 0). Roll is immune to that (rotation of either non-forward row within their
shared plane is roll either way), but **pitch is not**, so a pitch number taken
without this pinning is naming an axis by assumption.
* **Brackets each phase with the HUD clock.** Rates are per GAME second and the
clock ratio is a property of the moment — 1.260, 1.311, 1.383 and 1.247/1.218
across five flights — so it cannot be assumed and must be read per phase.
roll driven by lx, measured as rotation of UP about forward
pitch driven by ly, measured as rotation of FORWARD toward up
Usage: rate_probe.py <roll|pitch> <out.csv> [dwell_s]
Then read HUD TIME off the `rate_<axis>_<phase>_[ab]` screenshots for the ratio.
"""
import json
import math
import os
import struct
import subprocess
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law # noqa: E402
from axis_probe import alive, pad_state, pin_rows, rows_at, dot # noqa: E402
DRIVER = {"roll": {"lx": 32767}, "pitch": {"ly": 32767}}
def shot(n):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True)
def main():
axis = sys.argv[1]
out_csv = sys.argv[2]
dwell = float(sys.argv[3]) if len(sys.argv) > 3 else 8.0
if axis not in DRIVER:
sys.exit(f"axis must be one of {list(DRIVER)}")
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found")
print(f"# locked on {nm}, measuring {axis}")
f_i = cfg["fwd_row"]
if not alive(w, off, cfg):
sys.exit("craft is not moving — not in flight, or already dead")
u_i, w_i = pin_rows(w, off, cfg)
rows = []
for label, trig in (("slow", "lt"), ("fast", "rt")):
pad_state(**{trig: 255})
time.sleep(5.0) # settle: 2 s was shown wrong twice
shot(f"rate_{axis}_{label}_a")
prev = rows_at(w.fd, off, cfg)
pad_state(**{trig: 255}, **DRIVER[axis])
t0, swept, seq = time.time(), 0.0, []
while time.time() - t0 < dwell:
time.sleep(0.05)
cur = rows_at(w.fd, off, cfg)
if axis == "roll":
d = math.atan2(dot(cur[u_i], prev[w_i]), dot(cur[u_i], prev[u_i]))
else:
d = math.atan2(dot(cur[f_i], prev[u_i]), dot(cur[f_i], prev[f_i]))
d = math.degrees(d)
swept += abs(d)
seq.append((round(time.time() - t0, 3), round(d, 4)))
prev = cur
pad_state(**{trig: 255})
wall = seq[-1][0]
shot(f"rate_{axis}_{label}_b")
rows += [(label, *s) for s in seq]
print(f"# {label:<5} wall {wall:5.2f}s {axis} swept {swept:7.1f}deg "
f"rate {swept / wall:6.1f} deg/wall-s")
if not alive(w, off, cfg):
print("# CRAFT STOPPED MOVING — aborting rather than reporting zeros")
break
pad_state()
with open(out_csv, "w") as f:
f.write(f"phase,t,d{axis}_deg\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv} — read HUD TIME off rate_{axis}_*_[ab] for the clock")
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,101 @@
#!/usr/bin/env python3
"""Roll rate measured ABOUT THE FORWARD AXIS, so pitch cannot leak into it.
The previous attempt watched a non-forward row of the rotation matrix and got
numbers within a few per cent of the pitch run — because pitch moves that row as
much as roll does. The fix is to measure the rotation *in the plane perpendicular
to forward*: express the new up-vector in the OLD (up, right) basis and take
`atan2(u_new·w_old, u_new·u_old)`. Any component along forward — which is what
pitch produces — is dropped by construction.
Each phase is bracketed by HUD screenshots so the mission clock converts wall
seconds to game seconds within this run (the ratio has measured 1.260, 1.311 and
1.383 in three flights, so it cannot be assumed).
Usage: roll_axis.py <out.csv> [dwell_s]
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
PAD_FILE = os.environ.get("XENIA_PAD_FILE", "/tmp/xenia_pad.txt")
def pad_state(**kw):
"""Write the WHOLE pad state at once.
The file pad is a snapshot, not a set of independent channels: each write
replaces everything, so holding a trigger *while* deflecting a stick has to be
one write. (`vgamepad`'s per-channel calls are what this replaces; that device
also leaked to the host, see the driver header.) Values are exact — no virtual
stick quantisation — which is what makes a single-axis roll hold trustworthy.
"""
parts = [f"{k}={v}" for k, v in kw.items() if v is not None]
tmp = PAD_FILE + ".tmp"
with open(tmp, "w") as f:
f.write(" ".join(parts))
os.replace(tmp, PAD_FILE)
def pad_neutral():
pad_state()
def shot(n):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True)
def rows_at(fd, off, cfg):
base = off + cfg["rot_delta"]
out = []
for r in range(3):
v = struct.unpack(">3f", os.pread(fd, 12, base + r * cfg["rot_stride"]))
n = math.sqrt(sum(c * c for c in v)) or 1.0
out.append(tuple(c / n for c in v))
return out
def dot(a, b):
return sum(a[i] * b[i] for i in range(3))
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 8.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
f_i = cfg.get("fwd_row", 0)
u_i, w_i = [r for r in (0, 1, 2) if r != f_i]
rows = []
for label, (trig, tv) in (("slow", ("LT", 1.0)), ("fast", ("RT", 1.0))):
# settle at the target speed with the stick CENTRED (5 s: 2 s was shown
# wrong twice this session)
pad_state(**{trig.lower(): 255})
time.sleep(5.0)
shot(f"rollax_{label}_a")
# full left-stick X, everything else exactly zero, trigger still held
pad_state(**{trig.lower(): 255, "lx": 32767})
t0, prev, swept = time.time(), rows_at(w.fd, off, cfg), 0.0
seq = []
while time.time() - t0 < dwell:
time.sleep(0.05)
cur = rows_at(w.fd, off, cfg)
# roll = rotation of `up` within the OLD (up, right) plane
d = math.degrees(math.atan2(dot(cur[u_i], prev[w_i]), dot(cur[u_i], prev[u_i])))
swept += abs(d)
seq.append((round(time.time() - t0, 3), round(d, 4)))
prev = cur
pad_state(**{trig.lower(): 255})
wall = seq[-1][0]
shot(f"rollax_{label}_b")
rows += [(label, *s) for s in seq]
print(f"# {label:<5} wall {wall:5.2f}s roll swept {swept:7.1f}deg "
f"rate {swept / wall:6.1f} deg/wall-s")
pad_neutral()
with open(out_csv, "w") as f:
f.write("phase,t,droll_deg\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print("# read HUD TIME off rollax_slow_a/b and rollax_fast_a/b for this run's clock ratio")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,74 @@
#!/usr/bin/env python3
"""Is the clock factor universal, or does it apply only to linear motion?
The mission clock runs ~1.26x wall time, which fully explains the linear
measurements. Applied to the angular ones it predicts a wall-time pitch rate of
~94 deg/s for `AV_Roll_Min` 75 — but the settled measurement read 74.9.
Either that was luck inside a noisy sample or angular integration is frame-based.
The flaw in comparing across runs is that the emulator's speed depends on scene
load, so the clock ratio is not a constant of the machine. This measures BOTH in
the same run: a HUD screenshot brackets each turn phase, so the mission clock's
own advance over that phase converts wall seconds to game seconds.
Usage: roll_gametime.py <out.csv> [dwell_s] (then read the HUD TIME off the shots)
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def shot(n):
subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True)
def row_at(fd, off, cfg, row):
at = off + cfg["rot_delta"] + row * cfg["rot_stride"]
v = struct.unpack(">3f", os.pread(fd, 12, at))
n = math.sqrt(sum(c * c for c in v)) or 1.0
return tuple(c / n for c in v)
def ang(a, b):
return math.degrees(math.acos(max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3))))))
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 8.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
# Roll turns the craft about its FORWARD axis, so the forward row barely moves —
# watch another row of the rotation matrix instead.
fwd = 1 if cfg.get("fwd_row", 0) != 1 else 2
rows = []
for label, (trig, tv) in (("slow", ("LT", 1.0)), ("fast", ("RT", 1.0))):
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("axis", "LX", "0.0")
pad("trig", trig, str(tv))
time.sleep(5.0)
shot(f"roll_{label}_a") # HUD TIME at the start of the phase
t0 = time.time()
pad("axis", "LY", "1.0") # nose down = Roll
seq = []
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, fwd)))
time.sleep(0.05)
pad("axis", "LX", "0.0")
wall = seq[-1][0]
shot(f"roll_{label}_b") # HUD TIME at the end
rows += [(label, *s) for s in seq]
total = sum(ang(seq[i][1:], seq[i + 1][1:]) for i in range(len(seq) - 1))
print(f"# {label:<5} wall {wall:5.2f}s swept {total:7.1f}deg "
f"rate {total / wall:6.1f} deg/wall-s "
f"(x1.26 -> {total / wall * 1.26:6.1f} deg/game-s if the clock applies)")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("phase,t,fx,fy,fz\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print("# read HUD TIME off roll_slow_a/b and roll_fast_a/b to get the run's own ratio")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,129 @@
#!/usr/bin/env python3
"""Measure the craft's speed law and check it against its definition.
The unit definition gives `Acceleration`, `Deceleration`, `MinimumVelocity`,
`CruisingVelocity` and `MaximumVelocity` (harvested 2026-08-13), but not how the
game applies them. This holds each throttle input and samples the player's own
position at ~10 Hz, so speed and its rate of change are measured rather than
assumed.
Why not `ctrl_probe.py`: it re-scans for the player when it starts, and that scan
misses in roughly half the samples on a busy stage (entities move while it walks
memory). This locks onto the player object ONCE and then only re-reads its
position triple, which is why it survives a firefight.
Usage: speed_law.py <out.csv> [hold_s]
"""
import glob, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import gworld, entities2
def require_live_emulator():
"""Refuse to measure a corpse.
A killed Canary leaves its `/dev/shm/xenia_memory_*` image behind AND leaves its
last frame on the X display, so a dead emulator looks alive from both of the
obvious angles: the screenshot shows a mission in progress and the memory image
still parses. The scans then report `0 moving triples` / "player entity not
found", which reads like a tooling bug rather than a dead game. Note `pgrep -x
xenia_canary` is NOT enough — zombies match it — so the state letter is checked.
"""
out = subprocess.run(["ps", "-o", "pid=,stat=", "-C", "xenia_canary"],
capture_output=True, text=True).stdout
live = [l for l in out.splitlines() if l.split()[1:2] and not l.split()[1].startswith("Z")]
if not live:
stale = glob.glob("/dev/shm/xenia_memory_*")
sys.exit(f"no live xenia_canary (zombies only); {len(stale)} stale shm image(s) "
f"— the screen and the memory file are both leftovers, relaunch first")
def find_player(retries=8):
"""Lock onto the player object that is actually FLYING.
Verifies the emulator is alive first — see `require_live_emulator`.
A mission holds more than one `*_Player` object — `entities2 list` shows two —
and at least one of them never moves. Taking the first match locks onto that
one, and then every probe reads a speed of exactly 0 while the game is visibly
flying (and the HUD keeps reading 350). So sample each candidate twice and keep
the one that displaces."""
require_live_emulator()
for _ in range(retries):
w = gworld.World()
defs = entities2.definitions(w)
movers = entities2.moving(w.fd, w.size)
cands = [(off, nm) for off, nm, _, _ in entities2.typed(w.fd, defs, movers, 0x130)
if nm.endswith("_Player")]
best = None
for off, nm in cands:
a = pos_at(w.fd, off)
time.sleep(0.5)
b = pos_at(w.fd, off)
d = sum((b[i] - a[i]) ** 2 for i in range(3)) ** 0.5
if best is None or d > best[0]:
best = (d, off, nm)
# A craft can be briefly slow (launch, a hard turn), so do not demand a big
# step — just prefer the candidate that moves at all. The failure this
# guards against is the STATIC duplicate, which never moves by any amount.
if best and best[0] > 0.05:
return w, best[1], best[2]
print(f"# {len(cands)} player candidates, best displacement "
f"{best[0] if best else 0:.3f} — retrying", flush=True)
time.sleep(2)
return None, None, None
def pos_at(fd, off):
b = os.pread(fd, 12, off)
return struct.unpack(">3f", b)
def pad(*args):
subprocess.run(["vgamepad", *args], capture_output=True)
def sample(fd, off, seconds, hz=20):
"""Raw (t, x, y, z) samples. Speed is NOT computed per sample: the guest
updates the position at its own rate, so a 10 Hz difference alternates
between 0 and a double step — the first run of this probe read 0, 1519, 1985,
0, 2681 … for a craft flying smoothly. Differentiate over a window instead."""
out, t0 = [], time.time()
while time.time() - t0 < seconds:
p = pos_at(fd, off)
out.append((round(time.time() - t0, 3), p[0], p[1], p[2]))
time.sleep(1.0 / hz)
return out
def main():
out_csv = sys.argv[1]
hold = float(sys.argv[2]) if len(sys.argv) > 2 else 8.0
w, off, nm = find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm} at file offset {off:#x}")
rows = []
# RT/LT are ANALOGUE TRIGGERS, not buttons: `vgamepad trig RT 1.0` holds full
# throttle, `trig RT 0.0` releases. Using `hold RT` (the button verb) is a
# silent no-op — the first run of this probe measured only the drift of a
# craft nobody was flying.
for label, keys in (("idle", [("RT", 0.0), ("LT", 0.0)]),
("RT", [("RT", 1.0), ("LT", 0.0)]),
("coast", [("RT", 0.0), ("LT", 0.0)]),
("LT", [("LT", 1.0), ("RT", 0.0)]),
("coast2", [("RT", 0.0), ("LT", 0.0)])):
for axis, v in keys:
pad("trig", axis, str(v))
seq = sample(w.fd, off, hold)
for t, x, y, z in seq:
rows.append((label, t, x, y, z))
# windowed speed: displacement over the phase's middle second
mid = [s for s in seq if seq[-1][0] * 0.4 <= s[0] <= seq[-1][0] * 0.9]
if len(mid) > 2:
d = sum((mid[-1][i] - mid[0][i]) ** 2 for i in (1, 2, 3)) ** 0.5
print(f"# {label:<8} windowed speed {d / (mid[-1][0] - mid[0][0]):8.1f}/s")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
with open(out_csv, "w") as f:
f.write("phase,t,x,y,z\n")
for r in rows:
f.write(f"{r[0]},{r[1]},{r[2]},{r[3]},{r[4]}\n")
print(f"# wrote {out_csv} ({len(rows)} samples)")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env python3
"""Is the throttle ANALOGUE, and is full deflection the afterburner?
speed_law.py measured a settled speed of ~1 530 under full `RT` against a
`MaximumVelocity` of 1 200 — attributed to the emulated time base because the same
~1.2x appears in the turn rates. But `RT` is an analogue trigger, so there is a
second reading worth excluding: that partial deflection reaches MaximumVelocity and
FULL deflection is the afterburner (which would also explain why no button toggles
it). This walks the trigger 0.00 -> 1.00 and reports the settled speed at each step.
Usage: throttle_curve.py <out.csv> [dwell_s]
"""
import math, os, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import speed_law
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def windowed(seq, lo, hi):
a = [s for s in seq if s[0] >= lo][0]
b = [s for s in seq if s[0] <= hi][-1]
return math.dist(a[1:], b[1:]) / (b[0] - a[0])
def main():
out_csv = sys.argv[1]
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 6.0
axis = sys.argv[3] if len(sys.argv) > 3 else "RT" # RT ramps up, LT ramps down
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
rows = []
for v in (0.0, 0.25, 0.5, 0.75, 1.0):
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
pad("trig", axis, str(v))
time.sleep(6.0) # settle: 5 s+ is what the turn-rate fix showed is needed
# Screenshot the HUD at the settled speed: its readout is in the
# DEFINITION's unit (it shows 350 at neutral = CruisingVelocity), so it is
# the ground truth the position-derived number has to be compared against.
subprocess.run(["screenshot", f"/sylph-home/re/shots/hud_{axis}_{v}.png"],
capture_output=True)
seq, t0 = [], time.time()
while time.time() - t0 < dwell:
seq.append((round(time.time() - t0, 3), *speed_law.pos_at(w.fd, off)))
time.sleep(0.05)
for s in seq:
rows.append((v, *s))
wins = [windowed(seq, t, t + 1.0) for t in range(int(dwell) - 1)]
print(f"# {axis}={v:<4} settled speed per 1 s window: " + " ".join(f"{x:6.0f}" for x in wins))
pad("trig", "RT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("rt,t,x,y,z\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv}")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,87 @@
#!/usr/bin/env python3
"""Measure the craft's TURN rates, and whether they depend on speed.
The unit definition carries `AA_Yaw_{Max,Min}`, `AA_PitchPlus_{Max,Min}`,
`AA_Roll_{Max,Min}` — pairs whose obvious reading is "rate at maximum speed" and
"rate at minimum speed", i.e. agility falling as the craft goes faster (for the
player: yaw 65°/s vs 120°/s, roll 475°/s vs 750°/s). That is a prediction, so
measure it: hold a throttle to pin the speed regime, hold a stick axis, and
differentiate the craft's own forward vector.
Same discipline as speed_law.py: lock onto the player object once, sample at
20 Hz, and differentiate over 1-second windows (the guest updates slower than the
sample rate).
Usage: turn_law.py <out.csv> [hold_s]
"""
import json, math, os, struct, subprocess, sys, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import gworld, entities2, speed_law
def fwd_at(fd, off, cfg):
"""The craft's forward row out of its rotation matrix (entities2 `self` bound
rot_delta / rot_stride / fwd_row and validated the row against motion)."""
at = off + cfg["rot_delta"] + cfg["fwd_row"] * cfg["rot_stride"]
v = struct.unpack(">3f", os.pread(fd, 12, at))
n = math.sqrt(sum(c * c for c in v)) or 1.0
s = cfg.get("fwd_sign", 1)
return tuple(s * c / n for c in v)
def pad(*a):
subprocess.run(["vgamepad", *a], capture_output=True)
def rate(seq, lo, hi):
"""Degrees per second between the first sample at/after `lo` and the last at/before `hi`."""
a = [s for s in seq if s[0] >= lo][0]
b = [s for s in seq if s[0] <= hi][-1]
dot = max(-1.0, min(1.0, sum(a[1 + i] * b[1 + i] for i in range(3))))
return math.degrees(math.acos(dot)) / (b[0] - a[0])
def main():
out_csv = sys.argv[1]
hold = float(sys.argv[2]) if len(sys.argv) > 2 else 6.0
cfg = json.load(open("/tmp/nav-live.json"))
w, off, nm = speed_law.find_player()
if not w:
sys.exit("player entity not found after retries")
print(f"# locked on {nm}")
rows = []
# (label, throttle, axis, value) — throttle pins the speed regime, so the
# Max/Min pair in the definition can be told apart.
# LX is ROLL (the forward vector barely moves under it) and the right stick
# does not steer at all — measured. LY is pitch, and `vgamepad` documents
# `LY: -1 = up`, so LY=+1 is nose DOWN = the `PitchMinus` family.
phases = [
("slow_down", ("LT", 1.0), ("LY", 1.0)), # AV_PitchMinus_Min 75 deg/s
("fast_down", ("RT", 1.0), ("LY", 1.0)), # AV_PitchMinus_Max 40
("slow_up", ("LT", 1.0), ("LY", -1.0)), # AV_PitchPlus_Min 150
("fast_up", ("RT", 1.0), ("LY", -1.0)), # AV_PitchPlus_Max 70
]
for label, (trig, tv), (axis, av) in phases:
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
pad("axis", "LX", "0.0"); pad("axis", "LY", "0.0"); pad("axis", "RX", "0.0")
pad("trig", trig, str(tv))
time.sleep(1.5) # let the speed settle before turning
pad("axis", axis, str(av))
seq, t0 = [], time.time()
while time.time() - t0 < hold:
f = fwd_at(w.fd, off, cfg)
seq.append((round(time.time() - t0, 3), *f))
time.sleep(0.05)
pad("axis", axis, "0.0")
for s in seq:
rows.append((label, *s))
try:
r = [rate(seq, t, t + 1.0) for t in (1.0, 2.0, 3.0) if seq[-1][0] > t + 1.0]
print(f"# {label:<11} turn rate per 1 s window: " + " ".join(f"{x:6.1f}" for x in r) + " deg/s")
except Exception as e:
print(f"# {label:<11} rate failed: {e}")
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
with open(out_csv, "w") as f:
f.write("phase,t,fx,fy,fz\n")
for r in rows:
f.write(",".join(str(x) for x in r) + "\n")
print(f"# wrote {out_csv} ({len(rows)} samples)")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,120 @@
#!/usr/bin/env python3
"""Read EVERY field of the live unit-definition objects, using the code-derived
layout instead of solving offsets from the disc.
`unit_runtime.py` scores `(field, offset, encoding)` triples against the disc
records, so it can only place fields the disc actually values — 58 of 153 on a
single-mission snapshot. The layout in `data/unit_definition_layout.txt` was read
out of the title's own loader (`sub_82341A20`: the field NAME of every store is a
string in the image), so it places **all** of them, including the ones no disc
record ever sets. That is exactly the Route-B target: the defaulted fields.
Discipline is unchanged — every field the disc DOES value is cross-checked against
the object, and a mismatch is reported rather than written. Angle fields are
degrees on disc and radians in the object (see the layout header), so those are
compared after conversion.
Usage:
unit_dump_layout.py <layout.txt> <tokens.txt> <snap.bin>... [--csv out.csv]
"""
import csv
import math
import re
import struct
import sys
sys.path.insert(0, __file__.rsplit("/", 1)[0])
import unit_runtime as ur # object locator + disc token reader
# Angle fields are DEGREES on disc and RADIANS in the object. The set is wider
# than the `AV_`/`AA_` families: a prefix may precede them (`AB_AA_PitchPlus` =
# afterburner) and some carry neither (`Through_AngleMaximum`). Both cases showed
# up as lone "contradictions" whose object value was exactly the disc value in
# radians — which is the tell.
ANGLE = re.compile(r"(^|_)(AV|AA)_|Bank|Angle|Turn_AngularVelocity")
def read_layout(path):
"""[(offset, kind, name)] from the '# offset kind field' table."""
out = []
for line in open(path):
line = line.strip()
if not line or line.startswith("#"):
continue
parts = line.split()
if len(parts) < 3:
continue
off, kind, name = parts[0], parts[1].lower(), parts[2]
try:
# The layout table writes offsets in DECIMAL (`48 f32 Size_X`), while
# the solver's CSV prints them in hex — parsing this file as hex puts
# every field 0x18 bytes late and makes the disc cross-check fail on
# everything, which is how the mistake announces itself.
out.append((int(off, 10), kind, name))
except ValueError:
continue
return out
def value_at(raw, off, kind):
if off + 4 > len(raw):
return None
if kind in ("f32", "float"):
return struct.unpack_from(">f", raw, off)[0]
if kind in ("word", "u32", "int", "bool"):
return struct.unpack_from(">I", raw, off)[0]
return None # str: a guest pointer, not a value
def as_float(s):
try:
return float(str(s).rstrip("fF"))
except ValueError:
return None
def main():
layout_path, tokens_path = sys.argv[1], sys.argv[2]
snaps = [a for a in sys.argv[3:] if not a.startswith("--")]
out_csv = next((a.split("=", 1)[1] for a in sys.argv if a.startswith("--csv=")), None)
layout = read_layout(layout_path)
disc, _ambiguous = ur.read_tokens(tokens_path)
objs, conflicts = ur.runtime_objects(snaps)
print(f"# layout fields: {len(layout)} runtime objects: {len(objs)} "
f"disc units: {len(disc)} matched: {len(set(objs) & set(disc))}")
if conflicts:
print(f"# !! objects differing between snapshots: {conflicts}")
rows, agree, disagree = [], 0, 0
for unit in sorted(objs):
raw = objs[unit]
drec = disc.get(unit, {})
for off, kind, name in layout:
v = value_at(raw, off, kind)
if v is None:
continue
dv = as_float(drec.get(name)) if name in drec else None
if dv is not None:
# The disc values this field: it is a CHECK, not a new value.
cmpv = math.degrees(v) if ANGLE.search(name) and isinstance(v, float) else v
ok = abs(cmpv - dv) <= max(1e-3, abs(dv) * 1e-3)
agree, disagree = (agree + 1, disagree) if ok else (agree, disagree + 1)
if not ok:
print(f"# MISMATCH {unit} {name} @{off:#05x}: object {cmpv!r} vs disc {dv!r}")
rows.append([unit, name, f"{off:#05x}", kind, repr(v), "disc",
"verified" if ok else "CONTRADICTED"])
else:
rows.append([unit, name, f"{off:#05x}", kind, repr(v),
"defaulted-on-disc", "layout-derived"])
print(f"# cross-check against the disc: {agree} agree, {disagree} disagree")
print(f"# rows: {len(rows)} ({sum(1 for r in rows if r[5] == 'defaulted-on-disc')} defaulted)")
if out_csv:
w = csv.writer(open(out_csv, "w", newline=""))
w.writerow(["unit", "field", "offset", "enc", "value", "source", "conf"])
w.writerows(rows)
print(f"# wrote {out_csv}")
if __name__ == "__main__":
main()

94
tools/xach_dump.py Executable file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env python3
"""Dump the title's Xbox 360 achievement table (XACH) out of the decrypted `.pe`.
The XEX embeds an SPA/XDBF resource holding the achievement definitions and one
string table per language. `GamePart_Debriefing` awards these (it walks the
`ACHIEVEMENTS_REQUIREMENTS` config list and sets bit *i* for entry *i*), and
`GamePart_ChallengeMission` gates each challenge mission on a bit of the same
space — so this table names the bits.
Layout, derived here and self-checked (see below):
XDBF section header : magic[4] "XACH", version u32, size u32, count u16
record, 36 bytes : id u16, name_id u16, unlocked_desc_id u16,
locked_desc_id u16, image_id u32, gamerscore u16,
pad u16, flags u32, then 16 bytes of zeroes
XSTR section header : magic[4] "XSTR", version u32, size u32, count u16
string entry : id u16, len u16, `len` bytes of ASCII
Self-check: the 24 records' gamerscore sums to **1000**, the retail total — a
wrong stride or field offset does not add up to a round 1000.
Usage: xach_dump.py <path-to.pe> [--lang-index N]
"""
import struct
import sys
def find_all(buf, needle):
out, i = [], 0
while True:
i = buf.find(needle, i)
if i < 0:
return out
out.append(i)
i += 1
def parse_xstr(d, off):
count = struct.unpack_from(">H", d, off + 12)[0]
o, table = off + 14, {}
for _ in range(count):
sid, ln = struct.unpack_from(">HH", d, o)
table[sid] = d[o + 4 : o + 4 + ln].decode("ascii", "replace")
o += 4 + ln
return table
def main():
if len(sys.argv) < 2:
print(__doc__)
return 1
d = open(sys.argv[1], "rb").read()
# The real XACH section is the one whose header count is small (the other
# "XACH" hit is the XDBF entry table, which merely *names* it).
xach = None
for off in find_all(d, b"XACH"):
ver, size, count = struct.unpack_from(">IIH", d, off + 4)
if ver == 1 and 0 < count < 256 and size >= count * 36:
xach = (off, count)
break
if xach is None:
print("no XACH section found", file=sys.stderr)
return 2
off, count = xach
# One XSTR per language. Default to English: the only table whose achievement
# strings are pure 7-bit ASCII (every other localisation carries accents or
# multi-byte text, which our ASCII decode turns into replacement chars).
strs = [parse_xstr(d, o) for o in find_all(d, b"XSTR") if len(d) - o > 16]
ids = [struct.unpack_from(">HHHH", d, off + 14 + i * 36)[1:] for i in range(count)]
lang = int(sys.argv[sys.argv.index("--lang-index") + 1]) if "--lang-index" in sys.argv else None
if lang is None:
def ascii_score(t):
txt = "".join(t.get(s, "") for rec in ids for s in rec)
return (txt.count("<EFBFBD>") == 0 and len(txt) > 0, len(txt))
lang = max(range(len(strs)), key=lambda i: ascii_score(strs[i]))
S = strs[lang]
print(f"XACH @0x{off:X} {count} achievements (string table #{lang} of {len(strs)})\n")
total = 0
for i in range(count):
b = off + 14 + i * 36
aid, nid, did, lid = struct.unpack_from(">HHHH", d, b)
gs = struct.unpack_from(">H", d, b + 12)[0]
total += gs
print(f"id {aid:2d} | bit {aid - 1:2d} | {gs:3d}G | {S.get(nid, '?')}")
print(f" unlocked: {S.get(did, '?')}")
print(f" locked : {S.get(lid, '?')}")
print(f"\ntotal gamerscore = {total}" + (" [OK: retail total]" if total == 1000 else " [!! expected 1000]"))
return 0
if __name__ == "__main__":
raise SystemExit(main())