Previous Top Next
Trip file (.trip)

Notes:
-     For all people that can read Pascal, have a look at unit ‘UnitTripObjects.pas’, that implements this format.
-     ‘0x’ is used for Hexadecimal notation. E.G. 0x0A = 10
-     Refer to Subclass field for details on the Subclass.

The file starts with a header
Field
Size (in Bytes)
Sample Value
Description
ID
4
‘TRPL’
Identifier of the format. Always ‘TRPL'
SubLength
4
0x0007  9A03
498179
Size of the sub elements. Filesize minus 8.
(ID + SubLength?)
HeaderLength
1
0x0A
10
Previously, when 0x09 was considered a terminator, this field was considered to be the size of the header.
But that no longer seems likely.
It could also be Datatype 0x0a.
Always 10.
TotalItems
4
0x0000 0014
20
Nr of items in this trip file

graphic


Structure of an item:
Field
Size (in Bytes)
Sample Value
Description
Initiator
1
0x09
Marks the start of an item.
Note: Previously this field was considered to be a terminator of the preceding field. But programming proved it was more likely an initiator.
NameLen
4
0x0000 0009
Length of the name field, immediately following.
Name
Varies
‘mImported’
Name of this item. Contains only ANSI characters (1 byte per character). E.G. no international characters, as can be found in string types, that take up 4 bytes for every character.
ValueLen
4
0x0000 0002
Length of the value, including the datatype
Datatype
1
0x07
See the list of datatypes. (0x07 is a Boolean)
Value
Varies
0x00
The size varies according to the datatype. For a Boolean field it is always 1 byte.

graphic


Known datatypes:

Note: This list might not be complete. Not all datatypes have been decoded completely.

ID
Type
Size
in bytes
Description
0x01
Byte
1
Data type for integer values 0-255. Mostly used for enums. Fields containing only some discrete values. Examples:
mDayNumber
mRoutePreference
mTransportationMode
0x03
Cardinal
4
A cardinal is, in Pascal terms, a 4 byte unsigned integer.
Range: 0-4294967295
Examples:
mTotalTripTime
mDuration
mShapingRadius
mAttr (Only values seen are 0 and 1, so this could also have been a Byte Field!)
A special use case of the type is a Date/Time Field. It defines the nr. of seconds starting from: 1989,12,31,00,00,00,00.  It looks like a Unix date/time with a different base date/time.
mTripDate
mArrival
0x04
Single
4
A float field. (Can hold decimal values) It supports approximately 7 digits of precision in a range from 1.18 x 10-38 to 3.4 x 1038.
Examples mTotalTripDistance
0x07
Boolean
1
True or False. Examples:
mPreserveTrackToRoute
mIsDisplayable
mAvoidancesChanged
mImported
etc.
0x08
Cardinal array
varies
(multiple of 4)
The 1st cardinal defines the length. Divide by 4 to get the number of entries in the array.
Examples:
mVersionNumber
mScPosn
0x08
Version
8
Defines the version. Consist of 2 cardinals
Values seen:
Length: 0x0000 0004
Version: 0x0700 0000 for XT, 0x1000 0000 for XT2 and Tread 2
0x08
ScPosn
16 or 20
Defines the position, in GPS coordinates of a location (Via, or Shaping)
Consists of 4 cardinals: (5 for Tread 2)
Length: 0x0000 000C = 12 for XT(2), 0x0000 0010 = 16 for Tread 2
Unknown:
Model
Values seen
XT
0x022E6D2C
0x022EECB4
0x02333AEC
XT2
0x02F0FF04
0x02FE26DC
0x030D7DC8
Tread 2
0x05C79A00

When creating a trip file this field can be set to zeroes. Recalculation on the Zumo will set the correct value. Appears to change when a new firmware version is loaded on the device.

Unknown_Tread2: always 0x0000 0000
Lat:
Lon: See below how to read these numbers.
0x0a
Prefix
Varies
The lists mLocations, mAllroutes and possible THeader have a ‘prefix’ block. For more info see mLocations and mAllroutes.
0x0b
UdbHandle
Varies
Block describing UdbDirs. See mAllroutes.
0x0c
Map type
Varies
Introduced with the XT2 for mGreatRidesInfoMap and mTrackToRouteInfoMap. This datatype can hold a list of coordinates/trackpoints
Only mTrackToRouteInfoMap has been decoded. See the record types for: mTrackToRouteInfoMap later in this document.

