-
Felix Weiglhofer authoredFelix Weiglhofer authored
ReadoutConfigLegacy.cxx 83.77 KiB
/* Copyright (C) 2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
SPDX-License-Identifier: GPL-3.0-only
Authors: Volker Friese [committer] */
#include "ReadoutConfigLegacy.h"
#include "CbmStsAddress.h"
#include <cassert>
#include <iomanip>
using std::pair;
using std::setw;
namespace cbm::algo::sts
{
// --- Constructor ------------------------------------------------------------------
ReadoutConfigLegacy::ReadoutConfigLegacy() { Init(); }
// ------------------------------------------------------------------------------------
// --- Destructor -----------------------------------------------------------------
ReadoutConfigLegacy::~ReadoutConfigLegacy() {}
// ------------------------------------------------------------------------------------
// --- Equipment IDs --------------------------------------------------------------
std::vector<uint16_t> ReadoutConfigLegacy::GetEquipmentIds()
{
std::vector<uint16_t> result;
for (auto& entry : fReadoutMap)
result.push_back(entry.first);
return result;
}
// ------------------------------------------------------------------------------------
// --- Number of elinks for a component / equipment -------------------------------
size_t ReadoutConfigLegacy::GetNumElinks(uint16_t equipmentId)
{
size_t result = 0;
auto it = fReadoutMap.find(equipmentId);
if (it != fReadoutMap.end()) result = fReadoutMap[equipmentId].size();
return result;
}
// ------------------------------------------------------------------------------------
// --- Total number of elinks for STS ---------------------------------------------
size_t ReadoutConfigLegacy::GetNumElinks()
{
size_t result = 0;
for (auto& entry : fReadoutMap) {
result += entry.second.size();
}
return result;
}
// ------------------------------------------------------------------------------------
// --- Initialise the mapping structure --------------------------------------------
void ReadoutConfigLegacy::Init()
{
// This here refers to the mCBM 2022 setup.
// Taken from CbmMcbm2018StsPar in combination with macro/beamtime/mcbm2022/mSts.par
// The readout hierarchy is: component - CROB - FEB - ASIC (elink). Each elink
// connects one ASIC. One FEB comprises 8 ASICs and reads out one side of a module (sensor).
// In this setup, there is only one CROB per component. The code below is formulate such
// as to support also multiple CROBs per component. In that case, the elinks are numbered
// consecutively within one component.
// Constants
const uint16_t numModules = 13; ///< Number of modules in the setup
const uint16_t numComp = 5; ///< Number of components
const uint16_t numCrobPerComp = 1; ///< Number of CROBs per component
const uint16_t numFebsPerCrob = 5; ///< Number of FEBs per CROB
const uint16_t numAsicsPerFeb = 8; ///< Number of ASICs per FEB
const uint16_t numAsicsPerMod = 16; ///< Number of ASICs per module
const uint16_t numElinksPerCrob = 42; ///< Number of elinks per CROB
const uint16_t numChanPerAsic = 128; ///< Number of channels per ASIC
// Equipment IDs for each component
// This number is written to the data stream (MicrosliceDescriptor).
uint16_t eqId[numComp] = {0x1003, 0x1002, 0x1006, 0x1004, 0x1005};
// Mapping of eLink to FEB number within CROB. If -1, elink not used.
// This mapping is the same for each component.
const int16_t elink2Feb[numElinksPerCrob] = {4, 4, 4, 4, 4, 3, 3, 3, 4, 4, -1, -1, 4, 3, 2, 2, 3, 3, 3, 1, 2,
2, 1, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0};
// Mapping of FEB within CROB to module index (-1 = inactive)
int16_t feb2module[numComp][numCrobPerComp][numFebsPerCrob] = {
{{-1, 1, 1, 0, 0}}, // component 0
{{4, 3, 3, 2, 2}}, // component 1
{{7, 6, 6, 5, 5}}, // component 2
{{10, 9, 9, 8, 8}}, // component 3
{{12, 12, 11, 11, 10}} // component 4
};
// Mapping of FEB to module side (0 = p side, 1 = n side, -1 = inactive)
int16_t feb2moduleSide[numComp][numCrobPerComp][numFebsPerCrob] = {
{{-1, 1, 0, 1, 0}}, // component 0
{{1, 1, 0, 1, 0}}, // component 1
{{1, 1, 0, 1, 0}}, // component 2
{{0, 1, 0, 1, 0}}, // component 3
{{1, 0, 1, 0, 1}} // component 4
};
// Mapping of eLink to ASIC number for FEB Type A
// The ASIC number is a running number over all FEBs.
const uint32_t elink2AsicFebA[numElinksPerCrob] = {
0x0021, 0x0023, 0x0025, 0x0020, 0x0022, 0x0018, 0x001A, 0x001C, 0x0024, 0x0027, 0xFFFF, 0xFFFF, 0x0026, 0x001E,
0x0010, 0x0012, 0x0019, 0x001B, 0x001F, 0x000E, 0x0011, 0x0013, 0x000C, 0x0015, 0x0017, 0x0016, 0x001D, 0x0014,
0x0009, 0x000D, 0x000F, 0x0008, 0x000A, 0x0002, 0x0004, 0x0006, 0x000B, 0x0005, 0x0000, 0x0003, 0x0007, 0x0001,
};
// Mapping of eLink to ASIC for FEB Type B
// The ASIC number is a running number over all FEBs.
const uint32_t elink2AsicFebB[numElinksPerCrob] = {
0x0027, 0x0025, 0x0023, 0x0026, 0x0024, 0x001E, 0x001C, 0x001A, 0x0022, 0x0021, 0xFFFF, 0xFFFF, 0x0020, 0x0018,
0x0016, 0x0014, 0x001F, 0x001D, 0x0019, 0x0008, 0x0017, 0x0015, 0x000A, 0x0013, 0x0011, 0x0010, 0x001B, 0x0012,
0x000F, 0x000B, 0x0009, 0x000E, 0x000C, 0x0004, 0x0002, 0x0000, 0x000D, 0x0003, 0x0006, 0x0005, 0x0001, 0x0007};
// Module types
// Type 0 had the connector at the right side, type 1 at the left side.
// For type 0, the mapping of FEB to module side as above applies,
// for type 1, it has to be inverted.
bool modType[numModules] = {0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1};
// Module addresses (CbmStsAddress)
int32_t modAddress[numModules];
modAddress[0] = 0x10008002;
modAddress[1] = 0x10018002;
modAddress[2] = 0x10008402;
modAddress[3] = 0x10018402;
modAddress[4] = 0x10107C02;
modAddress[5] = 0x10008412;
modAddress[6] = 0x10018412;
modAddress[7] = 0x101FFC02;
modAddress[8] = 0x10008812;
modAddress[9] = 0x10018812;
modAddress[10] = 0x10028812;
modAddress[11] = 0x10008012;
modAddress[12] = 0x10018012;
std::map<size_t, std::unordered_set<uint16_t>> maskedchans = BuildMaskSet();
// map from feb ID to adc cut
std::map<size_t, uint32_t> febAdcCuts = {{1, 1}, {2, 1}, {3, 1}, {4, 1}};
// Constructing the map (equipmentId, eLink) -> (module, ASIC within module)
uint16_t numElinksPerComp = numCrobPerComp * numElinksPerCrob;
for (uint16_t comp = 0; comp < numComp; comp++) {
uint16_t equipment = eqId[comp];
fReadoutMap[equipment].resize(numElinksPerComp);
for (uint16_t crob = 0; crob < numCrobPerComp; crob++) {
for (uint16_t elink = 0; elink < numElinksPerCrob; elink++) {
int32_t moduleAddress = -1;
uint16_t asicInModule = 0;
uint16_t elinkId = numElinksPerCrob * crob + elink; // elink within component
int16_t feb = elink2Feb[elinkId]; // FEB within CROB
if (feb != -1) {
int16_t module = feb2module[comp][crob][feb]; // Module index
if (module != -1) {
assert(module < numModules);
moduleAddress = modAddress[module];
bool moduleType = modType[module]; // 0 or 1
int16_t moduleSide = feb2moduleSide[comp][crob][feb]; // 0 or 1, -1 is inactive
int16_t febType = (moduleType == 0 ? moduleSide : !moduleSide); // 0 = FEB A, 1 = FEB B
uint32_t asicIndex = (febType == 0 ? elink2AsicFebA[elinkId] : elink2AsicFebB[elinkId]);
uint32_t asicInFeb = asicIndex % numAsicsPerFeb; // ASIC number within FEB
// Asic number is counted downward from numAsicsPerMod - 1 for p side
asicInModule = (moduleSide == 1 ? asicInFeb : numAsicsPerMod - 1 - asicInFeb);
// Init channel mask
const int32_t febId = feb + comp * numCrobPerComp * numFebsPerCrob;
auto mapIt = maskedchans.find(febId);
if (mapIt != maskedchans.end()) {
std::unordered_set<uint16_t>& mask = mapIt->second;
for (uint32_t chan = 0; chan < numChanPerAsic; chan++) {
const uint32_t chanInFeb = chan + numChanPerAsic * asicInFeb;
if (mask.count(chanInFeb)) {
std::vector<bool>& chanMask = fMaskMap[equipment][elink];
if (chanMask.empty()) {
chanMask.resize(numChanPerAsic, false);
}
chanMask[chan] = true;
}
}
}
// Set min adc cut
auto febIt = febAdcCuts.find(febId);
if (febIt != febAdcCuts.end()) {
fAdcCutMap[equipment][elink] = febIt->second;
}
}
}
fReadoutMap[equipment][elink] = std::make_pair(moduleAddress, asicInModule);
} //# elink
} //# CROB
} //# component
InitWalkCoeffs();
}
// ------------------------------------------------------------------------------------
// --- Mapping (equimentId, elink) -> (address, ASIC) --------------------------------
pair<int32_t, uint16_t> ReadoutConfigLegacy::Map(uint16_t equipmentId, uint16_t elinkId)
{
std::pair<int32_t, uint16_t> result(-1, 0);
auto equipIter = fReadoutMap.find(equipmentId);
if (equipIter != fReadoutMap.end()) {
if (elinkId < equipIter->second.size()) {
result = equipIter->second.at(elinkId);
}
}
return result;
}
// ------------------------------------------------------------------------------------
// --- Mapping (equimentId, elink) -> vector of walk coefficients -------------------
std::vector<double> ReadoutConfigLegacy::WalkMap(int32_t modAddress, uint16_t asic)
{
std::vector<double> result;
auto modIter = fWalkMap.find(modAddress);
if (modIter != fWalkMap.end()) {
if (asic < modIter->second.size()) {
result = modIter->second.at(asic);
}
}
return result;
}
// ------------------------------------------------------------------------------------
// --- Mapping (equimentId, elink) -> (vector of mask flags) ------------------------
std::vector<bool> ReadoutConfigLegacy::MaskMap(uint16_t equipmentId, uint16_t elinkId)
{
std::vector<bool> result;
auto equipIter = fMaskMap.find(equipmentId);
if (equipIter != fMaskMap.end()) {
auto elinkMap = equipIter->second;
auto elinkIter = elinkMap.find(elinkId);
if (elinkIter != elinkMap.end()) {
result = elinkIter->second;
}
}
return result;
}
// ------------------------------------------------------------------------------------
// --- Mapping (equimentId, elink) -> adc cut ---------------------------------------
uint32_t ReadoutConfigLegacy::AdcCutMap(uint16_t equipmentId, uint16_t elinkId)
{
uint32_t result = 0;
auto equipIter = fAdcCutMap.find(equipmentId);
if (equipIter != fAdcCutMap.end()) {
auto elinkMap = equipIter->second;
auto elinkIter = elinkMap.find(elinkId);
if (elinkIter != elinkMap.end()) {
result = elinkIter->second;
}
}
return result;
}
// ------------------------------------------------------------------------------------
// ----- Print readout map ------------------------------------------------
std::string ReadoutConfigLegacy::PrintReadoutMap()
{
std::stringstream ss;
for (auto& equipment : fReadoutMap) {
auto eqId = equipment.first;
for (size_t elink = 0; elink < equipment.second.size(); elink++) {
auto address = equipment.second.at(elink).first;
auto asicNr = equipment.second.at(elink).second;
ss << "\n Equipment " << eqId << " elink " << setw(2) << elink;
ss << " ASIC " << setw(2) << asicNr << " module " << address;
if (address != -1) {
ss << " Unit " << setw(2) << CbmStsAddress::GetElementId(address, kStsUnit);
ss << " Ladd " << setw(2) << CbmStsAddress::GetElementId(address, kStsLadder);
ss << " Hlad " << setw(2) << CbmStsAddress::GetElementId(address, kStsHalfLadder);
ss << " Modu " << setw(2) << CbmStsAddress::GetElementId(address, kStsModule);
}
else
ss << " Inactive";
} //# elink
} //# component
return ss.str();
}
// ----------------------------------------------------------------------------
// --- Init map of masked channels ---------------------------------------------
std::map<size_t, std::unordered_set<uint16_t>> ReadoutConfigLegacy::BuildMaskSet()
{
// Taken from /macro/beamtime/mcbm2022/sts_mask_channels.par
std::map<size_t, std::unordered_set<uint16_t>> maskedchans;
maskedchans[6] = {15, 17, 23, 27, 29, 35, 37, 39, 41, 45, 47, 51, 55, 57, 59, 63, 67, 69,
73, 75, 81, 83, 85, 87, 89, 91, 101, 103, 125, 137, 141, 145, 147, 151, 157, 159,
161, 167, 169, 173, 189, 191, 197, 199, 205, 227, 279, 313, 357, 359, 393, 395, 399, 401,
403, 405, 415, 447, 471, 487, 527, 641, 643, 655, 657, 663, 665, 667, 669, 671, 679, 681,
685, 687, 689, 695, 697, 699, 701, 702, 703, 705, 707, 715, 717, 718, 719, 721, 723, 727,
733, 735, 737, 739, 741, 745, 747, 751, 753, 755, 759, 761, 768, 769, 835, 845, 851, 873,
897, 899, 953, 967, 971, 978, 979, 982, 985, 991, 997, 999, 1005, 1009, 1011, 1013};
maskedchans[7] = {1022, 1020, 764, 642, 638, 636, 514, 510, 508, 386, 258, 256, 129, 128, 127, 16};
maskedchans[11] = {46, 66, 100, 102, 106, 108, 114, 118, 120, 122};
maskedchans[12] = {767, 762, 750, 746, 740, 712, 710, 708, 692, 674, 662, 658,
652, 642, 380, 378, 376, 370, 356, 352, 312, 294, 292};
maskedchans[13] = {644, 668, 670, 688, 694, 696, 700, 704, 710, 716, 720,
724, 732, 738, 740, 742, 744, 754, 762, 765, 767};
maskedchans[15] = {1023, 132, 124};
maskedchans[18] = {1, 131, 253, 385, 387, 451, 509, 641, 719, 763, 765, 1021, 1023};
maskedchans[19] = {1020, 1018, 1012, 1010, 1008, 1000, 996, 982, 980, 978, 967, 890, 838, 836, 772, 766, 765, 759,
751, 747, 743, 739, 735, 727, 723, 719, 715, 711, 707, 683, 675, 671, 667, 663, 659, 655,
651, 647, 643, 640, 636, 587, 514, 513, 512, 511, 509, 388, 378, 254, 146, 126, 124, 122,
114, 110, 108, 106, 104, 102, 100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78,
77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60,
59, 58, 57, 56, 54, 50, 48, 44, 42, 41, 40, 38, 36, 32, 28};
maskedchans[22] = {385, 402, 513, 517, 518, 520, 521, 522, 523, 524, 525, 527, 530, 538,
545, 610, 614, 616, 618, 622, 623, 624, 625, 633, 641, 658, 896, 904};
maskedchans[24] = {993};
return maskedchans;
}
// --- Initialise the walk map ---------------------------------------------
void ReadoutConfigLegacy::InitWalkCoeffs()
{
// Taken from macro/beamtime/mcbm2022/mStsAsicTimeWalk.par
fWalkMap[0x10008002].resize(16);
fWalkMap[0x10008002][0] = {0.000, -21.480, -19.708, -17.967, -17.651, -15.909, -15.389, -14.583,
-13.966, -13.369, -13.106, -12.195, -11.364, -12.010, -10.902, -10.519,
-10.110, -10.532, -10.580, -10.554, -9.888, -8.879, -9.401, -9.211,
-9.737, -9.159, -8.601, -9.285, -8.174, -8.270, -8.109};
fWalkMap[0x10008002][1] = {0.000, -21.743, -20.609, -19.029, -18.440, -16.862, -16.452, -16.539,
-14.877, -14.671, -14.000, -14.077, -13.525, -12.306, -12.468, -11.762,
-11.770, -11.342, -11.024, -11.527, -10.547, -9.970, -10.511, -10.499,
-10.171, -9.883, -10.301, -10.339, -10.163, -10.475, -8.577};
fWalkMap[0x10008002][2] = {0.000, -19.747, -18.177, -17.540, -16.762, -15.920, -13.960, -13.215,
-13.100, -12.171, -11.482, -10.762, -11.761, -10.565, -10.058, -9.910,
-9.587, -10.602, -10.118, -9.467, -8.915, -9.122, -8.782, -9.709,
-7.596, -8.821, -9.881, -8.749, -7.986, -8.095, -8.005};
fWalkMap[0x10008002][3] = {0.000, -23.982, -21.958, -20.610, -19.204, -18.004, -16.654, -16.305,
-15.347, -14.570, -14.488, -13.926, -13.013, -13.224, -11.923, -12.673,
-11.482, -12.125, -11.603, -11.068, -10.460, -10.845, -10.518, -10.707,
-10.348, -10.142, -9.603, -9.667, -10.828, -9.774, -9.815};
fWalkMap[0x10008002][4] = {0.000, -20.488, -19.021, -17.879, -17.333, -15.920, -15.149, -13.776,
-13.002, -13.417, -12.100, -12.573, -11.776, -11.238, -10.861, -9.783,
-10.903, -9.969, -9.311, -9.359, -9.258, -9.644, -9.432, -8.565,
-8.902, -8.599, -8.697, -8.196, -8.568, -9.133, -8.528};
fWalkMap[0x10008002][5] = {0.000, -22.402, -20.985, -20.095, -18.046, -17.665, -15.819, -15.018,
-14.453, -14.255, -13.410, -13.494, -13.235, -13.119, -12.757, -11.516,
-11.333, -11.173, -10.812, -11.279, -10.717, -10.632, -9.953, -10.648,
-9.408, -9.398, -9.080, -9.818, -9.645, -9.137, -8.651};
fWalkMap[0x10008002][6] = {0.000, -21.012, -19.734, -18.170, -17.004, -15.429, -15.450, -13.928,
-12.899, -13.742, -13.061, -11.593, -11.118, -11.449, -11.497, -10.039,
-10.628, -9.922, -9.867, -10.201, -9.493, -9.757, -8.559, -9.691,
-8.708, -9.142, -8.393, -9.494, -9.544, -7.681, -8.458};
fWalkMap[0x10008002][7] = {0.000, -21.044, -19.214, -17.699, -16.168, -14.893, -14.851, -14.574,
-12.931, -12.716, -12.469, -12.403, -11.382, -11.369, -10.484, -10.441,
-9.734, -10.456, -10.786, -10.193, -10.377, -9.169, -8.757, -8.998,
-9.447, -8.861, -9.132, -8.395, -9.056, -8.435, -8.323};
fWalkMap[0x10008002][8] = {0.000, -21.428, -19.789, -17.648, -16.998, -15.681, -15.406, -14.999,
-14.381, -13.701, -12.896, -12.143, -11.989, -12.069, -11.010, -11.236,
-11.138, -10.868, -10.533, -10.279, -10.002, -10.256, -10.336, -9.800,
-8.882, -9.596, -9.462, -9.529, -9.279, -9.318, -8.255};
fWalkMap[0x10008002][9] = {0.000, -18.524, -16.813, -16.148, -14.990, -13.668, -13.126, -12.445,
-12.773, -11.948, -11.772, -11.055, -10.010, -9.828, -9.909, -9.183,
-8.990, -8.975, -9.136, -9.103, -8.524, -8.401, -8.008, -8.166,
-7.961, -7.274, -8.076, -6.999, -6.741, -7.704, -6.664};
fWalkMap[0x10008002][10] = {0.000, -19.418, -16.988, -16.584, -15.242, -14.019, -13.847, -12.906,
-12.511, -12.466, -11.632, -10.918, -10.667, -10.578, -9.910, -9.753,
-9.925, -9.721, -9.487, -9.387, -9.154, -9.189, -8.964, -9.135,
-8.707, -9.376, -8.128, -8.337, -8.587, -7.933, -7.871};
fWalkMap[0x10008002][11] = {0.000, -19.966, -18.094, -16.435, -15.590, -14.703, -14.014, -13.317,
-12.457, -11.983, -12.155, -11.298, -10.774, -10.080, -10.124, -10.345,
-9.200, -9.313, -9.273, -8.960, -8.625, -8.619, -8.212, -8.079,
-8.623, -8.947, -7.460, -7.547, -7.384, -7.367, -7.358};
fWalkMap[0x10008002][12] = {0.000, -20.996, -18.962, -17.656, -16.169, -15.386, -15.072, -14.694,
-13.797, -13.493, -12.375, -12.759, -11.430, -11.601, -10.784, -11.076,
-10.610, -10.067, -10.326, -10.039, -9.941, -10.003, -9.895, -8.738,
-8.955, -9.221, -8.340, -8.585, -9.299, -8.368, -7.676};
fWalkMap[0x10008002][13] = {0.000, -18.354, -16.333, -15.429, -14.656, -13.349, -13.019, -11.814,
-11.845, -11.831, -10.411, -10.050, -10.312, -9.499, -9.501, -9.444,
-9.557, -8.849, -8.481, -8.497, -8.537, -7.977, -7.885, -8.262,
-7.880, -7.484, -7.988, -7.330, -7.129, -7.509, -7.164};
fWalkMap[0x10008002][14] = {0.000, -20.262, -17.870, -17.243, -15.458, -14.803, -14.468, -14.217,
-12.926, -12.998, -12.607, -11.440, -11.169, -10.645, -10.879, -10.236,
-10.027, -9.417, -9.820, -9.607, -9.462, -9.937, -8.982, -9.079,
-8.362, -8.867, -8.220, -8.517, -8.792, -8.487, -7.948};
fWalkMap[0x10008002][15] = {0.000, -23.037, -21.523, -19.992, -18.877, -18.253, -17.887, -16.461,
-15.599, -15.700, -15.188, -13.986, -14.235, -13.200, -13.361, -12.453,
-12.399, -13.039, -12.261, -11.897, -11.387, -11.872, -10.816, -10.737,
-10.647, -10.951, -10.665, -10.864, -10.368, -10.910, -9.127};
fWalkMap[0x10008012].resize(16);
fWalkMap[0x10008012][0] = {-20.039, -20.436, -19.829, -18.299, -17.912, -16.742, -15.998, -16.325,
-15.503, -16.009, -17.123, -14.123, -14.712, -12.637, -12.095, -12.968,
-12.386, -12.383, -13.043, -13.839, -11.927, -12.232, -10.030, -11.499,
-14.111, -11.781, -8.948, -12.398, -10.504, -11.545, -12.052};
fWalkMap[0x10008012][1] = {-20.948, -20.041, -19.772, -17.571, -17.236, -16.790, -14.969, -14.412,
-14.668, -12.748, -13.218, -12.735, -12.470, -12.100, -12.467, -13.251,
-11.988, -12.153, -12.282, -9.525, -12.306, -11.010, -8.260, -14.846,
-11.093, -12.711, -11.892, -9.432, -12.017, -10.703, -11.548};
fWalkMap[0x10008012][2] = {-19.633, -18.041, -18.852, -17.918, -18.733, -18.297, -16.254, -16.685,
-15.557, -15.233, -15.581, -15.101, -14.664, -12.645, -12.705, -12.612,
-12.684, -12.881, -13.448, -13.409, -13.019, -12.069, -13.161, -12.572,
-11.251, -12.002, -11.973, -11.164, -13.350, -14.466, -12.106};
fWalkMap[0x10008012][3] = {-18.174, -18.695, -18.127, -17.377, -17.508, -16.267, -16.429, -16.135,
-13.805, -14.003, -12.998, -13.363, -13.492, -11.625, -13.151, -11.942,
-12.264, -11.480, -12.233, -10.044, -10.767, -13.074, -10.217, -10.910,
-9.820, -10.022, -11.762, -11.067, -13.518, -12.167, -11.951};
fWalkMap[0x10008012][4] = {95.246, -3.245, -143.526, 10.417, -5.469, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 5.208, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 13.401, 0.000, 0.000};
fWalkMap[0x10008012][5] = {0.000, -2.676, -20.972, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, -2.237, 0.000, 0.000,
0.000, 0.000, 0.000, 121.746, -21.695, -23.431, -8.789, -16.456, 51.899};
fWalkMap[0x10008012][6] = {-16.703, -19.425, -19.706, -19.186, -17.989, -17.355, -16.048, -16.165,
-15.570, -15.020, -14.894, -14.181, -13.125, -13.329, -12.939, -13.691,
-12.216, -10.992, -11.093, -10.601, -11.556, -11.179, -10.751, -12.080,
-11.361, -12.609, -10.506, -12.429, -13.105, -13.997, -11.899};
fWalkMap[0x10008012][7] = {-14.629, -20.019, -19.144, -19.007, -18.454, -18.326, -17.827, -16.854,
-16.513, -15.654, -15.548, -15.843, -14.148, -15.240, -13.915, -13.980,
-13.361, -14.420, -14.827, -14.493, -14.296, -14.179, -12.990, -12.035,
-12.635, -14.684, -12.790, -14.811, -14.014, -14.168, -11.991};
fWalkMap[0x10008012][8] = {-14.681, -15.740, -16.490, -15.352, -15.301, -14.360, -15.560, -13.924,
-13.468, -13.821, -14.035, -12.752, -12.128, -12.255, -12.702, -11.690,
-12.673, -12.584, -10.177, -12.558, -11.992, -12.309, -10.729, -12.637,
-11.468, -9.423, -11.942, -9.893, -8.750, -10.686, -9.274};
fWalkMap[0x10008012][9] = {-22.821, -18.847, -17.830, -16.778, -16.573, -16.085, -15.263, -14.615,
-14.240, -13.923, -13.471, -12.791, -13.097, -12.562, -12.419, -10.742,
-12.145, -11.161, -12.108, -13.170, -12.462, -11.217, -10.480, -12.970,
-11.044, -12.352, -11.411, -9.001, -12.621, -10.609, -11.234};
fWalkMap[0x10008012][10] = {-13.838, -18.578, -16.659, -17.461, -16.416, -15.026, -13.866, -13.910,
-13.212, -12.699, -12.282, -12.468, -12.459, -11.400, -12.106, -12.114,
-11.175, -10.476, -11.321, -9.981, -9.980, -7.894, -11.051, -9.621,
-10.953, -10.186, -14.475, -10.367, -13.468, -9.384, -10.363};
fWalkMap[0x10008012][11] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10008012][12] = {-18.322, -19.128, -17.079, -17.207, -16.359, -15.916, -14.889, -14.582,
-14.508, -13.744, -13.309, -13.274, -12.093, -13.075, -12.101, -11.464,
-10.889, -13.082, -12.626, -11.170, -11.577, -8.350, -11.797, -10.511,
-10.238, -10.919, -10.601, -9.858, -8.440, -10.539, -10.506};
fWalkMap[0x10008012][13] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10008012][14] = {-19.029, -20.084, -18.657, -18.059, -16.564, -16.016, -14.984, -14.060,
-14.057, -14.462, -13.871, -13.582, -13.501, -12.897, -11.950, -11.928,
-12.295, -12.940, -13.251, -13.355, -12.034, -10.285, -10.957, -10.998,
-11.428, -12.963, -13.892, -12.658, -12.759, -12.249, -11.259};
fWalkMap[0x10008012][15] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10008402].resize(16);
fWalkMap[0x10008402][0] = {-27.945, -26.612, -23.891, -21.522, -19.987, -18.235, -18.131, -16.549,
-15.779, -15.476, -14.367, -13.804, -13.859, -13.135, -12.501, -12.325,
-11.951, -11.571, -11.647, -11.928, -11.172, -11.125, -10.945, -10.165,
-10.889, -10.520, -10.356, -10.939, -10.268, -11.163, -9.098};
fWalkMap[0x10008402][1] = {-25.587, -23.511, -21.132, -19.719, -18.394, -16.531, -15.756, -14.979,
-14.399, -13.649, -13.079, -13.400, -12.821, -12.151, -12.183, -11.008,
-11.008, -10.927, -10.156, -10.069, -9.652, -10.737, -10.315, -9.567,
-10.024, -9.676, -9.197, -9.086, -10.030, -9.782, -8.380};
fWalkMap[0x10008402][2] = {-26.911, -23.696, -21.359, -19.898, -17.873, -17.088, -16.490, -15.576,
-14.472, -13.364, -13.228, -12.749, -12.862, -12.430, -12.280, -11.337,
-11.253, -10.509, -10.949, -10.767, -10.154, -10.682, -10.052, -9.860,
-9.840, -9.272, -10.035, -8.740, -9.977, -9.900, -8.468};
fWalkMap[0x10008402][3] = {-24.541, -22.080, -20.605, -18.910, -17.200, -16.339, -15.884, -14.730,
-14.429, -12.844, -12.868, -12.274, -12.206, -11.670, -11.906, -10.916,
-10.936, -11.075, -10.841, -10.226, -10.424, -10.229, -9.486, -9.853,
-8.659, -9.084, -8.643, -10.003, -9.002, -8.618, -8.352};
fWalkMap[0x10008402][4] = {-23.579, -21.417, -19.425, -18.139, -16.582, -16.067, -15.101, -13.838,
-13.685, -12.860, -12.072, -12.212, -12.090, -10.886, -10.869, -11.180,
-10.135, -9.966, -10.301, -9.994, -10.252, -9.804, -9.313, -9.304,
-9.738, -9.313, -8.898, -9.431, -8.654, -10.174, -7.680};
fWalkMap[0x10008402][5] = {-25.351, -23.079, -20.481, -19.229, -17.504, -16.815, -16.100, -15.029,
-14.270, -13.392, -13.356, -13.348, -13.131, -12.508, -11.579, -11.184,
-11.123, -11.437, -11.365, -10.362, -10.604, -10.940, -10.363, -9.735,
-10.517, -10.092, -10.200, -10.349, -9.889, -10.070, -8.590};
fWalkMap[0x10008402][6] = {-25.309, -22.618, -20.894, -19.213, -17.909, -16.944, -15.815, -15.028,
-13.818, -13.595, -12.880, -12.966, -11.925, -12.142, -11.777, -10.988,
-10.715, -10.275, -10.392, -10.133, -10.666, -10.142, -10.094, -10.104,
-9.158, -9.921, -9.350, -9.275, -9.588, -8.454, -8.221};
fWalkMap[0x10008402][7] = {-24.357, -21.954, -20.063, -18.729, -16.881, -16.609, -15.350, -13.883,
-14.170, -13.027, -12.363, -11.853, -12.565, -11.876, -11.877, -10.946,
-11.205, -10.976, -10.886, -11.016, -9.691, -9.813, -10.102, -9.574,
-9.483, -9.607, -10.002, -9.523, -9.488, -9.677, -7.969};
fWalkMap[0x10008402][8] = {-23.962, -21.772, -20.269, -18.808, -18.427, -17.418, -16.130, -15.863,
-14.824, -14.335, -13.893, -14.003, -12.912, -12.932, -13.000, -12.566,
-11.816, -11.937, -11.704, -11.135, -10.630, -10.560, -10.383, -10.735,
-10.108, -10.438, -10.604, -9.693, -10.141, -10.009, -8.843};
fWalkMap[0x10008402][9] = {-23.196, -20.869, -19.209, -18.253, -17.206, -15.790, -15.288, -14.294,
-14.237, -13.558, -12.608, -12.497, -12.561, -11.643, -11.835, -11.516,
-11.376, -11.005, -10.579, -10.733, -10.362, -9.773, -9.992, -9.453,
-9.427, -9.467, -9.500, -8.837, -9.104, -9.263, -8.236};
fWalkMap[0x10008402][10] = {-23.303, -21.502, -19.961, -19.263, -18.212, -17.064, -16.680, -15.673,
-15.135, -14.888, -13.935, -14.200, -13.472, -13.378, -13.207, -13.016,
-12.352, -12.375, -11.690, -11.850, -10.764, -10.731, -11.234, -11.043,
-10.751, -10.867, -10.797, -10.902, -9.653, -10.087, -9.407};
fWalkMap[0x10008402][11] = {-20.493, -18.812, -17.562, -17.003, -15.653, -14.516, -14.164, -13.188,
-12.570, -12.617, -12.202, -11.305, -11.100, -11.078, -10.137, -10.465,
-9.550, -9.750, -9.869, -9.649, -9.500, -9.460, -8.625, -8.473,
-8.180, -8.752, -8.437, -8.371, -7.767, -7.794, -6.657};
fWalkMap[0x10008402][12] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10008402][13] = {-24.403, -21.563, -20.964, -19.358, -18.033, -16.936, -16.307, -15.620,
-14.842, -14.024, -14.008, -13.601, -13.374, -13.158, -12.415, -12.284,
-11.923, -11.401, -11.318, -11.577, -10.938, -10.195, -10.692, -9.902,
-9.862, -10.137, -9.885, -9.995, -9.607, -9.802, -7.645};
fWalkMap[0x10008402][14] = {-21.915, -20.839, -19.092, -17.681, -16.717, -16.038, -15.588, -14.772,
-14.051, -14.164, -13.795, -12.749, -12.845, -12.485, -12.612, -12.168,
-11.980, -11.386, -11.840, -11.062, -10.477, -10.701, -10.910, -10.795,
-9.685, -9.871, -10.367, -9.970, -9.917, -10.032, -7.894};
fWalkMap[0x10008402][15] = {-22.590, -22.183, -20.828, -19.812, -18.679, -17.295, -16.913, -16.433,
-15.933, -14.688, -13.980, -13.730, -13.919, -13.210, -12.937, -12.752,
-12.322, -12.716, -12.287, -12.190, -11.995, -11.642, -11.363, -11.080,
-10.794, -10.653, -11.334, -10.928, -10.226, -10.854, -8.173};
fWalkMap[0x10008412].resize(16);
fWalkMap[0x10008412][0] = {-25.632, -23.824, -21.627, -20.929, -19.640, -17.923, -17.779, -16.747,
-17.001, -15.833, -15.191, -14.881, -14.800, -13.846, -13.877, -12.777,
-12.395, -13.083, -12.341, -12.944, -12.514, -12.782, -11.698, -12.250,
-11.411, -10.763, -11.104, -11.087, -11.556, -11.245, -10.224};
fWalkMap[0x10008412][1] = {-25.872, -24.015, -22.804, -22.536, -20.657, -19.765, -19.474, -18.151,
-18.526, -17.087, -16.371, -16.589, -15.924, -15.008, -15.132, -14.329,
-14.035, -13.783, -14.517, -13.604, -13.924, -13.043, -14.171, -12.968,
-13.073, -12.999, -13.052, -12.854, -13.498, -12.236, -12.398};
fWalkMap[0x10008412][2] = {-23.989, -23.132, -21.937, -20.335, -19.698, -17.904, -17.495, -16.464,
-16.774, -15.635, -15.024, -15.008, -13.651, -14.312, -13.166, -13.604,
-12.103, -12.635, -12.810, -12.077, -11.844, -12.485, -10.999, -10.486,
-10.748, -11.048, -11.302, -10.552, -10.737, -11.308, -9.771};
fWalkMap[0x10008412][3] = {-24.946, -23.754, -22.395, -21.119, -19.485, -18.526, -18.763, -17.543,
-16.681, -16.997, -15.436, -14.890, -15.382, -14.981, -13.974, -13.034,
-14.129, -13.125, -12.805, -13.203, -13.290, -12.820, -13.052, -12.196,
-12.869, -12.257, -12.744, -12.423, -12.372, -11.864, -12.332};
fWalkMap[0x10008412][4] = {-24.201, -22.828, -21.204, -20.663, -18.908, -18.763, -16.915, -16.526,
-15.950, -15.927, -15.945, -14.611, -13.847, -13.898, -14.089, -12.792,
-13.687, -12.656, -11.670, -12.900, -12.989, -11.983, -11.317, -11.709,
-11.390, -11.159, -12.222, -10.768, -10.777, -10.104, -9.959};
fWalkMap[0x10008412][5] = {-22.894, -26.077, -24.481, -22.404, -21.163, -20.496, -19.812, -18.371,
-18.638, -17.027, -16.890, -15.802, -15.439, -15.496, -15.274, -14.601,
-14.181, -14.508, -13.935, -13.834, -13.701, -14.132, -12.670, -12.708,
-13.469, -12.311, -12.893, -12.757, -12.989, -11.754, -11.207};
fWalkMap[0x10008412][6] = {-25.387, -23.857, -22.756, -21.149, -20.110, -19.957, -18.907, -18.019,
-17.642, -16.717, -16.748, -15.599, -15.460, -14.343, -14.370, -14.690,
-13.801, -13.204, -13.593, -12.813, -13.134, -13.184, -12.227, -12.059,
-12.511, -11.640, -11.594, -11.940, -11.266, -12.507, -11.484};
fWalkMap[0x10008412][7] = {-24.437, -24.076, -22.174, -20.229, -19.938, -18.562, -17.931, -17.683,
-17.463, -15.813, -16.251, -15.344, -14.779, -14.901, -13.911, -13.810,
-13.406, -12.830, -12.550, -12.945, -12.929, -12.462, -12.698, -12.241,
-12.364, -12.402, -13.118, -12.135, -12.652, -12.859, -12.120};
fWalkMap[0x10008412][8] = {-23.914, -22.666, -20.864, -18.762, -17.997, -17.594, -16.077, -16.000,
-15.427, -14.324, -14.175, -13.533, -13.496, -12.892, -13.039, -12.587,
-12.599, -12.140, -12.016, -11.170, -11.565, -11.099, -11.657, -11.060,
-10.592, -10.329, -10.562, -11.010, -10.404, -10.148, -9.506};
fWalkMap[0x10008412][9] = {-22.400, -19.609, -18.039, -16.454, -15.637, -14.527, -13.775, -13.839,
-12.799, -12.408, -11.750, -11.870, -11.270, -10.634, -10.369, -9.942,
-10.274, -9.064, -9.750, -9.820, -9.658, -8.727, -8.736, -9.763,
-9.056, -8.341, -8.467, -8.423, -8.546, -8.614, -7.140};
fWalkMap[0x10008412][10] = {-23.561, -21.486, -19.264, -18.200, -16.984, -16.418, -15.734, -14.758,
-15.085, -13.839, -13.280, -12.913, -12.768, -12.711, -11.603, -11.131,
-11.929, -11.989, -11.309, -11.130, -10.972, -10.525, -10.138, -11.351,
-10.332, -11.023, -10.257, -9.941, -10.401, -10.232, -9.720};
fWalkMap[0x10008412][11] = {-23.304, -21.499, -19.414, -17.750, -17.137, -16.203, -15.449, -14.484,
-13.564, -13.083, -12.787, -12.545, -12.224, -11.485, -10.780, -11.510,
-10.752, -10.505, -10.704, -9.913, -9.817, -9.729, -10.123, -9.583,
-10.282, -9.552, -8.622, -10.421, -9.202, -8.943, -8.426};
fWalkMap[0x10008412][12] = {-23.098, -21.697, -19.927, -18.242, -17.410, -16.044, -15.568, -14.843,
-15.024, -13.680, -13.298, -12.723, -12.235, -11.836, -12.217, -11.572,
-11.594, -10.729, -11.141, -11.119, -10.280, -10.421, -11.055, -10.252,
-10.701, -9.696, -10.710, -9.611, -9.872, -9.566, -9.405};
fWalkMap[0x10008412][13] = {-21.325, -19.707, -19.358, -17.898, -16.672, -15.647, -15.064, -14.676,
-14.584, -13.567, -12.796, -12.960, -12.792, -12.666, -12.149, -11.924,
-11.433, -11.121, -11.682, -10.426, -10.463, -10.132, -10.272, -10.705,
-9.690, -9.781, -9.303, -9.575, -9.483, -8.806, -9.177};
fWalkMap[0x10008412][14] = {-19.630, -17.887, -16.679, -16.291, -15.400, -14.522, -14.195, -13.590,
-13.162, -12.824, -12.275, -11.475, -11.225, -11.853, -10.751, -10.790,
-10.254, -11.227, -10.216, -10.063, -10.339, -10.014, -9.369, -9.361,
-9.842, -10.237, -9.511, -8.430, -8.809, -8.379, -9.033};
fWalkMap[0x10008412][15] = {-24.723, -23.826, -22.281, -20.596, -19.870, -19.665, -17.920, -17.471,
-17.128, -16.425, -16.283, -15.505, -15.585, -14.597, -13.528, -13.965,
-13.647, -13.645, -13.569, -12.411, -12.493, -13.160, -12.142, -11.323,
-12.919, -11.665, -11.856, -12.628, -11.400, -11.812, -10.707};
fWalkMap[0x10008812].resize(16);
fWalkMap[0x10008812][0] = {-26.299, -25.055, -24.456, -23.926, -21.502, -19.901, -18.940, -19.827,
-18.531, -18.355, -17.777, -16.921, -15.876, -15.380, -16.594, -15.023,
-17.409, -15.899, -14.649, -13.085, -15.048, -14.754, -14.055, -14.009,
-14.844, -12.489, -15.064, -17.001, -16.895, -11.753, -13.207};
fWalkMap[0x10008812][1] = {-8.993, -14.034, -22.830, -22.408, -21.030, -20.974, -19.451, -18.417,
-19.020, -18.056, -17.849, -16.856, -17.215, -16.551, -15.941, -16.126,
-16.015, -16.359, -14.184, -15.513, -15.672, -17.008, -13.577, -15.235,
-13.965, -16.173, -13.816, -17.121, -16.458, -8.523, -12.990};
fWalkMap[0x10008812][2] = {-11.010, -23.665, -22.633, -21.330, -20.294, -19.045, -18.725, -17.060,
-19.119, -17.268, -16.623, -15.810, -15.301, -15.984, -15.350, -14.689,
-14.987, -15.223, -14.899, -13.797, -14.793, -14.794, -12.686, -15.021,
-13.525, -15.059, -15.154, -12.896, -16.112, -11.356, -12.676};
fWalkMap[0x10008812][3] = {-7.887, -6.948, -22.430, -22.476, -20.096, -20.308, -18.597, -18.055,
-17.916, -18.558, -18.398, -17.273, -15.742, -15.804, -16.966, -13.638,
-15.914, -16.876, -16.517, -15.847, -17.464, -14.108, -15.064, -11.793,
-11.991, -15.206, -14.303, -15.014, -17.997, -12.836, -12.880};
fWalkMap[0x10008812][4] = {-26.402, -24.275, -22.422, -22.060, -20.245, -19.799, -17.693, -17.761,
-17.261, -17.328, -15.523, -16.613, -15.719, -13.583, -14.909, -14.504,
-14.865, -14.493, -13.647, -15.001, -13.423, -11.771, -11.519, -12.705,
-13.190, -14.710, -15.173, -13.002, -12.953, -15.639, -12.363};
fWalkMap[0x10008812][5] = {-13.484, -14.000, -16.144, -18.626, -19.399, -18.642, -18.345, -19.107,
-18.316, -19.579, -20.755, -22.096, -19.827, -19.620, -16.897, -14.579,
-15.628, -15.022, -14.140, -15.685, -15.158, -15.106, -14.787, -15.208,
-16.756, -17.253, -15.650, -15.961, -13.141, -13.893, -13.432};
fWalkMap[0x10008812][6] = {-8.922, -14.332, -19.120, -18.810, -18.132, -16.900, -17.334, -16.467,
-15.371, -15.101, -14.485, -13.966, -13.607, -14.916, -13.795, -12.636,
-11.609, -13.287, -11.434, -12.067, -13.219, -12.998, -11.376, -10.404,
-11.222, -11.332, -8.845, -12.975, -12.572, -12.961, -10.213};
fWalkMap[0x10008812][7] = {-12.646, -21.048, -21.783, -21.157, -19.860, -19.287, -18.585, -18.207,
-16.845, -16.585, -17.043, -16.040, -15.359, -15.992, -16.203, -15.681,
-15.789, -14.967, -15.150, -15.901, -13.869, -15.095, -10.730, -12.643,
-13.650, -13.379, -12.708, -14.473, -9.684, -12.572, -12.384};
fWalkMap[0x10008812][8] = {-17.976, -16.692, -17.214, -17.825, -17.525, -16.623, -15.125, -15.217,
-14.669, -14.689, -14.874, -14.708, -14.533, -14.714, -13.005, -11.951,
-12.165, -12.002, -12.762, -11.475, -14.136, -12.103, -13.071, -12.662,
-11.349, -9.320, -13.075, -13.239, -12.818, -12.798, -10.313};
fWalkMap[0x10008812][9] = {-20.590, -17.070, -17.771, -17.834, -17.806, -16.916, -15.880, -14.088,
-14.130, -14.045, -14.258, -14.531, -13.692, -13.761, -13.480, -13.105,
-12.259, -12.593, -11.709, -12.597, -11.073, -14.270, -13.186, -12.155,
-12.071, -12.183, -10.828, -12.297, -12.310, -11.959, -9.963};
fWalkMap[0x10008812][10] = {-20.690, -15.341, -17.249, -17.694, -17.942, -16.178, -17.591, -18.104,
-15.131, -16.122, -17.296, -15.675, -15.234, -13.784, -14.726, -14.218,
-12.999, -14.636, -14.091, -15.158, -17.634, -13.723, -12.171, -12.398,
-13.976, -15.504, -11.012, -14.227, -10.883, -11.828, -11.182};
fWalkMap[0x10008812][11] = {-17.726, -14.792, -17.512, -16.959, -18.127, -17.515, -16.034, -19.375,
-15.779, -14.220, -13.984, -14.972, -14.943, -14.330, -12.309, -13.968,
-12.104, -14.442, -12.065, -10.761, -13.372, -12.755, -11.701, -16.783,
-11.926, -7.952, -11.580, -13.411, -13.697, -9.512, -9.627};
fWalkMap[0x10008812][12] = {-19.424, -17.500, -18.398, -19.204, -18.348, -17.827, -16.555, -15.439,
-15.579, -15.026, -14.719, -13.767, -14.558, -15.370, -15.117, -12.963,
-13.831, -13.722, -13.088, -13.577, -13.219, -11.052, -10.295, -14.765,
-12.913, -14.426, -12.213, -17.811, -11.095, -11.805, -11.776};
fWalkMap[0x10008812][13] = {-17.875, -15.673, -16.302, -18.465, -16.990, -15.901, -14.564, -13.557,
-13.928, -13.591, -14.035, -13.901, -12.344, -12.557, -12.427, -11.478,
-11.928, -12.422, -10.760, -11.311, -10.530, -10.860, -11.508, -12.270,
-11.900, -9.362, -12.184, -10.159, -10.786, -10.571, -8.735};
fWalkMap[0x10008812][14] = {-17.627, -17.694, -18.446, -18.315, -17.805, -17.083, -16.702, -15.726,
-15.663, -14.743, -13.972, -13.872, -13.797, -13.471, -13.064, -13.978,
-13.101, -12.154, -12.487, -13.081, -13.865, -12.556, -11.924, -11.100,
-11.402, -9.292, -11.654, -14.477, -13.649, -14.486, -10.479};
fWalkMap[0x10008812][15] = {-22.496, -33.842, -29.804, -28.092, -25.456, -24.682, -21.656, -22.008,
-21.904, -21.118, -20.444, -20.828, -20.829, -18.313, -18.929, -18.073,
-19.083, -17.958, -18.245, -17.466, -15.108, -19.261, -19.473, -17.752,
-17.791, -16.895, -19.083, -17.953, -16.883, -13.435, -13.886};
fWalkMap[0x10018002].resize(16);
fWalkMap[0x10018002][0] = {0.000, -21.660, -19.775, -18.103, -16.731, -15.884, -15.192, -14.378,
-13.310, -12.910, -12.747, -11.918, -11.702, -11.215, -10.648, -10.141,
-10.028, -9.545, -9.630, -9.066, -9.504, -8.879, -9.351, -8.496,
-8.742, -7.641, -8.422, -8.028, -7.335, -7.739, -7.401};
fWalkMap[0x10018002][1] = {0.000, -21.654, -20.240, -18.331, -17.196, -16.357, -15.819, -15.087,
-14.686, -14.139, -13.961, -12.531, -12.167, -12.508, -11.291, -11.934,
-10.706, -11.065, -10.533, -10.165, -10.569, -10.430, -10.287, -9.504,
-9.418, -9.751, -9.424, -10.128, -9.269, -9.315, -8.398};
fWalkMap[0x10018002][2] = {0.000, -20.952, -19.570, -16.965, -15.919, -15.237, -14.497, -13.751,
-12.276, -12.272, -11.779, -10.956, -10.454, -10.579, -9.523, -9.510,
-9.263, -9.730, -9.457, -9.034, -8.113, -8.139, -8.803, -8.129,
-7.706, -8.460, -6.913, -7.703, -7.519, -7.338, -7.133};
fWalkMap[0x10018002][3] = {0.000, -21.917, -20.024, -18.241, -18.029, -15.879, -15.430, -14.525,
-13.544, -13.429, -12.742, -12.062, -12.124, -11.494, -11.724, -11.500,
-10.821, -10.759, -10.561, -9.777, -9.984, -9.840, -9.629, -9.105,
-9.803, -9.006, -9.491, -8.831, -9.754, -8.812, -8.506};
fWalkMap[0x10018002][4] = {0.000, -23.635, -21.773, -20.430, -19.099, -17.779, -16.258, -16.549,
-14.894, -14.045, -13.309, -13.817, -12.245, -12.637, -12.616, -11.976,
-11.668, -11.126, -11.512, -10.838, -11.070, -10.100, -10.203, -10.520,
-10.101, -9.914, -10.027, -9.624, -9.365, -9.503, -9.179};
fWalkMap[0x10018002][5] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018002][6] = {0.000, -24.983, -22.719, -20.149, -18.579, -17.539, -16.214, -15.829,
-14.731, -14.454, -13.572, -12.893, -12.905, -12.859, -11.759, -11.567,
-11.036, -10.780, -11.296, -10.562, -10.594, -10.783, -10.143, -10.231,
-10.439, -9.608, -9.882, -9.742, -8.468, -9.390, -8.728};
fWalkMap[0x10018002][7] = {0.000, -24.040, -21.659, -19.816, -18.167, -16.600, -15.871, -15.356,
-14.516, -13.532, -13.522, -12.363, -12.742, -12.160, -11.682, -11.024,
-11.420, -11.107, -10.300, -10.169, -10.758, -10.402, -10.082, -9.240,
-9.741, -9.633, -9.690, -9.567, -9.627, -10.138, -9.212};
fWalkMap[0x10018002][8] = {0.000, -21.787, -18.909, -17.757, -17.072, -15.519, -15.019, -14.003,
-14.054, -13.320, -12.793, -12.145, -11.427, -11.385, -11.346, -10.374,
-10.634, -10.332, -9.870, -9.613, -10.125, -9.774, -9.120, -9.441,
-8.762, -9.159, -8.460, -8.989, -8.886, -8.076, -7.714};
fWalkMap[0x10018002][9] = {0.000, -18.419, -16.572, -15.588, -14.690, -13.642, -12.736, -11.975,
-11.871, -11.095, -10.749, -10.232, -9.597, -9.825, -8.680, -8.879,
-8.364, -8.490, -7.757, -7.994, -7.769, -7.535, -7.309, -6.765,
-7.026, -7.289, -7.509, -7.155, -6.812, -7.312, -5.563};
fWalkMap[0x10018002][10] = {0.000, -18.971, -18.071, -16.059, -15.461, -14.426, -13.826, -13.487,
-12.699, -11.893, -11.623, -10.887, -10.720, -10.030, -10.366, -9.998,
-9.795, -8.966, -9.115, -9.350, -8.632, -9.118, -8.213, -8.302,
-8.774, -8.476, -8.336, -8.011, -8.288, -7.720, -7.584};
fWalkMap[0x10018002][11] = {0.000, -18.611, -16.283, -15.160, -14.131, -12.643, -12.187, -12.129,
-11.639, -10.307, -10.017, -9.566, -9.883, -9.500, -8.690, -7.959,
-7.769, -7.727, -8.214, -7.404, -7.729, -7.331, -7.140, -7.291,
-7.358, -7.131, -7.126, -6.593, -6.732, -6.343, -5.762};
fWalkMap[0x10018002][12] = {0.000, -18.774, -17.101, -16.144, -15.341, -14.124, -13.801, -13.401,
-11.863, -12.056, -10.815, -10.718, -10.684, -9.741, -10.443, -9.375,
-9.228, -9.046, -8.799, -9.231, -8.936, -8.061, -8.293, -8.575,
-8.671, -8.114, -8.069, -7.907, -7.343, -8.050, -7.399};
fWalkMap[0x10018002][13] = {0.000, -19.070, -16.737, -15.593, -14.360, -13.686, -13.121, -12.483,
-12.209, -11.580, -10.782, -10.110, -10.422, -9.793, -9.760, -8.995,
-8.819, -9.022, -8.766, -8.985, -8.623, -8.396, -8.366, -8.396,
-7.991, -8.210, -7.097, -7.409, -7.879, -7.683, -6.958};
fWalkMap[0x10018002][14] = {0.000, -19.713, -18.064, -16.776, -15.275, -14.559, -13.403, -13.177,
-13.150, -12.168, -11.514, -11.119, -10.316, -11.107, -10.529, -9.894,
-10.470, -9.446, -8.736, -8.782, -8.694, -8.524, -7.803, -8.056,
-7.927, -8.577, -8.143, -7.806, -7.022, -8.244, -6.740};
fWalkMap[0x10018002][15] = {0.000, -22.000, -20.360, -18.783, -17.711, -17.952, -16.212, -16.175,
-15.208, -14.764, -13.823, -13.805, -12.921, -12.732, -12.614, -12.898,
-11.590, -12.185, -11.250, -11.401, -11.140, -10.996, -11.369, -11.571,
-11.181, -10.433, -10.150, -10.422, -11.067, -10.243, -8.906};
fWalkMap[0x10018012].resize(16);
fWalkMap[0x10018012][0] = {-20.270, -20.657, -19.586, -18.299, -17.702, -16.702, -15.906, -15.771,
-14.790, -14.766, -14.613, -15.057, -13.457, -13.484, -13.738, -14.272,
-14.302, -12.807, -12.047, -12.696, -12.947, -10.320, -13.320, -12.438,
-12.810, -13.469, -10.787, -14.387, -11.760, -15.496, -11.472};
fWalkMap[0x10018012][1] = {-18.980, -21.269, -20.114, -19.436, -17.768, -17.481, -16.481, -16.931,
-15.403, -14.787, -14.671, -15.428, -14.628, -13.541, -13.675, -14.360,
-12.994, -15.226, -13.166, -12.915, -12.697, -13.534, -12.459, -13.719,
-13.532, -13.414, -13.742, -12.855, -12.166, -13.450, -12.727};
fWalkMap[0x10018012][2] = {-16.724, -19.737, -20.297, -18.912, -18.349, -18.003, -17.448, -16.262,
-16.178, -15.435, -14.746, -15.504, -14.838, -14.644, -13.974, -13.370,
-13.917, -13.088, -13.024, -12.222, -12.806, -14.155, -12.163, -12.249,
-12.219, -12.122, -12.974, -13.275, -12.598, -12.616, -13.201};
fWalkMap[0x10018012][3] = {-25.107, -23.026, -19.869, -19.378, -18.607, -17.960, -17.101, -16.683,
-16.356, -14.953, -15.835, -15.535, -14.508, -14.090, -14.884, -15.685,
-14.711, -14.847, -13.260, -14.032, -14.448, -13.583, -13.490, -14.314,
-12.786, -12.920, -14.313, -14.047, -12.915, -15.131, -12.238};
fWalkMap[0x10018012][4] = {-19.071, -20.450, -19.752, -18.140, -17.370, -16.744, -16.619, -16.209,
-15.052, -14.666, -15.119, -13.857, -13.982, -13.727, -13.166, -13.586,
-13.385, -12.976, -11.905, -12.954, -12.377, -13.820, -13.671, -12.948,
-12.785, -13.264, -11.734, -11.108, -13.670, -10.503, -10.850};
fWalkMap[0x10018012][5] = {-21.324, -22.238, -20.425, -19.218, -18.660, -18.132, -18.145, -17.347,
-16.230, -15.855, -15.861, -15.986, -15.251, -14.213, -15.382, -14.936,
-14.546, -14.024, -13.462, -14.171, -13.219, -13.283, -12.549, -13.078,
-13.638, -13.534, -13.841, -15.653, -12.440, -14.374, -13.484};
fWalkMap[0x10018012][6] = {-18.341, -19.864, -20.352, -17.993, -17.794, -16.958, -16.934, -15.658,
-15.558, -15.385, -14.686, -14.244, -13.849, -13.804, -12.786, -13.315,
-12.838, -11.945, -13.042, -12.187, -13.704, -11.297, -11.985, -13.667,
-11.775, -11.527, -11.767, -12.317, -11.106, -10.396, -11.495};
fWalkMap[0x10018012][7] = {-19.192, -18.490, -18.049, -17.647, -17.407, -16.653, -16.616, -15.750,
-15.308, -15.103, -14.763, -14.365, -14.302, -13.661, -13.158, -14.416,
-13.044, -13.708, -12.984, -13.083, -14.006, -12.156, -11.994, -11.202,
-12.542, -12.986, -11.958, -14.733, -12.518, -11.300, -12.148};
fWalkMap[0x10018012][8] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018012][9] = {-11.403, -9.058, -16.803, -17.597, -19.422, -17.552, -12.913, -15.916,
-12.986, -13.151, -11.673, -13.217, -15.118, -15.350, -14.873, -245.991,
-14.829, -8.128, -17.343, -11.575, -10.761, -12.167, -6.179, 137.919,
-16.280, -10.018, -22.084, -13.343, -1.786, 138.838, -11.736};
fWalkMap[0x10018012][10] = {-20.058, -18.456, -19.924, -18.176, -17.515, -16.653, -16.895, -16.213,
-15.766, -14.815, -14.217, -14.192, -14.374, -13.329, -13.520, -12.374,
-13.456, -13.360, -12.600, -12.281, -12.862, -12.766, -13.665, -11.551,
-12.678, -11.890, -11.358, -11.784, -13.193, -12.328, -11.931};
fWalkMap[0x10018012][11] = {-16.089, -18.228, -18.164, -17.882, -16.580, -16.069, -15.577, -15.147,
-15.079, -14.001, -13.815, -14.470, -13.707, -14.452, -13.212, -12.880,
-12.953, -12.267, -11.484, -12.248, -11.532, -12.331, -11.189, -11.091,
-10.558, -13.200, -11.433, -10.977, -10.556, -10.420, -10.644};
fWalkMap[0x10018012][12] = {-18.504, -19.561, -20.115, -18.692, -17.858, -17.892, -17.267, -16.843,
-16.148, -15.303, -15.187, -14.959, -14.320, -13.834, -14.385, -14.401,
-14.320, -13.640, -13.631, -12.817, -13.000, -12.966, -12.857, -13.277,
-12.791, -12.567, -12.844, -12.041, -11.587, -12.847, -11.604};
fWalkMap[0x10018012][13] = {-17.476, -16.798, -18.027, -16.869, -16.350, -15.392, -15.268, -14.062,
-13.744, -14.926, -12.959, -13.420, -12.530, -13.028, -13.059, -12.376,
-11.799, -10.709, -10.859, -11.993, -12.092, -10.273, -12.402, -12.292,
-10.510, -12.665, -10.717, -9.342, -10.872, -12.770, -9.289};
fWalkMap[0x10018012][14] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018012][15] = {-20.088, -23.065, -21.161, -20.224, -20.686, -19.500, -18.454, -17.522,
-17.351, -16.876, -15.990, -15.796, -16.307, -15.347, -14.718, -15.914,
-15.041, -14.580, -13.987, -13.833, -13.438, -14.331, -16.313, -14.704,
-12.888, -13.704, -14.063, -13.822, -13.695, -12.823, -13.055};
fWalkMap[0x10018402].resize(16);
fWalkMap[0x10018402][0] = {-25.746, -24.950, -22.429, -20.818, -19.029, -18.653, -17.722, -15.957,
-15.026, -15.480, -14.548, -13.683, -12.625, -12.232, -12.752, -11.735,
-11.640, -11.915, -11.233, -10.780, -10.917, -11.542, -10.380, -10.252,
-11.081, -10.158, -10.058, -10.135, -9.707, -9.418, -8.498};
fWalkMap[0x10018402][1] = {-24.798, -23.730, -21.830, -20.444, -19.212, -17.760, -17.165, -15.607,
-16.047, -14.727, -14.045, -13.179, -13.506, -13.019, -12.653, -12.102,
-11.757, -10.855, -10.847, -10.675, -10.333, -10.272, -9.892, -10.967,
-10.551, -9.491, -9.722, -10.138, -8.717, -9.491, -8.584};
fWalkMap[0x10018402][2] = {-24.978, -22.980, -20.652, -18.752, -17.445, -16.247, -15.471, -15.000,
-14.223, -13.017, -12.818, -12.147, -11.949, -11.147, -11.263, -10.909,
-10.521, -11.070, -10.042, -10.635, -10.497, -10.080, -9.486, -9.578,
-10.037, -9.480, -9.489, -9.440, -9.399, -8.517, -7.629};
fWalkMap[0x10018402][3] = {-26.413, -25.591, -22.821, -21.251, -19.676, -18.632, -17.432, -16.416,
-15.588, -15.880, -14.561, -14.318, -13.791, -13.557, -12.653, -12.914,
-13.091, -12.309, -12.040, -11.561, -11.335, -10.861, -11.025, -11.079,
-11.157, -10.674, -10.968, -10.482, -10.499, -9.618, -9.648};
fWalkMap[0x10018402][4] = {-23.572, -21.694, -19.986, -18.471, -17.390, -16.185, -15.218, -14.478,
-13.641, -13.431, -12.921, -11.718, -11.545, -11.655, -10.756, -11.082,
-10.860, -10.596, -10.005, -9.197, -9.639, -9.679, -9.002, -8.972,
-9.008, -8.760, -8.527, -8.913, -8.851, -8.838, -8.149};
fWalkMap[0x10018402][5] = {-24.187, -26.213, -24.248, -22.798, -21.323, -19.817, -19.162, -18.531,
-17.231, -16.050, -16.462, -15.119, -15.224, -14.984, -13.801, -14.197,
-13.218, -13.027, -11.920, -12.729, -12.693, -12.183, -11.980, -11.559,
-11.492, -11.882, -11.290, -11.300, -11.415, -10.722, -10.131};
fWalkMap[0x10018402][6] = {-23.300, -21.451, -19.278, -18.778, -16.746, -16.017, -15.284, -13.765,
-13.347, -12.703, -12.094, -12.305, -11.031, -11.353, -10.484, -10.104,
-10.242, -10.286, -9.631, -9.297, -9.349, -9.016, -8.641, -8.847,
-8.393, -7.913, -8.765, -8.746, -8.152, -8.587, -7.127};
fWalkMap[0x10018402][7] = {-28.373, -28.135, -26.106, -24.698, -23.132, -22.003, -20.670, -20.462,
-19.347, -18.463, -17.016, -17.358, -16.382, -15.939, -15.620, -15.097,
-14.390, -14.621, -13.996, -13.025, -13.098, -13.655, -13.099, -13.052,
-12.936, -11.808, -12.711, -11.943, -12.156, -12.030, -10.726};
fWalkMap[0x10018402][8] = {-21.868, -20.113, -18.095, -16.810, -15.926, -15.256, -14.216, -13.426,
-13.882, -12.838, -12.211, -11.454, -10.990, -10.669, -10.881, -10.041,
-10.345, -10.226, -9.539, -10.019, -9.543, -9.727, -9.285, -9.221,
-8.930, -8.673, -8.566, -8.107, -8.649, -8.005, -6.728};
fWalkMap[0x10018402][9] = {-21.116, -19.133, -16.954, -16.773, -15.771, -14.691, -14.093, -12.818,
-13.042, -11.987, -11.702, -11.692, -10.634, -11.096, -10.850, -10.013,
-10.218, -9.942, -9.586, -9.828, -8.856, -8.536, -9.079, -8.019,
-8.300, -8.404, -8.144, -8.414, -8.281, -8.433, -7.159};
fWalkMap[0x10018402][10] = {-22.041, -19.908, -18.893, -17.789, -16.805, -16.216, -15.399, -14.906,
-14.101, -13.514, -13.381, -12.624, -12.687, -12.106, -11.746, -11.833,
-11.699, -10.753, -11.255, -10.418, -10.548, -10.330, -10.112, -10.309,
-10.422, -10.321, -9.951, -10.038, -8.968, -9.884, -8.232};
fWalkMap[0x10018402][11] = {-22.251, -19.557, -18.425, -17.452, -15.798, -15.465, -13.845, -13.659,
-12.976, -12.217, -12.269, -11.539, -11.287, -11.118, -10.984, -10.642,
-9.756, -9.605, -9.748, -9.313, -9.198, -8.709, -8.640, -8.253,
-8.325, -7.477, -8.358, -7.513, -8.414, -7.996, -6.988};
fWalkMap[0x10018402][12] = {-23.358, -21.113, -19.866, -18.896, -18.080, -16.871, -15.562, -15.125,
-14.442, -13.904, -13.820, -13.234, -13.055, -12.381, -11.848, -11.654,
-11.520, -11.329, -10.693, -10.864, -10.457, -9.782, -10.542, -11.070,
-10.699, -10.069, -9.906, -10.021, -9.871, -9.089, -8.533};
fWalkMap[0x10018402][13] = {-20.267, -18.446, -16.338, -16.113, -14.785, -14.330, -12.783, -12.481,
-11.800, -11.746, -10.997, -10.783, -10.415, -10.559, -10.327, -9.793,
-9.942, -9.431, -9.533, -8.918, -8.875, -8.584, -8.652, -7.823,
-8.505, -8.331, -8.134, -7.904, -8.177, -8.055, -6.451};
fWalkMap[0x10018402][14] = {-22.270, -20.970, -19.810, -17.855, -17.415, -16.487, -15.963, -15.207,
-14.160, -13.886, -13.842, -13.177, -12.953, -12.810, -11.763, -12.088,
-12.158, -11.666, -10.678, -10.961, -10.958, -9.892, -10.403, -10.465,
-9.797, -9.856, -9.664, -8.612, -9.905, -9.847, -7.760};
fWalkMap[0x10018402][15] = {-23.442, -22.479, -20.656, -19.616, -18.534, -18.362, -17.718, -16.058,
-15.060, -14.591, -14.323, -13.759, -13.582, -13.547, -12.386, -13.222,
-12.045, -11.992, -11.651, -11.814, -12.227, -10.479, -10.841, -10.450,
-10.944, -9.740, -9.623, -10.119, -9.000, -9.886, -8.524};
fWalkMap[0x10018412].resize(16);
fWalkMap[0x10018412][0] = {-20.261, -21.514, -20.252, -19.363, -17.724, -16.948, -16.995, -15.504,
-15.024, -13.975, -14.195, -13.265, -13.240, -12.596, -12.401, -12.833,
-11.317, -12.462, -11.648, -10.443, -11.361, -10.980, -10.113, -10.347,
-10.182, -11.093, -11.042, -9.502, -9.396, -8.958, -9.275};
fWalkMap[0x10018412][1] = {-21.313, -20.582, -19.416, -18.464, -18.726, -17.348, -17.698, -16.461,
-15.551, -15.254, -14.835, -14.778, -14.010, -13.114, -12.577, -13.489,
-12.476, -13.445, -11.649, -11.408, -11.594, -11.611, -11.722, -10.840,
-12.570, -11.619, -11.817, -10.967, -10.711, -11.234, -10.729};
fWalkMap[0x10018412][2] = {-21.101, -20.316, -19.250, -18.257, -16.960, -17.159, -15.650, -14.635,
-14.902, -14.230, -13.384, -12.501, -12.395, -11.809, -11.612, -11.716,
-10.897, -11.623, -11.937, -11.154, -10.700, -10.953, -10.102, -9.537,
-9.752, -10.012, -10.021, -10.045, -9.878, -11.094, -8.723};
fWalkMap[0x10018412][3] = {-24.157, -22.491, -21.012, -20.197, -19.810, -18.258, -17.000, -17.012,
-17.165, -16.496, -15.073, -15.599, -15.152, -14.465, -14.077, -14.055,
-13.316, -13.461, -13.603, -12.847, -13.351, -12.074, -11.873, -11.551,
-12.418, -11.178, -10.071, -11.805, -11.497, -12.038, -10.644};
fWalkMap[0x10018412][4] = {-21.451, -21.148, -19.588, -17.387, -16.671, -17.004, -15.500, -14.916,
-15.143, -14.226, -14.475, -13.393, -12.728, -13.097, -11.908, -11.844,
-12.020, -10.948, -11.684, -11.515, -9.342, -11.032, -9.422, -10.088,
-9.069, -10.224, -9.820, -9.553, -9.986, -9.023, -8.524};
fWalkMap[0x10018412][5] = {-22.718, -22.264, -21.389, -19.798, -19.222, -19.144, -18.011, -17.835,
-16.708, -17.224, -15.436, -16.069, -15.868, -14.771, -13.797, -14.794,
-13.463, -14.066, -13.136, -13.174, -13.431, -12.066, -13.271, -12.588,
-11.910, -11.729, -11.240, -12.287, -12.521, -12.683, -11.165};
fWalkMap[0x10018412][6] = {-23.401, -22.056, -20.676, -19.700, -18.697, -18.344, -17.036, -16.949,
-16.052, -15.350, -14.944, -14.978, -14.384, -13.655, -12.996, -13.387,
-12.431, -12.869, -11.949, -11.996, -11.426, -11.771, -11.809, -11.052,
-12.075, -11.567, -10.658, -12.116, -13.318, -11.154, -11.277};
fWalkMap[0x10018412][7] = {-22.112, -21.901, -19.578, -18.715, -18.763, -17.925, -16.888, -16.067,
-15.040, -14.672, -14.108, -14.346, -13.303, -14.563, -13.665, -12.122,
-11.874, -13.241, -11.841, -12.354, -11.533, -13.070, -10.954, -10.673,
-11.725, -10.943, -10.573, -11.457, -11.382, -11.215, -11.226};
fWalkMap[0x10018412][8] = {-20.850, -20.243, -18.521, -18.027, -17.233, -16.486, -15.420, -15.284,
-14.144, -13.949, -12.872, -13.104, -13.105, -11.768, -11.728, -11.391,
-11.521, -11.893, -11.050, -11.024, -9.735, -10.200, -9.894, -11.196,
-10.223, -10.072, -10.165, -10.302, -9.594, -9.815, -8.664};
fWalkMap[0x10018412][9] = {-21.096, -19.740, -18.251, -17.003, -15.750, -15.451, -14.876, -13.839,
-13.851, -13.141, -13.123, -11.592, -11.327, -10.867, -11.160, -11.241,
-9.880, -9.972, -10.035, -10.182, -9.537, -9.565, -8.722, -9.959,
-8.969, -9.863, -9.440, -10.071, -8.131, -8.924, -8.097};
fWalkMap[0x10018412][10] = {-21.004, -21.082, -20.426, -19.198, -18.092, -16.900, -16.385, -16.087,
-14.913, -14.555, -14.526, -14.021, -14.009, -13.188, -12.737, -13.001,
-11.731, -11.530, -11.404, -12.012, -10.661, -11.269, -10.822, -10.895,
-10.725, -9.988, -10.680, -10.717, -10.769, -10.828, -9.546};
fWalkMap[0x10018412][11] = {-22.065, -20.409, -19.190, -18.181, -16.662, -15.927, -15.211, -15.322,
-14.996, -13.448, -12.790, -12.485, -12.155, -11.603, -12.749, -12.238,
-11.099, -10.818, -10.384, -11.288, -10.091, -11.496, -9.989, -10.334,
-10.896, -10.533, -9.750, -9.000, -8.715, -8.848, -8.480};
fWalkMap[0x10018412][12] = {-21.132, -20.556, -19.009, -17.629, -16.809, -16.695, -15.518, -15.214,
-14.547, -14.698, -13.381, -13.333, -12.860, -12.528, -12.314, -12.172,
-12.221, -11.276, -11.706, -11.798, -10.441, -10.913, -9.701, -10.050,
-10.431, -9.899, -10.534, -9.663, -10.628, -9.302, -9.337};
fWalkMap[0x10018412][13] = {-23.282, -22.180, -20.779, -19.177, -18.297, -17.636, -16.573, -16.854,
-15.440, -15.010, -14.516, -13.763, -13.105, -12.969, -11.991, -12.194,
-11.757, -11.937, -11.099, -11.852, -11.216, -10.689, -10.466, -9.766,
-9.639, -10.441, -10.742, -9.410, -9.873, -9.802, -9.365};
fWalkMap[0x10018412][14] = {-24.807, -23.514, -22.187, -21.194, -20.016, -20.186, -19.289, -17.947,
-18.585, -18.031, -16.547, -16.933, -15.375, -15.021, -14.692, -14.288,
-15.176, -13.655, -13.497, -13.471, -13.287, -13.305, -13.725, -13.603,
-13.833, -12.074, -13.311, -12.985, -11.485, -13.159, -11.468};
fWalkMap[0x10018412][15] = {-23.598, -23.762, -22.381, -21.097, -21.225, -19.964, -19.142, -19.502,
-17.441, -17.108, -16.349, -16.458, -15.905, -16.074, -15.781, -15.395,
-14.847, -14.129, -14.228, -14.408, -13.945, -13.484, -13.362, -14.028,
-13.043, -13.126, -12.757, -13.355, -12.424, -11.576, -10.923};
fWalkMap[0x10018812].resize(16);
fWalkMap[0x10018812][0] = {-32.687, -35.651, -33.545, -29.873, -28.218, -27.160, -26.309, -24.681,
-23.110, -23.628, -22.114, -22.186, -22.082, -21.867, -21.055, -20.158,
-22.196, -19.087, -19.341, -21.192, -17.817, -20.565, -19.767, -15.746,
-18.586, -17.656, -18.427, -3.205, -13.191, -13.301, -15.870};
fWalkMap[0x10018812][1] = {-28.854, -33.363, -34.287, -32.420, -30.791, -28.843, -27.700, -25.562,
-25.546, -24.758, -24.129, -24.518, -24.304, -22.359, -22.979, -22.329,
-21.747, -20.983, -21.716, -20.802, -19.792, -20.405, -21.268, -19.667,
-19.666, -19.861, -20.078, -18.933, -15.949, -18.627, -16.822};
fWalkMap[0x10018812][2] = {-30.882, -34.394, -33.750, -30.347, -28.064, -26.252, -24.667, -23.664,
-22.314, -21.862, -22.603, -22.216, -21.966, -20.999, -20.330, -19.103,
-20.001, -18.669, -20.102, -20.037, -18.548, -18.875, -18.096, -20.107,
-18.896, -17.122, -19.744, -15.868, -19.349, -17.036, -14.635};
fWalkMap[0x10018812][3] = {-30.922, -34.783, -31.605, -29.868, -28.694, -26.554, -24.715, -25.058,
-24.398, -23.009, -23.384, -22.620, -21.226, -21.593, -20.651, -21.575,
-21.515, -20.011, -18.992, -18.992, -20.977, -19.526, -21.117, -21.987,
-19.153, -19.755, -18.170, -20.258, -16.078, -12.892, -17.518};
fWalkMap[0x10018812][4] = {-30.150, -33.273, -33.260, -30.547, -27.775, -26.005, -23.799, -24.352,
-23.233, -23.027, -20.876, -22.523, -20.200, -20.853, -20.555, -21.547,
-21.605, -20.584, -18.721, -20.212, -19.003, -16.462, -19.178, -19.087,
-19.193, -14.303, -16.208, -19.726, -17.426, -15.974, -14.382};
fWalkMap[0x10018812][5] = {-32.336, -32.334, -28.890, -26.723, -26.013, -26.725, -24.017, -23.500,
-22.997, -21.347, -22.801, -22.636, -21.774, -19.771, -22.511, -19.991,
-20.307, -20.232, -19.098, -19.026, -18.651, -18.004, -21.268, -20.344,
-18.037, -18.493, -16.246, -29.991, -20.756, -20.135, -16.308};
fWalkMap[0x10018812][6] = {-31.217, -29.454, -26.271, -21.963, -23.550, -24.152, -23.189, -22.118,
-22.682, -21.018, -20.525, -19.648, -18.670, -17.701, -16.041, -19.594,
-18.436, -18.090, -17.073, -17.689, -17.319, -19.779, -14.927, -18.129,
-19.224, -19.208, -16.693, -16.759, -16.956, -16.138, -16.074};
fWalkMap[0x10018812][7] = {-30.604, -33.495, -32.754, -30.252, -28.791, -28.097, -25.065, -25.770,
-23.832, -24.523, -22.298, -22.321, -22.645, -22.848, -20.997, -20.833,
-19.955, -18.505, -19.828, -21.233, -21.847, -59.381, -20.193, -16.347,
-20.005, -22.109, -19.569, -17.879, -19.072, -19.205, -15.653};
fWalkMap[0x10018812][8] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][9] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][10] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][11] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][12] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][13] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][14] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10018812][15] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10028812].resize(16);
fWalkMap[0x10028812][0] = {-22.146, -21.491, -20.718, -19.982, -18.355, -18.181, -17.901, -16.336,
-16.010, -15.827, -16.532, -15.732, -14.147, -12.862, -14.379, -14.038,
-12.934, -13.926, -12.929, -12.538, -12.804, -13.721, -11.510, -13.085,
-11.996, -12.610, -13.200, -11.349, -12.951, -11.471, -10.508};
fWalkMap[0x10028812][1] = {-18.926, -19.713, -20.138, -18.488, -17.826, -16.507, -16.123, -15.829,
-15.227, -14.745, -14.412, -13.786, -13.332, -12.808, -12.827, -12.633,
-12.118, -12.823, -11.986, -12.202, -11.829, -11.205, -11.293, -11.916,
-10.625, -10.038, -12.997, -11.515, -9.899, -9.572, -10.157};
fWalkMap[0x10028812][2] = {-20.236, -20.986, -20.218, -19.223, -17.420, -17.395, -16.044, -14.958,
-15.394, -14.253, -14.758, -13.488, -13.143, -13.177, -11.984, -13.351,
-11.254, -11.857, -12.683, -11.566, -12.358, -12.609, -11.158, -11.653,
-12.018, -12.280, -11.143, -12.065, -10.249, -8.991, -10.404};
fWalkMap[0x10028812][3] = {-17.998, -19.511, -19.027, -18.324, -17.529, -17.266, -15.748, -14.503,
-15.142, -14.718, -14.056, -14.110, -13.224, -13.124, -11.726, -12.597,
-11.843, -11.797, -12.112, -12.771, -12.261, -12.951, -11.336, -11.966,
-9.945, -11.878, -11.445, -8.964, -10.962, -10.443, -10.888};
fWalkMap[0x10028812][4] = {-21.702, -21.985, -20.420, -18.556, -17.590, -17.086, -16.080, -15.883,
-15.446, -14.775, -13.812, -13.075, -13.767, -13.054, -11.967, -11.553,
-12.629, -12.793, -11.729, -12.454, -11.843, -11.235, -11.764, -9.396,
-10.645, -9.925, -11.211, -11.385, -10.194, -11.689, -9.632};
fWalkMap[0x10028812][5] = {-19.181, -19.495, -18.630, -18.767, -18.029, -17.447, -16.722, -16.298,
-15.565, -14.342, -14.089, -13.541, -13.417, -13.228, -13.958, -12.911,
-12.210, -11.624, -11.990, -12.134, -11.449, -11.922, -10.204, -11.455,
-11.824, -11.460, -11.516, -10.398, -12.035, -9.054, -10.484};
fWalkMap[0x10028812][6] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000};
fWalkMap[0x10028812][7] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, -3.137};
fWalkMap[0x10028812][8] = {-21.281, -20.301, -19.172, -17.269, -16.504, -15.594, -14.668, -14.519,
-13.075, -13.591, -13.887, -12.085, -11.833, -12.162, -11.901, -11.623,
-11.005, -10.490, -10.424, -10.335, -10.075, -10.438, -9.436, -9.854,
-10.709, -9.182, -9.962, -7.641, -9.929, -9.975, -8.299};
fWalkMap[0x10028812][9] = {-20.570, -19.467, -18.364, -17.225, -16.221, -15.252, -14.865, -13.779,
-13.596, -13.911, -12.938, -12.225, -12.326, -10.841, -11.249, -10.890,
-11.268, -10.248, -10.352, -10.299, -9.565, -9.824, -9.619, -9.237,
-8.739, -9.400, -10.243, -8.981, -8.745, -9.332, -7.996};
fWalkMap[0x10028812][10] = {-20.067, -19.007, -17.569, -16.603, -15.852, -15.847, -14.206, -13.871,
-12.987, -13.547, -12.500, -13.236, -13.131, -12.095, -12.230, -11.353,
-11.762, -10.252, -10.320, -10.976, -8.935, -10.998, -10.559, -10.118,
-9.456, -9.504, -10.218, -10.013, -10.194, -8.791, -8.737};
fWalkMap[0x10028812][11] = {-20.435, -20.236, -19.264, -17.735, -16.351, -15.803, -15.065, -13.780,
-14.106, -12.956, -13.009, -12.277, -13.021, -11.388, -11.227, -10.592,
-11.039, -10.248, -10.288, -10.565, -10.800, -9.294, -9.637, -10.270,
-8.310, -9.822, -9.717, -7.975, -9.227, -9.324, -8.250};
fWalkMap[0x10028812][12] = {-20.152, -18.506, -17.657, -15.997, -14.932, -14.359, -13.643, -12.939,
-13.317, -12.742, -12.536, -11.330, -11.541, -11.060, -10.712, -10.571,
-9.740, -10.453, -9.780, -9.844, -9.338, -10.098, -10.224, -10.372,
-8.322, -9.541, -7.653, -9.260, -9.287, -8.589, -7.989};
fWalkMap[0x10028812][13] = {-16.766, -15.914, -15.096, -13.950, -13.403, -12.397, -12.688, -12.021,
-11.335, -10.703, -11.086, -10.230, -9.369, -9.817, -10.181, -9.153,
-9.652, -8.258, -7.927, -7.995, -8.619, -7.303, -7.945, -8.140,
-9.079, -7.542, -7.661, -6.860, -6.890, -7.387, -6.795};
fWalkMap[0x10028812][14] = {-18.267, -17.148, -16.649, -16.261, -15.162, -15.298, -13.519, -13.081,
-13.453, -13.090, -12.040, -12.362, -11.937, -12.134, -12.139, -11.317,
-10.510, -11.323, -10.320, -10.330, -9.979, -10.195, -11.111, -10.370,
-9.983, -9.688, -9.093, -10.372, -8.058, -8.215, -7.096};
fWalkMap[0x10028812][15] = {-19.208, -20.245, -18.743, -17.802, -17.417, -17.174, -16.585, -16.215,
-14.643, -13.766, -14.051, -13.707, -13.451, -13.194, -11.668, -12.076,
-13.630, -12.000, -12.407, -12.523, -12.589, -12.707, -11.716, -11.736,
-10.714, -11.535, -11.360, -9.831, -9.665, -10.627, -9.878};
}
} // namespace cbm::algo::sts