0x0e
String
Varies
Type used for strings. Strings are stored as UCS4 chars. 4 bytes for every character for newer models like XT, XT2 and Tread2. Older models (3x0, 590, 595 etc.) use 2 bytes per character.
From sample below:
0x09: inititiator
0x 0000 0009: Length of ‘mTripName’
‘mTripName’
0x0000 0037: Length of Value + Datatype.
0x0e: Datatype
0x0034: Nr of bytes for this string.(Divide by 4 to get #chars)
0x3200 0000 = ‘2’
0x3000 0000 = ’0’
Etc.

More info: https://docwiki.embarcadero.com/Libraries/Athens/en/System.UCS4Char

graphic


ID
Type
Size
in  bytes
Description
0x80
List
Varies
A list is a type that can contain sub items. A good example is ‘mLocations’.

graphic
The locations are preceded by a block describing the total block. (*** Begin mLocations)
Then for every location a block describing 1 location (*** Begin location header)
The marked portions are all basic data type items.
mAttr = Cardinal
mIsDFSPoint = Boolean
mName = String


How to read the Lat/Lon values.

The Lat Lon values can be found in mScPosn and UdbDir (Sub item of mUdbDataHndl) fields.

Sample:
graphic

In this sample:
0x0588 3322 corresponds to Lat: 48.09557. Read the Hex value from Right to Left. (Little-Endian)

1)  Convert the Hexadecimal value to Decimal =  573802501 (Using Windows calculator in Programmer mode)
2)  Divide by  4294967296 (2^32) = 0.13359880563803
3)  Multiply by 360 = 48.0955700296909
4)  Round to 6 digits = 48.09557

0xFC1E D605 corresponds to Lon: 8.20745

1)  Convert the Hexadecimal value to Decimal =  97918716
2)   Divide by  4294967296 (2^32) = 0,0227984776720405
3)  Multiply by 360 = 8.20745196193457
4)  Round to 6 digits = 8.20745

Using Windows calculator. Remember the hex values have to be read from Right to Left!
graphic



How to read the DateTime values.

The date time format as used in mArrival can be decoded like this.
graphic

The Hex value 0x3F48 6270 corresponds to August 23, 2023 09:00:00 Basically this value defines the nr. of seconds since 1989/12/31 00:00:00

Convert hex to integer
1061708400
Again use Windows Calculator.
Add the constant
631065600
This is the nr. of seconds on 1989/12/31 00:00:00 since 1970/01/01 00:00:00
Resulting in
1692774000
August 23, 2023 09:00:00 = Unix Date Time

For converting seconds to date time you can use the website: https://www.epochconverter.com/

graphic

Note: You may notice a difference (usually an hour) that is likely caused by daylight savings.
On the XT you may see 08:00, while in Basecamp/Tripmanager it is 09:00

Items seen in trip files on the XT
(For other supported models see methods CreateTemplate_xxxx in UnitTripObjects.pas)

Name
DataType
Description
mPreserveTrackToRoute
0x07
Set to true for trips created from a track.
mParentTripId
0x03
See mParentTripName
mDayNumber
0x01
?? Always 0xFF 255.
mTripDate
0x03
?? Always 0xFFFF FFFF
mIsDisplayable
0x07
If set to False deletes the trip from the device at next start.
mAvoidancesChanged
0x07
?? Always False. May be changes after modifying avoidances?
mIsRoundTrip
0x07
?? Always False
mParentTripName
0x0E
Can be used together with mParentTripId to group the trips.
mOptimized
0x07
?? Always False
mTotalTripTime
0x03
Contains Time in seconds of trip. After recalculation by XT
mImported
0x07
Set to False to fix the RUT behaviour.
mRoutePreference
0x01
0x00 = Faster Time
0x01 = Shorter Distance
0x04 = Direct
0x07 = Curvy Roads
mTransportationMode
0x01
0x01 = Automotive
0x09 = MotorCycling
0x0A = Off Road
mTotalTripDistance
0x04
Contains Distance in meters of trip. After recalculation by XT.
mFileName
0x0E
File name on device. 0:/.System/Trips/<1234567890>.trip
If a file is saved by importing. It is the timestamp of saving.
See ‘How to read the DateTime values’.
mLocations
0x80
A list of Begin, Via / Shaping points and End point.
See ‘mLocations’
mPartOfSplitRoute
0x07
?? Always False
mVersionNumber
0x08
Apparently the version nbr. Only value seen for XT is:
0x04000000 / 0x00000007
mAllRoutes
0x80
Is the result of the calculation. It contains a list of mUdbDataHndle and UdbDir.
See ‘mAllRoutes’
mTripName
0x0E
TripName. This is the name of the route in the trip planner


Items seen in trip files on the XT2

Name
DataType
Default value
Description
mGreatRidesInfoMap
0x0C
0x0000 0000
Note 2
mAvoidancesChangedTimeAtSave
0x03
Create date time
If set to 0 a message appears ‘Avoidances changed’
Note 4
mTrackToRouteInfoMap
0x0C
0x0000 0000
Note 2
mIsDisplayable
0x07
If set to False deletes the trip from the device at next start.
mIsDeviceRoute
0x07
False
mDayNumber
0x01
?? Always 0xFF 255.
mTripDate
0x03
?? Always 0xFFFF FFFF
mOptimized
0x07
?? Always False
mTotalTripTime
0x03
Contains Time in seconds of trip. After recalculation by XT2
mTripName
0x0E
TripName. This is the name of the route in the Route planner.
mVehicleProfileGuid
0x0E
dbcac367-42c5-4d01- 17aa-ecfe025f2d1c
Only value seen
Note 5
mParentTripId
0x03
See mParentTripName
mIsRoundTrip
0x07
?? Always False
mVehicleProfileName
0x0E
‘zūmo Motorcycle'
Note 5
mAvoidancesChanged
0x07
?? Always False. May be changes after modifying avoidances?
mParentTripName
0x0E
Can be used together with mParentTripId to group the trips.
mVehicleProfileTruckType
0x01
0x07
Note 5
mVehicleProfileHash
0x03
0
Unclear how this can be determined, but a value of 0 seems to work.
mRoutePreferences
0x80
Loc cnt * 0001
Note 3
mImported
0x07
Set to False to fix the RUT behaviour.
mFileName
0x0E
File name on device. 0:/.System/Trips/<1234567890>.trip
If a file is saved by importing. It is the timestamp of saving.
See ‘How to read the DateTime values’.
mExploreUuid
0x0E
New Guid
For every trip created a new GUID must be created, or the trip will not be listed.
mVersionNumber    
0x08
Apparently the version nbr. Only value seen for XT2 is:
0x04000000 / 0x00000010
mRoutePreferencesAdventurousHillsAndCurves
0x80
Loc cnt * 0x0001
Note 3
mTotalTripDistance
0x04
Contains Distance in meters of trip. After recalculation by XT.
mVehicleId
0x03
0x01
Note 5
mRoutePreferencesAdventurousScenicRoads
0x80
Loc cnt * 0001
Note 3
mAllRoutes
0x80
Is the result of the calculation. It contains a list of mUdbDataHndle and UdbDir.
See ‘mAllRoutes’
mRoutePreferencesAdventurousPopularPaths
0x80
Loc cnt * 0001
Note 3
mPartOfSplitRoute
0x07
?? Always False
mRoutePreference
0x01
0x00 = Faster Time
0x01 = Shorter Distance
0x04 = Direct
0x07 = Curvy Roads
mShowLastStopAsShapingPoint
0x07
False
mRoutePreferencesAdventurousMode
0x80
Loc cnt * 0001
Note 3
mTransportationMode
0x01
0x01 = Automotive
0x09 = MotorCycling
0x0A = Off Road
mLocations
0x80
A list of Begin, Via / Shaping points and End point.
See ‘mLocations’
The default value is used when creating a trip file.

Notes on the XT2 items
1.  mPreserveTrackToRoute does not appear on the XT2, it uses mTrackToRouteInfoMap
2.  mGreatRidesInfoMap and mTrackToRouteInfoMap introduce 0x0c as datatype. The only value seen is 0x0000 0000.  This value could also have been represented by datatype 0x03 (Cardinal) So I suspect that these items can have more data. Maybe only activated when using Tread?
3.  mRoutePreferences, mRoutePreferencesAdventurousHillsAndCurves, mRoutePreferencesAdventurousScenicRoads, mRoutePreferencesAdventurousPopularPaths and mRoutePreferencesAdventurousMode have datatype 0x80, suggesting that they are lists. The first 4 bytes define the nr of items, followed by 2 bytes per route section. It appears to be related to the nr of mUdbHandles. So if you have 4 mUdbHandles, the list is like this:  0x0000 0004 0001 0001 0001 0001 0001 = Faster time, 0002 = Shorter distance etc.? It appears these items are used when trips are created/modified with the Tread app. See the XLSX file: Route Preferences.xlsx for an overview of the values found for the various route preferences set up. The default values used when creating trip files are accepted by the XT2.
4.  mAvoidancesChangedTimeAtSave can be read from settings.db
5.  Vehicle profile fields can be read from vehicle_profile.db




Sql settings.db

Select value from data_number
where context like '%None%' and name like '%Avoid%'
limit 1;

Sql vehicle_profile.db
XT2
select v.vehicle_id, v.truck_type, v.name, Hex(v.guid_data), v.vehicle_type, v.transport_mode, v.adventurous_route_mode from active_vehicle a
join vehicle_profile v on (a.vehicle_id = v.vehicle_id)
limit 1;

Tread 2
select v.vehicle_id, v.truck_type, v.name,
(select Hex(g.description) from properties_dbg g
  where g."description:1" = 'guid' and g.value = a.value limit 1) as Guid_Data,
v.vehicle_type, v.transport_mode, v.adventurous_route_mode
from properties_dbg a
inner join vehicle_profile v on (v.vehicle_id = a.value)
where a."description:1" = 'active_profile'
limit 1;



mTrackToRouteInfoMap block:
This block is a copy of the track that this trip was created from. On the Zumo, using 'Convert to trip'. These records describe the block.

TTrackHeader = packed record
  TrkCnt: cardinal;
  SubItems: byte;
  Unknown1: array[0..1] of Cardinal;
  SubLength: cardinal;
  DataType: byte;
  ItemCount: cardinal;
  TrackPoints: TTrackPoints;
end;
TTrackPoints = packed record
  Inititiator: AnsiChar;
  KeyLen: cardinal;
  KeyName: array[0..11] of AnsiChar;
  ValueLen: cardinal;
  DataType: byte;
  TrkPntCnt: cardinal;
end;

This record repeats for every trackpoint:
TTrackPoint = packed record
  Sizes1:       array[0..1] of cardinal;
  Datatype1:    byte;
  Count1:       cardinal;
  InitLon:      byte;
  KeylenLon:    cardinal;
  KeyNameLon:   array[0..3] of ansichar;
  ValueLenLon:  cardinal;
  DatatypeLon:  byte;
  LonAsInt:     cardinal;
  InitLat:      byte;
  KeylenLat:    cardinal;
  KeyNameLat:   array[0..3] of ansichar;
  ValueLenLat:  cardinal;
  DatatypeLat:  byte;
  LatAsInt:     cardinal;
  function GetMapCoords: string;
  procedure Init;
end;

graphic


mLocations
(For other supported models see methods AddLocation_xxxx in UnitTripObjects.pas)

mLocations itself only contains a Size and the location count.
graphic

Sample values: Size: 0x0959 = 2393, DataType 0x80, LocationCount: 0x06
Every Location starts with a Location Header
graphic

Sample values: ID: ‘LCTN’, Size: 0x0000 017C = 380 DataType: 0x0A, Count: 0x0000 0009
Next a list of ‘Count = 9’ items: (For XT2 the count is usually 10)
Item
DataType
Description
mShapingCenter
0x08
XT2 specific. Only value seen:
0x0000 0008 0000 0080 0000 0080
mAttr
0x03
0x0000 0000 = Via Point (Also used for Begin and End point)
0x0000 0001 = Shaping Point
0x0000 0002 = Shaping Point XT(2) (Shape route/Tread app)
mIsDFSPoint
0x07
?? Always False
mDuration
0x03
?? Always 0xFFFF FFFF
mArrival
0x03
Used as ‘Departure Date/Time’.
The first Location determines the sort order within the Trip Planner
See: ‘How to read Date Time values’
mScPosn
0x08
Specifies the LAT/LON values.
See ‘Known datatypes 0x08’
mAddress
0x0E
A description of the point that the XT uses for displaying.
A known issue is that Via/Shaping sometimes get renamed on the XT. Possible fixes:
-     Setting the subclass in the GPX to 0x00ff
-     Setting a value for this item.
mIsTravelapseDestination
0x07
?? Always False
mName
0x0E
The name of the Location




mAllroutes

This list contains the result of the calculation. This data has only partly been decoded, but it is likely that it also contains references to Map data. Even if it would be possible to decode it completely then it still would not be very useful, because the logic needed to calculate the routes is not available.
·   If a calculated route from Basecamp is sent to the XT(2) then this list contains the unmodified route. Provided a few conditions are met, like the same map, same transportation mode etc.
·   If a route is sent without all the Ghost Points, Subclasses etc. the XT(2) will recalculate the route upon importing, and this list will contain the result of the calculation. For example routes created by MRA.
·   If, for some reason, the XT(2) recalculates the route, the result will likely not be the same as initially created in BaseCamp/MRA.
It is therefore desirable to be able to compare the mAllroutes with the original route. What has been decoded is sufficient to achieve that.

Start of mAllRoutes:
graphic

Size: 0x0002 5D11 =  154897
DataType: 0x80 = 128
UdbHandleCount: 0x0000 0004 = 4
Note: For every trip section an UdbHandle is needed. So if you only have a Begin and End, there is only 1 UdbHandle. If you add 1 via point, there are 2 UdbHandles, for 2 via points there are 3 Udbhandles. Etc.

Each UdbHandle starts with a prefix:
graphic

Sample values: Unknown: 0x0000 0000, PrefixSize: 0x0016 630A = 5731, DataType: 0x0A, HandleId: 0x0000 0001 (Only value seen)
The beginning of the UdbHandle is fixed.
graphic

Sample values: Size: 0x0006 F039=454713, Datatype: 0x0b, UdbHandleSize: 0x0006 F034=454708

Calculation status:
Model
Calculation status
Size Unknown3
Difference
XT
0X0538FEFF
1288
0X0538 - 1288 =48
XT2
0X05D8FEFF
1448
0X05D8 - 1448 =48
Tread 2
0X0574FEFF
1348
0X0574 - 1348 =48

Notes:
·   It could be that this field defines a length. See column Difference
·   When creating a trip file, this field can remain zero, but the correct size for Unknown3 must be allocated.

Unkown2: 150 bytes.
UdbDir count: 0x0354=852
Unknown3: 1288 (XT) 1448 (XT2) 1348 (Tread 2) bytes
These items have been identified in the Unknown3 block:

Distance
Offset 0x14
4 bytes
Distance in Meters of this segment
Time
Offset 0x18
4 bytes
The total time in seconds of this segment. The sum of all UdbDir.Time items
ShapeBitmap
Offset 0x90 for XT
Offset 0xC0 for XT2, Tread 2
2 Bits (Start and End) + 1 bit for every shaping point in this segment.
For every Shaping point in this a 1 (one) bit
If the bit is zero a red flag is shown, else a blue bullet on the Zumo
Note:
The Distance, Time and ShapeBitmap are required for trip files that dont need calculating. If Distance and Time are set to zeroes the ETA will not be correct. If ShapeBitmap is set to zeroes all shaping points are displayed as flags on the Zumo, whereas they should be bullets.

Next there are ‘UdbDir count = 852’ UdbDir’s.
An UdbDir is of fixed size, and contains 532 bytes.  (XT, XT2, Tread 2)
Field
Size
Description
SubClass
16
The subclass as can be found in the GPX. The first 2 bytes (RoadClass) are omitted. See Subclass for RoutePoints in Garmin GPX
Lat
4
See ‘How to read the Lat/Lon values’
Lon
4
See ‘How to read the Lat/Lon values’
Unknown1
4
0x51590469
Time
1
Time in seconds for this UdbDir. Always 0xFF for SubClass.PointType = 0x03 (=Route point)
Border
1
0x01 = A border is crossed, else 0x00. Always 0xFF for SubClass.PointType = 0x03 (=Route point)
Unknown2
9 x 2
See UdbDirUnknown2Size[TTripModel] in Layout UdbDataHndl
Name
121 x 4
String type. Name of the UdbDir. Contains road names.
A special value indicates a turn: 0x474E0000
See UdbDirNameSize[TTripModel] in Layout UdbDataHndl

Notes:
·   Mapsegment, RoadId, Direction and PointType are taken from the SubClass.
·   Sizes shown are for the XT(2) and Tread 2. See Layout UdbDataHndl for known sizes per model.

graphic



Layout UdbDataHndl (Pascal style)

Memory layout UdbDataHndl              Size   Pascal constant
+----------------------------------------------------------------------------+
|Fixed part UdbHandle                 |     |                                |
|                                     |     |                                |
|    Prefix                           |   13|                                |
|      unknown         Cardinal       |    4|                                |
|      Size            Cardinal       |    4|                                |
|      DataType        Byte           |    1| 0x0a                           |
|      HandleId        Cardinal       |    4|                                |
|    Initiator         Char           |    1| Tab 0x09                       |
|    NameLen           Cardinal       |    4|                                |
|    Name              string         |   12| 'mUdbDataHndl'                 |
|    Datatype          byte           |    1| 0x0b                           |
|    UdbHandleSize:    Cardinal       |    4|                                |
|    CalcStatus:       Cardinal       |    4| CalculationMagic[TTripModel]   |
|----------------------------------------------------------------------------|
|    Unknown2:         TBytes         |     | Unknown2Size[TTripModel]       |
|----------------------------------------------------------------------------|
|    UDbDirCount:      WORD           |    2|                                |
|    Unknown3:         TBytes         |  var| Unknown3Size[TTripModel]       |
|----------------------------------------------------------------------------|
|Identified fields of Unknown3        |     |                                |
|       Unknown3Dist:  Cardinal       |    4| Unknown3DistOffset[TTripModel] |
|       Unknown3Time:  Cardinal       |    4| Unknown3TimeOffset[TTripModel] |
|       Unknown3Shape: TBytes         |  var| Unknown3ShapeOffset[TTripModel]|
|----------------------------------------------------------------------------|
|Variable part UdbHandle              |     |                                |
|    UdbDir 1                         |     |                                |
|    UdbDir ..                        |     |                                |
|    UdbDir UdbDirCount               |     |                                |
+----------------------------------------------------------------------------+
|Trailer                TBytes        |  var| Zumo 3x0, 590 and Nuvi2595 can |
|                                     |     | have a trailer. 4..12 bytes    |
|                                     |     | Must be < size UdbDir          |
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
|Fixed part UdbDir                    |     |                                |
|                                     |     |                                |
|   TUdbDirFixedValue = packed record |     |                                |
|     SubClass:         TSubClass     |   30|                                |
|     Lat:              integer       |    4|                                |
|     Lon:              integer       |    4|                                |
|     Unknown1:         Cardinal      |    4| UdbDirMagic ($51590469)        |
|     Time:             WORD          |    2|                                |
|----------------------------------------------------------------------------|
|Variable part UdbDir                 |     |                                |
|                                     |     |                                |
|     FUnknown2:         TBytes       |  var| UdbDirUnknown2Size[TTripModel] |
|     FName:             TBytes       |  var| UdbDirNameSize[TTripModel]     |
+----------------------------------------------------------------------------+
//.Model.specific.values..............................XT........XT2.......Tread.2...Zumo.595..Zumo.590..Zumo.3x0..Drive.51..nuvi.2595.Unknown
..NeedRecreateTrips:..array[TTripModel].of.boolean..=(false,....false,....false,....false,....false,....true,.....false,....false,....false);
..Ucs4Model:..........array[TTripModel].of.boolean..=(true,.....true,.....true,.....false,....false,....false,....false,....false,....true);
..UdbDirNameSize:.....array[TTripModel].of.integer..=(121.*.4,..121.*.4,..121.*.4,..32.*.2,...32.*.2,...66.*.2,...32.*.2,...21.*.2,...64.*.2);
..UdbDirUnknown2Size:.array[TTripModel].of.integer..=(18,.......18,.......18,.......18,.......18,.......18,.......18,.......16,.......20);
..Unknown2Size:.......array[TTripModel].of.integer..=(150,......150,......150,......76,.......72,.......72,.......76,.......72,.......80);
..Unknown3Size:.......array[TTripModel].of.integer..=(1288,.....1448,.....1348,.....294,......254,......130,......294,......134,......512);
..UdbHandleTrailer:...array[TTripModel].of.boolean..=(false,....false,....false,....false,....true,.....true,.....false,....true,.....false);
..CalculationMagic:...array[TTripModel].of.Cardinal.=($0538feff,$05d8feff,$0574feff,$0170feff,$00000000,$00000000,$0170feff,$00300030,$ffffffff);
..Unknown3ShapeOffset:array[TTripModel].of.Cardinal.=($90,......$c0,......$c0,......$8e,......$66,......$66,......$8e,......$00,......$00);
..Unknown3DistOffset:.array[TTripModel].of.integer..=($14,......$14,......$14,......$12,......$12,......$12,......$12,......$12,......$14);
..Unknown3TimeOffset:.array[TTripModel].of.integer..=($18,......$18,......$18,......$16,......$16,......$16,......$16,......$16,......$18);
..VersionSize:........array[TTripModel].of.integer..=($08,......$08,......$08,......$05,......$05,......$05,......$05,......$05,......$08);