ref: f9123a09ec984317770daf59ffc342409ba47c2d
parent: 95112aa96abb49f3cd58750e36897236f834e4b7
author: Olav Sørensen <olav.sorensen@live.no>
date: Fri Aug 28 15:44:04 EDT 2020
Pushed v1.31 code - The audio channel mixer is floating-point based now, for a theoretical precision improvement - Windows: The 32-bit version now has the same mixer as the 64-bit version (e.g. you can use >48kHz rates) - Fixed an issue where the channel panning could overflow if pan was close to 255 ($80) and you had a panning envelope going upwards - Fixed another issue with dithering in 16-bit audio output mode (d'oh) - Dithering is now always enabled for 16-bit audio output mode, and the "dithering" checkbox has been removed from the config screen - Disk op.: When listing modules, only list .wav files if "Save as:" is set to "WAV" - Fixed a misplaced pixel on the "Usable" mouse pointer type graphics =) - Code cleanup (more sensible variable names in the audio mixer)
--- a/src/ft2_about.c
+++ b/src/ft2_about.c
@@ -34,7 +34,6 @@
} matrix_t;
static const uint8_t starColConv[24] = { 2,2,2,2,2,2,2,2, 2,2,2,1,1,1,3,3, 3,3,3,3,3,3,3,3 };
-static const int16_t *sin32767 = sinusTables, *cos32767 = &sinusTables[256];
static int16_t hastighet;
static int32_t lastStarScreenPos[NUM_STARS];
static uint32_t randSeed;
@@ -60,26 +59,27 @@
static void fixaMatris(rotate_t a, matrix_t *mat)
{
- int16_t sa, sb, sc, ca, cb, cc;
+ int32_t sa, sb, sc, ca, cb, cc;
- sa = sin32767[a.x >> 6];
- ca = cos32767[a.x >> 6];
- sb = sin32767[a.y >> 6];
- cb = cos32767[a.y >> 6];
- sc = sin32767[a.z >> 6];
- cc = cos32767[a.z >> 6];
+ // original code used a cos/sin table, but this only runs once per frame, no need...
+ sa = (int32_t)round(32767.0 * sin(a.x * (2.0 * M_PI / 65536.0)));
+ ca = (int32_t)round(32767.0 * cos(a.x * (2.0 * M_PI / 65536.0)));
+ sb = (int32_t)round(32767.0 * sin(a.y * (2.0 * M_PI / 65536.0)));
+ cb = (int32_t)round(32767.0 * cos(a.y * (2.0 * M_PI / 65536.0)));
+ sc = (int32_t)round(32767.0 * sin(a.z * (2.0 * M_PI / 65536.0)));
+ cc = (int32_t)round(32767.0 * cos(a.z * (2.0 * M_PI / 65536.0)));
- mat->x.x = ((ca * cc) >> 16) + ((sc * ((sa * sb) >> 16)) >> (16-1));
- mat->y.x = (sa * cb) >> 16;
- mat->z.x = ((cc * ((sa * sb) >> 16)) >> (16-1)) - ((ca * sc) >> 16);
+ mat->x.x = (int16_t)(((ca * cc) >> 16) + ((sc * ((sa * sb) >> 16)) >> (16-1)));
+ mat->y.x = (int16_t)((sa * cb) >> 16);
+ mat->z.x = (int16_t)(((cc * ((sa * sb) >> 16)) >> (16-1)) - ((ca * sc) >> 16));
- mat->x.y = ((sc * ((ca * sb) >> 16)) >> (16-1)) - ((sa * cc) >> 16);
- mat->y.y = (ca * cb) >> 16;
- mat->z.y = ((sa * sc) >> 16) + ((cc * ((ca * sb) >> 16)) >> (16-1));
+ mat->x.y = (int16_t)(((sc * ((ca * sb) >> 16)) >> (16-1)) - ((sa * cc) >> 16));
+ mat->y.y = (int16_t)((ca * cb) >> 16);
+ mat->z.y = (int16_t)(((sa * sc) >> 16) + ((cc * ((ca * sb) >> 16)) >> (16-1)));
- mat->x.z = (cb * sc) >> 16;
- mat->y.z = 0 - (sb >> 1);
- mat->z.z = (cb * cc) >> 16;
+ mat->x.z = (int16_t)((cb * sc) >> 16);
+ mat->y.z = (int16_t)(0 - (sb >> 1));
+ mat->z.z = (int16_t)((cb * cc) >> 16);
}
static inline int32_t sqr(int32_t x)
@@ -144,11 +144,15 @@
{
r = (int32_t)round(sqrt(random32(500) * 500));
w = random32(3000);
- h = cos32767[(((w * 8) + r) / 16) & 1023] / 4;
+ ww = ((w * 8) + r) / 16.0;
- starcrd[i].z = (int16_t)((cos32767[w & 1023] * (w + r)) / 3500);
- starcrd[i].y = (int16_t)((sin32767[w & 1023] * (w + r)) / 3500);
- starcrd[i].x = (int16_t)((h * r) / 500);
+ const int32_t z = (int32_t)round(32767.0 * cos(w * (2.0 * M_PI / 1024.0)));
+ const int32_t y = (int32_t)round(32767.0 * sin(w * (2.0 * M_PI / 1024.0)));
+ const int32_t x = (int32_t)round(32767.0 * cos(ww * (2.0 * M_PI / 1024.0))) / 4;
+
+ starcrd[i].z = (int16_t)((z * (w + r)) / 3500);
+ starcrd[i].y = (int16_t)((y * (w + r)) / 3500);
+ starcrd[i].x = (int16_t)((x * r) / 500);
}
}
break;
@@ -169,7 +173,7 @@
{
uint8_t col;
int16_t z, xx, xy, xz, yx, yy, yz, zx, zy, zz;
- int32_t x, y, zMul, screenBufferPos;
+ int32_t x, y, screenBufferPos;
vector_t *star;
xx = starmat.x.x; xy = starmat.x.y; xz = starmat.x.z;
@@ -189,21 +193,20 @@
}
star = &starcrd[i];
- star->z += hastighet;
+ star->z += hastighet; // this intentionally overflows int16_t
z = ((xz * star->x) + (yz * star->y) + (zz * star->z)) >> 16;
z += 9000;
if (z <= 100) continue;
- zMul = 0xFFFFFFFF / z; // 8bitbubsy: optimization
y = ((xy * star->x) + (yy * star->y) + (zy * star->z)) >> (16-7);
- y = ((int64_t)y * zMul) >> 32;
+ y /= z;
y += (2+ABOUT_SCREEN_H)/2;
if ((uint32_t)y > 2+ABOUT_SCREEN_H) continue;
x = ((xx * star->x) + (yx * star->y) + (zx * star->z)) >> (16-7);
x += x >> 2; // x *= 1.25
- x = ((int64_t)x * zMul) >> 32;
+ x /= z;
x += (2+ABOUT_SCREEN_W)/2;
if ((uint32_t)x > 2+ABOUT_SCREEN_W) continue;
@@ -264,7 +267,6 @@
textOutBorder(x, y, PAL_FORGRND, PAL_CUSTOM, verText);
aboutInit();
-
ui.aboutScreenShown = true;
}
--- a/src/ft2_audio.c
+++ b/src/ft2_audio.c
@@ -24,19 +24,15 @@
static int8_t pmpCountDiv, pmpChannels = 2;
static uint16_t smpBuffSize;
-static int32_t oldAudioFreq, randSeed = INITIAL_DITHER_SEED;
-static uint32_t tickTimeLen, tickTimeLenFrac;
-static double dAudioNormalizeMul, dPanningTab[256+1], dPrngStateL, dPrngStateR;
+static int32_t randSeed = INITIAL_DITHER_SEED;
+static uint32_t oldAudioFreq, tickTimeLen, tickTimeLenFrac;
+static float fAudioNormalizeMul, fPrngStateL, fPrngStateR, fPanningTab[256+1];
static voice_t voice[MAX_VOICES * 2];
static void (*sendAudSamplesFunc)(uint8_t *, uint32_t, uint8_t); // "send mixed samples" routines
static int32_t oldPeriod;
-static uint32_t oldSFrqRev;
-#if !defined __amd64__ && !defined _WIN64
-static uint32_t oldSFrq;
-#else
-static uint64_t oldSFrq;
-#endif
+static uint32_t oldRevDelta;
+static uint64_t oldDelta;
// globalized
audio_t audio;
@@ -49,8 +45,8 @@
void resetCachedMixerVars(void)
{
oldPeriod = -1;
- oldSFrq = 0;
- oldSFrqRev = 0xFFFFFFFF;
+ oldDelta = 0;
+ oldRevDelta = UINT32_MAX;
}
void stopVoice(int32_t i)
@@ -59,13 +55,13 @@
v = &voice[i];
memset(v, 0, sizeof (voice_t));
- v->SPan = 128;
+ v->pan = 128;
// clear "fade out" voice too
v = &voice[MAX_VOICES + i];
memset(v, 0, sizeof (voice_t));
- v->SPan = 128;
+ v->pan = 128;
}
bool setNewAudioSettings(void) // only call this from the main input/video thread
@@ -112,6 +108,7 @@
return false;
}
+ calcRevMixDeltaTable();
resumeAudio();
setWavRenderFrequency(audio.freq);
@@ -125,16 +122,14 @@
amp = CLAMP(amp, 1, 32);
masterVol = CLAMP(masterVol, 0, 256);
- const double dAmp = (amp * masterVol) / (32.0 * 256.0);
-
- int32_t normalizeBits = 25; // 2^25 = mixing bits per voice
+ float fAmp = (amp * masterVol) / (32.0f * 256.0f);
if (!bitDepth32Flag)
- normalizeBits -= 16-1; // change scale from -1.0..1.0 to signed 16-bit
+ fAmp *= 32768.0f;
- dAudioNormalizeMul = dAmp / (1UL << normalizeBits);
+ fAudioNormalizeMul = fAmp;
}
-void setNewAudioFreq(uint32_t freq) // for song to WAV rendering
+void setNewAudioFreq(uint32_t freq) // for song-to-WAV rendering
{
if (freq == 0)
return;
@@ -142,13 +137,25 @@
oldAudioFreq = audio.freq;
audio.freq = freq;
- calcReplayRate(audio.freq);
+ const bool mustRecalcTables = audio.freq != oldAudioFreq;
+ if (mustRecalcTables)
+ {
+ calcReplayRate(audio.freq);
+ calcRevMixDeltaTable();
+ }
}
-void setBackOldAudioFreq(void) // for song to WAV rendering
+void setBackOldAudioFreq(void) // for song-to-WAV rendering
{
+ const bool mustRecalcTables = audio.freq != oldAudioFreq;
+
audio.freq = oldAudioFreq;
- calcReplayRate(audio.freq);
+
+ if (mustRecalcTables)
+ {
+ calcReplayRate(audio.freq);
+ calcRevMixDeltaTable();
+ }
}
void setSpeed(uint16_t bpm)
@@ -160,16 +167,16 @@
if (bpm > MAX_BPM)
return;
- audio.dSamplesPerTick = audio.dSpeedValTab[bpm];
+ audio.dSamplesPerTick = audio.dSamplesPerTickTab[bpm];
audio.samplesPerTick = (int32_t)(audio.dSamplesPerTick + 0.5);
// get tick time length for audio/video sync timestamp
const uint64_t tickTimeLen64 = audio.tickTimeLengthTab[bpm];
tickTimeLen = tickTimeLen64 >> 32;
- tickTimeLenFrac = tickTimeLen64 & 0xFFFFFFFF;
+ tickTimeLenFrac = tickTimeLen64 & UINT32_MAX;
// used for calculating volume ramp length for "ticks" ramps
- audio.rampSpeedValMul = audio.rampSpeedValMulTab[bpm];
+ audio.fRampTickMul = audio.fRampTickMulTab[bpm];
}
void audioSetVolRamp(bool volRamp)
@@ -188,87 +195,88 @@
void calcPanningTable(void)
{
- // same formula as FT2's panning table (with 0.0..1.0 range)
+ // same formula as FT2's panning table (with 0.0f..1.0f range)
for (int32_t i = 0; i <= 256; i++)
- dPanningTab[i] = sqrt(i * (1.0 / 256.0));
+ fPanningTab[i] = sqrtf(i * (1.0f / 256.0f)); // i / 256.0f
}
static void voiceUpdateVolumes(int32_t i, uint8_t status)
{
- int32_t destVolL, destVolR;
+ float fDestVolL, fDestVolR;
voice_t *v = &voice[i];
- const int32_t volR = (int32_t)((v->SVol * dPanningTab[ v->SPan]) + 0.5);
- const int32_t volL = (int32_t)((v->SVol * dPanningTab[256-v->SPan]) + 0.5);
+ const float fVolL = v->fVol * fPanningTab[256-v->pan];
+ const float fVolR = v->fVol * fPanningTab[ v->pan];
- if (!audio.volumeRampingFlag) // is volume ramping disabled?
+ if (!audio.volumeRampingFlag)
{
- v->SVolIPLen = 0; // reset volume ramp length
- v->SLVol2 = volL;
- v->SRVol2 = volR;
+ // volume ramping is disabled
+ v->fVolL = fVolL;
+ v->fVolR = fVolR;
+ v->volRampSamples = 0;
+ return;
}
- else
+
+ v->fDestVolL = fVolL;
+ v->fDestVolR = fVolR;
+
+ if (status & IS_NyTon)
{
- v->SLVol1 = volL; // ramp destination volumes
- v->SRVol1 = volR;
+ // sample is about to start, ramp out/in at the same time
- if (status & IS_NyTon)
+ // setup "fade out" voice (only if current voice volume > 0)
+ if (v->fVolL > 0.0f || v->fVolR > 0.0f)
{
- // sample is about to start, ramp out/in at the same time
+ voice_t *f = &voice[MAX_VOICES+i];
- // setup "fade out" voice (only if current voice volume>0)
- if (v->SLVol2 > 0 || v->SRVol2 > 0)
- {
- voice_t *f = &voice[MAX_VOICES + i];
+ *f = *v; // copy voice
- *f = *v; // copy voice
+ f->volRampSamples = audio.quickVolRampSamples;
- f->SVolIPLen = audio.quickVolSizeVal;
+ fDestVolL = -f->fVolL;
+ fDestVolR = -f->fVolR;
- destVolL = -f->SLVol2;
- destVolR = -f->SRVol2;
+ f->fVolDeltaL = fDestVolL * audio.fRampQuickVolMul;
+ f->fVolDeltaR = fDestVolR * audio.fRampQuickVolMul;
- f->SLVolIP = ((int64_t)destVolL * audio.rampQuickVolMul) >> 32; // x = a / b
- f->SRVolIP = ((int64_t)destVolR * audio.rampQuickVolMul) >> 32;
+ f->isFadeOutVoice = true;
+ }
- f->isFadeOutVoice = true;
- }
+ // make current voice fade in from zero when it starts
+ v->fVolL = 0.0f;
+ v->fVolR = 0.0f;
+ }
- // make current voice fade in from zero when it starts
- v->SLVol2 = 0;
- v->SRVol2 = 0;
- }
+ // ramp volume changes
- // ramp volume changes
+ /* FT2 has two internal volume ramping lengths:
+ ** IS_QuickVol: 5ms
+ ** Normal: The duration of a tick (samplesPerTick)
+ */
- /* FT2 has two internal volume ramping lengths:
- ** IS_QuickVol: 5ms (audioFreq / 200)
- ** Normal: The duration of a tick (speedVal)
- */
+ // if destination volume and current volume is the same (and we have no sample trigger), don't do ramp
+ if (fVolL == v->fVolL && fVolR == v->fVolR && !(status & IS_NyTon))
+ {
+ // there is no volume change
+ v->volRampSamples = 0;
+ }
+ else
+ {
+ fDestVolL = fVolL - v->fVolL;
+ fDestVolR = fVolR - v->fVolR;
- // if destination volume and current volume is the same (and we have no sample trigger), don't do ramp
- if (volL == v->SLVol2 && volR == v->SRVol2 && !(status & IS_NyTon))
+ if (status & IS_QuickVol)
{
- v->SVolIPLen = 0; // there is no volume change
+ v->volRampSamples = audio.quickVolRampSamples;
+ v->fVolDeltaL = fDestVolL * audio.fRampQuickVolMul;
+ v->fVolDeltaR = fDestVolR * audio.fRampQuickVolMul;
}
else
{
- destVolL = volL - v->SLVol2;
- destVolR = volR - v->SRVol2;
-
- if (status & IS_QuickVol)
- {
- v->SVolIPLen = audio.quickVolSizeVal;
- v->SLVolIP = ((int64_t)destVolL * audio.rampQuickVolMul) >> 32; // x = a / b
- v->SRVolIP = ((int64_t)destVolR * audio.rampQuickVolMul) >> 32;
- }
- else
- {
- v->SVolIPLen = audio.samplesPerTick;
- v->SLVolIP = ((int64_t)destVolL * audio.rampSpeedValMul) >> 32; // x = a / b
- v->SRVolIP = ((int64_t)destVolR * audio.rampSpeedValMul) >> 32;
- }
+ v->volRampSamples = audio.samplesPerTick;
+ v->fVolDeltaL = fDestVolL * audio.fRampTickMul;
+ v->fVolDeltaR = fDestVolR * audio.fRampTickMul;
}
}
}
@@ -277,14 +285,13 @@
{
bool sampleIs16Bit;
uint8_t loopType;
- int32_t oldSLen, length, loopBegin, loopLength;
- voice_t *v;
+ int32_t length, loopStart, loopLength, loopEnd;
- v = &voice[i];
-
+ voice_t *v = &voice[i];
length = s->len;
- loopBegin = s->repS;
+ loopStart = s->repS;
loopLength = s->repL;
+ loopEnd = s->repS + s->repL;
loopType = s->typ & 3;
sampleIs16Bit = (s->typ >> 4) & 1;
@@ -291,12 +298,14 @@
if (sampleIs16Bit)
{
assert(!(length & 1));
- assert(!(loopBegin & 1));
+ assert(!(loopStart & 1));
assert(!(loopLength & 1));
+ assert(!(loopEnd & 1));
length >>= 1;
- loopBegin >>= 1;
+ loopStart >>= 1;
loopLength >>= 1;
+ loopEnd >>= 1;
}
if (s->pek == NULL || length < 1)
@@ -310,26 +319,25 @@
if (sampleIs16Bit)
{
- v->SBase16 = (const int16_t *)s->pek;
- v->SRevBase16 = &v->SBase16[loopBegin + (loopBegin + loopLength)]; // for pingpong loops
+ v->base16 = (const int16_t *)s->pek;
+ v->revBase16 = &v->base16[loopStart + loopEnd]; // for pingpong loops
}
else
{
- v->SBase8 = s->pek;
- v->SRevBase8 = &v->SBase8[loopBegin + (loopBegin + loopLength)]; // for pingpong loops
+ v->base8 = s->pek;
+ v->revBase8 = &v->base8[loopStart + loopEnd]; // for pingpong loops
}
v->backwards = false;
- v->SLoopType = loopType;
- v->SLen = (loopType > 0) ? (loopBegin + loopLength) : length;
- v->SRepS = loopBegin;
- v->SRepL = loopLength;
- v->SPos = position;
- v->SPosDec = 0; // position fraction
+ v->loopType = loopType;
+ v->end = (loopType > 0) ? loopEnd : length;
+ v->loopStart = loopStart;
+ v->loopLength = loopLength;
+ v->pos = position;
+ v->posFrac = 0;
- // if 9xx position overflows, shut down voice
- oldSLen = (loopType > 0) ? (loopBegin + loopLength) : length;
- if (v->SPos >= oldSLen)
+ // if position overflows, shut down voice (f.ex. through 9xx command)
+ if (v->pos >= v->end)
{
v->active = false;
return;
@@ -339,18 +347,18 @@
v->active = true;
}
-void mix_SaveIPVolumes(void) // for volume ramping
+void resetRampVolumes(void)
{
voice_t *v = voice;
for (int32_t i = 0; i < song.antChn; i++, v++)
{
- v->SLVol2 = v->SLVol1;
- v->SRVol2 = v->SRVol1;
- v->SVolIPLen = 0;
+ v->fVolL = v->fDestVolL;
+ v->fVolR = v->fDestVolR;
+ v->volRampSamples = 0;
}
}
-void mix_UpdateChannelVolPanFrq(void)
+void updateVoices(void)
{
uint8_t status;
stmTyp *ch;
@@ -366,10 +374,10 @@
ch->status = 0;
if (status & IS_Vol)
- v->SVol = ch->finalVol;
+ v->fVol = ch->fFinalVol;
if (status & IS_Pan)
- v->SPan = ch->finalPan;
+ v->pan = ch->finalPan;
if (status & (IS_Vol + IS_Pan))
voiceUpdateVolumes(i, status);
@@ -382,21 +390,12 @@
if (period != oldPeriod)
{
oldPeriod = period;
- oldSFrq = getMixerDelta(period);
-
- oldSFrqRev = 0xFFFFFFFF;
- if (oldSFrq != 0)
- {
-#if defined __amd64__ || defined _WIN64
- oldSFrqRev = (uint32_t)((0xFFFFFFFFFFFFFFFF / oldSFrq) >> 16);
-#else
- oldSFrqRev /= oldSFrq;
-#endif
- }
+ oldDelta = getMixerDelta(period);
+ oldRevDelta = getRevMixerDelta(period);
}
- v->SFrq = oldSFrq;
- v->SFrqRev = oldSFrqRev;
+ v->delta = oldDelta;
+ v->revDelta = oldRevDelta;
}
if (status & IS_NyTon)
@@ -407,84 +406,40 @@
void resetAudioDither(void)
{
randSeed = INITIAL_DITHER_SEED;
- dPrngStateL = 0.0;
- dPrngStateR = 0.0;
+ fPrngStateL = 0.0f;
+ fPrngStateR = 0.0f;
}
-static inline uint32_t random32(void)
+static inline int32_t random32(void)
{
// LCG 32-bit random
randSeed *= 134775813;
randSeed++;
- return randSeed;
+ return (int32_t)randSeed;
}
-static void sendSamples16BitStereo(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
-{
- int32_t out32;
-
- int16_t *streamPointer16 = (int16_t *)stream;
- for (uint32_t i = 0; i < sampleBlockLength; i++)
- {
- // left channel
- out32 = (int32_t)(audio.mixBufferL[i] * dAudioNormalizeMul);
- CLAMP16(out32);
- *streamPointer16++ = (int16_t)out32;
-
- // right channel
- out32 = (int32_t)(audio.mixBufferR[i] * dAudioNormalizeMul);
- CLAMP16(out32);
- *streamPointer16++ = (int16_t)out32;
- }
-
- (void)numAudioChannels;
-}
-
-static void sendSamples16BitMultiChan(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
-{
- int32_t out32;
-
- int16_t *streamPointer16 = (int16_t *)stream;
- for (uint32_t i = 0; i < sampleBlockLength; i++)
- {
- // left channel
- out32 = (int32_t)(audio.mixBufferL[i] * dAudioNormalizeMul);
- CLAMP16(out32);
- *streamPointer16++ = (int16_t)out32;
-
- // right channel
- out32 = (int32_t)(audio.mixBufferR[i] * dAudioNormalizeMul);
- CLAMP16(out32);
- *streamPointer16++ = (int16_t)out32;
-
- // send zeroes to the rest of the channels
- for (uint32_t j = 2; j < numAudioChannels; j++)
- *streamPointer16++ = 0;
- }
-}
-
static void sendSamples16BitDitherStereo(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
{
int32_t out32;
- double dOut, dPrng;
+ float fOut, fPrng;
int16_t *streamPointer16 = (int16_t *)stream;
for (uint32_t i = 0; i < sampleBlockLength; i++)
{
// left channel - 1-bit triangular dithering
- dPrng = random32() * (0.5 / INT32_MAX); // -0.5..0.5
- dOut = ((audio.mixBufferL[i] * dAudioNormalizeMul) + dPrng) - dPrngStateL;
- dPrngStateL = dPrng;
- out32 = (int32_t)dOut;
+ fPrng = random32() * (0.5f / INT32_MAX); // -0.5f .. 0.5f
+ fOut = ((audio.fMixBufferL[i] * fAudioNormalizeMul) + fPrng) - fPrngStateL;
+ fPrngStateL = fPrng;
+ out32 = (int32_t)fOut;
CLAMP16(out32);
*streamPointer16++ = (int16_t)out32;
// right channel - 1-bit triangular dithering
- dPrng = random32() * (0.5 / INT32_MAX); // -0.5..0.5
- dOut = ((audio.mixBufferR[i] * dAudioNormalizeMul) + dPrng) - dPrngStateR;
- dPrngStateR = dPrng;
- out32 = (int32_t)dOut;
+ fPrng = random32() * (0.5f / INT32_MAX); // -0.5f .. 0.5f
+ fOut = ((audio.fMixBufferR[i] * fAudioNormalizeMul) + fPrng) - fPrngStateR;
+ fPrngStateR = fPrng;
+ out32 = (int32_t)fOut;
CLAMP16(out32);
*streamPointer16++ = (int16_t)out32;
}
@@ -495,24 +450,24 @@
static void sendSamples16BitDitherMultiChan(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
{
int32_t out32;
- double dOut, dPrng;
+ float fOut, fPrng;
int16_t *streamPointer16 = (int16_t *)stream;
for (uint32_t i = 0; i < sampleBlockLength; i++)
{
// left channel - 1-bit triangular dithering
- dPrng = random32() * (0.5 / INT32_MAX); // -0.5..0.5
- dOut = ((audio.mixBufferL[i] * dAudioNormalizeMul) + dPrng) - dPrngStateL;
- dPrngStateL = dPrng;
- out32 = (int32_t)dOut;
+ fPrng = random32() * (0.5f / INT32_MAX); // -0.5f..0.5f
+ fOut = ((audio.fMixBufferL[i] * fAudioNormalizeMul) + fPrng) - fPrngStateL;
+ fPrngStateL = fPrng;
+ out32 = (int32_t)fOut;
CLAMP16(out32);
*streamPointer16++ = (int16_t)out32;
// right channel - 1-bit triangular dithering
- dPrng = random32() * (0.5 / INT32_MAX); // -0.5..0.5
- dOut = ((audio.mixBufferR[i] * dAudioNormalizeMul) + dPrng) - dPrngStateR;
- dPrngStateR = dPrng;
- out32 = (int32_t)dOut;
+ fPrng = random32() * (0.5f / INT32_MAX); // -0.5f..0.5f
+ fOut = ((audio.fMixBufferR[i] * fAudioNormalizeMul) + fPrng) - fPrngStateR;
+ fPrngStateR = fPrng;
+ out32 = (int32_t)fOut;
CLAMP16(out32);
*streamPointer16++ = (int16_t)out32;
@@ -524,20 +479,20 @@
static void sendSamples32BitStereo(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
{
- double dOut;
+ float fOut;
float *fStreamPointer32 = (float *)stream;
for (uint32_t i = 0; i < sampleBlockLength; i++)
{
// left channel
- dOut = audio.mixBufferL[i] * dAudioNormalizeMul;
- dOut = CLAMP(dOut, -1.0, 1.0);
- *fStreamPointer32++ = (float)dOut;
+ fOut = audio.fMixBufferL[i] * fAudioNormalizeMul;
+ fOut = CLAMP(fOut, -1.0f, 1.0f);
+ *fStreamPointer32++ = fOut;
// right channel
- dOut = audio.mixBufferR[i] * dAudioNormalizeMul;
- dOut = CLAMP(dOut, -1.0, 1.0);
- *fStreamPointer32++ = (float)dOut;
+ fOut = audio.fMixBufferR[i] * fAudioNormalizeMul;
+ fOut = CLAMP(fOut, -1.0f, 1.0f);
+ *fStreamPointer32++ = fOut;
}
(void)numAudioChannels;
@@ -545,20 +500,20 @@
static void sendSamples32BitMultiChan(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
{
- double dOut;
+ float fOut;
float *fStreamPointer32 = (float *)stream;
for (uint32_t i = 0; i < sampleBlockLength; i++)
{
// left channel
- dOut = audio.mixBufferL[i] * dAudioNormalizeMul;
- dOut = CLAMP(dOut, -1.0, 1.0);
- *fStreamPointer32++ = (float)dOut;
+ fOut = audio.fMixBufferL[i] * fAudioNormalizeMul;
+ fOut = CLAMP(fOut, -1.0f, 1.0f);
+ *fStreamPointer32++ = fOut;
// right channel
- dOut = audio.mixBufferR[i] * dAudioNormalizeMul;
- dOut = CLAMP(dOut, -1.0, 1.0);
- *fStreamPointer32++ = (float)dOut;
+ fOut = audio.fMixBufferR[i] * fAudioNormalizeMul;
+ fOut = CLAMP(fOut, -1.0f, 1.0f);
+ *fStreamPointer32++ = fOut;
// send zeroes to the rest of the channels
for (uint32_t j = 2; j < numAudioChannels; j++)
@@ -577,20 +532,20 @@
{
bool centerMixFlag;
- const bool volRampFlag = v->SVolIPLen > 0;
+ const bool volRampFlag = v->volRampSamples > 0;
if (volRampFlag)
{
- centerMixFlag = (v->SLVol1 == v->SRVol1) && (v->SLVolIP == v->SRVolIP);
+ centerMixFlag = (v->fDestVolL == v->fDestVolR) && (v->fVolDeltaL == v->fVolDeltaR);
}
else
{
- if (v->SLVol2 == 0 && v->SRVol2 == 0)
+ if (v->fVolL == 0.0f && v->fVolR == 0.0f)
{
silenceMixRoutine(v, samplesToMix);
continue;
}
- centerMixFlag = v->SLVol2 == v->SRVol2;
+ centerMixFlag = v->fVolL == v->fVolR;
}
mixFuncTab[(centerMixFlag * 24) + (volRampFlag * 12) + v->mixFuncOffset](v, samplesToMix);
@@ -598,7 +553,7 @@
if (r->active) // volume ramp fadeout-voice
{
- const bool centerMixFlag = (r->SLVol1 == r->SRVol1) && (r->SLVolIP == r->SRVolIP);
+ const bool centerMixFlag = (r->fDestVolL == r->fDestVolR) && (r->fVolDeltaL == r->fVolDeltaR);
mixFuncTab[(centerMixFlag * 24) + 12 + r->mixFuncOffset](r, samplesToMix);
}
}
@@ -607,8 +562,8 @@
static void mixAudio(uint8_t *stream, uint32_t sampleBlockLength, uint8_t numAudioChannels)
{
assert(sampleBlockLength <= MAX_WAV_RENDER_SAMPLES_PER_TICK);
- memset(audio.mixBufferL, 0, sampleBlockLength * sizeof (int32_t));
- memset(audio.mixBufferR, 0, sampleBlockLength * sizeof (int32_t));
+ memset(audio.fMixBufferL, 0, sampleBlockLength * sizeof (int32_t));
+ memset(audio.fMixBufferR, 0, sampleBlockLength * sizeof (int32_t));
doChannelMixing(sampleBlockLength);
@@ -620,23 +575,16 @@
void mixReplayerTickToBuffer(uint32_t samplesToMix, uint8_t *stream, uint8_t bitDepth)
{
assert(samplesToMix <= MAX_WAV_RENDER_SAMPLES_PER_TICK);
- memset(audio.mixBufferL, 0, samplesToMix * sizeof (int32_t));
- memset(audio.mixBufferR, 0, samplesToMix * sizeof (int32_t));
+ memset(audio.fMixBufferL, 0, samplesToMix * sizeof (int32_t));
+ memset(audio.fMixBufferR, 0, samplesToMix * sizeof (int32_t));
doChannelMixing(samplesToMix);
// normalize mix buffer and send to audio stream
if (bitDepth == 16)
- {
- if (config.specialFlags2 & DITHERED_AUDIO)
- sendSamples16BitDitherStereo(stream, samplesToMix, 2);
- else
- sendSamples16BitStereo(stream, samplesToMix, 2);
- }
+ sendSamples16BitDitherStereo(stream, samplesToMix, 2);
else
- {
sendSamples32BitStereo(stream, samplesToMix, 2);
- }
}
int32_t pattQueueReadSize(void)
@@ -939,7 +887,7 @@
c->sampleNr = s->sampleNr;
c->envSustainActive = s->envSustainActive;
c->status = s->tmpStatus;
- c->finalVol = s->finalVol;
+ c->fFinalVol = s->fFinalVol;
c->smpStartPos = s->smpStartPos;
}
@@ -948,9 +896,9 @@
audio.tickTime64 += tickTimeLen;
audio.tickTime64Frac += tickTimeLenFrac;
- if (audio.tickTime64Frac > 0xFFFFFFFF)
+ if (audio.tickTime64Frac > UINT32_MAX)
{
- audio.tickTime64Frac &= 0xFFFFFFFF;
+ audio.tickTime64Frac &= UINT32_MAX;
audio.tickTime64++;
}
}
@@ -973,10 +921,10 @@
replayerBusy = true;
if (audio.volumeRampingFlag)
- mix_SaveIPVolumes();
+ resetRampVolumes();
- mainPlayer();
- mix_UpdateChannelVolPanFrq();
+ tickReplayer();
+ updateVoices();
fillVisualsSyncBuffer();
audio.dTickSampleCounter += audio.dSamplesPerTick;
@@ -1004,15 +952,15 @@
{
const uint32_t sampleSize = sizeof (int32_t);
- audio.mixBufferLUnaligned = (int32_t *)MALLOC_PAD(MAX_WAV_RENDER_SAMPLES_PER_TICK * sampleSize, 256);
- audio.mixBufferRUnaligned = (int32_t *)MALLOC_PAD(MAX_WAV_RENDER_SAMPLES_PER_TICK * sampleSize, 256);
+ audio.fMixBufferLUnaligned = (float *)MALLOC_PAD(MAX_WAV_RENDER_SAMPLES_PER_TICK * sampleSize, 256);
+ audio.fMixBufferRUnaligned = (float *)MALLOC_PAD(MAX_WAV_RENDER_SAMPLES_PER_TICK * sampleSize, 256);
- if (audio.mixBufferLUnaligned == NULL || audio.mixBufferRUnaligned == NULL)
+ if (audio.fMixBufferLUnaligned == NULL || audio.fMixBufferRUnaligned == NULL)
return false;
// make aligned main pointers
- audio.mixBufferL = (int32_t *)ALIGN_PTR(audio.mixBufferLUnaligned, 256);
- audio.mixBufferR = (int32_t *)ALIGN_PTR(audio.mixBufferRUnaligned, 256);
+ audio.fMixBufferL = (float *)ALIGN_PTR(audio.fMixBufferLUnaligned, 256);
+ audio.fMixBufferR = (float *)ALIGN_PTR(audio.fMixBufferRUnaligned, 256);
return true;
}
@@ -1019,20 +967,20 @@
static void freeAudioBuffers(void)
{
- if (audio.mixBufferLUnaligned != NULL)
+ if (audio.fMixBufferLUnaligned != NULL)
{
- free(audio.mixBufferLUnaligned);
- audio.mixBufferLUnaligned = NULL;
+ free(audio.fMixBufferLUnaligned);
+ audio.fMixBufferLUnaligned = NULL;
}
- if (audio.mixBufferRUnaligned != NULL)
+ if (audio.fMixBufferRUnaligned != NULL)
{
- free(audio.mixBufferRUnaligned);
- audio.mixBufferRUnaligned = NULL;
+ free(audio.fMixBufferRUnaligned);
+ audio.fMixBufferRUnaligned = NULL;
}
- audio.mixBufferL = NULL;
- audio.mixBufferR = NULL;
+ audio.fMixBufferL = NULL;
+ audio.fMixBufferR = NULL;
}
void updateSendAudSamplesRoutine(bool lockMixer)
@@ -1042,20 +990,10 @@
if (config.specialFlags & BITDEPTH_16)
{
- if (config.specialFlags2 & DITHERED_AUDIO)
- {
- if (pmpChannels > 2)
- sendAudSamplesFunc = sendSamples16BitDitherMultiChan;
- else
- sendAudSamplesFunc = sendSamples16BitDitherStereo;
- }
+ if (pmpChannels > 2)
+ sendAudSamplesFunc = sendSamples16BitDitherMultiChan;
else
- {
- if (pmpChannels > 2)
- sendAudSamplesFunc = sendSamples16BitMultiChan;
- else
- sendAudSamplesFunc = sendSamples16BitStereo;
- }
+ sendAudSamplesFunc = sendSamples16BitDitherStereo;
}
else
{
@@ -1170,11 +1108,7 @@
// test if the received audio rate is compatible
-#if defined _WIN64 || defined __amd64__
if (have.freq != 44100 && have.freq != 48000 && have.freq != 96000 && have.freq != 192000)
-#else
- if (have.freq != 44100 && have.freq != 48000)
-#endif
{
if (showErrorMsg)
showErrorMsgBox("Couldn't open audio device:\nThe program doesn't support an audio output rate of %dHz. Sorry!", have.freq);
@@ -1267,4 +1201,78 @@
}
freeAudioBuffers();
+}
+
+#include "ft2_module_loader.h"
+void benchmarkAudioChannelMixer(void) // for development testing
+{
+#define TICKS_TO_MIX 50000
+
+#ifdef _WIN32
+#define DEBUG_MOD_FILENAME L"C:\\programming\\debug.xm"
+#elif __APPLE__
+#define DEBUG_MOD_FILENAME "/users/olav/debug.xm"
+#else
+#define DEBUG_MOD_FILENAME "/home/olav/debug.xm"
+#endif
+
+ char str[128];
+ uint8_t result, *buffer;
+ uint32_t maxSamplesPerTick, start, end;
+
+ maxSamplesPerTick = ((config.audioFreq * 5) / 2) / MIN_BPM;
+
+ buffer = (uint8_t *)malloc(maxSamplesPerTick * (2 * sizeof (int32_t)));
+ if (buffer == NULL)
+ {
+ editor.programRunning = false;
+ showErrorMsgBox("Out of memory!\n");
+ return;
+ }
+
+ result = loadMusicUnthreaded(DEBUG_MOD_FILENAME, false);
+ if (!result)
+ {
+ editor.programRunning = false;
+ showErrorMsgBox("Couldn't load debug module for mixer benchmarking!\n");
+ return;
+ }
+
+ pauseAudio();
+ editor.wavIsRendering = true;
+
+ setPos(0, 0, true);
+ playMode = PLAYMODE_SONG;
+ songPlaying = true;
+
+ resetChannels();
+ setNewAudioFreq(config.audioFreq);
+ setAudioAmp(config.boostLevel, config.masterVol, false);
+
+ stopVoices();
+ song.globVol = 64;
+ setSpeed(song.speed);
+
+ double dTickSamples = audio.dSamplesPerTick;
+
+ start = SDL_GetTicks();
+ for (uint32_t i = 0; i < TICKS_TO_MIX; i++)
+ {
+ const int32_t tickSamples = (int32_t)dTickSamples;
+ dump_RenderTick(tickSamples, buffer);
+
+ dTickSamples -= tickSamples; // keep fractional part
+ dTickSamples += audio.dSamplesPerTick;
+ }
+ end = SDL_GetTicks();
+
+ stopPlaying();
+ resumeAudio();
+
+ free(buffer);
+
+ sprintf(str, "It took approximately %dms to mix %d ticks.\nRun this test again to confirm.", end - start, TICKS_TO_MIX);
+ SDL_ShowSimpleMessageBox(0, "Channel mixer benchmark result", str, video.window);
+
+ editor.programRunning = false;
}
--- a/src/ft2_audio.h
+++ b/src/ft2_audio.h
@@ -11,14 +11,6 @@
FREQ_TABLE_AMIGA = 1,
};
-/* Use 16 on non-x86_64 platforms so that we can avoid a
-** 64-bit division in the outside mixer loop. x86_64 users
-** are lucky and will get double the fractional delta precision.
-** This is beneficial in 96kHz/192kHz mode, where deltas are
-** lower in value.
-*/
-#if defined _WIN64 || defined __amd64__
-
#define MIN_AUDIO_FREQ 44100
#define MAX_AUDIO_FREQ 192000
@@ -26,20 +18,9 @@
#define MIXER_FRAC_SCALE (1ULL << MIXER_FRAC_BITS)
#define MIXER_FRAC_MASK (MIXER_FRAC_SCALE-1)
-#else
-
-#define MIN_AUDIO_FREQ 44100
-#define MAX_AUDIO_FREQ 48000
-
-#define MIXER_FRAC_BITS 16
-#define MIXER_FRAC_SCALE (1UL << MIXER_FRAC_BITS)
-#define MIXER_FRAC_MASK (MIXER_FRAC_SCALE-1)
-
-#endif
-
#define MAX_AUDIO_DEVICES 99
-// for audio/video sync queue. (2^n-1 - don't change this! Queue buffer is already ~2.7MB in size)
+// for audio/video sync queue. (2^n-1 - don't change this! Queue buffer is already BIG in size)
#define SYNC_QUEUE_LEN 4095
typedef struct audio_t
@@ -48,13 +29,13 @@
char *inputDeviceNames[MAX_AUDIO_DEVICES], *outputDeviceNames[MAX_AUDIO_DEVICES];
volatile bool locked, resetSyncTickTimeFlag, volumeRampingFlag, interpolationFlag;
bool linearFreqTable, rescanAudioDevicesSupported;
- int32_t inputDeviceNum, outputDeviceNum, lastWorkingAudioFreq, lastWorkingAudioBits;
- int32_t quickVolSizeVal, *mixBufferL, *mixBufferR, *mixBufferLUnaligned, *mixBufferRUnaligned;
- int32_t rampQuickVolMul, rampSpeedValMul, rampSpeedValMulTab[MAX_BPM+1];
- uint32_t freq;
- uint32_t audLatencyPerfValInt, audLatencyPerfValFrac, samplesPerTick, musicTimeSpeedVal;
+ int32_t quickVolRampSamples, inputDeviceNum, outputDeviceNum, lastWorkingAudioFreq, lastWorkingAudioBits;
+ uint32_t freq, audLatencyPerfValInt, audLatencyPerfValFrac, samplesPerTick, musicTimeSpeedVal;
uint64_t tickTime64, tickTime64Frac, tickTimeLengthTab[MAX_BPM+1];
- double dAudioLatencyMs, dSamplesPerTick, dTickSampleCounter, dSpeedValTab[MAX_BPM+1];
+ float fRampQuickVolMul, fRampTickMul, fRampTickMulTab[MAX_BPM+1];
+ float *fMixBufferL, *fMixBufferR, *fMixBufferLUnaligned, *fMixBufferRUnaligned;
+ double dAudioLatencyMs, dSamplesPerTick, dTickSampleCounter, dSamplesPerTickTab[MAX_BPM+1];
+
SDL_AudioDeviceID dev;
uint32_t wantFreq, haveFreq, wantSamples, haveSamples, wantChannels, haveChannels;
} audio_t;
@@ -61,19 +42,14 @@
typedef struct
{
- const int8_t *SBase8, *SRevBase8;
- const int16_t *SBase16, *SRevBase16;
+ const int8_t *base8, *revBase8;
+ const int16_t *base16, *revBase16;
bool active, backwards, isFadeOutVoice;
- uint8_t mixFuncOffset, SPan, SLoopType;
- int32_t SLVol1, SRVol1, SLVol2, SRVol2, SLVolIP, SRVolIP;
- int32_t SVol, SPos, SLen, SRepS, SRepL;
- uint32_t SVolIPLen, SFrqRev;
-
-#if defined _WIN64 || defined __amd64__
- uint64_t SPosDec, SFrq;
-#else
- uint32_t SPosDec, SFrq;
-#endif
+ uint8_t mixFuncOffset, pan, loopType;
+ int32_t pos, end, loopStart, loopLength;
+ uint32_t volRampSamples, revDelta;
+ uint64_t posFrac, delta;
+ float fVol, fDestVolL, fDestVolR, fVolL, fVolR, fVolDeltaL, fVolDeltaR;
} voice_t;
typedef struct pattSyncData_t
@@ -86,7 +62,7 @@
typedef struct pattSync_t
{
volatile int32_t readPos, writePos;
- pattSyncData_t data[SYNC_QUEUE_LEN + 1];
+ pattSyncData_t data[SYNC_QUEUE_LEN+1];
} pattSync_t;
typedef struct chSyncData_t
@@ -98,7 +74,7 @@
typedef struct chSync_t
{
volatile int32_t readPos, writePos;
- chSyncData_t data[SYNC_QUEUE_LEN + 1];
+ chSyncData_t data[SYNC_QUEUE_LEN+1];
} chSync_t;
void resetCachedMixerVars(void);
@@ -135,8 +111,8 @@
void lockMixerCallback(void);
void unlockMixerCallback(void);
void updateSendAudSamplesRoutine(bool lockMixer);
-void mix_SaveIPVolumes(void);
-void mix_UpdateChannelVolPanFrq(void);
+void resetRampVolumes(void);
+void updateVoices(void);
void mixReplayerTickToBuffer(uint32_t samplesToMix, uint8_t *stream, uint8_t bitDepth);
// in ft2_audio.c
--- a/src/ft2_checkboxes.c
+++ b/src/ft2_checkboxes.c
@@ -83,7 +83,6 @@
{ 3, 91, 77, 12, cbToggleAutoSaveConfig },
{ 389, 132, 90, 12, cbConfigInterpolation },
{ 389, 145, 107, 12, cbConfigVolRamp },
- { 389, 158 , 69, 12, cbConfigDithering },
{ 113, 14, 108, 12, cbConfigPattStretch },
{ 113, 27, 117, 12, cbConfigHexCount },
{ 113, 40, 81, 12, cbConfigAccidential },
--- a/src/ft2_checkboxes.h
+++ b/src/ft2_checkboxes.h
@@ -56,7 +56,6 @@
// CONFIG AUDIO
CB_CONF_INTERPOLATION,
CB_CONF_VOL_RAMP,
- CB_CONF_DITHER,
// CONFIG LAYOUT
CB_CONF_PATTSTRETCH,
--- a/src/ft2_config.c
+++ b/src/ft2_config.c
@@ -153,13 +153,8 @@
config.recQuantRes = 16;
}
-#if defined __amd64__ || defined _WIN64
if (config.audioFreq != 44100 && config.audioFreq != 48000 && config.audioFreq != 96000 && config.audioFreq != 192000)
config.audioFreq = 48000;
-#else
- if (config.audioFreq != 44100 && config.audioFreq != 48000)
- config.audioFreq = 48000;
-#endif
if (config.audioInputFreq <= 1) // default value from FT2 (this was cdr_Sync) - set defaults
config.audioInputFreq = INPUT_FREQ_48KHZ;
@@ -838,10 +833,8 @@
{
case 44100: tmpID = RB_CONFIG_AUDIO_44KHZ; break;
default: case 48000: tmpID = RB_CONFIG_AUDIO_48KHZ; break;
-#if defined __amd64__ || defined _WIN64
case 96000: tmpID = RB_CONFIG_AUDIO_96KHZ; break;
case 192000: tmpID = RB_CONFIG_AUDIO_192KHZ; break;
-#endif
}
radioButtons[tmpID].state = RADIOBUTTON_CHECKED;
@@ -873,11 +866,9 @@
{
checkBoxes[CB_CONF_INTERPOLATION].checked = config.interpolation;
checkBoxes[CB_CONF_VOL_RAMP].checked = (config.specialFlags & NO_VOLRAMP_FLAG) ? false : true;
- checkBoxes[CB_CONF_DITHER].checked = (config.specialFlags2 & DITHERED_AUDIO) ? true : false;
showCheckBox(CB_CONF_INTERPOLATION);
showCheckBox(CB_CONF_VOL_RAMP);
- showCheckBox(CB_CONF_DITHER);
}
static void setConfigLayoutCheckButtonStates(void)
@@ -1162,18 +1153,16 @@
textOutShadow(406, 90, PAL_FORGRND, PAL_DSKTOP2, "16-bit (default)");
textOutShadow(406, 104, PAL_FORGRND, PAL_DSKTOP2, "32-bit float");
- textOutShadow(390, 120, PAL_FORGRND, PAL_DSKTOP2, "Mixing device ctrl.:");
+ textOutShadow(390, 120, PAL_FORGRND, PAL_DSKTOP2, "Mixer settings:");
textOutShadow(406, 134, PAL_FORGRND, PAL_DSKTOP2, "Interpolation");
textOutShadow(406, 147, PAL_FORGRND, PAL_DSKTOP2, "Volume ramping");
- textOutShadow(406, 160, PAL_FORGRND, PAL_DSKTOP2, "Dithering");
textOutShadow(509, 3, PAL_FORGRND, PAL_DSKTOP2, "Mixing frequency:");
textOutShadow(525, 17, PAL_FORGRND, PAL_DSKTOP2, "44100Hz");
textOutShadow(525, 31, PAL_FORGRND, PAL_DSKTOP2, "48000Hz (default)");
-#if defined __amd64__ || defined _WIN64
textOutShadow(525, 45, PAL_FORGRND, PAL_DSKTOP2, "96000Hz");
textOutShadow(525, 59, PAL_FORGRND, PAL_DSKTOP2, "192000Hz");
-#endif
+
textOutShadow(509, 76, PAL_FORGRND, PAL_DSKTOP2, "Frequency table:");
textOutShadow(525, 90, PAL_FORGRND, PAL_DSKTOP2, "Amiga freq. table");
textOutShadow(525, 104, PAL_FORGRND, PAL_DSKTOP2, "Linear freq. table");
@@ -1414,7 +1403,6 @@
hideRadioButtonGroup(RB_GROUP_CONFIG_FREQ_TABLE);
hideCheckBox(CB_CONF_INTERPOLATION);
hideCheckBox(CB_CONF_VOL_RAMP);
- hideCheckBox(CB_CONF_DITHER);
hidePushButton(PB_CONFIG_AUDIO_RESCAN);
hidePushButton(PB_CONFIG_AUDIO_OUTPUT_DOWN);
hidePushButton(PB_CONFIG_AUDIO_OUTPUT_UP);
@@ -1600,10 +1588,6 @@
config.specialFlags &= ~BITDEPTH_16;
config.specialFlags |= BITDEPTH_32;
- checkBoxes[CB_CONF_DITHER].checked = false;
- if (editor.currConfigScreen == CONFIG_SCREEN_IO_DEVICES)
- drawCheckBox(CB_CONF_DITHER);
-
setNewAudioSettings();
}
@@ -1678,12 +1662,6 @@
{
config.specialFlags ^= NO_VOLRAMP_FLAG;
audioSetVolRamp((config.specialFlags & NO_VOLRAMP_FLAG) ? false : true);
-}
-
-void cbConfigDithering(void)
-{
- config.specialFlags2 ^= DITHERED_AUDIO;
- updateSendAudSamplesRoutine(true);
}
// CONFIG LAYOUT
--- a/src/ft2_config.h
+++ b/src/ft2_config.h
@@ -74,7 +74,7 @@
LINED_SCOPES = 128,
// specialFlags2
- DITHERED_AUDIO = 1,
+ DITHERED_AUDIO = 1, /* DEPRECATED */
HARDWARE_MOUSE = 2,
// windowFlags
@@ -240,7 +240,6 @@
void cbToggleAutoSaveConfig(void);
void cbConfigInterpolation(void);
void cbConfigVolRamp(void);
-void cbConfigDithering(void);
void cbConfigPattStretch(void);
void cbConfigHexCount(void);
void cbConfigAccidential(void);
--- a/src/ft2_diskop.c
+++ b/src/ft2_diskop.c
@@ -1273,12 +1273,24 @@
}
else if (extLen == 4)
{
- if (_stricmp(".nst", extPtr) && _stricmp(".mod", extPtr) &&
- _stricmp(".s3m", extPtr) && _stricmp(".stm", extPtr) &&
- _stricmp(".fst", extPtr) && _stricmp(".wav", extPtr))
+ if (editor.moduleSaveMode == MOD_SAVE_MODE_WAV)
{
- goto skipEntry; // skip, none of the extensions above
+ if (_stricmp(".nst", extPtr) && _stricmp(".mod", extPtr) &&
+ _stricmp(".s3m", extPtr) && _stricmp(".stm", extPtr) &&
+ _stricmp(".fst", extPtr) && _stricmp(".wav", extPtr))
+ {
+ goto skipEntry; // skip, none of the extensions above
+ }
}
+ else
+ {
+ if (_stricmp(".nst", extPtr) && _stricmp(".mod", extPtr) &&
+ _stricmp(".s3m", extPtr) && _stricmp(".stm", extPtr) &&
+ _stricmp(".fst", extPtr))
+ {
+ goto skipEntry; // skip, none of the extensions above
+ }
+ }
}
else
{
@@ -2059,6 +2071,7 @@
hideRadioButtonGroup(RB_GROUP_DISKOP_PAT_SAVEAS);
hideRadioButtonGroup(RB_GROUP_DISKOP_TRK_SAVEAS);
+
if (editor.moduleSaveMode > 3)
editor.moduleSaveMode = 3;
@@ -2497,6 +2510,9 @@
void rbDiskOpModSaveMod(void)
{
+ if (editor.moduleSaveMode == MOD_SAVE_MODE_WAV)
+ editor.diskOpReadDir = true;
+
editor.moduleSaveMode = MOD_SAVE_MODE_MOD;
checkRadioButton(RB_DISKOP_MOD_SAVEAS_MOD);
diskOpChangeFilenameExt(".mod");
@@ -2507,6 +2523,9 @@
void rbDiskOpModSaveXm(void)
{
+ if (editor.moduleSaveMode == MOD_SAVE_MODE_WAV)
+ editor.diskOpReadDir = true;
+
editor.moduleSaveMode = MOD_SAVE_MODE_XM;
checkRadioButton(RB_DISKOP_MOD_SAVEAS_XM);
diskOpChangeFilenameExt(".xm");
@@ -2523,6 +2542,8 @@
updateCurrSongFilename(); // for window title
updateWindowTitle(true);
+
+ editor.diskOpReadDir = true;
}
void rbDiskOpSmpSaveRaw(void)
--- a/src/ft2_events.c
+++ b/src/ft2_events.c
@@ -68,7 +68,7 @@
else
{
// this prevents a 64-bit MUL (will not overflow with the ranges we use anyway)
- lpDueTime.HighPart = 0xFFFFFFFF;
+ lpDueTime.HighPart = UINT32_MAX;
lpDueTime.LowPart = (DWORD)(-10 * (int32_t)usec);
NtDelayExecution(false, &lpDueTime);
--- a/src/ft2_gfxdata.h
+++ b/src/ft2_gfxdata.h
@@ -17,7 +17,7 @@
extern const uint8_t ft2LogoBadgesBMP[6260];
// ft2_bmp_mouse.c
-extern const uint8_t mouseCursorsBMP[3592];
+extern const uint8_t mouseCursorsBMP[3444];
extern const uint8_t mouseCursorBusyClockBMP[1728];
extern const uint8_t mouseCursorBusyGlassBMP[6136];
--- a/src/ft2_gui.c
+++ b/src/ft2_gui.c
@@ -218,7 +218,6 @@
}
setPal16(palTable[config.cfg_StdPalNr], false);
-
seedAboutScreenRandom((uint32_t)time(NULL));
setupInitialTextBoxPointers();
setInitialTrimFlags();
--- a/src/ft2_header.h
+++ b/src/ft2_header.h
@@ -12,7 +12,7 @@
#endif
#include "ft2_replayer.h"
-#define PROG_VER_STR "1.30"
+#define PROG_VER_STR "1.31"
// do NOT change these! It will only mess things up...
--- a/src/ft2_help.c
+++ b/src/ft2_help.c
@@ -453,7 +453,7 @@
fHlp_Line = 0;
// force update even if new pos value was to be the same as old
- scrollBars[SB_HELP_SCROLL].oldPos = 0xFFFFFFFF;
+ scrollBars[SB_HELP_SCROLL].oldPos = UINT32_MAX;
setScrollBarEnd(SB_HELP_SCROLL, subjLen[fHlp_Nr]);
setScrollBarPos(SB_HELP_SCROLL, 0, false);
--- a/src/ft2_pattern_ed.c
+++ b/src/ft2_pattern_ed.c
@@ -376,7 +376,7 @@
cursor.ch = (uint8_t)(song.antChn - 1);
if (ui.pattChanScrollShown)
{
- scrollBars[SB_CHAN_SCROLL].oldPos = 0xFFFFFFFF; // kludge
+ scrollBars[SB_CHAN_SCROLL].oldPos = UINT32_MAX; // kludge
setScrollBarPos(SB_CHAN_SCROLL, song.antChn, true);
}
}
@@ -400,7 +400,7 @@
cursor.ch = 0;
if (ui.pattChanScrollShown)
{
- scrollBars[SB_CHAN_SCROLL].oldPos = 0xFFFFFFFF; // kludge
+ scrollBars[SB_CHAN_SCROLL].oldPos = UINT32_MAX; // kludge
setScrollBarPos(SB_CHAN_SCROLL, 0, true);
}
}
@@ -622,9 +622,9 @@
}
// force update even if new values were to be the same as the old ones
- scrollBars[SB_POS_ED].oldEnd = 0xFFFFFFFF;
- scrollBars[SB_POS_ED].oldPage = 0xFFFFFFFF;
- scrollBars[SB_POS_ED].oldPos = 0xFFFFFFFF;
+ scrollBars[SB_POS_ED].oldEnd = UINT32_MAX;
+ scrollBars[SB_POS_ED].oldPage = UINT32_MAX;
+ scrollBars[SB_POS_ED].oldPos = UINT32_MAX;
}
void patternEditorExtended(void)
--- a/src/ft2_pushbuttons.c
+++ b/src/ft2_pushbuttons.c
@@ -363,7 +363,7 @@
{ 70, 87, 58, 16, 0, 0, "Set path", NULL, NULL, pbDiskOpSetPath },
{ 70, 104, 58, 16, 0, 0, "Show all", NULL, NULL, pbDiskOpShowAll },
{ 70, 121, 58, 19, 0, 0, "Exit", NULL, NULL, pbDiskOpExit },
-#ifdef _WIN32
+#ifdef _WIN32 // partition letters
{ 134, 2, 31, 13, 0, 0, ".\001", NULL, NULL, pbDiskOpParent },
{ 134, 16, 31, 12, 0, 0, "\\", NULL, NULL, pbDiskOpRoot },
{ 134, 29, 31, 13, 0, 0, NULL, NULL, NULL, pbDiskOpDrive1 },
@@ -383,7 +383,7 @@
// ------ WAV RENDERER PUSHBUTTONS ------
//x, y, w, h, p, d, text #1, text #2, funcOnDown, funcOnUp
- { 3, 111, 73, 43, 0, 0, "RECORD", NULL, NULL, pbWavRender },
+ { 3, 111, 73, 43, 0, 0, "Export", NULL, NULL, pbWavRender },
{ 3, 155, 73, 16, 0, 0, "Exit", NULL, NULL, pbWavExit },
{ 253, 114, 18, 13, 1, 6, ARROW_UP_STRING, NULL, pbWavFreqUp, NULL },
{ 270, 114, 18, 13, 1, 6, ARROW_DOWN_STRING, NULL, pbWavFreqDown, NULL },
--- a/src/ft2_radiobuttons.c
+++ b/src/ft2_radiobuttons.c
@@ -88,10 +88,9 @@
//x, y, w, group, funcOnUp
{ 509, 16, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio44kHz },
{ 509, 30, 121, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio48kHz },
-#if defined __amd64__ || defined _WIN64
{ 509, 44, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio96kHz },
{ 509, 58, 73, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio192kHz },
-#endif
+
// audio input frequency
//x, y, w, group, funcOnUp
{ 180, 156, 60, RB_GROUP_CONFIG_AUDIO_INPUT_FREQ, rbConfigAudioInput44kHz },
--- a/src/ft2_radiobuttons.h
+++ b/src/ft2_radiobuttons.h
@@ -57,10 +57,8 @@
// AUDIO FREQUENCY
RB_CONFIG_AUDIO_44KHZ,
RB_CONFIG_AUDIO_48KHZ,
-#if defined __amd64__ || defined _WIN64
RB_CONFIG_AUDIO_96KHZ,
RB_CONFIG_AUDIO_192KHZ,
-#endif
// AUDIO INPUT FREQUENCY
RB_CONFIG_AUDIO_INPUT_44KHZ,
--- a/src/ft2_replayer.c
+++ b/src/ft2_replayer.c
@@ -27,7 +27,8 @@
*/
// non-FT2 precalced stuff
-static double dPeriod2HzTab[65536], dLogTab[768], d2nRevTab[32], dHz2MixDeltaMul;
+static double dPeriod2HzTab[65536], dLogTab[768], dHz2MixDeltaMul;
+static uint32_t revMixDeltaTab[65536];
static bool bxxOverflow;
static tonTyp nilPatternLine;
@@ -209,13 +210,6 @@
return i+1;
}
-static void calc2nRevTable(void) // for calcPeriod2HzTable()
-{
- d2nRevTab[0] = 1.0;
- for (int32_t i = 0; i < 32; i++)
- d2nRevTab[i] = 1.0 / (1UL << i);
-}
-
static void calcPeriod2HzTable(void) // called every time "linear/amiga frequency" mode is changed
{
dPeriod2HzTab[0] = 0.0; // in FT2, a period of 0 converts to 0Hz
@@ -230,7 +224,7 @@
const int32_t period = invPeriod % 768;
const int32_t invOct = (14 - octave) & 0x1F; // accurate to FT2
- dPeriod2HzTab[i] = dLogTab[period] * d2nRevTab[invOct]; // x = y / 2^invOct
+ dPeriod2HzTab[i] = dLogTab[period] / (1UL << invOct); // x = y / 2^invOct
}
}
else
@@ -241,6 +235,29 @@
}
}
+/* Called every time "linear/amiga frequency" mode or audio frequency is changed.
+**
+** Used to replace a DIV with a MUL in the outside audio mixer loop. This can actually
+** be beneficial if you are playing VERY tightly looped samples, and/or if the CPU has
+** no DIV instruction (certain ARM CPUs, for instance).
+**
+** A bit hackish and extreme considering it's 65536*4 bytes, but that's My Game�
+*/
+void calcRevMixDeltaTable(void)
+{
+ for (int32_t i = 0; i < 65536; i++)
+ {
+ const uint16_t period = (uint16_t)i;
+ const uint64_t delta = getMixerDelta(period);
+
+ uint32_t revDelta = UINT32_MAX;
+ if (delta != 0)
+ revDelta = (uint32_t)((UINT64_MAX / delta) >> 16); // MUST be truncated, not rounded!
+
+ revMixDeltaTab[i] = revDelta;
+ }
+}
+
void setFrqTab(bool linear)
{
pauseAudio();
@@ -253,6 +270,7 @@
note2Period = amigaPeriods;
calcPeriod2HzTable();
+ calcRevMixDeltaTable();
resumeAudio();
@@ -356,26 +374,20 @@
return;
dHz2MixDeltaMul = (double)MIXER_FRAC_SCALE / audioFreq;
+ audio.quickVolRampSamples = (int32_t)((audioFreq / 200.0) + 0.5); // rounded
+ audio.fRampQuickVolMul = 1.0f / audio.quickVolRampSamples;
- audio.quickVolSizeVal = (int32_t)((audioFreq / 200.0) + 0.5); // rounded
- audio.rampQuickVolMul = (int32_t)(((UINT32_MAX + 1.0) / audio.quickVolSizeVal) + 0.5); // rounded
-
- /* Calculate tables to prevent floating point operations on systems that
- ** might have a slow FPU. This is quite hackish and not really needed,
- ** but it doesn't take up a lot of RAM, so why not.
- */
-
- audio.dSpeedValTab[0] = 0.0;
+ audio.dSamplesPerTickTab[0] = 0.0;
audio.tickTimeLengthTab[0] = UINT64_MAX;
- audio.rampSpeedValMulTab[0] = INT32_MAX;
+ audio.fRampTickMulTab[0] = 0.0f;
for (int32_t i = MIN_BPM; i <= MAX_BPM; i++)
{
- const double dBpmHz = i / 2.5;
+ const double dBpmHz = i * (1.0 / 2.5); // i / 2.5
const double dSamplesPerTick = audioFreq / dBpmHz;
- audio.dSpeedValTab[i] = dSamplesPerTick;
+ audio.dSamplesPerTickTab[i] = dSamplesPerTick;
- // BPM -> Hz -> tick length for performance counter (syncing visuals to audio)
+ // BPM Hz -> tick length for performance counter (syncing visuals to audio)
double dTimeInt;
double dTimeFrac = modf(editor.dPerfFreq / dBpmHz, &dTimeInt);
const int32_t timeInt = (int32_t)dTimeInt;
@@ -384,9 +396,9 @@
audio.tickTimeLengthTab[i] = ((uint64_t)timeInt << 32) | (uint32_t)dTimeFrac;
- // for calculating volume ramp length for "tick" ramps
- const int32_t samplesPerTick = (int32_t)(dSamplesPerTick + 0.5); // this has to be rounded
- audio.rampSpeedValMulTab[i] = (int32_t)(((UINT32_MAX + 1.0) / samplesPerTick) + 0.5); // rounded
+ // for calculating volume ramp length for tick-lenghted ramps
+ const int32_t samplesPerTick = (int32_t)(dSamplesPerTick + 0.5); // this has to be rounded first
+ audio.fRampTickMulTab[i] = 1.0f / samplesPerTick;
}
}
@@ -395,17 +407,15 @@
return dPeriod2HzTab[period];
}
-#if defined _WIN64 || defined __amd64__
int64_t getMixerDelta(uint16_t period)
{
return (int64_t)((dPeriod2Hz(period) * dHz2MixDeltaMul) + 0.5); // Hz -> rounded fixed-point mixer delta
}
-#else
-int32_t getMixerDelta(uint16_t period)
+
+uint32_t getRevMixerDelta(uint16_t period)
{
- return (int32_t)((dPeriod2Hz(period) * dHz2MixDeltaMul) + 0.5); // Hz -> rounded fixed-point mixer delta
+ return revMixDeltaTab[period];
}
-#endif
int32_t getPianoKey(uint16_t period, int32_t finetune, int32_t relativeNote) // for piano in Instr. Ed.
{
@@ -1216,9 +1226,9 @@
{
bool envInterpolateFlag, envDidInterpolate;
uint8_t envPos;
- int16_t autoVibVal, panTmp;
+ int16_t autoVibVal;
uint16_t tmpPeriod, autoVibAmp, envVal;
- uint32_t vol;
+ float fVol;
instrTyp *ins;
ins = ch->instrSeg;
@@ -1323,32 +1333,28 @@
}
}
- // original FT2 shifts the vol env. range to 0..64, but we keep its full resolution (0..16384)
+ fVol = song.globVol * (1.0f / 64.0f);
+ fVol *= ch->outVol * (1.0f / 64.0f);
+ fVol *= ch->fadeOutAmp * (1.0f / 32768.0f);
+ fVol *= envVal * (1.0f / 16384.0f);
- // 0..64 * 0..64 * 0..32768 = 0..134217728
- vol = song.globVol * ch->outVol * ch->fadeOutAmp;
-
- // ((0..134217728 * 0..16384) + 2^10) / 2^11 = 0..1073741824 (rounded)
- vol = (uint32_t)((((int64_t)vol * envVal) + (1UL << 10)) >> 11);
-
- ch->status |= IS_Vol;
+ ch->status |= IS_Vol; // update vol every tick because vol envelope is enabled
}
else
{
- // (0..64 * 0..64 * 0..32768) * 2^3 = 0..1073741824
- vol = (uint32_t)(song.globVol * ch->outVol * ch->fadeOutAmp) << 3;
+ fVol = song.globVol * (1.0f / 64.0f);
+ fVol *= ch->outVol * (1.0f / 64.0f);
+ fVol *= ch->fadeOutAmp * (1.0f / 32768.0f);
}
- // original FT2 calculates final volume with a range of 0..256. We do it with a range of 0..1073741824 (why not)
+ if (fVol > 1.0f) // shouldn't happen, but just in case...
+ fVol = 1.0f;
- if (vol > (1UL<<30)) // shouldn't happen, but just in case...
- vol = (1UL<<30);
-
- ch->finalVol = vol;
+ ch->fFinalVol = fVol;
}
else
{
- ch->finalVol = 0;
+ ch->fFinalVol = 0.0f;
}
// *** PANNING ENVELOPE ***
@@ -1432,15 +1438,12 @@
}
}
- panTmp = ch->outPan - 128;
- if (panTmp > 0)
- panTmp = 0 - panTmp;
- panTmp += 128;
+ const int32_t panTmp = 128 - ABS(ch->outPan - 128);
+ const int32_t panEnv = (int32_t)envVal - (32*256); // -8192..7936
+ const int32_t panAdd = (int32_t)roundf((panTmp * panEnv) * (1.0f / 8192.0f)); // -128..124
+ ch->finalPan = (uint8_t)CLAMP(ch->outPan + panAdd, 0, 255);
- envVal -= 32*256;
-
- ch->finalPan = ch->outPan + (uint8_t)(((int16_t)envVal * panTmp) >> 13);
- ch->status |= IS_Pan;
+ ch->status |= IS_Pan; // update pan every tick because pan envelope is enabled
}
else
{
@@ -2095,7 +2098,7 @@
}
}
-void mainPlayer(void) // periodically called from audio callback
+void tickReplayer(void) // periodically called from audio callback
{
bool readNewNote;
int32_t i;
@@ -2734,8 +2737,9 @@
audio.linearFreqTable = true;
note2Period = linearPeriods;
- calc2nRevTable();
+
calcPeriod2HzTable();
+ calcRevMixDeltaTable();
calcPanningTable();
setPos(0, 0, true);
@@ -3055,7 +3059,7 @@
ch->realVol = 0;
ch->outVol = 0;
ch->oldVol = 0;
- ch->finalVol = 0;
+ ch->fFinalVol = 0.0f;
ch->oldPan = 128;
ch->outPan = 128;
ch->finalPan = 128;
--- a/src/ft2_replayer.h
+++ b/src/ft2_replayer.h
@@ -13,6 +13,10 @@
IS_Pan = 8, // set panning
IS_QuickVol = 16, // 5ms volramp instead of tick ms
+ LOOP_DISABLED = 0,
+ LOOP_FORWARD = 1,
+ LOOP_PINGPONG = 2,
+
// tracker playback modes
PLAYMODE_IDLE = 0,
PLAYMODE_EDIT = 1,
@@ -204,7 +208,7 @@
uint16_t outPeriod, realPeriod, finalPeriod, tonTyp, wantPeriod, portaSpeed;
uint16_t envVCnt, envVAmp, envPCnt, envPAmp, eVibAmp, eVibSweep;
uint16_t fadeOutAmp, fadeOutSpeed, midiVibDepth;
- uint32_t finalVol;
+ float fFinalVol;
int32_t smpStartPos;
sampleTyp *smpPtr;
instrTyp *instrSeg;
@@ -234,7 +238,7 @@
uint8_t status, sampleNr, instrNr;
uint16_t finalPeriod;
int32_t smpStartPos;
- uint32_t finalVol;
+ float fFinalVol;
} syncedChannel_t;
void fixSongName(void); // removes spaces from right side of song name
@@ -242,14 +246,12 @@
void calcReplayRate(int32_t rate);
void tuneSample(sampleTyp *s, int32_t midCFreq);
+void calcRevMixDeltaTable(void);
void calcReplayerLogTab(void);
double dPeriod2Hz(uint16_t period);
-#if defined _WIN64 || defined __amd64__
int64_t getMixerDelta(uint16_t period);
-#else
-int32_t getMixerDelta(uint16_t period);
-#endif
+uint32_t getRevMixerDelta(uint16_t period);
int32_t getPianoKey(uint16_t period, int32_t finetune, int32_t relativeNote); // for piano in Instr. Ed.
@@ -281,7 +283,7 @@
void samp2Delta(int8_t *p, int32_t len, uint8_t typ);
void setPatternLen(uint16_t nr, int16_t len);
void setFrqTab(bool linear);
-void mainPlayer(void); // periodically called from audio callback
+void tickReplayer(void); // periodically called from audio callback
void resetChannels(void);
bool patternEmpty(uint16_t nr);
int16_t getUsedSamples(int16_t nr);
--- a/src/ft2_scopedraw.c
+++ b/src/ft2_scopedraw.c
@@ -8,80 +8,80 @@
/* ----------------------------------------------------------------------- */
#define SCOPE_REGS_NO_LOOP \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t scopePixelColor = video.palette[PAL_PATTEXT]; \
- const uint32_t drawLen = x + w; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t color = video.palette[PAL_PATTEXT]; \
+ const uint32_t width = x + w; \
int32_t sample; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
#define SCOPE_REGS_LOOP \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const int32_t SRepS = s->SRepS; \
- const int32_t SRepL = s->SRepL; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t scopePixelColor = video.palette[PAL_PATTEXT]; \
- const uint32_t drawLen = x + w; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const int32_t loopStart = s->loopStart; \
+ const int32_t loopLength = s->loopLength; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t color = video.palette[PAL_PATTEXT]; \
+ const uint32_t width = x + w; \
int32_t sample; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
#define SCOPE_REGS_PINGPONG \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const int32_t SRepS = s->SRepS; \
- const int32_t SRepL = s->SRepL; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t scopePixelColor = video.palette[PAL_PATTEXT]; \
- const uint32_t drawLen = x + w; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const int32_t loopStart = s->loopStart; \
+ const int32_t loopLength = s->loopLength; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t color = video.palette[PAL_PATTEXT]; \
+ const uint32_t width = x + w; \
int32_t sample; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
- int32_t drawPosDir = s->backwards ? -1 : 1; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
+ int32_t direction = s->direction; \
#define LINED_SCOPE_REGS_NO_LOOP \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t drawLen = (x + w) - 1; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t width = (x + w) - 1; \
int32_t sample; \
int32_t y1, y2; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
#define LINED_SCOPE_REGS_LOOP \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const int32_t SRepS = s->SRepS; \
- const int32_t SRepL = s->SRepL; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t drawLen = (x + w) - 1; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const int32_t loopStart = s->loopStart; \
+ const int32_t loopLength = s->loopLength; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t width = (x + w) - 1; \
int32_t sample; \
int32_t y1, y2; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
#define LINED_SCOPE_REGS_PINGPONG \
- const int8_t vol = s->SVol; \
- const int32_t SLen = s->SLen; \
- const int32_t SRepS = s->SRepS; \
- const int32_t SRepL = s->SRepL; \
- const uint32_t scopeDrawDelta = s->DFrq; \
- const uint32_t drawLen = (x + w) - 1; \
+ const int32_t vol = s->vol; \
+ const int32_t end = s->end; \
+ const int32_t loopStart = s->loopStart; \
+ const int32_t loopLength = s->loopLength; \
+ const uint32_t delta = s->drawDelta; \
+ const uint32_t width = (x + w) - 1; \
int32_t sample; \
int32_t y1, y2; \
- int32_t scopeDrawPos = s->SPos; \
- int32_t scopeDrawFrac = 0; \
- int32_t drawPosDir = s->backwards ? -1 : 1; \
+ int32_t pos = s->pos; \
+ int32_t posFrac = 0; \
+ int32_t direction = s->direction; \
#define SCOPE_GET_SMP8 \
if (s->active) \
{ \
- assert(scopeDrawPos >= 0 && scopeDrawPos < SLen); \
- sample = (s->sampleData8[scopeDrawPos] * vol) >> 8; \
+ assert(pos >= 0 && pos < end); \
+ sample = (s->base8[pos] * vol) >> 8; \
} \
else \
{ \
@@ -91,8 +91,8 @@
#define SCOPE_GET_SMP16 \
if (s->active) \
{ \
- assert(scopeDrawPos >= 0 && scopeDrawPos < SLen); \
- sample = (int8_t)((s->sampleData16[scopeDrawPos] * vol) >> 16); \
+ assert(pos >= 0 && pos < end); \
+ sample = (int8_t)((s->base16[pos] * vol) >> 16); \
} \
else \
{ \
@@ -100,17 +100,17 @@
} \
#define SCOPE_UPDATE_DRAWPOS \
- scopeDrawFrac += scopeDrawDelta; \
- scopeDrawPos += scopeDrawFrac >> SCOPE_DRAW_FRAC_BITS; \
- scopeDrawFrac &= SCOPE_DRAW_FRAC_MASK; \
+ posFrac += delta; \
+ pos += posFrac >> SCOPE_DRAW_FRAC_BITS; \
+ posFrac &= SCOPE_DRAW_FRAC_MASK; \
#define SCOPE_UPDATE_DRAWPOS_PINGPONG \
- scopeDrawFrac += scopeDrawDelta; \
- scopeDrawPos += (scopeDrawFrac >> SCOPE_DRAW_FRAC_BITS) * drawPosDir; \
- scopeDrawFrac &= SCOPE_DRAW_FRAC_MASK; \
+ posFrac += delta; \
+ pos += (int32_t)(posFrac >> SCOPE_DRAW_FRAC_BITS) * direction; \
+ posFrac &= SCOPE_DRAW_FRAC_MASK; \
#define SCOPE_DRAW_SMP \
- video.frameBuffer[((lineY - sample) * SCREEN_W) + x] = scopePixelColor;
+ video.frameBuffer[((lineY - sample) * SCREEN_W) + x] = color;
#define LINED_SCOPE_PREPARE_SMP8 \
SCOPE_GET_SMP8 \
@@ -128,44 +128,44 @@
y1 = y2; \
#define SCOPE_HANDLE_POS_NO_LOOP \
- if (scopeDrawPos >= SLen) \
+ if (pos >= end) \
s->active = false; \
#define SCOPE_HANDLE_POS_LOOP \
- if (scopeDrawPos >= SLen) \
+ if (pos >= end) \
{ \
- if (SRepL >= 2) \
- scopeDrawPos = SRepS + ((scopeDrawPos - SLen) % SRepL); \
+ if (loopLength >= 2) \
+ pos = loopStart + ((pos - end) % loopLength); \
else \
- scopeDrawPos = SRepS; \
+ pos = loopStart; \
\
- assert(scopeDrawPos >= SRepS && scopeDrawPos < SLen); \
+ assert(pos >= loopStart && pos < end); \
} \
#define SCOPE_HANDLE_POS_PINGPONG \
- if (drawPosDir == -1 && scopeDrawPos < SRepS) \
+ if (direction == -1 && pos < loopStart) \
{ \
- drawPosDir = 1; /* change direction to forwards */ \
+ direction = 1; /* change direction to forwards */ \
\
- if (SRepL >= 2) \
- scopeDrawPos = SRepS + ((SRepS - scopeDrawPos - 1) % SRepL); \
+ if (loopLength >= 2) \
+ pos = loopStart + ((loopStart - pos - 1) % loopLength); \
else \
- scopeDrawPos = SRepS; \
+ pos = loopStart; \
\
- assert(scopeDrawPos >= SRepS && scopeDrawPos < SLen); \
+ assert(pos >= loopStart && pos < end); \
} \
- else if (scopeDrawPos >= SLen) \
+ else if (pos >= end) \
{ \
- drawPosDir = -1; /* change direction to backwards */ \
+ direction = -1; /* change direction to backwards */ \
\
- if (SRepL >= 2) \
- scopeDrawPos = (SLen - 1) - ((scopeDrawPos - SLen) % SRepL); \
+ if (loopLength >= 2) \
+ pos = (end - 1) - ((pos - end) % loopLength); \
else \
- scopeDrawPos = SLen - 1; \
+ pos = end - 1; \
\
- assert(scopeDrawPos >= SRepS && scopeDrawPos < SLen); \
+ assert(pos >= loopStart && pos < end); \
} \
- assert(scopeDrawPos >= 0); \
+ assert(pos >= 0); \
static void scopeLine(int32_t x1, int32_t y1, int32_t y2)
{
@@ -215,7 +215,7 @@
{
SCOPE_REGS_NO_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
SCOPE_DRAW_SMP
@@ -228,7 +228,7 @@
{
SCOPE_REGS_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
SCOPE_DRAW_SMP
@@ -241,7 +241,7 @@
{
SCOPE_REGS_PINGPONG
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
SCOPE_DRAW_SMP
@@ -254,7 +254,7 @@
{
SCOPE_REGS_NO_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
SCOPE_DRAW_SMP
@@ -267,7 +267,7 @@
{
SCOPE_REGS_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
SCOPE_DRAW_SMP
@@ -280,7 +280,7 @@
{
SCOPE_REGS_PINGPONG
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
SCOPE_DRAW_SMP
@@ -299,7 +299,7 @@
LINED_SCOPE_PREPARE_SMP8
SCOPE_HANDLE_POS_NO_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
LINED_SCOPE_DRAW_SMP
@@ -314,7 +314,7 @@
LINED_SCOPE_PREPARE_SMP8
SCOPE_HANDLE_POS_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
LINED_SCOPE_DRAW_SMP
@@ -329,7 +329,7 @@
LINED_SCOPE_PREPARE_SMP8
SCOPE_HANDLE_POS_PINGPONG
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP8
LINED_SCOPE_DRAW_SMP
@@ -344,7 +344,7 @@
LINED_SCOPE_PREPARE_SMP16
SCOPE_HANDLE_POS_NO_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
LINED_SCOPE_DRAW_SMP
@@ -359,7 +359,7 @@
LINED_SCOPE_PREPARE_SMP16
SCOPE_HANDLE_POS_LOOP
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
LINED_SCOPE_DRAW_SMP
@@ -374,7 +374,7 @@
LINED_SCOPE_PREPARE_SMP16
SCOPE_HANDLE_POS_PINGPONG
- for (; x < drawLen; x++)
+ for (; x < width; x++)
{
SCOPE_GET_SMP16
LINED_SCOPE_DRAW_SMP
--- a/src/ft2_scopes.c
+++ b/src/ft2_scopes.c
@@ -23,27 +23,12 @@
#include "ft2_tables.h"
#include "ft2_structs.h"
-enum
-{
- LOOP_NONE = 0,
- LOOP_FORWARD = 1,
- LOOP_PINGPONG = 2
-};
-
#define SCOPE_HEIGHT 36
-// data to be read from main update thread during sample trigger
-typedef struct scopeState_t
-{
- int8_t *pek;
- uint8_t typ;
- int32_t len, repS, repL, playOffset;
-} scopeState_t;
-
static volatile bool scopesUpdatingFlag, scopesDisplayingFlag;
static int32_t oldPeriod;
-static uint32_t oldDFrq, scopeTimeLen, scopeTimeLenFrac;
-static uint64_t oldSFrq, timeNext64, timeNext64Frac;
+static uint32_t oldDrawDelta, scopeTimeLen, scopeTimeLenFrac;
+static uint64_t oldDelta, timeNext64, timeNext64Frac;
static volatile scope_t scope[MAX_VOICES];
static SDL_Thread *scopeThread;
@@ -52,14 +37,14 @@
void resetCachedScopeVars(void)
{
oldPeriod = -1;
- oldSFrq = 0;
- oldDFrq = 0;
+ oldDelta = 0;
+ oldDrawDelta = 0;
}
int32_t getSamplePosition(uint8_t ch)
{
volatile bool active, sampleIs16Bit;
- volatile int32_t pos, len;
+ volatile int32_t pos, end;
volatile scope_t *sc;
if (ch >= song.antChn)
@@ -69,14 +54,14 @@
// cache some stuff
active = sc->active;
- pos = sc->SPos;
- len = sc->SLen;
+ pos = sc->pos;
+ end = sc->end;
sampleIs16Bit = sc->sampleIs16Bit;
- if (!active || len == 0)
+ if (!active || end == 0)
return -1;
- if (pos >= 0 && pos < len)
+ if (pos >= 0 && pos < end)
{
if (sampleIs16Bit)
pos <<= 1;
@@ -114,7 +99,7 @@
ch->realVol = 0;
ch->outVol = 0;
ch->oldVol = 0;
- ch->finalVol = 0;
+ ch->fFinalVol = 0.0f;
ch->outPan = 128;
ch->oldPan = 128;
ch->finalPan = 128;
@@ -320,7 +305,7 @@
{
bool sampleIs16Bit;
uint8_t loopType;
- int32_t length, loopBegin, loopLength;
+ int32_t length, loopStart, loopLength, loopEnd;
volatile scope_t *sc;
scope_t tempState;
@@ -327,8 +312,9 @@
sc = &scope[ch];
length = s->len;
- loopBegin = s->repS;
+ loopStart = s->repS;
loopLength = s->repL;
+ loopEnd = s->repS + s->repL;
loopType = s->typ & 3;
sampleIs16Bit = (s->typ >> 4) & 1;
@@ -335,12 +321,14 @@
if (sampleIs16Bit)
{
assert(!(length & 1));
- assert(!(loopBegin & 1));
+ assert(!(loopStart & 1));
assert(!(loopLength & 1));
+ assert(!(loopEnd & 1));
length >>= 1;
- loopBegin >>= 1;
+ loopStart >>= 1;
loopLength >>= 1;
+ loopEnd >>= 1;
}
if (s->pek == NULL || length < 1)
@@ -353,22 +341,22 @@
loopType = 0;
if (sampleIs16Bit)
- tempState.sampleData16 = (const int16_t *)s->pek;
+ tempState.base16 = (const int16_t *)s->pek;
else
- tempState.sampleData8 = (const int8_t *)s->pek;
+ tempState.base8 = s->pek;
tempState.sampleIs16Bit = sampleIs16Bit;
tempState.loopType = loopType;
- tempState.backwards = false;
- tempState.SLen = (loopType > 0) ? (loopBegin + loopLength) : length;
- tempState.SRepS = loopBegin;
- tempState.SRepL = loopLength;
- tempState.SPos = playOffset;
- tempState.SPosDec = 0; // position fraction
+ tempState.direction = 1; // forwards
+ tempState.end = (loopType > 0) ? loopEnd : length;
+ tempState.loopStart = loopStart;
+ tempState.loopLength = loopLength;
+ tempState.pos = playOffset;
+ tempState.posFrac = 0;
- // if 9xx position overflows, shut down scopes
- if (tempState.SPos >= tempState.SLen)
+ // if position overflows (f.ex. through 9xx command), shut down scopes
+ if (tempState.pos >= tempState.end)
{
sc->active = false;
return;
@@ -376,9 +364,9 @@
// these has to be read
tempState.wasCleared = sc->wasCleared;
- tempState.SFrq = sc->SFrq;
- tempState.DFrq = sc->DFrq;
- tempState.SVol = sc->SVol;
+ tempState.delta = sc->delta;
+ tempState.drawDelta = sc->drawDelta;
+ tempState.vol = sc->vol;
tempState.active = true;
@@ -400,59 +388,54 @@
volatile scope_t *sc = scope;
for (int32_t i = 0; i < song.antChn; i++, sc++)
{
- scope_t tempState = *sc; // cache it
- if (!tempState.active)
+ scope_t s = *sc; // cache it
+ if (!s.active)
continue; // scope is not active, no need
// scope position update
- tempState.SPosDec += tempState.SFrq;
- const uint32_t posAdd = tempState.SPosDec >> SCOPE_FRAC_BITS;
- tempState.SPosDec &= SCOPE_FRAC_MASK;
+ s.posFrac += s.delta;
+ s.pos += (int32_t)(s.posFrac >> SCOPE_FRAC_BITS) * s.direction;
+ s.posFrac &= SCOPE_FRAC_MASK;
- if (tempState.backwards)
- tempState.SPos -= posAdd;
- else
- tempState.SPos += posAdd;
-
// handle loop wrapping or sample end
- if (tempState.backwards && tempState.SPos < tempState.SRepS) // sampling backwards (definitely pingpong loop)
+ if (s.direction == -1 && s.pos < s.loopStart) // sampling backwards (definitely pingpong loop)
{
- tempState.backwards = false; // change direction to forwards
+ s.direction = 1; // change direction to forwards
- if (tempState.SRepL >= 2)
- tempState.SPos = tempState.SRepS + ((tempState.SRepS - tempState.SPos - 1) % tempState.SRepL);
+ if (s.loopLength >= 2)
+ s.pos = s.loopStart + ((s.loopStart - s.pos - 1) % s.loopLength);
else
- tempState.SPos = tempState.SRepS;
+ s.pos = s.loopStart;
- assert(tempState.SPos >= tempState.SRepS && tempState.SPos < tempState.SLen);
+ assert(s.pos >= s.loopStart && s.pos < s.end);
}
- else if (tempState.SPos >= tempState.SLen)
+ else if (s.pos >= s.end)
{
- if (tempState.SRepL >= 2)
- loopOverflowVal = (tempState.SPos - tempState.SLen) % tempState.SRepL;
+ if (s.loopLength >= 2)
+ loopOverflowVal = (s.pos - s.end) % s.loopLength;
else
loopOverflowVal = 0;
- if (tempState.loopType == LOOP_NONE)
+ if (s.loopType == LOOP_DISABLED)
{
- tempState.active = false;
+ s.active = false;
}
- else if (tempState.loopType == LOOP_FORWARD)
+ else if (s.loopType == LOOP_FORWARD)
{
- tempState.SPos = tempState.SRepS + loopOverflowVal;
- assert(tempState.SPos >= tempState.SRepS && tempState.SPos < tempState.SLen);
+ s.pos = s.loopStart + loopOverflowVal;
+ assert(s.pos >= s.loopStart && s.pos < s.end);
}
else // pingpong loop
{
- tempState.backwards = true; // change direction to backwards
- tempState.SPos = (tempState.SLen - 1) - loopOverflowVal;
- assert(tempState.SPos >= tempState.SRepS && tempState.SPos < tempState.SLen);
+ s.direction = -1; // change direction to backwards
+ s.pos = (s.end - 1) - loopOverflowVal;
+ assert(s.pos >= s.loopStart && s.pos < s.end);
}
}
- assert(tempState.SPos >= 0);
+ assert(s.pos >= 0);
- *sc = tempState; // update scope state
+ *sc = s; // update scope state
}
scopesUpdatingFlag = false;
}
@@ -490,7 +473,7 @@
}
const scope_t s = scope[i]; // cache scope to lower thread race condition issues
- if (s.active && s.SVol > 0 && !audio.locked)
+ if (s.active && s.vol > 0 && !audio.locked)
{
// scope is active
scope[i].wasCleared = false;
@@ -550,7 +533,7 @@
status = scopeUpdateStatus[i];
if (status & IS_Vol)
- sc->SVol = (int8_t)((((ch->finalVol >> 6) * SCOPE_HEIGHT)) >> 24); // rounded
+ sc->vol = (int32_t)((ch->fFinalVol * SCOPE_HEIGHT) + 0.5f); // rounded
if (status & IS_Period)
{
@@ -563,14 +546,14 @@
const double dHz = dPeriod2Hz(period);
const double dScopeRateFactor = SCOPE_FRAC_SCALE / (double)SCOPE_HZ;
- oldSFrq = (int64_t)((dHz * dScopeRateFactor) + 0.5); // Hz -> rounded fixed-point delta
+ oldDelta = (int64_t)((dHz * dScopeRateFactor) + 0.5); // Hz -> rounded fixed-point delta
const double dRelativeHz = dHz * (1.0 / (8363.0 / 2.0));
- oldDFrq = (int32_t)((dRelativeHz * SCOPE_DRAW_FRAC_SCALE) + 0.5); // Hz -> rounded fixed-point draw delta
+ oldDrawDelta = (int32_t)((dRelativeHz * SCOPE_DRAW_FRAC_SCALE) + 0.5); // Hz -> rounded fixed-point draw delta
}
- sc->SFrq = oldSFrq;
- sc->DFrq = oldDFrq;
+ sc->delta = oldDelta;
+ sc->drawDelta = oldDrawDelta;
}
if (status & IS_NyTon)
@@ -626,9 +609,9 @@
// update next tick time
timeNext64 += scopeTimeLen;
timeNext64Frac += scopeTimeLenFrac;
- if (timeNext64Frac > 0xFFFFFFFF)
+ if (timeNext64Frac > UINT32_MAX)
{
- timeNext64Frac &= 0xFFFFFFFF;
+ timeNext64Frac &= UINT32_MAX;
timeNext64++;
}
}
--- a/src/ft2_scopes.h
+++ b/src/ft2_scopes.h
@@ -27,14 +27,13 @@
typedef struct scope_t
{
volatile bool active;
- const int8_t *sampleData8;
- const int16_t *sampleData16;
- int8_t SVol;
- bool wasCleared, sampleIs16Bit, backwards;
+ const int8_t *base8;
+ const int16_t *base16;
+ bool wasCleared, sampleIs16Bit;
uint8_t loopType;
- int32_t SRepS, SRepL, SLen, SPos;
- uint32_t DFrq;
- uint64_t SFrq, SPosDec;
+ int32_t vol, loopStart, loopLength, end, pos, direction;
+ uint32_t drawDelta;
+ uint64_t delta, posFrac;
} scope_t;
typedef struct lastChInstr_t
--- a/src/ft2_scrollbars.c
+++ b/src/ft2_scrollbars.c
@@ -693,9 +693,9 @@
{
for (int32_t i = 0; i < NUM_SCROLLBARS; i++)
{
- scrollBars[i].oldEnd = 0xFFFFFFFF;
- scrollBars[i].oldPage = 0xFFFFFFFF;
- scrollBars[i].oldPos = 0xFFFFFFFF;
+ scrollBars[i].oldEnd = UINT32_MAX;
+ scrollBars[i].oldPage = UINT32_MAX;
+ scrollBars[i].oldPos = UINT32_MAX;
}
// pattern editor
--- a/src/ft2_tables.c
+++ b/src/ft2_tables.c
@@ -693,138 +693,6 @@
'0', '1', '2'
};
-const int16_t sinusTables[256 * 5] = // for 3D stars in About screen
-{
- 0, 201, 402, 603, 804, 1005, 1206, 1407, 1608, 1809,
- 2009, 2210, 2410, 2611, 2811, 3011, 3212, 3412, 3612, 3811,
- 4011, 4210, 4410, 4609, 4808, 5007, 5205, 5404, 5602, 5800,
- 5997, 6195, 6392, 6589, 6786, 6983, 7179, 7375, 7571, 7766,
- 7961, 8156, 8351, 8545, 8739, 8933, 9126, 9319, 9511, 9704,
- 9896, 10087, 10278, 10469, 10659, 10849, 11039, 11228, 11416, 11605,
- 11792, 11980, 12167, 12353, 12539, 12725, 12910, 13094, 13278, 13462,
- 13645, 13827, 14009, 14191, 14372, 14552, 14732, 14911, 15090, 15268,
- 15446, 15623, 15799, 15975, 16150, 16325, 16499, 16672, 16845, 17017,
- 17189, 17360, 17530, 17699, 17868, 18036, 18204, 18371, 18537, 18702,
- 18867, 19031, 19194, 19357, 19519, 19680, 19840, 20000, 20159, 20317,
- 20474, 20631, 20787, 20942, 21096, 21249, 21402, 21554, 21705, 21855,
- 22004, 22153, 22301, 22447, 22593, 22739, 22883, 23026, 23169, 23311,
- 23452, 23592, 23731, 23869, 24006, 24143, 24278, 24413, 24546, 24679,
- 24811, 24942, 25071, 25200, 25328, 25456, 25582, 25707, 25831, 25954,
- 26076, 26198, 26318, 26437, 26555, 26673, 26789, 26904, 27018, 27132,
- 27244, 27355, 27465, 27574, 27682, 27790, 27896, 28000, 28104, 28207,
- 28309, 28410, 28509, 28608, 28705, 28802, 28897, 28991, 29084, 29176,
- 29267, 29357, 29446, 29534, 29620, 29706, 29790, 29873, 29955, 30036,
- 30116, 30194, 30272, 30348, 30423, 30498, 30570, 30642, 30713, 30782,
- 30851, 30918, 30984, 31049, 31112, 31175, 31236, 31296, 31355, 31413,
- 31469, 31525, 31579, 31632, 31684, 31735, 31784, 31832, 31879, 31925,
- 31970, 32013, 32056, 32097, 32136, 32175, 32212, 32249, 32284, 32317,
- 32350, 32381, 32411, 32440, 32468, 32494, 32520, 32544, 32566, 32588,
- 32608, 32627, 32645, 32662, 32677, 32691, 32704, 32716, 32727, 32736,
- 32744, 32751, 32756, 32760, 32764, 32765, 32766, 32765, 32764, 32760,
- 32756, 32751, 32744, 32736, 32727, 32716, 32704, 32691, 32677, 32662,
- 32645, 32627, 32608, 32588, 32566, 32544, 32520, 32494, 32468, 32440,
- 32411, 32381, 32350, 32317, 32284, 32249, 32212, 32175, 32136, 32097,
- 32056, 32013, 31970, 31925, 31879, 31832, 31784, 31735, 31684, 31632,
- 31579, 31525, 31469, 31413, 31355, 31296, 31236, 31175, 31112, 31049,
- 30984, 30918, 30851, 30782, 30713, 30642, 30570, 30498, 30423, 30348,
- 30272, 30194, 30116, 30036, 29955, 29873, 29790, 29706, 29620, 29534,
- 29446, 29357, 29267, 29176, 29084, 28991, 28897, 28802, 28705, 28608,
- 28509, 28410, 28309, 28207, 28104, 28000, 27896, 27790, 27682, 27574,
- 27465, 27355, 27244, 27132, 27018, 26904, 26789, 26673, 26555, 26437,
- 26318, 26198, 26076, 25954, 25831, 25707, 25582, 25456, 25328, 25200,
- 25071, 24942, 24811, 24679, 24546, 24413, 24278, 24143, 24006, 23869,
- 23731, 23592, 23452, 23311, 23169, 23026, 22883, 22739, 22593, 22447,
- 22301, 22153, 22004, 21855, 21705, 21554, 21402, 21249, 21096, 20942,
- 20787, 20631, 20474, 20317, 20159, 20000, 19840, 19680, 19519, 19357,
- 19194, 19031, 18867, 18702, 18537, 18371, 18204, 18036, 17868, 17699,
- 17530, 17360, 17189, 17017, 16845, 16672, 16499, 16325, 16150, 15975,
- 15799, 15623, 15446, 15268, 15090, 14911, 14732, 14552, 14372, 14191,
- 14009, 13827, 13645, 13462, 13278, 13094, 12910, 12725, 12539, 12353,
- 12167, 11980, 11792, 11605, 11416, 11228, 11039, 10849, 10659, 10469,
- 10278, 10087, 9896, 9704, 9511, 9319, 9126, 8933, 8739, 8545,
- 8351, 8156, 7961, 7766, 7571, 7375, 7179, 6983, 6786, 6589,
- 6392, 6195, 5997, 5800, 5602, 5404, 5205, 5007, 4808, 4609,
- 4410, 4210, 4011, 3811, 3612, 3412, 3212, 3011, 2811, 2611,
- 2410, 2210, 2009, 1809, 1608, 1407, 1206, 1005, 804, 603,
- 402, 201, 0, -201, -402, -603, -804, -1005, -1206, -1407,
- -1608, -1809, -2009, -2210, -2410, -2611, -2811, -3011, -3212, -3412,
- -3612, -3811, -4011, -4210, -4410, -4609, -4808, -5007, -5205, -5404,
- -5602, -5800, -5997, -6195, -6392, -6589, -6786, -6983, -7179, -7375,
- -7571, -7766, -7961, -8156, -8351, -8545, -8739, -8933, -9126, -9319,
- -9511, -9704, -9896, -10087, -10278, -10469, -10659, -10849, -11039, -11228,
- -11416, -11605, -11792, -11980, -12167, -12353, -12539, -12725, -12910, -13094,
- -13278, -13462, -13645, -13827, -14009, -14191, -14372, -14552, -14732, -14911,
- -15090, -15268, -15446, -15623, -15799, -15975, -16150, -16325, -16499, -16672,
- -16845, -17017, -17189, -17360, -17530, -17699, -17868, -18036, -18204, -18371,
- -18537, -18702, -18867, -19031, -19194, -19357, -19519, -19680, -19840, -20000,
- -20159, -20317, -20474, -20631, -20787, -20942, -21096, -21249, -21402, -21554,
- -21705, -21855, -22004, -22153, -22301, -22447, -22593, -22739, -22883, -23026,
- -23169, -23311, -23452, -23592, -23731, -23869, -24006, -24143, -24278, -24413,
- -24546, -24679, -24811, -24942, -25071, -25200, -25328, -25456, -25582, -25707,
- -25831, -25954, -26076, -26198, -26318, -26437, -26555, -26673, -26789, -26904,
- -27018, -27132, -27244, -27355, -27465, -27574, -27682, -27790, -27896, -28000,
- -28104, -28207, -28309, -28410, -28509, -28608, -28705, -28802, -28897, -28991,
- -29084, -29176, -29267, -29357, -29446, -29534, -29620, -29706, -29790, -29873,
- -29955, -30036, -30116, -30194, -30272, -30348, -30423, -30498, -30570, -30642,
- -30713, -30782, -30851, -30918, -30984, -31049, -31112, -31175, -31236, -31296,
- -31355, -31413, -31469, -31525, -31579, -31632, -31684, -31735, -31784, -31832,
- -31879, -31925, -31970, -32013, -32056, -32097, -32136, -32175, -32212, -32249,
- -32284, -32317, -32350, -32381, -32411, -32440, -32468, -32494, -32520, -32544,
- -32566, -32588, -32608, -32627, -32645, -32662, -32677, -32691, -32704, -32716,
- -32727, -32736, -32744, -32751, -32756, -32760, -32764, -32765, -32766, -32765,
- -32764, -32760, -32756, -32751, -32744, -32736, -32727, -32716, -32704, -32691,
- -32677, -32662, -32645, -32627, -32608, -32588, -32566, -32544, -32520, -32494,
- -32468, -32440, -32411, -32381, -32350, -32317, -32284, -32249, -32212, -32175,
- -32136, -32097, -32056, -32013, -31970, -31925, -31879, -31832, -31784, -31735,
- -31684, -31632, -31579, -31525, -31469, -31413, -31355, -31296, -31236, -31175,
- -31112, -31049, -30984, -30918, -30851, -30782, -30713, -30642, -30570, -30498,
- -30423, -30348, -30272, -30194, -30116, -30036, -29955, -29873, -29790, -29706,
- -29620, -29534, -29446, -29357, -29267, -29176, -29084, -28991, -28897, -28802,
- -28705, -28608, -28509, -28410, -28309, -28207, -28104, -28000, -27896, -27790,
- -27682, -27574, -27465, -27355, -27244, -27132, -27018, -26904, -26789, -26673,
- -26555, -26437, -26318, -26198, -26076, -25954, -25831, -25707, -25582, -25456,
- -25328, -25200, -25071, -24942, -24811, -24679, -24546, -24413, -24278, -24143,
- -24006, -23869, -23731, -23592, -23452, -23311, -23169, -23026, -22883, -22739,
- -22593, -22447, -22301, -22153, -22004, -21855, -21705, -21554, -21402, -21249,
- -21096, -20942, -20787, -20631, -20474, -20317, -20159, -20000, -19840, -19680,
- -19519, -19357, -19194, -19031, -18867, -18702, -18537, -18371, -18204, -18036,
- -17868, -17699, -17530, -17360, -17189, -17017, -16845, -16672, -16499, -16325,
- -16150, -15975, -15799, -15623, -15446, -15268, -15090, -14911, -14732, -14552,
- -14372, -14191, -14009, -13827, -13645, -13462, -13278, -13094, -12910, -12725,
- -12539, -12353, -12167, -11980, -11792, -11605, -11416, -11228, -11039, -10849,
- -10659, -10469, -10278, -10087, -9896, -9704, -9511, -9319, -9126, -8933,
- -8739, -8545, -8351, -8156, -7961, -7766, -7571, -7375, -7179, -6983,
- -6786, -6589, -6392, -6195, -5997, -5800, -5602, -5404, -5205, -5007,
- -4808, -4609, -4410, -4210, -4011, -3811, -3612, -3412, -3212, -3011,
- -2811, -2611, -2410, -2210, -2009, -1809, -1608, -1407, -1206, -1005,
- -804, -603, -402, -201, 0, 201, 402, 603, 804, 1005,
- 1206, 1407, 1608, 1809, 2009, 2210, 2410, 2611, 2811, 3011,
- 3212, 3412, 3612, 3811, 4011, 4210, 4410, 4609, 4808, 5007,
- 5205, 5404, 5602, 5800, 5997, 6195, 6392, 6589, 6786, 6983,
- 7179, 7375, 7571, 7766, 7961, 8156, 8351, 8545, 8739, 8933,
- 9126, 9319, 9511, 9704, 9896, 10087, 10278, 10469, 10659, 10849,
- 11039, 11228, 11416, 11605, 11792, 11980, 12167, 12353, 12539, 12725,
- 12910, 13094, 13278, 13462, 13645, 13827, 14009, 14191, 14372, 14552,
- 14732, 14911, 15090, 15268, 15446, 15623, 15799, 15975, 16150, 16325,
- 16499, 16672, 16845, 17017, 17189, 17360, 17530, 17699, 17868, 18036,
- 18204, 18371, 18537, 18702, 18867, 19031, 19194, 19357, 19519, 19680,
- 19840, 20000, 20159, 20317, 20474, 20631, 20787, 20942, 21096, 21249,
- 21402, 21554, 21705, 21855, 22004, 22153, 22301, 22447, 22593, 22739,
- 22883, 23026, 23169, 23311, 23452, 23592, 23731, 23869, 24006, 24143,
- 24278, 24413, 24546, 24679, 24811, 24942, 25071, 25200, 25328, 25456,
- 25582, 25707, 25831, 25954, 26076, 26198, 26318, 26437, 26555, 26673,
- 26789, 26904, 27018, 27132, 27244, 27355, 27465, 27574, 27682, 27790,
- 27896, 28000, 28104, 28207, 28309, 28410, 28509, 28608, 28705, 28802,
- 28897, 28991, 29084, 29176, 29267, 29357, 29446, 29534, 29620, 29706,
- 29790, 29873, 29955, 30036, 30116, 30194, 30272, 30348, 30423, 30498,
- 30570, 30642, 30713, 30782, 30851, 30918, 30984, 31049, 31112, 31175,
- 31236, 31296, 31355, 31413, 31469, 31525, 31579, 31632, 31684, 31735,
- 31784, 31832, 31879, 31925, 31970, 32013, 32056, 32097, 32136, 32175,
- 32212, 32249, 32284, 32317, 32350, 32381, 32411, 32440, 32468, 32494,
- 32520, 32544, 32566, 32588, 32608, 32627, 32645, 32662, 32677, 32691,
- 32704, 32716, 32727, 32736, 32744, 32751, 32756, 32760, 32764, 32765
-};
-
const SDL_Keycode key2VolTab[16] =
{
SDLK_0, SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_MINUS, SDLK_PLUS, SDLK_d,
--- a/src/ft2_tables.h
+++ b/src/ft2_tables.h
@@ -25,7 +25,6 @@
extern pal16 palTable[12][16];
extern const uint16_t chanWidths[6];
extern const pattCoordsMouse_t pattCoordMouseTable[2][2][2];
-extern const int16_t sinusTables[256 * 5]; // for 3D stars in About screen
extern const uint8_t noteTab1[96];
extern const uint8_t noteTab2[96];
extern const uint8_t hex2Dec[256];
--- a/src/ft2_video.c
+++ b/src/ft2_video.c
@@ -764,9 +764,9 @@
// update next frame time
timeNext64 += video.vblankTimeLen;
timeNext64Frac += video.vblankTimeLenFrac;
- if (timeNext64Frac > 0xFFFFFFFF)
+ if (timeNext64Frac > UINT32_MAX)
{
- timeNext64Frac &= 0xFFFFFFFF;
+ timeNext64Frac &= UINT32_MAX;
timeNext64++;
}
}
--- a/src/ft2_wav_renderer.c
+++ b/src/ft2_wav_renderer.c
@@ -48,13 +48,8 @@
fillRect(209, 116, 41, 51, PAL_DESKTOP);
-#if defined __amd64__ || defined _WIN64
- sprintf(str, "%06d", WDFrequency);
- textOut(209, 116, PAL_FORGRND, str);
-#else
- sprintf(str, "%05d", WDFrequency);
- textOut(216, 116, PAL_FORGRND, str);
-#endif
+ sprintf(str, "%6d", WDFrequency);
+ textOutFixed(209, 116, PAL_FORGRND, PAL_DESKTOP, str);
sprintf(str, "%02d", WDAmp);
textOut(237, 130, PAL_FORGRND, str);
@@ -92,7 +87,7 @@
drawFramework(0, 109, 79, 64, FRAMEWORK_TYPE1);
drawFramework(79, 109, 212, 64, FRAMEWORK_TYPE1);
- textOutShadow(4, 96, PAL_FORGRND, PAL_DSKTOP2, "Harddisk recording:");
+ textOutShadow(4, 96, PAL_FORGRND, PAL_DSKTOP2, "WAV exporting:");
textOutShadow(156, 96, PAL_FORGRND, PAL_DSKTOP2, "16-bit");
textOutShadow(221, 96, PAL_FORGRND, PAL_DSKTOP2, "32-bit float");
@@ -284,10 +279,10 @@
replayerBusy = true;
if (audio.volumeRampingFlag)
- mix_SaveIPVolumes();
+ resetRampVolumes();
- mainPlayer();
- mix_UpdateChannelVolPanFrq();
+ tickReplayer();
+ updateVoices();
replayerBusy = false;
@@ -464,15 +459,9 @@
{
if (WDFrequency < MAX_WAV_RENDER_FREQ)
{
-
-#if defined __amd64__ || defined _WIN64
if (WDFrequency == 44100) WDFrequency = 48000;
else if (WDFrequency == 48000) WDFrequency = 96000;
else if (WDFrequency == 96000) WDFrequency = 192000;
-#else
- if (WDFrequency == 44100) WDFrequency = 48000;
- else if (WDFrequency == 48000) WDFrequency = 96000;
-#endif
updateWavRenderer();
}
}
@@ -481,13 +470,9 @@
{
if (WDFrequency > MIN_WAV_RENDER_FREQ)
{
-#if defined __amd64__ || defined _WIN64
if (WDFrequency == 192000) WDFrequency = 96000;
else if (WDFrequency == 96000) WDFrequency = 48000;
else if (WDFrequency == 48000) WDFrequency = 44100;
-#else
- if (WDFrequency == 48000) WDFrequency = 44100;
-#endif
updateWavRenderer();
}
--- a/src/ft2_wav_renderer.h
+++ b/src/ft2_wav_renderer.h
@@ -4,16 +4,7 @@
#include "ft2_header.h"
#define MIN_WAV_RENDER_FREQ 44100
-
-#if defined __amd64__ || defined _WIN64
-
#define MAX_WAV_RENDER_FREQ 192000
-
-#else
-
-#define MAX_WAV_RENDER_FREQ 48000
-
-#endif
#define MAX_WAV_RENDER_SAMPLES_PER_TICK (((MAX_WAV_RENDER_FREQ * 5) / 2) / MIN_BPM)
binary files a/src/gfxdata/bmp/mouseCursors.bmp b/src/gfxdata/bmp/mouseCursors.bmp differ
--- a/src/gfxdata/ft2_bmp_mouse.c
+++ b/src/gfxdata/ft2_bmp_mouse.c
@@ -1,9 +1,9 @@
#include <stdint.h>
-const uint8_t mouseCursorsBMP[3592] =
+const uint8_t mouseCursorsBMP[3444] =
{
- 0x42,0x4D,0x08,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x2B,0x01,
- 0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0xC2,0x0D,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x04,0x00,
+ 0x42,0x4D,0x74,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x2B,0x01,
+ 0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x2E,0x0D,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x04,0x00,
0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x1A,0x33,
0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,
0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x00,0x06,0x22,0x32,0x23,0x00,
@@ -11,147 +11,141 @@
0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,
0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,
0x16,0x33,0x00,0x00,0x02,0x33,0x02,0x23,0x16,0x33,0x00,0x00,0x00,0x06,0x22,0x32,0x23,0x00,0x14,0x33,0x00,0x00,0x1A,0x33,
- 0x00,0x00,0x0A,0x33,0x00,0x10,0x30,0x30,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x0A,0x33,0x00,0x10,0x02,0x02,0x02,0x22,
- 0x02,0x02,0x02,0x03,0x00,0x00,0x0A,0x33,0x00,0x10,0x02,0x02,0x02,0x00,0x02,0x02,0x00,0x33,0x00,0x00,0x08,0x33,0x00,0x12,
- 0x00,0x02,0x20,0x02,0x20,0x02,0x02,0x03,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x30,0x20,0x02,0x02,0x02,0x00,0x02,
- 0x02,0x03,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x02,0x20,0x02,0x20,0x02,0x22,0x02,0x20,0x33,0x33,0x00,0x00,0x00,
- 0x00,0x1A,0x33,0x33,0x30,0x22,0x20,0x30,0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,
- 0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x02,0x22,0x22,
- 0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x30,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,
- 0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x08,0x00,0x00,0x08,0x03,0x33,0x33,0x33,0x00,0x00,
- 0x02,0x02,0x10,0x22,0x00,0x08,0x03,0x33,0x33,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x00,0x0A,0x20,0x33,0x33,0x33,0x33,0x00,
- 0x00,0x00,0x02,0x02,0x0E,0x22,0x00,0x0A,0x03,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x20,0x0A,0x33,
- 0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x20,0x0C,0x33,0x00,0x00,0x02,0x02,
- 0x0A,0x22,0x02,0x03,0x0C,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,0x0E,0x33,0x00,0x00,0x00,0x02,0x0C,0x00,0x0E,0x33,
- 0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,0x08,0x33,0x02,0x30,0x0A,0x22,0x00,0x06,0x03,0x33,
- 0x33,0x00,0x00,0x00,0x08,0x33,0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x02,0x02,0x08,0x22,
- 0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,
- 0x33,0x33,0x33,0x30,0x08,0x22,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x30,0x00,0x00,
- 0x00,0x02,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x02,0x22,0x22,0x22,0x02,0x02,0x02,0x03,0x33,
- 0x33,0x00,0x00,0x00,0x00,0x0C,0x33,0x33,0x33,0x00,0x00,0x00,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0C,
- 0x33,0x33,0x30,0x22,0x22,0x22,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x00,0x00,0x00,
- 0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,
- 0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,0x00,0x00,0x0A,0x02,0x00,0x08,0x00,0x33,0x33,0x33,0x00,0x00,0x00,0x08,0x33,0x30,
- 0x22,0x22,0x08,0x02,0x00,0x0A,0x00,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x06,0x33,0x30,0x00,0x00,0x08,0x02,0x02,0x00,
- 0x0A,0x33,0x00,0x00,0x00,0x1A,0x33,0x02,0x22,0x02,0x02,0x02,0x00,0x03,0x00,0x03,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x1A,
- 0x33,0x00,0x02,0x02,0x02,0x00,0x20,0x20,0x22,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x1A,0x30,0x22,0x02,0x02,0x00,0x30,
- 0x20,0x20,0x20,0x00,0x20,0x20,0x03,0x00,0x00,0x00,0x00,0x1A,0x30,0x02,0x02,0x00,0x33,0x30,0x22,0x00,0x22,0x00,0x20,0x20,
- 0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x02,0x00,0x33,0x33,0x30,0x20,0x20,0x20,0x00,0x20,0x20,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x00,0x33,0x33,0x33,0x30,0x22,0x00,0x22,0x20,0x22,0x03,0x33,0x00,0x00,0x00,0x02,0x00,0x0A,0x33,0x00,0x0E,0x00,0x33,
- 0x00,0x03,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x02,0x04,0x00,0x00,0x16,0x33,0x33,0x33,0x30,0x30,0x30,0x00,0x30,0x00,0x30,
- 0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x00,0x03,0x33,0x02,0x02,0x02,0x22,0x02,0x02,0x02,0x03,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x22,0x22,0x20,0x00,0x02,0x02,0x02,0x00,0x02,0x02,0x00,0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x00,0x10,0x02,0x20,
- 0x02,0x20,0x02,0x02,0x03,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x00,0x10,0x02,0x02,0x02,0x00,0x02,0x02,0x03,0x33,0x00,0x00,
- 0x00,0x1A,0x02,0x22,0x22,0x22,0x20,0x02,0x20,0x02,0x22,0x02,0x20,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x22,
- 0x20,0x30,0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,
- 0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,
- 0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,
- 0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,
- 0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,
- 0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,
- 0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,
- 0x1A,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x30,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x02,0x20,0x00,
- 0x10,0x33,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x02,0x20,0x30,0x30,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x03,0x33,0x30,0x22,0x20,0x02,0x02,0x02,0x22,0x02,0x02,0x02,0x03,0x00,0x00,0x00,0x00,0x1A,0x00,0x33,0x30,0x22,0x03,0x02,
- 0x02,0x02,0x00,0x02,0x02,0x00,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x03,0x02,0x22,0x03,0x02,0x20,0x02,0x20,0x02,0x02,0x03,
- 0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x20,0x02,0x20,0x33,0x02,0x02,0x02,0x00,0x02,0x02,0x03,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x22,0x22,0x20,0x33,0x02,0x20,0x02,0x22,0x02,0x20,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x22,0x00,0x00,
- 0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,
- 0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,
- 0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,
- 0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,
- 0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,0x00,0x10,
- 0x30,0x03,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x0A,0x33,0x00,0x10,0x02,0x20,0x02,0x22,0x02,0x22,0x02,0x03,0x00,0x00,
- 0x0A,0x33,0x00,0x10,0x02,0x02,0x02,0x00,0x02,0x00,0x30,0x33,0x00,0x00,0x08,0x33,0x00,0x12,0x00,0x02,0x02,0x02,0x20,0x02,
- 0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x30,0x20,0x02,0x02,0x02,0x00,0x02,0x03,0x33,0x33,0x00,0x00,0x00,
- 0x00,0x1A,0x33,0x33,0x33,0x02,0x20,0x02,0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x30,0x22,
- 0x20,0x30,0x03,0x30,0x00,0x30,0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x20,0x00,0x10,0x33,0x00,0x00,
- 0x00,0x0A,0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x02,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,
- 0x00,0x0A,0x30,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,
- 0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x08,0x00,0x00,0x08,0x03,0x33,0x33,0x33,0x00,0x00,0x02,0x02,0x10,0x22,0x00,0x08,
- 0x03,0x33,0x33,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x00,0x0A,0x20,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x0E,0x22,
- 0x00,0x0A,0x03,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x20,0x0A,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,
- 0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x20,0x0C,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x03,0x0C,0x33,
- 0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,0x0E,0x33,0x00,0x00,0x00,0x02,0x0C,0x00,0x0E,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,
- 0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,0x08,0x33,0x02,0x30,0x0A,0x22,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x08,0x33,
- 0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x02,0x02,0x08,0x22,0x00,0x08,0x02,0x03,0x33,0x33,
- 0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,0x33,0x30,0x08,0x22,
- 0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x30,0x00,0x00,0x00,0x02,0x02,0x02,0x03,0x33,
- 0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x02,0x22,0x22,0x22,0x02,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0C,
- 0x33,0x33,0x33,0x00,0x00,0x00,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0C,0x33,0x33,0x30,0x22,0x22,0x22,
- 0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x00,0x00,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,
- 0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,
- 0x33,0x33,0x00,0x00,0x0A,0x02,0x00,0x08,0x00,0x33,0x33,0x33,0x00,0x00,0x00,0x08,0x33,0x30,0x22,0x22,0x08,0x02,0x00,0x0A,
- 0x00,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x06,0x33,0x30,0x00,0x00,0x08,0x02,0x02,0x00,0x0A,0x33,0x00,0x00,0x00,0x1A,
- 0x33,0x02,0x22,0x02,0x02,0x02,0x00,0x33,0x00,0x03,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x1A,0x33,0x00,0x02,0x02,0x02,0x00,
- 0x22,0x00,0x22,0x20,0x22,0x20,0x20,0x00,0x00,0x00,0x00,0x1A,0x30,0x22,0x02,0x02,0x00,0x30,0x20,0x20,0x20,0x00,0x20,0x03,
- 0x03,0x00,0x00,0x00,0x00,0x1A,0x30,0x02,0x02,0x00,0x33,0x30,0x20,0x20,0x22,0x00,0x20,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x02,0x00,0x33,0x33,0x30,0x20,0x20,0x20,0x00,0x20,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x00,0x33,0x33,0x33,0x30,
- 0x22,0x00,0x22,0x20,0x20,0x33,0x33,0x00,0x00,0x00,0x02,0x00,0x0A,0x33,0x00,0x0E,0x00,0x33,0x00,0x03,0x03,0x33,0x33,0x00,
- 0x00,0x00,0x00,0x02,0x04,0x00,0x00,0x16,0x33,0x33,0x33,0x30,0x03,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x22,0x00,0x03,0x33,0x02,0x20,0x02,0x22,0x02,0x22,0x02,0x03,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x20,0x00,0x02,
- 0x02,0x02,0x00,0x02,0x00,0x30,0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x00,0x10,0x02,0x02,0x02,0x20,0x02,0x03,0x33,0x33,
- 0x00,0x00,0x02,0x02,0x08,0x22,0x00,0x10,0x02,0x02,0x02,0x00,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x22,
- 0x20,0x02,0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x22,0x20,0x30,0x03,0x30,0x00,0x30,
- 0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,
- 0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,
- 0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,
- 0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,
- 0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,
- 0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,
- 0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x00,0x0A,
- 0x33,0x33,0x33,0x30,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x02,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x1A,
- 0x33,0x33,0x33,0x02,0x20,0x30,0x03,0x30,0x00,0x00,0x00,0x30,0x33,0x00,0x00,0x00,0x00,0x1A,0x03,0x33,0x30,0x22,0x20,0x02,
- 0x20,0x02,0x22,0x02,0x22,0x02,0x03,0x00,0x00,0x00,0x00,0x1A,0x00,0x33,0x30,0x22,0x03,0x02,0x02,0x02,0x00,0x02,0x00,0x30,
- 0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x03,0x02,0x22,0x03,0x02,0x02,0x02,0x20,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,
- 0x02,0x20,0x02,0x20,0x33,0x02,0x02,0x02,0x00,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x20,0x33,0x02,
- 0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x22,0x00,0x00,0x03,0x30,0x00,0x30,0x33,0x33,
- 0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x10,0x33,
- 0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,
+ 0x00,0x00,0x0A,0x33,0x06,0x30,0x00,0x0A,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,0x0A,0x33,0x06,0x02,0x02,0x22,0x06,0x02,
+ 0x02,0x03,0x00,0x00,0x0A,0x33,0x06,0x02,0x00,0x0A,0x00,0x02,0x02,0x00,0x33,0x00,0x00,0x00,0x08,0x33,0x00,0x12,0x00,0x02,
+ 0x20,0x02,0x20,0x02,0x02,0x03,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x20,0x06,0x02,0x00,0x0A,0x00,0x02,0x02,0x03,
+ 0x33,0x00,0x00,0x00,0x06,0x33,0x00,0x14,0x02,0x20,0x02,0x20,0x02,0x22,0x02,0x20,0x33,0x33,0x00,0x00,0x00,0x1A,0x33,0x33,
+ 0x30,0x22,0x20,0x30,0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x20,0x00,0x10,0x33,
+ 0x00,0x00,0x00,0x0A,0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x02,0x22,0x22,0x20,0x00,0x10,0x33,
+ 0x00,0x00,0x02,0x30,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,
+ 0x06,0x22,0x02,0x20,0x08,0x00,0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,0x10,0x22,0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,
+ 0x0E,0x22,0x02,0x20,0x08,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x02,0x03,0x08,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x20,
+ 0x0A,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x20,0x0C,0x33,0x00,0x00,
+ 0x02,0x02,0x0A,0x22,0x02,0x03,0x0C,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,0x0E,0x33,0x00,0x00,0x0A,0x00,0x02,0x03,
+ 0x0E,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,0x08,0x33,0x02,0x30,0x0A,0x22,0x00,0x06,
+ 0x03,0x33,0x33,0x00,0x00,0x00,0x08,0x33,0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x02,0x02,
+ 0x08,0x22,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,
+ 0x06,0x33,0x02,0x30,0x08,0x22,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,0x06,0x00,0x06,0x02,
+ 0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x02,0x06,0x22,0x06,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,
+ 0x06,0x33,0x06,0x00,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x06,0x33,0x33,0x30,0x00,0x06,0x22,0x08,0x02,
+ 0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x00,0x00,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,
+ 0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,
+ 0x00,0x00,0x0A,0x02,0x02,0x00,0x06,0x33,0x00,0x00,0x00,0x08,0x33,0x30,0x22,0x22,0x08,0x02,0x02,0x00,0x08,0x33,0x00,0x00,
+ 0x00,0x06,0x33,0x30,0x00,0x00,0x08,0x02,0x02,0x00,0x0A,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x22,0x00,0x06,0x02,0x00,0x0E,
+ 0x00,0x03,0x00,0x03,0x00,0x03,0x03,0x00,0x00,0x00,0x02,0x33,0x02,0x00,0x06,0x02,0x00,0x08,0x00,0x20,0x20,0x22,0x08,0x20,
+ 0x00,0x00,0x00,0x0C,0x30,0x22,0x02,0x02,0x00,0x30,0x06,0x20,0x00,0x08,0x00,0x20,0x20,0x03,0x00,0x00,0x00,0x1A,0x30,0x02,
+ 0x02,0x00,0x33,0x30,0x22,0x00,0x22,0x00,0x20,0x20,0x33,0x00,0x00,0x00,0x00,0x0C,0x02,0x02,0x00,0x33,0x33,0x30,0x06,0x20,
+ 0x00,0x08,0x00,0x20,0x20,0x33,0x00,0x00,0x02,0x02,0x02,0x00,0x06,0x33,0x00,0x10,0x30,0x22,0x00,0x22,0x20,0x22,0x03,0x33,
+ 0x00,0x00,0x02,0x00,0x0A,0x33,0x00,0x0E,0x00,0x33,0x00,0x03,0x00,0x33,0x33,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x06,0x33,
+ 0x06,0x30,0x00,0x0A,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x22,0x00,0x03,0x33,0x00,0x06,0x02,0x02,0x22,
+ 0x06,0x02,0x02,0x03,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x20,0x00,0x00,0x06,0x02,0x00,0x0A,0x00,0x02,0x02,0x00,0x33,0x00,
+ 0x00,0x00,0x02,0x02,0x08,0x22,0x00,0x10,0x02,0x20,0x02,0x20,0x02,0x02,0x03,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x06,0x02,
+ 0x00,0x0A,0x00,0x02,0x02,0x03,0x33,0x00,0x00,0x00,0x02,0x02,0x06,0x22,0x00,0x12,0x20,0x02,0x20,0x02,0x22,0x02,0x20,0x33,
+ 0x33,0x00,0x00,0x00,0x02,0x02,0x06,0x22,0x00,0x12,0x20,0x30,0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,
+ 0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,
+ 0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,
0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,
- 0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,
- 0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,
- 0x00,0x00,0x08,0x33,0x02,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x30,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x33,0x33,0x33,0x02,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x33,0x33,0x02,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x33,0x02,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x30,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x02,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x08,0x00,0x00,0x08,0x03,0x33,
- 0x33,0x33,0x00,0x00,0x02,0x02,0x10,0x22,0x00,0x08,0x03,0x33,0x33,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x00,0x0A,0x20,0x33,
- 0x33,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x0E,0x22,0x00,0x0A,0x03,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x0C,0x22,
- 0x02,0x20,0x0A,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x20,0x0C,0x33,
- 0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x03,0x0C,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,0x0E,0x33,0x00,0x00,0x00,0x02,
- 0x0C,0x00,0x0E,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,0x08,0x33,0x02,0x30,0x0A,0x22,
- 0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x08,0x33,0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,
- 0x02,0x02,0x08,0x22,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,
- 0x00,0x00,0x00,0x08,0x33,0x33,0x33,0x30,0x08,0x22,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,
- 0x33,0x30,0x00,0x00,0x00,0x02,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x1A,0x33,0x33,0x33,0x02,0x22,0x22,0x22,0x02,
- 0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0C,0x33,0x33,0x33,0x00,0x00,0x00,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,
- 0x00,0x00,0x00,0x0C,0x33,0x33,0x30,0x22,0x22,0x22,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,
- 0x30,0x00,0x00,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,
- 0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,0x00,0x00,0x0A,0x02,0x00,0x08,0x00,0x33,0x33,0x33,0x00,0x00,
- 0x00,0x08,0x33,0x30,0x22,0x22,0x08,0x02,0x00,0x0A,0x00,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00,0x06,0x33,0x30,0x00,0x00,
- 0x08,0x02,0x02,0x00,0x0A,0x33,0x00,0x00,0x00,0x0E,0x33,0x02,0x22,0x02,0x02,0x02,0x00,0x00,0x0C,0x33,0x00,0x00,0x00,0x0C,
- 0x33,0x00,0x02,0x02,0x02,0x00,0x0E,0x33,0x00,0x00,0x00,0x0A,0x30,0x22,0x02,0x02,0x00,0x00,0x10,0x33,0x00,0x00,0x00,0x08,
- 0x30,0x02,0x02,0x00,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x02,0x00,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x00,0x16,0x33,
- 0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x00,0x02,0x04,0x00,0x16,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x00,0x03,0x12,0x33,
- 0x00,0x00,0x00,0x0C,0x02,0x22,0x22,0x20,0x00,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,
- 0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x02,0x22,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
- 0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,
- 0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,
- 0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,
- 0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,
- 0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,
+ 0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,
+ 0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,
+ 0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,
+ 0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x03,0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x02,
+ 0x02,0x20,0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x02,0x02,0x20,0x06,0x30,0x00,0x0A,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,
+ 0x00,0x0A,0x03,0x33,0x30,0x22,0x20,0x00,0x06,0x02,0x02,0x22,0x06,0x02,0x02,0x03,0x00,0x00,0x00,0x0A,0x00,0x33,0x30,0x22,
+ 0x03,0x00,0x06,0x02,0x00,0x0A,0x00,0x02,0x02,0x00,0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x03,0x02,0x22,0x03,0x02,0x20,0x02,
+ 0x20,0x02,0x02,0x03,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x20,0x02,0x20,0x33,0x00,0x06,0x02,0x00,0x0A,0x00,0x02,0x02,0x03,
+ 0x33,0x00,0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x20,0x33,0x02,0x20,0x02,0x22,0x02,0x20,0x33,0x33,0x00,0x00,0x00,0x02,0x02,
+ 0x06,0x22,0x00,0x12,0x00,0x00,0x03,0x30,0x00,0x30,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,
+ 0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,
+ 0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,
+ 0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,
+ 0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,
+ 0x00,0x10,0x30,0x03,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x0A,0x33,0x00,0x10,0x02,0x20,0x02,0x22,0x02,0x22,0x02,0x03,
+ 0x00,0x00,0x0A,0x33,0x06,0x02,0x00,0x0A,0x00,0x02,0x00,0x30,0x33,0x00,0x00,0x00,0x08,0x33,0x02,0x00,0x06,0x02,0x00,0x0A,
+ 0x20,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x20,0x06,0x02,0x00,0x0A,0x00,0x02,0x03,0x33,0x33,0x00,
+ 0x00,0x00,0x06,0x33,0x00,0x14,0x02,0x20,0x02,0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x14,0x33,0x33,0x30,0x22,
+ 0x20,0x30,0x03,0x30,0x00,0x30,0x06,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
+ 0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x02,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x02,0x30,
+ 0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,
+ 0x08,0x00,0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,0x10,0x22,0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x02,0x20,
+ 0x08,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x02,0x03,0x08,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x20,0x0A,0x33,0x00,0x00,
+ 0x02,0x02,0x0C,0x22,0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x20,0x0C,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,
+ 0x02,0x03,0x0C,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,0x0E,0x33,0x00,0x00,0x0A,0x00,0x02,0x03,0x0E,0x33,0x00,0x00,
+ 0x1A,0x33,0x00,0x00,0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,0x08,0x33,0x02,0x30,0x0A,0x22,0x00,0x06,0x03,0x33,0x33,0x00,
+ 0x00,0x00,0x08,0x33,0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x02,0x02,0x08,0x22,0x00,0x08,
+ 0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,
+ 0x08,0x22,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,0x06,0x00,0x06,0x02,0x00,0x06,0x03,0x33,
+ 0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x02,0x06,0x22,0x06,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x06,0x00,
+ 0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x06,0x33,0x33,0x30,0x00,0x06,0x22,0x08,0x02,0x00,0x06,0x03,0x33,
+ 0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x00,0x00,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,
+ 0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,0x00,0x00,0x0A,0x02,
+ 0x02,0x00,0x06,0x33,0x00,0x00,0x00,0x08,0x33,0x30,0x22,0x22,0x08,0x02,0x02,0x00,0x08,0x33,0x00,0x00,0x00,0x06,0x33,0x30,
+ 0x00,0x00,0x08,0x02,0x02,0x00,0x0A,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x22,0x00,0x06,0x02,0x00,0x0E,0x00,0x33,0x00,0x03,
+ 0x00,0x03,0x03,0x00,0x00,0x00,0x02,0x33,0x02,0x00,0x06,0x02,0x00,0x10,0x00,0x22,0x00,0x22,0x20,0x22,0x20,0x20,0x00,0x00,
+ 0x00,0x0C,0x30,0x22,0x02,0x02,0x00,0x30,0x06,0x20,0x00,0x08,0x00,0x20,0x03,0x03,0x00,0x00,0x00,0x1A,0x30,0x02,0x02,0x00,
+ 0x33,0x30,0x20,0x20,0x22,0x00,0x20,0x33,0x33,0x00,0x00,0x00,0x00,0x0C,0x02,0x02,0x00,0x33,0x33,0x30,0x06,0x20,0x00,0x08,
+ 0x00,0x20,0x33,0x33,0x00,0x00,0x02,0x02,0x02,0x00,0x06,0x33,0x00,0x10,0x30,0x22,0x00,0x22,0x20,0x20,0x33,0x33,0x00,0x00,
+ 0x02,0x00,0x0A,0x33,0x00,0x0E,0x00,0x33,0x00,0x03,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x06,0x33,0x00,0x10,
+ 0x30,0x03,0x30,0x00,0x30,0x00,0x30,0x33,0x00,0x00,0x00,0x1A,0x02,0x22,0x00,0x03,0x33,0x02,0x20,0x02,0x22,0x02,0x22,0x02,
+ 0x03,0x00,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x20,0x00,0x00,0x06,0x02,0x00,0x0A,0x00,0x02,0x00,0x30,0x33,0x00,0x00,0x00,
+ 0x02,0x02,0x08,0x22,0x06,0x02,0x00,0x0A,0x20,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x08,0x22,0x06,0x02,0x00,0x0A,
+ 0x00,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x06,0x22,0x00,0x12,0x20,0x02,0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,
+ 0x00,0x00,0x02,0x02,0x06,0x22,0x00,0x0C,0x20,0x30,0x03,0x30,0x00,0x30,0x06,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,
+ 0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,
+ 0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,
+ 0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,
+ 0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,
+ 0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x02,
+ 0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,
+ 0x00,0x00,0x1A,0x33,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x03,0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x02,0x02,0x20,0x10,0x33,
+ 0x00,0x00,0x06,0x33,0x00,0x0A,0x02,0x20,0x30,0x03,0x30,0x00,0x06,0x00,0x02,0x30,0x02,0x33,0x00,0x00,0x00,0x1A,0x03,0x33,
+ 0x30,0x22,0x20,0x02,0x20,0x02,0x22,0x02,0x22,0x02,0x03,0x00,0x00,0x00,0x00,0x0A,0x00,0x33,0x30,0x22,0x03,0x00,0x06,0x02,
+ 0x00,0x0A,0x00,0x02,0x00,0x30,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x03,0x02,0x22,0x03,0x00,0x06,0x02,0x00,0x0A,0x20,0x02,
+ 0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x02,0x20,0x02,0x20,0x33,0x00,0x06,0x02,0x00,0x0A,0x00,0x02,0x03,0x33,0x33,0x00,
+ 0x00,0x00,0x00,0x1A,0x02,0x22,0x22,0x20,0x33,0x02,0x20,0x02,0x22,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x02,0x02,0x06,0x22,
+ 0x00,0x0C,0x00,0x00,0x03,0x30,0x00,0x30,0x06,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,
+ 0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,
+ 0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,
+ 0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,
0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x1A,0x33,
- 0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x30,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x02,0x20,0x00,0x10,0x33,
- 0x00,0x00,0x00,0x0A,0x33,0x33,0x33,0x02,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x03,0x33,0x30,0x22,0x20,0x00,0x10,0x33,
+ 0x00,0x00,0x1A,0x33,0x00,0x00,0x08,0x33,0x02,0x00,0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x20,0x10,0x33,0x00,0x00,
+ 0x06,0x33,0x02,0x02,0x02,0x20,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
+ 0x33,0x33,0x02,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x33,0x30,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,
+ 0x33,0x02,0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x02,0x30,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,
+ 0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,0x08,0x00,0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,0x10,0x22,
+ 0x02,0x03,0x06,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x02,0x20,0x08,0x33,0x00,0x00,0x02,0x02,0x0E,0x22,0x02,0x03,0x08,0x33,
+ 0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x20,0x0A,0x33,0x00,0x00,0x02,0x02,0x0C,0x22,0x02,0x03,0x0A,0x33,0x00,0x00,0x02,0x02,
+ 0x0A,0x22,0x02,0x20,0x0C,0x33,0x00,0x00,0x02,0x02,0x0A,0x22,0x02,0x03,0x0C,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x20,
+ 0x0E,0x33,0x00,0x00,0x0A,0x00,0x02,0x03,0x0E,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x0A,0x33,0x0A,0x00,0x06,0x33,0x00,0x00,
+ 0x08,0x33,0x02,0x30,0x0A,0x22,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x08,0x33,0x02,0x30,0x08,0x00,0x00,0x08,0x02,0x03,
+ 0x33,0x33,0x00,0x00,0x08,0x33,0x02,0x02,0x08,0x22,0x00,0x08,0x02,0x03,0x33,0x33,0x00,0x00,0x08,0x33,0x08,0x00,0x00,0x0A,
+ 0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x30,0x08,0x22,0x00,0x0A,0x02,0x02,0x03,0x33,0x33,0x00,0x00,0x00,
+ 0x06,0x33,0x02,0x30,0x06,0x00,0x06,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x02,0x02,0x06,0x22,0x06,0x02,
+ 0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x06,0x33,0x06,0x00,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x06,
+ 0x33,0x33,0x30,0x00,0x06,0x22,0x08,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x30,0x00,0x00,0x00,
+ 0x0A,0x02,0x00,0x06,0x03,0x33,0x33,0x00,0x00,0x00,0x00,0x0A,0x33,0x33,0x02,0x22,0x22,0x00,0x0A,0x02,0x00,0x06,0x03,0x33,
+ 0x33,0x00,0x00,0x00,0x00,0x08,0x33,0x33,0x00,0x00,0x0A,0x02,0x02,0x00,0x06,0x33,0x00,0x00,0x00,0x08,0x33,0x30,0x22,0x22,
+ 0x08,0x02,0x02,0x00,0x08,0x33,0x00,0x00,0x00,0x06,0x33,0x30,0x00,0x00,0x08,0x02,0x02,0x00,0x0A,0x33,0x00,0x00,0x00,0x06,
+ 0x33,0x02,0x22,0x00,0x06,0x02,0x02,0x00,0x0C,0x33,0x00,0x00,0x02,0x33,0x02,0x00,0x06,0x02,0x02,0x00,0x0E,0x33,0x00,0x00,
+ 0x00,0x0A,0x30,0x22,0x02,0x02,0x00,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x30,0x02,0x02,0x00,0x12,0x33,0x00,0x00,0x00,0x06,
+ 0x02,0x02,0x00,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x00,0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x00,
+ 0x02,0x00,0x16,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x00,0x03,0x12,0x33,0x00,0x00,0x00,0x0C,0x02,0x22,0x22,0x20,0x00,0x03,
+ 0x0E,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,
+ 0x02,0x02,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,
+ 0x02,0x03,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,
+ 0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x08,
+ 0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,
+ 0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,
+ 0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,
+ 0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,
+ 0x1A,0x33,0x00,0x00,0x1A,0x33,0x00,0x00,0x06,0x33,0x02,0x30,0x02,0x03,0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x02,0x02,0x20,
+ 0x10,0x33,0x00,0x00,0x06,0x33,0x02,0x02,0x02,0x20,0x10,0x33,0x00,0x00,0x00,0x0A,0x03,0x33,0x30,0x22,0x20,0x00,0x10,0x33,
0x00,0x00,0x00,0x0A,0x00,0x33,0x30,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x03,0x02,0x22,0x03,0x00,0x10,0x33,
- 0x00,0x00,0x00,0x08,0x02,0x20,0x02,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x0C,
- 0x02,0x22,0x22,0x22,0x00,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,
- 0x22,0x22,0x20,0x00,0x10,0x33,0x00,0x00,0x00,0x0A,0x02,0x22,0x22,0x22,0x03,0x00,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,
- 0x22,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,
- 0x00,0x00,0x00,0x06,0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,
- 0x16,0x33,0x00,0x00,0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x01
+ 0x00,0x00,0x00,0x08,0x02,0x20,0x02,0x20,0x12,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,0x00,0x00,0x02,0x02,
+ 0x06,0x22,0x02,0x00,0x02,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,0x08,0x22,0x02,0x03,0x0E,0x33,0x00,0x00,0x02,0x02,0x06,0x22,
+ 0x02,0x20,0x10,0x33,0x00,0x00,0x02,0x02,0x06,0x22,0x02,0x03,0x10,0x33,0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x20,0x12,0x33,
+ 0x00,0x00,0x00,0x08,0x02,0x22,0x22,0x03,0x12,0x33,0x00,0x00,0x00,0x06,0x02,0x22,0x20,0x00,0x14,0x33,0x00,0x00,0x00,0x06,
+ 0x02,0x22,0x03,0x00,0x14,0x33,0x00,0x00,0x02,0x02,0x02,0x20,0x16,0x33,0x00,0x00,0x02,0x02,0x02,0x03,0x16,0x33,0x00,0x00,
+ 0x02,0x00,0x18,0x33,0x00,0x00,0x02,0x03,0x18,0x33,0x00,0x01
};
const uint8_t mouseCursorBusyClockBMP[1728] =
--- a/src/helpdata/FT2.HLP
+++ b/src/helpdata/FT2.HLP
@@ -781,13 +781,6 @@
Please note that original FT2 can't load this config entry,
clone only.
->@X040@C001Dithering:
->@X060@C002
-Works for 16-bit audio mode only.
-Applies random scaled values to the mixed samples before truncating to 16-bit.
-This should in theory lower the quantization noise.
-Also applies for WAV rendering.
-
>@X040@C001Amplification:
>@X060@C002
Amplifies the volume when mixing. If you set this one too high, you'll
--- a/src/helpdata/ft2_help_data.h
+++ b/src/helpdata/ft2_help_data.h
@@ -3,9 +3,9 @@
#include <stdint.h>
-#define HELP_DATA_LEN 27158
+#define HELP_DATA_LEN 26926
-const uint8_t helpData[27158] =
+const uint8_t helpData[26926] =
{
0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
@@ -1784,493 +1784,473 @@
0x27,0x74,0x20,0x6C,0x6F,0x61,0x64,0x20,0x74,0x68,0x69,0x73,
0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x20,0x65,0x6E,0x74,0x72,
0x79,0x2C,0x0B,0x63,0x6C,0x6F,0x6E,0x65,0x20,0x6F,0x6E,0x6C,
- 0x79,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
- 0x30,0x30,0x31,0x44,0x69,0x74,0x68,0x65,0x72,0x69,0x6E,0x67,
- 0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
- 0x32,0x21,0x57,0x6F,0x72,0x6B,0x73,0x20,0x66,0x6F,0x72,0x20,
- 0x31,0x36,0x2D,0x62,0x69,0x74,0x20,0x61,0x75,0x64,0x69,0x6F,
- 0x20,0x6D,0x6F,0x64,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x2E,0x4E,
- 0x41,0x70,0x70,0x6C,0x69,0x65,0x73,0x20,0x72,0x61,0x6E,0x64,
- 0x6F,0x6D,0x20,0x73,0x63,0x61,0x6C,0x65,0x64,0x20,0x76,0x61,
- 0x6C,0x75,0x65,0x73,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,
- 0x6D,0x69,0x78,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
- 0x73,0x20,0x62,0x65,0x66,0x6F,0x72,0x65,0x20,0x74,0x72,0x75,
- 0x6E,0x63,0x61,0x74,0x69,0x6E,0x67,0x20,0x74,0x6F,0x20,0x31,
- 0x36,0x2D,0x62,0x69,0x74,0x2E,0x33,0x54,0x68,0x69,0x73,0x20,
- 0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,
- 0x65,0x6F,0x72,0x79,0x20,0x6C,0x6F,0x77,0x65,0x72,0x20,0x74,
- 0x68,0x65,0x20,0x71,0x75,0x61,0x6E,0x74,0x69,0x7A,0x61,0x74,
- 0x69,0x6F,0x6E,0x20,0x6E,0x6F,0x69,0x73,0x65,0x2E,0x1F,0x41,
- 0x6C,0x73,0x6F,0x20,0x61,0x70,0x70,0x6C,0x69,0x65,0x73,0x20,
- 0x66,0x6F,0x72,0x20,0x57,0x41,0x56,0x20,0x72,0x65,0x6E,0x64,
- 0x65,0x72,0x69,0x6E,0x67,0x2E,0x00,0x19,0x3E,0x40,0x58,0x30,
- 0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x6D,0x70,0x6C,0x69,
- 0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x3A,0x0B,0x3E,0x40,
- 0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x46,0x41,0x6D,
- 0x70,0x6C,0x69,0x66,0x69,0x65,0x73,0x20,0x74,0x68,0x65,0x20,
- 0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x77,0x68,0x65,0x6E,0x20,
- 0x6D,0x69,0x78,0x69,0x6E,0x67,0x2E,0x20,0x49,0x66,0x20,0x79,
- 0x6F,0x75,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x69,0x73,0x20,
- 0x6F,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x20,0x68,0x69,0x67,0x68,
- 0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x3A,0x67,0x65,0x74,
- 0x20,0x64,0x69,0x73,0x74,0x6F,0x72,0x74,0x69,0x6F,0x6E,0x2E,
- 0x20,0x33,0x32,0x58,0x20,0x65,0x71,0x75,0x61,0x6C,0x73,0x20,
- 0x66,0x75,0x6C,0x6C,0x20,0x61,0x6D,0x70,0x6C,0x69,0x74,0x75,
- 0x64,0x65,0x20,0x66,0x6F,0x72,0x20,0x6F,0x6E,0x65,0x20,0x63,
- 0x68,0x61,0x6E,0x6E,0x65,0x6C,0x2E,0x00,0x1B,0x3E,0x40,0x58,
- 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x72,0x65,0x71,
- 0x75,0x65,0x6E,0x63,0x79,0x20,0x74,0x61,0x62,0x6C,0x65,0x3A,
- 0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
- 0x40,0x54,0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,
- 0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x74,0x61,
- 0x62,0x6C,0x65,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,0x61,0x6C,
- 0x6C,0x20,0x70,0x69,0x74,0x63,0x68,0x20,0x62,0x65,0x6E,0x64,
- 0x73,0x20,0x72,0x75,0x6E,0x20,0x69,0x6E,0x20,0x63,0x6F,0x6E,
- 0x73,0x74,0x61,0x6E,0x74,0x3F,0x73,0x70,0x65,0x65,0x64,0x2C,
- 0x20,0x69,0x6E,0x64,0x65,0x70,0x65,0x6E,0x64,0x65,0x6E,0x74,
- 0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,
- 0x65,0x6E,0x74,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,
- 0x79,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x73,0x77,
- 0x69,0x74,0x63,0x68,0x20,0x74,0x68,0x69,0x73,0x41,0x6F,0x6E,
- 0x65,0x2C,0x20,0x6F,0x6E,0x20,0x61,0x20,0x66,0x69,0x6E,0x69,
- 0x73,0x68,0x65,0x64,0x20,0x73,0x6F,0x6E,0x67,0x2C,0x20,0x69,
- 0x74,0x20,0x6D,0x69,0x67,0x68,0x74,0x20,0x73,0x6F,0x75,0x6E,
- 0x64,0x20,0x73,0x74,0x72,0x61,0x6E,0x67,0x65,0x20,0x69,0x66,
- 0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x75,
- 0x73,0x65,0x73,0x0D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,
- 0x74,0x6F,0x65,0x73,0x2E,0x00,0x20,0x40,0x58,0x30,0x32,0x30,
- 0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,
- 0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x4C,0x61,0x79,0x6F,
- 0x75,0x74,0x3A,0x01,0x3E,0x29,0x3E,0x40,0x58,0x30,0x34,0x30,
- 0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,
- 0x20,0x6C,0x61,0x79,0x6F,0x75,0x74,0x2C,0x20,0x68,0x65,0x78,
- 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E,0x67,0x3A,0x0B,
- 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x41,
- 0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x75,0x73,0x65,0x20,0x70,
- 0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,0x74,0x68,0x61,0x74,
- 0x20,0x61,0x72,0x65,0x20,0x6C,0x6F,0x6E,0x67,0x65,0x72,0x20,
- 0x74,0x68,0x61,0x6E,0x20,0x39,0x39,0x20,0x6C,0x69,0x6E,0x65,
- 0x73,0x2C,0x20,0x79,0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,0x6C,
- 0x64,0x20,0x75,0x73,0x65,0x45,0x68,0x65,0x78,0x20,0x63,0x6F,
- 0x75,0x6E,0x74,0x69,0x6E,0x67,0x20,0x73,0x69,0x6E,0x63,0x65,
- 0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x6F,
- 0x6E,0x6C,0x79,0x20,0x32,0x20,0x64,0x69,0x67,0x69,0x74,0x73,
- 0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,
- 0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x63,0x6F,0x6C,0x75,
- 0x6D,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
- 0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,0x65,0x73,0x3A,0x0B,
- 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,
- 0x22,0x53,0x74,0x64,0x2E,0x22,0x20,0x28,0x73,0x74,0x61,0x6E,
- 0x64,0x61,0x72,0x64,0x29,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,
- 0x68,0x6F,0x77,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,
- 0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73,0x20,0x61,0x73,
- 0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x28,0x6C,0x69,0x6B,
- 0x65,0x20,0x46,0x54,0x32,0x29,0x2E,0x41,0x22,0x4C,0x69,0x6E,
- 0x65,0x64,0x22,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x72,0x61,
- 0x77,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x62,0x65,0x74,0x77,
- 0x65,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x6F,0x69,0x6E,
- 0x74,0x73,0x2C,0x20,0x6C,0x69,0x6B,0x65,0x20,0x61,0x6E,0x20,
- 0x6F,0x73,0x63,0x69,0x6C,0x6C,0x6F,0x73,0x63,0x6F,0x70,0x65,
- 0x2E,0x00,0x27,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,
+ 0x79,0x2E,0x00,0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+ 0x30,0x30,0x31,0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x63,0x61,
+ 0x74,0x69,0x6F,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+ 0x40,0x43,0x30,0x30,0x32,0x46,0x41,0x6D,0x70,0x6C,0x69,0x66,
+ 0x69,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,
+ 0x6D,0x65,0x20,0x77,0x68,0x65,0x6E,0x20,0x6D,0x69,0x78,0x69,
+ 0x6E,0x67,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x73,
+ 0x65,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x6F,0x6E,0x65,0x20,
+ 0x74,0x6F,0x6F,0x20,0x68,0x69,0x67,0x68,0x2C,0x20,0x79,0x6F,
+ 0x75,0x27,0x6C,0x6C,0x3A,0x67,0x65,0x74,0x20,0x64,0x69,0x73,
+ 0x74,0x6F,0x72,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x33,0x32,0x58,
+ 0x20,0x65,0x71,0x75,0x61,0x6C,0x73,0x20,0x66,0x75,0x6C,0x6C,
+ 0x20,0x61,0x6D,0x70,0x6C,0x69,0x74,0x75,0x64,0x65,0x20,0x66,
+ 0x6F,0x72,0x20,0x6F,0x6E,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,
+ 0x65,0x6C,0x2E,0x00,0x1B,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+ 0x43,0x30,0x30,0x31,0x46,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,
+ 0x79,0x20,0x74,0x61,0x62,0x6C,0x65,0x3A,0x0B,0x3E,0x40,0x58,
+ 0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x54,0x68,0x65,
+ 0x20,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x66,0x72,0x65,0x71,
+ 0x75,0x65,0x6E,0x63,0x79,0x20,0x74,0x61,0x62,0x6C,0x65,0x20,
+ 0x6D,0x61,0x6B,0x65,0x73,0x20,0x61,0x6C,0x6C,0x20,0x70,0x69,
+ 0x74,0x63,0x68,0x20,0x62,0x65,0x6E,0x64,0x73,0x20,0x72,0x75,
+ 0x6E,0x20,0x69,0x6E,0x20,0x63,0x6F,0x6E,0x73,0x74,0x61,0x6E,
+ 0x74,0x3F,0x73,0x70,0x65,0x65,0x64,0x2C,0x20,0x69,0x6E,0x64,
+ 0x65,0x70,0x65,0x6E,0x64,0x65,0x6E,0x74,0x20,0x6F,0x66,0x20,
+ 0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,
+ 0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,
+ 0x66,0x20,0x79,0x6F,0x75,0x20,0x73,0x77,0x69,0x74,0x63,0x68,
+ 0x20,0x74,0x68,0x69,0x73,0x41,0x6F,0x6E,0x65,0x2C,0x20,0x6F,
+ 0x6E,0x20,0x61,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,
+ 0x20,0x73,0x6F,0x6E,0x67,0x2C,0x20,0x69,0x74,0x20,0x6D,0x69,
+ 0x67,0x68,0x74,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x73,0x74,
+ 0x72,0x61,0x6E,0x67,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x65,
+ 0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x75,0x73,0x65,0x73,0x0D,
+ 0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x65,0x73,
+ 0x2E,0x00,0x20,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,
0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,
- 0x6F,0x6E,0x2C,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,
- 0x6E,0x65,0x6F,0x75,0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,
- 0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,
- 0x63,0x20,0x6F,0x66,0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
- 0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,
- 0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
- 0x20,0x74,0x6F,0x20,0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,
- 0x56,0x53,0x79,0x6E,0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,
- 0x64,0x65,0x6F,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,
- 0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,
- 0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,
- 0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,
- 0x28,0x6F,0x72,0x20,0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,
- 0x68,0x65,0x6E,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,
- 0x20,0x61,0x6C,0x77,0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,
- 0x66,0x6F,0x72,0x45,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,
- 0x67,0x72,0x61,0x6D,0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,
- 0x76,0x69,0x6E,0x67,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,
- 0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,
- 0x6E,0x20,0x6C,0x65,0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,
- 0x2F,0x76,0x69,0x64,0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,
- 0x2C,0x1E,0x62,0x75,0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,
- 0x6F,0x74,0x65,0x6E,0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,
- 0x74,0x74,0x65,0x72,0x69,0x6E,0x67,0x2E,0x01,0x20,0x18,0x3E,
- 0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x69,
- 0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x3A,0x0B,
- 0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,
- 0x41,0x70,0x70,0x6C,0x69,0x65,0x73,0x20,0x61,0x20,0x73,0x75,
- 0x62,0x70,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,
- 0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x75,0x73,
- 0x65,0x64,0x20,0x77,0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,
- 0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x69,0x73,0x20,0x75,0x70,
- 0x73,0x63,0x61,0x6C,0x65,0x64,0x2E,0x43,0x54,0x68,0x69,0x73,
- 0x20,0x61,0x6C,0x73,0x6F,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,
- 0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,
- 0x6F,0x64,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6C,0x65,0x74,0x65,
- 0x6C,0x79,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,
- 0x75,0x74,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x64,0x69,0x64,
- 0x6E,0x27,0x74,0x44,0x61,0x6C,0x72,0x65,0x61,0x64,0x79,0x2E,
- 0x20,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6B,0x65,0x65,0x70,
- 0x20,0x69,0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,0x61,
- 0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,
- 0x6D,0x61,0x6B,0x65,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,
- 0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x2E,
- 0x00,0x23,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,
- 0x41,0x64,0x76,0x61,0x6E,0x63,0x65,0x64,0x20,0x65,0x64,0x69,
- 0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x3A,
- 0x20,0x01,0x3E,0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
- 0x30,0x30,0x31,0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,
- 0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x3A,0x0B,0x3E,
- 0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x37,0x54,
- 0x68,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x20,0x69,
- 0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x63,
- 0x6F,0x70,0x79,0x69,0x6E,0x67,0x2F,0x70,0x61,0x73,0x74,0x69,
- 0x6E,0x67,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x70,0x61,0x72,0x74,
- 0x73,0x20,0x6F,0x66,0x20,0x61,0x46,0x22,0x6E,0x6F,0x74,0x65,
- 0x2D,0x63,0x65,0x6C,0x6C,0x22,0x2E,0x20,0x54,0x68,0x65,0x20,
- 0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,
- 0x72,0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x20,0x22,0x6E,0x6F,
- 0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x20,0x69,0x73,0x20,
- 0x4E,0x6F,0x74,0x65,0x2C,0x20,0x49,0x6E,0x73,0x74,0x72,0x2E,
- 0x20,0x6E,0x72,0x2E,0x2C,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,
- 0x2C,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x6E,0x72,0x20,
- 0x26,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x64,0x61,0x74,
- 0x61,0x2E,0x34,0x3E,0x41,0x73,0x20,0x79,0x6F,0x75,0x20,0x63,
- 0x61,0x6E,0x20,0x73,0x65,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,
- 0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x74,0x68,0x65,
- 0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x33,0x20,0x63,0x6F,0x6C,
- 0x75,0x6D,0x6E,0x73,0x20,0x6F,0x66,0x3D,0x22,0x65,0x6E,0x61,
- 0x62,0x6C,0x65,0x2F,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x20,
- 0x62,0x75,0x74,0x74,0x6F,0x6E,0x73,0x22,0x20,0x77,0x68,0x69,
- 0x63,0x68,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6C,
- 0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x43,0x2C,0x50,0x20,0x26,
- 0x20,0x54,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,0x45,0x3E,0x43,
- 0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x63,0x6F,0x70,0x79,0x2C,
- 0x20,0x69,0x74,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,
- 0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,
- 0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x69,
- 0x6E,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,
- 0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x3E,0x3E,0x50,0x20,0x6D,
- 0x65,0x61,0x6E,0x73,0x20,0x70,0x61,0x73,0x74,0x65,0x20,0x61,
- 0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,
- 0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,0x20,
- 0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x6F,0x75,
- 0x74,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x65,0x0B,0x63,
- 0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x45,0x3E,
- 0x54,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x72,0x61,0x6E,
- 0x73,0x70,0x61,0x72,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,
- 0x20,0x69,0x74,0x27,0x73,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,
- 0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x73,0x74,0x69,
- 0x6E,0x67,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x6F,
- 0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x65,0x3D,0x64,0x61,0x74,
- 0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6E,0x69,0x6C,0x2D,0x69,
- 0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,
- 0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,
- 0x6E,0x6F,0x74,0x65,0x20,0x6F,0x72,0x20,0x61,0x20,0x6E,0x75,
- 0x6D,0x62,0x65,0x72,0x20,0x3C,0x3E,0x20,0x30,0x2E,0x01,0x3E,
- 0x40,0x3E,0x54,0x68,0x65,0x20,0x63,0x75,0x74,0x20,0x66,0x75,
- 0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,0x77,0x6F,0x72,0x6B,
- 0x73,0x20,0x6C,0x69,0x6B,0x65,0x20,0x70,0x61,0x73,0x74,0x69,
- 0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x7A,0x65,0x72,0x6F,
- 0x2D,0x64,0x61,0x74,0x61,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,
- 0x6D,0x65,0x61,0x6E,0x73,0x3B,0x74,0x68,0x61,0x74,0x20,0x74,
- 0x68,0x65,0x20,0x63,0x75,0x74,0x74,0x69,0x6E,0x67,0x20,0x69,
- 0x73,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x6C,0x65,0x64,
- 0x20,0x77,0x69,0x74,0x68,0x20,0x50,0x2D,0x63,0x6F,0x6C,0x75,
- 0x6D,0x6E,0x20,0x28,0x6F,0x72,0x20,0x54,0x2D,0x63,0x6F,0x6C,
- 0x75,0x6D,0x6E,0x29,0x2E,0x3C,0x3E,0x57,0x68,0x65,0x6E,0x20,
- 0x79,0x6F,0x75,0x20,0x63,0x6F,0x70,0x79,0x20,0x64,0x61,0x74,
- 0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6D,0x61,0x73,0x6B,0x69,
- 0x6E,0x67,0x2C,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x73,0x61,
- 0x62,0x6C,0x65,0x64,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x61,
- 0x72,0x65,0x20,0x6E,0x6F,0x74,0x43,0x63,0x6C,0x65,0x61,0x72,
- 0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,
- 0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x20,0x28,0x4D,
- 0x61,0x6B,0x69,0x6E,0x67,0x20,0x69,0x74,0x20,0x70,0x6F,0x73,
- 0x73,0x69,0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6C,
- 0x6C,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,
- 0x6F,0x6D,0x27,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x6C,
- 0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x73,0x20,0x69,0x6E,0x74,
- 0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,
- 0x66,0x66,0x65,0x72,0x2E,0x29,0x00,0x03,0x45,0x4E,0x44,0x4C,
- 0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x6F,0x6E,0x2C,0x20,0x4C,0x61,0x79,0x6F,0x75,0x74,0x3A,0x01,
+ 0x3E,0x29,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+ 0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x61,0x79,
+ 0x6F,0x75,0x74,0x2C,0x20,0x68,0x65,0x78,0x20,0x6E,0x75,0x6D,
+ 0x62,0x65,0x72,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+ 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x41,0x49,0x66,0x20,0x79,
+ 0x6F,0x75,0x20,0x75,0x73,0x65,0x20,0x70,0x61,0x74,0x74,0x65,
+ 0x72,0x6E,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x72,0x65,
+ 0x20,0x6C,0x6F,0x6E,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,
+ 0x20,0x39,0x39,0x20,0x6C,0x69,0x6E,0x65,0x73,0x2C,0x20,0x79,
+ 0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x75,0x73,
+ 0x65,0x45,0x68,0x65,0x78,0x20,0x63,0x6F,0x75,0x6E,0x74,0x69,
+ 0x6E,0x67,0x20,0x73,0x69,0x6E,0x63,0x65,0x20,0x74,0x68,0x65,
+ 0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x20,
+ 0x32,0x20,0x64,0x69,0x67,0x69,0x74,0x73,0x20,0x69,0x6E,0x20,
+ 0x74,0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,
+ 0x62,0x65,0x72,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x2E,0x00,
+ 0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
+ 0x53,0x63,0x6F,0x70,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+ 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,0x22,0x53,0x74,0x64,
+ 0x2E,0x22,0x20,0x28,0x73,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,
+ 0x29,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x68,0x6F,0x77,0x20,
+ 0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,
+ 0x6F,0x69,0x6E,0x74,0x73,0x20,0x61,0x73,0x20,0x70,0x69,0x78,
+ 0x65,0x6C,0x73,0x20,0x28,0x6C,0x69,0x6B,0x65,0x20,0x46,0x54,
+ 0x32,0x29,0x2E,0x41,0x22,0x4C,0x69,0x6E,0x65,0x64,0x22,0x20,
+ 0x77,0x69,0x6C,0x6C,0x20,0x64,0x72,0x61,0x77,0x20,0x6C,0x69,
+ 0x6E,0x65,0x73,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6E,0x20,
+ 0x74,0x68,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73,0x2C,0x20,
+ 0x6C,0x69,0x6B,0x65,0x20,0x61,0x6E,0x20,0x6F,0x73,0x63,0x69,
+ 0x6C,0x6C,0x6F,0x73,0x63,0x6F,0x70,0x65,0x2E,0x00,0x27,0x40,
+ 0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,
+ 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,
+ 0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,
+ 0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+ 0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F,0x66,
+ 0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+ 0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,0x20,0x74,0x68,0x65,
+ 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x74,0x6F,0x20,
+ 0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,0x56,0x53,0x79,0x6E,
+ 0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,0x64,0x65,0x6F,0x2E,
+ 0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,0x6E,
+ 0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,0x65,0x66,0x72,0x65,
+ 0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x20,0x6E,
+ 0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,0x28,0x6F,0x72,0x20,
+ 0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,0x68,0x65,0x6E,0x20,
+ 0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,0x20,0x61,0x6C,0x77,
+ 0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,0x66,0x6F,0x72,0x45,
+ 0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
+ 0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,0x76,0x69,0x6E,0x67,
+ 0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,0x69,0x6C,0x6C,0x20,
+ 0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,0x6C,0x65,
+ 0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,0x2F,0x76,0x69,0x64,
+ 0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,0x2C,0x1E,0x62,0x75,
+ 0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,0x6F,0x74,0x65,0x6E,
+ 0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,0x74,0x74,0x65,0x72,
+ 0x69,0x6E,0x67,0x2E,0x01,0x20,0x18,0x3E,0x40,0x58,0x30,0x34,
+ 0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x69,0x78,0x65,0x6C,0x20,
+ 0x66,0x69,0x6C,0x74,0x65,0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+ 0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,0x41,0x70,0x70,0x6C,
+ 0x69,0x65,0x73,0x20,0x61,0x20,0x73,0x75,0x62,0x70,0x69,0x78,
+ 0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x74,0x68,
+ 0x61,0x74,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x77,
+ 0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,
+ 0x6F,0x77,0x20,0x69,0x73,0x20,0x75,0x70,0x73,0x63,0x61,0x6C,
+ 0x65,0x64,0x2E,0x43,0x54,0x68,0x69,0x73,0x20,0x61,0x6C,0x73,
+ 0x6F,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,0x66,0x75,0x6C,0x6C,
+ 0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,
+ 0x63,0x6F,0x6D,0x70,0x6C,0x65,0x74,0x65,0x6C,0x79,0x20,0x73,
+ 0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,0x75,0x74,0x20,0x69,
+ 0x66,0x20,0x69,0x74,0x20,0x64,0x69,0x64,0x6E,0x27,0x74,0x44,
+ 0x61,0x6C,0x72,0x65,0x61,0x64,0x79,0x2E,0x20,0x50,0x6C,0x65,
+ 0x61,0x73,0x65,0x20,0x6B,0x65,0x65,0x70,0x20,0x69,0x6E,0x20,
+ 0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,
+ 0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,0x6B,0x65,
+ 0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x6C,0x6F,0x6F,0x6B,
+ 0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x2E,0x00,0x23,0x40,0x58,
+ 0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x64,0x76,0x61,
+ 0x6E,0x63,0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x20,0x66,0x75,
+ 0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x3A,0x20,0x01,0x3E,0x1E,
+ 0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,
+ 0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,0x65,0x20,0x6D,0x61,
+ 0x73,0x6B,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+ 0x30,0x40,0x43,0x30,0x30,0x32,0x37,0x54,0x68,0x65,0x20,0x6D,
+ 0x61,0x73,0x6B,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,0x75,0x73,
+ 0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x63,0x6F,0x70,0x79,0x69,
+ 0x6E,0x67,0x2F,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,
+ 0x6E,0x6C,0x79,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6F,0x66,
+ 0x20,0x61,0x46,0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,
+ 0x6C,0x22,0x2E,0x20,0x54,0x68,0x65,0x20,0x64,0x69,0x66,0x66,
+ 0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,0x72,0x74,0x73,0x20,
+ 0x6F,0x66,0x20,0x61,0x20,0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,
+ 0x65,0x6C,0x6C,0x22,0x20,0x69,0x73,0x20,0x4E,0x6F,0x74,0x65,
+ 0x2C,0x20,0x49,0x6E,0x73,0x74,0x72,0x2E,0x20,0x6E,0x72,0x2E,
+ 0x2C,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,0x45,0x66,
+ 0x66,0x65,0x63,0x74,0x20,0x6E,0x72,0x20,0x26,0x20,0x45,0x66,
+ 0x66,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x2E,0x34,0x3E,
+ 0x41,0x73,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,0x20,0x73,
+ 0x65,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69,
+ 0x6E,0x64,0x6F,0x77,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,
+ 0x72,0x65,0x20,0x33,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x73,
+ 0x20,0x6F,0x66,0x3D,0x22,0x65,0x6E,0x61,0x62,0x6C,0x65,0x2F,
+ 0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x20,0x62,0x75,0x74,0x74,
+ 0x6F,0x6E,0x73,0x22,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x68,
+ 0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x74,0x74,0x65,
+ 0x72,0x73,0x20,0x43,0x2C,0x50,0x20,0x26,0x20,0x54,0x20,0x61,
+ 0x62,0x6F,0x76,0x65,0x2E,0x45,0x3E,0x43,0x20,0x6D,0x65,0x61,
+ 0x6E,0x73,0x20,0x63,0x6F,0x70,0x79,0x2C,0x20,0x69,0x74,0x20,
+ 0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,0x77,0x68,0x69,
+ 0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x74,0x68,0x61,
+ 0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,
+ 0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,
+ 0x65,0x72,0x2E,0x3E,0x3E,0x50,0x20,0x6D,0x65,0x61,0x6E,0x73,
+ 0x20,0x70,0x61,0x73,0x74,0x65,0x20,0x61,0x6E,0x64,0x20,0x63,
+ 0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,0x77,0x68,0x69,0x63,
+ 0x68,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x74,0x68,0x61,0x74,
+ 0x20,0x67,0x6F,0x65,0x73,0x20,0x6F,0x75,0x74,0x20,0x66,0x72,
+ 0x6F,0x6D,0x20,0x74,0x68,0x65,0x0B,0x63,0x6F,0x70,0x79,0x62,
+ 0x75,0x66,0x66,0x65,0x72,0x2E,0x45,0x3E,0x54,0x20,0x6D,0x65,
+ 0x61,0x6E,0x73,0x20,0x74,0x72,0x61,0x6E,0x73,0x70,0x61,0x72,
+ 0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x69,0x74,0x27,
+ 0x73,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x64,0x2C,0x20,0x74,
+ 0x68,0x65,0x20,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x64,
+ 0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x6F,0x76,0x65,0x72,0x77,
+ 0x72,0x69,0x74,0x65,0x3D,0x64,0x61,0x74,0x61,0x20,0x77,0x69,
+ 0x74,0x68,0x20,0x6E,0x69,0x6C,0x2D,0x69,0x6E,0x66,0x6F,0x72,
+ 0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x6F,0x6E,0x6C,0x79,
+ 0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,
+ 0x20,0x6F,0x72,0x20,0x61,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,
+ 0x20,0x3C,0x3E,0x20,0x30,0x2E,0x01,0x3E,0x40,0x3E,0x54,0x68,
+ 0x65,0x20,0x63,0x75,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,
+ 0x6F,0x6E,0x73,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,
+ 0x6B,0x65,0x20,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,0x20,0x77,
+ 0x69,0x74,0x68,0x20,0x7A,0x65,0x72,0x6F,0x2D,0x64,0x61,0x74,
+ 0x61,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,
+ 0x73,0x3B,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x63,
+ 0x75,0x74,0x74,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,0x63,0x6F,
+ 0x6E,0x74,0x72,0x6F,0x6C,0x6C,0x65,0x64,0x20,0x77,0x69,0x74,
+ 0x68,0x20,0x50,0x2D,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x28,
+ 0x6F,0x72,0x20,0x54,0x2D,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x29,
+ 0x2E,0x3C,0x3E,0x57,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,
+ 0x63,0x6F,0x70,0x79,0x20,0x64,0x61,0x74,0x61,0x20,0x77,0x69,
+ 0x74,0x68,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x2C,0x20,
+ 0x74,0x68,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x64,
+ 0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x6E,
+ 0x6F,0x74,0x43,0x63,0x6C,0x65,0x61,0x72,0x65,0x64,0x20,0x69,
+ 0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,
+ 0x66,0x66,0x65,0x72,0x2E,0x20,0x28,0x4D,0x61,0x6B,0x69,0x6E,
+ 0x67,0x20,0x69,0x74,0x20,0x70,0x6F,0x73,0x73,0x69,0x62,0x6C,
+ 0x65,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6C,0x6C,0x65,0x63,0x74,
+ 0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,0x6F,0x6D,0x27,0x73,
+ 0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x6C,0x6F,0x63,0x61,0x74,
+ 0x69,0x6F,0x6E,0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,
+ 0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,
+ 0x2E,0x29,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
- 0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
- 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0E,0x40,0x4C,
- 0x50,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x2F,0x46,0x41,0x51,
- 0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x41,0x3E,0x40,0x43,0x30,
- 0x30,0x31,0x51,0x3A,0x20,0x43,0x61,0x6E,0x20,0x49,0x20,0x6D,
- 0x61,0x6B,0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,
- 0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x73,0x74,0x72,0x65,
- 0x74,0x63,0x68,0x20,0x6F,0x75,0x74,0x20,0x74,0x68,0x65,0x20,
- 0x77,0x68,0x6F,0x6C,0x65,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,
- 0x3F,0x3A,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x45,
- 0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x50,0x69,0x78,0x65,0x6C,
- 0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20,0x69,0x6E,0x20,
- 0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,
- 0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,
- 0x4D,0x3E,0x40,0x58,0x30,0x33,0x35,0x49,0x74,0x20,0x77,0x6F,
- 0x6E,0x27,0x74,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x70,0x72,0x65,
- 0x74,0x74,0x79,0x2C,0x20,0x62,0x75,0x74,0x20,0x74,0x6F,0x20,
- 0x73,0x6F,0x6D,0x65,0x20,0x70,0x65,0x6F,0x70,0x6C,0x65,0x20,
- 0x69,0x74,0x27,0x73,0x20,0x6D,0x75,0x63,0x68,0x20,0x62,0x65,
- 0x74,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20,0x6E,0x6F,
- 0x74,0x68,0x69,0x6E,0x67,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,
- 0x30,0x27,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,
- 0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x41,
- 0x4C,0x54,0x2B,0x46,0x34,0x20,0x61,0x6E,0x64,0x20,0x41,0x4C,
- 0x54,0x2B,0x46,0x35,0x21,0x4E,0x3E,0x40,0x43,0x30,0x30,0x32,
- 0x41,0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,
- 0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x68,0x61,0x76,0x65,0x20,
- 0x47,0x65,0x46,0x6F,0x72,0x63,0x65,0x20,0x45,0x78,0x70,0x65,
- 0x72,0x69,0x65,0x6E,0x63,0x65,0x20,0x69,0x6E,0x73,0x74,0x61,
- 0x6C,0x6C,0x65,0x64,0x2C,0x20,0x79,0x6F,0x75,0x20,0x6E,0x65,
- 0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,
- 0x2B,0x3E,0x40,0x58,0x30,0x33,0x35,0x74,0x68,0x65,0x20,0x6B,
- 0x65,0x79,0x62,0x69,0x6E,0x64,0x69,0x6E,0x67,0x73,0x20,0x69,
- 0x6E,0x20,0x69,0x74,0x73,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,
- 0x67,0x73,0x20,0x70,0x61,0x67,0x65,0x2E,0x56,0x6D,0x61,0x63,
- 0x4F,0x53,0x2F,0x4F,0x53,0x20,0x58,0x3A,0x20,0x43,0x68,0x61,
- 0x6E,0x67,0x65,0x20,0x41,0x4C,0x54,0x2B,0x46,0x34,0x2F,0x41,
- 0x4C,0x54,0x2B,0x46,0x35,0x20,0x6B,0x65,0x79,0x73,0x20,0x69,
- 0x6E,0x20,0x74,0x68,0x65,0x20,0x4F,0x53,0x20,0x74,0x6F,0x20,
- 0x73,0x6F,0x6D,0x65,0x74,0x68,0x69,0x6E,0x67,0x20,0x65,0x6C,
- 0x73,0x65,0x2E,0x20,0x41,0x6C,0x73,0x6F,0x20,0x66,0x6F,0x72,
- 0x20,0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x2E,0x06,
- 0x3E,0x40,0x58,0x30,0x32,0x30,0x2B,0x3E,0x40,0x43,0x30,0x30,
- 0x31,0x51,0x3A,0x20,0x54,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,
- 0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x69,0x73,0x20,
- 0x64,0x65,0x6C,0x61,0x79,0x65,0x64,0x2F,0x6C,0x61,0x67,0x67,
- 0x79,0x21,0x44,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,
- 0x4D,0x61,0x6B,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x22,0x53,
- 0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x6D,0x6F,0x75,0x73,
- 0x65,0x22,0x20,0x69,0x73,0x20,0x64,0x69,0x73,0x61,0x62,0x6C,
- 0x65,0x64,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,
- 0x20,0x2D,0x3E,0x20,0x4C,0x61,0x79,0x6F,0x75,0x74,0x2E,0x4B,
- 0x3E,0x40,0x58,0x30,0x33,0x35,0x41,0x6C,0x74,0x65,0x72,0x6E,
- 0x61,0x74,0x69,0x76,0x65,0x6C,0x79,0x2C,0x20,0x79,0x6F,0x75,
- 0x20,0x63,0x61,0x6E,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x20,
- 0x22,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F,0x66,0x66,0x22,0x20,
- 0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,
- 0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,
- 0x75,0x73,0x2E,0x46,0x3E,0x54,0x68,0x69,0x73,0x20,0x68,0x6F,
- 0x77,0x65,0x76,0x65,0x72,0x2C,0x20,0x77,0x69,0x6C,0x6C,0x20,
- 0x69,0x6E,0x74,0x72,0x6F,0x64,0x75,0x63,0x65,0x20,0x73,0x74,
- 0x75,0x74,0x74,0x65,0x72,0x69,0x6E,0x67,0x20,0x62,0x65,0x63,
- 0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6E,
- 0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x72,0x61,0x74,0x65,0x20,
- 0x69,0x73,0x22,0x3E,0x6E,0x6F,0x74,0x20,0x65,0x78,0x61,0x63,
- 0x74,0x20,0x74,0x6F,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,
- 0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x20,0x72,0x61,0x74,0x65,
- 0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x33,0x3E,0x40,0x43,
- 0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x69,0x6C,0x6C,0x20,0x79,
- 0x6F,0x75,0x20,0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,
- 0x20,0x4D,0x49,0x44,0x49,0x20,0x6F,0x75,0x74,0x20,0x66,0x75,
- 0x6E,0x63,0x74,0x69,0x6F,0x6E,0x61,0x6C,0x69,0x74,0x79,0x3F,
- 0x4D,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x4E,0x6F,
- 0x2C,0x20,0x73,0x6F,0x72,0x72,0x79,0x2E,0x20,0x54,0x68,0x69,
- 0x73,0x20,0x69,0x73,0x20,0x76,0x65,0x72,0x79,0x20,0x64,0x69,
- 0x66,0x66,0x69,0x63,0x75,0x6C,0x74,0x20,0x74,0x6F,0x20,0x69,
- 0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x20,0x63,0x6F,0x72,
- 0x72,0x65,0x63,0x74,0x6C,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,
- 0x68,0x61,0x76,0x69,0x6E,0x67,0x3C,0x3E,0x40,0x58,0x30,0x33,
- 0x35,0x68,0x69,0x67,0x68,0x65,0x72,0x20,0x61,0x75,0x64,0x69,
- 0x6F,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x73,0x69,0x7A,
- 0x65,0x73,0x20,0x28,0x62,0x75,0x66,0x66,0x65,0x72,0x65,0x64,
- 0x20,0x72,0x65,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,
- 0x63,0x6B,0x73,0x29,0x2E,0x2E,0x2E,0x06,0x3E,0x40,0x58,0x30,
- 0x32,0x30,0x30,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,
- 0x57,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x74,0x68,0x65,
- 0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,
- 0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,0x73,0x74,0x6F,0x72,
- 0x65,0x64,0x3F,0x3F,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,
- 0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,0x5C,0x55,
- 0x73,0x65,0x72,0x73,0x5C,0x55,0x53,0x45,0x52,0x5C,0x41,0x70,
- 0x70,0x44,0x61,0x74,0x61,0x5C,0x52,0x6F,0x61,0x6D,0x69,0x6E,
- 0x67,0x5C,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x5C,
- 0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x45,0x3E,0x40,0x58,0x30,
- 0x33,0x35,0x4F,0x53,0x20,0x58,0x3A,0x20,0x2F,0x55,0x73,0x65,
- 0x72,0x73,0x2F,0x55,0x53,0x45,0x52,0x2F,0x4C,0x69,0x62,0x72,
- 0x61,0x72,0x79,0x2F,0x41,0x70,0x70,0x6C,0x69,0x63,0x61,0x74,
- 0x69,0x6F,0x6E,0x20,0x53,0x75,0x70,0x70,0x6F,0x72,0x74,0x2F,
- 0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,
- 0x32,0x2E,0x43,0x46,0x47,0x2F,0x47,0x4E,0x55,0x2F,0x4C,0x69,
- 0x6E,0x75,0x78,0x3A,0x20,0x2F,0x68,0x6F,0x6D,0x65,0x2F,0x55,
- 0x53,0x45,0x52,0x2F,0x2E,0x63,0x6F,0x6E,0x66,0x69,0x67,0x2F,
- 0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,
- 0x32,0x2E,0x43,0x46,0x47,0x01,0x3E,0x48,0x49,0x74,0x20,0x77,
- 0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,
- 0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,
- 0x67,0x72,0x61,0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,
- 0x72,0x79,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x61,
- 0x74,0x68,0x20,0x63,0x6F,0x75,0x6C,0x64,0x6E,0x27,0x74,0x20,
- 0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x2E,0x4D,0x49,0x66,0x20,
- 0x79,0x6F,0x75,0x20,0x70,0x75,0x74,0x20,0x74,0x68,0x65,0x20,
- 0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,
- 0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,
- 0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x69,
- 0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2C,0x20,0x69,0x74,0x20,
- 0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x61,0x64,0x20,0x74,0x68,
- 0x61,0x74,0x4A,0x6F,0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,0x6E,
- 0x6F,0x74,0x20,0x61,0x74,0x74,0x65,0x6D,0x70,0x74,0x20,0x74,
- 0x6F,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6F,0x6E,
- 0x66,0x69,0x67,0x20,0x64,0x69,0x72,0x73,0x20,0x66,0x6F,0x72,
- 0x20,0x74,0x68,0x65,0x20,0x4F,0x53,0x20,0x75,0x73,0x65,0x72,
- 0x2E,0x20,0x28,0x70,0x6F,0x72,0x74,0x61,0x62,0x6C,0x65,0x20,
- 0x6D,0x6F,0x64,0x65,0x29,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,
- 0x42,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x43,0x61,
- 0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x20,
- 0x72,0x65,0x61,0x64,0x20,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,
- 0x20,0x66,0x72,0x6F,0x6D,0x20,0x72,0x65,0x61,0x6C,0x20,0x46,
- 0x54,0x32,0x2C,0x20,0x61,0x6E,0x64,0x20,0x76,0x69,0x63,0x65,
- 0x20,0x76,0x65,0x72,0x73,0x61,0x3F,0x4C,0x3E,0x40,0x43,0x30,
- 0x30,0x32,0x41,0x3A,0x20,0x59,0x65,0x73,0x2C,0x20,0x69,0x74,
- 0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x77,0x6F,0x72,0x6B,
- 0x20,0x6A,0x75,0x73,0x74,0x20,0x66,0x69,0x6E,0x65,0x2E,0x20,
- 0x50,0x75,0x74,0x20,0x69,0x74,0x20,0x69,0x6E,0x20,0x74,0x68,
- 0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,
- 0x73,0x68,0x6F,0x77,0x6E,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,
- 0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x52,0x3E,0x40,0x43,0x30,
- 0x30,0x31,0x51,0x3A,0x20,0x53,0x6D,0x70,0x2E,0x20,0x45,0x64,
- 0x2E,0x3A,0x20,0x57,0x68,0x69,0x6C,0x65,0x20,0x7A,0x6F,0x6F,
- 0x6D,0x69,0x6E,0x67,0x20,0x69,0x6E,0x2C,0x20,0x49,0x20,0x73,
- 0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65,0x73,0x20,0x63,0x61,0x6E,
- 0x27,0x74,0x20,0x6D,0x61,0x72,0x6B,0x20,0x74,0x68,0x65,0x20,
- 0x6C,0x61,0x73,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,
- 0x70,0x6F,0x69,0x6E,0x74,0x21,0x47,0x3E,0x40,0x43,0x30,0x30,
- 0x32,0x41,0x3A,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,
- 0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x2E,0x20,0x54,0x68,0x69,0x73,
- 0x20,0x69,0x73,0x20,0x61,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,
- 0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,
- 0x6E,0x61,0x74,0x75,0x72,0x65,0x20,0x6F,0x66,0x20,0x73,0x63,
- 0x61,0x6C,0x69,0x6E,0x67,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,
- 0x30,0x17,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,
- 0x20,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61,0x20,0x62,0x75,0x67,
- 0x21,0x4B,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x50,
- 0x6C,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6E,0x64,0x20,0x61,
- 0x20,0x6D,0x61,0x69,0x6C,0x20,0x74,0x6F,0x20,0x6F,0x6C,0x61,
- 0x76,0x2E,0x73,0x6F,0x72,0x65,0x6E,0x73,0x65,0x6E,0x40,0x6C,
- 0x69,0x76,0x65,0x2E,0x6E,0x6F,0x20,0x61,0x6E,0x64,0x20,0x74,
- 0x72,0x79,0x20,0x74,0x6F,0x20,0x65,0x78,0x70,0x6C,0x61,0x69,
- 0x6E,0x20,0x69,0x74,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x0E,0x40,0x4C,0x50,0x72,0x6F,0x62,
+ 0x6C,0x65,0x6D,0x73,0x2F,0x46,0x41,0x51,0x06,0x3E,0x40,0x58,
+ 0x30,0x32,0x30,0x41,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,
+ 0x20,0x43,0x61,0x6E,0x20,0x49,0x20,0x6D,0x61,0x6B,0x65,0x20,
+ 0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,
+ 0x6F,0x64,0x65,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,
+ 0x6F,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,
+ 0x65,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x3F,0x3A,0x3E,0x40,
+ 0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x45,0x6E,0x61,0x62,0x6C,
+ 0x65,0x20,0x22,0x50,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,
+ 0x74,0x65,0x72,0x22,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,
+ 0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,
+ 0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x4D,0x3E,0x40,0x58,
+ 0x30,0x33,0x35,0x49,0x74,0x20,0x77,0x6F,0x6E,0x27,0x74,0x20,
+ 0x6C,0x6F,0x6F,0x6B,0x20,0x70,0x72,0x65,0x74,0x74,0x79,0x2C,
+ 0x20,0x62,0x75,0x74,0x20,0x74,0x6F,0x20,0x73,0x6F,0x6D,0x65,
+ 0x20,0x70,0x65,0x6F,0x70,0x6C,0x65,0x20,0x69,0x74,0x27,0x73,
+ 0x20,0x6D,0x75,0x63,0x68,0x20,0x62,0x65,0x74,0x74,0x65,0x72,
+ 0x20,0x74,0x68,0x61,0x6E,0x20,0x6E,0x6F,0x74,0x68,0x69,0x6E,
+ 0x67,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x27,0x3E,0x40,
+ 0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,0x20,0x63,0x61,0x6E,
+ 0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x41,0x4C,0x54,0x2B,0x46,
+ 0x34,0x20,0x61,0x6E,0x64,0x20,0x41,0x4C,0x54,0x2B,0x46,0x35,
+ 0x21,0x4E,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,
+ 0x69,0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,0x49,0x66,0x20,0x79,
+ 0x6F,0x75,0x20,0x68,0x61,0x76,0x65,0x20,0x47,0x65,0x46,0x6F,
+ 0x72,0x63,0x65,0x20,0x45,0x78,0x70,0x65,0x72,0x69,0x65,0x6E,
+ 0x63,0x65,0x20,0x69,0x6E,0x73,0x74,0x61,0x6C,0x6C,0x65,0x64,
+ 0x2C,0x20,0x79,0x6F,0x75,0x20,0x6E,0x65,0x65,0x64,0x20,0x74,
+ 0x6F,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x2B,0x3E,0x40,0x58,
+ 0x30,0x33,0x35,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x69,
+ 0x6E,0x64,0x69,0x6E,0x67,0x73,0x20,0x69,0x6E,0x20,0x69,0x74,
+ 0x73,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x70,
+ 0x61,0x67,0x65,0x2E,0x56,0x6D,0x61,0x63,0x4F,0x53,0x2F,0x4F,
+ 0x53,0x20,0x58,0x3A,0x20,0x43,0x68,0x61,0x6E,0x67,0x65,0x20,
+ 0x41,0x4C,0x54,0x2B,0x46,0x34,0x2F,0x41,0x4C,0x54,0x2B,0x46,
+ 0x35,0x20,0x6B,0x65,0x79,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,
+ 0x65,0x20,0x4F,0x53,0x20,0x74,0x6F,0x20,0x73,0x6F,0x6D,0x65,
+ 0x74,0x68,0x69,0x6E,0x67,0x20,0x65,0x6C,0x73,0x65,0x2E,0x20,
+ 0x41,0x6C,0x73,0x6F,0x20,0x66,0x6F,0x72,0x20,0x47,0x4E,0x55,
+ 0x2F,0x4C,0x69,0x6E,0x75,0x78,0x2E,0x06,0x3E,0x40,0x58,0x30,
+ 0x32,0x30,0x2B,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,
+ 0x54,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x63,0x75,
+ 0x72,0x73,0x6F,0x72,0x20,0x69,0x73,0x20,0x64,0x65,0x6C,0x61,
+ 0x79,0x65,0x64,0x2F,0x6C,0x61,0x67,0x67,0x79,0x21,0x44,0x3E,
+ 0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x4D,0x61,0x6B,0x65,
+ 0x20,0x73,0x75,0x72,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,
+ 0x61,0x72,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x22,0x20,0x69,
+ 0x73,0x20,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x69,
+ 0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,
+ 0x4C,0x61,0x79,0x6F,0x75,0x74,0x2E,0x4B,0x3E,0x40,0x58,0x30,
+ 0x33,0x35,0x41,0x6C,0x74,0x65,0x72,0x6E,0x61,0x74,0x69,0x76,
+ 0x65,0x6C,0x79,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,
+ 0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x56,0x53,0x79,
+ 0x6E,0x63,0x20,0x6F,0x66,0x66,0x22,0x20,0x69,0x6E,0x20,0x43,
+ 0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73,
+ 0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x46,
+ 0x3E,0x54,0x68,0x69,0x73,0x20,0x68,0x6F,0x77,0x65,0x76,0x65,
+ 0x72,0x2C,0x20,0x77,0x69,0x6C,0x6C,0x20,0x69,0x6E,0x74,0x72,
+ 0x6F,0x64,0x75,0x63,0x65,0x20,0x73,0x74,0x75,0x74,0x74,0x65,
+ 0x72,0x69,0x6E,0x67,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,
+ 0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x69,
+ 0x6E,0x67,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x22,0x3E,
+ 0x6E,0x6F,0x74,0x20,0x65,0x78,0x61,0x63,0x74,0x20,0x74,0x6F,
+ 0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,
+ 0x72,0x27,0x73,0x20,0x72,0x61,0x74,0x65,0x2E,0x06,0x3E,0x40,
+ 0x58,0x30,0x32,0x30,0x33,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,
+ 0x3A,0x20,0x57,0x69,0x6C,0x6C,0x20,0x79,0x6F,0x75,0x20,0x69,
+ 0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x20,0x4D,0x49,0x44,
+ 0x49,0x20,0x6F,0x75,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,
+ 0x6F,0x6E,0x61,0x6C,0x69,0x74,0x79,0x3F,0x4D,0x3E,0x40,0x43,
+ 0x30,0x30,0x32,0x41,0x3A,0x20,0x4E,0x6F,0x2C,0x20,0x73,0x6F,
+ 0x72,0x72,0x79,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,
+ 0x20,0x76,0x65,0x72,0x79,0x20,0x64,0x69,0x66,0x66,0x69,0x63,
+ 0x75,0x6C,0x74,0x20,0x74,0x6F,0x20,0x69,0x6D,0x70,0x6C,0x65,
+ 0x6D,0x65,0x6E,0x74,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,
+ 0x6C,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,0x68,0x61,0x76,0x69,
+ 0x6E,0x67,0x3C,0x3E,0x40,0x58,0x30,0x33,0x35,0x68,0x69,0x67,
+ 0x68,0x65,0x72,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x62,0x75,
+ 0x66,0x66,0x65,0x72,0x20,0x73,0x69,0x7A,0x65,0x73,0x20,0x28,
+ 0x62,0x75,0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x72,0x65,0x70,
+ 0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29,
+ 0x2E,0x2E,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x30,0x3E,
+ 0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x68,0x65,0x72,
+ 0x65,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,
+ 0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,
+ 0x69,0x6C,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x3F,0x3F,
+ 0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E,
+ 0x64,0x6F,0x77,0x73,0x3A,0x20,0x5C,0x55,0x73,0x65,0x72,0x73,
+ 0x5C,0x55,0x53,0x45,0x52,0x5C,0x41,0x70,0x70,0x44,0x61,0x74,
+ 0x61,0x5C,0x52,0x6F,0x61,0x6D,0x69,0x6E,0x67,0x5C,0x46,0x54,
+ 0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x5C,0x46,0x54,0x32,0x2E,
+ 0x43,0x46,0x47,0x45,0x3E,0x40,0x58,0x30,0x33,0x35,0x4F,0x53,
+ 0x20,0x58,0x3A,0x20,0x2F,0x55,0x73,0x65,0x72,0x73,0x2F,0x55,
+ 0x53,0x45,0x52,0x2F,0x4C,0x69,0x62,0x72,0x61,0x72,0x79,0x2F,
+ 0x41,0x70,0x70,0x6C,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,
+ 0x53,0x75,0x70,0x70,0x6F,0x72,0x74,0x2F,0x46,0x54,0x32,0x20,
+ 0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,
+ 0x47,0x2F,0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x3A,
+ 0x20,0x2F,0x68,0x6F,0x6D,0x65,0x2F,0x55,0x53,0x45,0x52,0x2F,
+ 0x2E,0x63,0x6F,0x6E,0x66,0x69,0x67,0x2F,0x46,0x54,0x32,0x20,
+ 0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,
+ 0x47,0x01,0x3E,0x48,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,
+ 0x62,0x65,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E,
+ 0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
+ 0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x69,
+ 0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x63,
+ 0x6F,0x75,0x6C,0x64,0x6E,0x27,0x74,0x20,0x62,0x65,0x20,0x75,
+ 0x73,0x65,0x64,0x2E,0x4D,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,
+ 0x70,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,
+ 0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,
+ 0x6C,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72,
+ 0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74,
+ 0x6F,0x72,0x79,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,
+ 0x20,0x72,0x65,0x61,0x64,0x20,0x74,0x68,0x61,0x74,0x4A,0x6F,
+ 0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x61,
+ 0x74,0x74,0x65,0x6D,0x70,0x74,0x20,0x74,0x6F,0x20,0x63,0x72,
+ 0x65,0x61,0x74,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x20,
+ 0x64,0x69,0x72,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,
+ 0x20,0x4F,0x53,0x20,0x75,0x73,0x65,0x72,0x2E,0x20,0x28,0x70,
+ 0x6F,0x72,0x74,0x61,0x62,0x6C,0x65,0x20,0x6D,0x6F,0x64,0x65,
+ 0x29,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x42,0x3E,0x40,0x43,
+ 0x30,0x30,0x31,0x51,0x3A,0x20,0x43,0x61,0x6E,0x20,0x74,0x68,
+ 0x65,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x20,0x72,0x65,0x61,0x64,
+ 0x20,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x20,0x66,0x72,0x6F,
+ 0x6D,0x20,0x72,0x65,0x61,0x6C,0x20,0x46,0x54,0x32,0x2C,0x20,
+ 0x61,0x6E,0x64,0x20,0x76,0x69,0x63,0x65,0x20,0x76,0x65,0x72,
+ 0x73,0x61,0x3F,0x4C,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,
+ 0x20,0x59,0x65,0x73,0x2C,0x20,0x69,0x74,0x20,0x73,0x68,0x6F,
+ 0x75,0x6C,0x64,0x20,0x77,0x6F,0x72,0x6B,0x20,0x6A,0x75,0x73,
+ 0x74,0x20,0x66,0x69,0x6E,0x65,0x2E,0x20,0x50,0x75,0x74,0x20,
+ 0x69,0x74,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x64,0x69,
+ 0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x73,0x68,0x6F,0x77,
+ 0x6E,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,0x06,0x3E,0x40,0x58,
+ 0x30,0x32,0x30,0x52,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,
+ 0x20,0x53,0x6D,0x70,0x2E,0x20,0x45,0x64,0x2E,0x3A,0x20,0x57,
+ 0x68,0x69,0x6C,0x65,0x20,0x7A,0x6F,0x6F,0x6D,0x69,0x6E,0x67,
+ 0x20,0x69,0x6E,0x2C,0x20,0x49,0x20,0x73,0x6F,0x6D,0x65,0x74,
+ 0x69,0x6D,0x65,0x73,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x6D,
+ 0x61,0x72,0x6B,0x20,0x74,0x68,0x65,0x20,0x6C,0x61,0x73,0x74,
+ 0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,
+ 0x74,0x21,0x47,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,
+ 0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6E,0x6F,0x72,0x6D,
+ 0x61,0x6C,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,
+ 0x61,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,
+ 0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6E,0x61,0x74,0x75,
+ 0x72,0x65,0x20,0x6F,0x66,0x20,0x73,0x63,0x61,0x6C,0x69,0x6E,
+ 0x67,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x17,0x3E,0x40,
+ 0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,0x20,0x66,0x6F,0x75,
+ 0x6E,0x64,0x20,0x61,0x20,0x62,0x75,0x67,0x21,0x4B,0x3E,0x40,
+ 0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x50,0x6C,0x65,0x61,0x73,
+ 0x65,0x20,0x73,0x65,0x6E,0x64,0x20,0x61,0x20,0x6D,0x61,0x69,
+ 0x6C,0x20,0x74,0x6F,0x20,0x6F,0x6C,0x61,0x76,0x2E,0x73,0x6F,
+ 0x72,0x65,0x6E,0x73,0x65,0x6E,0x40,0x6C,0x69,0x76,0x65,0x2E,
+ 0x6E,0x6F,0x20,0x61,0x6E,0x64,0x20,0x74,0x72,0x79,0x20,0x74,
+ 0x6F,0x20,0x65,0x78,0x70,0x6C,0x61,0x69,0x6E,0x20,0x69,0x74,
+ 0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
- 0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,
+ 0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
- 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0C,0x40,0x4C,0x4B,
- 0x6E,0x6F,0x77,0x6E,0x20,0x62,0x75,0x67,0x73,0x06,0x3E,0x40,
- 0x58,0x30,0x31,0x30,0x14,0x3E,0x40,0x43,0x30,0x30,0x31,0x53,
- 0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,
- 0x3A,0x06,0x3E,0x40,0x43,0x30,0x30,0x32,0x4E,0x3E,0x40,0x58,
- 0x30,0x31,0x30,0x2D,0x20,0x57,0x68,0x65,0x6E,0x20,0x61,0x20,
- 0x6C,0x6F,0x6F,0x70,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,
- 0x65,0x20,0x69,0x73,0x20,0x7A,0x6F,0x6F,0x6D,0x65,0x64,0x20,
- 0x6F,0x75,0x74,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,
- 0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,
- 0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x6F,0x75,0x6C,0x64,0x20,
- 0x73,0x65,0x65,0x4F,0x3E,0x40,0x58,0x30,0x32,0x31,0x75,0x6E,
- 0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x61,0x6D,
- 0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x61,0x74,0x20,
- 0x74,0x68,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x2D,0x65,0x6E,0x64,
- 0x20,0x70,0x6F,0x69,0x6E,0x74,0x2E,0x20,0x54,0x68,0x69,0x73,
+ 0x2A,0x2A,0x2A,0x2A,0x0C,0x40,0x4C,0x4B,0x6E,0x6F,0x77,0x6E,
+ 0x20,0x62,0x75,0x67,0x73,0x06,0x3E,0x40,0x58,0x30,0x31,0x30,
+ 0x14,0x3E,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,
+ 0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x3A,0x06,0x3E,0x40,
+ 0x43,0x30,0x30,0x32,0x4E,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,
+ 0x20,0x57,0x68,0x65,0x6E,0x20,0x61,0x20,0x6C,0x6F,0x6F,0x70,
+ 0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x73,
+ 0x20,0x7A,0x6F,0x6F,0x6D,0x65,0x64,0x20,0x6F,0x75,0x74,0x20,
+ 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,
+ 0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2C,0x20,0x79,0x6F,
+ 0x75,0x20,0x63,0x6F,0x75,0x6C,0x64,0x20,0x73,0x65,0x65,0x4F,
+ 0x3E,0x40,0x58,0x30,0x32,0x31,0x75,0x6E,0x65,0x78,0x70,0x65,
+ 0x63,0x74,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,
+ 0x64,0x61,0x74,0x61,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,
+ 0x6C,0x6F,0x6F,0x70,0x2D,0x65,0x6E,0x64,0x20,0x70,0x6F,0x69,
+ 0x6E,0x74,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,
+ 0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x6F,0x66,0x20,0x61,
+ 0x20,0x6B,0x6C,0x75,0x64,0x67,0x65,0x4B,0x66,0x6F,0x72,0x20,
+ 0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,
+ 0x6E,0x67,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,
+ 0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x77,0x6F,0x72,0x6B,
+ 0x20,0x66,0x61,0x73,0x74,0x65,0x72,0x20,0x69,0x6E,0x20,0x74,
+ 0x68,0x65,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x6D,0x69,0x78,
+ 0x65,0x72,0x2C,0x20,0x61,0x6E,0x64,0x20,0x74,0x68,0x65,0x4B,
+ 0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54,0x32,
+ 0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,
+ 0x65,0x20,0x70,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x2E,0x20,0x49,
+ 0x20,0x68,0x61,0x76,0x65,0x20,0x6D,0x61,0x64,0x65,0x20,0x69,
+ 0x74,0x20,0x73,0x6F,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x66,
+ 0x20,0x79,0x6F,0x75,0x20,0x7A,0x6F,0x6F,0x6D,0x20,0x69,0x6E,
+ 0x20,0x74,0x6F,0x3B,0x73,0x65,0x65,0x20,0x74,0x68,0x65,0x20,
+ 0x69,0x6E,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6C,0x20,0x73,
+ 0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73,
+ 0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6C,0x6F,
+ 0x6F,0x6B,0x20,0x6C,0x69,0x6B,0x65,0x20,0x6E,0x6F,0x72,0x6D,
+ 0x61,0x6C,0x2E,0x06,0x3E,0x40,0x58,0x30,0x31,0x30,0x17,0x3E,
+ 0x40,0x43,0x30,0x30,0x31,0x4D,0x6F,0x75,0x73,0x65,0x20,0x2F,
+ 0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x3A,0x01,0x3E,
+ 0x43,0x3E,0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x4C,0x69,0x6E,
+ 0x75,0x78,0x3A,0x20,0x54,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,
+ 0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x67,0x72,0x61,
+ 0x70,0x68,0x69,0x63,0x73,0x20,0x63,0x61,0x6E,0x20,0x62,0x65,
+ 0x20,0x67,0x6C,0x69,0x74,0x63,0x68,0x79,0x20,0x61,0x74,0x20,
+ 0x74,0x69,0x6D,0x65,0x73,0x2E,0x2E,0x2E,0x06,0x3E,0x40,0x58,
+ 0x30,0x31,0x30,0x0C,0x3E,0x40,0x43,0x30,0x30,0x31,0x56,0x69,
+ 0x64,0x65,0x6F,0x3A,0x06,0x3E,0x40,0x43,0x30,0x30,0x32,0x50,
+ 0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,
+ 0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,
+ 0x63,0x61,0x6E,0x20,0x62,0x65,0x20,0x75,0x6E,0x62,0x65,0x61,
+ 0x72,0x61,0x62,0x6C,0x79,0x20,0x73,0x6C,0x6F,0x77,0x20,0x6F,
+ 0x6E,0x20,0x61,0x20,0x52,0x61,0x73,0x70,0x62,0x65,0x72,0x72,
+ 0x79,0x20,0x50,0x69,0x20,0x28,0x65,0x76,0x65,0x6E,0x20,0x6F,
+ 0x6E,0x20,0x52,0x50,0x69,0x20,0x34,0x29,0x01,0x3E,0x4A,0x3E,
+ 0x40,0x58,0x30,0x31,0x30,0x2D,0x20,0x54,0x68,0x65,0x20,0x73,
+ 0x63,0x6F,0x70,0x65,0x73,0x20,0x63,0x61,0x6E,0x20,0x6D,0x69,
+ 0x6C,0x64,0x6C,0x79,0x20,0x66,0x6C,0x69,0x63,0x6B,0x65,0x72,
+ 0x20,0x64,0x65,0x70,0x65,0x6E,0x64,0x69,0x6E,0x67,0x20,0x6F,
+ 0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,
+ 0x72,0x6D,0x20,0x61,0x6E,0x64,0x20,0x70,0x69,0x74,0x63,0x68,
+ 0x2E,0x4D,0x3E,0x40,0x58,0x30,0x32,0x31,0x54,0x68,0x69,0x73,
0x20,0x69,0x73,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,
- 0x6F,0x66,0x20,0x61,0x20,0x6B,0x6C,0x75,0x64,0x67,0x65,0x4B,
- 0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x61,
- 0x6D,0x70,0x6C,0x69,0x6E,0x67,0x20,0x69,0x6E,0x74,0x65,0x72,
- 0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,
- 0x77,0x6F,0x72,0x6B,0x20,0x66,0x61,0x73,0x74,0x65,0x72,0x20,
- 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x64,0x69,0x6F,
- 0x20,0x6D,0x69,0x78,0x65,0x72,0x2C,0x20,0x61,0x6E,0x64,0x20,
- 0x74,0x68,0x65,0x4B,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,
- 0x20,0x46,0x54,0x32,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,
- 0x20,0x73,0x61,0x6D,0x65,0x20,0x70,0x72,0x6F,0x62,0x6C,0x65,
- 0x6D,0x2E,0x20,0x49,0x20,0x68,0x61,0x76,0x65,0x20,0x6D,0x61,
- 0x64,0x65,0x20,0x69,0x74,0x20,0x73,0x6F,0x20,0x74,0x68,0x61,
- 0x74,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x7A,0x6F,0x6F,
- 0x6D,0x20,0x69,0x6E,0x20,0x74,0x6F,0x3B,0x73,0x65,0x65,0x20,
- 0x74,0x68,0x65,0x20,0x69,0x6E,0x64,0x69,0x76,0x69,0x64,0x75,
- 0x61,0x6C,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,
- 0x69,0x6E,0x74,0x73,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,
- 0x6C,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x6C,0x69,0x6B,0x65,0x20,
- 0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x2E,0x06,0x3E,0x40,0x58,0x30,
- 0x31,0x30,0x17,0x3E,0x40,0x43,0x30,0x30,0x31,0x4D,0x6F,0x75,
- 0x73,0x65,0x20,0x2F,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,
- 0x64,0x3A,0x01,0x3E,0x43,0x3E,0x40,0x43,0x30,0x30,0x32,0x2D,
- 0x20,0x4C,0x69,0x6E,0x75,0x78,0x3A,0x20,0x54,0x68,0x65,0x20,
- 0x6D,0x6F,0x75,0x73,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,
- 0x20,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x20,0x63,0x61,
- 0x6E,0x20,0x62,0x65,0x20,0x67,0x6C,0x69,0x74,0x63,0x68,0x79,
- 0x20,0x61,0x74,0x20,0x74,0x69,0x6D,0x65,0x73,0x2E,0x2E,0x2E,
- 0x06,0x3E,0x40,0x58,0x30,0x31,0x30,0x0C,0x3E,0x40,0x43,0x30,
- 0x30,0x31,0x56,0x69,0x64,0x65,0x6F,0x3A,0x06,0x3E,0x40,0x43,
- 0x30,0x30,0x32,0x50,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,
- 0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,
- 0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x62,0x65,0x20,0x75,
- 0x6E,0x62,0x65,0x61,0x72,0x61,0x62,0x6C,0x79,0x20,0x73,0x6C,
- 0x6F,0x77,0x20,0x6F,0x6E,0x20,0x61,0x20,0x52,0x61,0x73,0x70,
- 0x62,0x65,0x72,0x72,0x79,0x20,0x50,0x69,0x20,0x28,0x65,0x76,
- 0x65,0x6E,0x20,0x6F,0x6E,0x20,0x52,0x50,0x69,0x20,0x34,0x29,
- 0x01,0x3E,0x4A,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,0x54,
- 0x68,0x65,0x20,0x73,0x63,0x6F,0x70,0x65,0x73,0x20,0x63,0x61,
- 0x6E,0x20,0x6D,0x69,0x6C,0x64,0x6C,0x79,0x20,0x66,0x6C,0x69,
- 0x63,0x6B,0x65,0x72,0x20,0x64,0x65,0x70,0x65,0x6E,0x64,0x69,
- 0x6E,0x67,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x61,
- 0x76,0x65,0x66,0x6F,0x72,0x6D,0x20,0x61,0x6E,0x64,0x20,0x70,
- 0x69,0x74,0x63,0x68,0x2E,0x4D,0x3E,0x40,0x58,0x30,0x32,0x31,
- 0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x62,0x65,0x63,0x61,
- 0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x69,0x72,0x20,0x66,0x72,
- 0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x69,0x73,0x20,0x6E,
- 0x6F,0x74,0x20,0x63,0x6C,0x6F,0x63,0x6B,0x65,0x64,0x20,0x74,
- 0x6F,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x20,0x74,0x68,
- 0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x72,0x61,0x74,0x65,0x4D,
- 0x3E,0x61,0x74,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x74,0x68,
- 0x65,0x20,0x73,0x63,0x6F,0x70,0x65,0x73,0x20,0x61,0x72,0x65,
- 0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x65,0x64,0x2E,0x20,0x49,
- 0x74,0x27,0x73,0x20,0x63,0x6C,0x6F,0x73,0x65,0x2C,0x20,0x77,
- 0x68,0x69,0x63,0x68,0x20,0x63,0x61,0x75,0x73,0x65,0x73,0x20,
- 0x61,0x20,0x66,0x6C,0x69,0x63,0x6B,0x65,0x72,0x20,0x65,0x66,
- 0x66,0x65,0x63,0x74,0x2E,0x01,0x3E,0x52,0x3E,0x40,0x58,0x30,
- 0x31,0x30,0x2D,0x20,0x4E,0x6F,0x74,0x20,0x61,0x20,0x62,0x75,
- 0x67,0x2C,0x20,0x62,0x75,0x74,0x20,0x69,0x66,0x20,0x79,0x6F,
- 0x75,0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,
- 0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x72,0x61,0x74,
- 0x65,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x73,0x65,0x74,
- 0x20,0x74,0x6F,0x20,0x36,0x30,0x48,0x7A,0x20,0x28,0x6F,0x72,
- 0x20,0x35,0x39,0x48,0x7A,0x29,0x4F,0x3E,0x40,0x58,0x30,0x32,
- 0x31,0x79,0x6F,0x75,0x20,0x6D,0x61,0x79,0x20,0x65,0x78,0x70,
- 0x65,0x72,0x69,0x65,0x6E,0x63,0x65,0x20,0x76,0x69,0x73,0x75,
- 0x61,0x6C,0x20,0x73,0x74,0x75,0x74,0x74,0x65,0x72,0x69,0x6E,
- 0x67,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x56,0x53,
- 0x79,0x6E,0x63,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6E,0x6F,0x74,
- 0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x68,0x65,
- 0x6E,0x2E,0x49,0x49,0x20,0x68,0x69,0x67,0x68,0x6C,0x79,0x20,
- 0x72,0x65,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x64,0x20,0x72,0x75,
- 0x6E,0x6E,0x69,0x6E,0x67,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,
- 0x6F,0x6E,0x69,0x74,0x6F,0x72,0x20,0x61,0x74,0x20,0x36,0x30,
- 0x48,0x7A,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x27,0x72,0x65,
- 0x20,0x61,0x20,0x68,0x61,0x72,0x64,0x63,0x6F,0x72,0x65,0x20,
- 0x75,0x73,0x65,0x72,0x10,0x6F,0x66,0x20,0x74,0x68,0x69,0x73,
- 0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x2E,0x00,0x03,0x45,
- 0x4E,0x44
+ 0x74,0x68,0x65,0x69,0x72,0x20,0x66,0x72,0x65,0x71,0x75,0x65,
+ 0x6E,0x63,0x79,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x63,
+ 0x6C,0x6F,0x63,0x6B,0x65,0x64,0x20,0x74,0x6F,0x20,0x65,0x78,
+ 0x61,0x63,0x74,0x6C,0x79,0x20,0x74,0x68,0x65,0x20,0x73,0x61,
+ 0x6D,0x65,0x20,0x72,0x61,0x74,0x65,0x4D,0x3E,0x61,0x74,0x20,
+ 0x77,0x68,0x69,0x63,0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x63,
+ 0x6F,0x70,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x6E,
+ 0x64,0x65,0x72,0x65,0x64,0x2E,0x20,0x49,0x74,0x27,0x73,0x20,
+ 0x63,0x6C,0x6F,0x73,0x65,0x2C,0x20,0x77,0x68,0x69,0x63,0x68,
+ 0x20,0x63,0x61,0x75,0x73,0x65,0x73,0x20,0x61,0x20,0x66,0x6C,
+ 0x69,0x63,0x6B,0x65,0x72,0x20,0x65,0x66,0x66,0x65,0x63,0x74,
+ 0x2E,0x01,0x3E,0x52,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,
+ 0x4E,0x6F,0x74,0x20,0x61,0x20,0x62,0x75,0x67,0x2C,0x20,0x62,
+ 0x75,0x74,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,
+ 0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x20,0x72,0x65,0x66,
+ 0x72,0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,
+ 0x20,0x6E,0x6F,0x74,0x20,0x73,0x65,0x74,0x20,0x74,0x6F,0x20,
+ 0x36,0x30,0x48,0x7A,0x20,0x28,0x6F,0x72,0x20,0x35,0x39,0x48,
+ 0x7A,0x29,0x4F,0x3E,0x40,0x58,0x30,0x32,0x31,0x79,0x6F,0x75,
+ 0x20,0x6D,0x61,0x79,0x20,0x65,0x78,0x70,0x65,0x72,0x69,0x65,
+ 0x6E,0x63,0x65,0x20,0x76,0x69,0x73,0x75,0x61,0x6C,0x20,0x73,
+ 0x74,0x75,0x74,0x74,0x65,0x72,0x69,0x6E,0x67,0x20,0x62,0x65,
+ 0x63,0x61,0x75,0x73,0x65,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,
+ 0x77,0x69,0x6C,0x6C,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,
+ 0x75,0x73,0x65,0x64,0x20,0x74,0x68,0x65,0x6E,0x2E,0x49,0x49,
+ 0x20,0x68,0x69,0x67,0x68,0x6C,0x79,0x20,0x72,0x65,0x63,0x6F,
+ 0x6D,0x6D,0x65,0x6E,0x64,0x20,0x72,0x75,0x6E,0x6E,0x69,0x6E,
+ 0x67,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,
+ 0x6F,0x72,0x20,0x61,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,0x69,
+ 0x66,0x20,0x79,0x6F,0x75,0x27,0x72,0x65,0x20,0x61,0x20,0x68,
+ 0x61,0x72,0x64,0x63,0x6F,0x72,0x65,0x20,0x75,0x73,0x65,0x72,
+ 0x10,0x6F,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,
+ 0x67,0x72,0x61,0x6D,0x2E,0x00,0x03,0x45,0x4E,0x44
};
#endif
--- a/src/mixer/ft2_center_mix.c
+++ b/src/mixer/ft2_center_mix.c
@@ -13,39 +13,28 @@
void centerMix8bNoLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -66,39 +55,28 @@
void centerMix8bLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -119,40 +97,29 @@
void centerMix8bBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- INC_POS_BIDI
- RENDER_8BIT_SMP_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -174,39 +141,28 @@
void centerMix8bNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -227,39 +183,28 @@
void centerMix8bLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -280,40 +225,29 @@
void centerMix8bBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS_BIDI
- RENDER_8BIT_SMP_MONO_INTRP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -335,44 +269,31 @@
void centerMix8bRampNoLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -398,44 +319,31 @@
void centerMix8bRampLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -461,45 +369,32 @@
void centerMix8bRampBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- RENDER_8BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO
@@ -526,44 +421,31 @@
void centerMix8bRampNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -589,44 +471,31 @@
void centerMix8bRampLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -652,45 +521,32 @@
void centerMix8bRampBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- RENDER_8BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_MONO_INTRP
@@ -723,39 +579,28 @@
void centerMix16bNoLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -776,39 +621,28 @@
void centerMix16bLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -829,40 +663,29 @@
void centerMix16bBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- INC_POS_BIDI
- RENDER_16BIT_SMP_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -884,39 +707,28 @@
void centerMix16bNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
@@ -937,39 +749,28 @@
void centerMix16bLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
@@ -990,40 +791,29 @@
void centerMix16bBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO
GET_MIXER_VARS
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS_BIDI
- RENDER_16BIT_SMP_MONO_INTRP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
@@ -1045,44 +835,31 @@
void centerMix16bRampNoLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -1108,44 +885,31 @@
void centerMix16bRampLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -1171,45 +935,32 @@
void centerMix16bRampBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO
VOLUME_RAMPING_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- RENDER_16BIT_SMP_MONO
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO
@@ -1236,44 +987,31 @@
void centerMix16bRampNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
@@ -1299,44 +1037,31 @@
void centerMix16bRampLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
@@ -1362,45 +1087,32 @@
void centerMix16bRampBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_LVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolL;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_MONO_RAMP
GET_MIXER_VARS_MONO_RAMP
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_MONO_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_MONO_INTRP
VOLUME_RAMPING_MONO
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- RENDER_16BIT_SMP_MONO_INTRP
- VOLUME_RAMPING_MONO
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_MONO_INTRP
--- a/src/mixer/ft2_intrp_table.c
+++ b/src/mixer/ft2_intrp_table.c
@@ -1,1302 +1,2062 @@
#include <stdint.h>
#include "ft2_intrp_table.h"
-// 4-tap cubic spline table
+/* 4-tap cubic spline LUT (4096 phases, 32-bit single-precision float)
+**
+** IEEE 754 single-precision floats stored in uint32_t representation
+** to prevent precision loss.
+**
+** Calculated with a modified version of Schism Tracker's lutgen.c code.
+*/
-#if defined __amd64__ || defined _WIN64
-
-// 15-bit precision, 4096 phases
-
-const int16_t cubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES] =
+const uint32_t fCubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES] =
{
- 0, 32767, 0, 0, -4, 32767, 4, 0, -8, 32767, 8, 0, -12, 32767, 12, 0,
- -16, 32767, 16, 0, -20, 32767, 20, 0, -24, 32767, 24, 0, -28, 32767, 28, 0,
- -32, 32767, 32, 0, -36, 32767, 36, 0, -40, 32767, 40, 0, -44, 32767, 44, 0,
- -48, 32767, 49, 0, -52, 32767, 53, 0, -56, 32767, 57, 0, -60, 32767, 61, 0,
- -64, 32767, 65, 0, -67, 32766, 69, 0, -71, 32766, 73, 0, -75, 32766, 77, 0,
- -79, 32765, 82, 0, -83, 32765, 86, 0, -87, 32765, 90, 0, -91, 32766, 94, -1,
- -95, 32766, 98, -1, -99, 32766, 102, -1, -103, 32765, 107, -1, -107, 32765, 111, -1,
- -110, 32764, 115, -1, -114, 32764, 119, -1, -118, 32764, 123, -1, -122, 32763, 128, -1,
- -126, 32763, 132, -1, -130, 32763, 136, -1, -134, 32763, 140, -1, -138, 32762, 145, -1,
- -141, 32761, 149, -1, -145, 32761, 153, -1, -149, 32760, 158, -1, -153, 32760, 162, -1,
- -157, 32761, 166, -2, -161, 32760, 171, -2, -165, 32760, 175, -2, -168, 32759, 179, -2,
- -172, 32758, 184, -2, -176, 32758, 188, -2, -180, 32758, 192, -2, -184, 32757, 197, -2,
- -188, 32757, 201, -2, -191, 32756, 205, -2, -195, 32755, 210, -2, -199, 32756, 214, -3,
- -203, 32756, 218, -3, -207, 32755, 223, -3, -210, 32754, 227, -3, -214, 32753, 232, -3,
- -218, 32753, 236, -3, -222, 32752, 241, -3, -225, 32751, 245, -3, -229, 32751, 249, -3,
- -233, 32750, 254, -3, -237, 32751, 258, -4, -241, 32750, 263, -4, -244, 32749, 267, -4,
- -248, 32748, 272, -4, -252, 32748, 276, -4, -256, 32747, 281, -4, -259, 32746, 285, -4,
- -263, 32745, 290, -4, -267, 32746, 294, -5, -271, 32745, 299, -5, -274, 32744, 303, -5,
- -278, 32743, 308, -5, -282, 32742, 313, -5, -285, 32741, 317, -5, -289, 32740, 322, -5,
- -293, 32741, 326, -6, -297, 32740, 331, -6, -300, 32739, 335, -6, -304, 32738, 340, -6,
- -308, 32737, 345, -6, -311, 32736, 349, -6, -315, 32735, 354, -6, -319, 32735, 359, -7,
- -322, 32734, 363, -7, -326, 32733, 368, -7, -330, 32733, 372, -7, -333, 32731, 377, -7,
- -337, 32730, 382, -7, -341, 32731, 386, -8, -344, 32729, 391, -8, -348, 32728, 396, -8,
- -352, 32727, 401, -8, -355, 32726, 405, -8, -359, 32725, 410, -8, -363, 32725, 415, -9,
- -366, 32724, 419, -9, -370, 32723, 424, -9, -373, 32721, 429, -9, -377, 32720, 434, -9,
- -381, 32721, 438, -10, -384, 32719, 443, -10, -388, 32718, 448, -10, -392, 32717, 453, -10,
- -395, 32716, 457, -10, -399, 32715, 462, -10, -402, 32714, 467, -11, -406, 32713, 472, -11,
- -410, 32712, 477, -11, -413, 32711, 481, -11, -417, 32710, 486, -11, -420, 32709, 491, -12,
- -424, 32708, 496, -12, -427, 32706, 501, -12, -431, 32705, 506, -12, -435, 32705, 511, -13,
- -438, 32704, 515, -13, -442, 32703, 520, -13, -445, 32701, 525, -13, -449, 32700, 530, -13,
- -452, 32699, 535, -14, -456, 32698, 540, -14, -459, 32696, 545, -14, -463, 32695, 550, -14,
- -466, 32694, 555, -15, -470, 32693, 560, -15, -473, 32691, 565, -15, -477, 32690, 570, -15,
- -481, 32690, 575, -16, -484, 32689, 579, -16, -488, 32688, 584, -16, -491, 32686, 589, -16,
- -495, 32685, 594, -16, -498, 32684, 599, -17, -502, 32683, 604, -17, -505, 32681, 609, -17,
- -508, 32679, 614, -17, -512, 32679, 619, -18, -515, 32676, 625, -18, -519, 32675, 630, -18,
- -522, 32673, 635, -18, -526, 32673, 640, -19, -529, 32671, 645, -19, -533, 32670, 650, -19,
- -536, 32669, 655, -20, -540, 32668, 660, -20, -543, 32666, 665, -20, -547, 32665, 670, -20,
- -550, 32664, 675, -21, -553, 32662, 680, -21, -557, 32661, 685, -21, -560, 32658, 691, -21,
- -564, 32658, 696, -22, -567, 32656, 701, -22, -571, 32655, 706, -22, -574, 32654, 711, -23,
- -577, 32652, 716, -23, -581, 32650, 722, -23, -584, 32648, 727, -23, -588, 32648, 732, -24,
- -591, 32646, 737, -24, -594, 32644, 742, -24, -598, 32644, 747, -25, -601, 32641, 753, -25,
- -605, 32640, 758, -25, -608, 32639, 763, -26, -611, 32637, 768, -26, -615, 32635, 774, -26,
- -618, 32633, 779, -26, -621, 32632, 784, -27, -625, 32631, 789, -27, -628, 32628, 795, -27,
- -631, 32627, 800, -28, -635, 32626, 805, -28, -638, 32624, 810, -28, -641, 32622, 816, -29,
- -645, 32621, 821, -29, -648, 32619, 826, -29, -651, 32617, 832, -30, -655, 32616, 837, -30,
- -658, 32614, 842, -30, -661, 32612, 848, -31, -665, 32611, 853, -31, -668, 32609, 858, -31,
- -671, 32607, 864, -32, -675, 32606, 869, -32, -678, 32603, 875, -32, -681, 32602, 880, -33,
- -685, 32601, 885, -33, -688, 32598, 891, -33, -691, 32597, 896, -34, -694, 32594, 902, -34,
- -698, 32593, 907, -34, -701, 32592, 912, -35, -704, 32589, 918, -35, -708, 32588, 923, -35,
- -711, 32586, 929, -36, -714, 32584, 934, -36, -717, 32581, 940, -36, -721, 32581, 945, -37,
- -724, 32578, 951, -37, -727, 32577, 956, -38, -730, 32575, 961, -38, -734, 32573, 967, -38,
- -737, 32572, 972, -39, -740, 32569, 978, -39, -743, 32566, 984, -39, -746, 32565, 989, -40,
- -750, 32563, 995, -40, -753, 32561, 1000, -40, -756, 32559, 1006, -41, -759, 32557, 1011, -41,
- -762, 32555, 1017, -42, -766, 32554, 1022, -42, -769, 32551, 1028, -42, -772, 32550, 1033, -43,
- -775, 32547, 1039, -43, -778, 32545, 1045, -44, -782, 32544, 1050, -44, -785, 32541, 1056, -44,
- -788, 32540, 1061, -45, -791, 32537, 1067, -45, -794, 32535, 1073, -46, -798, 32534, 1078, -46,
- -801, 32531, 1084, -46, -804, 32529, 1090, -47, -807, 32527, 1095, -47, -810, 32525, 1101, -48,
- -813, 32522, 1107, -48, -816, 32520, 1112, -48, -820, 32519, 1118, -49, -823, 32516, 1124, -49,
- -826, 32515, 1129, -50, -829, 32512, 1135, -50, -832, 32509, 1141, -50, -835, 32508, 1146, -51,
- -838, 32505, 1152, -51, -841, 32503, 1158, -52, -845, 32501, 1164, -52, -848, 32500, 1169, -53,
- -851, 32497, 1175, -53, -854, 32494, 1181, -53, -857, 32492, 1187, -54, -860, 32490, 1192, -54,
- -863, 32488, 1198, -55, -866, 32485, 1204, -55, -869, 32483, 1210, -56, -872, 32480, 1216, -56,
- -876, 32479, 1221, -56, -879, 32477, 1227, -57, -882, 32474, 1233, -57, -885, 32472, 1239, -58,
- -888, 32469, 1245, -58, -891, 32468, 1250, -59, -894, 32465, 1256, -59, -897, 32463, 1262, -60,
- -900, 32460, 1268, -60, -903, 32457, 1274, -60, -906, 32455, 1280, -61, -909, 32452, 1286, -61,
- -912, 32451, 1291, -62, -915, 32448, 1297, -62, -918, 32446, 1303, -63, -921, 32443, 1309, -63,
- -924, 32441, 1315, -64, -927, 32438, 1321, -64, -930, 32436, 1327, -65, -933, 32433, 1333, -65,
- -936, 32431, 1339, -66, -939, 32428, 1345, -66, -942, 32425, 1351, -66, -945, 32423, 1357, -67,
- -948, 32420, 1363, -67, -951, 32418, 1369, -68, -954, 32415, 1375, -68, -957, 32413, 1381, -69,
- -960, 32410, 1387, -69, -963, 32408, 1393, -70, -966, 32405, 1399, -70, -969, 32403, 1405, -71,
- -972, 32400, 1411, -71, -975, 32398, 1417, -72, -978, 32395, 1423, -72, -981, 32393, 1429, -73,
- -984, 32390, 1435, -73, -987, 32388, 1441, -74, -990, 32385, 1447, -74, -993, 32383, 1453, -75,
- -996, 32380, 1459, -75, -999, 32378, 1465, -76, -1002, 32375, 1471, -76, -1004, 32372, 1477, -77,
- -1007, 32369, 1483, -77, -1010, 32367, 1489, -78, -1013, 32364, 1495, -78, -1016, 32361, 1502, -79,
- -1019, 32358, 1508, -79, -1022, 32356, 1514, -80, -1025, 32353, 1520, -80, -1028, 32351, 1526, -81,
- -1031, 32348, 1532, -81, -1034, 32346, 1538, -82, -1036, 32341, 1545, -82, -1039, 32339, 1551, -83,
- -1042, 32337, 1557, -84, -1045, 32334, 1563, -84, -1048, 32332, 1569, -85, -1051, 32329, 1575, -85,
- -1054, 32326, 1582, -86, -1057, 32323, 1588, -86, -1059, 32320, 1594, -87, -1062, 32317, 1600, -87,
- -1065, 32314, 1607, -88, -1068, 32311, 1613, -88, -1071, 32309, 1619, -89, -1074, 32306, 1625, -89,
- -1076, 32303, 1631, -90, -1079, 32300, 1638, -91, -1082, 32297, 1644, -91, -1085, 32295, 1650, -92,
- -1088, 32291, 1657, -92, -1091, 32289, 1663, -93, -1093, 32285, 1669, -93, -1096, 32283, 1675, -94,
- -1099, 32279, 1682, -94, -1102, 32277, 1688, -95, -1105, 32275, 1694, -96, -1107, 32270, 1701, -96,
- -1110, 32268, 1707, -97, -1113, 32265, 1713, -97, -1116, 32262, 1720, -98, -1119, 32259, 1726, -98,
- -1121, 32256, 1732, -99, -1124, 32252, 1739, -99, -1127, 32250, 1745, -100, -1130, 32248, 1751, -101,
- -1133, 32244, 1758, -101, -1135, 32241, 1764, -102, -1138, 32237, 1771, -102, -1141, 32235, 1777, -103,
- -1144, 32233, 1783, -104, -1146, 32228, 1790, -104, -1149, 32226, 1796, -105, -1152, 32222, 1803, -105,
- -1155, 32220, 1809, -106, -1157, 32215, 1816, -106, -1160, 32213, 1822, -107, -1163, 32211, 1828, -108,
- -1166, 32207, 1835, -108, -1168, 32204, 1841, -109, -1171, 32200, 1848, -109, -1174, 32198, 1854, -110,
- -1176, 32194, 1861, -111, -1179, 32191, 1867, -111, -1182, 32188, 1874, -112, -1185, 32185, 1880, -112,
- -1187, 32181, 1887, -113, -1190, 32179, 1893, -114, -1193, 32175, 1900, -114, -1195, 32172, 1906, -115,
- -1198, 32168, 1913, -115, -1201, 32166, 1919, -116, -1203, 32162, 1926, -117, -1206, 32158, 1933, -117,
- -1209, 32156, 1939, -118, -1211, 32152, 1946, -119, -1214, 32149, 1952, -119, -1217, 32146, 1959, -120,
- -1219, 32142, 1965, -120, -1222, 32139, 1972, -121, -1225, 32136, 1979, -122, -1227, 32132, 1985, -122,
- -1230, 32129, 1992, -123, -1233, 32126, 1998, -123, -1235, 32122, 2005, -124, -1238, 32119, 2012, -125,
- -1241, 32116, 2018, -125, -1243, 32112, 2025, -126, -1246, 32109, 2032, -127, -1248, 32105, 2038, -127,
- -1251, 32102, 2045, -128, -1254, 32100, 2051, -129, -1256, 32095, 2058, -129, -1259, 32092, 2065, -130,
- -1262, 32089, 2072, -131, -1264, 32085, 2078, -131, -1267, 32082, 2085, -132, -1269, 32077, 2092, -132,
- -1272, 32075, 2098, -133, -1274, 32071, 2105, -134, -1277, 32067, 2112, -134, -1280, 32065, 2118, -135,
- -1282, 32061, 2125, -136, -1285, 32057, 2132, -136, -1287, 32053, 2139, -137, -1290, 32051, 2145, -138,
- -1293, 32047, 2152, -138, -1295, 32043, 2159, -139, -1298, 32040, 2166, -140, -1300, 32036, 2172, -140,
- -1303, 32033, 2179, -141, -1305, 32029, 2186, -142, -1308, 32025, 2193, -142, -1310, 32021, 2200, -143,
- -1313, 32019, 2206, -144, -1315, 32014, 2213, -144, -1318, 32011, 2220, -145, -1321, 32008, 2227, -146,
- -1323, 32003, 2234, -146, -1326, 32000, 2241, -147, -1328, 31997, 2247, -148, -1331, 31993, 2254, -148,
- -1333, 31989, 2261, -149, -1336, 31986, 2268, -150, -1338, 31981, 2275, -150, -1341, 31978, 2282, -151,
- -1343, 31974, 2289, -152, -1346, 31972, 2295, -153, -1348, 31967, 2302, -153, -1351, 31964, 2309, -154,
- -1353, 31960, 2316, -155, -1356, 31956, 2323, -155, -1358, 31952, 2330, -156, -1361, 31949, 2337, -157,
- -1363, 31944, 2344, -157, -1366, 31941, 2351, -158, -1368, 31937, 2358, -159, -1370, 31932, 2365, -159,
- -1373, 31930, 2371, -160, -1375, 31926, 2378, -161, -1378, 31923, 2385, -162, -1380, 31918, 2392, -162,
- -1383, 31915, 2399, -163, -1385, 31911, 2406, -164, -1388, 31907, 2413, -164, -1390, 31903, 2420, -165,
- -1392, 31899, 2427, -166, -1395, 31896, 2434, -167, -1397, 31891, 2441, -167, -1400, 31888, 2448, -168,
- -1402, 31884, 2455, -169, -1405, 31880, 2462, -169, -1407, 31876, 2469, -170, -1409, 31872, 2476, -171,
- -1412, 31869, 2483, -172, -1414, 31863, 2491, -172, -1417, 31860, 2498, -173, -1419, 31856, 2505, -174,
- -1421, 31852, 2512, -175, -1424, 31848, 2519, -175, -1426, 31844, 2526, -176, -1429, 31841, 2533, -177,
- -1431, 31836, 2540, -177, -1433, 31832, 2547, -178, -1436, 31829, 2554, -179, -1438, 31825, 2561, -180,
- -1440, 31820, 2568, -180, -1443, 31816, 2576, -181, -1445, 31812, 2583, -182, -1448, 31809, 2590, -183,
- -1450, 31804, 2597, -183, -1452, 31800, 2604, -184, -1455, 31797, 2611, -185, -1457, 31793, 2618, -186,
- -1459, 31787, 2626, -186, -1462, 31784, 2633, -187, -1464, 31780, 2640, -188, -1466, 31776, 2647, -189,
- -1469, 31772, 2654, -189, -1471, 31768, 2661, -190, -1473, 31763, 2669, -191, -1476, 31760, 2676, -192,
- -1478, 31755, 2683, -192, -1480, 31751, 2690, -193, -1483, 31748, 2697, -194, -1485, 31743, 2705, -195,
- -1487, 31739, 2712, -196, -1489, 31734, 2719, -196, -1492, 31731, 2726, -197, -1494, 31726, 2734, -198,
- -1496, 31722, 2741, -199, -1499, 31718, 2748, -199, -1501, 31714, 2755, -200, -1503, 31709, 2763, -201,
- -1506, 31706, 2770, -202, -1508, 31702, 2777, -203, -1510, 31696, 2785, -203, -1512, 31692, 2792, -204,
- -1515, 31689, 2799, -205, -1517, 31685, 2806, -206, -1519, 31679, 2814, -206, -1521, 31675, 2821, -207,
- -1524, 31672, 2828, -208, -1526, 31667, 2836, -209, -1528, 31663, 2843, -210, -1530, 31658, 2850, -210,
- -1533, 31654, 2858, -211, -1535, 31650, 2865, -212, -1537, 31646, 2872, -213, -1539, 31641, 2880, -214,
- -1542, 31637, 2887, -214, -1544, 31632, 2895, -215, -1546, 31628, 2902, -216, -1548, 31624, 2909, -217,
- -1550, 31619, 2917, -218, -1553, 31615, 2924, -218, -1555, 31611, 2931, -219, -1557, 31606, 2939, -220,
- -1559, 31602, 2946, -221, -1561, 31597, 2954, -222, -1564, 31593, 2961, -222, -1566, 31588, 2969, -223,
- -1568, 31584, 2976, -224, -1570, 31580, 2983, -225, -1572, 31575, 2991, -226, -1575, 31571, 2998, -226,
- -1577, 31566, 3006, -227, -1579, 31562, 3013, -228, -1581, 31557, 3021, -229, -1583, 31553, 3028, -230,
- -1585, 31548, 3036, -231, -1588, 31544, 3043, -231, -1590, 31539, 3051, -232, -1592, 31535, 3058, -233,
- -1594, 31530, 3066, -234, -1596, 31526, 3073, -235, -1598, 31520, 3081, -235, -1600, 31516, 3088, -236,
- -1603, 31512, 3096, -237, -1605, 31508, 3103, -238, -1607, 31503, 3111, -239, -1609, 31499, 3118, -240,
- -1611, 31493, 3126, -240, -1613, 31489, 3133, -241, -1615, 31484, 3141, -242, -1617, 31479, 3149, -243,
- -1620, 31476, 3156, -244, -1622, 31471, 3164, -245, -1624, 31467, 3171, -246, -1626, 31461, 3179, -246,
- -1628, 31457, 3186, -247, -1630, 31452, 3194, -248, -1632, 31447, 3202, -249, -1634, 31443, 3209, -250,
- -1636, 31438, 3217, -251, -1638, 31433, 3224, -251, -1641, 31429, 3232, -252, -1643, 31424, 3240, -253,
- -1645, 31420, 3247, -254, -1647, 31415, 3255, -255, -1649, 31410, 3263, -256, -1651, 31406, 3270, -257,
- -1653, 31400, 3278, -257, -1655, 31395, 3286, -258, -1657, 31391, 3293, -259, -1659, 31386, 3301, -260,
- -1661, 31381, 3309, -261, -1663, 31377, 3316, -262, -1665, 31372, 3324, -263, -1667, 31367, 3332, -264,
- -1669, 31362, 3339, -264, -1671, 31357, 3347, -265, -1673, 31352, 3355, -266, -1675, 31347, 3363, -267,
- -1677, 31343, 3370, -268, -1680, 31339, 3378, -269, -1682, 31334, 3386, -270, -1684, 31329, 3393, -270,
- -1686, 31324, 3401, -271, -1688, 31319, 3409, -272, -1690, 31314, 3417, -273, -1692, 31310, 3424, -274,
- -1694, 31305, 3432, -275, -1696, 31300, 3440, -276, -1698, 31295, 3448, -277, -1700, 31290, 3456, -278,
- -1702, 31285, 3463, -278, -1704, 31280, 3471, -279, -1706, 31275, 3479, -280, -1708, 31270, 3487, -281,
- -1709, 31264, 3495, -282, -1711, 31260, 3502, -283, -1713, 31255, 3510, -284, -1715, 31250, 3518, -285,
- -1717, 31245, 3526, -286, -1719, 31239, 3534, -286, -1721, 31235, 3541, -287, -1723, 31230, 3549, -288,
- -1725, 31225, 3557, -289, -1727, 31220, 3565, -290, -1729, 31215, 3573, -291, -1731, 31210, 3581, -292,
- -1733, 31205, 3589, -293, -1735, 31201, 3596, -294, -1737, 31196, 3604, -295, -1739, 31191, 3612, -296,
- -1741, 31185, 3620, -296, -1743, 31180, 3628, -297, -1745, 31175, 3636, -298, -1746, 31169, 3644, -299,
- -1748, 31164, 3652, -300, -1750, 31159, 3660, -301, -1752, 31154, 3668, -302, -1754, 31149, 3676, -303,
- -1756, 31145, 3683, -304, -1758, 31140, 3691, -305, -1760, 31135, 3699, -306, -1762, 31129, 3707, -306,
- -1764, 31124, 3715, -307, -1765, 31118, 3723, -308, -1767, 31113, 3731, -309, -1769, 31108, 3739, -310,
- -1771, 31103, 3747, -311, -1773, 31098, 3755, -312, -1775, 31093, 3763, -313, -1777, 31088, 3771, -314,
- -1779, 31083, 3779, -315, -1780, 31077, 3787, -316, -1782, 31072, 3795, -317, -1784, 31067, 3803, -318,
- -1786, 31062, 3811, -319, -1788, 31057, 3819, -320, -1790, 31051, 3827, -320, -1792, 31046, 3835, -321,
- -1793, 31040, 3843, -322, -1795, 31035, 3851, -323, -1797, 31030, 3859, -324, -1799, 31025, 3867, -325,
- -1801, 31020, 3875, -326, -1803, 31015, 3883, -327, -1804, 31008, 3892, -328, -1806, 31003, 3900, -329,
- -1808, 30998, 3908, -330, -1810, 30993, 3916, -331, -1812, 30988, 3924, -332, -1813, 30982, 3932, -333,
- -1815, 30977, 3940, -334, -1817, 30972, 3948, -335, -1819, 30967, 3956, -336, -1821, 30962, 3964, -337,
- -1823, 30956, 3973, -338, -1824, 30949, 3981, -338, -1826, 30944, 3989, -339, -1828, 30939, 3997, -340,
- -1830, 30934, 4005, -341, -1831, 30928, 4013, -342, -1833, 30923, 4021, -343, -1835, 30918, 4029, -344,
- -1837, 30912, 4038, -345, -1839, 30907, 4046, -346, -1840, 30901, 4054, -347, -1842, 30896, 4062, -348,
- -1844, 30891, 4070, -349, -1846, 30885, 4079, -350, -1847, 30879, 4087, -351, -1849, 30874, 4095, -352,
- -1851, 30869, 4103, -353, -1853, 30864, 4111, -354, -1854, 30858, 4119, -355, -1856, 30852, 4128, -356,
- -1858, 30847, 4136, -357, -1859, 30841, 4144, -358, -1861, 30836, 4152, -359, -1863, 30830, 4161, -360,
- -1865, 30825, 4169, -361, -1866, 30819, 4177, -362, -1868, 30814, 4185, -363, -1870, 30808, 4194, -364,
- -1872, 30803, 4202, -365, -1873, 30797, 4210, -366, -1875, 30792, 4218, -367, -1877, 30786, 4227, -368,
- -1878, 30780, 4235, -369, -1880, 30775, 4243, -370, -1882, 30769, 4252, -371, -1883, 30763, 4260, -372,
- -1885, 30758, 4268, -373, -1887, 30753, 4276, -374, -1888, 30746, 4285, -375, -1890, 30741, 4293, -376,
- -1892, 30736, 4301, -377, -1894, 30730, 4310, -378, -1895, 30724, 4318, -379, -1897, 30719, 4326, -380,
- -1899, 30713, 4335, -381, -1900, 30707, 4343, -382, -1902, 30702, 4351, -383, -1903, 30695, 4360, -384,
- -1905, 30690, 4368, -385, -1907, 30685, 4376, -386, -1908, 30678, 4385, -387, -1910, 30673, 4393, -388,
- -1912, 30667, 4402, -389, -1913, 30661, 4410, -390, -1915, 30656, 4418, -391, -1917, 30650, 4427, -392,
- -1918, 30644, 4435, -393, -1920, 30639, 4443, -394, -1922, 30633, 4452, -395, -1923, 30627, 4460, -396,
- -1925, 30621, 4469, -397, -1926, 30615, 4477, -398, -1928, 30609, 4486, -399, -1930, 30604, 4494, -400,
- -1931, 30598, 4502, -401, -1933, 30592, 4511, -402, -1934, 30586, 4519, -403, -1936, 30580, 4528, -404,
- -1938, 30575, 4536, -405, -1939, 30568, 4545, -406, -1941, 30563, 4553, -407, -1942, 30556, 4562, -408,
- -1944, 30551, 4570, -409, -1946, 30545, 4579, -410, -1947, 30539, 4587, -411, -1949, 30533, 4596, -412,
- -1950, 30527, 4604, -413, -1952, 30521, 4613, -414, -1953, 30515, 4621, -415, -1955, 30509, 4630, -416,
- -1956, 30503, 4638, -417, -1958, 30497, 4647, -418, -1960, 30492, 4655, -419, -1961, 30485, 4664, -420,
- -1963, 30480, 4672, -421, -1964, 30473, 4681, -422, -1966, 30468, 4689, -423, -1967, 30462, 4698, -425,
- -1969, 30457, 4706, -426, -1970, 30450, 4715, -427, -1972, 30445, 4723, -428, -1973, 30438, 4732, -429,
- -1975, 30432, 4741, -430, -1977, 30427, 4749, -431, -1978, 30420, 4758, -432, -1980, 30415, 4766, -433,
- -1981, 30408, 4775, -434, -1983, 30403, 4783, -435, -1984, 30396, 4792, -436, -1986, 30390, 4801, -437,
- -1987, 30384, 4809, -438, -1989, 30378, 4818, -439, -1990, 30372, 4826, -440, -1992, 30366, 4835, -441,
- -1993, 30359, 4844, -442, -1995, 30354, 4852, -443, -1996, 30347, 4861, -444, -1998, 30342, 4870, -446,
- -1999, 30336, 4878, -447, -2000, 30329, 4887, -448, -2002, 30323, 4896, -449, -2003, 30317, 4904, -450,
- -2005, 30311, 4913, -451, -2006, 30305, 4921, -452, -2008, 30299, 4930, -453, -2009, 30292, 4939, -454,
- -2011, 30286, 4948, -455, -2012, 30280, 4956, -456, -2014, 30274, 4965, -457, -2015, 30267, 4974, -458,
- -2017, 30262, 4982, -459, -2018, 30255, 4991, -460, -2019, 30249, 5000, -462, -2021, 30244, 5008, -463,
- -2022, 30237, 5017, -464, -2024, 30231, 5026, -465, -2025, 30224, 5035, -466, -2027, 30219, 5043, -467,
- -2028, 30212, 5052, -468, -2029, 30205, 5061, -469, -2031, 30200, 5069, -470, -2032, 30193, 5078, -471,
- -2034, 30187, 5087, -472, -2035, 30180, 5096, -473, -2036, 30174, 5104, -474, -2038, 30169, 5113, -476,
- -2039, 30162, 5122, -477, -2041, 30156, 5131, -478, -2042, 30149, 5140, -479, -2043, 30143, 5148, -480,
- -2045, 30137, 5157, -481, -2046, 30130, 5166, -482, -2048, 30124, 5175, -483, -2049, 30117, 5184, -484,
- -2050, 30111, 5192, -485, -2052, 30105, 5201, -486, -2053, 30099, 5210, -488, -2055, 30093, 5219, -489,
- -2056, 30086, 5228, -490, -2057, 30080, 5236, -491, -2059, 30074, 5245, -492, -2060, 30067, 5254, -493,
- -2061, 30060, 5263, -494, -2063, 30054, 5272, -495, -2064, 30047, 5281, -496, -2065, 30041, 5289, -497,
- -2067, 30036, 5298, -499, -2068, 30029, 5307, -500, -2069, 30022, 5316, -501, -2071, 30016, 5325, -502,
- -2072, 30009, 5334, -503, -2073, 30002, 5343, -504, -2075, 29996, 5352, -505, -2076, 29990, 5360, -506,
- -2077, 29983, 5369, -507, -2079, 29977, 5378, -508, -2080, 29971, 5387, -510, -2081, 29964, 5396, -511,
- -2083, 29958, 5405, -512, -2084, 29951, 5414, -513, -2085, 29944, 5423, -514, -2087, 29938, 5432, -515,
- -2088, 29931, 5441, -516, -2089, 29924, 5450, -517, -2090, 29918, 5458, -518, -2092, 29913, 5467, -520,
- -2093, 29906, 5476, -521, -2094, 29899, 5485, -522, -2096, 29893, 5494, -523, -2097, 29886, 5503, -524,
- -2098, 29879, 5512, -525, -2099, 29872, 5521, -526, -2101, 29866, 5530, -527, -2102, 29860, 5539, -529,
- -2103, 29853, 5548, -530, -2105, 29847, 5557, -531, -2106, 29840, 5566, -532, -2107, 29833, 5575, -533,
- -2108, 29826, 5584, -534, -2110, 29820, 5593, -535, -2111, 29813, 5602, -536, -2112, 29807, 5611, -538,
- -2113, 29800, 5620, -539, -2115, 29794, 5629, -540, -2116, 29787, 5638, -541, -2117, 29780, 5647, -542,
- -2118, 29773, 5656, -543, -2120, 29767, 5665, -544, -2121, 29760, 5674, -545, -2122, 29754, 5683, -547,
- -2123, 29747, 5692, -548, -2124, 29740, 5701, -549, -2126, 29734, 5710, -550, -2127, 29727, 5719, -551,
- -2128, 29719, 5729, -552, -2129, 29712, 5738, -553, -2130, 29706, 5747, -555, -2132, 29700, 5756, -556,
- -2133, 29693, 5765, -557, -2134, 29686, 5774, -558, -2135, 29679, 5783, -559, -2136, 29672, 5792, -560,
- -2138, 29666, 5801, -561, -2139, 29660, 5810, -563, -2140, 29653, 5819, -564, -2141, 29645, 5829, -565,
- -2142, 29638, 5838, -566, -2144, 29632, 5847, -567, -2145, 29625, 5856, -568, -2146, 29618, 5865, -569,
- -2147, 29612, 5874, -571, -2148, 29605, 5883, -572, -2149, 29598, 5892, -573, -2151, 29591, 5902, -574,
- -2152, 29584, 5911, -575, -2153, 29577, 5920, -576, -2154, 29571, 5929, -578, -2155, 29564, 5938, -579,
- -2156, 29557, 5947, -580, -2158, 29551, 5956, -581, -2159, 29543, 5966, -582, -2160, 29536, 5975, -583,
- -2161, 29529, 5984, -584, -2162, 29523, 5993, -586, -2163, 29516, 6002, -587, -2164, 29508, 6012, -588,
- -2165, 29501, 6021, -589, -2167, 29495, 6030, -590, -2168, 29488, 6039, -591, -2169, 29482, 6048, -593,
- -2170, 29474, 6058, -594, -2171, 29467, 6067, -595, -2172, 29460, 6076, -596, -2173, 29453, 6085, -597,
- -2174, 29446, 6094, -598, -2176, 29440, 6104, -600, -2177, 29433, 6113, -601, -2178, 29426, 6122, -602,
- -2179, 29419, 6131, -603, -2180, 29411, 6141, -604, -2181, 29404, 6150, -605, -2182, 29398, 6159, -607,
- -2183, 29391, 6168, -608, -2184, 29383, 6178, -609, -2185, 29376, 6187, -610, -2186, 29369, 6196, -611,
- -2188, 29363, 6206, -613, -2189, 29356, 6215, -614, -2190, 29349, 6224, -615, -2191, 29342, 6233, -616,
- -2192, 29334, 6243, -617, -2193, 29327, 6252, -618, -2194, 29321, 6261, -620, -2195, 29313, 6271, -621,
- -2196, 29306, 6280, -622, -2197, 29299, 6289, -623, -2198, 29292, 6298, -624, -2199, 29284, 6308, -625,
- -2200, 29278, 6317, -627, -2201, 29271, 6326, -628, -2202, 29263, 6336, -629, -2203, 29256, 6345, -630,
- -2204, 29249, 6354, -631, -2205, 29242, 6364, -633, -2206, 29235, 6373, -634, -2207, 29228, 6382, -635,
- -2208, 29220, 6392, -636, -2209, 29213, 6401, -637, -2211, 29207, 6411, -639, -2212, 29200, 6420, -640,
- -2213, 29193, 6429, -641, -2214, 29185, 6439, -642, -2215, 29178, 6448, -643, -2216, 29171, 6457, -644,
- -2217, 29164, 6467, -646, -2218, 29157, 6476, -647, -2219, 29149, 6486, -648, -2220, 29142, 6495, -649,
- -2221, 29135, 6504, -650, -2222, 29128, 6514, -652, -2223, 29121, 6523, -653, -2224, 29113, 6533, -654,
- -2224, 29105, 6542, -655, -2225, 29098, 6551, -656, -2226, 29091, 6561, -658, -2227, 29084, 6570, -659,
- -2228, 29076, 6580, -660, -2229, 29069, 6589, -661, -2230, 29061, 6599, -662, -2231, 29055, 6608, -664,
- -2232, 29048, 6617, -665, -2233, 29040, 6627, -666, -2234, 29033, 6636, -667, -2235, 29025, 6646, -668,
- -2236, 29019, 6655, -670, -2237, 29011, 6665, -671, -2238, 29004, 6674, -672, -2239, 28996, 6684, -673,
- -2240, 28990, 6693, -675, -2241, 28982, 6703, -676, -2242, 28975, 6712, -677, -2243, 28967, 6722, -678,
- -2244, 28960, 6731, -679, -2245, 28953, 6741, -681, -2245, 28945, 6750, -682, -2246, 28937, 6760, -683,
- -2247, 28930, 6769, -684, -2248, 28922, 6779, -685, -2249, 28916, 6788, -687, -2250, 28908, 6798, -688,
- -2251, 28901, 6807, -689, -2252, 28893, 6817, -690, -2253, 28886, 6826, -691, -2254, 28879, 6836, -693,
- -2255, 28872, 6845, -694, -2255, 28863, 6855, -695, -2256, 28856, 6864, -696, -2257, 28849, 6874, -698,
- -2258, 28842, 6883, -699, -2259, 28834, 6893, -700, -2260, 28826, 6903, -701, -2261, 28819, 6912, -702,
- -2262, 28812, 6922, -704, -2263, 28805, 6931, -705, -2263, 28796, 6941, -706, -2264, 28789, 6950, -707,
- -2265, 28782, 6960, -709, -2266, 28774, 6970, -710, -2267, 28767, 6979, -711, -2268, 28759, 6989, -712,
- -2269, 28752, 6998, -713, -2269, 28744, 7008, -715, -2270, 28736, 7018, -716, -2271, 28729, 7027, -717,
- -2272, 28721, 7037, -718, -2273, 28715, 7046, -720, -2274, 28707, 7056, -721, -2275, 28699, 7066, -722,
- -2275, 28691, 7075, -723, -2276, 28684, 7085, -725, -2277, 28676, 7095, -726, -2278, 28669, 7104, -727,
- -2279, 28661, 7114, -728, -2280, 28654, 7123, -729, -2280, 28646, 7133, -731, -2281, 28638, 7143, -732,
- -2282, 28631, 7152, -733, -2283, 28623, 7162, -734, -2284, 28616, 7172, -736, -2284, 28608, 7181, -737,
- -2285, 28600, 7191, -738, -2286, 28592, 7201, -739, -2287, 28586, 7210, -741, -2288, 28578, 7220, -742,
- -2289, 28570, 7230, -743, -2289, 28562, 7239, -744, -2290, 28555, 7249, -746, -2291, 28547, 7259, -747,
- -2292, 28540, 7268, -748, -2292, 28531, 7278, -749, -2293, 28524, 7288, -751, -2294, 28516, 7298, -752,
- -2295, 28509, 7307, -753, -2296, 28501, 7317, -754, -2296, 28493, 7327, -756, -2297, 28486, 7336, -757,
- -2298, 28478, 7346, -758, -2299, 28470, 7356, -759, -2299, 28462, 7366, -761, -2300, 28455, 7375, -762,
- -2301, 28447, 7385, -763, -2302, 28439, 7395, -764, -2302, 28431, 7405, -766, -2303, 28424, 7414, -767,
- -2304, 28416, 7424, -768, -2305, 28408, 7434, -769, -2305, 28400, 7444, -771, -2306, 28393, 7453, -772,
- -2307, 28385, 7463, -773, -2308, 28377, 7473, -774, -2308, 28369, 7483, -776, -2309, 28362, 7492, -777,
- -2310, 28354, 7502, -778, -2311, 28346, 7512, -779, -2311, 28338, 7522, -781, -2312, 28331, 7531, -782,
- -2313, 28323, 7541, -783, -2314, 28315, 7551, -784, -2314, 28307, 7561, -786, -2315, 28299, 7571, -787,
- -2316, 28292, 7580, -788, -2316, 28283, 7590, -789, -2317, 28276, 7600, -791, -2318, 28268, 7610, -792,
- -2319, 28260, 7620, -793, -2319, 28252, 7629, -794, -2320, 28245, 7639, -796, -2321, 28237, 7649, -797,
- -2321, 28228, 7659, -798, -2322, 28220, 7669, -799, -2323, 28213, 7679, -801, -2323, 28205, 7688, -802,
- -2324, 28197, 7698, -803, -2325, 28189, 7708, -804, -2325, 28181, 7718, -806, -2326, 28173, 7728, -807,
- -2327, 28165, 7738, -808, -2327, 28157, 7748, -810, -2328, 28150, 7757, -811, -2329, 28142, 7767, -812,
- -2329, 28133, 7777, -813, -2330, 28126, 7787, -815, -2331, 28118, 7797, -816, -2331, 28109, 7807, -817,
- -2332, 28101, 7817, -818, -2333, 28094, 7827, -820, -2333, 28086, 7836, -821, -2334, 28078, 7846, -822,
- -2335, 28070, 7856, -823, -2335, 28062, 7866, -825, -2336, 28054, 7876, -826, -2337, 28046, 7886, -827,
- -2337, 28038, 7896, -829, -2338, 28030, 7906, -830, -2338, 28021, 7916, -831, -2339, 28013, 7926, -832,
- -2340, 28006, 7936, -834, -2340, 27998, 7945, -835, -2341, 27990, 7955, -836, -2342, 27982, 7965, -837,
- -2342, 27974, 7975, -839, -2343, 27966, 7985, -840, -2343, 27957, 7995, -841, -2344, 27950, 8005, -843,
- -2345, 27942, 8015, -844, -2345, 27933, 8025, -845, -2346, 27925, 8035, -846, -2346, 27917, 8045, -848,
- -2347, 27909, 8055, -849, -2348, 27901, 8065, -850, -2348, 27892, 8075, -851, -2349, 27885, 8085, -853,
- -2349, 27876, 8095, -854, -2350, 27868, 8105, -855, -2351, 27861, 8115, -857, -2351, 27852, 8125, -858,
- -2352, 27844, 8135, -859, -2352, 27835, 8145, -860, -2353, 27828, 8155, -862, -2353, 27819, 8165, -863,
- -2354, 27811, 8175, -864, -2355, 27804, 8185, -866, -2355, 27795, 8195, -867, -2356, 27787, 8205, -868,
- -2356, 27778, 8215, -869, -2357, 27771, 8225, -871, -2357, 27762, 8235, -872, -2358, 27754, 8245, -873,
- -2359, 27747, 8255, -875, -2359, 27738, 8265, -876, -2360, 27730, 8275, -877, -2360, 27721, 8285, -878,
- -2361, 27714, 8295, -880, -2361, 27705, 8305, -881, -2362, 27697, 8315, -882, -2362, 27689, 8325, -884,
- -2363, 27681, 8335, -885, -2363, 27672, 8345, -886, -2364, 27664, 8355, -887, -2364, 27656, 8365, -889,
- -2365, 27648, 8375, -890, -2365, 27639, 8385, -891, -2366, 27632, 8395, -893, -2367, 27624, 8405, -894,
- -2367, 27615, 8415, -895, -2368, 27607, 8425, -896, -2368, 27598, 8436, -898, -2369, 27590, 8446, -899,
- -2369, 27581, 8456, -900, -2370, 27574, 8466, -902, -2370, 27565, 8476, -903, -2371, 27557, 8486, -904,
- -2371, 27549, 8496, -906, -2372, 27541, 8506, -907, -2372, 27532, 8516, -908, -2373, 27524, 8526, -909,
- -2373, 27516, 8536, -911, -2374, 27507, 8547, -912, -2374, 27498, 8557, -913, -2374, 27490, 8567, -915,
- -2375, 27482, 8577, -916, -2375, 27473, 8587, -917, -2376, 27466, 8597, -919, -2376, 27457, 8607, -920,
- -2377, 27449, 8617, -921, -2377, 27439, 8628, -922, -2378, 27432, 8638, -924, -2378, 27423, 8648, -925,
- -2379, 27415, 8658, -926, -2379, 27407, 8668, -928, -2380, 27399, 8678, -929, -2380, 27390, 8688, -930,
- -2381, 27382, 8699, -932, -2381, 27373, 8709, -933, -2381, 27364, 8719, -934, -2382, 27356, 8729, -935,
- -2382, 27348, 8739, -937, -2383, 27340, 8749, -938, -2383, 27331, 8759, -939, -2384, 27323, 8770, -941,
- -2384, 27314, 8780, -942, -2384, 27305, 8790, -943, -2385, 27298, 8800, -945, -2385, 27289, 8810, -946,
- -2386, 27280, 8821, -947, -2386, 27271, 8831, -948, -2387, 27264, 8841, -950, -2387, 27255, 8851, -951,
- -2387, 27246, 8861, -952, -2388, 27238, 8872, -954, -2388, 27229, 8882, -955, -2389, 27221, 8892, -956,
- -2389, 27213, 8902, -958, -2389, 27204, 8912, -959, -2390, 27195, 8923, -960, -2390, 27186, 8933, -961,
- -2391, 27179, 8943, -963, -2391, 27170, 8953, -964, -2391, 27161, 8963, -965, -2392, 27153, 8974, -967,
- -2392, 27144, 8984, -968, -2393, 27136, 8994, -969, -2393, 27128, 9004, -971, -2393, 27118, 9015, -972,
- -2394, 27110, 9025, -973, -2394, 27102, 9035, -975, -2394, 27093, 9045, -976, -2395, 27084, 9056, -977,
- -2395, 27076, 9066, -979, -2396, 27068, 9076, -980, -2396, 27059, 9086, -981, -2396, 27049, 9097, -982,
- -2397, 27042, 9107, -984, -2397, 27033, 9117, -985, -2397, 27024, 9127, -986, -2398, 27016, 9138, -988,
- -2398, 27007, 9148, -989, -2398, 26998, 9158, -990, -2399, 26991, 9168, -992, -2399, 26981, 9179, -993,
- -2399, 26972, 9189, -994, -2400, 26965, 9199, -996, -2400, 26955, 9210, -997, -2401, 26947, 9220, -998,
- -2401, 26939, 9230, -1000, -2401, 26930, 9240, -1001, -2402, 26921, 9251, -1002, -2402, 26912, 9261, -1003,
- -2402, 26904, 9271, -1005, -2402, 26894, 9282, -1006, -2403, 26886, 9292, -1007, -2403, 26878, 9302, -1009,
- -2403, 26868, 9313, -1010, -2404, 26860, 9323, -1011, -2404, 26852, 9333, -1013, -2404, 26842, 9344, -1014,
- -2405, 26834, 9354, -1015, -2405, 26826, 9364, -1017, -2405, 26816, 9375, -1018, -2406, 26808, 9385, -1019,
- -2406, 26800, 9395, -1021, -2406, 26790, 9406, -1022, -2406, 26781, 9416, -1023, -2407, 26774, 9426, -1025,
- -2407, 26764, 9437, -1026, -2407, 26755, 9447, -1027, -2408, 26747, 9457, -1028, -2408, 26738, 9468, -1030,
- -2408, 26729, 9478, -1031, -2409, 26721, 9488, -1032, -2409, 26712, 9499, -1034, -2409, 26703, 9509, -1035,
- -2409, 26693, 9520, -1036, -2410, 26686, 9530, -1038, -2410, 26677, 9540, -1039, -2410, 26667, 9551, -1040,
- -2410, 26659, 9561, -1042, -2411, 26651, 9571, -1043, -2411, 26641, 9582, -1044, -2411, 26633, 9592, -1046,
- -2411, 26623, 9603, -1047, -2412, 26615, 9613, -1048, -2412, 26607, 9623, -1050, -2412, 26597, 9634, -1051,
- -2412, 26588, 9644, -1052, -2413, 26581, 9654, -1054, -2413, 26571, 9665, -1055, -2413, 26562, 9675, -1056,
- -2413, 26553, 9686, -1058, -2414, 26545, 9696, -1059, -2414, 26535, 9707, -1060, -2414, 26527, 9717, -1062,
- -2414, 26518, 9727, -1063, -2415, 26509, 9738, -1064, -2415, 26501, 9748, -1066, -2415, 26491, 9759, -1067,
- -2415, 26482, 9769, -1068, -2415, 26473, 9779, -1069, -2416, 26465, 9790, -1071, -2416, 26456, 9800, -1072,
- -2416, 26446, 9811, -1073, -2416, 26438, 9821, -1075, -2417, 26429, 9832, -1076, -2417, 26420, 9842, -1077,
- -2417, 26411, 9853, -1079, -2417, 26402, 9863, -1080, -2417, 26393, 9873, -1081, -2418, 26385, 9884, -1083,
- -2418, 26376, 9894, -1084, -2418, 26366, 9905, -1085, -2418, 26358, 9915, -1087, -2418, 26348, 9926, -1088,
- -2419, 26340, 9936, -1089, -2419, 26331, 9947, -1091, -2419, 26322, 9957, -1092, -2419, 26312, 9968, -1093,
- -2419, 26304, 9978, -1095, -2419, 26294, 9989, -1096, -2420, 26286, 9999, -1097, -2420, 26277, 10010, -1099,
- -2420, 26268, 10020, -1100, -2420, 26259, 10030, -1101, -2420, 26250, 10041, -1103, -2421, 26242, 10051, -1104,
- -2421, 26232, 10062, -1105, -2421, 26224, 10072, -1107, -2421, 26214, 10083, -1108, -2421, 26205, 10093, -1109,
- -2421, 26196, 10104, -1111, -2421, 26187, 10114, -1112, -2422, 26178, 10125, -1113, -2422, 26170, 10135, -1115,
- -2422, 26160, 10146, -1116, -2422, 26151, 10156, -1117, -2422, 26142, 10167, -1119, -2422, 26132, 10178, -1120,
- -2422, 26123, 10188, -1121, -2423, 26115, 10199, -1123, -2423, 26106, 10209, -1124, -2423, 26096, 10220, -1125,
- -2423, 26088, 10230, -1127, -2423, 26078, 10241, -1128, -2423, 26069, 10251, -1129, -2423, 26060, 10262, -1131,
- -2424, 26052, 10272, -1132, -2424, 26042, 10283, -1133, -2424, 26034, 10293, -1135, -2424, 26024, 10304, -1136,
- -2424, 26015, 10314, -1137, -2424, 26006, 10325, -1139, -2424, 25996, 10336, -1140, -2424, 25987, 10346, -1141,
- -2424, 25978, 10357, -1143, -2425, 25970, 10367, -1144, -2425, 25960, 10378, -1145, -2425, 25952, 10388, -1147,
- -2425, 25942, 10399, -1148, -2425, 25933, 10409, -1149, -2425, 25924, 10420, -1151, -2425, 25914, 10431, -1152,
- -2425, 25905, 10441, -1153, -2425, 25896, 10452, -1155, -2425, 25887, 10462, -1156, -2425, 25877, 10473, -1157,
- -2426, 25870, 10483, -1159, -2426, 25860, 10494, -1160, -2426, 25850, 10505, -1161, -2426, 25842, 10515, -1163,
- -2426, 25832, 10526, -1164, -2426, 25823, 10536, -1165, -2426, 25814, 10547, -1167, -2426, 25804, 10558, -1168,
- -2426, 25795, 10568, -1169, -2426, 25786, 10579, -1171, -2426, 25777, 10589, -1172, -2426, 25767, 10600, -1173,
- -2426, 25758, 10611, -1175, -2426, 25749, 10621, -1176, -2427, 25740, 10632, -1177, -2427, 25732, 10642, -1179,
- -2427, 25722, 10653, -1180, -2427, 25712, 10664, -1181, -2427, 25704, 10674, -1183, -2427, 25694, 10685, -1184,
- -2427, 25684, 10696, -1185, -2427, 25676, 10706, -1187, -2427, 25666, 10717, -1188, -2427, 25657, 10727, -1189,
- -2427, 25648, 10738, -1191, -2427, 25638, 10749, -1192, -2427, 25629, 10759, -1193, -2427, 25620, 10770, -1195,
- -2427, 25610, 10781, -1196, -2427, 25601, 10791, -1197, -2427, 25592, 10802, -1199, -2427, 25582, 10813, -1200,
- -2427, 25573, 10823, -1201, -2427, 25564, 10834, -1203, -2427, 25555, 10844, -1204, -2427, 25545, 10855, -1205,
- -2427, 25536, 10866, -1207, -2427, 25527, 10876, -1208, -2427, 25517, 10887, -1209, -2427, 25508, 10898, -1211,
- -2427, 25499, 10908, -1212, -2427, 25489, 10919, -1213, -2427, 25480, 10930, -1215, -2427, 25471, 10940, -1216,
- -2427, 25461, 10951, -1217, -2427, 25452, 10962, -1219, -2427, 25443, 10972, -1220, -2427, 25433, 10983, -1221,
- -2427, 25424, 10994, -1223, -2427, 25414, 11005, -1224, -2427, 25405, 11015, -1225, -2427, 25396, 11026, -1227,
- -2427, 25386, 11037, -1228, -2427, 25377, 11047, -1229, -2427, 25368, 11058, -1231, -2427, 25358, 11069, -1232,
- -2427, 25349, 11079, -1233, -2427, 25340, 11090, -1235, -2427, 25330, 11101, -1236, -2427, 25321, 11111, -1237,
- -2427, 25312, 11122, -1239, -2427, 25302, 11133, -1240, -2427, 25292, 11144, -1241, -2427, 25284, 11154, -1243,
- -2427, 25274, 11165, -1244, -2427, 25264, 11176, -1245, -2427, 25256, 11186, -1247, -2427, 25246, 11197, -1248,
- -2427, 25236, 11208, -1249, -2427, 25227, 11219, -1251, -2426, 25217, 11229, -1252, -2426, 25207, 11240, -1253,
- -2426, 25198, 11251, -1255, -2426, 25189, 11261, -1256, -2426, 25179, 11272, -1257, -2426, 25170, 11283, -1259,
- -2426, 25160, 11294, -1260, -2426, 25151, 11304, -1261, -2426, 25142, 11315, -1263, -2426, 25132, 11326, -1264,
- -2426, 25122, 11337, -1265, -2426, 25114, 11347, -1267, -2426, 25104, 11358, -1268, -2426, 25094, 11369, -1269,
- -2426, 25085, 11380, -1271, -2425, 25075, 11390, -1272, -2425, 25065, 11401, -1273, -2425, 25055, 11412, -1274,
- -2425, 25047, 11422, -1276, -2425, 25037, 11433, -1277, -2425, 25027, 11444, -1278, -2425, 25018, 11455, -1280,
- -2425, 25008, 11466, -1281, -2425, 24999, 11476, -1282, -2425, 24990, 11487, -1284, -2424, 24979, 11498, -1285,
- -2424, 24969, 11509, -1286, -2424, 24961, 11519, -1288, -2424, 24951, 11530, -1289, -2424, 24941, 11541, -1290,
- -2424, 24932, 11552, -1292, -2424, 24923, 11562, -1293, -2424, 24913, 11573, -1294, -2424, 24904, 11584, -1296,
- -2423, 24893, 11595, -1297, -2423, 24883, 11606, -1298, -2423, 24875, 11616, -1300, -2423, 24865, 11627, -1301,
- -2423, 24855, 11638, -1302, -2423, 24846, 11649, -1304, -2423, 24837, 11659, -1305, -2423, 24827, 11670, -1306,
- -2422, 24817, 11681, -1308, -2422, 24807, 11692, -1309, -2422, 24797, 11703, -1310, -2422, 24789, 11713, -1312,
- -2422, 24779, 11724, -1313, -2422, 24769, 11735, -1314, -2422, 24760, 11746, -1316, -2421, 24749, 11757, -1317,
- -2421, 24740, 11767, -1318, -2421, 24731, 11778, -1320, -2421, 24721, 11789, -1321, -2421, 24711, 11800, -1322,
- -2421, 24702, 11811, -1324, -2421, 24692, 11822, -1325, -2420, 24682, 11832, -1326, -2420, 24673, 11843, -1328,
- -2420, 24663, 11854, -1329, -2420, 24653, 11865, -1330, -2420, 24644, 11876, -1332, -2420, 24635, 11886, -1333,
- -2419, 24624, 11897, -1334, -2419, 24615, 11908, -1336, -2419, 24605, 11919, -1337, -2419, 24595, 11930, -1338,
- -2419, 24586, 11941, -1340, -2419, 24577, 11951, -1341, -2418, 24566, 11962, -1342, -2418, 24557, 11973, -1344,
- -2418, 24547, 11984, -1345, -2418, 24537, 11995, -1346, -2418, 24528, 12006, -1348, -2417, 24518, 12016, -1349,
- -2417, 24508, 12027, -1350, -2417, 24499, 12038, -1352, -2417, 24489, 12049, -1353, -2417, 24479, 12060, -1354,
- -2416, 24469, 12071, -1356, -2416, 24459, 12082, -1357, -2416, 24450, 12092, -1358, -2416, 24441, 12103, -1360,
- -2416, 24431, 12114, -1361, -2415, 24420, 12125, -1362, -2415, 24411, 12136, -1364, -2415, 24401, 12147, -1365,
- -2415, 24391, 12158, -1366, -2415, 24382, 12168, -1367, -2414, 24372, 12179, -1369, -2414, 24362, 12190, -1370,
- -2414, 24352, 12201, -1371, -2414, 24343, 12212, -1373, -2413, 24332, 12223, -1374, -2413, 24322, 12234, -1375,
- -2413, 24314, 12244, -1377, -2413, 24304, 12255, -1378, -2413, 24294, 12266, -1379, -2412, 24284, 12277, -1381,
- -2412, 24274, 12288, -1382, -2412, 24264, 12299, -1383, -2412, 24255, 12310, -1385, -2411, 24244, 12321, -1386,
- -2411, 24234, 12332, -1387, -2411, 24226, 12342, -1389, -2411, 24216, 12353, -1390, -2410, 24205, 12364, -1391,
- -2410, 24196, 12375, -1393, -2410, 24186, 12386, -1394, -2410, 24176, 12397, -1395, -2409, 24166, 12408, -1397,
- -2409, 24156, 12419, -1398, -2409, 24146, 12430, -1399, -2409, 24138, 12440, -1401, -2408, 24127, 12451, -1402,
- -2408, 24117, 12462, -1403, -2408, 24107, 12473, -1404, -2408, 24098, 12484, -1406, -2407, 24087, 12495, -1407,
- -2407, 24077, 12506, -1408, -2407, 24068, 12517, -1410, -2406, 24057, 12528, -1411, -2406, 24047, 12539, -1412,
- -2406, 24039, 12549, -1414, -2406, 24029, 12560, -1415, -2405, 24018, 12571, -1416, -2405, 24009, 12582, -1418,
- -2405, 23999, 12593, -1419, -2404, 23988, 12604, -1420, -2404, 23979, 12615, -1422, -2404, 23969, 12626, -1423,
- -2404, 23959, 12637, -1424, -2403, 23949, 12648, -1426, -2403, 23939, 12659, -1427, -2403, 23929, 12670, -1428,
- -2402, 23918, 12681, -1429, -2402, 23910, 12691, -1431, -2402, 23900, 12702, -1432, -2402, 23890, 12713, -1433,
- -2401, 23880, 12724, -1435, -2401, 23870, 12735, -1436, -2401, 23860, 12746, -1437, -2400, 23850, 12757, -1439,
- -2400, 23840, 12768, -1440, -2400, 23830, 12779, -1441, -2399, 23820, 12790, -1443, -2399, 23810, 12801, -1444,
- -2399, 23800, 12812, -1445, -2398, 23790, 12823, -1447, -2398, 23780, 12834, -1448, -2398, 23770, 12845, -1449,
- -2397, 23759, 12856, -1450, -2397, 23751, 12866, -1452, -2397, 23741, 12877, -1453, -2396, 23730, 12888, -1454,
- -2396, 23721, 12899, -1456, -2396, 23711, 12910, -1457, -2395, 23700, 12921, -1458, -2395, 23691, 12932, -1460,
- -2395, 23681, 12943, -1461, -2394, 23670, 12954, -1462, -2394, 23661, 12965, -1464, -2394, 23651, 12976, -1465,
- -2393, 23640, 12987, -1466, -2393, 23631, 12998, -1468, -2393, 23621, 13009, -1469, -2392, 23610, 13020, -1470,
- -2392, 23600, 13031, -1471, -2392, 23591, 13042, -1473, -2391, 23580, 13053, -1474, -2391, 23570, 13064, -1475,
- -2391, 23561, 13075, -1477, -2390, 23550, 13086, -1478, -2390, 23540, 13097, -1479, -2389, 23530, 13108, -1481,
- -2389, 23520, 13119, -1482, -2389, 23510, 13130, -1483, -2388, 23499, 13141, -1484, -2388, 23490, 13152, -1486,
- -2388, 23480, 13163, -1487, -2387, 23470, 13173, -1488, -2387, 23461, 13184, -1490, -2387, 23451, 13195, -1491,
- -2386, 23440, 13206, -1492, -2386, 23431, 13217, -1494, -2385, 23420, 13228, -1495, -2385, 23410, 13239, -1496,
- -2385, 23400, 13250, -1497, -2384, 23390, 13261, -1499, -2384, 23380, 13272, -1500, -2383, 23369, 13283, -1501,
- -2383, 23360, 13294, -1503, -2383, 23350, 13305, -1504, -2382, 23339, 13316, -1505, -2382, 23330, 13327, -1507,
- -2381, 23319, 13338, -1508, -2381, 23309, 13349, -1509, -2381, 23299, 13360, -1510, -2380, 23289, 13371, -1512,
- -2380, 23279, 13382, -1513, -2379, 23268, 13393, -1514, -2379, 23259, 13404, -1516, -2379, 23249, 13415, -1517,
- -2378, 23238, 13426, -1518, -2378, 23229, 13437, -1520, -2377, 23218, 13448, -1521, -2377, 23208, 13459, -1522,
- -2377, 23198, 13470, -1523, -2376, 23188, 13481, -1525, -2376, 23178, 13492, -1526, -2375, 23167, 13503, -1527,
- -2375, 23158, 13514, -1529, -2374, 23147, 13525, -1530, -2374, 23137, 13536, -1531, -2374, 23127, 13547, -1532,
- -2373, 23117, 13558, -1534, -2373, 23107, 13569, -1535, -2372, 23096, 13580, -1536, -2372, 23087, 13591, -1538,
- -2371, 23076, 13602, -1539, -2371, 23066, 13613, -1540, -2371, 23057, 13624, -1542, -2370, 23045, 13636, -1543,
- -2370, 23035, 13647, -1544, -2369, 23024, 13658, -1545, -2369, 23015, 13669, -1547, -2368, 23004, 13680, -1548,
- -2368, 22994, 13691, -1549, -2367, 22984, 13702, -1551, -2367, 22974, 13713, -1552, -2367, 22964, 13724, -1553,
- -2366, 22953, 13735, -1554, -2366, 22944, 13746, -1556, -2365, 22933, 13757, -1557, -2365, 22923, 13768, -1558,
- -2364, 22913, 13779, -1560, -2364, 22903, 13790, -1561, -2363, 22892, 13801, -1562, -2363, 22882, 13812, -1563,
- -2362, 22872, 13823, -1565, -2362, 22862, 13834, -1566, -2361, 22851, 13845, -1567, -2361, 22842, 13856, -1569,
- -2360, 22831, 13867, -1570, -2360, 22821, 13878, -1571, -2359, 22810, 13889, -1572, -2359, 22801, 13900, -1574,
- -2359, 22791, 13911, -1575, -2358, 22780, 13922, -1576, -2358, 22770, 13933, -1577, -2357, 22760, 13944, -1579,
- -2357, 22750, 13955, -1580, -2356, 22738, 13967, -1581, -2356, 22729, 13978, -1583, -2355, 22718, 13989, -1584,
- -2355, 22708, 14000, -1585, -2354, 22697, 14011, -1586, -2354, 22688, 14022, -1588, -2353, 22677, 14033, -1589,
- -2353, 22667, 14044, -1590, -2352, 22657, 14055, -1592, -2352, 22647, 14066, -1593, -2351, 22636, 14077, -1594,
- -2351, 22626, 14088, -1595, -2350, 22616, 14099, -1597, -2350, 22606, 14110, -1598, -2349, 22595, 14121, -1599,
- -2349, 22585, 14132, -1600, -2348, 22575, 14143, -1602, -2348, 22565, 14154, -1603, -2347, 22554, 14165, -1604,
- -2347, 22544, 14177, -1606, -2346, 22533, 14188, -1607, -2345, 22522, 14199, -1608, -2345, 22512, 14210, -1609,
- -2344, 22502, 14221, -1611, -2344, 22492, 14232, -1612, -2343, 22481, 14243, -1613, -2343, 22471, 14254, -1614,
- -2342, 22461, 14265, -1616, -2342, 22451, 14276, -1617, -2341, 22440, 14287, -1618, -2341, 22430, 14298, -1619,
- -2340, 22420, 14309, -1621, -2340, 22410, 14320, -1622, -2339, 22399, 14331, -1623, -2339, 22389, 14342, -1624,
- -2338, 22378, 14354, -1626, -2337, 22367, 14365, -1627, -2337, 22357, 14376, -1628, -2336, 22347, 14387, -1630,
- -2336, 22337, 14398, -1631, -2335, 22326, 14409, -1632, -2335, 22316, 14420, -1633, -2334, 22306, 14431, -1635,
- -2334, 22296, 14442, -1636, -2333, 22285, 14453, -1637, -2332, 22274, 14464, -1638, -2332, 22265, 14475, -1640,
- -2331, 22254, 14486, -1641, -2331, 22244, 14497, -1642, -2330, 22232, 14509, -1643, -2330, 22223, 14520, -1645,
- -2329, 22212, 14531, -1646, -2329, 22202, 14542, -1647, -2328, 22191, 14553, -1648, -2327, 22181, 14564, -1650,
- -2327, 22171, 14575, -1651, -2326, 22160, 14586, -1652, -2326, 22150, 14597, -1653, -2325, 22140, 14608, -1655,
- -2325, 22130, 14619, -1656, -2324, 22119, 14630, -1657, -2323, 22107, 14642, -1658, -2323, 22098, 14653, -1660,
- -2322, 22087, 14664, -1661, -2322, 22077, 14675, -1662, -2321, 22066, 14686, -1663, -2320, 22056, 14697, -1665,
- -2320, 22046, 14708, -1666, -2319, 22035, 14719, -1667, -2319, 22025, 14730, -1668, -2318, 22015, 14741, -1670,
- -2317, 22004, 14752, -1671, -2317, 21994, 14763, -1672, -2316, 21982, 14775, -1673, -2316, 21973, 14786, -1675,
- -2315, 21962, 14797, -1676, -2314, 21951, 14808, -1677, -2314, 21941, 14819, -1678, -2313, 21931, 14830, -1680,
- -2313, 21921, 14841, -1681, -2312, 21910, 14852, -1682, -2311, 21899, 14863, -1683, -2311, 21890, 14874, -1685,
- -2310, 21879, 14885, -1686, -2310, 21868, 14897, -1687, -2309, 21857, 14908, -1688, -2308, 21847, 14919, -1690,
- -2308, 21837, 14930, -1691, -2307, 21826, 14941, -1692, -2306, 21815, 14952, -1693, -2306, 21805, 14963, -1694,
- -2305, 21795, 14974, -1696, -2305, 21785, 14985, -1697, -2304, 21774, 14996, -1698, -2303, 21763, 15007, -1699,
- -2303, 21753, 15019, -1701, -2302, 21742, 15030, -1702, -2301, 21731, 15041, -1703, -2301, 21721, 15052, -1704,
- -2300, 21711, 15063, -1706, -2300, 21701, 15074, -1707, -2299, 21690, 15085, -1708, -2298, 21679, 15096, -1709,
- -2298, 21669, 15107, -1710, -2297, 21659, 15118, -1712, -2296, 21647, 15130, -1713, -2296, 21637, 15141, -1714,
- -2295, 21626, 15152, -1715, -2294, 21616, 15163, -1717, -2294, 21606, 15174, -1718, -2293, 21595, 15185, -1719,
- -2292, 21584, 15196, -1720, -2292, 21575, 15207, -1722, -2291, 21564, 15218, -1723, -2290, 21553, 15229, -1724,
- -2290, 21542, 15241, -1725, -2289, 21531, 15252, -1726, -2288, 21521, 15263, -1728, -2288, 21511, 15274, -1729,
- -2287, 21500, 15285, -1730, -2286, 21489, 15296, -1731, -2286, 21480, 15307, -1733, -2285, 21469, 15318, -1734,
- -2284, 21458, 15329, -1735, -2284, 21447, 15341, -1736, -2283, 21436, 15352, -1737, -2282, 21426, 15363, -1739,
- -2282, 21416, 15374, -1740, -2281, 21405, 15385, -1741, -2280, 21394, 15396, -1742, -2280, 21384, 15407, -1743,
- -2279, 21374, 15418, -1745, -2278, 21363, 15429, -1746, -2278, 21353, 15440, -1747, -2277, 21341, 15452, -1748,
- -2276, 21331, 15463, -1750, -2276, 21321, 15474, -1751, -2275, 21310, 15485, -1752, -2274, 21299, 15496, -1753,
- -2274, 21289, 15507, -1754, -2273, 21279, 15518, -1756, -2272, 21268, 15529, -1757, -2271, 21257, 15540, -1758,
- -2271, 21246, 15552, -1759, -2270, 21235, 15563, -1760, -2269, 21225, 15574, -1762, -2269, 21215, 15585, -1763,
- -2268, 21204, 15596, -1764, -2267, 21193, 15607, -1765, -2267, 21183, 15618, -1766, -2266, 21173, 15629, -1768,
- -2265, 21162, 15640, -1769, -2264, 21150, 15652, -1770, -2264, 21140, 15663, -1771, -2263, 21129, 15674, -1772,
- -2262, 21119, 15685, -1774, -2262, 21109, 15696, -1775, -2261, 21098, 15707, -1776, -2260, 21087, 15718, -1777,
- -2259, 21076, 15729, -1778, -2259, 21067, 15740, -1780, -2258, 21055, 15752, -1781, -2257, 21044, 15763, -1782,
- -2257, 21034, 15774, -1783, -2256, 21023, 15785, -1784, -2255, 21013, 15796, -1786, -2254, 21002, 15807, -1787,
- -2254, 20992, 15818, -1788, -2253, 20981, 15829, -1789, -2252, 20970, 15840, -1790, -2251, 20959, 15852, -1792,
- -2251, 20949, 15863, -1793, -2250, 20938, 15874, -1794, -2249, 20927, 15885, -1795, -2249, 20917, 15896, -1796,
- -2248, 20906, 15907, -1797, -2247, 20896, 15918, -1799, -2246, 20885, 15929, -1800, -2246, 20875, 15940, -1801,
- -2245, 20863, 15952, -1802, -2244, 20852, 15963, -1803, -2243, 20842, 15974, -1805, -2243, 20832, 15985, -1806,
- -2242, 20821, 15996, -1807, -2241, 20810, 16007, -1808, -2240, 20799, 16018, -1809, -2240, 20789, 16029, -1810,
- -2239, 20779, 16040, -1812, -2238, 20767, 16052, -1813, -2237, 20756, 16063, -1814, -2237, 20746, 16074, -1815,
- -2236, 20735, 16085, -1816, -2235, 20725, 16096, -1818, -2234, 20714, 16107, -1819, -2233, 20703, 16118, -1820,
- -2233, 20693, 16129, -1821, -2232, 20682, 16140, -1822, -2231, 20670, 16152, -1823, -2230, 20660, 16163, -1825,
- -2230, 20650, 16174, -1826, -2229, 20639, 16185, -1827, -2228, 20628, 16196, -1828, -2227, 20617, 16207, -1829,
- -2227, 20607, 16218, -1830, -2226, 20597, 16229, -1832, -2225, 20586, 16240, -1833, -2224, 20574, 16252, -1834,
- -2223, 20563, 16263, -1835, -2223, 20553, 16274, -1836, -2222, 20542, 16285, -1837, -2221, 20532, 16296, -1839,
- -2220, 20521, 16307, -1840, -2220, 20511, 16318, -1841, -2219, 20500, 16329, -1842, -2218, 20489, 16340, -1843,
- -2217, 20478, 16351, -1844, -2216, 20466, 16363, -1845, -2216, 20457, 16374, -1847, -2215, 20446, 16385, -1848,
- -2214, 20435, 16396, -1849, -2213, 20424, 16407, -1850, -2212, 20413, 16418, -1851, -2212, 20403, 16429, -1852,
- -2211, 20393, 16440, -1854, -2210, 20382, 16451, -1855, -2209, 20370, 16463, -1856, -2208, 20359, 16474, -1857,
- -2208, 20349, 16485, -1858, -2207, 20338, 16496, -1859, -2206, 20327, 16507, -1860, -2205, 20317, 16518, -1862,
- -2204, 20306, 16529, -1863, -2204, 20296, 16540, -1864, -2203, 20285, 16551, -1865, -2202, 20273, 16563, -1866,
- -2201, 20262, 16574, -1867, -2200, 20251, 16585, -1868, -2199, 20241, 16596, -1870, -2199, 20231, 16607, -1871,
- -2198, 20220, 16618, -1872, -2197, 20209, 16629, -1873, -2196, 20198, 16640, -1874, -2195, 20187, 16651, -1875,
- -2195, 20177, 16662, -1876, -2194, 20166, 16674, -1878, -2193, 20155, 16685, -1879, -2192, 20144, 16696, -1880,
- -2191, 20133, 16707, -1881, -2190, 20122, 16718, -1882, -2190, 20112, 16729, -1883, -2189, 20101, 16740, -1884,
- -2188, 20091, 16751, -1886, -2187, 20080, 16762, -1887, -2186, 20069, 16773, -1888, -2185, 20057, 16785, -1889,
- -2185, 20047, 16796, -1890, -2184, 20036, 16807, -1891, -2183, 20025, 16818, -1892, -2182, 20014, 16829, -1893,
- -2181, 20004, 16840, -1895, -2180, 19993, 16851, -1896, -2179, 19982, 16862, -1897, -2179, 19972, 16873, -1898,
- -2178, 19961, 16884, -1899, -2177, 19950, 16895, -1900, -2176, 19938, 16907, -1901, -2175, 19927, 16918, -1902,
- -2174, 19917, 16929, -1904, -2174, 19907, 16940, -1905, -2173, 19896, 16951, -1906, -2172, 19885, 16962, -1907,
- -2171, 19874, 16973, -1908, -2170, 19863, 16984, -1909, -2169, 19852, 16995, -1910, -2168, 19841, 17006, -1911,
- -2168, 19831, 17018, -1913, -2167, 19820, 17029, -1914, -2166, 19809, 17040, -1915, -2165, 19798, 17051, -1916,
- -2164, 19787, 17062, -1917, -2163, 19776, 17073, -1918, -2162, 19765, 17084, -1919, -2161, 19754, 17095, -1920,
- -2161, 19744, 17106, -1921, -2160, 19733, 17117, -1922, -2159, 19723, 17128, -1924, -2158, 19712, 17139, -1925,
- -2157, 19700, 17151, -1926, -2156, 19689, 17162, -1927, -2155, 19678, 17173, -1928, -2154, 19667, 17184, -1929,
- -2154, 19657, 17195, -1930, -2153, 19646, 17206, -1931, -2152, 19635, 17217, -1932, -2151, 19625, 17228, -1934,
- -2150, 19614, 17239, -1935, -2149, 19603, 17250, -1936, -2148, 19592, 17261, -1937, -2147, 19581, 17272, -1938,
- -2146, 19569, 17284, -1939, -2146, 19559, 17295, -1940, -2145, 19548, 17306, -1941, -2144, 19537, 17317, -1942,
- -2143, 19526, 17328, -1943, -2142, 19515, 17339, -1944, -2141, 19505, 17350, -1946, -2140, 19494, 17361, -1947,
- -2139, 19483, 17372, -1948, -2138, 19472, 17383, -1949, -2137, 19461, 17394, -1950, -2137, 19451, 17405, -1951,
- -2136, 19440, 17416, -1952, -2135, 19429, 17427, -1953, -2134, 19417, 17439, -1954, -2133, 19406, 17450, -1955,
- -2132, 19395, 17461, -1956, -2131, 19384, 17472, -1957, -2130, 19374, 17483, -1959, -2129, 19363, 17494, -1960,
- -2128, 19352, 17505, -1961, -2127, 19341, 17516, -1962, -2127, 19331, 17527, -1963, -2126, 19320, 17538, -1964,
- -2125, 19309, 17549, -1965, -2124, 19298, 17560, -1966, -2123, 19287, 17571, -1967, -2122, 19276, 17582, -1968,
- -2121, 19265, 17593, -1969, -2120, 19253, 17605, -1970, -2119, 19242, 17616, -1971, -2118, 19231, 17627, -1972,
- -2117, 19221, 17638, -1974, -2116, 19210, 17649, -1975, -2116, 19200, 17660, -1976, -2115, 19189, 17671, -1977,
- -2114, 19178, 17682, -1978, -2113, 19167, 17693, -1979, -2112, 19156, 17704, -1980, -2111, 19145, 17715, -1981,
- -2110, 19134, 17726, -1982, -2109, 19123, 17737, -1983, -2108, 19112, 17748, -1984, -2107, 19101, 17759, -1985,
- -2106, 19090, 17770, -1986, -2105, 19079, 17781, -1987, -2104, 19068, 17792, -1988, -2103, 19056, 17804, -1989,
- -2102, 19046, 17815, -1991, -2101, 19035, 17826, -1992, -2101, 19025, 17837, -1993, -2100, 19014, 17848, -1994,
- -2099, 19003, 17859, -1995, -2098, 18992, 17870, -1996, -2097, 18981, 17881, -1997, -2096, 18970, 17892, -1998,
- -2095, 18959, 17903, -1999, -2094, 18948, 17914, -2000, -2093, 18937, 17925, -2001, -2092, 18926, 17936, -2002,
- -2091, 18915, 17947, -2003, -2090, 18904, 17958, -2004, -2089, 18893, 17969, -2005, -2088, 18882, 17980, -2006,
- -2087, 18871, 17991, -2007, -2086, 18860, 18002, -2008, -2085, 18849, 18013, -2009, -2084, 18838, 18024, -2010,
- -2083, 18827, 18035, -2011, -2082, 18816, 18046, -2012, -2081, 18805, 18057, -2013, -2080, 18794, 18068, -2014,
- -2079, 18783, 18080, -2016, -2079, 18773, 18091, -2017, -2078, 18762, 18102, -2018, -2077, 18751, 18113, -2019,
- -2076, 18740, 18124, -2020, -2075, 18729, 18135, -2021, -2074, 18718, 18146, -2022, -2073, 18707, 18157, -2023,
- -2072, 18696, 18168, -2024, -2071, 18685, 18179, -2025, -2070, 18674, 18190, -2026, -2069, 18663, 18201, -2027,
- -2068, 18652, 18212, -2028, -2067, 18641, 18223, -2029, -2066, 18630, 18234, -2030, -2065, 18619, 18245, -2031,
- -2064, 18608, 18256, -2032, -2063, 18597, 18267, -2033, -2062, 18586, 18278, -2034, -2061, 18575, 18289, -2035,
- -2060, 18564, 18300, -2036, -2059, 18553, 18311, -2037, -2058, 18542, 18322, -2038, -2057, 18531, 18333, -2039,
- -2056, 18520, 18344, -2040, -2055, 18509, 18355, -2041, -2054, 18498, 18366, -2042, -2053, 18487, 18377, -2043,
- -2052, 18476, 18388, -2044, -2051, 18465, 18399, -2045, -2050, 18454, 18410, -2046, -2049, 18443, 18421, -2047,
- -2048, 18432, 18432, -2048, -2047, 18421, 18443, -2049, -2046, 18410, 18454, -2050, -2045, 18399, 18465, -2051,
- -2044, 18388, 18476, -2052, -2043, 18377, 18487, -2053, -2042, 18366, 18498, -2054, -2041, 18355, 18509, -2055,
- -2040, 18344, 18520, -2056, -2039, 18333, 18531, -2057, -2038, 18322, 18542, -2058, -2037, 18311, 18553, -2059,
- -2036, 18300, 18564, -2060, -2035, 18289, 18575, -2061, -2034, 18278, 18586, -2062, -2033, 18267, 18597, -2063,
- -2032, 18256, 18608, -2064, -2031, 18245, 18619, -2065, -2030, 18234, 18630, -2066, -2029, 18223, 18641, -2067,
- -2028, 18212, 18652, -2068, -2027, 18201, 18663, -2069, -2026, 18190, 18674, -2070, -2025, 18179, 18685, -2071,
- -2024, 18168, 18696, -2072, -2023, 18157, 18707, -2073, -2022, 18146, 18718, -2074, -2021, 18135, 18729, -2075,
- -2020, 18124, 18740, -2076, -2019, 18113, 18751, -2077, -2018, 18102, 18762, -2078, -2017, 18091, 18773, -2079,
- -2016, 18080, 18783, -2079, -2014, 18068, 18794, -2080, -2013, 18057, 18805, -2081, -2012, 18046, 18816, -2082,
- -2011, 18035, 18827, -2083, -2010, 18024, 18838, -2084, -2009, 18013, 18849, -2085, -2008, 18002, 18860, -2086,
- -2007, 17991, 18871, -2087, -2006, 17980, 18882, -2088, -2005, 17969, 18893, -2089, -2004, 17958, 18904, -2090,
- -2003, 17947, 18915, -2091, -2002, 17936, 18926, -2092, -2001, 17925, 18937, -2093, -2000, 17914, 18948, -2094,
- -1999, 17903, 18959, -2095, -1998, 17892, 18970, -2096, -1997, 17881, 18981, -2097, -1996, 17870, 18992, -2098,
- -1995, 17859, 19003, -2099, -1994, 17848, 19014, -2100, -1993, 17837, 19025, -2101, -1992, 17826, 19035, -2101,
- -1991, 17815, 19046, -2102, -1989, 17804, 19056, -2103, -1988, 17792, 19068, -2104, -1987, 17781, 19079, -2105,
- -1986, 17770, 19090, -2106, -1985, 17759, 19101, -2107, -1984, 17748, 19112, -2108, -1983, 17737, 19123, -2109,
- -1982, 17726, 19134, -2110, -1981, 17715, 19145, -2111, -1980, 17704, 19156, -2112, -1979, 17693, 19167, -2113,
- -1978, 17682, 19178, -2114, -1977, 17671, 19189, -2115, -1976, 17660, 19200, -2116, -1975, 17649, 19210, -2116,
- -1974, 17638, 19221, -2117, -1972, 17627, 19231, -2118, -1971, 17616, 19242, -2119, -1970, 17605, 19253, -2120,
- -1969, 17593, 19265, -2121, -1968, 17582, 19276, -2122, -1967, 17571, 19287, -2123, -1966, 17560, 19298, -2124,
- -1965, 17549, 19309, -2125, -1964, 17538, 19320, -2126, -1963, 17527, 19331, -2127, -1962, 17516, 19341, -2127,
- -1961, 17505, 19352, -2128, -1960, 17494, 19363, -2129, -1959, 17483, 19374, -2130, -1957, 17472, 19384, -2131,
- -1956, 17461, 19395, -2132, -1955, 17450, 19406, -2133, -1954, 17439, 19417, -2134, -1953, 17427, 19429, -2135,
- -1952, 17416, 19440, -2136, -1951, 17405, 19451, -2137, -1950, 17394, 19461, -2137, -1949, 17383, 19472, -2138,
- -1948, 17372, 19483, -2139, -1947, 17361, 19494, -2140, -1946, 17350, 19505, -2141, -1944, 17339, 19515, -2142,
- -1943, 17328, 19526, -2143, -1942, 17317, 19537, -2144, -1941, 17306, 19548, -2145, -1940, 17295, 19559, -2146,
- -1939, 17284, 19569, -2146, -1938, 17272, 19581, -2147, -1937, 17261, 19592, -2148, -1936, 17250, 19603, -2149,
- -1935, 17239, 19614, -2150, -1934, 17228, 19625, -2151, -1932, 17217, 19635, -2152, -1931, 17206, 19646, -2153,
- -1930, 17195, 19657, -2154, -1929, 17184, 19667, -2154, -1928, 17173, 19678, -2155, -1927, 17162, 19689, -2156,
- -1926, 17151, 19700, -2157, -1925, 17139, 19712, -2158, -1924, 17128, 19723, -2159, -1922, 17117, 19733, -2160,
- -1921, 17106, 19744, -2161, -1920, 17095, 19754, -2161, -1919, 17084, 19765, -2162, -1918, 17073, 19776, -2163,
- -1917, 17062, 19787, -2164, -1916, 17051, 19798, -2165, -1915, 17040, 19809, -2166, -1914, 17029, 19820, -2167,
- -1913, 17018, 19831, -2168, -1911, 17006, 19841, -2168, -1910, 16995, 19852, -2169, -1909, 16984, 19863, -2170,
- -1908, 16973, 19874, -2171, -1907, 16962, 19885, -2172, -1906, 16951, 19896, -2173, -1905, 16940, 19907, -2174,
- -1904, 16929, 19917, -2174, -1902, 16918, 19927, -2175, -1901, 16907, 19938, -2176, -1900, 16895, 19950, -2177,
- -1899, 16884, 19961, -2178, -1898, 16873, 19972, -2179, -1897, 16862, 19982, -2179, -1896, 16851, 19993, -2180,
- -1895, 16840, 20004, -2181, -1893, 16829, 20014, -2182, -1892, 16818, 20025, -2183, -1891, 16807, 20036, -2184,
- -1890, 16796, 20047, -2185, -1889, 16785, 20057, -2185, -1888, 16773, 20069, -2186, -1887, 16762, 20080, -2187,
- -1886, 16751, 20091, -2188, -1884, 16740, 20101, -2189, -1883, 16729, 20112, -2190, -1882, 16718, 20122, -2190,
- -1881, 16707, 20133, -2191, -1880, 16696, 20144, -2192, -1879, 16685, 20155, -2193, -1878, 16674, 20166, -2194,
- -1876, 16662, 20177, -2195, -1875, 16651, 20187, -2195, -1874, 16640, 20198, -2196, -1873, 16629, 20209, -2197,
- -1872, 16618, 20220, -2198, -1871, 16607, 20231, -2199, -1870, 16596, 20241, -2199, -1868, 16585, 20251, -2200,
- -1867, 16574, 20262, -2201, -1866, 16563, 20273, -2202, -1865, 16551, 20285, -2203, -1864, 16540, 20296, -2204,
- -1863, 16529, 20306, -2204, -1862, 16518, 20317, -2205, -1860, 16507, 20327, -2206, -1859, 16496, 20338, -2207,
- -1858, 16485, 20349, -2208, -1857, 16474, 20359, -2208, -1856, 16463, 20370, -2209, -1855, 16451, 20382, -2210,
- -1854, 16440, 20393, -2211, -1852, 16429, 20403, -2212, -1851, 16418, 20413, -2212, -1850, 16407, 20424, -2213,
- -1849, 16396, 20435, -2214, -1848, 16385, 20446, -2215, -1847, 16374, 20457, -2216, -1845, 16363, 20466, -2216,
- -1844, 16351, 20478, -2217, -1843, 16340, 20489, -2218, -1842, 16329, 20500, -2219, -1841, 16318, 20511, -2220,
- -1840, 16307, 20521, -2220, -1839, 16296, 20532, -2221, -1837, 16285, 20542, -2222, -1836, 16274, 20553, -2223,
- -1835, 16263, 20563, -2223, -1834, 16252, 20574, -2224, -1833, 16240, 20586, -2225, -1832, 16229, 20597, -2226,
- -1830, 16218, 20607, -2227, -1829, 16207, 20617, -2227, -1828, 16196, 20628, -2228, -1827, 16185, 20639, -2229,
- -1826, 16174, 20650, -2230, -1825, 16163, 20660, -2230, -1823, 16152, 20670, -2231, -1822, 16140, 20682, -2232,
- -1821, 16129, 20693, -2233, -1820, 16118, 20703, -2233, -1819, 16107, 20714, -2234, -1818, 16096, 20725, -2235,
- -1816, 16085, 20735, -2236, -1815, 16074, 20746, -2237, -1814, 16063, 20756, -2237, -1813, 16052, 20767, -2238,
- -1812, 16040, 20779, -2239, -1810, 16029, 20789, -2240, -1809, 16018, 20799, -2240, -1808, 16007, 20810, -2241,
- -1807, 15996, 20821, -2242, -1806, 15985, 20832, -2243, -1805, 15974, 20842, -2243, -1803, 15963, 20852, -2244,
- -1802, 15952, 20863, -2245, -1801, 15940, 20875, -2246, -1800, 15929, 20885, -2246, -1799, 15918, 20896, -2247,
- -1797, 15907, 20906, -2248, -1796, 15896, 20917, -2249, -1795, 15885, 20927, -2249, -1794, 15874, 20938, -2250,
- -1793, 15863, 20949, -2251, -1792, 15852, 20959, -2251, -1790, 15840, 20970, -2252, -1789, 15829, 20981, -2253,
- -1788, 15818, 20992, -2254, -1787, 15807, 21002, -2254, -1786, 15796, 21013, -2255, -1784, 15785, 21023, -2256,
- -1783, 15774, 21034, -2257, -1782, 15763, 21044, -2257, -1781, 15752, 21055, -2258, -1780, 15740, 21067, -2259,
- -1778, 15729, 21076, -2259, -1777, 15718, 21087, -2260, -1776, 15707, 21098, -2261, -1775, 15696, 21109, -2262,
- -1774, 15685, 21119, -2262, -1772, 15674, 21129, -2263, -1771, 15663, 21140, -2264, -1770, 15652, 21150, -2264,
- -1769, 15640, 21162, -2265, -1768, 15629, 21173, -2266, -1766, 15618, 21183, -2267, -1765, 15607, 21193, -2267,
- -1764, 15596, 21204, -2268, -1763, 15585, 21215, -2269, -1762, 15574, 21225, -2269, -1760, 15563, 21235, -2270,
- -1759, 15552, 21246, -2271, -1758, 15540, 21257, -2271, -1757, 15529, 21268, -2272, -1756, 15518, 21279, -2273,
- -1754, 15507, 21289, -2274, -1753, 15496, 21299, -2274, -1752, 15485, 21310, -2275, -1751, 15474, 21321, -2276,
- -1750, 15463, 21331, -2276, -1748, 15452, 21341, -2277, -1747, 15440, 21353, -2278, -1746, 15429, 21363, -2278,
- -1745, 15418, 21374, -2279, -1743, 15407, 21384, -2280, -1742, 15396, 21394, -2280, -1741, 15385, 21405, -2281,
- -1740, 15374, 21416, -2282, -1739, 15363, 21426, -2282, -1737, 15352, 21436, -2283, -1736, 15341, 21447, -2284,
- -1735, 15329, 21458, -2284, -1734, 15318, 21469, -2285, -1733, 15307, 21480, -2286, -1731, 15296, 21489, -2286,
- -1730, 15285, 21500, -2287, -1729, 15274, 21511, -2288, -1728, 15263, 21521, -2288, -1726, 15252, 21531, -2289,
- -1725, 15241, 21542, -2290, -1724, 15229, 21553, -2290, -1723, 15218, 21564, -2291, -1722, 15207, 21575, -2292,
- -1720, 15196, 21584, -2292, -1719, 15185, 21595, -2293, -1718, 15174, 21606, -2294, -1717, 15163, 21616, -2294,
- -1715, 15152, 21626, -2295, -1714, 15141, 21637, -2296, -1713, 15130, 21647, -2296, -1712, 15118, 21659, -2297,
- -1710, 15107, 21669, -2298, -1709, 15096, 21679, -2298, -1708, 15085, 21690, -2299, -1707, 15074, 21701, -2300,
- -1706, 15063, 21711, -2300, -1704, 15052, 21721, -2301, -1703, 15041, 21731, -2301, -1702, 15030, 21742, -2302,
- -1701, 15019, 21753, -2303, -1699, 15007, 21763, -2303, -1698, 14996, 21774, -2304, -1697, 14985, 21785, -2305,
- -1696, 14974, 21795, -2305, -1694, 14963, 21805, -2306, -1693, 14952, 21815, -2306, -1692, 14941, 21826, -2307,
- -1691, 14930, 21837, -2308, -1690, 14919, 21847, -2308, -1688, 14908, 21857, -2309, -1687, 14897, 21868, -2310,
- -1686, 14885, 21879, -2310, -1685, 14874, 21890, -2311, -1683, 14863, 21899, -2311, -1682, 14852, 21910, -2312,
- -1681, 14841, 21921, -2313, -1680, 14830, 21931, -2313, -1678, 14819, 21941, -2314, -1677, 14808, 21951, -2314,
- -1676, 14797, 21962, -2315, -1675, 14786, 21973, -2316, -1673, 14775, 21982, -2316, -1672, 14763, 21994, -2317,
- -1671, 14752, 22004, -2317, -1670, 14741, 22015, -2318, -1668, 14730, 22025, -2319, -1667, 14719, 22035, -2319,
- -1666, 14708, 22046, -2320, -1665, 14697, 22056, -2320, -1663, 14686, 22066, -2321, -1662, 14675, 22077, -2322,
- -1661, 14664, 22087, -2322, -1660, 14653, 22098, -2323, -1658, 14642, 22107, -2323, -1657, 14630, 22119, -2324,
- -1656, 14619, 22130, -2325, -1655, 14608, 22140, -2325, -1653, 14597, 22150, -2326, -1652, 14586, 22160, -2326,
- -1651, 14575, 22171, -2327, -1650, 14564, 22181, -2327, -1648, 14553, 22191, -2328, -1647, 14542, 22202, -2329,
- -1646, 14531, 22212, -2329, -1645, 14520, 22223, -2330, -1643, 14509, 22232, -2330, -1642, 14497, 22244, -2331,
- -1641, 14486, 22254, -2331, -1640, 14475, 22265, -2332, -1638, 14464, 22274, -2332, -1637, 14453, 22285, -2333,
- -1636, 14442, 22296, -2334, -1635, 14431, 22306, -2334, -1633, 14420, 22316, -2335, -1632, 14409, 22326, -2335,
- -1631, 14398, 22337, -2336, -1630, 14387, 22347, -2336, -1628, 14376, 22357, -2337, -1627, 14365, 22367, -2337,
- -1626, 14354, 22378, -2338, -1624, 14342, 22389, -2339, -1623, 14331, 22399, -2339, -1622, 14320, 22410, -2340,
- -1621, 14309, 22420, -2340, -1619, 14298, 22430, -2341, -1618, 14287, 22440, -2341, -1617, 14276, 22451, -2342,
- -1616, 14265, 22461, -2342, -1614, 14254, 22471, -2343, -1613, 14243, 22481, -2343, -1612, 14232, 22492, -2344,
- -1611, 14221, 22502, -2344, -1609, 14210, 22512, -2345, -1608, 14199, 22522, -2345, -1607, 14188, 22533, -2346,
- -1606, 14177, 22544, -2347, -1604, 14165, 22554, -2347, -1603, 14154, 22565, -2348, -1602, 14143, 22575, -2348,
- -1600, 14132, 22585, -2349, -1599, 14121, 22595, -2349, -1598, 14110, 22606, -2350, -1597, 14099, 22616, -2350,
- -1595, 14088, 22626, -2351, -1594, 14077, 22636, -2351, -1593, 14066, 22647, -2352, -1592, 14055, 22657, -2352,
- -1590, 14044, 22667, -2353, -1589, 14033, 22677, -2353, -1588, 14022, 22688, -2354, -1586, 14011, 22697, -2354,
- -1585, 14000, 22708, -2355, -1584, 13989, 22718, -2355, -1583, 13978, 22729, -2356, -1581, 13967, 22738, -2356,
- -1580, 13955, 22750, -2357, -1579, 13944, 22760, -2357, -1577, 13933, 22770, -2358, -1576, 13922, 22780, -2358,
- -1575, 13911, 22791, -2359, -1574, 13900, 22801, -2359, -1572, 13889, 22810, -2359, -1571, 13878, 22821, -2360,
- -1570, 13867, 22831, -2360, -1569, 13856, 22842, -2361, -1567, 13845, 22851, -2361, -1566, 13834, 22862, -2362,
- -1565, 13823, 22872, -2362, -1563, 13812, 22882, -2363, -1562, 13801, 22892, -2363, -1561, 13790, 22903, -2364,
- -1560, 13779, 22913, -2364, -1558, 13768, 22923, -2365, -1557, 13757, 22933, -2365, -1556, 13746, 22944, -2366,
- -1554, 13735, 22953, -2366, -1553, 13724, 22964, -2367, -1552, 13713, 22974, -2367, -1551, 13702, 22984, -2367,
- -1549, 13691, 22994, -2368, -1548, 13680, 23004, -2368, -1547, 13669, 23015, -2369, -1545, 13658, 23024, -2369,
- -1544, 13647, 23035, -2370, -1543, 13636, 23045, -2370, -1542, 13624, 23057, -2371, -1540, 13613, 23066, -2371,
- -1539, 13602, 23076, -2371, -1538, 13591, 23087, -2372, -1536, 13580, 23096, -2372, -1535, 13569, 23107, -2373,
- -1534, 13558, 23117, -2373, -1532, 13547, 23127, -2374, -1531, 13536, 23137, -2374, -1530, 13525, 23147, -2374,
- -1529, 13514, 23158, -2375, -1527, 13503, 23167, -2375, -1526, 13492, 23178, -2376, -1525, 13481, 23188, -2376,
- -1523, 13470, 23198, -2377, -1522, 13459, 23208, -2377, -1521, 13448, 23218, -2377, -1520, 13437, 23229, -2378,
- -1518, 13426, 23238, -2378, -1517, 13415, 23249, -2379, -1516, 13404, 23259, -2379, -1514, 13393, 23268, -2379,
- -1513, 13382, 23279, -2380, -1512, 13371, 23289, -2380, -1510, 13360, 23299, -2381, -1509, 13349, 23309, -2381,
- -1508, 13338, 23319, -2381, -1507, 13327, 23330, -2382, -1505, 13316, 23339, -2382, -1504, 13305, 23350, -2383,
- -1503, 13294, 23360, -2383, -1501, 13283, 23369, -2383, -1500, 13272, 23380, -2384, -1499, 13261, 23390, -2384,
- -1497, 13250, 23400, -2385, -1496, 13239, 23410, -2385, -1495, 13228, 23420, -2385, -1494, 13217, 23431, -2386,
- -1492, 13206, 23440, -2386, -1491, 13195, 23451, -2387, -1490, 13184, 23461, -2387, -1488, 13173, 23470, -2387,
- -1487, 13163, 23480, -2388, -1486, 13152, 23490, -2388, -1484, 13141, 23499, -2388, -1483, 13130, 23510, -2389,
- -1482, 13119, 23520, -2389, -1481, 13108, 23530, -2389, -1479, 13097, 23540, -2390, -1478, 13086, 23550, -2390,
- -1477, 13075, 23561, -2391, -1475, 13064, 23570, -2391, -1474, 13053, 23580, -2391, -1473, 13042, 23591, -2392,
- -1471, 13031, 23600, -2392, -1470, 13020, 23610, -2392, -1469, 13009, 23621, -2393, -1468, 12998, 23631, -2393,
- -1466, 12987, 23640, -2393, -1465, 12976, 23651, -2394, -1464, 12965, 23661, -2394, -1462, 12954, 23670, -2394,
- -1461, 12943, 23681, -2395, -1460, 12932, 23691, -2395, -1458, 12921, 23700, -2395, -1457, 12910, 23711, -2396,
- -1456, 12899, 23721, -2396, -1454, 12888, 23730, -2396, -1453, 12877, 23741, -2397, -1452, 12866, 23751, -2397,
- -1450, 12856, 23759, -2397, -1449, 12845, 23770, -2398, -1448, 12834, 23780, -2398, -1447, 12823, 23790, -2398,
- -1445, 12812, 23800, -2399, -1444, 12801, 23810, -2399, -1443, 12790, 23820, -2399, -1441, 12779, 23830, -2400,
- -1440, 12768, 23840, -2400, -1439, 12757, 23850, -2400, -1437, 12746, 23860, -2401, -1436, 12735, 23870, -2401,
- -1435, 12724, 23880, -2401, -1433, 12713, 23890, -2402, -1432, 12702, 23900, -2402, -1431, 12691, 23910, -2402,
- -1429, 12681, 23918, -2402, -1428, 12670, 23929, -2403, -1427, 12659, 23939, -2403, -1426, 12648, 23949, -2403,
- -1424, 12637, 23959, -2404, -1423, 12626, 23969, -2404, -1422, 12615, 23979, -2404, -1420, 12604, 23988, -2404,
- -1419, 12593, 23999, -2405, -1418, 12582, 24009, -2405, -1416, 12571, 24018, -2405, -1415, 12560, 24029, -2406,
- -1414, 12549, 24039, -2406, -1412, 12539, 24047, -2406, -1411, 12528, 24057, -2406, -1410, 12517, 24068, -2407,
- -1408, 12506, 24077, -2407, -1407, 12495, 24087, -2407, -1406, 12484, 24098, -2408, -1404, 12473, 24107, -2408,
- -1403, 12462, 24117, -2408, -1402, 12451, 24127, -2408, -1401, 12440, 24138, -2409, -1399, 12430, 24146, -2409,
- -1398, 12419, 24156, -2409, -1397, 12408, 24166, -2409, -1395, 12397, 24176, -2410, -1394, 12386, 24186, -2410,
- -1393, 12375, 24196, -2410, -1391, 12364, 24205, -2410, -1390, 12353, 24216, -2411, -1389, 12342, 24226, -2411,
- -1387, 12332, 24234, -2411, -1386, 12321, 24244, -2411, -1385, 12310, 24255, -2412, -1383, 12299, 24264, -2412,
- -1382, 12288, 24274, -2412, -1381, 12277, 24284, -2412, -1379, 12266, 24294, -2413, -1378, 12255, 24304, -2413,
- -1377, 12244, 24314, -2413, -1375, 12234, 24322, -2413, -1374, 12223, 24332, -2413, -1373, 12212, 24343, -2414,
- -1371, 12201, 24352, -2414, -1370, 12190, 24362, -2414, -1369, 12179, 24372, -2414, -1367, 12168, 24382, -2415,
- -1366, 12158, 24391, -2415, -1365, 12147, 24401, -2415, -1364, 12136, 24411, -2415, -1362, 12125, 24420, -2415,
- -1361, 12114, 24431, -2416, -1360, 12103, 24441, -2416, -1358, 12092, 24450, -2416, -1357, 12082, 24459, -2416,
- -1356, 12071, 24469, -2416, -1354, 12060, 24479, -2417, -1353, 12049, 24489, -2417, -1352, 12038, 24499, -2417,
- -1350, 12027, 24508, -2417, -1349, 12016, 24518, -2417, -1348, 12006, 24528, -2418, -1346, 11995, 24537, -2418,
- -1345, 11984, 24547, -2418, -1344, 11973, 24557, -2418, -1342, 11962, 24566, -2418, -1341, 11951, 24577, -2419,
- -1340, 11941, 24586, -2419, -1338, 11930, 24595, -2419, -1337, 11919, 24605, -2419, -1336, 11908, 24615, -2419,
- -1334, 11897, 24624, -2419, -1333, 11886, 24635, -2420, -1332, 11876, 24644, -2420, -1330, 11865, 24653, -2420,
- -1329, 11854, 24663, -2420, -1328, 11843, 24673, -2420, -1326, 11832, 24682, -2420, -1325, 11822, 24692, -2421,
- -1324, 11811, 24702, -2421, -1322, 11800, 24711, -2421, -1321, 11789, 24721, -2421, -1320, 11778, 24731, -2421,
- -1318, 11767, 24740, -2421, -1317, 11757, 24749, -2421, -1316, 11746, 24760, -2422, -1314, 11735, 24769, -2422,
- -1313, 11724, 24779, -2422, -1312, 11713, 24789, -2422, -1310, 11703, 24797, -2422, -1309, 11692, 24807, -2422,
- -1308, 11681, 24817, -2422, -1306, 11670, 24827, -2423, -1305, 11659, 24837, -2423, -1304, 11649, 24846, -2423,
- -1302, 11638, 24855, -2423, -1301, 11627, 24865, -2423, -1300, 11616, 24875, -2423, -1298, 11606, 24883, -2423,
- -1297, 11595, 24893, -2423, -1296, 11584, 24904, -2424, -1294, 11573, 24913, -2424, -1293, 11562, 24923, -2424,
- -1292, 11552, 24932, -2424, -1290, 11541, 24941, -2424, -1289, 11530, 24951, -2424, -1288, 11519, 24961, -2424,
- -1286, 11509, 24969, -2424, -1285, 11498, 24979, -2424, -1284, 11487, 24990, -2425, -1282, 11476, 24999, -2425,
- -1281, 11466, 25008, -2425, -1280, 11455, 25018, -2425, -1278, 11444, 25027, -2425, -1277, 11433, 25037, -2425,
- -1276, 11422, 25047, -2425, -1274, 11412, 25055, -2425, -1273, 11401, 25065, -2425, -1272, 11390, 25075, -2425,
- -1271, 11380, 25085, -2426, -1269, 11369, 25094, -2426, -1268, 11358, 25104, -2426, -1267, 11347, 25114, -2426,
- -1265, 11337, 25122, -2426, -1264, 11326, 25132, -2426, -1263, 11315, 25142, -2426, -1261, 11304, 25151, -2426,
- -1260, 11294, 25160, -2426, -1259, 11283, 25170, -2426, -1257, 11272, 25179, -2426, -1256, 11261, 25189, -2426,
- -1255, 11251, 25198, -2426, -1253, 11240, 25207, -2426, -1252, 11229, 25217, -2426, -1251, 11219, 25227, -2427,
- -1249, 11208, 25236, -2427, -1248, 11197, 25246, -2427, -1247, 11186, 25256, -2427, -1245, 11176, 25264, -2427,
- -1244, 11165, 25274, -2427, -1243, 11154, 25284, -2427, -1241, 11144, 25292, -2427, -1240, 11133, 25302, -2427,
- -1239, 11122, 25312, -2427, -1237, 11111, 25321, -2427, -1236, 11101, 25330, -2427, -1235, 11090, 25340, -2427,
- -1233, 11079, 25349, -2427, -1232, 11069, 25358, -2427, -1231, 11058, 25368, -2427, -1229, 11047, 25377, -2427,
- -1228, 11037, 25386, -2427, -1227, 11026, 25396, -2427, -1225, 11015, 25405, -2427, -1224, 11005, 25414, -2427,
- -1223, 10994, 25424, -2427, -1221, 10983, 25433, -2427, -1220, 10972, 25443, -2427, -1219, 10962, 25452, -2427,
- -1217, 10951, 25461, -2427, -1216, 10940, 25471, -2427, -1215, 10930, 25480, -2427, -1213, 10919, 25489, -2427,
- -1212, 10908, 25499, -2427, -1211, 10898, 25508, -2427, -1209, 10887, 25517, -2427, -1208, 10876, 25527, -2427,
- -1207, 10866, 25536, -2427, -1205, 10855, 25545, -2427, -1204, 10844, 25555, -2427, -1203, 10834, 25564, -2427,
- -1201, 10823, 25573, -2427, -1200, 10813, 25582, -2427, -1199, 10802, 25592, -2427, -1197, 10791, 25601, -2427,
- -1196, 10781, 25610, -2427, -1195, 10770, 25620, -2427, -1193, 10759, 25629, -2427, -1192, 10749, 25638, -2427,
- -1191, 10738, 25648, -2427, -1189, 10727, 25657, -2427, -1188, 10717, 25666, -2427, -1187, 10706, 25676, -2427,
- -1185, 10696, 25684, -2427, -1184, 10685, 25694, -2427, -1183, 10674, 25704, -2427, -1181, 10664, 25712, -2427,
- -1180, 10653, 25722, -2427, -1179, 10642, 25732, -2427, -1177, 10632, 25740, -2427, -1176, 10621, 25749, -2426,
- -1175, 10611, 25758, -2426, -1173, 10600, 25767, -2426, -1172, 10589, 25777, -2426, -1171, 10579, 25786, -2426,
- -1169, 10568, 25795, -2426, -1168, 10558, 25804, -2426, -1167, 10547, 25814, -2426, -1165, 10536, 25823, -2426,
- -1164, 10526, 25832, -2426, -1163, 10515, 25842, -2426, -1161, 10505, 25850, -2426, -1160, 10494, 25860, -2426,
- -1159, 10483, 25870, -2426, -1157, 10473, 25877, -2425, -1156, 10462, 25887, -2425, -1155, 10452, 25896, -2425,
- -1153, 10441, 25905, -2425, -1152, 10431, 25914, -2425, -1151, 10420, 25924, -2425, -1149, 10409, 25933, -2425,
- -1148, 10399, 25942, -2425, -1147, 10388, 25952, -2425, -1145, 10378, 25960, -2425, -1144, 10367, 25970, -2425,
- -1143, 10357, 25978, -2424, -1141, 10346, 25987, -2424, -1140, 10336, 25996, -2424, -1139, 10325, 26006, -2424,
- -1137, 10314, 26015, -2424, -1136, 10304, 26024, -2424, -1135, 10293, 26034, -2424, -1133, 10283, 26042, -2424,
- -1132, 10272, 26052, -2424, -1131, 10262, 26060, -2423, -1129, 10251, 26069, -2423, -1128, 10241, 26078, -2423,
- -1127, 10230, 26088, -2423, -1125, 10220, 26096, -2423, -1124, 10209, 26106, -2423, -1123, 10199, 26115, -2423,
- -1121, 10188, 26123, -2422, -1120, 10178, 26132, -2422, -1119, 10167, 26142, -2422, -1117, 10156, 26151, -2422,
- -1116, 10146, 26160, -2422, -1115, 10135, 26170, -2422, -1113, 10125, 26178, -2422, -1112, 10114, 26187, -2421,
- -1111, 10104, 26196, -2421, -1109, 10093, 26205, -2421, -1108, 10083, 26214, -2421, -1107, 10072, 26224, -2421,
- -1105, 10062, 26232, -2421, -1104, 10051, 26242, -2421, -1103, 10041, 26250, -2420, -1101, 10030, 26259, -2420,
- -1100, 10020, 26268, -2420, -1099, 10010, 26277, -2420, -1097, 9999, 26286, -2420, -1096, 9989, 26294, -2419,
- -1095, 9978, 26304, -2419, -1093, 9968, 26312, -2419, -1092, 9957, 26322, -2419, -1091, 9947, 26331, -2419,
- -1089, 9936, 26340, -2419, -1088, 9926, 26348, -2418, -1087, 9915, 26358, -2418, -1085, 9905, 26366, -2418,
- -1084, 9894, 26376, -2418, -1083, 9884, 26385, -2418, -1081, 9873, 26393, -2417, -1080, 9863, 26402, -2417,
- -1079, 9853, 26411, -2417, -1077, 9842, 26420, -2417, -1076, 9832, 26429, -2417, -1075, 9821, 26438, -2416,
- -1073, 9811, 26446, -2416, -1072, 9800, 26456, -2416, -1071, 9790, 26465, -2416, -1069, 9779, 26473, -2415,
- -1068, 9769, 26482, -2415, -1067, 9759, 26491, -2415, -1066, 9748, 26501, -2415, -1064, 9738, 26509, -2415,
- -1063, 9727, 26518, -2414, -1062, 9717, 26527, -2414, -1060, 9707, 26535, -2414, -1059, 9696, 26545, -2414,
- -1058, 9686, 26553, -2413, -1056, 9675, 26562, -2413, -1055, 9665, 26571, -2413, -1054, 9654, 26581, -2413,
- -1052, 9644, 26588, -2412, -1051, 9634, 26597, -2412, -1050, 9623, 26607, -2412, -1048, 9613, 26615, -2412,
- -1047, 9603, 26623, -2411, -1046, 9592, 26633, -2411, -1044, 9582, 26641, -2411, -1043, 9571, 26651, -2411,
- -1042, 9561, 26659, -2410, -1040, 9551, 26667, -2410, -1039, 9540, 26677, -2410, -1038, 9530, 26686, -2410,
- -1036, 9520, 26693, -2409, -1035, 9509, 26703, -2409, -1034, 9499, 26712, -2409, -1032, 9488, 26721, -2409,
- -1031, 9478, 26729, -2408, -1030, 9468, 26738, -2408, -1028, 9457, 26747, -2408, -1027, 9447, 26755, -2407,
- -1026, 9437, 26764, -2407, -1025, 9426, 26774, -2407, -1023, 9416, 26781, -2406, -1022, 9406, 26790, -2406,
- -1021, 9395, 26800, -2406, -1019, 9385, 26808, -2406, -1018, 9375, 26816, -2405, -1017, 9364, 26826, -2405,
- -1015, 9354, 26834, -2405, -1014, 9344, 26842, -2404, -1013, 9333, 26852, -2404, -1011, 9323, 26860, -2404,
- -1010, 9313, 26868, -2403, -1009, 9302, 26878, -2403, -1007, 9292, 26886, -2403, -1006, 9282, 26894, -2402,
- -1005, 9271, 26904, -2402, -1003, 9261, 26912, -2402, -1002, 9251, 26921, -2402, -1001, 9240, 26930, -2401,
- -1000, 9230, 26939, -2401, -998, 9220, 26947, -2401, -997, 9210, 26955, -2400, -996, 9199, 26965, -2400,
- -994, 9189, 26972, -2399, -993, 9179, 26981, -2399, -992, 9168, 26991, -2399, -990, 9158, 26998, -2398,
- -989, 9148, 27007, -2398, -988, 9138, 27016, -2398, -986, 9127, 27024, -2397, -985, 9117, 27033, -2397,
- -984, 9107, 27042, -2397, -982, 9097, 27049, -2396, -981, 9086, 27059, -2396, -980, 9076, 27068, -2396,
- -979, 9066, 27076, -2395, -977, 9056, 27084, -2395, -976, 9045, 27093, -2394, -975, 9035, 27102, -2394,
- -973, 9025, 27110, -2394, -972, 9015, 27118, -2393, -971, 9004, 27128, -2393, -969, 8994, 27136, -2393,
- -968, 8984, 27144, -2392, -967, 8974, 27153, -2392, -965, 8963, 27161, -2391, -964, 8953, 27170, -2391,
- -963, 8943, 27179, -2391, -961, 8933, 27186, -2390, -960, 8923, 27195, -2390, -959, 8912, 27204, -2389,
- -958, 8902, 27213, -2389, -956, 8892, 27221, -2389, -955, 8882, 27229, -2388, -954, 8872, 27238, -2388,
- -952, 8861, 27246, -2387, -951, 8851, 27255, -2387, -950, 8841, 27264, -2387, -948, 8831, 27271, -2386,
- -947, 8821, 27280, -2386, -946, 8810, 27289, -2385, -945, 8800, 27298, -2385, -943, 8790, 27305, -2384,
- -942, 8780, 27314, -2384, -941, 8770, 27323, -2384, -939, 8759, 27331, -2383, -938, 8749, 27340, -2383,
- -937, 8739, 27348, -2382, -935, 8729, 27356, -2382, -934, 8719, 27364, -2381, -933, 8709, 27373, -2381,
- -932, 8699, 27382, -2381, -930, 8688, 27390, -2380, -929, 8678, 27399, -2380, -928, 8668, 27407, -2379,
- -926, 8658, 27415, -2379, -925, 8648, 27423, -2378, -924, 8638, 27432, -2378, -922, 8628, 27439, -2377,
- -921, 8617, 27449, -2377, -920, 8607, 27457, -2376, -919, 8597, 27466, -2376, -917, 8587, 27473, -2375,
- -916, 8577, 27482, -2375, -915, 8567, 27490, -2374, -913, 8557, 27498, -2374, -912, 8547, 27507, -2374,
- -911, 8536, 27516, -2373, -909, 8526, 27524, -2373, -908, 8516, 27532, -2372, -907, 8506, 27541, -2372,
- -906, 8496, 27549, -2371, -904, 8486, 27557, -2371, -903, 8476, 27565, -2370, -902, 8466, 27574, -2370,
- -900, 8456, 27581, -2369, -899, 8446, 27590, -2369, -898, 8436, 27598, -2368, -896, 8425, 27607, -2368,
- -895, 8415, 27615, -2367, -894, 8405, 27624, -2367, -893, 8395, 27632, -2366, -891, 8385, 27639, -2365,
- -890, 8375, 27648, -2365, -889, 8365, 27656, -2364, -887, 8355, 27664, -2364, -886, 8345, 27672, -2363,
- -885, 8335, 27681, -2363, -884, 8325, 27689, -2362, -882, 8315, 27697, -2362, -881, 8305, 27705, -2361,
- -880, 8295, 27714, -2361, -878, 8285, 27721, -2360, -877, 8275, 27730, -2360, -876, 8265, 27738, -2359,
- -875, 8255, 27747, -2359, -873, 8245, 27754, -2358, -872, 8235, 27762, -2357, -871, 8225, 27771, -2357,
- -869, 8215, 27778, -2356, -868, 8205, 27787, -2356, -867, 8195, 27795, -2355, -866, 8185, 27804, -2355,
- -864, 8175, 27811, -2354, -863, 8165, 27819, -2353, -862, 8155, 27828, -2353, -860, 8145, 27835, -2352,
- -859, 8135, 27844, -2352, -858, 8125, 27852, -2351, -857, 8115, 27861, -2351, -855, 8105, 27868, -2350,
- -854, 8095, 27876, -2349, -853, 8085, 27885, -2349, -851, 8075, 27892, -2348, -850, 8065, 27901, -2348,
- -849, 8055, 27909, -2347, -848, 8045, 27917, -2346, -846, 8035, 27925, -2346, -845, 8025, 27933, -2345,
- -844, 8015, 27942, -2345, -843, 8005, 27950, -2344, -841, 7995, 27957, -2343, -840, 7985, 27966, -2343,
- -839, 7975, 27974, -2342, -837, 7965, 27982, -2342, -836, 7955, 27990, -2341, -835, 7945, 27998, -2340,
- -834, 7936, 28006, -2340, -832, 7926, 28013, -2339, -831, 7916, 28021, -2338, -830, 7906, 28030, -2338,
- -829, 7896, 28038, -2337, -827, 7886, 28046, -2337, -826, 7876, 28054, -2336, -825, 7866, 28062, -2335,
- -823, 7856, 28070, -2335, -822, 7846, 28078, -2334, -821, 7836, 28086, -2333, -820, 7827, 28094, -2333,
- -818, 7817, 28101, -2332, -817, 7807, 28109, -2331, -816, 7797, 28118, -2331, -815, 7787, 28126, -2330,
- -813, 7777, 28133, -2329, -812, 7767, 28142, -2329, -811, 7757, 28150, -2328, -810, 7748, 28157, -2327,
- -808, 7738, 28165, -2327, -807, 7728, 28173, -2326, -806, 7718, 28181, -2325, -804, 7708, 28189, -2325,
- -803, 7698, 28197, -2324, -802, 7688, 28205, -2323, -801, 7679, 28213, -2323, -799, 7669, 28220, -2322,
- -798, 7659, 28228, -2321, -797, 7649, 28237, -2321, -796, 7639, 28245, -2320, -794, 7629, 28252, -2319,
- -793, 7620, 28260, -2319, -792, 7610, 28268, -2318, -791, 7600, 28276, -2317, -789, 7590, 28283, -2316,
- -788, 7580, 28292, -2316, -787, 7571, 28299, -2315, -786, 7561, 28307, -2314, -784, 7551, 28315, -2314,
- -783, 7541, 28323, -2313, -782, 7531, 28331, -2312, -781, 7522, 28338, -2311, -779, 7512, 28346, -2311,
- -778, 7502, 28354, -2310, -777, 7492, 28362, -2309, -776, 7483, 28369, -2308, -774, 7473, 28377, -2308,
- -773, 7463, 28385, -2307, -772, 7453, 28393, -2306, -771, 7444, 28400, -2305, -769, 7434, 28408, -2305,
- -768, 7424, 28416, -2304, -767, 7414, 28424, -2303, -766, 7405, 28431, -2302, -764, 7395, 28439, -2302,
- -763, 7385, 28447, -2301, -762, 7375, 28455, -2300, -761, 7366, 28462, -2299, -759, 7356, 28470, -2299,
- -758, 7346, 28478, -2298, -757, 7336, 28486, -2297, -756, 7327, 28493, -2296, -754, 7317, 28501, -2296,
- -753, 7307, 28509, -2295, -752, 7298, 28516, -2294, -751, 7288, 28524, -2293, -749, 7278, 28531, -2292,
- -748, 7268, 28540, -2292, -747, 7259, 28547, -2291, -746, 7249, 28555, -2290, -744, 7239, 28562, -2289,
- -743, 7230, 28570, -2289, -742, 7220, 28578, -2288, -741, 7210, 28586, -2287, -739, 7201, 28592, -2286,
- -738, 7191, 28600, -2285, -737, 7181, 28608, -2284, -736, 7172, 28616, -2284, -734, 7162, 28623, -2283,
- -733, 7152, 28631, -2282, -732, 7143, 28638, -2281, -731, 7133, 28646, -2280, -729, 7123, 28654, -2280,
- -728, 7114, 28661, -2279, -727, 7104, 28669, -2278, -726, 7095, 28676, -2277, -725, 7085, 28684, -2276,
- -723, 7075, 28691, -2275, -722, 7066, 28699, -2275, -721, 7056, 28707, -2274, -720, 7046, 28715, -2273,
- -718, 7037, 28721, -2272, -717, 7027, 28729, -2271, -716, 7018, 28736, -2270, -715, 7008, 28744, -2269,
- -713, 6998, 28752, -2269, -712, 6989, 28759, -2268, -711, 6979, 28767, -2267, -710, 6970, 28774, -2266,
- -709, 6960, 28782, -2265, -707, 6950, 28789, -2264, -706, 6941, 28796, -2263, -705, 6931, 28805, -2263,
- -704, 6922, 28812, -2262, -702, 6912, 28819, -2261, -701, 6903, 28826, -2260, -700, 6893, 28834, -2259,
- -699, 6883, 28842, -2258, -698, 6874, 28849, -2257, -696, 6864, 28856, -2256, -695, 6855, 28863, -2255,
- -694, 6845, 28872, -2255, -693, 6836, 28879, -2254, -691, 6826, 28886, -2253, -690, 6817, 28893, -2252,
- -689, 6807, 28901, -2251, -688, 6798, 28908, -2250, -687, 6788, 28916, -2249, -685, 6779, 28922, -2248,
- -684, 6769, 28930, -2247, -683, 6760, 28937, -2246, -682, 6750, 28945, -2245, -681, 6741, 28953, -2245,
- -679, 6731, 28960, -2244, -678, 6722, 28967, -2243, -677, 6712, 28975, -2242, -676, 6703, 28982, -2241,
- -675, 6693, 28990, -2240, -673, 6684, 28996, -2239, -672, 6674, 29004, -2238, -671, 6665, 29011, -2237,
- -670, 6655, 29019, -2236, -668, 6646, 29025, -2235, -667, 6636, 29033, -2234, -666, 6627, 29040, -2233,
- -665, 6617, 29048, -2232, -664, 6608, 29055, -2231, -662, 6599, 29061, -2230, -661, 6589, 29069, -2229,
- -660, 6580, 29076, -2228, -659, 6570, 29084, -2227, -658, 6561, 29091, -2226, -656, 6551, 29098, -2225,
- -655, 6542, 29105, -2224, -654, 6533, 29113, -2224, -653, 6523, 29121, -2223, -652, 6514, 29128, -2222,
- -650, 6504, 29135, -2221, -649, 6495, 29142, -2220, -648, 6486, 29149, -2219, -647, 6476, 29157, -2218,
- -646, 6467, 29164, -2217, -644, 6457, 29171, -2216, -643, 6448, 29178, -2215, -642, 6439, 29185, -2214,
- -641, 6429, 29193, -2213, -640, 6420, 29200, -2212, -639, 6411, 29207, -2211, -637, 6401, 29213, -2209,
- -636, 6392, 29220, -2208, -635, 6382, 29228, -2207, -634, 6373, 29235, -2206, -633, 6364, 29242, -2205,
- -631, 6354, 29249, -2204, -630, 6345, 29256, -2203, -629, 6336, 29263, -2202, -628, 6326, 29271, -2201,
- -627, 6317, 29278, -2200, -625, 6308, 29284, -2199, -624, 6298, 29292, -2198, -623, 6289, 29299, -2197,
- -622, 6280, 29306, -2196, -621, 6271, 29313, -2195, -620, 6261, 29321, -2194, -618, 6252, 29327, -2193,
- -617, 6243, 29334, -2192, -616, 6233, 29342, -2191, -615, 6224, 29349, -2190, -614, 6215, 29356, -2189,
- -613, 6206, 29363, -2188, -611, 6196, 29369, -2186, -610, 6187, 29376, -2185, -609, 6178, 29383, -2184,
- -608, 6168, 29391, -2183, -607, 6159, 29398, -2182, -605, 6150, 29404, -2181, -604, 6141, 29411, -2180,
- -603, 6131, 29419, -2179, -602, 6122, 29426, -2178, -601, 6113, 29433, -2177, -600, 6104, 29440, -2176,
- -598, 6094, 29446, -2174, -597, 6085, 29453, -2173, -596, 6076, 29460, -2172, -595, 6067, 29467, -2171,
- -594, 6058, 29474, -2170, -593, 6048, 29482, -2169, -591, 6039, 29488, -2168, -590, 6030, 29495, -2167,
- -589, 6021, 29501, -2165, -588, 6012, 29508, -2164, -587, 6002, 29516, -2163, -586, 5993, 29523, -2162,
- -584, 5984, 29529, -2161, -583, 5975, 29536, -2160, -582, 5966, 29543, -2159, -581, 5956, 29551, -2158,
- -580, 5947, 29557, -2156, -579, 5938, 29564, -2155, -578, 5929, 29571, -2154, -576, 5920, 29577, -2153,
- -575, 5911, 29584, -2152, -574, 5902, 29591, -2151, -573, 5892, 29598, -2149, -572, 5883, 29605, -2148,
- -571, 5874, 29612, -2147, -569, 5865, 29618, -2146, -568, 5856, 29625, -2145, -567, 5847, 29632, -2144,
- -566, 5838, 29638, -2142, -565, 5829, 29645, -2141, -564, 5819, 29653, -2140, -563, 5810, 29660, -2139,
- -561, 5801, 29666, -2138, -560, 5792, 29672, -2136, -559, 5783, 29679, -2135, -558, 5774, 29686, -2134,
- -557, 5765, 29693, -2133, -556, 5756, 29700, -2132, -555, 5747, 29706, -2130, -553, 5738, 29712, -2129,
- -552, 5729, 29719, -2128, -551, 5719, 29727, -2127, -550, 5710, 29734, -2126, -549, 5701, 29740, -2124,
- -548, 5692, 29747, -2123, -547, 5683, 29754, -2122, -545, 5674, 29760, -2121, -544, 5665, 29767, -2120,
- -543, 5656, 29773, -2118, -542, 5647, 29780, -2117, -541, 5638, 29787, -2116, -540, 5629, 29794, -2115,
- -539, 5620, 29800, -2113, -538, 5611, 29807, -2112, -536, 5602, 29813, -2111, -535, 5593, 29820, -2110,
- -534, 5584, 29826, -2108, -533, 5575, 29833, -2107, -532, 5566, 29840, -2106, -531, 5557, 29847, -2105,
- -530, 5548, 29853, -2103, -529, 5539, 29860, -2102, -527, 5530, 29866, -2101, -526, 5521, 29872, -2099,
- -525, 5512, 29879, -2098, -524, 5503, 29886, -2097, -523, 5494, 29893, -2096, -522, 5485, 29899, -2094,
- -521, 5476, 29906, -2093, -520, 5467, 29913, -2092, -518, 5458, 29918, -2090, -517, 5450, 29924, -2089,
- -516, 5441, 29931, -2088, -515, 5432, 29938, -2087, -514, 5423, 29944, -2085, -513, 5414, 29951, -2084,
- -512, 5405, 29958, -2083, -511, 5396, 29964, -2081, -510, 5387, 29971, -2080, -508, 5378, 29977, -2079,
- -507, 5369, 29983, -2077, -506, 5360, 29990, -2076, -505, 5352, 29996, -2075, -504, 5343, 30002, -2073,
- -503, 5334, 30009, -2072, -502, 5325, 30016, -2071, -501, 5316, 30022, -2069, -500, 5307, 30029, -2068,
- -499, 5298, 30036, -2067, -497, 5289, 30041, -2065, -496, 5281, 30047, -2064, -495, 5272, 30054, -2063,
- -494, 5263, 30060, -2061, -493, 5254, 30067, -2060, -492, 5245, 30074, -2059, -491, 5236, 30080, -2057,
- -490, 5228, 30086, -2056, -489, 5219, 30093, -2055, -488, 5210, 30099, -2053, -486, 5201, 30105, -2052,
- -485, 5192, 30111, -2050, -484, 5184, 30117, -2049, -483, 5175, 30124, -2048, -482, 5166, 30130, -2046,
- -481, 5157, 30137, -2045, -480, 5148, 30143, -2043, -479, 5140, 30149, -2042, -478, 5131, 30156, -2041,
- -477, 5122, 30162, -2039, -476, 5113, 30169, -2038, -474, 5104, 30174, -2036, -473, 5096, 30180, -2035,
- -472, 5087, 30187, -2034, -471, 5078, 30193, -2032, -470, 5069, 30200, -2031, -469, 5061, 30205, -2029,
- -468, 5052, 30212, -2028, -467, 5043, 30219, -2027, -466, 5035, 30224, -2025, -465, 5026, 30231, -2024,
- -464, 5017, 30237, -2022, -463, 5008, 30244, -2021, -462, 5000, 30249, -2019, -460, 4991, 30255, -2018,
- -459, 4982, 30262, -2017, -458, 4974, 30267, -2015, -457, 4965, 30274, -2014, -456, 4956, 30280, -2012,
- -455, 4948, 30286, -2011, -454, 4939, 30292, -2009, -453, 4930, 30299, -2008, -452, 4921, 30305, -2006,
- -451, 4913, 30311, -2005, -450, 4904, 30317, -2003, -449, 4896, 30323, -2002, -448, 4887, 30329, -2000,
- -447, 4878, 30336, -1999, -446, 4870, 30342, -1998, -444, 4861, 30347, -1996, -443, 4852, 30354, -1995,
- -442, 4844, 30359, -1993, -441, 4835, 30366, -1992, -440, 4826, 30372, -1990, -439, 4818, 30378, -1989,
- -438, 4809, 30384, -1987, -437, 4801, 30390, -1986, -436, 4792, 30396, -1984, -435, 4783, 30403, -1983,
- -434, 4775, 30408, -1981, -433, 4766, 30415, -1980, -432, 4758, 30420, -1978, -431, 4749, 30427, -1977,
- -430, 4741, 30432, -1975, -429, 4732, 30438, -1973, -428, 4723, 30445, -1972, -427, 4715, 30450, -1970,
- -426, 4706, 30457, -1969, -425, 4698, 30462, -1967, -423, 4689, 30468, -1966, -422, 4681, 30473, -1964,
- -421, 4672, 30480, -1963, -420, 4664, 30485, -1961, -419, 4655, 30492, -1960, -418, 4647, 30497, -1958,
- -417, 4638, 30503, -1956, -416, 4630, 30509, -1955, -415, 4621, 30515, -1953, -414, 4613, 30521, -1952,
- -413, 4604, 30527, -1950, -412, 4596, 30533, -1949, -411, 4587, 30539, -1947, -410, 4579, 30545, -1946,
- -409, 4570, 30551, -1944, -408, 4562, 30556, -1942, -407, 4553, 30563, -1941, -406, 4545, 30568, -1939,
- -405, 4536, 30575, -1938, -404, 4528, 30580, -1936, -403, 4519, 30586, -1934, -402, 4511, 30592, -1933,
- -401, 4502, 30598, -1931, -400, 4494, 30604, -1930, -399, 4486, 30609, -1928, -398, 4477, 30615, -1926,
- -397, 4469, 30621, -1925, -396, 4460, 30627, -1923, -395, 4452, 30633, -1922, -394, 4443, 30639, -1920,
- -393, 4435, 30644, -1918, -392, 4427, 30650, -1917, -391, 4418, 30656, -1915, -390, 4410, 30661, -1913,
- -389, 4402, 30667, -1912, -388, 4393, 30673, -1910, -387, 4385, 30678, -1908, -386, 4376, 30685, -1907,
- -385, 4368, 30690, -1905, -384, 4360, 30695, -1903, -383, 4351, 30702, -1902, -382, 4343, 30707, -1900,
- -381, 4335, 30713, -1899, -380, 4326, 30719, -1897, -379, 4318, 30724, -1895, -378, 4310, 30730, -1894,
- -377, 4301, 30736, -1892, -376, 4293, 30741, -1890, -375, 4285, 30746, -1888, -374, 4276, 30753, -1887,
- -373, 4268, 30758, -1885, -372, 4260, 30763, -1883, -371, 4252, 30769, -1882, -370, 4243, 30775, -1880,
- -369, 4235, 30780, -1878, -368, 4227, 30786, -1877, -367, 4218, 30792, -1875, -366, 4210, 30797, -1873,
- -365, 4202, 30803, -1872, -364, 4194, 30808, -1870, -363, 4185, 30814, -1868, -362, 4177, 30819, -1866,
- -361, 4169, 30825, -1865, -360, 4161, 30830, -1863, -359, 4152, 30836, -1861, -358, 4144, 30841, -1859,
- -357, 4136, 30847, -1858, -356, 4128, 30852, -1856, -355, 4119, 30858, -1854, -354, 4111, 30864, -1853,
- -353, 4103, 30869, -1851, -352, 4095, 30874, -1849, -351, 4087, 30879, -1847, -350, 4079, 30885, -1846,
- -349, 4070, 30891, -1844, -348, 4062, 30896, -1842, -347, 4054, 30901, -1840, -346, 4046, 30907, -1839,
- -345, 4038, 30912, -1837, -344, 4029, 30918, -1835, -343, 4021, 30923, -1833, -342, 4013, 30928, -1831,
- -341, 4005, 30934, -1830, -340, 3997, 30939, -1828, -339, 3989, 30944, -1826, -338, 3981, 30949, -1824,
- -338, 3973, 30956, -1823, -337, 3964, 30962, -1821, -336, 3956, 30967, -1819, -335, 3948, 30972, -1817,
- -334, 3940, 30977, -1815, -333, 3932, 30982, -1813, -332, 3924, 30988, -1812, -331, 3916, 30993, -1810,
- -330, 3908, 30998, -1808, -329, 3900, 31003, -1806, -328, 3892, 31008, -1804, -327, 3883, 31015, -1803,
- -326, 3875, 31020, -1801, -325, 3867, 31025, -1799, -324, 3859, 31030, -1797, -323, 3851, 31035, -1795,
- -322, 3843, 31040, -1793, -321, 3835, 31046, -1792, -320, 3827, 31051, -1790, -320, 3819, 31057, -1788,
- -319, 3811, 31062, -1786, -318, 3803, 31067, -1784, -317, 3795, 31072, -1782, -316, 3787, 31077, -1780,
- -315, 3779, 31083, -1779, -314, 3771, 31088, -1777, -313, 3763, 31093, -1775, -312, 3755, 31098, -1773,
- -311, 3747, 31103, -1771, -310, 3739, 31108, -1769, -309, 3731, 31113, -1767, -308, 3723, 31118, -1765,
- -307, 3715, 31124, -1764, -306, 3707, 31129, -1762, -306, 3699, 31135, -1760, -305, 3691, 31140, -1758,
- -304, 3683, 31145, -1756, -303, 3676, 31149, -1754, -302, 3668, 31154, -1752, -301, 3660, 31159, -1750,
- -300, 3652, 31164, -1748, -299, 3644, 31169, -1746, -298, 3636, 31175, -1745, -297, 3628, 31180, -1743,
- -296, 3620, 31185, -1741, -296, 3612, 31191, -1739, -295, 3604, 31196, -1737, -294, 3596, 31201, -1735,
- -293, 3589, 31205, -1733, -292, 3581, 31210, -1731, -291, 3573, 31215, -1729, -290, 3565, 31220, -1727,
- -289, 3557, 31225, -1725, -288, 3549, 31230, -1723, -287, 3541, 31235, -1721, -286, 3534, 31239, -1719,
- -286, 3526, 31245, -1717, -285, 3518, 31250, -1715, -284, 3510, 31255, -1713, -283, 3502, 31260, -1711,
- -282, 3495, 31264, -1709, -281, 3487, 31270, -1708, -280, 3479, 31275, -1706, -279, 3471, 31280, -1704,
- -278, 3463, 31285, -1702, -278, 3456, 31290, -1700, -277, 3448, 31295, -1698, -276, 3440, 31300, -1696,
- -275, 3432, 31305, -1694, -274, 3424, 31310, -1692, -273, 3417, 31314, -1690, -272, 3409, 31319, -1688,
- -271, 3401, 31324, -1686, -270, 3393, 31329, -1684, -270, 3386, 31334, -1682, -269, 3378, 31339, -1680,
- -268, 3370, 31343, -1677, -267, 3363, 31347, -1675, -266, 3355, 31352, -1673, -265, 3347, 31357, -1671,
- -264, 3339, 31362, -1669, -264, 3332, 31367, -1667, -263, 3324, 31372, -1665, -262, 3316, 31377, -1663,
- -261, 3309, 31381, -1661, -260, 3301, 31386, -1659, -259, 3293, 31391, -1657, -258, 3286, 31395, -1655,
- -257, 3278, 31400, -1653, -257, 3270, 31406, -1651, -256, 3263, 31410, -1649, -255, 3255, 31415, -1647,
- -254, 3247, 31420, -1645, -253, 3240, 31424, -1643, -252, 3232, 31429, -1641, -251, 3224, 31433, -1638,
- -251, 3217, 31438, -1636, -250, 3209, 31443, -1634, -249, 3202, 31447, -1632, -248, 3194, 31452, -1630,
- -247, 3186, 31457, -1628, -246, 3179, 31461, -1626, -246, 3171, 31467, -1624, -245, 3164, 31471, -1622,
- -244, 3156, 31476, -1620, -243, 3149, 31479, -1617, -242, 3141, 31484, -1615, -241, 3133, 31489, -1613,
- -240, 3126, 31493, -1611, -240, 3118, 31499, -1609, -239, 3111, 31503, -1607, -238, 3103, 31508, -1605,
- -237, 3096, 31512, -1603, -236, 3088, 31516, -1600, -235, 3081, 31520, -1598, -235, 3073, 31526, -1596,
- -234, 3066, 31530, -1594, -233, 3058, 31535, -1592, -232, 3051, 31539, -1590, -231, 3043, 31544, -1588,
- -231, 3036, 31548, -1585, -230, 3028, 31553, -1583, -229, 3021, 31557, -1581, -228, 3013, 31562, -1579,
- -227, 3006, 31566, -1577, -226, 2998, 31571, -1575, -226, 2991, 31575, -1572, -225, 2983, 31580, -1570,
- -224, 2976, 31584, -1568, -223, 2969, 31588, -1566, -222, 2961, 31593, -1564, -222, 2954, 31597, -1561,
- -221, 2946, 31602, -1559, -220, 2939, 31606, -1557, -219, 2931, 31611, -1555, -218, 2924, 31615, -1553,
- -218, 2917, 31619, -1550, -217, 2909, 31624, -1548, -216, 2902, 31628, -1546, -215, 2895, 31632, -1544,
- -214, 2887, 31637, -1542, -214, 2880, 31641, -1539, -213, 2872, 31646, -1537, -212, 2865, 31650, -1535,
- -211, 2858, 31654, -1533, -210, 2850, 31658, -1530, -210, 2843, 31663, -1528, -209, 2836, 31667, -1526,
- -208, 2828, 31672, -1524, -207, 2821, 31675, -1521, -206, 2814, 31679, -1519, -206, 2806, 31685, -1517,
- -205, 2799, 31689, -1515, -204, 2792, 31692, -1512, -203, 2785, 31696, -1510, -203, 2777, 31702, -1508,
- -202, 2770, 31706, -1506, -201, 2763, 31709, -1503, -200, 2755, 31714, -1501, -199, 2748, 31718, -1499,
- -199, 2741, 31722, -1496, -198, 2734, 31726, -1494, -197, 2726, 31731, -1492, -196, 2719, 31734, -1489,
- -196, 2712, 31739, -1487, -195, 2705, 31743, -1485, -194, 2697, 31748, -1483, -193, 2690, 31751, -1480,
- -192, 2683, 31755, -1478, -192, 2676, 31760, -1476, -191, 2669, 31763, -1473, -190, 2661, 31768, -1471,
- -189, 2654, 31772, -1469, -189, 2647, 31776, -1466, -188, 2640, 31780, -1464, -187, 2633, 31784, -1462,
- -186, 2626, 31787, -1459, -186, 2618, 31793, -1457, -185, 2611, 31797, -1455, -184, 2604, 31800, -1452,
- -183, 2597, 31804, -1450, -183, 2590, 31809, -1448, -182, 2583, 31812, -1445, -181, 2576, 31816, -1443,
- -180, 2568, 31820, -1440, -180, 2561, 31825, -1438, -179, 2554, 31829, -1436, -178, 2547, 31832, -1433,
- -177, 2540, 31836, -1431, -177, 2533, 31841, -1429, -176, 2526, 31844, -1426, -175, 2519, 31848, -1424,
- -175, 2512, 31852, -1421, -174, 2505, 31856, -1419, -173, 2498, 31860, -1417, -172, 2491, 31863, -1414,
- -172, 2483, 31869, -1412, -171, 2476, 31872, -1409, -170, 2469, 31876, -1407, -169, 2462, 31880, -1405,
- -169, 2455, 31884, -1402, -168, 2448, 31888, -1400, -167, 2441, 31891, -1397, -167, 2434, 31896, -1395,
- -166, 2427, 31899, -1392, -165, 2420, 31903, -1390, -164, 2413, 31907, -1388, -164, 2406, 31911, -1385,
- -163, 2399, 31915, -1383, -162, 2392, 31918, -1380, -162, 2385, 31923, -1378, -161, 2378, 31926, -1375,
- -160, 2371, 31930, -1373, -159, 2365, 31932, -1370, -159, 2358, 31937, -1368, -158, 2351, 31941, -1366,
- -157, 2344, 31944, -1363, -157, 2337, 31949, -1361, -156, 2330, 31952, -1358, -155, 2323, 31956, -1356,
- -155, 2316, 31960, -1353, -154, 2309, 31964, -1351, -153, 2302, 31967, -1348, -153, 2295, 31972, -1346,
- -152, 2289, 31974, -1343, -151, 2282, 31978, -1341, -150, 2275, 31981, -1338, -150, 2268, 31986, -1336,
- -149, 2261, 31989, -1333, -148, 2254, 31993, -1331, -148, 2247, 31997, -1328, -147, 2241, 32000, -1326,
- -146, 2234, 32003, -1323, -146, 2227, 32008, -1321, -145, 2220, 32011, -1318, -144, 2213, 32014, -1315,
- -144, 2206, 32019, -1313, -143, 2200, 32021, -1310, -142, 2193, 32025, -1308, -142, 2186, 32029, -1305,
- -141, 2179, 32033, -1303, -140, 2172, 32036, -1300, -140, 2166, 32040, -1298, -139, 2159, 32043, -1295,
- -138, 2152, 32047, -1293, -138, 2145, 32051, -1290, -137, 2139, 32053, -1287, -136, 2132, 32057, -1285,
- -136, 2125, 32061, -1282, -135, 2118, 32065, -1280, -134, 2112, 32067, -1277, -134, 2105, 32071, -1274,
- -133, 2098, 32075, -1272, -132, 2092, 32077, -1269, -132, 2085, 32082, -1267, -131, 2078, 32085, -1264,
- -131, 2072, 32089, -1262, -130, 2065, 32092, -1259, -129, 2058, 32095, -1256, -129, 2051, 32100, -1254,
- -128, 2045, 32102, -1251, -127, 2038, 32105, -1248, -127, 2032, 32109, -1246, -126, 2025, 32112, -1243,
- -125, 2018, 32116, -1241, -125, 2012, 32119, -1238, -124, 2005, 32122, -1235, -123, 1998, 32126, -1233,
- -123, 1992, 32129, -1230, -122, 1985, 32132, -1227, -122, 1979, 32136, -1225, -121, 1972, 32139, -1222,
- -120, 1965, 32142, -1219, -120, 1959, 32146, -1217, -119, 1952, 32149, -1214, -119, 1946, 32152, -1211,
- -118, 1939, 32156, -1209, -117, 1933, 32158, -1206, -117, 1926, 32162, -1203, -116, 1919, 32166, -1201,
- -115, 1913, 32168, -1198, -115, 1906, 32172, -1195, -114, 1900, 32175, -1193, -114, 1893, 32179, -1190,
- -113, 1887, 32181, -1187, -112, 1880, 32185, -1185, -112, 1874, 32188, -1182, -111, 1867, 32191, -1179,
- -111, 1861, 32194, -1176, -110, 1854, 32198, -1174, -109, 1848, 32200, -1171, -109, 1841, 32204, -1168,
- -108, 1835, 32207, -1166, -108, 1828, 32211, -1163, -107, 1822, 32213, -1160, -106, 1816, 32215, -1157,
- -106, 1809, 32220, -1155, -105, 1803, 32222, -1152, -105, 1796, 32226, -1149, -104, 1790, 32228, -1146,
- -104, 1783, 32233, -1144, -103, 1777, 32235, -1141, -102, 1771, 32237, -1138, -102, 1764, 32241, -1135,
- -101, 1758, 32244, -1133, -101, 1751, 32248, -1130, -100, 1745, 32250, -1127, -99, 1739, 32252, -1124,
- -99, 1732, 32256, -1121, -98, 1726, 32259, -1119, -98, 1720, 32262, -1116, -97, 1713, 32265, -1113,
- -97, 1707, 32268, -1110, -96, 1701, 32270, -1107, -96, 1694, 32275, -1105, -95, 1688, 32277, -1102,
- -94, 1682, 32279, -1099, -94, 1675, 32283, -1096, -93, 1669, 32285, -1093, -93, 1663, 32289, -1091,
- -92, 1657, 32291, -1088, -92, 1650, 32295, -1085, -91, 1644, 32297, -1082, -91, 1638, 32300, -1079,
- -90, 1631, 32303, -1076, -89, 1625, 32306, -1074, -89, 1619, 32309, -1071, -88, 1613, 32311, -1068,
- -88, 1607, 32314, -1065, -87, 1600, 32317, -1062, -87, 1594, 32320, -1059, -86, 1588, 32323, -1057,
- -86, 1582, 32326, -1054, -85, 1575, 32329, -1051, -85, 1569, 32332, -1048, -84, 1563, 32334, -1045,
- -84, 1557, 32337, -1042, -83, 1551, 32339, -1039, -82, 1545, 32341, -1036, -82, 1538, 32346, -1034,
- -81, 1532, 32348, -1031, -81, 1526, 32351, -1028, -80, 1520, 32353, -1025, -80, 1514, 32356, -1022,
- -79, 1508, 32358, -1019, -79, 1502, 32361, -1016, -78, 1495, 32364, -1013, -78, 1489, 32367, -1010,
- -77, 1483, 32369, -1007, -77, 1477, 32372, -1004, -76, 1471, 32375, -1002, -76, 1465, 32378, -999,
- -75, 1459, 32380, -996, -75, 1453, 32383, -993, -74, 1447, 32385, -990, -74, 1441, 32388, -987,
- -73, 1435, 32390, -984, -73, 1429, 32393, -981, -72, 1423, 32395, -978, -72, 1417, 32398, -975,
- -71, 1411, 32400, -972, -71, 1405, 32403, -969, -70, 1399, 32405, -966, -70, 1393, 32408, -963,
- -69, 1387, 32410, -960, -69, 1381, 32413, -957, -68, 1375, 32415, -954, -68, 1369, 32418, -951,
- -67, 1363, 32420, -948, -67, 1357, 32423, -945, -66, 1351, 32425, -942, -66, 1345, 32428, -939,
- -66, 1339, 32431, -936, -65, 1333, 32433, -933, -65, 1327, 32436, -930, -64, 1321, 32438, -927,
- -64, 1315, 32441, -924, -63, 1309, 32443, -921, -63, 1303, 32446, -918, -62, 1297, 32448, -915,
- -62, 1291, 32451, -912, -61, 1286, 32452, -909, -61, 1280, 32455, -906, -60, 1274, 32457, -903,
- -60, 1268, 32460, -900, -60, 1262, 32463, -897, -59, 1256, 32465, -894, -59, 1250, 32468, -891,
- -58, 1245, 32469, -888, -58, 1239, 32472, -885, -57, 1233, 32474, -882, -57, 1227, 32477, -879,
- -56, 1221, 32479, -876, -56, 1216, 32480, -872, -56, 1210, 32483, -869, -55, 1204, 32485, -866,
- -55, 1198, 32488, -863, -54, 1192, 32490, -860, -54, 1187, 32492, -857, -53, 1181, 32494, -854,
- -53, 1175, 32497, -851, -53, 1169, 32500, -848, -52, 1164, 32501, -845, -52, 1158, 32503, -841,
- -51, 1152, 32505, -838, -51, 1146, 32508, -835, -50, 1141, 32509, -832, -50, 1135, 32512, -829,
- -50, 1129, 32515, -826, -49, 1124, 32516, -823, -49, 1118, 32519, -820, -48, 1112, 32520, -816,
- -48, 1107, 32522, -813, -48, 1101, 32525, -810, -47, 1095, 32527, -807, -47, 1090, 32529, -804,
- -46, 1084, 32531, -801, -46, 1078, 32534, -798, -46, 1073, 32535, -794, -45, 1067, 32537, -791,
- -45, 1061, 32540, -788, -44, 1056, 32541, -785, -44, 1050, 32544, -782, -44, 1045, 32545, -778,
- -43, 1039, 32547, -775, -43, 1033, 32550, -772, -42, 1028, 32551, -769, -42, 1022, 32554, -766,
- -42, 1017, 32555, -762, -41, 1011, 32557, -759, -41, 1006, 32559, -756, -40, 1000, 32561, -753,
- -40, 995, 32563, -750, -40, 989, 32565, -746, -39, 984, 32566, -743, -39, 978, 32569, -740,
- -39, 972, 32572, -737, -38, 967, 32573, -734, -38, 961, 32575, -730, -38, 956, 32577, -727,
- -37, 951, 32578, -724, -37, 945, 32581, -721, -36, 940, 32581, -717, -36, 934, 32584, -714,
- -36, 929, 32586, -711, -35, 923, 32588, -708, -35, 918, 32589, -704, -35, 912, 32592, -701,
- -34, 907, 32593, -698, -34, 902, 32594, -694, -34, 896, 32597, -691, -33, 891, 32598, -688,
- -33, 885, 32601, -685, -33, 880, 32602, -681, -32, 875, 32603, -678, -32, 869, 32606, -675,
- -32, 864, 32607, -671, -31, 858, 32609, -668, -31, 853, 32611, -665, -31, 848, 32612, -661,
- -30, 842, 32614, -658, -30, 837, 32616, -655, -30, 832, 32617, -651, -29, 826, 32619, -648,
- -29, 821, 32621, -645, -29, 816, 32622, -641, -28, 810, 32624, -638, -28, 805, 32626, -635,
- -28, 800, 32627, -631, -27, 795, 32628, -628, -27, 789, 32631, -625, -27, 784, 32632, -621,
- -26, 779, 32633, -618, -26, 774, 32635, -615, -26, 768, 32637, -611, -26, 763, 32639, -608,
- -25, 758, 32640, -605, -25, 753, 32641, -601, -25, 747, 32644, -598, -24, 742, 32644, -594,
- -24, 737, 32646, -591, -24, 732, 32648, -588, -23, 727, 32648, -584, -23, 722, 32650, -581,
- -23, 716, 32652, -577, -23, 711, 32654, -574, -22, 706, 32655, -571, -22, 701, 32656, -567,
- -22, 696, 32658, -564, -21, 691, 32658, -560, -21, 685, 32661, -557, -21, 680, 32662, -553,
- -21, 675, 32664, -550, -20, 670, 32665, -547, -20, 665, 32666, -543, -20, 660, 32668, -540,
- -20, 655, 32669, -536, -19, 650, 32670, -533, -19, 645, 32671, -529, -19, 640, 32673, -526,
- -18, 635, 32673, -522, -18, 630, 32675, -519, -18, 625, 32676, -515, -18, 619, 32679, -512,
- -17, 614, 32679, -508, -17, 609, 32681, -505, -17, 604, 32683, -502, -17, 599, 32684, -498,
- -16, 594, 32685, -495, -16, 589, 32686, -491, -16, 584, 32688, -488, -16, 579, 32689, -484,
- -16, 575, 32690, -481, -15, 570, 32690, -477, -15, 565, 32691, -473, -15, 560, 32693, -470,
- -15, 555, 32694, -466, -14, 550, 32695, -463, -14, 545, 32696, -459, -14, 540, 32698, -456,
- -14, 535, 32699, -452, -13, 530, 32700, -449, -13, 525, 32701, -445, -13, 520, 32703, -442,
- -13, 515, 32704, -438, -13, 511, 32705, -435, -12, 506, 32705, -431, -12, 501, 32706, -427,
- -12, 496, 32708, -424, -12, 491, 32709, -420, -11, 486, 32710, -417, -11, 481, 32711, -413,
- -11, 477, 32712, -410, -11, 472, 32713, -406, -11, 467, 32714, -402, -10, 462, 32715, -399,
- -10, 457, 32716, -395, -10, 453, 32717, -392, -10, 448, 32718, -388, -10, 443, 32719, -384,
- -10, 438, 32721, -381, -9, 434, 32720, -377, -9, 429, 32721, -373, -9, 424, 32723, -370,
- -9, 419, 32724, -366, -9, 415, 32725, -363, -8, 410, 32725, -359, -8, 405, 32726, -355,
- -8, 401, 32727, -352, -8, 396, 32728, -348, -8, 391, 32729, -344, -8, 386, 32731, -341,
- -7, 382, 32730, -337, -7, 377, 32731, -333, -7, 372, 32733, -330, -7, 368, 32733, -326,
- -7, 363, 32734, -322, -7, 359, 32735, -319, -6, 354, 32735, -315, -6, 349, 32736, -311,
- -6, 345, 32737, -308, -6, 340, 32738, -304, -6, 335, 32739, -300, -6, 331, 32740, -297,
- -6, 326, 32741, -293, -5, 322, 32740, -289, -5, 317, 32741, -285, -5, 313, 32742, -282,
- -5, 308, 32743, -278, -5, 303, 32744, -274, -5, 299, 32745, -271, -5, 294, 32746, -267,
- -4, 290, 32745, -263, -4, 285, 32746, -259, -4, 281, 32747, -256, -4, 276, 32748, -252,
- -4, 272, 32748, -248, -4, 267, 32749, -244, -4, 263, 32750, -241, -4, 258, 32751, -237,
- -3, 254, 32750, -233, -3, 249, 32751, -229, -3, 245, 32751, -225, -3, 241, 32752, -222,
- -3, 236, 32753, -218, -3, 232, 32753, -214, -3, 227, 32754, -210, -3, 223, 32755, -207,
- -3, 218, 32756, -203, -3, 214, 32756, -199, -2, 210, 32755, -195, -2, 205, 32756, -191,
- -2, 201, 32757, -188, -2, 197, 32757, -184, -2, 192, 32758, -180, -2, 188, 32758, -176,
- -2, 184, 32758, -172, -2, 179, 32759, -168, -2, 175, 32760, -165, -2, 171, 32760, -161,
- -2, 166, 32761, -157, -1, 162, 32760, -153, -1, 158, 32760, -149, -1, 153, 32761, -145,
- -1, 149, 32761, -141, -1, 145, 32762, -138, -1, 140, 32763, -134, -1, 136, 32763, -130,
- -1, 132, 32763, -126, -1, 128, 32763, -122, -1, 123, 32764, -118, -1, 119, 32764, -114,
- -1, 115, 32764, -110, -1, 111, 32765, -107, -1, 107, 32765, -103, -1, 102, 32766, -99,
- -1, 98, 32766, -95, -1, 94, 32766, -91, 0, 90, 32765, -87, 0, 86, 32765, -83,
- 0, 82, 32765, -79, 0, 77, 32766, -75, 0, 73, 32766, -71, 0, 69, 32766, -67,
- 0, 65, 32767, -64, 0, 61, 32767, -60, 0, 57, 32767, -56, 0, 53, 32767, -52,
- 0, 49, 32767, -48, 0, 44, 32767, -44, 0, 40, 32767, -40, 0, 36, 32767, -36,
- 0, 32, 32767, -32, 0, 28, 32767, -28, 0, 24, 32767, -24, 0, 20, 32767, -20,
- 0, 16, 32767, -16, 0, 12, 32767, -12, 0, 8, 32767, -8, 0, 4, 32767, -4
-};
-
-#else
-
-// for non-x86_64 CPUs: 15-bit precision, 1024 phases (less hard on the CPU cache)
-
-const int16_t cubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES] =
-{
- 0, 32767, 0, 0, -16, 32767, 16, 0, -32, 32767, 32, 0, -48, 32767, 49, 0,
- -64, 32767, 65, 0, -79, 32765, 82, 0, -95, 32766, 98, -1, -110, 32764, 115, -1,
- -126, 32763, 132, -1, -141, 32761, 149, -1, -157, 32761, 166, -2, -172, 32758, 184, -2,
- -188, 32757, 201, -2, -203, 32756, 218, -3, -218, 32753, 236, -3, -233, 32750, 254, -3,
- -248, 32748, 272, -4, -263, 32745, 290, -4, -278, 32743, 308, -5, -293, 32741, 326, -6,
- -308, 32737, 345, -6, -322, 32734, 363, -7, -337, 32730, 382, -7, -352, 32727, 401, -8,
- -366, 32724, 419, -9, -381, 32721, 438, -10, -395, 32716, 457, -10, -410, 32712, 477, -11,
- -424, 32708, 496, -12, -438, 32704, 515, -13, -452, 32699, 535, -14, -466, 32694, 555, -15,
- -481, 32690, 575, -16, -495, 32685, 594, -16, -508, 32679, 614, -17, -522, 32673, 635, -18,
- -536, 32669, 655, -20, -550, 32664, 675, -21, -564, 32658, 696, -22, -577, 32652, 716, -23,
- -591, 32646, 737, -24, -605, 32640, 758, -25, -618, 32633, 779, -26, -631, 32627, 800, -28,
- -645, 32621, 821, -29, -658, 32614, 842, -30, -671, 32607, 864, -32, -685, 32601, 885, -33,
- -698, 32593, 907, -34, -711, 32586, 929, -36, -724, 32578, 951, -37, -737, 32572, 972, -39,
- -750, 32563, 995, -40, -762, 32555, 1017, -42, -775, 32547, 1039, -43, -788, 32540, 1061, -45,
- -801, 32531, 1084, -46, -813, 32522, 1107, -48, -826, 32515, 1129, -50, -838, 32505, 1152, -51,
- -851, 32497, 1175, -53, -863, 32488, 1198, -55, -876, 32479, 1221, -56, -888, 32469, 1245, -58,
- -900, 32460, 1268, -60, -912, 32451, 1291, -62, -924, 32441, 1315, -64, -936, 32431, 1339, -66,
- -948, 32420, 1363, -67, -960, 32410, 1387, -69, -972, 32400, 1411, -71, -984, 32390, 1435, -73,
- -996, 32380, 1459, -75, -1007, 32369, 1483, -77, -1019, 32358, 1508, -79, -1031, 32348, 1532, -81,
- -1042, 32337, 1557, -84, -1054, 32326, 1582, -86, -1065, 32314, 1607, -88, -1076, 32303, 1631, -90,
- -1088, 32291, 1657, -92, -1099, 32279, 1682, -94, -1110, 32268, 1707, -97, -1121, 32256, 1732, -99,
- -1133, 32244, 1758, -101, -1144, 32233, 1783, -104, -1155, 32220, 1809, -106, -1166, 32207, 1835, -108,
- -1176, 32194, 1861, -111, -1187, 32181, 1887, -113, -1198, 32168, 1913, -115, -1209, 32156, 1939, -118,
- -1219, 32142, 1965, -120, -1230, 32129, 1992, -123, -1241, 32116, 2018, -125, -1251, 32102, 2045, -128,
- -1262, 32089, 2072, -131, -1272, 32075, 2098, -133, -1282, 32061, 2125, -136, -1293, 32047, 2152, -138,
- -1303, 32033, 2179, -141, -1313, 32019, 2206, -144, -1323, 32003, 2234, -146, -1333, 31989, 2261, -149,
- -1343, 31974, 2289, -152, -1353, 31960, 2316, -155, -1363, 31944, 2344, -157, -1373, 31930, 2371, -160,
- -1383, 31915, 2399, -163, -1392, 31899, 2427, -166, -1402, 31884, 2455, -169, -1412, 31869, 2483, -172,
- -1421, 31852, 2512, -175, -1431, 31836, 2540, -177, -1440, 31820, 2568, -180, -1450, 31804, 2597, -183,
- -1459, 31787, 2626, -186, -1469, 31772, 2654, -189, -1478, 31755, 2683, -192, -1487, 31739, 2712, -196,
- -1496, 31722, 2741, -199, -1506, 31706, 2770, -202, -1515, 31689, 2799, -205, -1524, 31672, 2828, -208,
- -1533, 31654, 2858, -211, -1542, 31637, 2887, -214, -1550, 31619, 2917, -218, -1559, 31602, 2946, -221,
- -1568, 31584, 2976, -224, -1577, 31566, 3006, -227, -1585, 31548, 3036, -231, -1594, 31530, 3066, -234,
- -1603, 31512, 3096, -237, -1611, 31493, 3126, -240, -1620, 31476, 3156, -244, -1628, 31457, 3186, -247,
- -1636, 31438, 3217, -251, -1645, 31420, 3247, -254, -1653, 31400, 3278, -257, -1661, 31381, 3309, -261,
- -1669, 31362, 3339, -264, -1677, 31343, 3370, -268, -1686, 31324, 3401, -271, -1694, 31305, 3432, -275,
- -1702, 31285, 3463, -278, -1709, 31264, 3495, -282, -1717, 31245, 3526, -286, -1725, 31225, 3557, -289,
- -1733, 31205, 3589, -293, -1741, 31185, 3620, -296, -1748, 31164, 3652, -300, -1756, 31145, 3683, -304,
- -1764, 31124, 3715, -307, -1771, 31103, 3747, -311, -1779, 31083, 3779, -315, -1786, 31062, 3811, -319,
- -1793, 31040, 3843, -322, -1801, 31020, 3875, -326, -1808, 30998, 3908, -330, -1815, 30977, 3940, -334,
- -1823, 30956, 3973, -338, -1830, 30934, 4005, -341, -1837, 30912, 4038, -345, -1844, 30891, 4070, -349,
- -1851, 30869, 4103, -353, -1858, 30847, 4136, -357, -1865, 30825, 4169, -361, -1872, 30803, 4202, -365,
- -1878, 30780, 4235, -369, -1885, 30758, 4268, -373, -1892, 30736, 4301, -377, -1899, 30713, 4335, -381,
- -1905, 30690, 4368, -385, -1912, 30667, 4402, -389, -1918, 30644, 4435, -393, -1925, 30621, 4469, -397,
- -1931, 30598, 4502, -401, -1938, 30575, 4536, -405, -1944, 30551, 4570, -409, -1950, 30527, 4604, -413,
- -1956, 30503, 4638, -417, -1963, 30480, 4672, -421, -1969, 30457, 4706, -426, -1975, 30432, 4741, -430,
- -1981, 30408, 4775, -434, -1987, 30384, 4809, -438, -1993, 30359, 4844, -442, -1999, 30336, 4878, -447,
- -2005, 30311, 4913, -451, -2011, 30286, 4948, -455, -2017, 30262, 4982, -459, -2022, 30237, 5017, -464,
- -2028, 30212, 5052, -468, -2034, 30187, 5087, -472, -2039, 30162, 5122, -477, -2045, 30137, 5157, -481,
- -2050, 30111, 5192, -485, -2056, 30086, 5228, -490, -2061, 30060, 5263, -494, -2067, 30036, 5298, -499,
- -2072, 30009, 5334, -503, -2077, 29983, 5369, -507, -2083, 29958, 5405, -512, -2088, 29931, 5441, -516,
- -2093, 29906, 5476, -521, -2098, 29879, 5512, -525, -2103, 29853, 5548, -530, -2108, 29826, 5584, -534,
- -2113, 29800, 5620, -539, -2118, 29773, 5656, -543, -2123, 29747, 5692, -548, -2128, 29719, 5729, -552,
- -2133, 29693, 5765, -557, -2138, 29666, 5801, -561, -2142, 29638, 5838, -566, -2147, 29612, 5874, -571,
- -2152, 29584, 5911, -575, -2156, 29557, 5947, -580, -2161, 29529, 5984, -584, -2165, 29501, 6021, -589,
- -2170, 29474, 6058, -594, -2174, 29446, 6094, -598, -2179, 29419, 6131, -603, -2183, 29391, 6168, -608,
- -2188, 29363, 6206, -613, -2192, 29334, 6243, -617, -2196, 29306, 6280, -622, -2200, 29278, 6317, -627,
- -2204, 29249, 6354, -631, -2208, 29220, 6392, -636, -2213, 29193, 6429, -641, -2217, 29164, 6467, -646,
- -2221, 29135, 6504, -650, -2224, 29105, 6542, -655, -2228, 29076, 6580, -660, -2232, 29048, 6617, -665,
- -2236, 29019, 6655, -670, -2240, 28990, 6693, -675, -2244, 28960, 6731, -679, -2247, 28930, 6769, -684,
- -2251, 28901, 6807, -689, -2255, 28872, 6845, -694, -2258, 28842, 6883, -699, -2262, 28812, 6922, -704,
- -2265, 28782, 6960, -709, -2269, 28752, 6998, -713, -2272, 28721, 7037, -718, -2275, 28691, 7075, -723,
- -2279, 28661, 7114, -728, -2282, 28631, 7152, -733, -2285, 28600, 7191, -738, -2289, 28570, 7230, -743,
- -2292, 28540, 7268, -748, -2295, 28509, 7307, -753, -2298, 28478, 7346, -758, -2301, 28447, 7385, -763,
- -2304, 28416, 7424, -768, -2307, 28385, 7463, -773, -2310, 28354, 7502, -778, -2313, 28323, 7541, -783,
- -2316, 28292, 7580, -788, -2319, 28260, 7620, -793, -2321, 28228, 7659, -798, -2324, 28197, 7698, -803,
- -2327, 28165, 7738, -808, -2329, 28133, 7777, -813, -2332, 28101, 7817, -818, -2335, 28070, 7856, -823,
- -2337, 28038, 7896, -829, -2340, 28006, 7936, -834, -2342, 27974, 7975, -839, -2345, 27942, 8015, -844,
- -2347, 27909, 8055, -849, -2349, 27876, 8095, -854, -2352, 27844, 8135, -859, -2354, 27811, 8175, -864,
- -2356, 27778, 8215, -869, -2359, 27747, 8255, -875, -2361, 27714, 8295, -880, -2363, 27681, 8335, -885,
- -2365, 27648, 8375, -890, -2367, 27615, 8415, -895, -2369, 27581, 8456, -900, -2371, 27549, 8496, -906,
- -2373, 27516, 8536, -911, -2375, 27482, 8577, -916, -2377, 27449, 8617, -921, -2379, 27415, 8658, -926,
- -2381, 27382, 8699, -932, -2382, 27348, 8739, -937, -2384, 27314, 8780, -942, -2386, 27280, 8821, -947,
- -2387, 27246, 8861, -952, -2389, 27213, 8902, -958, -2391, 27179, 8943, -963, -2392, 27144, 8984, -968,
- -2394, 27110, 9025, -973, -2395, 27076, 9066, -979, -2397, 27042, 9107, -984, -2398, 27007, 9148, -989,
- -2399, 26972, 9189, -994, -2401, 26939, 9230, -1000, -2402, 26904, 9271, -1005, -2403, 26868, 9313, -1010,
- -2405, 26834, 9354, -1015, -2406, 26800, 9395, -1021, -2407, 26764, 9437, -1026, -2408, 26729, 9478, -1031,
- -2409, 26693, 9520, -1036, -2410, 26659, 9561, -1042, -2411, 26623, 9603, -1047, -2412, 26588, 9644, -1052,
- -2413, 26553, 9686, -1058, -2414, 26518, 9727, -1063, -2415, 26482, 9769, -1068, -2416, 26446, 9811, -1073,
- -2417, 26411, 9853, -1079, -2418, 26376, 9894, -1084, -2419, 26340, 9936, -1089, -2419, 26304, 9978, -1095,
- -2420, 26268, 10020, -1100, -2421, 26232, 10062, -1105, -2421, 26196, 10104, -1111, -2422, 26160, 10146, -1116,
- -2422, 26123, 10188, -1121, -2423, 26088, 10230, -1127, -2424, 26052, 10272, -1132, -2424, 26015, 10314, -1137,
- -2424, 25978, 10357, -1143, -2425, 25942, 10399, -1148, -2425, 25905, 10441, -1153, -2426, 25870, 10483, -1159,
- -2426, 25832, 10526, -1164, -2426, 25795, 10568, -1169, -2426, 25758, 10611, -1175, -2427, 25722, 10653, -1180,
- -2427, 25684, 10696, -1185, -2427, 25648, 10738, -1191, -2427, 25610, 10781, -1196, -2427, 25573, 10823, -1201,
- -2427, 25536, 10866, -1207, -2427, 25499, 10908, -1212, -2427, 25461, 10951, -1217, -2427, 25424, 10994, -1223,
- -2427, 25386, 11037, -1228, -2427, 25349, 11079, -1233, -2427, 25312, 11122, -1239, -2427, 25274, 11165, -1244,
- -2427, 25236, 11208, -1249, -2426, 25198, 11251, -1255, -2426, 25160, 11294, -1260, -2426, 25122, 11337, -1265,
- -2426, 25085, 11380, -1271, -2425, 25047, 11422, -1276, -2425, 25008, 11466, -1281, -2424, 24969, 11509, -1286,
- -2424, 24932, 11552, -1292, -2423, 24893, 11595, -1297, -2423, 24855, 11638, -1302, -2422, 24817, 11681, -1308,
- -2422, 24779, 11724, -1313, -2421, 24740, 11767, -1318, -2421, 24702, 11811, -1324, -2420, 24663, 11854, -1329,
- -2419, 24624, 11897, -1334, -2419, 24586, 11941, -1340, -2418, 24547, 11984, -1345, -2417, 24508, 12027, -1350,
- -2416, 24469, 12071, -1356, -2416, 24431, 12114, -1361, -2415, 24391, 12158, -1366, -2414, 24352, 12201, -1371,
- -2413, 24314, 12244, -1377, -2412, 24274, 12288, -1382, -2411, 24234, 12332, -1387, -2410, 24196, 12375, -1393,
- -2409, 24156, 12419, -1398, -2408, 24117, 12462, -1403, -2407, 24077, 12506, -1408, -2406, 24039, 12549, -1414,
- -2405, 23999, 12593, -1419, -2404, 23959, 12637, -1424, -2402, 23918, 12681, -1429, -2401, 23880, 12724, -1435,
- -2400, 23840, 12768, -1440, -2399, 23800, 12812, -1445, -2397, 23759, 12856, -1450, -2396, 23721, 12899, -1456,
- -2395, 23681, 12943, -1461, -2393, 23640, 12987, -1466, -2392, 23600, 13031, -1471, -2391, 23561, 13075, -1477,
- -2389, 23520, 13119, -1482, -2388, 23480, 13163, -1487, -2386, 23440, 13206, -1492, -2385, 23400, 13250, -1497,
- -2383, 23360, 13294, -1503, -2381, 23319, 13338, -1508, -2380, 23279, 13382, -1513, -2378, 23238, 13426, -1518,
- -2377, 23198, 13470, -1523, -2375, 23158, 13514, -1529, -2373, 23117, 13558, -1534, -2371, 23076, 13602, -1539,
- -2370, 23035, 13647, -1544, -2368, 22994, 13691, -1549, -2366, 22953, 13735, -1554, -2364, 22913, 13779, -1560,
- -2362, 22872, 13823, -1565, -2360, 22831, 13867, -1570, -2359, 22791, 13911, -1575, -2357, 22750, 13955, -1580,
- -2355, 22708, 14000, -1585, -2353, 22667, 14044, -1590, -2351, 22626, 14088, -1595, -2349, 22585, 14132, -1600,
- -2347, 22544, 14177, -1606, -2344, 22502, 14221, -1611, -2342, 22461, 14265, -1616, -2340, 22420, 14309, -1621,
- -2338, 22378, 14354, -1626, -2336, 22337, 14398, -1631, -2334, 22296, 14442, -1636, -2331, 22254, 14486, -1641,
- -2329, 22212, 14531, -1646, -2327, 22171, 14575, -1651, -2325, 22130, 14619, -1656, -2322, 22087, 14664, -1661,
- -2320, 22046, 14708, -1666, -2317, 22004, 14752, -1671, -2315, 21962, 14797, -1676, -2313, 21921, 14841, -1681,
- -2310, 21879, 14885, -1686, -2308, 21837, 14930, -1691, -2305, 21795, 14974, -1696, -2303, 21753, 15019, -1701,
- -2300, 21711, 15063, -1706, -2298, 21669, 15107, -1710, -2295, 21626, 15152, -1715, -2292, 21584, 15196, -1720,
- -2290, 21542, 15241, -1725, -2287, 21500, 15285, -1730, -2284, 21458, 15329, -1735, -2282, 21416, 15374, -1740,
- -2279, 21374, 15418, -1745, -2276, 21331, 15463, -1750, -2274, 21289, 15507, -1754, -2271, 21246, 15552, -1759,
- -2268, 21204, 15596, -1764, -2265, 21162, 15640, -1769, -2262, 21119, 15685, -1774, -2259, 21076, 15729, -1778,
- -2257, 21034, 15774, -1783, -2254, 20992, 15818, -1788, -2251, 20949, 15863, -1793, -2248, 20906, 15907, -1797,
- -2245, 20863, 15952, -1802, -2242, 20821, 15996, -1807, -2239, 20779, 16040, -1812, -2236, 20735, 16085, -1816,
- -2233, 20693, 16129, -1821, -2230, 20650, 16174, -1826, -2227, 20607, 16218, -1830, -2223, 20563, 16263, -1835,
- -2220, 20521, 16307, -1840, -2217, 20478, 16351, -1844, -2214, 20435, 16396, -1849, -2211, 20393, 16440, -1854,
- -2208, 20349, 16485, -1858, -2204, 20306, 16529, -1863, -2201, 20262, 16574, -1867, -2198, 20220, 16618, -1872,
- -2195, 20177, 16662, -1876, -2191, 20133, 16707, -1881, -2188, 20091, 16751, -1886, -2185, 20047, 16796, -1890,
- -2181, 20004, 16840, -1895, -2178, 19961, 16884, -1899, -2174, 19917, 16929, -1904, -2171, 19874, 16973, -1908,
- -2168, 19831, 17018, -1913, -2164, 19787, 17062, -1917, -2161, 19744, 17106, -1921, -2157, 19700, 17151, -1926,
- -2154, 19657, 17195, -1930, -2150, 19614, 17239, -1935, -2146, 19569, 17284, -1939, -2143, 19526, 17328, -1943,
- -2139, 19483, 17372, -1948, -2136, 19440, 17416, -1952, -2132, 19395, 17461, -1956, -2128, 19352, 17505, -1961,
- -2125, 19309, 17549, -1965, -2121, 19265, 17593, -1969, -2117, 19221, 17638, -1974, -2114, 19178, 17682, -1978,
- -2110, 19134, 17726, -1982, -2106, 19090, 17770, -1986, -2102, 19046, 17815, -1991, -2099, 19003, 17859, -1995,
- -2095, 18959, 17903, -1999, -2091, 18915, 17947, -2003, -2087, 18871, 17991, -2007, -2083, 18827, 18035, -2011,
- -2079, 18783, 18080, -2016, -2076, 18740, 18124, -2020, -2072, 18696, 18168, -2024, -2068, 18652, 18212, -2028,
- -2064, 18608, 18256, -2032, -2060, 18564, 18300, -2036, -2056, 18520, 18344, -2040, -2052, 18476, 18388, -2044,
- -2048, 18432, 18432, -2048, -2044, 18388, 18476, -2052, -2040, 18344, 18520, -2056, -2036, 18300, 18564, -2060,
- -2032, 18256, 18608, -2064, -2028, 18212, 18652, -2068, -2024, 18168, 18696, -2072, -2020, 18124, 18740, -2076,
- -2016, 18080, 18783, -2079, -2011, 18035, 18827, -2083, -2007, 17991, 18871, -2087, -2003, 17947, 18915, -2091,
- -1999, 17903, 18959, -2095, -1995, 17859, 19003, -2099, -1991, 17815, 19046, -2102, -1986, 17770, 19090, -2106,
- -1982, 17726, 19134, -2110, -1978, 17682, 19178, -2114, -1974, 17638, 19221, -2117, -1969, 17593, 19265, -2121,
- -1965, 17549, 19309, -2125, -1961, 17505, 19352, -2128, -1956, 17461, 19395, -2132, -1952, 17416, 19440, -2136,
- -1948, 17372, 19483, -2139, -1943, 17328, 19526, -2143, -1939, 17284, 19569, -2146, -1935, 17239, 19614, -2150,
- -1930, 17195, 19657, -2154, -1926, 17151, 19700, -2157, -1921, 17106, 19744, -2161, -1917, 17062, 19787, -2164,
- -1913, 17018, 19831, -2168, -1908, 16973, 19874, -2171, -1904, 16929, 19917, -2174, -1899, 16884, 19961, -2178,
- -1895, 16840, 20004, -2181, -1890, 16796, 20047, -2185, -1886, 16751, 20091, -2188, -1881, 16707, 20133, -2191,
- -1876, 16662, 20177, -2195, -1872, 16618, 20220, -2198, -1867, 16574, 20262, -2201, -1863, 16529, 20306, -2204,
- -1858, 16485, 20349, -2208, -1854, 16440, 20393, -2211, -1849, 16396, 20435, -2214, -1844, 16351, 20478, -2217,
- -1840, 16307, 20521, -2220, -1835, 16263, 20563, -2223, -1830, 16218, 20607, -2227, -1826, 16174, 20650, -2230,
- -1821, 16129, 20693, -2233, -1816, 16085, 20735, -2236, -1812, 16040, 20779, -2239, -1807, 15996, 20821, -2242,
- -1802, 15952, 20863, -2245, -1797, 15907, 20906, -2248, -1793, 15863, 20949, -2251, -1788, 15818, 20992, -2254,
- -1783, 15774, 21034, -2257, -1778, 15729, 21076, -2259, -1774, 15685, 21119, -2262, -1769, 15640, 21162, -2265,
- -1764, 15596, 21204, -2268, -1759, 15552, 21246, -2271, -1754, 15507, 21289, -2274, -1750, 15463, 21331, -2276,
- -1745, 15418, 21374, -2279, -1740, 15374, 21416, -2282, -1735, 15329, 21458, -2284, -1730, 15285, 21500, -2287,
- -1725, 15241, 21542, -2290, -1720, 15196, 21584, -2292, -1715, 15152, 21626, -2295, -1710, 15107, 21669, -2298,
- -1706, 15063, 21711, -2300, -1701, 15019, 21753, -2303, -1696, 14974, 21795, -2305, -1691, 14930, 21837, -2308,
- -1686, 14885, 21879, -2310, -1681, 14841, 21921, -2313, -1676, 14797, 21962, -2315, -1671, 14752, 22004, -2317,
- -1666, 14708, 22046, -2320, -1661, 14664, 22087, -2322, -1656, 14619, 22130, -2325, -1651, 14575, 22171, -2327,
- -1646, 14531, 22212, -2329, -1641, 14486, 22254, -2331, -1636, 14442, 22296, -2334, -1631, 14398, 22337, -2336,
- -1626, 14354, 22378, -2338, -1621, 14309, 22420, -2340, -1616, 14265, 22461, -2342, -1611, 14221, 22502, -2344,
- -1606, 14177, 22544, -2347, -1600, 14132, 22585, -2349, -1595, 14088, 22626, -2351, -1590, 14044, 22667, -2353,
- -1585, 14000, 22708, -2355, -1580, 13955, 22750, -2357, -1575, 13911, 22791, -2359, -1570, 13867, 22831, -2360,
- -1565, 13823, 22872, -2362, -1560, 13779, 22913, -2364, -1554, 13735, 22953, -2366, -1549, 13691, 22994, -2368,
- -1544, 13647, 23035, -2370, -1539, 13602, 23076, -2371, -1534, 13558, 23117, -2373, -1529, 13514, 23158, -2375,
- -1523, 13470, 23198, -2377, -1518, 13426, 23238, -2378, -1513, 13382, 23279, -2380, -1508, 13338, 23319, -2381,
- -1503, 13294, 23360, -2383, -1497, 13250, 23400, -2385, -1492, 13206, 23440, -2386, -1487, 13163, 23480, -2388,
- -1482, 13119, 23520, -2389, -1477, 13075, 23561, -2391, -1471, 13031, 23600, -2392, -1466, 12987, 23640, -2393,
- -1461, 12943, 23681, -2395, -1456, 12899, 23721, -2396, -1450, 12856, 23759, -2397, -1445, 12812, 23800, -2399,
- -1440, 12768, 23840, -2400, -1435, 12724, 23880, -2401, -1429, 12681, 23918, -2402, -1424, 12637, 23959, -2404,
- -1419, 12593, 23999, -2405, -1414, 12549, 24039, -2406, -1408, 12506, 24077, -2407, -1403, 12462, 24117, -2408,
- -1398, 12419, 24156, -2409, -1393, 12375, 24196, -2410, -1387, 12332, 24234, -2411, -1382, 12288, 24274, -2412,
- -1377, 12244, 24314, -2413, -1371, 12201, 24352, -2414, -1366, 12158, 24391, -2415, -1361, 12114, 24431, -2416,
- -1356, 12071, 24469, -2416, -1350, 12027, 24508, -2417, -1345, 11984, 24547, -2418, -1340, 11941, 24586, -2419,
- -1334, 11897, 24624, -2419, -1329, 11854, 24663, -2420, -1324, 11811, 24702, -2421, -1318, 11767, 24740, -2421,
- -1313, 11724, 24779, -2422, -1308, 11681, 24817, -2422, -1302, 11638, 24855, -2423, -1297, 11595, 24893, -2423,
- -1292, 11552, 24932, -2424, -1286, 11509, 24969, -2424, -1281, 11466, 25008, -2425, -1276, 11422, 25047, -2425,
- -1271, 11380, 25085, -2426, -1265, 11337, 25122, -2426, -1260, 11294, 25160, -2426, -1255, 11251, 25198, -2426,
- -1249, 11208, 25236, -2427, -1244, 11165, 25274, -2427, -1239, 11122, 25312, -2427, -1233, 11079, 25349, -2427,
- -1228, 11037, 25386, -2427, -1223, 10994, 25424, -2427, -1217, 10951, 25461, -2427, -1212, 10908, 25499, -2427,
- -1207, 10866, 25536, -2427, -1201, 10823, 25573, -2427, -1196, 10781, 25610, -2427, -1191, 10738, 25648, -2427,
- -1185, 10696, 25684, -2427, -1180, 10653, 25722, -2427, -1175, 10611, 25758, -2426, -1169, 10568, 25795, -2426,
- -1164, 10526, 25832, -2426, -1159, 10483, 25870, -2426, -1153, 10441, 25905, -2425, -1148, 10399, 25942, -2425,
- -1143, 10357, 25978, -2424, -1137, 10314, 26015, -2424, -1132, 10272, 26052, -2424, -1127, 10230, 26088, -2423,
- -1121, 10188, 26123, -2422, -1116, 10146, 26160, -2422, -1111, 10104, 26196, -2421, -1105, 10062, 26232, -2421,
- -1100, 10020, 26268, -2420, -1095, 9978, 26304, -2419, -1089, 9936, 26340, -2419, -1084, 9894, 26376, -2418,
- -1079, 9853, 26411, -2417, -1073, 9811, 26446, -2416, -1068, 9769, 26482, -2415, -1063, 9727, 26518, -2414,
- -1058, 9686, 26553, -2413, -1052, 9644, 26588, -2412, -1047, 9603, 26623, -2411, -1042, 9561, 26659, -2410,
- -1036, 9520, 26693, -2409, -1031, 9478, 26729, -2408, -1026, 9437, 26764, -2407, -1021, 9395, 26800, -2406,
- -1015, 9354, 26834, -2405, -1010, 9313, 26868, -2403, -1005, 9271, 26904, -2402, -1000, 9230, 26939, -2401,
- -994, 9189, 26972, -2399, -989, 9148, 27007, -2398, -984, 9107, 27042, -2397, -979, 9066, 27076, -2395,
- -973, 9025, 27110, -2394, -968, 8984, 27144, -2392, -963, 8943, 27179, -2391, -958, 8902, 27213, -2389,
- -952, 8861, 27246, -2387, -947, 8821, 27280, -2386, -942, 8780, 27314, -2384, -937, 8739, 27348, -2382,
- -932, 8699, 27382, -2381, -926, 8658, 27415, -2379, -921, 8617, 27449, -2377, -916, 8577, 27482, -2375,
- -911, 8536, 27516, -2373, -906, 8496, 27549, -2371, -900, 8456, 27581, -2369, -895, 8415, 27615, -2367,
- -890, 8375, 27648, -2365, -885, 8335, 27681, -2363, -880, 8295, 27714, -2361, -875, 8255, 27747, -2359,
- -869, 8215, 27778, -2356, -864, 8175, 27811, -2354, -859, 8135, 27844, -2352, -854, 8095, 27876, -2349,
- -849, 8055, 27909, -2347, -844, 8015, 27942, -2345, -839, 7975, 27974, -2342, -834, 7936, 28006, -2340,
- -829, 7896, 28038, -2337, -823, 7856, 28070, -2335, -818, 7817, 28101, -2332, -813, 7777, 28133, -2329,
- -808, 7738, 28165, -2327, -803, 7698, 28197, -2324, -798, 7659, 28228, -2321, -793, 7620, 28260, -2319,
- -788, 7580, 28292, -2316, -783, 7541, 28323, -2313, -778, 7502, 28354, -2310, -773, 7463, 28385, -2307,
- -768, 7424, 28416, -2304, -763, 7385, 28447, -2301, -758, 7346, 28478, -2298, -753, 7307, 28509, -2295,
- -748, 7268, 28540, -2292, -743, 7230, 28570, -2289, -738, 7191, 28600, -2285, -733, 7152, 28631, -2282,
- -728, 7114, 28661, -2279, -723, 7075, 28691, -2275, -718, 7037, 28721, -2272, -713, 6998, 28752, -2269,
- -709, 6960, 28782, -2265, -704, 6922, 28812, -2262, -699, 6883, 28842, -2258, -694, 6845, 28872, -2255,
- -689, 6807, 28901, -2251, -684, 6769, 28930, -2247, -679, 6731, 28960, -2244, -675, 6693, 28990, -2240,
- -670, 6655, 29019, -2236, -665, 6617, 29048, -2232, -660, 6580, 29076, -2228, -655, 6542, 29105, -2224,
- -650, 6504, 29135, -2221, -646, 6467, 29164, -2217, -641, 6429, 29193, -2213, -636, 6392, 29220, -2208,
- -631, 6354, 29249, -2204, -627, 6317, 29278, -2200, -622, 6280, 29306, -2196, -617, 6243, 29334, -2192,
- -613, 6206, 29363, -2188, -608, 6168, 29391, -2183, -603, 6131, 29419, -2179, -598, 6094, 29446, -2174,
- -594, 6058, 29474, -2170, -589, 6021, 29501, -2165, -584, 5984, 29529, -2161, -580, 5947, 29557, -2156,
- -575, 5911, 29584, -2152, -571, 5874, 29612, -2147, -566, 5838, 29638, -2142, -561, 5801, 29666, -2138,
- -557, 5765, 29693, -2133, -552, 5729, 29719, -2128, -548, 5692, 29747, -2123, -543, 5656, 29773, -2118,
- -539, 5620, 29800, -2113, -534, 5584, 29826, -2108, -530, 5548, 29853, -2103, -525, 5512, 29879, -2098,
- -521, 5476, 29906, -2093, -516, 5441, 29931, -2088, -512, 5405, 29958, -2083, -507, 5369, 29983, -2077,
- -503, 5334, 30009, -2072, -499, 5298, 30036, -2067, -494, 5263, 30060, -2061, -490, 5228, 30086, -2056,
- -485, 5192, 30111, -2050, -481, 5157, 30137, -2045, -477, 5122, 30162, -2039, -472, 5087, 30187, -2034,
- -468, 5052, 30212, -2028, -464, 5017, 30237, -2022, -459, 4982, 30262, -2017, -455, 4948, 30286, -2011,
- -451, 4913, 30311, -2005, -447, 4878, 30336, -1999, -442, 4844, 30359, -1993, -438, 4809, 30384, -1987,
- -434, 4775, 30408, -1981, -430, 4741, 30432, -1975, -426, 4706, 30457, -1969, -421, 4672, 30480, -1963,
- -417, 4638, 30503, -1956, -413, 4604, 30527, -1950, -409, 4570, 30551, -1944, -405, 4536, 30575, -1938,
- -401, 4502, 30598, -1931, -397, 4469, 30621, -1925, -393, 4435, 30644, -1918, -389, 4402, 30667, -1912,
- -385, 4368, 30690, -1905, -381, 4335, 30713, -1899, -377, 4301, 30736, -1892, -373, 4268, 30758, -1885,
- -369, 4235, 30780, -1878, -365, 4202, 30803, -1872, -361, 4169, 30825, -1865, -357, 4136, 30847, -1858,
- -353, 4103, 30869, -1851, -349, 4070, 30891, -1844, -345, 4038, 30912, -1837, -341, 4005, 30934, -1830,
- -338, 3973, 30956, -1823, -334, 3940, 30977, -1815, -330, 3908, 30998, -1808, -326, 3875, 31020, -1801,
- -322, 3843, 31040, -1793, -319, 3811, 31062, -1786, -315, 3779, 31083, -1779, -311, 3747, 31103, -1771,
- -307, 3715, 31124, -1764, -304, 3683, 31145, -1756, -300, 3652, 31164, -1748, -296, 3620, 31185, -1741,
- -293, 3589, 31205, -1733, -289, 3557, 31225, -1725, -286, 3526, 31245, -1717, -282, 3495, 31264, -1709,
- -278, 3463, 31285, -1702, -275, 3432, 31305, -1694, -271, 3401, 31324, -1686, -268, 3370, 31343, -1677,
- -264, 3339, 31362, -1669, -261, 3309, 31381, -1661, -257, 3278, 31400, -1653, -254, 3247, 31420, -1645,
- -251, 3217, 31438, -1636, -247, 3186, 31457, -1628, -244, 3156, 31476, -1620, -240, 3126, 31493, -1611,
- -237, 3096, 31512, -1603, -234, 3066, 31530, -1594, -231, 3036, 31548, -1585, -227, 3006, 31566, -1577,
- -224, 2976, 31584, -1568, -221, 2946, 31602, -1559, -218, 2917, 31619, -1550, -214, 2887, 31637, -1542,
- -211, 2858, 31654, -1533, -208, 2828, 31672, -1524, -205, 2799, 31689, -1515, -202, 2770, 31706, -1506,
- -199, 2741, 31722, -1496, -196, 2712, 31739, -1487, -192, 2683, 31755, -1478, -189, 2654, 31772, -1469,
- -186, 2626, 31787, -1459, -183, 2597, 31804, -1450, -180, 2568, 31820, -1440, -177, 2540, 31836, -1431,
- -175, 2512, 31852, -1421, -172, 2483, 31869, -1412, -169, 2455, 31884, -1402, -166, 2427, 31899, -1392,
- -163, 2399, 31915, -1383, -160, 2371, 31930, -1373, -157, 2344, 31944, -1363, -155, 2316, 31960, -1353,
- -152, 2289, 31974, -1343, -149, 2261, 31989, -1333, -146, 2234, 32003, -1323, -144, 2206, 32019, -1313,
- -141, 2179, 32033, -1303, -138, 2152, 32047, -1293, -136, 2125, 32061, -1282, -133, 2098, 32075, -1272,
- -131, 2072, 32089, -1262, -128, 2045, 32102, -1251, -125, 2018, 32116, -1241, -123, 1992, 32129, -1230,
- -120, 1965, 32142, -1219, -118, 1939, 32156, -1209, -115, 1913, 32168, -1198, -113, 1887, 32181, -1187,
- -111, 1861, 32194, -1176, -108, 1835, 32207, -1166, -106, 1809, 32220, -1155, -104, 1783, 32233, -1144,
- -101, 1758, 32244, -1133, -99, 1732, 32256, -1121, -97, 1707, 32268, -1110, -94, 1682, 32279, -1099,
- -92, 1657, 32291, -1088, -90, 1631, 32303, -1076, -88, 1607, 32314, -1065, -86, 1582, 32326, -1054,
- -84, 1557, 32337, -1042, -81, 1532, 32348, -1031, -79, 1508, 32358, -1019, -77, 1483, 32369, -1007,
- -75, 1459, 32380, -996, -73, 1435, 32390, -984, -71, 1411, 32400, -972, -69, 1387, 32410, -960,
- -67, 1363, 32420, -948, -66, 1339, 32431, -936, -64, 1315, 32441, -924, -62, 1291, 32451, -912,
- -60, 1268, 32460, -900, -58, 1245, 32469, -888, -56, 1221, 32479, -876, -55, 1198, 32488, -863,
- -53, 1175, 32497, -851, -51, 1152, 32505, -838, -50, 1129, 32515, -826, -48, 1107, 32522, -813,
- -46, 1084, 32531, -801, -45, 1061, 32540, -788, -43, 1039, 32547, -775, -42, 1017, 32555, -762,
- -40, 995, 32563, -750, -39, 972, 32572, -737, -37, 951, 32578, -724, -36, 929, 32586, -711,
- -34, 907, 32593, -698, -33, 885, 32601, -685, -32, 864, 32607, -671, -30, 842, 32614, -658,
- -29, 821, 32621, -645, -28, 800, 32627, -631, -26, 779, 32633, -618, -25, 758, 32640, -605,
- -24, 737, 32646, -591, -23, 716, 32652, -577, -22, 696, 32658, -564, -21, 675, 32664, -550,
- -20, 655, 32669, -536, -18, 635, 32673, -522, -17, 614, 32679, -508, -16, 594, 32685, -495,
- -16, 575, 32690, -481, -15, 555, 32694, -466, -14, 535, 32699, -452, -13, 515, 32704, -438,
- -12, 496, 32708, -424, -11, 477, 32712, -410, -10, 457, 32716, -395, -10, 438, 32721, -381,
- -9, 419, 32724, -366, -8, 401, 32727, -352, -7, 382, 32730, -337, -7, 363, 32734, -322,
- -6, 345, 32737, -308, -6, 326, 32741, -293, -5, 308, 32743, -278, -4, 290, 32745, -263,
- -4, 272, 32748, -248, -3, 254, 32750, -233, -3, 236, 32753, -218, -3, 218, 32756, -203,
- -2, 201, 32757, -188, -2, 184, 32758, -172, -2, 166, 32761, -157, -1, 149, 32761, -141,
- -1, 132, 32763, -126, -1, 115, 32764, -110, -1, 98, 32766, -95, 0, 82, 32765, -79,
- 0, 65, 32767, -64, 0, 49, 32767, -48, 0, 32, 32767, -32, 0, 16, 32767, -16
+ 0x00000000,0x3F800000,0x00000000,0x00000000,0xB8FFE001,0x3F7FFFFE,0x39001FFE,0xB2FFF000,
+ 0xB97FC004,0x3F7FFFF6,0x39803FFA,0xB3FFE000,0xB9BFB807,0x3F7FFFEA,0x39C08FEC,0xB48FE500,
+ 0xB9FF8010,0x3F7FFFD8,0x3A007FE8,0xB4FFC000,0xBA1F9C10,0x3F7FFFC2,0x3A20C7D1,0xB547C180,
+ 0xBA3F701B,0x3F7FFFA6,0x3A411FAF,0xB58FCA00,0xBA5F3C2B,0x3F7FFF86,0x3A61877F,0xB5C3AA40,
+ 0xBA7F0040,0x3F7FFF60,0x3A80FFA0,0xB5FF8000,0xBA8F5E2E,0x3F7FFF36,0x3A914377,0xB621A4E0,
+ 0xBA9F383E,0x3F7FFF06,0x3AA18F44,0xB6478300,0xBAAF0E53,0x3F7FFED2,0x3AB1E306,0xB67159A0,
+ 0xBABEE06C,0x3F7FFE99,0x3AC23EBC,0xB68F9400,0xBACEAE89,0x3F7FFE5A,0x3AD2A264,0xB6A876B0,
+ 0xBADE78AC,0x3F7FFE17,0x3AE30DFE,0xB6C35480,0xBAEE3ED3,0x3F7FFDCF,0x3AF38187,0xB6E02D10,
+ 0xBAFE0100,0x3F7FFD82,0x3B01FE80,0xB6FF0000,0xBB06DF9A,0x3F7FFD2F,0x3B0A4033,0xB70FE678,
+ 0xBB0EBCB6,0x3F7FFCD8,0x3B1285DD,0xB72149C0,0xBB1697D6,0x3F7FFC7C,0x3B1ACF7D,0xB733A9A8,
+ 0xBB1E70FA,0x3F7FFC1B,0x3B231D12,0xB7470600,0xBB264821,0x3F7FFBB5,0x3B2B6E9C,0xB75B5E98,
+ 0xBB2E1D4D,0x3F7FFB4A,0x3B33C41A,0xB770B340,0xBB35F07C,0x3F7FFADA,0x3B3C1D8B,0xB78381E4,
+ 0xBB3DC1B0,0x3F7FFA65,0x3B447AF0,0xB78F2800,0xBB4590E8,0x3F7FF9EB,0x3B4CDC47,0xB79B4BDC,
+ 0xBB4D5E25,0x3F7FF96C,0x3B554190,0xB7A7ED60,0xBB552967,0x3F7FF8E9,0x3B5DAACB,0xB7B50C74,
+ 0xBB5CF2AE,0x3F7FF860,0x3B6617F6,0xB7C2A900,0xBB64B9FA,0x3F7FF7D2,0x3B6E8912,0xB7D0C2EC,
+ 0xBB6C7F4C,0x3F7FF740,0x3B76FE1D,0xB7DF5A20,0xBB7442A3,0x3F7FF6A8,0x3B7F7717,0xB7EE6E84,
+ 0xBB7C0400,0x3F7FF60C,0x3B83FA00,0xB7FE0000,0xBB81E1B2,0x3F7FF56B,0x3B883A6B,0xB807073E,
+ 0xBB85C066,0x3F7FF4C4,0x3B8C7CCE,0xB80F4CF0,0xBB899E1E,0x3F7FF419,0x3B90C126,0xB817D10A,
+ 0xBB8D7AD9,0x3F7FF369,0x3B950775,0xB8209380,0xBB915697,0x3F7FF2B4,0x3B994FBA,0xB8299446,
+ 0xBB953159,0x3F7FF1FA,0x3B9D99F4,0xB832D350,0xBB990B1F,0x3F7FF13B,0x3BA1E623,0xB83C5092,
+ 0xBB9CE3E8,0x3F7FF077,0x3BA63448,0xB8460C00,0xBBA0BBB5,0x3F7FEFAF,0x3BAA8461,0xB850058E,
+ 0xBBA49286,0x3F7FEEE1,0x3BAED66F,0xB85A3D30,0xBBA8685A,0x3F7FEE0F,0x3BB32A71,0xB864B2DA,
+ 0xBBAC3D33,0x3F7FED37,0x3BB78067,0xB86F6680,0xBBB01110,0x3F7FEC5B,0x3BBBD851,0xB87A5816,
+ 0xBBB3E3F1,0x3F7FEB7A,0x3BC0322D,0xB882C3C8,0xBBB7B5D6,0x3F7FEA94,0x3BC48DFD,0xB8887A71,
+ 0xBBBB86C0,0x3F7FE9A8,0x3BC8EBC0,0xB88E5000,0xBBBF56AE,0x3F7FE8B9,0x3BCD4B75,0xB894446F,
+ 0xBBC325A1,0x3F7FE7C4,0x3BD1AD1D,0xB89A57B8,0xBBC6F399,0x3F7FE6CA,0x3BD610B6,0xB8A089D5,
+ 0xBBCAC095,0x3F7FE5CB,0x3BDA7641,0xB8A6DAC0,0xBBCE8C96,0x3F7FE4C8,0x3BDEDDBD,0xB8AD4A73,
+ 0xBBD2579C,0x3F7FE3C0,0x3BE3472B,0xB8B3D8E8,0xBBD621A8,0x3F7FE2B2,0x3BE7B289,0xB8BA8619,
+ 0xBBD9EAB8,0x3F7FE1A0,0x3BEC1FD8,0xB8C15200,0xBBDDB2CE,0x3F7FE089,0x3BF08F17,0xB8C83C97,
+ 0xBBE179E9,0x3F7FDF6D,0x3BF50046,0xB8CF45D8,0xBBE54009,0x3F7FDE4D,0x3BF97365,0xB8D66DBD,
+ 0xBBE9052F,0x3F7FDD27,0x3BFDE873,0xB8DDB440,0xBBECC95B,0x3F7FDBFD,0x3C012FB8,0xB8E5195B,
+ 0xBBF08C8C,0x3F7FDACD,0x3C036C2E,0xB8EC9D08,0xBBF44EC3,0x3F7FD999,0x3C05A99C,0xB8F43F41,
+ 0xBBF81000,0x3F7FD860,0x3C07E800,0xB8FC0000,0xBBFBD043,0x3F7FD722,0x3C0A275B,0xB901EFA0,
+ 0xBBFF8F8C,0x3F7FD5DF,0x3C0C67AE,0xB905EE7C,0xBC01A6EE,0x3F7FD498,0x3C0EA8F7,0xB909FC92,
+ 0xBC038598,0x3F7FD34B,0x3C10EB36,0xB90E19E0,0xBC0563C6,0x3F7FD1FA,0x3C132E6D,0xB9124662,
+ 0xBC074178,0x3F7FD0A4,0x3C157299,0xB9168214,0xBC091EAC,0x3F7FCF49,0x3C17B7BB,0xB91ACCF4,
+ 0xBC0AFB64,0x3F7FCDE9,0x3C19FDD4,0xB91F2700,0xBC0CD79F,0x3F7FCC84,0x3C1C44E2,0xB9239034,
+ 0xBC0EB35E,0x3F7FCB1A,0x3C1E8CE7,0xB928088C,0xBC108EA0,0x3F7FC9AC,0x3C20D5E0,0xB92C9006,
+ 0xBC126966,0x3F7FC839,0x3C231FD0,0xB93126A0,0xBC1443AF,0x3F7FC6C1,0x3C256AB4,0xB935CC56,
+ 0xBC161D7B,0x3F7FC544,0x3C27B68E,0xB93A8124,0xBC17F6CC,0x3F7FC3C2,0x3C2A035C,0xB93F4508,
+ 0xBC19CFA0,0x3F7FC23C,0x3C2C5120,0xB9441800,0xBC1BA7F8,0x3F7FC0B0,0x3C2E9FD8,0xB948FA08,
+ 0xBC1D7FD4,0x3F7FBF20,0x3C30EF85,0xB94DEB1C,0xBC1F5733,0x3F7FBD8B,0x3C334027,0xB952EB3A,
+ 0xBC212E16,0x3F7FBBF1,0x3C3591BC,0xB957FA60,0xBC23047E,0x3F7FBA52,0x3C37E446,0xB95D188A,
+ 0xBC24DA69,0x3F7FB8AF,0x3C3A37C4,0xB96245B4,0xBC26AFD9,0x3F7FB707,0x3C3C8C36,0xB96781DC,
+ 0xBC2884CC,0x3F7FB55A,0x3C3EE19C,0xB96CCD00,0xBC2A5944,0x3F7FB3A8,0x3C4137F5,0xB972271C,
+ 0xBC2C2D3F,0x3F7FB1F1,0x3C438F42,0xB977902C,0xBC2E00BF,0x3F7FB035,0x3C45E782,0xB97D082E,
+ 0xBC2FD3C4,0x3F7FAE75,0x3C4840B6,0xB9814790,0xBC31A64C,0x3F7FACB0,0x3C4A9ADC,0xB984127F,
+ 0xBC337859,0x3F7FAAE6,0x3C4CF5F5,0xB986E4E2,0xBC3549EA,0x3F7FA917,0x3C4F5201,0xB989BEB8,
+ 0xBC371B00,0x3F7FA744,0x3C51AF00,0xB98CA000,0xBC38EB9A,0x3F7FA56C,0x3C540CF1,0xB98F88B8,
+ 0xBC3ABBB9,0x3F7FA38F,0x3C566BD5,0xB99278DE,0xBC3C8B5C,0x3F7FA1AD,0x3C58CBAB,0xB9957071,
+ 0xBC3E5A84,0x3F7F9FC6,0x3C5B2C72,0xB9986F70,0xBC402931,0x3F7F9DDB,0x3C5D8E2C,0xB99B75D9,
+ 0xBC41F763,0x3F7F9BEB,0x3C5FF0D8,0xB99E83AA,0xBC43C519,0x3F7F99F6,0x3C625475,0xB9A198E2,
+ 0xBC459254,0x3F7F97FC,0x3C64B904,0xB9A4B580,0xBC475F14,0x3F7F95FD,0x3C671E84,0xB9A7D982,
+ 0xBC492B59,0x3F7F93FA,0x3C6984F6,0xB9AB04E6,0xBC4AF723,0x3F7F91F2,0x3C6BEC58,0xB9AE37AB,
+ 0xBC4CC272,0x3F7F8FE5,0x3C6E54AC,0xB9B171D0,0xBC4E8D45,0x3F7F8DD4,0x3C70BDF0,0xB9B4B353,
+ 0xBC50579E,0x3F7F8BBD,0x3C732825,0xB9B7FC32,0xBC52217D,0x3F7F89A2,0x3C75934A,0xB9BB4C6C,
+ 0xBC53EAE0,0x3F7F8782,0x3C77FF60,0xB9BEA400,0xBC55B3C9,0x3F7F855E,0x3C7A6C66,0xB9C202EC,
+ 0xBC577C37,0x3F7F8335,0x3C7CDA5C,0xB9C5692E,0xBC59442A,0x3F7F8106,0x3C7F4942,0xB9C8D6C5,
+ 0xBC5B0BA2,0x3F7F7ED4,0x3C80DC8C,0xB9CC4BB0,0xBC5CD2A1,0x3F7F7C9C,0x3C8214EF,0xB9CFC7ED,
+ 0xBC5E9924,0x3F7F7A60,0x3C834DCA,0xB9D34B7A,0xBC605F2D,0x3F7F781F,0x3C84871C,0xB9D6D656,
+ 0xBC6224BC,0x3F7F75D9,0x3C85C0E6,0xB9DA6880,0xBC63E9D0,0x3F7F738E,0x3C86FB28,0xB9DE01F6,
+ 0xBC65AE6A,0x3F7F713F,0x3C8835E1,0xB9E1A2B6,0xBC67728A,0x3F7F6EEB,0x3C897111,0xB9E54ABF,
+ 0xBC693630,0x3F7F6C92,0x3C8AACB9,0xB9E8FA10,0xBC6AF95B,0x3F7F6A35,0x3C8BE8D8,0xB9ECB0A7,
+ 0xBC6CBC0C,0x3F7F67D3,0x3C8D256E,0xB9F06E82,0xBC6E7E43,0x3F7F656C,0x3C8E627C,0xB9F433A0,
+ 0xBC704000,0x3F7F6300,0x3C8FA000,0xB9F80000,0xBC720143,0x3F7F6090,0x3C90DDFB,0xB9FBD3A0,
+ 0xBC73C20C,0x3F7F5E1B,0x3C921C6E,0xB9FFAE7E,0xBC75825B,0x3F7F5BA1,0x3C935B57,0xBA01C84D,
+ 0xBC774230,0x3F7F5922,0x3C949AB7,0xBA03BCF8,0xBC79018C,0x3F7F569F,0x3C95DA8E,0xBA05B540,
+ 0xBC7AC06E,0x3F7F5417,0x3C971ADB,0xBA07B125,0xBC7C7ED6,0x3F7F518B,0x3C985B9F,0xBA09B0A5,
+ 0xBC7E3CC4,0x3F7F4EF9,0x3C999CDA,0xBA0BB3C0,0xBC7FFA39,0x3F7F4C63,0x3C9ADE8B,0xBA0DBA75,
+ 0xBC80DB9A,0x3F7F49C8,0x3C9C20B2,0xBA0FC4C3,0xBC81B9DB,0x3F7F4729,0x3C9D6350,0xBA11D2AA,
+ 0xBC8297DF,0x3F7F4485,0x3C9EA664,0xBA13E428,0xBC8375A6,0x3F7F41DC,0x3C9FE9EE,0xBA15F93D,
+ 0xBC845331,0x3F7F3F2F,0x3CA12DEE,0xBA1811E9,0xBC85307F,0x3F7F3C7C,0x3CA27264,0xBA1A2E2A,
+ 0xBC860D90,0x3F7F39C6,0x3CA3B750,0xBA1C4E00,0xBC86EA65,0x3F7F370A,0x3CA4FCB2,0xBA1E716A,
+ 0xBC87C6FD,0x3F7F344A,0x3CA6428A,0xBA209867,0xBC88A358,0x3F7F3185,0x3CA788D7,0xBA22C2F7,
+ 0xBC897F77,0x3F7F2EBB,0x3CA8CF9A,0xBA24F118,0xBC8A5B5A,0x3F7F2BED,0x3CAA16D3,0xBA2722CA,
+ 0xBC8B3700,0x3F7F291A,0x3CAB5E81,0xBA29580D,0xBC8C1269,0x3F7F2642,0x3CACA6A5,0xBA2B90DF,
+ 0xBC8CED96,0x3F7F2366,0x3CADEF3E,0xBA2DCD40,0xBC8DC887,0x3F7F2085,0x3CAF384C,0xBA300D2F,
+ 0xBC8EA33B,0x3F7F1D9F,0x3CB081D0,0xBA3250AB,0xBC8F7DB2,0x3F7F1AB5,0x3CB1CBC9,0xBA3497B4,
+ 0xBC9057EE,0x3F7F17C6,0x3CB31637,0xBA36E248,0xBC9131ED,0x3F7F14D3,0x3CB4611A,0xBA393067,
+ 0xBC920BAF,0x3F7F11DA,0x3CB5AC72,0xBA3B8211,0xBC92E536,0x3F7F0EDE,0x3CB6F83E,0xBA3DD744,
+ 0xBC93BE80,0x3F7F0BDC,0x3CB84480,0xBA403000,0xBC94978E,0x3F7F08D6,0x3CB99136,0xBA428C44,
+ 0xBC957060,0x3F7F05CB,0x3CBADE61,0xBA44EC0F,0xBC9648F5,0x3F7F02BB,0x3CBC2C01,0xBA474F61,
+ 0xBC97214E,0x3F7EFFA7,0x3CBD7A15,0xBA49B638,0xBC97F96B,0x3F7EFC8F,0x3CBEC89E,0xBA4C2094,
+ 0xBC98D14C,0x3F7EF971,0x3CC0179B,0xBA4E8E75,0xBC99A8F1,0x3F7EF64F,0x3CC1670C,0xBA50FFD9,
+ 0xBC9A805A,0x3F7EF328,0x3CC2B6F2,0xBA5374C0,0xBC9B5787,0x3F7EEFFD,0x3CC4074C,0xBA55ED29,
+ 0xBC9C2E77,0x3F7EECCD,0x3CC5581A,0xBA586913,0xBC9D052C,0x3F7EE999,0x3CC6A95C,0xBA5AE87E,
+ 0xBC9DDBA5,0x3F7EE65F,0x3CC7FB12,0xBA5D6B68,0xBC9EB1E1,0x3F7EE322,0x3CC94D3C,0xBA5FF1D1,
+ 0xBC9F87E2,0x3F7EDFDF,0x3CCA9FD9,0xBA627BB9,0xBCA05DA7,0x3F7EDC98,0x3CCBF2EB,0xBA65091E,
+ 0xBCA13330,0x3F7ED94C,0x3CCD4670,0xBA679A00,0xBCA2087D,0x3F7ED5FC,0x3CCE9A69,0xBA6A2E5E,
+ 0xBCA2DD8E,0x3F7ED2A7,0x3CCFEED5,0xBA6CC637,0xBCA3B264,0x3F7ECF4E,0x3CD143B5,0xBA6F618B,
+ 0xBCA486FD,0x3F7ECBF0,0x3CD29908,0xBA720058,0xBCA55B5B,0x3F7EC88D,0x3CD3EECF,0xBA74A29E,
+ 0xBCA62F7D,0x3F7EC526,0x3CD54509,0xBA77485D,0xBCA70363,0x3F7EC1BA,0x3CD69BB6,0xBA79F193,
+ 0xBCA7D70E,0x3F7EBE49,0x3CD7F2D6,0xBA7C9E40,0xBCA8AA7D,0x3F7EBAD4,0x3CD94A69,0xBA7F4E63,
+ 0xBCA97DB0,0x3F7EB75B,0x3CDAA270,0xBA8100FE,0xBCAA50A8,0x3F7EB3DC,0x3CDBFAE9,0xBA825C84,
+ 0xBCAB2364,0x3F7EB059,0x3CDD53D5,0xBA83B9C4,0xBCABF5E4,0x3F7EACD2,0x3CDEAD34,0xBA8518BE,
+ 0xBCACC829,0x3F7EA946,0x3CE00705,0xBA867970,0xBCAD9A32,0x3F7EA5B5,0x3CE16149,0xBA87DBDC,
+ 0xBCAE6C00,0x3F7EA220,0x3CE2BC00,0xBA894000,0xBCAF3D92,0x3F7E9E86,0x3CE41729,0xBA8AA5DC,
+ 0xBCB00EE9,0x3F7E9AE8,0x3CE572C5,0xBA8C0D70,0xBCB0E004,0x3F7E9745,0x3CE6CED3,0xBA8D76BA,
+ 0xBCB1B0E4,0x3F7E939D,0x3CE82B53,0xBA8EE1BC,0xBCB28189,0x3F7E8FF1,0x3CE98846,0xBA904E74,
+ 0xBCB351F2,0x3F7E8C41,0x3CEAE5AA,0xBA91BCE2,0xBCB42220,0x3F7E888B,0x3CEC4381,0xBA932D07,
+ 0xBCB4F212,0x3F7E84D2,0x3CEDA1CA,0xBA949EE0,0xBCB5C1C9,0x3F7E8113,0x3CEF0085,0xBA96126E,
+ 0xBCB69145,0x3F7E7D50,0x3CF05FB1,0xBA9787B2,0xBCB76085,0x3F7E7989,0x3CF1BF50,0xBA98FEA9,
+ 0xBCB82F8B,0x3F7E75BD,0x3CF31F60,0xBA9A7754,0xBCB8FE55,0x3F7E71EC,0x3CF47FE2,0xBA9BF1B3,
+ 0xBCB9CCE4,0x3F7E6E17,0x3CF5E0D5,0xBA9D6DC4,0xBCBA9B37,0x3F7E6A3E,0x3CF7423A,0xBA9EEB89,
+ 0xBCBB6950,0x3F7E6660,0x3CF8A410,0xBAA06B00,0xBCBC372D,0x3F7E627D,0x3CFA0658,0xBAA1EC29,
+ 0xBCBD04D0,0x3F7E5E95,0x3CFB6911,0xBAA36F04,0xBCBDD237,0x3F7E5AAA,0x3CFCCC3B,0xBAA4F38F,
+ 0xBCBE9F63,0x3F7E56B9,0x3CFE2FD6,0xBAA679CC,0xBCBF6C54,0x3F7E52C4,0x3CFF93E3,0xBAA801B9,
+ 0xBCC0390B,0x3F7E4ECB,0x3D007C30,0xBAA98B56,0xBCC10586,0x3F7E4ACD,0x3D012EA7,0xBAAB16A4,
+ 0xBCC1D1C6,0x3F7E46CB,0x3D01E157,0xBAACA3A0,0xBCC29DCB,0x3F7E42C4,0x3D02943F,0xBAAE324B,
+ 0xBCC36996,0x3F7E3EB8,0x3D034760,0xBAAFC2A6,0xBCC43525,0x3F7E3AA8,0x3D03FAB8,0xBAB154AE,
+ 0xBCC5007A,0x3F7E3693,0x3D04AE49,0xBAB2E864,0xBCC5CB94,0x3F7E327A,0x3D056213,0xBAB47DC8,
+ 0xBCC69672,0x3F7E2E5D,0x3D061614,0xBAB614D8,0xBCC76117,0x3F7E2A3B,0x3D06CA4E,0xBAB7AD96,
+ 0xBCC82B80,0x3F7E2614,0x3D077EC0,0xBAB94800,0xBCC8F5AF,0x3F7E21E9,0x3D08336A,0xBABAE416,
+ 0xBCC9BFA3,0x3F7E1DB9,0x3D08E84C,0xBABC81D8,0xBCCA895C,0x3F7E1985,0x3D099D66,0xBABE2144,
+ 0xBCCB52DA,0x3F7E154C,0x3D0A52B9,0xBABFC25C,0xBCCC1C1E,0x3F7E110F,0x3D0B0843,0xBAC1651E,
+ 0xBCCCE527,0x3F7E0CCE,0x3D0BBE05,0xBAC3098A,0xBCCDADF6,0x3F7E0888,0x3D0C73FF,0xBAC4AFA1,
+ 0xBCCE768A,0x3F7E043D,0x3D0D2A31,0xBAC65760,0xBCCF3EE3,0x3F7DFFEE,0x3D0DE09B,0xBAC800C8,
+ 0xBCD00702,0x3F7DFB9A,0x3D0E973C,0xBAC9ABDA,0xBCD0CEE7,0x3F7DF742,0x3D0F4E16,0xBACB5893,
+ 0xBCD19691,0x3F7DF2E6,0x3D100527,0xBACD06F4,0xBCD25E00,0x3F7DEE85,0x3D10BC70,0xBACEB6FD,
+ 0xBCD32535,0x3F7DEA1F,0x3D1173F0,0xBAD068AC,0xBCD3EC30,0x3F7DE5B5,0x3D122BA8,0xBAD21C03,
+ 0xBCD4B2F0,0x3F7DE146,0x3D12E398,0xBAD3D100,0xBCD57976,0x3F7DDCD4,0x3D139BBF,0xBAD587A3,
+ 0xBCD63FC1,0x3F7DD85C,0x3D14541E,0xBAD73FEC,0xBCD705D2,0x3F7DD3E0,0x3D150CB4,0xBAD8F9D9,
+ 0xBCD7CBA9,0x3F7DCF60,0x3D15C582,0xBADAB56C,0xBCD89146,0x3F7DCADB,0x3D167E87,0xBADC72A3,
+ 0xBCD956A8,0x3F7DC652,0x3D1737C4,0xBADE317E,0xBCDA1BD0,0x3F7DC1C4,0x3D17F138,0xBADFF1FE,
+ 0xBCDAE0BE,0x3F7DBD32,0x3D18AAE3,0xBAE1B420,0xBCDBA572,0x3F7DB89B,0x3D1964C6,0xBAE377E5,
+ 0xBCDC69EB,0x3F7DB400,0x3D1A1EDF,0xBAE53D4E,0xBCDD2E2B,0x3F7DAF60,0x3D1AD930,0xBAE70458,
+ 0xBCDDF230,0x3F7DAABC,0x3D1B93B8,0xBAE8CD04,0xBCDEB5FB,0x3F7DA614,0x3D1C4E78,0xBAEA9752,
+ 0xBCDF798C,0x3F7DA167,0x3D1D096E,0xBAEC6340,0xBCE03CE3,0x3F7D9CB6,0x3D1DC49C,0xBAEE30D0,
+ 0xBCE10000,0x3F7D9800,0x3D1E8000,0xBAF00000,0xBCE1C2E3,0x3F7D9346,0x3D1F3B9B,0xBAF1D0D0,
+ 0xBCE2858C,0x3F7D8E87,0x3D1FF76E,0xBAF3A340,0xBCE347FB,0x3F7D89C4,0x3D20B377,0xBAF5774E,
+ 0xBCE40A30,0x3F7D84FD,0x3D216FB8,0xBAF74CFC,0xBCE4CC2B,0x3F7D8031,0x3D222C2F,0xBAF92448,
+ 0xBCE58DED,0x3F7D7B60,0x3D22E8DD,0xBAFAFD32,0xBCE64F74,0x3F7D768B,0x3D23A5C1,0xBAFCD7BB,
+ 0xBCE710C2,0x3F7D71B2,0x3D2462DD,0xBAFEB3E0,0xBCE7D1D6,0x3F7D6CD5,0x3D25202F,0xBB0048D1,
+ 0xBCE892B0,0x3F7D67F2,0x3D25DDB8,0xBB013881,0xBCE95350,0x3F7D630C,0x3D269B78,0xBB0228FE,
+ 0xBCEA13B7,0x3F7D5E21,0x3D27596E,0xBB031A4A,0xBCEAD3E4,0x3F7D5932,0x3D28179B,0xBB040C63,
+ 0xBCEB93D7,0x3F7D543E,0x3D28D5FE,0xBB04FF4A,0xBCEC5390,0x3F7D4F46,0x3D299498,0xBB05F2FF,
+ 0xBCED1310,0x3F7D4A4A,0x3D2A5368,0xBB06E780,0xBCEDD256,0x3F7D4549,0x3D2B126F,0xBB07DCCE,
+ 0xBCEE9163,0x3F7D4043,0x3D2BD1AC,0xBB08D2EA,0xBCEF5036,0x3F7D3B3A,0x3D2C911F,0xBB09C9D2,
+ 0xBCF00ECF,0x3F7D362B,0x3D2D50C9,0xBB0AC186,0xBCF0CD2F,0x3F7D3119,0x3D2E10A9,0xBB0BBA07,
+ 0xBCF18B56,0x3F7D2C02,0x3D2ED0C0,0xBB0CB353,0xBCF24943,0x3F7D26E7,0x3D2F910C,0xBB0DAD6C,
+ 0xBCF306F6,0x3F7D21C7,0x3D30518F,0xBB0EA850,0xBCF3C470,0x3F7D1CA3,0x3D311248,0xBB0FA400,
+ 0xBCF481B1,0x3F7D177B,0x3D31D337,0xBB10A07B,0xBCF53EB8,0x3F7D124E,0x3D32945C,0xBB119DC1,
+ 0xBCF5FB86,0x3F7D0D1D,0x3D3355B7,0xBB129BD2,0xBCF6B81A,0x3F7D07E7,0x3D341749,0xBB139AAE,
+ 0xBCF77475,0x3F7D02AD,0x3D34D910,0xBB149A54,0xBCF83097,0x3F7CFD6F,0x3D359B0D,0xBB159AC5,
+ 0xBCF8EC80,0x3F7CF82C,0x3D365D40,0xBB169C00,0xBCF9A82F,0x3F7CF2E5,0x3D371FA9,0xBB179E05,
+ 0xBCFA63A6,0x3F7CED9A,0x3D37E248,0xBB18A0D4,0xBCFB1EE2,0x3F7CE84A,0x3D38A51C,0xBB19A46C,
+ 0xBCFBD9E6,0x3F7CE2F6,0x3D396827,0xBB1AA8CE,0xBCFC94B1,0x3F7CDD9D,0x3D3A2B67,0xBB1BADF9,
+ 0xBCFD4F42,0x3F7CD840,0x3D3AEEDC,0xBB1CB3ED,0xBCFE099B,0x3F7CD2DF,0x3D3BB288,0xBB1DBAAA,
+ 0xBCFEC3BA,0x3F7CCD79,0x3D3C7669,0xBB1EC230,0xBCFF7DA0,0x3F7CC810,0x3D3D3A80,0xBB1FCA7E,
+ 0xBD001BA7,0x3F7CC2A1,0x3D3DFECC,0xBB20D395,0xBD007861,0x3F7CBD2F,0x3D3EC34E,0xBB21DD73,
+ 0xBD00D4FE,0x3F7CB7B8,0x3D3F8805,0xBB22E81A,0xBD01317F,0x3F7CB23C,0x3D404CF2,0xBB23F388,
+ 0xBD018DE4,0x3F7CACBD,0x3D411214,0xBB24FFBE,0xBD01EA2C,0x3F7CA739,0x3D41D76B,0xBB260CBC,
+ 0xBD024658,0x3F7CA1B0,0x3D429CF8,0xBB271A80,0xBD02A267,0x3F7C9C24,0x3D4362BA,0xBB28290B,
+ 0xBD02FE5A,0x3F7C9693,0x3D4428B2,0xBB29385E,0xBD035A31,0x3F7C90FE,0x3D44EEDE,0xBB2A4877,
+ 0xBD03B5EB,0x3F7C8B64,0x3D45B540,0xBB2B5956,0xBD041188,0x3F7C85C6,0x3D467BD7,0xBB2C6AFC,
+ 0xBD046D0A,0x3F7C8024,0x3D4742A3,0xBB2D7D67,0xBD04C86E,0x3F7C7A7D,0x3D4809A5,0xBB2E9099,
+ 0xBD0523B7,0x3F7C74D2,0x3D48D0DB,0xBB2FA490,0xBD057EE3,0x3F7C6F23,0x3D499846,0xBB30B94D,
+ 0xBD05D9F3,0x3F7C6970,0x3D4A5FE7,0xBB31CECF,0xBD0634E7,0x3F7C63B8,0x3D4B27BC,0xBB32E516,
+ 0xBD068FBE,0x3F7C5DFC,0x3D4BEFC6,0xBB33FC22,0xBD06EA79,0x3F7C583B,0x3D4CB806,0xBB3513F3,
+ 0xBD074517,0x3F7C5276,0x3D4D807A,0xBB362C88,0xBD079F9A,0x3F7C4CAD,0x3D4E4922,0xBB3745E2,
+ 0xBD07FA00,0x3F7C46E0,0x3D4F1200,0xBB386000,0xBD08544A,0x3F7C410E,0x3D4FDB12,0xBB397AE2,
+ 0xBD08AE78,0x3F7C3B38,0x3D50A459,0xBB3A9688,0xBD090889,0x3F7C355E,0x3D516DD5,0xBB3BB2F1,
+ 0xBD09627E,0x3F7C2F80,0x3D523786,0xBB3CD01E,0xBD09BC57,0x3F7C299D,0x3D53016B,0xBB3DEE0E,
+ 0xBD0A1614,0x3F7C23B6,0x3D53CB84,0xBB3F0CC1,0xBD0A6FB5,0x3F7C1DCA,0x3D5495D2,0xBB402C37,
+ 0xBD0AC939,0x3F7C17DB,0x3D556055,0xBB414C70,0xBD0B22A1,0x3F7C11E7,0x3D562B0C,0xBB426D6B,
+ 0xBD0B7BED,0x3F7C0BEF,0x3D56F5F8,0xBB438F29,0xBD0BD51D,0x3F7C05F2,0x3D57C118,0xBB44B1A8,
+ 0xBD0C2E31,0x3F7BFFF1,0x3D588C6C,0xBB45D4EA,0xBD0C8729,0x3F7BF9EC,0x3D5957F5,0xBB46F8ED,
+ 0xBD0CE005,0x3F7BF3E3,0x3D5A23B1,0xBB481DB2,0xBD0D38C4,0x3F7BEDD5,0x3D5AEFA3,0xBB494339,
+ 0xBD0D9168,0x3F7BE7C4,0x3D5BBBC8,0xBB4A6980,0xBD0DE9EF,0x3F7BE1AD,0x3D5C8822,0xBB4B9088,
+ 0xBD0E425B,0x3F7BDB93,0x3D5D54AF,0xBB4CB852,0xBD0E9AAA,0x3F7BD574,0x3D5E2171,0xBB4DE0DC,
+ 0xBD0EF2DE,0x3F7BCF52,0x3D5EEE67,0xBB4F0A26,0xBD0F4AF5,0x3F7BC92A,0x3D5FBB91,0xBB503431,
+ 0xBD0FA2F0,0x3F7BC2FF,0x3D6088EF,0xBB515EFB,0xBD0FFAD0,0x3F7BBCCF,0x3D615681,0xBB528A86,
+ 0xBD105293,0x3F7BB69C,0x3D622447,0xBB53B6D0,0xBD10AA3A,0x3F7BB063,0x3D62F241,0xBB54E3DA,
+ 0xBD1101C6,0x3F7BAA27,0x3D63C06F,0xBB5611A3,0xBD115935,0x3F7BA3E6,0x3D648ED0,0xBB57402B,
+ 0xBD11B089,0x3F7B9DA2,0x3D655D65,0xBB586F72,0xBD1207C1,0x3F7B9759,0x3D662C2E,0xBB599F78,
+ 0xBD125EDC,0x3F7B910B,0x3D66FB2B,0xBB5AD03C,0xBD12B5DC,0x3F7B8ABA,0x3D67CA5C,0xBB5C01BF,
+ 0xBD130CC0,0x3F7B8464,0x3D6899C0,0xBB5D3400,0xBD136388,0x3F7B7E0A,0x3D696958,0xBB5E66FF,
+ 0xBD13BA34,0x3F7B77AC,0x3D6A3923,0xBB5F9ABC,0xBD1410C5,0x3F7B7149,0x3D6B0922,0xBB60CF36,
+ 0xBD146739,0x3F7B6AE3,0x3D6BD955,0xBB62046E,0xBD14BD92,0x3F7B6478,0x3D6CA9BB,0xBB633A63,
+ 0xBD1513CF,0x3F7B5E09,0x3D6D7A54,0xBB647115,0xBD1569F0,0x3F7B5795,0x3D6E4B21,0xBB65A884,
+ 0xBD15BFF5,0x3F7B511E,0x3D6F1C21,0xBB66E0B0,0xBD1615DE,0x3F7B4AA2,0x3D6FED55,0xBB681998,
+ 0xBD166BAC,0x3F7B4422,0x3D70BEBB,0xBB69533D,0xBD16C15E,0x3F7B3D9E,0x3D719056,0xBB6A8D9D,
+ 0xBD1716F4,0x3F7B3716,0x3D726223,0xBB6BC8BA,0xBD176C6F,0x3F7B3089,0x3D733423,0xBB6D0492,
+ 0xBD17C1CE,0x3F7B29F9,0x3D740657,0xBB6E4126,0xBD181711,0x3F7B2364,0x3D74D8BE,0xBB6F7E76,
+ 0xBD186C38,0x3F7B1CCA,0x3D75AB58,0xBB70BC80,0xBD18C144,0x3F7B162D,0x3D767E25,0xBB71FB45,
+ 0xBD191634,0x3F7B0F8C,0x3D775125,0xBB733AC6,0xBD196B08,0x3F7B08E6,0x3D782458,0xBB747B01,
+ 0xBD19BFC1,0x3F7B023C,0x3D78F7BE,0xBB75BBF6,0xBD1A145E,0x3F7AFB8E,0x3D79CB57,0xBB76FDA6,
+ 0xBD1A68DF,0x3F7AF4DC,0x3D7A9F23,0xBB78400F,0xBD1ABD45,0x3F7AEE25,0x3D7B7322,0xBB798333,
+ 0xBD1B118F,0x3F7AE76B,0x3D7C4753,0xBB7AC710,0xBD1B65BE,0x3F7AE0AC,0x3D7D1BB7,0xBB7C0BA7,
+ 0xBD1BB9D1,0x3F7AD9E9,0x3D7DF04E,0xBB7D50F7,0xBD1C0DC8,0x3F7AD322,0x3D7EC518,0xBB7E9700,
+ 0xBD1C61A4,0x3F7ACC57,0x3D7F9A14,0xBB7FDDC2,0xBD1CB564,0x3F7AC587,0x3D8037A2,0xBB80929E,
+ 0xBD1D0909,0x3F7ABEB4,0x3D80A253,0xBB8136B8,0xBD1D5C92,0x3F7AB7DC,0x3D810D1D,0xBB81DB2E,
+ 0xBD1DB000,0x3F7AB100,0x3D817800,0xBB828000,0xBD1E0352,0x3F7AAA20,0x3D81E2FD,0xBB83252E,
+ 0xBD1E5689,0x3F7AA33C,0x3D824E12,0xBB83CAB8,0xBD1EA9A4,0x3F7A9C53,0x3D82B942,0xBB84709E,
+ 0xBD1EFCA4,0x3F7A9567,0x3D83248A,0xBB8516DF,0xBD1F4F88,0x3F7A8E76,0x3D838FEB,0xBB85BD7C,
+ 0xBD1FA251,0x3F7A8781,0x3D83FB66,0xBB866475,0xBD1FF4FF,0x3F7A8088,0x3D8466FA,0xBB870BC9,
+ 0xBD204791,0x3F7A798B,0x3D84D2A6,0xBB87B378,0xBD209A08,0x3F7A728A,0x3D853E6C,0xBB885B83,
+ 0xBD20EC63,0x3F7A6B85,0x3D85AA4C,0xBB8903E8,0xBD213EA3,0x3F7A647B,0x3D861644,0xBB89ACA9,
+ 0xBD2190C7,0x3F7A5D6D,0x3D868255,0xBB8A55C5,0xBD21E2D1,0x3F7A565C,0x3D86EE7F,0xBB8AFF3C,
+ 0xBD2234BE,0x3F7A4F46,0x3D875AC2,0xBB8BA90D,0xBD228691,0x3F7A482C,0x3D87C71F,0xBB8C5339,
+ 0xBD22D848,0x3F7A410E,0x3D883394,0xBB8CFDC0,0xBD2329E4,0x3F7A39EB,0x3D88A022,0xBB8DA8A1,
+ 0xBD237B64,0x3F7A32C5,0x3D890CC9,0xBB8E53DD,0xBD23CCCA,0x3F7A2B9A,0x3D89798A,0xBB8EFF73,
+ 0xBD241E14,0x3F7A246C,0x3D89E663,0xBB8FAB63,0xBD246F42,0x3F7A1D39,0x3D8A5354,0xBB9057AD,
+ 0xBD24C056,0x3F7A1602,0x3D8AC05F,0xBB910452,0xBD25114E,0x3F7A0EC7,0x3D8B2D83,0xBB91B150,
+ 0xBD25622B,0x3F7A0788,0x3D8B9AC0,0xBB925EA8,0xBD25B2ED,0x3F7A0045,0x3D8C0815,0xBB930C5A,
+ 0xBD260393,0x3F79F8FE,0x3D8C7583,0xBB93BA65,0xBD26541F,0x3F79F1B2,0x3D8CE30A,0xBB9468CA,
+ 0xBD26A48F,0x3F79EA63,0x3D8D50AA,0xBB951789,0xBD26F4E4,0x3F79E30F,0x3D8DBE62,0xBB95C6A1,
+ 0xBD27451E,0x3F79DBB8,0x3D8E2C33,0xBB967612,0xBD27953C,0x3F79D45C,0x3D8E9A1D,0xBB9725DD,
+ 0xBD27E540,0x3F79CCFC,0x3D8F0820,0xBB97D600,0xBD283528,0x3F79C598,0x3D8F763B,0xBB98867C,
+ 0xBD2884F6,0x3F79BE30,0x3D8FE46F,0xBB993752,0xBD28D4A8,0x3F79B6C4,0x3D9052BC,0xBB99E880,
+ 0xBD29243F,0x3F79AF54,0x3D90C121,0xBB9A9A07,0xBD2973BB,0x3F79A7E0,0x3D912F9F,0xBB9B4BE7,
+ 0xBD29C31C,0x3F79A067,0x3D919E36,0xBB9BFE1F,0xBD2A1262,0x3F7998EB,0x3D920CE5,0xBB9CB0AF,
+ 0xBD2A618D,0x3F79916A,0x3D927BAC,0xBB9D6398,0xBD2AB09D,0x3F7989E6,0x3D92EA8D,0xBB9E16D9,
+ 0xBD2AFF92,0x3F79825D,0x3D935985,0xBB9ECA72,0xBD2B4E6C,0x3F797AD1,0x3D93C897,0xBB9F7E64,
+ 0xBD2B9D2A,0x3F797340,0x3D9437C0,0xBBA032AD,0xBD2BEBCE,0x3F796BAB,0x3D94A703,0xBBA0E74E,
+ 0xBD2C3A57,0x3F796412,0x3D95165D,0xBBA19C47,0xBD2C88C5,0x3F795C75,0x3D9585D0,0xBBA25198,
+ 0xBD2CD718,0x3F7954D4,0x3D95F55C,0xBBA30740,0xBD2D2550,0x3F794D30,0x3D966500,0xBBA3BD40,
+ 0xBD2D736D,0x3F794586,0x3D96D4BC,0xBBA47397,0xBD2DC16F,0x3F793DD9,0x3D974491,0xBBA52A45,
+ 0xBD2E0F57,0x3F793628,0x3D97B47E,0xBBA5E14B,0xBD2E5D23,0x3F792E73,0x3D982483,0xBBA698A8,
+ 0xBD2EAAD5,0x3F7926BA,0x3D9894A1,0xBBA7505C,0xBD2EF86B,0x3F791EFD,0x3D9904D7,0xBBA80866,
+ 0xBD2F45E7,0x3F79173B,0x3D997526,0xBBA8C0C8,0xBD2F9348,0x3F790F76,0x3D99E58C,0xBBA97980,
+ 0xBD2FE08E,0x3F7907AD,0x3D9A560B,0xBBAA328F,0xBD302DB9,0x3F78FFDF,0x3D9AC6A2,0xBBAAEBF5,
+ 0xBD307ACA,0x3F78F80E,0x3D9B3751,0xBBABA5B1,0xBD30C7C0,0x3F78F038,0x3D9BA819,0xBBAC5FC3,
+ 0xBD31149A,0x3F78E85F,0x3D9C18F8,0xBBAD1A2C,0xBD31615B,0x3F78E081,0x3D9C89F0,0xBBADD4EB,
+ 0xBD31AE00,0x3F78D8A0,0x3D9CFB00,0xBBAE9000,0xBD31FA8B,0x3F78D0BA,0x3D9D6C28,0xBBAF4B6B,
+ 0xBD3246FB,0x3F78C8D1,0x3D9DDD68,0xBBB0072C,0xBD329350,0x3F78C0E3,0x3D9E4EC0,0xBBB0C343,
+ 0xBD32DF8A,0x3F78B8F2,0x3D9EC031,0xBBB17FAF,0xBD332BAA,0x3F78B0FC,0x3D9F31B9,0xBBB23C71,
+ 0xBD3377AF,0x3F78A903,0x3D9FA35A,0xBBB2F989,0xBD33C399,0x3F78A105,0x3DA01512,0xBBB3B6F6,
+ 0xBD340F69,0x3F789904,0x3DA086E2,0xBBB474B8,0xBD345B1E,0x3F7890FE,0x3DA0F8CB,0xBBB532D0,
+ 0xBD34A6B8,0x3F7888F5,0x3DA16ACB,0xBBB5F13C,0xBD34F238,0x3F7880E7,0x3DA1DCE4,0xBBB6AFFE,
+ 0xBD353D9D,0x3F7878D6,0x3DA24F14,0xBBB76F15,0xBD3588E8,0x3F7870C0,0x3DA2C15C,0xBBB82E81,
+ 0xBD35D418,0x3F7868A6,0x3DA333BC,0xBBB8EE41,0xBD361F2D,0x3F786089,0x3DA3A634,0xBBB9AE56,
+ 0xBD366A28,0x3F785868,0x3DA418C4,0xBBBA6EC0,0xBD36B508,0x3F785042,0x3DA48B6C,0xBBBB2F7E,
+ 0xBD36FFCE,0x3F784819,0x3DA4FE2B,0xBBBBF091,0xBD374A79,0x3F783FEB,0x3DA57102,0xBBBCB1F8,
+ 0xBD37950A,0x3F7837BA,0x3DA5E3F2,0xBBBD73B3,0xBD37DF80,0x3F782F84,0x3DA656F8,0xBBBE35C2,
+ 0xBD3829DB,0x3F78274B,0x3DA6CA17,0xBBBEF826,0xBD38741C,0x3F781F0E,0x3DA73D4D,0xBBBFBADD,
+ 0xBD38BE43,0x3F7816CD,0x3DA7B09C,0xBBC07DE8,0xBD39084F,0x3F780E87,0x3DA82401,0xBBC14147,
+ 0xBD395241,0x3F78063E,0x3DA8977F,0xBBC204F9,0xBD399C18,0x3F77FDF1,0x3DA90B14,0xBBC2C8FF,
+ 0xBD39E5D5,0x3F77F5A0,0x3DA97EC1,0xBBC38D59,0xBD3A2F77,0x3F77ED4B,0x3DA9F285,0xBBC45206,
+ 0xBD3A78FF,0x3F77E4F2,0x3DAA6661,0xBBC51706,0xBD3AC26D,0x3F77DC95,0x3DAADA55,0xBBC5DC5A,
+ 0xBD3B0BC0,0x3F77D434,0x3DAB4E60,0xBBC6A200,0xBD3B54F9,0x3F77CBCF,0x3DABC283,0xBBC767F9,
+ 0xBD3B9E17,0x3F77C366,0x3DAC36BD,0xBBC82E46,0xBD3BE71B,0x3F77BAFA,0x3DACAB0F,0xBBC8F4E5,
+ 0xBD3C3005,0x3F77B289,0x3DAD1F78,0xBBC9BBD7,0xBD3C78D5,0x3F77AA14,0x3DAD93F9,0xBBCA831C,
+ 0xBD3CC18A,0x3F77A19C,0x3DAE0891,0xBBCB4AB3,0xBD3D0A24,0x3F77991F,0x3DAE7D41,0xBBCC129C,
+ 0xBD3D52A5,0x3F77909F,0x3DAEF208,0xBBCCDAD8,0xBD3D9B0B,0x3F77881B,0x3DAF66E7,0xBBCDA366,
+ 0xBD3DE357,0x3F777F92,0x3DAFDBDD,0xBBCE6C46,0xBD3E2B89,0x3F777706,0x3DB050EB,0xBBCF3579,
+ 0xBD3E73A0,0x3F776E76,0x3DB0C60F,0xBBCFFEFD,0xBD3EBB9E,0x3F7765E2,0x3DB13B4C,0xBBD0C8D3,
+ 0xBD3F0381,0x3F775D4A,0x3DB1B09F,0xBBD192FB,0xBD3F4B49,0x3F7754AE,0x3DB2260A,0xBBD25D75,
+ 0xBD3F92F8,0x3F774C0E,0x3DB29B8C,0xBBD32840,0xBD3FDA8C,0x3F77436B,0x3DB31125,0xBBD3F35D,
+ 0xBD402207,0x3F773AC3,0x3DB386D6,0xBBD4BECB,0xBD406967,0x3F773218,0x3DB3FC9E,0xBBD58A8A,
+ 0xBD40B0AD,0x3F772968,0x3DB4727D,0xBBD6569B,0xBD40F7D8,0x3F7720B5,0x3DB4E873,0xBBD722FD,
+ 0xBD413EEA,0x3F7717FE,0x3DB55E81,0xBBD7EFB0,0xBD4185E2,0x3F770F43,0x3DB5D4A6,0xBBD8BCB3,
+ 0xBD41CCBF,0x3F770684,0x3DB64AE2,0xBBD98A08,0xBD421382,0x3F76FDC1,0x3DB6C135,0xBBDA57AD,
+ 0xBD425A2C,0x3F76F4FA,0x3DB7379F,0xBBDB25A3,0xBD42A0BB,0x3F76EC30,0x3DB7AE20,0xBBDBF3EA,
+ 0xBD42E730,0x3F76E361,0x3DB824B8,0xBBDCC281,0xBD432D8B,0x3F76DA8F,0x3DB89B68,0xBBDD9168,
+ 0xBD4373CC,0x3F76D1B8,0x3DB9122E,0xBBDE60A0,0xBD43B9F3,0x3F76C8DE,0x3DB9890C,0xBBDF3028,
+ 0xBD440000,0x3F76C000,0x3DBA0000,0xBBE00000,0xBD4445F3,0x3F76B71E,0x3DBA770B,0xBBE0D028,
+ 0xBD448BCC,0x3F76AE38,0x3DBAEE2E,0xBBE1A0A0,0xBD44D18B,0x3F76A54F,0x3DBB6567,0xBBE27168,
+ 0xBD451730,0x3F769C61,0x3DBBDCB8,0xBBE3427F,0xBD455CBB,0x3F769370,0x3DBC541F,0xBBE413E6,
+ 0xBD45A22C,0x3F768A7A,0x3DBCCB9D,0xBBE4E59D,0xBD45E784,0x3F768181,0x3DBD4332,0xBBE5B7A3,
+ 0xBD462CC1,0x3F767884,0x3DBDBADE,0xBBE689F8,0xBD4671E4,0x3F766F83,0x3DBE32A1,0xBBE75C9D,
+ 0xBD46B6EE,0x3F76667F,0x3DBEAA7B,0xBBE82F90,0xBD46FBDE,0x3F765D76,0x3DBF226C,0xBBE902D3,
+ 0xBD4740B3,0x3F76546A,0x3DBF9A73,0xBBE9D665,0xBD47856F,0x3F764B59,0x3DC01291,0xBBEAAA46,
+ 0xBD47CA11,0x3F764245,0x3DC08AC6,0xBBEB7E75,0xBD480E9A,0x3F76392D,0x3DC10312,0xBBEC52F3,
+ 0xBD485308,0x3F763012,0x3DC17B74,0xBBED27C0,0xBD48975D,0x3F7626F2,0x3DC1F3ED,0xBBEDFCDB,
+ 0xBD48DB97,0x3F761DCE,0x3DC26C7D,0xBBEED245,0xBD491FB8,0x3F7614A7,0x3DC2E523,0xBBEFA7FD,
+ 0xBD4963C0,0x3F760B7C,0x3DC35DE1,0xBBF07E03,0xBD49A7AD,0x3F76024D,0x3DC3D6B4,0xBBF15457,
+ 0xBD49EB81,0x3F75F91A,0x3DC44F9F,0xBBF22AFA,0xBD4A2F3B,0x3F75EFE4,0x3DC4C8A0,0xBBF301EA,
+ 0xBD4A72DB,0x3F75E6A9,0x3DC541B8,0xBBF3D928,0xBD4AB662,0x3F75DD6B,0x3DC5BAE6,0xBBF4B0B4,
+ 0xBD4AF9CE,0x3F75D429,0x3DC6342B,0xBBF5888D,0xBD4B3D21,0x3F75CAE3,0x3DC6AD86,0xBBF660B4,
+ 0xBD4B805B,0x3F75C199,0x3DC726F8,0xBBF73929,0xBD4BC37B,0x3F75B84B,0x3DC7A080,0xBBF811EB,
+ 0xBD4C0681,0x3F75AEFA,0x3DC81A1F,0xBBF8EAFA,0xBD4C496D,0x3F75A5A5,0x3DC893D4,0xBBF9C457,
+ 0xBD4C8C40,0x3F759C4C,0x3DC90DA0,0xBBFA9E00,0xBD4CCEF9,0x3F7592EF,0x3DC98782,0xBBFB77F6,
+ 0xBD4D1199,0x3F75898F,0x3DCA017B,0xBBFC523A,0xBD4D541F,0x3F75802A,0x3DCA7B8A,0xBBFD2CCA,
+ 0xBD4D968B,0x3F7576C2,0x3DCAF5AF,0xBBFE07A7,0xBD4DD8DE,0x3F756D56,0x3DCB6FEB,0xBBFEE2D1,
+ 0xBD4E1B17,0x3F7563E6,0x3DCBEA3D,0xBBFFBE47,0xBD4E5D37,0x3F755A73,0x3DCC64A6,0xBC004D05,
+ 0xBD4E9F3D,0x3F7550FB,0x3DCCDF24,0xBC00BB0C,0xBD4EE12A,0x3F754780,0x3DCD59BA,0xBC01293A,
+ 0xBD4F22FD,0x3F753E01,0x3DCDD465,0xBC01978D,0xBD4F64B6,0x3F75347F,0x3DCE4F27,0xBC020607,
+ 0xBD4FA656,0x3F752AF8,0x3DCEC9FE,0xBC0274A6,0xBD4FE7DD,0x3F75216E,0x3DCF44ED,0xBC02E36C,
+ 0xBD50294A,0x3F7517E0,0x3DCFBFF1,0xBC035258,0xBD506A9E,0x3F750E4E,0x3DD03B0B,0xBC03C169,
+ 0xBD50ABD8,0x3F7504B8,0x3DD0B63C,0xBC0430A0,0xBD50ECF9,0x3F74FB1F,0x3DD13183,0xBC049FFD,
+ 0xBD512E00,0x3F74F182,0x3DD1ACE0,0xBC050F7F,0xBD516EEE,0x3F74E7E1,0x3DD22853,0xBC057F28,
+ 0xBD51AFC3,0x3F74DE3C,0x3DD2A3DC,0xBC05EEF6,0xBD51F07E,0x3F74D494,0x3DD31F7B,0xBC065EE9,
+ 0xBD523120,0x3F74CAE8,0x3DD39B31,0xBC06CF02,0xBD5271A8,0x3F74C138,0x3DD416FC,0xBC073F40,
+ 0xBD52B217,0x3F74B784,0x3DD492DE,0xBC07AFA4,0xBD52F26D,0x3F74ADCD,0x3DD50ED5,0xBC08202D,
+ 0xBD5332A9,0x3F74A412,0x3DD58AE2,0xBC0890DC,0xBD5372CC,0x3F749A53,0x3DD60706,0xBC0901AF,
+ 0xBD53B2D6,0x3F749090,0x3DD6833F,0xBC0972A8,0xBD53F2C6,0x3F7486CA,0x3DD6FF8F,0xBC09E3C7,
+ 0xBD54329D,0x3F747D00,0x3DD77BF4,0xBC0A550A,0xBD54725B,0x3F747332,0x3DD7F86F,0xBC0AC673,
+ 0xBD54B200,0x3F746960,0x3DD87500,0xBC0B3800,0xBD54F18B,0x3F745F8B,0x3DD8F1A7,0xBC0BA9B2,
+ 0xBD5530FE,0x3F7455B2,0x3DD96E64,0xBC0C1B8A,0xBD557056,0x3F744BD5,0x3DD9EB36,0xBC0C8D86,
+ 0xBD55AF96,0x3F7441F4,0x3DDA681F,0xBC0CFFA8,0xBD55EEBD,0x3F743810,0x3DDAE51D,0xBC0D71EE,
+ 0xBD562DCA,0x3F742E28,0x3DDB6231,0xBC0DE458,0xBD566CBE,0x3F74243C,0x3DDBDF5B,0xBC0E56E8,
+ 0xBD56AB99,0x3F741A4D,0x3DDC5C9A,0xBC0EC99C,0xBD56EA5B,0x3F74105A,0x3DDCD9F0,0xBC0F3C75,
+ 0xBD572903,0x3F740663,0x3DDD575B,0xBC0FAF72,0xBD576793,0x3F73FC68,0x3DDDD4DC,0xBC102294,
+ 0xBD57A609,0x3F73F26A,0x3DDE5272,0xBC1095DA,0xBD57E467,0x3F73E868,0x3DDED01E,0xBC110945,
+ 0xBD5822AB,0x3F73DE62,0x3DDF4DE0,0xBC117CD5,0xBD5860D6,0x3F73D459,0x3DDFCBB7,0xBC11F088,
+ 0xBD589EE8,0x3F73CA4C,0x3DE049A4,0xBC126460,0xBD58DCE1,0x3F73C03B,0x3DE0C7A7,0xBC12D85C,
+ 0xBD591AC1,0x3F73B626,0x3DE145BF,0xBC134C7C,0xBD595888,0x3F73AC0E,0x3DE1C3EC,0xBC13C0C1,
+ 0xBD599636,0x3F73A1F2,0x3DE24230,0xBC14352A,0xBD59D3CA,0x3F7397D2,0x3DE2C088,0xBC14A9B6,
+ 0xBD5A1146,0x3F738DAF,0x3DE33EF7,0xBC151E67,0xBD5A4EA9,0x3F738388,0x3DE3BD7A,0xBC15933B,
+ 0xBD5A8BF3,0x3F73795E,0x3DE43C14,0xBC160834,0xBD5AC924,0x3F736F2F,0x3DE4BAC2,0xBC167D50,
+ 0xBD5B063C,0x3F7364FD,0x3DE53986,0xBC16F291,0xBD5B433B,0x3F735AC8,0x3DE5B860,0xBC1767F5,
+ 0xBD5B8021,0x3F73508E,0x3DE6374F,0xBC17DD7C,0xBD5BBCEE,0x3F734651,0x3DE6B653,0xBC185328,
+ 0xBD5BF9A2,0x3F733C10,0x3DE7356D,0xBC18C8F7,0xBD5C363E,0x3F7331CC,0x3DE7B49C,0xBC193EEA,
+ 0xBD5C72C0,0x3F732784,0x3DE833E0,0xBC19B500,0xBD5CAF2A,0x3F731D38,0x3DE8B33A,0xBC1A2B3A,
+ 0xBD5CEB7A,0x3F7312E9,0x3DE932A9,0xBC1AA197,0xBD5D27B2,0x3F730896,0x3DE9B22D,0xBC1B1818,
+ 0xBD5D63D1,0x3F72FE3F,0x3DEA31C6,0xBC1B8EBC,0xBD5D9FD7,0x3F72F3E5,0x3DEAB175,0xBC1C0583,
+ 0xBD5DDBC5,0x3F72E987,0x3DEB3139,0xBC1C7C6D,0xBD5E1799,0x3F72DF25,0x3DEBB112,0xBC1CF37B,
+ 0xBD5E5355,0x3F72D4C0,0x3DEC3100,0xBC1D6AAC,0xBD5E8EF8,0x3F72CA57,0x3DECB104,0xBC1DE200,
+ 0xBD5ECA82,0x3F72BFEA,0x3DED311D,0xBC1E5977,0xBD5F05F4,0x3F72B57A,0x3DEDB14B,0xBC1ED111,
+ 0xBD5F414C,0x3F72AB06,0x3DEE318D,0xBC1F48CE,0xBD5F7C8C,0x3F72A08F,0x3DEEB1E5,0xBC1FC0AF,
+ 0xBD5FB7B4,0x3F729614,0x3DEF3253,0xBC2038B2,0xBD5FF2C2,0x3F728B95,0x3DEFB2D5,0xBC20B0D7,
+ 0xBD602DB8,0x3F728112,0x3DF0336C,0xBC212920,0xBD606895,0x3F72768C,0x3DF0B418,0xBC21A18B,
+ 0xBD60A35A,0x3F726C03,0x3DF134DA,0xBC221A19,0xBD60DE05,0x3F726176,0x3DF1B5B0,0xBC2292CA,
+ 0xBD611899,0x3F7256E5,0x3DF2369B,0xBC230B9E,0xBD615313,0x3F724C50,0x3DF2B79B,0xBC238493,
+ 0xBD618D75,0x3F7241B8,0x3DF338B0,0xBC23FDAC,0xBD61C7BE,0x3F72371C,0x3DF3B9DB,0xBC2476E7,
+ 0xBD6201EF,0x3F722C7D,0x3DF43B1A,0xBC24F044,0xBD623C07,0x3F7221DA,0x3DF4BC6D,0xBC2569C4,
+ 0xBD627607,0x3F721733,0x3DF53DD6,0xBC25E366,0xBD62AFEE,0x3F720C89,0x3DF5BF54,0xBC265D2A,
+ 0xBD62E9BC,0x3F7201DB,0x3DF640E6,0xBC26D710,0xBD632372,0x3F71F72A,0x3DF6C28D,0xBC275119,
+ 0xBD635D0F,0x3F71EC75,0x3DF7444A,0xBC27CB44,0xBD639694,0x3F71E1BC,0x3DF7C61A,0xBC284591,
+ 0xBD63D000,0x3F71D700,0x3DF84800,0xBC28C000,0xBD640954,0x3F71CC40,0x3DF8C9FA,0xBC293A91,
+ 0xBD64428F,0x3F71C17D,0x3DF94C09,0xBC29B544,0xBD647BB2,0x3F71B6B6,0x3DF9CE2D,0xBC2A3019,
+ 0xBD64B4BC,0x3F71ABEB,0x3DFA5066,0xBC2AAB10,0xBD64EDAE,0x3F71A11D,0x3DFAD2B3,0xBC2B2628,
+ 0xBD652687,0x3F71964B,0x3DFB5515,0xBC2BA162,0xBD655F48,0x3F718B76,0x3DFBD78B,0xBC2C1CBE,
+ 0xBD6597F1,0x3F71809D,0x3DFC5A16,0xBC2C983C,0xBD65D081,0x3F7175C1,0x3DFCDCB6,0xBC2D13DB,
+ 0xBD6608F9,0x3F716AE1,0x3DFD5F6B,0xBC2D8F9C,0xBD664158,0x3F715FFD,0x3DFDE233,0xBC2E0B7F,
+ 0xBD66799F,0x3F715516,0x3DFE6511,0xBC2E8782,0xBD66B1CE,0x3F714A2B,0x3DFEE803,0xBC2F03A8,
+ 0xBD66E9E4,0x3F713F3D,0x3DFF6B09,0xBC2F7FEF,0xBD6721E2,0x3F71344B,0x3DFFEE24,0xBC2FFC57,
+ 0xBD6759C8,0x3F712956,0x3E0038AA,0xBC3078E0,0xBD679195,0x3F711E5D,0x3E007A4C,0xBC30F58B,
+ 0xBD67C94A,0x3F711360,0x3E00BBF8,0xBC317256,0xBD6800E7,0x3F710860,0x3E00FDAF,0xBC31EF43,
+ 0xBD68386C,0x3F70FD5C,0x3E013F6F,0xBC326C52,0xBD686FD8,0x3F70F255,0x3E01813A,0xBC32E981,
+ 0xBD68A72C,0x3F70E74A,0x3E01C30F,0xBC3366D1,0xBD68DE68,0x3F70DC3C,0x3E0204EE,0xBC33E442,
+ 0xBD69158B,0x3F70D12A,0x3E0246D8,0xBC3461D4,0xBD694C96,0x3F70C615,0x3E0288CB,0xBC34DF87,
+ 0xBD698389,0x3F70BAFC,0x3E02CAC9,0xBC355D5B,0xBD69BA64,0x3F70AFDF,0x3E030CD1,0xBC35DB4F,
+ 0xBD69F127,0x3F70A4BF,0x3E034EE3,0xBC365964,0xBD6A27D1,0x3F70999C,0x3E0390FF,0xBC36D79A,
+ 0xBD6A5E64,0x3F708E75,0x3E03D325,0xBC3755F1,0xBD6A94DE,0x3F70834A,0x3E041556,0xBC37D468,
+ 0xBD6ACB40,0x3F70781C,0x3E045790,0xBC385300,0xBD6B018A,0x3F706CEA,0x3E0499D5,0xBC38D1B8,
+ 0xBD6B37BC,0x3F7061B5,0x3E04DC23,0xBC395091,0xBD6B6DD5,0x3F70567D,0x3E051E7C,0xBC39CF8A,
+ 0xBD6BA3D7,0x3F704B40,0x3E0560DF,0xBC3A4EA4,0xBD6BD9C1,0x3F704001,0x3E05A34B,0xBC3ACDDD,
+ 0xBD6C0F92,0x3F7034BD,0x3E05E5C2,0xBC3B4D37,0xBD6C454C,0x3F702977,0x3E062843,0xBC3BCCB2,
+ 0xBD6C7AED,0x3F701E2C,0x3E066ACE,0xBC3C4C4C,0xBD6CB076,0x3F7012DF,0x3E06AD63,0xBC3CCC07,
+ 0xBD6CE5E8,0x3F70078D,0x3E06F002,0xBC3D4BE1,0xBD6D1B41,0x3F6FFC39,0x3E0732AB,0xBC3DCBDC,
+ 0xBD6D5082,0x3F6FF0E0,0x3E07755E,0xBC3E4BF6,0xBD6D85AC,0x3F6FE585,0x3E07B81B,0xBC3ECC31,
+ 0xBD6DBABD,0x3F6FDA25,0x3E07FAE2,0xBC3F4C8C,0xBD6DEFB7,0x3F6FCEC3,0x3E083DB3,0xBC3FCD06,
+ 0xBD6E2498,0x3F6FC35C,0x3E08808E,0xBC404DA0,0xBD6E5962,0x3F6FB7F3,0x3E08C373,0xBC40CE5A,
+ 0xBD6E8E13,0x3F6FAC86,0x3E090662,0xBC414F33,0xBD6EC2AD,0x3F6FA115,0x3E09495A,0xBC41D02D,
+ 0xBD6EF72F,0x3F6F95A1,0x3E098C5D,0xBC425146,0xBD6F2B99,0x3F6F8A29,0x3E09CF6A,0xBC42D27E,
+ 0xBD6F5FEB,0x3F6F7EAE,0x3E0A1280,0xBC4353D6,0xBD6F9425,0x3F6F732F,0x3E0A55A0,0xBC43D54D,
+ 0xBD6FC847,0x3F6F67AD,0x3E0A98CB,0xBC4456E4,0xBD6FFC51,0x3F6F5C28,0x3E0ADBFF,0xBC44D89A,
+ 0xBD703044,0x3F6F509F,0x3E0B1F3D,0xBC455A70,0xBD70641F,0x3F6F4512,0x3E0B6285,0xBC45DC64,
+ 0xBD7097E2,0x3F6F3982,0x3E0BA5D7,0xBC465E78,0xBD70CB8D,0x3F6F2DEF,0x3E0BE932,0xBC46E0AC,
+ 0xBD70FF20,0x3F6F2258,0x3E0C2C98,0xBC4762FE,0xBD71329C,0x3F6F16BE,0x3E0C7007,0xBC47E570,
+ 0xBD716600,0x3F6F0B20,0x3E0CB380,0xBC486800,0xBD71994C,0x3F6EFF7F,0x3E0CF703,0xBC48EAAF,
+ 0xBD71CC81,0x3F6EF3DA,0x3E0D3A90,0xBC496D7E,0xBD71FF9D,0x3F6EE832,0x3E0D7E26,0xBC49F06B,
+ 0xBD7232A2,0x3F6EDC86,0x3E0DC1C6,0xBC4A7378,0xBD72658F,0x3F6ED0D7,0x3E0E0570,0xBC4AF6A3,
+ 0xBD729865,0x3F6EC525,0x3E0E4924,0xBC4B79EC,0xBD72CB23,0x3F6EB96F,0x3E0E8CE2,0xBC4BFD55,
+ 0xBD72FDC9,0x3F6EADB6,0x3E0ED0A9,0xBC4C80DC,0xBD733058,0x3F6EA1F9,0x3E0F147A,0xBC4D0482,
+ 0xBD7362CE,0x3F6E9639,0x3E0F5855,0xBC4D8846,0xBD73952E,0x3F6E8A75,0x3E0F9C3A,0xBC4E0C29,
+ 0xBD73C775,0x3F6E7EAE,0x3E0FE028,0xBC4E902A,0xBD73F9A5,0x3F6E72E4,0x3E102420,0xBC4F144A,
+ 0xBD742BBE,0x3F6E6716,0x3E106822,0xBC4F9889,0xBD745DBF,0x3F6E5B44,0x3E10AC2D,0xBC501CE5,
+ 0xBD748FA8,0x3F6E4F70,0x3E10F042,0xBC50A160,0xBD74C17A,0x3F6E4397,0x3E113461,0xBC5125F9,
+ 0xBD74F334,0x3F6E37BC,0x3E117889,0xBC51AAB0,0xBD7524D7,0x3F6E2BDD,0x3E11BCBB,0xBC522F86,
+ 0xBD755662,0x3F6E1FFA,0x3E1200F7,0xBC52B47A,0xBD7587D5,0x3F6E1414,0x3E12453C,0xBC53398B,
+ 0xBD75B931,0x3F6E082B,0x3E12898B,0xBC53BEBB,0xBD75EA76,0x3F6DFC3F,0x3E12CDE4,0xBC544408,
+ 0xBD761BA3,0x3F6DF04F,0x3E131246,0xBC54C974,0xBD764CB9,0x3F6DE45B,0x3E1356B2,0xBC554EFD,
+ 0xBD767DB7,0x3F6DD864,0x3E139B27,0xBC55D4A5,0xBD76AE9E,0x3F6DCC6A,0x3E13DFA6,0xBC565A6A,
+ 0xBD76DF6D,0x3F6DC06C,0x3E14242E,0xBC56E04C,0xBD771025,0x3F6DB46B,0x3E1468C0,0xBC57664D,
+ 0xBD7740C5,0x3F6DA867,0x3E14AD5C,0xBC57EC6B,0xBD77714E,0x3F6D9C5F,0x3E14F201,0xBC5872A7,
+ 0xBD77A1C0,0x3F6D9054,0x3E1536B0,0xBC58F900,0xBD77D21A,0x3F6D8445,0x3E157B68,0xBC597F77,
+ 0xBD78025D,0x3F6D7833,0x3E15C02A,0xBC5A060B,0xBD783289,0x3F6D6C1E,0x3E1604F5,0xBC5A8CBD,
+ 0xBD78629D,0x3F6D6005,0x3E1649CA,0xBC5B138C,0xBD78929A,0x3F6D53E9,0x3E168EA8,0xBC5B9A78,
+ 0xBD78C280,0x3F6D47CA,0x3E16D390,0xBC5C2181,0xBD78F24E,0x3F6D3BA7,0x3E171882,0xBC5CA8A8,
+ 0xBD792205,0x3F6D2F81,0x3E175D7C,0xBC5D2FEC,0xBD7951A5,0x3F6D2357,0x3E17A280,0xBC5DB74D,
+ 0xBD79812D,0x3F6D172A,0x3E17E78E,0xBC5E3ECB,0xBD79B09E,0x3F6D0AFA,0x3E182CA5,0xBC5EC666,
+ 0xBD79DFF8,0x3F6CFEC7,0x3E1871C6,0xBC5F4E1E,0xBD7A0F3B,0x3F6CF290,0x3E18B6F0,0xBC5FD5F4,
+ 0xBD7A3E67,0x3F6CE655,0x3E18FC23,0xBC605DE6,0xBD7A6D7B,0x3F6CDA18,0x3E194160,0xBC60E5F4,
+ 0xBD7A9C78,0x3F6CCDD6,0x3E1986A6,0xBC616E20,0xBD7ACB5E,0x3F6CC192,0x3E19CBF6,0xBC61F668,
+ 0xBD7AFA2D,0x3F6CB54A,0x3E1A114F,0xBC627ECD,0xBD7B28E4,0x3F6CA8FF,0x3E1A56B1,0xBC63074F,
+ 0xBD7B5785,0x3F6C9CB1,0x3E1A9C1D,0xBC638FEE,0xBD7B860E,0x3F6C905F,0x3E1AE192,0xBC6418A8,
+ 0xBD7BB480,0x3F6C840A,0x3E1B2710,0xBC64A180,0xBD7BE2DB,0x3F6C77B2,0x3E1B6C98,0xBC652A74,
+ 0xBD7C111F,0x3F6C6B56,0x3E1BB229,0xBC65B384,0xBD7C3F4C,0x3F6C5EF7,0x3E1BF7C3,0xBC663CB1,
+ 0xBD7C6D62,0x3F6C5294,0x3E1C3D67,0xBC66C5FA,0xBD7C9B60,0x3F6C462F,0x3E1C8314,0xBC674F5F,
+ 0xBD7CC948,0x3F6C39C5,0x3E1CC8CA,0xBC67D8E0,0xBD7CF718,0x3F6C2D59,0x3E1D0E8A,0xBC68627E,
+ 0xBD7D24D2,0x3F6C20E9,0x3E1D5453,0xBC68EC38,0xBD7D5274,0x3F6C1476,0x3E1D9A25,0xBC69760E,
+ 0xBD7D8000,0x3F6C0800,0x3E1DE000,0xBC6A0000,0xBD7DAD75,0x3F6BFB86,0x3E1E25E5,0xBC6A8A0E,
+ 0xBD7DDAD2,0x3F6BEF09,0x3E1E6BD2,0xBC6B1438,0xBD7E0819,0x3F6BE289,0x3E1EB1CA,0xBC6B9E7E,
+ 0xBD7E3548,0x3F6BD606,0x3E1EF7CA,0xBC6C28E0,0xBD7E6261,0x3F6BC97F,0x3E1F3DD3,0xBC6CB35D,
+ 0xBD7E8F62,0x3F6BBCF4,0x3E1F83E6,0xBC6D3DF6,0xBD7EBC4D,0x3F6BB067,0x3E1FCA02,0xBC6DC8AB,
+ 0xBD7EE921,0x3F6BA3D6,0x3E201027,0xBC6E537C,0xBD7F15DE,0x3F6B9742,0x3E205656,0xBC6EDE68,
+ 0xBD7F4284,0x3F6B8AAB,0x3E209C8D,0xBC6F6970,0xBD7F6F13,0x3F6B7E10,0x3E20E2CE,0xBC6FF494,
+ 0xBD7F9B8B,0x3F6B7172,0x3E212917,0xBC707FD2,0xBD7FC7ED,0x3F6B64D1,0x3E216F6A,0xBC710B2D,
+ 0xBD7FF437,0x3F6B582C,0x3E21B5C6,0xBC7196A3,0xBD801036,0x3F6B4B85,0x3E21FC2C,0xBC722234,
+ 0xBD802644,0x3F6B3EDA,0x3E22429A,0xBC72ADE0,0xBD803C47,0x3F6B322B,0x3E228911,0xBC7339A8,
+ 0xBD80523F,0x3F6B257A,0x3E22CF92,0xBC73C58A,0xBD80682B,0x3F6B18C5,0x3E23161C,0xBC745188,
+ 0xBD807E0C,0x3F6B0C0C,0x3E235CAE,0xBC74DDA2,0xBD8093E1,0x3F6AFF51,0x3E23A34A,0xBC7569D6,
+ 0xBD80A9AB,0x3F6AF292,0x3E23E9EF,0xBC75F625,0xBD80BF6A,0x3F6AE5D0,0x3E24309D,0xBC76828F,
+ 0xBD80D51E,0x3F6AD90B,0x3E247754,0xBC770F14,0xBD80EAC6,0x3F6ACC43,0x3E24BE14,0xBC779BB4,
+ 0xBD810062,0x3F6ABF77,0x3E2504DD,0xBC78286F,0xBD8115F3,0x3F6AB2A8,0x3E254BAF,0xBC78B544,
+ 0xBD812B79,0x3F6AA5D6,0x3E25928A,0xBC794234,0xBD8140F4,0x3F6A9900,0x3E25D96E,0xBC79CF3F,
+ 0xBD815663,0x3F6A8C27,0x3E26205B,0xBC7A5C65,0xBD816BC7,0x3F6A7F4B,0x3E266751,0xBC7AE9A5,
+ 0xBD818120,0x3F6A726C,0x3E26AE50,0xBC7B7700,0xBD81966D,0x3F6A658A,0x3E26F558,0xBC7C0475,
+ 0xBD81ABAF,0x3F6A58A4,0x3E273C69,0xBC7C9205,0xBD81C0E6,0x3F6A4BBB,0x3E278383,0xBC7D1FAF,
+ 0xBD81D612,0x3F6A3ECF,0x3E27CAA6,0xBC7DAD74,0xBD81EB32,0x3F6A31DF,0x3E2811D1,0xBC7E3B52,
+ 0xBD820047,0x3F6A24EC,0x3E285906,0xBC7EC94B,0xBD821550,0x3F6A17F7,0x3E28A044,0xBC7F575F,
+ 0xBD822A4E,0x3F6A0AFD,0x3E28E78A,0xBC7FE58C,0xBD823F42,0x3F69FE01,0x3E292EDA,0xBC8039EA,
+ 0xBD825429,0x3F69F102,0x3E297632,0xBC80811B,0xBD826906,0x3F69E3FF,0x3E29BD93,0xBC80C858,
+ 0xBD827DD7,0x3F69D6F9,0x3E2A04FD,0xBC810FA3,0xBD82929D,0x3F69C9EF,0x3E2A4C70,0xBC8156FB,
+ 0xBD82A758,0x3F69BCE3,0x3E2A93EC,0xBC819E60,0xBD82BC08,0x3F69AFD3,0x3E2ADB71,0xBC81E5D1,
+ 0xBD82D0AC,0x3F69A2C0,0x3E2B22FE,0xBC822D50,0xBD82E545,0x3F6995AA,0x3E2B6A94,0xBC8274DB,
+ 0xBD82F9D3,0x3F698891,0x3E2BB233,0xBC82BC74,0xBD830E56,0x3F697B75,0x3E2BF9DB,0xBC830419,
+ 0xBD8322CD,0x3F696E55,0x3E2C418C,0xBC834BCB,0xBD83373A,0x3F696132,0x3E2C8946,0xBC839389,
+ 0xBD834B9B,0x3F69540C,0x3E2CD108,0xBC83DB55,0xBD835FF1,0x3F6946E3,0x3E2D18D3,0xBC84232D,
+ 0xBD83743C,0x3F6939B6,0x3E2D60A7,0xBC846B12,0xBD83887B,0x3F692C87,0x3E2DA883,0xBC84B304,
+ 0xBD839CB0,0x3F691F54,0x3E2DF069,0xBC84FB02,0xBD83B0D9,0x3F69121E,0x3E2E3857,0xBC85430D,
+ 0xBD83C4F7,0x3F6904E5,0x3E2E804E,0xBC858B24,0xBD83D90A,0x3F68F7A8,0x3E2EC84D,0xBC85D348,
+ 0xBD83ED12,0x3F68EA69,0x3E2F1055,0xBC861B79,0xBD84010E,0x3F68DD26,0x3E2F5866,0xBC8663B6,
+ 0xBD841500,0x3F68CFE0,0x3E2FA080,0xBC86AC00,0xBD8428E6,0x3F68C297,0x3E2FE8A2,0xBC86F456,
+ 0xBD843CC2,0x3F68B54B,0x3E3030CD,0xBC873CB9,0xBD845092,0x3F68A7FB,0x3E307901,0xBC878528,
+ 0xBD846457,0x3F689AA9,0x3E30C13D,0xBC87CDA4,0xBD847811,0x3F688D53,0x3E310982,0xBC88162C,
+ 0xBD848BC0,0x3F687FFA,0x3E3151D0,0xBC885EC0,0xBD849F64,0x3F68729E,0x3E319A26,0xBC88A761,
+ 0xBD84B2FC,0x3F68653F,0x3E31E285,0xBC88F00E,0xBD84C68A,0x3F6857DC,0x3E322AED,0xBC8938C7,
+ 0xBD84DA0D,0x3F684A77,0x3E32735D,0xBC89818D,0xBD84ED84,0x3F683D0E,0x3E32BBD6,0xBC89CA5F,
+ 0xBD8500F1,0x3F682FA2,0x3E330457,0xBC8A133D,0xBD851452,0x3F682233,0x3E334CE1,0xBC8A5C28,
+ 0xBD8527A8,0x3F6814C1,0x3E339573,0xBC8AA51E,0xBD853AF4,0x3F68074C,0x3E33DE0E,0xBC8AEE21,
+ 0xBD854E34,0x3F67F9D4,0x3E3426B2,0xBC8B3730,0xBD856169,0x3F67EC58,0x3E346F5E,0xBC8B804B,
+ 0xBD857493,0x3F67DED9,0x3E34B813,0xBC8BC972,0xBD8587B3,0x3F67D157,0x3E3500D0,0xBC8C12A5,
+ 0xBD859AC7,0x3F67C3D3,0x3E354996,0xBC8C5BE5,0xBD85ADD0,0x3F67B64A,0x3E359264,0xBC8CA530,
+ 0xBD85C0CE,0x3F67A8BF,0x3E35DB3B,0xBC8CEE87,0xBD85D3C1,0x3F679B31,0x3E36241A,0xBC8D37EB,
+ 0xBD85E6AA,0x3F678DA0,0x3E366D02,0xBC8D815A,0xBD85F987,0x3F67800B,0x3E36B5F2,0xBC8DCAD5,
+ 0xBD860C59,0x3F677273,0x3E36FEEB,0xBC8E145C,0xBD861F20,0x3F6764D9,0x3E3747EC,0xBC8E5DEF,
+ 0xBD8631DC,0x3F67573B,0x3E3790F5,0xBC8EA78E,0xBD86448E,0x3F67499A,0x3E37DA07,0xBC8EF139,
+ 0xBD865734,0x3F673BF6,0x3E382322,0xBC8F3AF0,0xBD8669D0,0x3F672E4E,0x3E386C45,0xBC8F84B2,
+ 0xBD867C60,0x3F6720A4,0x3E38B570,0xBC8FCE80,0xBD868EE6,0x3F6712F7,0x3E38FEA4,0xBC90185A,
+ 0xBD86A160,0x3F670546,0x3E3947E0,0xBC90623F,0xBD86B3D0,0x3F66F792,0x3E399124,0xBC90AC31,
+ 0xBD86C635,0x3F66E9DC,0x3E39DA71,0xBC90F62E,0xBD86D88E,0x3F66DC22,0x3E3A23C6,0xBC914036,
+ 0xBD86EADD,0x3F66CE65,0x3E3A6D24,0xBC918A4B,0xBD86FD21,0x3F66C0A5,0x3E3AB68A,0xBC91D46B,
+ 0xBD870F5A,0x3F66B2E2,0x3E3AFFF8,0xBC921E96,0xBD872189,0x3F66A51C,0x3E3B496F,0xBC9268CD,
+ 0xBD8733AC,0x3F669753,0x3E3B92EE,0xBC92B310,0xBD8745C5,0x3F668986,0x3E3BDC75,0xBC92FD5E,
+ 0xBD8757D2,0x3F667BB7,0x3E3C2605,0xBC9347B7,0xBD8769D5,0x3F666DE4,0x3E3C6F9D,0xBC93921C,
+ 0xBD877BCD,0x3F66600F,0x3E3CB93D,0xBC93DC8D,0xBD878DBA,0x3F665236,0x3E3D02E5,0xBC942709,
+ 0xBD879F9C,0x3F66445A,0x3E3D4C96,0xBC947190,0xBD87B173,0x3F66367C,0x3E3D964F,0xBC94BC23,
+ 0xBD87C340,0x3F66289A,0x3E3DE010,0xBC9506C1,0xBD87D501,0x3F661AB5,0x3E3E29DA,0xBC95516A,
+ 0xBD87E6B8,0x3F660CCD,0x3E3E73AC,0xBC959C1F,0xBD87F864,0x3F65FEE2,0x3E3EBD86,0xBC95E6DF,
+ 0xBD880A06,0x3F65F0F4,0x3E3F0768,0xBC9631AA,0xBD881B9C,0x3F65E303,0x3E3F5152,0xBC967C80,
+ 0xBD882D28,0x3F65D50F,0x3E3F9B45,0xBC96C762,0xBD883EA8,0x3F65C718,0x3E3FE540,0xBC97124F,
+ 0xBD88501E,0x3F65B91D,0x3E402F43,0xBC975D47,0xBD88618A,0x3F65AB20,0x3E40794E,0xBC97A84A,
+ 0xBD8872EA,0x3F659D20,0x3E40C361,0xBC97F358,0xBD888440,0x3F658F1C,0x3E410D7D,0xBC983E72,
+ 0xBD88958A,0x3F658116,0x3E4157A0,0xBC988996,0xBD88A6CB,0x3F65730C,0x3E41A1CC,0xBC98D4C6,
+ 0xBD88B800,0x3F656500,0x3E41EC00,0xBC992000,0xBD88C92B,0x3F6556F0,0x3E42363C,0xBC996B45,
+ 0xBD88DA4B,0x3F6548DE,0x3E428080,0xBC99B696,0xBD88EB60,0x3F653AC8,0x3E42CACD,0xBC9A01F1,
+ 0xBD88FC6A,0x3F652CB0,0x3E431521,0xBC9A4D58,0xBD890D6A,0x3F651E94,0x3E435F7D,0xBC9A98C9,
+ 0xBD891E5F,0x3F651076,0x3E43A9E2,0xBC9AE445,0xBD892F49,0x3F650254,0x3E43F44F,0xBC9B2FCC,
+ 0xBD894028,0x3F64F42F,0x3E443EC3,0xBC9B7B5E,0xBD8950FD,0x3F64E608,0x3E448940,0xBC9BC6FB,
+ 0xBD8961C7,0x3F64D7DD,0x3E44D3C5,0xBC9C12A2,0xBD897287,0x3F64C9AF,0x3E451E52,0xBC9C5E54,
+ 0xBD89833C,0x3F64BB7E,0x3E4568E6,0xBC9CAA11,0xBD8993E6,0x3F64AD4B,0x3E45B383,0xBC9CF5D9,
+ 0xBD89A485,0x3F649F14,0x3E45FE28,0xBC9D41AB,0xBD89B51A,0x3F6490DA,0x3E4648D5,0xBC9D8D88,
+ 0xBD89C5A4,0x3F64829E,0x3E46938A,0xBC9DD970,0xBD89D623,0x3F64745E,0x3E46DE47,0xBC9E2562,
+ 0xBD89E698,0x3F64661B,0x3E47290C,0xBC9E715F,0xBD89F702,0x3F6457D5,0x3E4773D9,0xBC9EBD67,
+ 0xBD8A0762,0x3F64498D,0x3E47BEAD,0xBC9F0979,0xBD8A17B7,0x3F643B41,0x3E48098A,0xBC9F5595,
+ 0xBD8A2801,0x3F642CF2,0x3E48546F,0xBC9FA1BC,0xBD8A3841,0x3F641EA1,0x3E489F5B,0xBC9FEDEE,
+ 0xBD8A4876,0x3F64104C,0x3E48EA50,0xBCA03A2A,0xBD8A58A0,0x3F6401F4,0x3E49354C,0xBCA08670,
+ 0xBD8A68C0,0x3F63F39A,0x3E498051,0xBCA0D2C1,0xBD8A78D5,0x3F63E53C,0x3E49CB5D,0xBCA11F1D,
+ 0xBD8A88DF,0x3F63D6DC,0x3E4A1671,0xBCA16B82,0xBD8A98DF,0x3F63C878,0x3E4A618D,0xBCA1B7F2,
+ 0xBD8AA8D5,0x3F63BA12,0x3E4AACB1,0xBCA2046D,0xBD8AB8C0,0x3F63ABA8,0x3E4AF7DC,0xBCA250F1,
+ 0xBD8AC8A0,0x3F639D3C,0x3E4B4310,0xBCA29D80,0xBD8AD876,0x3F638ECD,0x3E4B8E4B,0xBCA2EA19,
+ 0xBD8AE841,0x3F63805A,0x3E4BD98F,0xBCA336BC,0xBD8AF801,0x3F6371E5,0x3E4C24DA,0xBCA3836A,
+ 0xBD8B07B8,0x3F63636D,0x3E4C702D,0xBCA3D022,0xBD8B1763,0x3F6354F2,0x3E4CBB87,0xBCA41CE4,
+ 0xBD8B2704,0x3F634674,0x3E4D06EA,0xBCA469B0,0xBD8B369B,0x3F6337F2,0x3E4D5254,0xBCA4B686,
+ 0xBD8B4626,0x3F63296E,0x3E4D9DC6,0xBCA50366,0xBD8B55A8,0x3F631AE7,0x3E4DE940,0xBCA55050,
+ 0xBD8B651F,0x3F630C5E,0x3E4E34C2,0xBCA59D45,0xBD8B748B,0x3F62FDD1,0x3E4E804B,0xBCA5EA43,
+ 0xBD8B83ED,0x3F62EF41,0x3E4ECBDC,0xBCA6374B,0xBD8B9345,0x3F62E0AE,0x3E4F1775,0xBCA6845E,
+ 0xBD8BA292,0x3F62D219,0x3E4F6316,0xBCA6D17A,0xBD8BB1D4,0x3F62C380,0x3E4FAEBE,0xBCA71EA0,
+ 0xBD8BC10C,0x3F62B4E4,0x3E4FFA6E,0xBCA76BD0,0xBD8BD03A,0x3F62A646,0x3E504626,0xBCA7B90A,
+ 0xBD8BDF5D,0x3F6297A5,0x3E5091E5,0xBCA8064E,0xBD8BEE75,0x3F628900,0x3E50DDAC,0xBCA8539B,
+ 0xBD8BFD83,0x3F627A59,0x3E51297B,0xBCA8A0F3,0xBD8C0C87,0x3F626BAF,0x3E517551,0xBCA8EE54,
+ 0xBD8C1B80,0x3F625D02,0x3E51C130,0xBCA93BBF,0xBD8C2A6F,0x3F624E52,0x3E520D15,0xBCA98934,
+ 0xBD8C3954,0x3F623F9F,0x3E525903,0xBCA9D6B2,0xBD8C482D,0x3F6230EA,0x3E52A4F8,0xBCAA243A,
+ 0xBD8C56FD,0x3F622231,0x3E52F0F4,0xBCAA71CC,0xBD8C65C2,0x3F621375,0x3E533CF9,0xBCAABF67,
+ 0xBD8C747D,0x3F6204B7,0x3E538905,0xBCAB0D0C,0xBD8C832D,0x3F61F5F5,0x3E53D518,0xBCAB5ABB,
+ 0xBD8C91D3,0x3F61E731,0x3E542133,0xBCABA873,0xBD8CA06F,0x3F61D86A,0x3E546D56,0xBCABF635,
+ 0xBD8CAF00,0x3F61C9A0,0x3E54B980,0xBCAC4400,0xBD8CBD87,0x3F61BAD3,0x3E5505B2,0xBCAC91D5,
+ 0xBD8CCC03,0x3F61AC03,0x3E5551EB,0xBCACDFB3,0xBD8CDA75,0x3F619D31,0x3E559E2C,0xBCAD2D9B,
+ 0xBD8CE8DD,0x3F618E5B,0x3E55EA74,0xBCAD7B8C,0xBD8CF73A,0x3F617F82,0x3E5636C4,0xBCADC986,
+ 0xBD8D058D,0x3F6170A7,0x3E56831C,0xBCAE178A,0xBD8D13D6,0x3F6161C9,0x3E56CF7B,0xBCAE6597,
+ 0xBD8D2214,0x3F6152E8,0x3E571BE1,0xBCAEB3AE,0xBD8D3049,0x3F614404,0x3E57684F,0xBCAF01CE,
+ 0xBD8D3E72,0x3F61351D,0x3E57B4C5,0xBCAF4FF7,0xBD8D4C92,0x3F612633,0x3E580142,0xBCAF9E2A,
+ 0xBD8D5AA7,0x3F611747,0x3E584DC6,0xBCAFEC65,0xBD8D68B1,0x3F610857,0x3E589A52,0xBCB03AAA,
+ 0xBD8D76B2,0x3F60F965,0x3E58E6E5,0xBCB088F8,0xBD8D84A8,0x3F60EA70,0x3E593380,0xBCB0D750,
+ 0xBD8D9294,0x3F60DB78,0x3E598022,0xBCB125B0,0xBD8DA076,0x3F60CC7D,0x3E59CCCC,0xBCB1741A,
+ 0xBD8DAE4D,0x3F60BD7F,0x3E5A197D,0xBCB1C28C,0xBD8DBC1A,0x3F60AE7E,0x3E5A6635,0xBCB21108,
+ 0xBD8DC9DD,0x3F609F7B,0x3E5AB2F5,0xBCB25F8D,0xBD8DD795,0x3F609075,0x3E5AFFBC,0xBCB2AE1B,
+ 0xBD8DE544,0x3F60816B,0x3E5B4C8B,0xBCB2FCB1,0xBD8DF2E8,0x3F60725F,0x3E5B9960,0xBCB34B51,
+ 0xBD8E0082,0x3F606351,0x3E5BE63E,0xBCB399FA,0xBD8E0E11,0x3F60543F,0x3E5C3322,0xBCB3E8AC,
+ 0xBD8E1B96,0x3F60452A,0x3E5C800E,0xBCB43766,0xBD8E2912,0x3F603613,0x3E5CCD02,0xBCB4862A,
+ 0xBD8E3682,0x3F6026F9,0x3E5D19FC,0xBCB4D4F6,0xBD8E43E9,0x3F6017DC,0x3E5D66FE,0xBCB523CB,
+ 0xBD8E5146,0x3F6008BC,0x3E5DB408,0xBCB572AA,0xBD8E5E98,0x3F5FF999,0x3E5E0118,0xBCB5C190,
+ 0xBD8E6BE0,0x3F5FEA74,0x3E5E4E30,0xBCB61080,0xBD8E791E,0x3F5FDB4C,0x3E5E9B4F,0xBCB65F78,
+ 0xBD8E8652,0x3F5FCC21,0x3E5EE876,0xBCB6AE79,0xBD8E937B,0x3F5FBCF3,0x3E5F35A3,0xBCB6FD83,
+ 0xBD8EA09B,0x3F5FADC2,0x3E5F82D8,0xBCB74C96,0xBD8EADB0,0x3F5F9E8E,0x3E5FD014,0xBCB79BB1,
+ 0xBD8EBABB,0x3F5F8F58,0x3E601D58,0xBCB7EAD5,0xBD8EC7BC,0x3F5F801F,0x3E606AA2,0xBCB83A01,
+ 0xBD8ED4B2,0x3F5F70E3,0x3E60B7F4,0xBCB88936,0xBD8EE19F,0x3F5F61A4,0x3E61054D,0xBCB8D874,
+ 0xBD8EEE82,0x3F5F5263,0x3E6152AE,0xBCB927BA,0xBD8EFB5A,0x3F5F431E,0x3E61A015,0xBCB97708,
+ 0xBD8F0828,0x3F5F33D7,0x3E61ED84,0xBCB9C65F,0xBD8F14EC,0x3F5F248D,0x3E623AFA,0xBCBA15BF,
+ 0xBD8F21A6,0x3F5F1540,0x3E628877,0xBCBA6527,0xBD8F2E56,0x3F5F05F1,0x3E62D5FB,0xBCBAB497,
+ 0xBD8F3AFC,0x3F5EF69E,0x3E632386,0xBCBB0410,0xBD8F4798,0x3F5EE749,0x3E637118,0xBCBB5391,
+ 0xBD8F5429,0x3F5ED7F1,0x3E63BEB2,0xBCBBA31B,0xBD8F60B1,0x3F5EC897,0x3E640C53,0xBCBBF2AD,
+ 0xBD8F6D2E,0x3F5EB939,0x3E6459FB,0xBCBC4247,0xBD8F79A2,0x3F5EA9D9,0x3E64A7A9,0xBCBC91E9,
+ 0xBD8F860B,0x3F5E9A76,0x3E64F55F,0xBCBCE194,0xBD8F926A,0x3F5E8B10,0x3E65431D,0xBCBD3147,
+ 0xBD8F9EC0,0x3F5E7BA8,0x3E6590E1,0xBCBD8102,0xBD8FAB0B,0x3F5E6C3C,0x3E65DEAC,0xBCBDD0C5,
+ 0xBD8FB74C,0x3F5E5CCE,0x3E662C7E,0xBCBE2091,0xBD8FC383,0x3F5E4D5E,0x3E667A58,0xBCBE7064,
+ 0xBD8FCFB0,0x3F5E3DEA,0x3E66C838,0xBCBEC040,0xBD8FDBD3,0x3F5E2E74,0x3E671620,0xBCBF1024,
+ 0xBD8FE7EC,0x3F5E1EFA,0x3E67640E,0xBCBF6010,0xBD8FF3FB,0x3F5E0F7F,0x3E67B204,0xBCBFB004,
+ 0xBD900000,0x3F5E0000,0x3E680000,0xBCC00000,0xBD900BFB,0x3F5DF07F,0x3E684E03,0xBCC05004,
+ 0xBD9017EC,0x3F5DE0FB,0x3E689C0E,0xBCC0A010,0xBD9023D3,0x3F5DD174,0x3E68EA1F,0xBCC0F024,
+ 0xBD902FB0,0x3F5DC1EA,0x3E693838,0xBCC14040,0xBD903B83,0x3F5DB25E,0x3E698657,0xBCC19064,
+ 0xBD90474C,0x3F5DA2CF,0x3E69D47E,0xBCC1E08F,0xBD90530B,0x3F5D933D,0x3E6A22AB,0xBCC230C3,
+ 0xBD905EC0,0x3F5D83A8,0x3E6A70DF,0xBCC280FE,0xBD906A6C,0x3F5D7411,0x3E6ABF1A,0xBCC2D141,
+ 0xBD90760D,0x3F5D6477,0x3E6B0D5D,0xBCC3218C,0xBD9081A4,0x3F5D54DA,0x3E6B5BA6,0xBCC371DF,
+ 0xBD908D32,0x3F5D453B,0x3E6BA9F5,0xBCC3C239,0xBD9098B5,0x3F5D3598,0x3E6BF84C,0xBCC4129B,
+ 0xBD90A42F,0x3F5D25F4,0x3E6C46AA,0xBCC46305,0xBD90AF9E,0x3F5D164C,0x3E6C950F,0xBCC4B377,
+ 0xBD90BB04,0x3F5D06A2,0x3E6CE37A,0xBCC503F0,0xBD90C660,0x3F5CF6F4,0x3E6D31EC,0xBCC55471,
+ 0xBD90D1B2,0x3F5CE745,0x3E6D8065,0xBCC5A4F9,0xBD90DCFA,0x3F5CD792,0x3E6DCEE5,0xBCC5F589,
+ 0xBD90E838,0x3F5CC7DD,0x3E6E1D6C,0xBCC64621,0xBD90F36C,0x3F5CB825,0x3E6E6BFA,0xBCC696C0,
+ 0xBD90FE96,0x3F5CA86A,0x3E6EBA8E,0xBCC6E766,0xBD9109B7,0x3F5C98AD,0x3E6F092A,0xBCC73814,
+ 0xBD9114CE,0x3F5C88ED,0x3E6F57CC,0xBCC788CA,0xBD911FDA,0x3F5C792A,0x3E6FA675,0xBCC7D987,
+ 0xBD912ADD,0x3F5C6965,0x3E6FF524,0xBCC82A4B,0xBD9135D6,0x3F5C599D,0x3E7043DB,0xBCC87B17,
+ 0xBD9140C5,0x3F5C49D2,0x3E709298,0xBCC8CBEA,0xBD914BAB,0x3F5C3A05,0x3E70E15C,0xBCC91CC5,
+ 0xBD915686,0x3F5C2A34,0x3E713026,0xBCC96DA7,0xBD916158,0x3F5C1A62,0x3E717EF8,0xBCC9BE90,
+ 0xBD916C20,0x3F5C0A8C,0x3E71CDD0,0xBCCA0F80,0xBD9176DE,0x3F5BFAB4,0x3E721CAF,0xBCCA6078,
+ 0xBD918192,0x3F5BEAD9,0x3E726B94,0xBCCAB176,0xBD918C3D,0x3F5BDAFB,0x3E72BA81,0xBCCB027D,
+ 0xBD9196DE,0x3F5BCB1B,0x3E730974,0xBCCB538A,0xBD91A174,0x3F5BBB38,0x3E73586D,0xBCCBA49E,
+ 0xBD91AC02,0x3F5BAB53,0x3E73A76E,0xBCCBF5BA,0xBD91B685,0x3F5B9B6A,0x3E73F675,0xBCCC46DC,
+ 0xBD91C0FE,0x3F5B8B7F,0x3E744582,0xBCCC9806,0xBD91CB6E,0x3F5B7B92,0x3E749497,0xBCCCE937,
+ 0xBD91D5D4,0x3F5B6BA2,0x3E74E3B1,0xBCCD3A6F,0xBD91E031,0x3F5B5BAF,0x3E7532D3,0xBCCD8BAD,
+ 0xBD91EA83,0x3F5B4BB9,0x3E7581FB,0xBCCDDCF3,0xBD91F4CC,0x3F5B3BC1,0x3E75D12A,0xBCCE2E40,
+ 0xBD91FF0B,0x3F5B2BC6,0x3E76205F,0xBCCE7F94,0xBD920940,0x3F5B1BC9,0x3E766F9B,0xBCCED0EE,
+ 0xBD92136C,0x3F5B0BC8,0x3E76BEDE,0xBCCF2250,0xBD921D8E,0x3F5AFBC6,0x3E770E27,0xBCCF73B8,
+ 0xBD9227A6,0x3F5AEBC0,0x3E775D77,0xBCCFC528,0xBD9231B5,0x3F5ADBB8,0x3E77ACCD,0xBCD0169E,
+ 0xBD923BB9,0x3F5ACBAD,0x3E77FC2A,0xBCD0681B,0xBD9245B4,0x3F5ABBA0,0x3E784B8D,0xBCD0B99E,
+ 0xBD924FA6,0x3F5AAB90,0x3E789AF7,0xBCD10B29,0xBD92598D,0x3F5A9B7E,0x3E78EA68,0xBCD15CBA,
+ 0xBD92636C,0x3F5A8B68,0x3E7939DF,0xBCD1AE52,0xBD926D40,0x3F5A7B50,0x3E79895C,0xBCD1FFF1,
+ 0xBD92770B,0x3F5A6B36,0x3E79D8E0,0xBCD25196,0xBD9280CC,0x3F5A5B19,0x3E7A286B,0xBCD2A342,
+ 0xBD928A83,0x3F5A4AF9,0x3E7A77FC,0xBCD2F4F4,0xBD929431,0x3F5A3AD7,0x3E7AC793,0xBCD346AD,
+ 0xBD929DD5,0x3F5A2AB2,0x3E7B1731,0xBCD3986D,0xBD92A76F,0x3F5A1A8A,0x3E7B66D5,0xBCD3EA33,
+ 0xBD92B100,0x3F5A0A60,0x3E7BB680,0xBCD43C00,0xBD92BA87,0x3F59FA33,0x3E7C0631,0xBCD48DD3,
+ 0xBD92C405,0x3F59EA04,0x3E7C55E9,0xBCD4DFAD,0xBD92CD79,0x3F59D9D2,0x3E7CA5A7,0xBCD5318D,
+ 0xBD92D6E3,0x3F59C99D,0x3E7CF56B,0xBCD58374,0xBD92E044,0x3F59B966,0x3E7D4536,0xBCD5D561,
+ 0xBD92E99B,0x3F59A92C,0x3E7D9508,0xBCD62754,0xBD92F2E9,0x3F5998F0,0x3E7DE4DF,0xBCD6794E,
+ 0xBD92FC2C,0x3F5988B1,0x3E7E34BD,0xBCD6CB4E,0xBD930567,0x3F59786F,0x3E7E84A2,0xBCD71D54,
+ 0xBD930E98,0x3F59682B,0x3E7ED48C,0xBCD76F61,0xBD9317BF,0x3F5957E4,0x3E7F247E,0xBCD7C174,
+ 0xBD9320DD,0x3F59479B,0x3E7F7475,0xBCD8138D,0xBD9329F1,0x3F59374F,0x3E7FC473,0xBCD865AD,
+ 0xBD9332FB,0x3F592700,0x3E800A3B,0xBCD8B7D2,0xBD933BFC,0x3F5916AF,0x3E803241,0xBCD909FE,
+ 0xBD9344F4,0x3F59065C,0x3E805A49,0xBCD95C30,0xBD934DE2,0x3F58F605,0x3E808255,0xBCD9AE68,
+ 0xBD9356C6,0x3F58E5AC,0x3E80AA63,0xBCDA00A6,0xBD935FA1,0x3F58D551,0x3E80D275,0xBCDA52EA,
+ 0xBD936873,0x3F58C4F3,0x3E80FA8A,0xBCDAA535,0xBD93713B,0x3F58B493,0x3E8122A2,0xBCDAF785,
+ 0xBD9379F9,0x3F58A42F,0x3E814ABD,0xBCDB49DB,0xBD9382AE,0x3F5893CA,0x3E8172DB,0xBCDB9C38,
+ 0xBD938B5A,0x3F588362,0x3E819AFD,0xBCDBEE9A,0xBD9393FB,0x3F5872F7,0x3E81C321,0xBCDC4102,
+ 0xBD939C94,0x3F586289,0x3E81EB49,0xBCDC9370,0xBD93A523,0x3F58521A,0x3E821374,0xBCDCE5E4,
+ 0xBD93ADA8,0x3F5841A7,0x3E823BA2,0xBCDD385E,0xBD93B625,0x3F583132,0x3E8263D3,0xBCDD8ADE,
+ 0xBD93BE97,0x3F5820BB,0x3E828C07,0xBCDDDD64,0xBD93C700,0x3F581041,0x3E82B43E,0xBCDE2FEF,
+ 0xBD93CF60,0x3F57FFC4,0x3E82DC78,0xBCDE8280,0xBD93D7B6,0x3F57EF45,0x3E8304B5,0xBCDED517,
+ 0xBD93E003,0x3F57DEC3,0x3E832CF6,0xBCDF27B3,0xBD93E847,0x3F57CE3F,0x3E835539,0xBCDF7A56,
+ 0xBD93F081,0x3F57BDB8,0x3E837D80,0xBCDFCCFE,0xBD93F8B1,0x3F57AD2F,0x3E83A5C9,0xBCE01FAB,
+ 0xBD9400D8,0x3F579CA3,0x3E83CE16,0xBCE0725F,0xBD9408F6,0x3F578C15,0x3E83F665,0xBCE0C518,
+ 0xBD94110A,0x3F577B84,0x3E841EB8,0xBCE117D6,0xBD941915,0x3F576AF1,0x3E84470E,0xBCE16A9A,
+ 0xBD942117,0x3F575A5B,0x3E846F67,0xBCE1BD64,0xBD94290F,0x3F5749C2,0x3E8497C3,0xBCE21033,
+ 0xBD9430FE,0x3F573927,0x3E84C021,0xBCE26307,0xBD9438E4,0x3F57288A,0x3E84E883,0xBCE2B5E1,
+ 0xBD9440C0,0x3F5717EA,0x3E8510E8,0xBCE308C1,0xBD944893,0x3F570747,0x3E853950,0xBCE35BA6,
+ 0xBD94505C,0x3F56F6A2,0x3E8561BB,0xBCE3AE90,0xBD94581C,0x3F56E5FB,0x3E858A29,0xBCE40180,
+ 0xBD945FD3,0x3F56D551,0x3E85B29A,0xBCE45475,0xBD946780,0x3F56C4A5,0x3E85DB0E,0xBCE4A76F,
+ 0xBD946F24,0x3F56B3F6,0x3E860385,0xBCE4FA6F,0xBD9476BF,0x3F56A344,0x3E862BFF,0xBCE54D74,
+ 0xBD947E51,0x3F569290,0x3E86547C,0xBCE5A07E,0xBD9485D9,0x3F5681DA,0x3E867CFC,0xBCE5F38D,
+ 0xBD948D58,0x3F567121,0x3E86A57E,0xBCE646A2,0xBD9494CD,0x3F566065,0x3E86CE04,0xBCE699BC,
+ 0xBD949C39,0x3F564FA7,0x3E86F68D,0xBCE6ECDB,0xBD94A39C,0x3F563EE7,0x3E871F19,0xBCE73FFF,
+ 0xBD94AAF6,0x3F562E24,0x3E8747A8,0xBCE79328,0xBD94B246,0x3F561D5F,0x3E877039,0xBCE7E657,
+ 0xBD94B98D,0x3F560C97,0x3E8798CE,0xBCE8398A,0xBD94C0CB,0x3F55FBCD,0x3E87C165,0xBCE88CC3,
+ 0xBD94C800,0x3F55EB00,0x3E87EA00,0xBCE8E000,0xBD94CF2B,0x3F55DA31,0x3E88129D,0xBCE93342,
+ 0xBD94D64E,0x3F55C95F,0x3E883B3E,0xBCE9868A,0xBD94DD66,0x3F55B88B,0x3E8863E1,0xBCE9D9D6,
+ 0xBD94E476,0x3F55A7B4,0x3E888C87,0xBCEA2D28,0xBD94EB7C,0x3F5596DB,0x3E88B531,0xBCEA807E,
+ 0xBD94F27A,0x3F558600,0x3E88DDDD,0xBCEAD3D9,0xBD94F96E,0x3F557522,0x3E89068C,0xBCEB2739,
+ 0xBD950058,0x3F556441,0x3E892F3E,0xBCEB7A9E,0xBD95073A,0x3F55535E,0x3E8957F2,0xBCEBCE08,
+ 0xBD950E12,0x3F554279,0x3E8980AA,0xBCEC2176,0xBD9514E2,0x3F553191,0x3E89A965,0xBCEC74E9,
+ 0xBD951BA8,0x3F5520A7,0x3E89D222,0xBCECC861,0xBD952265,0x3F550FBA,0x3E89FAE3,0xBCED1BDE,
+ 0xBD952918,0x3F54FECB,0x3E8A23A6,0xBCED6F5F,0xBD952FC3,0x3F54EDDA,0x3E8A4C6C,0xBCEDC2E5,
+ 0xBD953664,0x3F54DCE6,0x3E8A7535,0xBCEE1670,0xBD953CFC,0x3F54CBEF,0x3E8A9E01,0xBCEE69FF,
+ 0xBD95438B,0x3F54BAF6,0x3E8AC6D0,0xBCEEBD93,0xBD954A11,0x3F54A9FB,0x3E8AEFA1,0xBCEF112C,
+ 0xBD95508E,0x3F5498FD,0x3E8B1876,0xBCEF64C9,0xBD955701,0x3F5487FD,0x3E8B414D,0xBCEFB86A,
+ 0xBD955D6C,0x3F5476FA,0x3E8B6A27,0xBCF00C10,0xBD9563CD,0x3F5465F5,0x3E8B9304,0xBCF05FBB,
+ 0xBD956A26,0x3F5454EE,0x3E8BBBE4,0xBCF0B36A,0xBD957075,0x3F5443E4,0x3E8BE4C7,0xBCF1071D,
+ 0xBD9576BB,0x3F5432D8,0x3E8C0DAC,0xBCF15AD5,0xBD957CF8,0x3F5421C9,0x3E8C3694,0xBCF1AE92,
+ 0xBD95832B,0x3F5410B8,0x3E8C5F7F,0xBCF20252,0xBD958956,0x3F53FFA5,0x3E8C886D,0xBCF25617,
+ 0xBD958F78,0x3F53EE8F,0x3E8CB15E,0xBCF2A9E1,0xBD959590,0x3F53DD77,0x3E8CDA52,0xBCF2FDAE,
+ 0xBD959BA0,0x3F53CC5C,0x3E8D0348,0xBCF35180,0xBD95A1A6,0x3F53BB3F,0x3E8D2C41,0xBCF3A556,
+ 0xBD95A7A4,0x3F53AA1F,0x3E8D553D,0xBCF3F930,0xBD95AD98,0x3F5398FE,0x3E8D7E3C,0xBCF44D0F,
+ 0xBD95B384,0x3F5387D9,0x3E8DA73D,0xBCF4A0F2,0xBD95B966,0x3F5376B3,0x3E8DD042,0xBCF4F4D9,
+ 0xBD95BF3F,0x3F53658A,0x3E8DF949,0xBCF548C4,0xBD95C50F,0x3F53545E,0x3E8E2253,0xBCF59CB3,
+ 0xBD95CAD6,0x3F534330,0x3E8E4B5F,0xBCF5F0A6,0xBD95D095,0x3F533200,0x3E8E746E,0xBCF6449D,
+ 0xBD95D64A,0x3F5320CE,0x3E8E9D81,0xBCF69899,0xBD95DBF6,0x3F530F99,0x3E8EC695,0xBCF6EC98,
+ 0xBD95E199,0x3F52FE61,0x3E8EEFAD,0xBCF7409B,0xBD95E733,0x3F52ED28,0x3E8F18C7,0xBCF794A3,
+ 0xBD95ECC5,0x3F52DBEC,0x3E8F41E5,0xBCF7E8AE,0xBD95F24D,0x3F52CAAD,0x3E8F6B04,0xBCF83CBD,
+ 0xBD95F7CC,0x3F52B96C,0x3E8F9427,0xBCF890D0,0xBD95FD42,0x3F52A829,0x3E8FBD4C,0xBCF8E4E7,
+ 0xBD9602B0,0x3F5296E4,0x3E8FE674,0xBCF93902,0xBD960814,0x3F52859C,0x3E900F9F,0xBCF98D20,
+ 0xBD960D6F,0x3F527452,0x3E9038CD,0xBCF9E143,0xBD9612C2,0x3F526305,0x3E9061FD,0xBCFA3569,
+ 0xBD96180B,0x3F5251B6,0x3E908B30,0xBCFA8993,0xBD961D4C,0x3F524065,0x3E90B465,0xBCFADDC1,
+ 0xBD962284,0x3F522F11,0x3E90DD9D,0xBCFB31F2,0xBD9627B2,0x3F521DBB,0x3E9106D8,0xBCFB8627,
+ 0xBD962CD8,0x3F520C63,0x3E913016,0xBCFBDA60,0xBD9631F5,0x3F51FB08,0x3E915956,0xBCFC2E9C,
+ 0xBD963709,0x3F51E9AB,0x3E918299,0xBCFC82DC,0xBD963C14,0x3F51D84C,0x3E91ABDF,0xBCFCD720,
+ 0xBD964116,0x3F51C6EA,0x3E91D527,0xBCFD2B67,0xBD964610,0x3F51B586,0x3E91FE72,0xBCFD7FB2,
+ 0xBD964B00,0x3F51A420,0x3E9227C0,0xBCFDD400,0xBD964FE8,0x3F5192B7,0x3E925110,0xBCFE2852,
+ 0xBD9654C6,0x3F51814C,0x3E927A63,0xBCFE7CA7,0xBD96599C,0x3F516FDF,0x3E92A3B9,0xBCFED100,
+ 0xBD965E69,0x3F515E6F,0x3E92CD11,0xBCFF255C,0xBD96632D,0x3F514CFD,0x3E92F66C,0xBCFF79BB,
+ 0xBD9667E8,0x3F513B89,0x3E931FCA,0xBCFFCE1E,0xBD966C9B,0x3F512A13,0x3E93492A,0xBD001142,
+ 0xBD967144,0x3F51189A,0x3E93728D,0xBD003B77,0xBD9675E5,0x3F51071E,0x3E939BF2,0xBD0065AD,
+ 0xBD967A7D,0x3F50F5A1,0x3E93C55A,0xBD008FE6,0xBD967F0C,0x3F50E421,0x3E93EEC5,0xBD00BA1F,
+ 0xBD968393,0x3F50D29F,0x3E941832,0xBD00E45B,0xBD968810,0x3F50C11B,0x3E9441A2,0xBD010E98,
+ 0xBD968C85,0x3F50AF94,0x3E946B14,0xBD0138D6,0xBD9690F1,0x3F509E0B,0x3E949489,0xBD016316,
+ 0xBD969554,0x3F508C80,0x3E94BE01,0xBD018D58,0xBD9699AE,0x3F507AF2,0x3E94E77B,0xBD01B79B,
+ 0xBD969E00,0x3F506962,0x3E9510F8,0xBD01E1E0,0xBD96A249,0x3F5057D0,0x3E953A77,0xBD020C26,
+ 0xBD96A689,0x3F50463B,0x3E9563F9,0xBD02366E,0xBD96AAC0,0x3F5034A5,0x3E958D7E,0xBD0260B8,
+ 0xBD96AEEF,0x3F50230B,0x3E95B705,0xBD028B03,0xBD96B314,0x3F501170,0x3E95E08F,0xBD02B54F,
+ 0xBD96B732,0x3F4FFFD3,0x3E960A1B,0xBD02DF9D,0xBD96BB46,0x3F4FEE33,0x3E9633AA,0xBD0309EC,
+ 0xBD96BF51,0x3F4FDC91,0x3E965D3B,0xBD03343D,0xBD96C354,0x3F4FCAEC,0x3E9686CF,0xBD035E8F,
+ 0xBD96C74E,0x3F4FB945,0x3E96B065,0xBD0388E3,0xBD96CB40,0x3F4FA79C,0x3E96D9FE,0xBD03B338,
+ 0xBD96CF29,0x3F4F95F1,0x3E97039A,0xBD03DD8F,0xBD96D309,0x3F4F8444,0x3E972D38,0xBD0407E7,
+ 0xBD96D6E0,0x3F4F7294,0x3E9756D8,0xBD043240,0xBD96DAAF,0x3F4F60E2,0x3E97807B,0xBD045C9B,
+ 0xBD96DE75,0x3F4F4F2E,0x3E97AA21,0xBD0486F7,0xBD96E232,0x3F4F3D77,0x3E97D3C9,0xBD04B154,
+ 0xBD96E5E7,0x3F4F2BBE,0x3E97FD73,0xBD04DBB3,0xBD96E993,0x3F4F1A03,0x3E982720,0xBD050613,
+ 0xBD96ED36,0x3F4F0846,0x3E9850D0,0xBD053074,0xBD96F0D0,0x3F4EF687,0x3E987A82,0xBD055AD7,
+ 0xBD96F462,0x3F4EE4C5,0x3E98A436,0xBD05853B,0xBD96F7EC,0x3F4ED301,0x3E98CDED,0xBD05AFA0,
+ 0xBD96FB6D,0x3F4EC13B,0x3E98F7A7,0xBD05DA07,0xBD96FEE5,0x3F4EAF72,0x3E992162,0xBD06046F,
+ 0xBD970254,0x3F4E9DA8,0x3E994B21,0xBD062ED8,0xBD9705BB,0x3F4E8BDB,0x3E9974E2,0xBD065942,
+ 0xBD970919,0x3F4E7A0B,0x3E999EA5,0xBD0683AD,0xBD970C6F,0x3F4E683A,0x3E99C86B,0xBD06AE1A,
+ 0xBD970FBC,0x3F4E5666,0x3E99F233,0xBD06D888,0xBD971300,0x3F4E4491,0x3E9A1BFE,0xBD0702F7,
+ 0xBD97163C,0x3F4E32B9,0x3E9A45CB,0xBD072D67,0xBD971970,0x3F4E20DE,0x3E9A6F9A,0xBD0757D9,
+ 0xBD971C9A,0x3F4E0F02,0x3E9A996C,0xBD07824B,0xBD971FBC,0x3F4DFD23,0x3E9AC341,0xBD07ACBF,
+ 0xBD9722D6,0x3F4DEB42,0x3E9AED17,0xBD07D734,0xBD9725E7,0x3F4DD95F,0x3E9B16F1,0xBD0801AA,
+ 0xBD9728F0,0x3F4DC77A,0x3E9B40CC,0xBD082C21,0xBD972BEF,0x3F4DB592,0x3E9B6AAA,0xBD085699,
+ 0xBD972EE7,0x3F4DA3A9,0x3E9B948B,0xBD088112,0xBD9731D6,0x3F4D91BD,0x3E9BBE6E,0xBD08AB8D,
+ 0xBD9734BC,0x3F4D7FCE,0x3E9BE853,0xBD08D608,0xBD97379A,0x3F4D6DDE,0x3E9C123B,0xBD090085,
+ 0xBD973A6F,0x3F4D5BEC,0x3E9C3C25,0xBD092B02,0xBD973D3C,0x3F4D49F7,0x3E9C6611,0xBD095581,
+ 0xBD974000,0x3F4D3800,0x3E9C9000,0xBD098000,0xBD9742BC,0x3F4D2607,0x3E9CB9F1,0xBD09AA80,
+ 0xBD97456F,0x3F4D140C,0x3E9CE3E5,0xBD09D502,0xBD97481A,0x3F4D020E,0x3E9D0DDB,0xBD09FF84,
+ 0xBD974ABC,0x3F4CF00F,0x3E9D37D3,0xBD0A2A08,0xBD974D56,0x3F4CDE0D,0x3E9D61CE,0xBD0A548C,
+ 0xBD974FE7,0x3F4CCC09,0x3E9D8BCB,0xBD0A7F12,0xBD975270,0x3F4CBA03,0x3E9DB5CA,0xBD0AA998,
+ 0xBD9754F0,0x3F4CA7FA,0x3E9DDFCC,0xBD0AD41F,0xBD975768,0x3F4C95F0,0x3E9E09D0,0xBD0AFEA7,
+ 0xBD9759D8,0x3F4C83E3,0x3E9E33D6,0xBD0B2930,0xBD975C3F,0x3F4C71D4,0x3E9E5DDF,0xBD0B53BA,
+ 0xBD975E9E,0x3F4C5FC3,0x3E9E87EA,0xBD0B7E45,0xBD9760F4,0x3F4C4DB0,0x3E9EB1F7,0xBD0BA8D0,
+ 0xBD976342,0x3F4C3B9B,0x3E9EDC07,0xBD0BD35D,0xBD976587,0x3F4C2983,0x3E9F0619,0xBD0BFDEA,
+ 0xBD9767C4,0x3F4C176A,0x3E9F302D,0xBD0C2878,0xBD9769F9,0x3F4C054E,0x3E9F5A44,0xBD0C5307,
+ 0xBD976C25,0x3F4BF330,0x3E9F845C,0xBD0C7D97,0xBD976E48,0x3F4BE110,0x3E9FAE78,0xBD0CA827,
+ 0xBD977064,0x3F4BCEED,0x3E9FD895,0xBD0CD2B8,0xBD977277,0x3F4BBCC9,0x3EA002B5,0xBD0CFD4A,
+ 0xBD977481,0x3F4BAAA3,0x3EA02CD7,0xBD0D27DD,0xBD977684,0x3F4B987A,0x3EA056FB,0xBD0D5271,
+ 0xBD97787E,0x3F4B864F,0x3EA08122,0xBD0D7D05,0xBD977A6F,0x3F4B7422,0x3EA0AB4B,0xBD0DA79A,
+ 0xBD977C58,0x3F4B61F3,0x3EA0D576,0xBD0DD230,0xBD977E39,0x3F4B4FC2,0x3EA0FFA3,0xBD0DFCC6,
+ 0xBD978011,0x3F4B3D8F,0x3EA129D3,0xBD0E275D,0xBD9781E2,0x3F4B2B59,0x3EA15405,0xBD0E51F5,
+ 0xBD9783A9,0x3F4B1922,0x3EA17E39,0xBD0E7C8D,0xBD978569,0x3F4B06E8,0x3EA1A86F,0xBD0EA726,
+ 0xBD978720,0x3F4AF4AC,0x3EA1D2A8,0xBD0ED1C0,0xBD9788CF,0x3F4AE26E,0x3EA1FCE3,0xBD0EFC5A,
+ 0xBD978A75,0x3F4AD02E,0x3EA22720,0xBD0F26F5,0xBD978C14,0x3F4ABDEC,0x3EA2515F,0xBD0F5191,
+ 0xBD978DAA,0x3F4AABA8,0x3EA27BA1,0xBD0F7C2D,0xBD978F37,0x3F4A9961,0x3EA2A5E5,0xBD0FA6CA,
+ 0xBD9790BD,0x3F4A8719,0x3EA2D02B,0xBD0FD167,0xBD97923A,0x3F4A74CE,0x3EA2FA73,0xBD0FFC05,
+ 0xBD9793AE,0x3F4A6281,0x3EA324BD,0xBD1026A3,0xBD97951B,0x3F4A5033,0x3EA34F0A,0xBD105142,
+ 0xBD97967F,0x3F4A3DE2,0x3EA37958,0xBD107BE1,0xBD9797DB,0x3F4A2B8F,0x3EA3A3A9,0xBD10A681,
+ 0xBD97992F,0x3F4A193A,0x3EA3CDFD,0xBD10D122,0xBD979A7B,0x3F4A06E3,0x3EA3F852,0xBD10FBC3,
+ 0xBD979BBE,0x3F49F489,0x3EA422A9,0xBD112664,0xBD979CF9,0x3F49E22E,0x3EA44D03,0xBD115106,
+ 0xBD979E2C,0x3F49CFD0,0x3EA4775F,0xBD117BA8,0xBD979F57,0x3F49BD71,0x3EA4A1BD,0xBD11A64B,
+ 0xBD97A079,0x3F49AB0F,0x3EA4CC1D,0xBD11D0EE,0xBD97A193,0x3F4998AC,0x3EA4F680,0xBD11FB91,
+ 0xBD97A2A5,0x3F498646,0x3EA520E4,0xBD122635,0xBD97A3AF,0x3F4973DE,0x3EA54B4B,0xBD1250DA,
+ 0xBD97A4B1,0x3F496174,0x3EA575B3,0xBD127B7E,0xBD97A5AA,0x3F494F08,0x3EA5A01E,0xBD12A624,
+ 0xBD97A69C,0x3F493C9A,0x3EA5CA8B,0xBD12D0C9,0xBD97A785,0x3F492A2A,0x3EA5F4FB,0xBD12FB6F,
+ 0xBD97A866,0x3F4917B8,0x3EA61F6C,0xBD132615,0xBD97A93E,0x3F490544,0x3EA649DF,0xBD1350BB,
+ 0xBD97AA0F,0x3F48F2CE,0x3EA67455,0xBD137B62,0xBD97AAD7,0x3F48E055,0x3EA69ECC,0xBD13A609,
+ 0xBD97AB98,0x3F48CDDB,0x3EA6C946,0xBD13D0B1,0xBD97AC50,0x3F48BB5E,0x3EA6F3C2,0xBD13FB58,
+ 0xBD97AD00,0x3F48A8E0,0x3EA71E40,0xBD142600,0xBD97ADA8,0x3F48965F,0x3EA748C0,0xBD1450A8,
+ 0xBD97AE48,0x3F4883DD,0x3EA77342,0xBD147B50,0xBD97AEDF,0x3F487158,0x3EA79DC6,0xBD14A5F9,
+ 0xBD97AF6F,0x3F485ED2,0x3EA7C84D,0xBD14D0A2,0xBD97AFF7,0x3F484C49,0x3EA7F2D5,0xBD14FB4B,
+ 0xBD97B076,0x3F4839BE,0x3EA81D60,0xBD1525F4,0xBD97B0ED,0x3F482731,0x3EA847EC,0xBD15509D,
+ 0xBD97B15C,0x3F4814A3,0x3EA8727B,0xBD157B47,0xBD97B1C4,0x3F480212,0x3EA89D0B,0xBD15A5F1,
+ 0xBD97B223,0x3F47EF7F,0x3EA8C79E,0xBD15D09B,0xBD97B27A,0x3F47DCEA,0x3EA8F233,0xBD15FB45,
+ 0xBD97B2C9,0x3F47CA53,0x3EA91CC9,0xBD1625EF,0xBD97B310,0x3F47B7BA,0x3EA94762,0xBD165099,
+ 0xBD97B34E,0x3F47A51F,0x3EA971FD,0xBD167B43,0xBD97B385,0x3F479282,0x3EA99C9A,0xBD16A5EE,
+ 0xBD97B3B4,0x3F477FE4,0x3EA9C739,0xBD16D098,0xBD97B3DB,0x3F476D43,0x3EA9F1DA,0xBD16FB43,
+ 0xBD97B3F9,0x3F475AA0,0x3EAA1C7D,0xBD1725ED,0xBD97B410,0x3F4747FB,0x3EAA4722,0xBD175098,
+ 0xBD97B41F,0x3F473554,0x3EAA71C9,0xBD177B42,0xBD97B425,0x3F4722AB,0x3EAA9C72,0xBD17A5ED,
+ 0xBD97B424,0x3F471000,0x3EAAC71D,0xBD17D098,0xBD97B41B,0x3F46FD53,0x3EAAF1CA,0xBD17FB42,
+ 0xBD97B40A,0x3F46EAA4,0x3EAB1C79,0xBD1825ED,0xBD97B3F0,0x3F46D7F3,0x3EAB472A,0xBD185098,
+ 0xBD97B3CF,0x3F46C540,0x3EAB71DD,0xBD187B42,0xBD97B3A6,0x3F46B28B,0x3EAB9C92,0xBD18A5ED,
+ 0xBD97B374,0x3F469FD4,0x3EABC749,0xBD18D097,0xBD97B33B,0x3F468D1B,0x3EABF202,0xBD18FB41,
+ 0xBD97B2FA,0x3F467A60,0x3EAC1CBC,0xBD1925EC,0xBD97B2B1,0x3F4667A3,0x3EAC4779,0xBD195096,
+ 0xBD97B260,0x3F4654E4,0x3EAC7238,0xBD197B40,0xBD97B207,0x3F464223,0x3EAC9CF9,0xBD19A5EA,
+ 0xBD97B1A6,0x3F462F60,0x3EACC7BB,0xBD19D094,0xBD97B13D,0x3F461C9B,0x3EACF280,0xBD19FB3D,
+ 0xBD97B0CD,0x3F4609D5,0x3EAD1D47,0xBD1A25E7,0xBD97B054,0x3F45F70C,0x3EAD480F,0xBD1A5090,
+ 0xBD97AFD3,0x3F45E441,0x3EAD72D9,0xBD1A7B39,0xBD97AF4B,0x3F45D175,0x3EAD9DA6,0xBD1AA5E2,
+ 0xBD97AEBA,0x3F45BEA6,0x3EADC874,0xBD1AD08B,0xBD97AE22,0x3F45ABD5,0x3EADF344,0xBD1AFB34,
+ 0xBD97AD82,0x3F459903,0x3EAE1E16,0xBD1B25DC,0xBD97ACDA,0x3F45862E,0x3EAE48EA,0xBD1B5084,
+ 0xBD97AC2A,0x3F457358,0x3EAE73C0,0xBD1B7B2C,0xBD97AB72,0x3F45607F,0x3EAE9E98,0xBD1BA5D3,
+ 0xBD97AAB3,0x3F454DA5,0x3EAEC972,0xBD1BD07A,0xBD97A9EB,0x3F453AC9,0x3EAEF44E,0xBD1BFB21,
+ 0xBD97A91C,0x3F4527EA,0x3EAF1F2B,0xBD1C25C8,0xBD97A845,0x3F45150A,0x3EAF4A0A,0xBD1C506E,
+ 0xBD97A766,0x3F450228,0x3EAF74EC,0xBD1C7B14,0xBD97A67F,0x3F44EF44,0x3EAF9FCF,0xBD1CA5BA,
+ 0xBD97A590,0x3F44DC5E,0x3EAFCAB4,0xBD1CD05F,0xBD97A49A,0x3F44C976,0x3EAFF59B,0xBD1CFB04,
+ 0xBD97A39C,0x3F44B68C,0x3EB02083,0xBD1D25A9,0xBD97A295,0x3F44A3A1,0x3EB04B6E,0xBD1D504D,
+ 0xBD97A188,0x3F4490B3,0x3EB0765A,0xBD1D7AF1,0xBD97A072,0x3F447DC3,0x3EB0A149,0xBD1DA594,
+ 0xBD979F54,0x3F446AD2,0x3EB0CC39,0xBD1DD037,0xBD979E2F,0x3F4457DE,0x3EB0F72B,0xBD1DFADA,
+ 0xBD979D02,0x3F4444E9,0x3EB1221F,0xBD1E257C,0xBD979BCD,0x3F4431F1,0x3EB14D14,0xBD1E501E,
+ 0xBD979A90,0x3F441EF8,0x3EB1780C,0xBD1E7ABF,0xBD97994C,0x3F440BFD,0x3EB1A305,0xBD1EA560,
+ 0xBD979800,0x3F43F900,0x3EB1CE00,0xBD1ED000,0xBD9796AC,0x3F43E601,0x3EB1F8FD,0xBD1EFAA0,
+ 0xBD979551,0x3F43D300,0x3EB223FC,0xBD1F253F,0xBD9793ED,0x3F43BFFD,0x3EB24EFC,0xBD1F4FDE,
+ 0xBD979282,0x3F43ACF9,0x3EB279FE,0xBD1F7A7C,0xBD97910F,0x3F4399F2,0x3EB2A503,0xBD1FA51A,
+ 0xBD978F95,0x3F4386EA,0x3EB2D008,0xBD1FCFB7,0xBD978E12,0x3F4373DF,0x3EB2FB10,0xBD1FFA53,
+ 0xBD978C88,0x3F4360D3,0x3EB3261A,0xBD2024EF,0xBD978AF7,0x3F434DC5,0x3EB35125,0xBD204F8A,
+ 0xBD97895D,0x3F433AB5,0x3EB37C32,0xBD207A25,0xBD9787BC,0x3F4327A3,0x3EB3A741,0xBD20A4BF,
+ 0xBD978614,0x3F43148F,0x3EB3D251,0xBD20CF59,0xBD978463,0x3F43017A,0x3EB3FD64,0xBD20F9F1,
+ 0xBD9782AB,0x3F42EE62,0x3EB42878,0xBD21248A,0xBD9780EB,0x3F42DB49,0x3EB4538D,0xBD214F21,
+ 0xBD977F24,0x3F42C82E,0x3EB47EA5,0xBD2179B8,0xBD977D55,0x3F42B510,0x3EB4A9BE,0xBD21A44E,
+ 0xBD977B7E,0x3F42A1F1,0x3EB4D4D9,0xBD21CEE4,0xBD9779A0,0x3F428ED0,0x3EB4FFF6,0xBD21F978,
+ 0xBD9777BA,0x3F427BAE,0x3EB52B15,0xBD22240C,0xBD9775CC,0x3F426889,0x3EB55635,0xBD224EA0,
+ 0xBD9773D7,0x3F425563,0x3EB58157,0xBD227932,0xBD9771DA,0x3F42423A,0x3EB5AC7A,0xBD22A3C4,
+ 0xBD976FD6,0x3F422F10,0x3EB5D7A0,0xBD22CE55,0xBD976DC9,0x3F421BE4,0x3EB602C7,0xBD22F8E5,
+ 0xBD976BB6,0x3F4208B6,0x3EB62DF0,0xBD232375,0xBD97699A,0x3F41F586,0x3EB6591A,0xBD234E03,
+ 0xBD976777,0x3F41E255,0x3EB68446,0xBD237891,0xBD97654D,0x3F41CF21,0x3EB6AF74,0xBD23A31E,
+ 0xBD97631B,0x3F41BBEC,0x3EB6DAA4,0xBD23CDAA,0xBD9760E1,0x3F41A8B5,0x3EB705D5,0xBD23F836,
+ 0xBD975EA0,0x3F41957C,0x3EB73108,0xBD2422C0,0xBD975C57,0x3F418241,0x3EB75C3D,0xBD244D4A,
+ 0xBD975A07,0x3F416F05,0x3EB78773,0xBD2477D2,0xBD9757AF,0x3F415BC6,0x3EB7B2AB,0xBD24A25A,
+ 0xBD975550,0x3F414886,0x3EB7DDE4,0xBD24CCE1,0xBD9752E9,0x3F413544,0x3EB80920,0xBD24F767,
+ 0xBD97507A,0x3F412200,0x3EB8345C,0xBD2521EC,0xBD974E04,0x3F410EBA,0x3EB85F9B,0xBD254C70,
+ 0xBD974B86,0x3F40FB72,0x3EB88ADB,0xBD2576F3,0xBD974901,0x3F40E829,0x3EB8B61D,0xBD25A175,
+ 0xBD974675,0x3F40D4DE,0x3EB8E160,0xBD25CBF6,0xBD9743E1,0x3F40C191,0x3EB90CA5,0xBD25F676,
+ 0xBD974145,0x3F40AE42,0x3EB937EC,0xBD2620F6,0xBD973EA2,0x3F409AF1,0x3EB96334,0xBD264B74,
+ 0xBD973BF8,0x3F40879F,0x3EB98E7E,0xBD2675F1,0xBD973946,0x3F40744B,0x3EB9B9CA,0xBD26A06D,
+ 0xBD97368C,0x3F4060F4,0x3EB9E517,0xBD26CAE8,0xBD9733CB,0x3F404D9D,0x3EBA1066,0xBD26F562,
+ 0xBD973103,0x3F403A43,0x3EBA3BB6,0xBD271FDB,0xBD972E33,0x3F4026E8,0x3EBA6708,0xBD274A53,
+ 0xBD972B5B,0x3F40138A,0x3EBA925C,0xBD2774C9,0xBD97287D,0x3F40002B,0x3EBABDB1,0xBD279F3F,
+ 0xBD972596,0x3F3FECCA,0x3EBAE907,0xBD27C9B3,0xBD9722A9,0x3F3FD968,0x3EBB1460,0xBD27F427,
+ 0xBD971FB4,0x3F3FC603,0x3EBB3FB9,0xBD281E99,0xBD971CB7,0x3F3FB29D,0x3EBB6B15,0xBD28490A,
+ 0xBD9719B3,0x3F3F9F35,0x3EBB9672,0xBD28737A,0xBD9716A8,0x3F3F8BCB,0x3EBBC1D0,0xBD289DE9,
+ 0xBD971395,0x3F3F7860,0x3EBBED30,0xBD28C856,0xBD97107B,0x3F3F64F3,0x3EBC1892,0xBD28F2C2,
+ 0xBD970D59,0x3F3F5183,0x3EBC43F5,0xBD291D2E,0xBD970A30,0x3F3F3E13,0x3EBC6F5A,0xBD294797,
+ 0xBD970700,0x3F3F2AA0,0x3EBC9AC0,0xBD297200,0xBD9703C8,0x3F3F172C,0x3EBCC628,0xBD299C67,
+ 0xBD970089,0x3F3F03B5,0x3EBCF191,0xBD29C6CD,0xBD96FD43,0x3F3EF03E,0x3EBD1CFC,0xBD29F132,
+ 0xBD96F9F5,0x3F3EDCC4,0x3EBD4868,0xBD2A1B96,0xBD96F6A0,0x3F3EC948,0x3EBD73D6,0xBD2A45F8,
+ 0xBD96F343,0x3F3EB5CB,0x3EBD9F45,0xBD2A7059,0xBD96EFE0,0x3F3EA24C,0x3EBDCAB6,0xBD2A9AB9,
+ 0xBD96EC74,0x3F3E8ECC,0x3EBDF629,0xBD2AC517,0xBD96E902,0x3F3E7B49,0x3EBE219C,0xBD2AEF74,
+ 0xBD96E588,0x3F3E67C5,0x3EBE4D12,0xBD2B19D0,0xBD96E207,0x3F3E543F,0x3EBE7889,0xBD2B442A,
+ 0xBD96DE7F,0x3F3E40B8,0x3EBEA401,0xBD2B6E83,0xBD96DAEF,0x3F3E2D2E,0x3EBECF7B,0xBD2B98DA,
+ 0xBD96D758,0x3F3E19A3,0x3EBEFAF6,0xBD2BC330,0xBD96D3BA,0x3F3E0616,0x3EBF2673,0xBD2BED85,
+ 0xBD96D014,0x3F3DF288,0x3EBF51F1,0xBD2C17D8,0xBD96CC67,0x3F3DDEF7,0x3EBF7D71,0xBD2C422A,
+ 0xBD96C8B3,0x3F3DCB65,0x3EBFA8F2,0xBD2C6C7A,0xBD96C4F8,0x3F3DB7D1,0x3EBFD474,0xBD2C96C9,
+ 0xBD96C135,0x3F3DA43C,0x3EBFFFF8,0xBD2CC116,0xBD96BD6B,0x3F3D90A5,0x3EC02B7E,0xBD2CEB62,
+ 0xBD96B99A,0x3F3D7D0C,0x3EC05705,0xBD2D15AD,0xBD96B5C1,0x3F3D6971,0x3EC0828D,0xBD2D3FF6,
+ 0xBD96B1E2,0x3F3D55D5,0x3EC0AE17,0xBD2D6A3D,0xBD96ADFB,0x3F3D4236,0x3EC0D9A2,0xBD2D9483,
+ 0xBD96AA0C,0x3F3D2E97,0x3EC1052F,0xBD2DBEC7,0xBD96A617,0x3F3D1AF5,0x3EC130BD,0xBD2DE90A,
+ 0xBD96A21A,0x3F3D0752,0x3EC15C4C,0xBD2E134B,0xBD969E17,0x3F3CF3AD,0x3EC187DD,0xBD2E3D8B,
+ 0xBD969A0C,0x3F3CE006,0x3EC1B36F,0xBD2E67C9,0xBD9695F9,0x3F3CCC5E,0x3EC1DF03,0xBD2E9205,
+ 0xBD9691E0,0x3F3CB8B4,0x3EC20A98,0xBD2EBC40,0xBD968DBF,0x3F3CA508,0x3EC2362E,0xBD2EE679,
+ 0xBD968998,0x3F3C915B,0x3EC261C6,0xBD2F10B1,0xBD968569,0x3F3C7DAC,0x3EC28D5F,0xBD2F3AE7,
+ 0xBD968133,0x3F3C69FB,0x3EC2B8FA,0xBD2F651B,0xBD967CF5,0x3F3C5648,0x3EC2E496,0xBD2F8F4D,
+ 0xBD9678B1,0x3F3C4294,0x3EC31033,0xBD2FB97E,0xBD967465,0x3F3C2EDE,0x3EC33BD2,0xBD2FE3AE,
+ 0xBD967012,0x3F3C1B27,0x3EC36772,0xBD300DDB,0xBD966BB9,0x3F3C076E,0x3EC39314,0xBD303807,
+ 0xBD966758,0x3F3BF3B3,0x3EC3BEB6,0xBD306231,0xBD9662EF,0x3F3BDFF6,0x3EC3EA5A,0xBD308C59,
+ 0xBD965E80,0x3F3BCC38,0x3EC41600,0xBD30B680,0xBD965A0A,0x3F3BB878,0x3EC441A7,0xBD30E0A4,
+ 0xBD96558C,0x3F3BA4B7,0x3EC46D4F,0xBD310AC7,0xBD965108,0x3F3B90F3,0x3EC498F8,0xBD3134E9,
+ 0xBD964C7C,0x3F3B7D2E,0x3EC4C4A3,0xBD315F08,0xBD9647E9,0x3F3B6968,0x3EC4F04F,0xBD318926,
+ 0xBD96434F,0x3F3B55A0,0x3EC51BFD,0xBD31B341,0xBD963EAE,0x3F3B41D6,0x3EC547AB,0xBD31DD5B,
+ 0xBD963A06,0x3F3B2E0A,0x3EC5735B,0xBD320773,0xBD963557,0x3F3B1A3D,0x3EC59F0D,0xBD32318A,
+ 0xBD9630A1,0x3F3B066E,0x3EC5CABF,0xBD325B9E,0xBD962BE4,0x3F3AF29E,0x3EC5F673,0xBD3285B0,
+ 0xBD962720,0x3F3ADECC,0x3EC62228,0xBD32AFC1,0xBD962254,0x3F3ACAF8,0x3EC64DDF,0xBD32D9D0,
+ 0xBD961D82,0x3F3AB723,0x3EC67997,0xBD3303DC,0xBD9618A8,0x3F3AA34C,0x3EC6A550,0xBD332DE7,
+ 0xBD9613C8,0x3F3A8F73,0x3EC6D10A,0xBD3357F0,0xBD960EE0,0x3F3A7B99,0x3EC6FCC6,0xBD3381F7,
+ 0xBD9609F2,0x3F3A67BD,0x3EC72883,0xBD33ABFC,0xBD9604FC,0x3F3A53DF,0x3EC75441,0xBD33D5FF,
+ 0xBD960000,0x3F3A4000,0x3EC78000,0xBD340000,0xBD95FAFD,0x3F3A2C1F,0x3EC7ABC1,0xBD3429FF,
+ 0xBD95F5F2,0x3F3A183D,0x3EC7D782,0xBD3453FC,0xBD95F0E1,0x3F3A0459,0x3EC80346,0xBD347DF7,
+ 0xBD95EBC8,0x3F39F073,0x3EC82F0A,0xBD34A7F0,0xBD95E6A9,0x3F39DC8C,0x3EC85AD0,0xBD34D1E7,
+ 0xBD95E182,0x3F39C8A3,0x3EC88696,0xBD34FBDC,0xBD95DC55,0x3F39B4B8,0x3EC8B25E,0xBD3525CE,
+ 0xBD95D720,0x3F39A0CC,0x3EC8DE28,0xBD354FBF,0xBD95D1E5,0x3F398CDE,0x3EC909F2,0xBD3579AE,
+ 0xBD95CCA3,0x3F3978EF,0x3EC935BE,0xBD35A39A,0xBD95C75A,0x3F3964FE,0x3EC9618B,0xBD35CD84,
+ 0xBD95C20A,0x3F39510C,0x3EC98D59,0xBD35F76D,0xBD95BCB3,0x3F393D17,0x3EC9B928,0xBD362153,
+ 0xBD95B755,0x3F392922,0x3EC9E4F8,0xBD364B37,0xBD95B1F0,0x3F39152A,0x3ECA10CA,0xBD367518,
+ 0xBD95AC84,0x3F390132,0x3ECA3C9D,0xBD369EF8,0xBD95A711,0x3F38ED37,0x3ECA6871,0xBD36C8D5,
+ 0xBD95A198,0x3F38D93B,0x3ECA9446,0xBD36F2B1,0xBD959C17,0x3F38C53D,0x3ECAC01D,0xBD371C8A,
+ 0xBD959690,0x3F38B13E,0x3ECAEBF4,0xBD374660,0xBD959102,0x3F389D3D,0x3ECB17CD,0xBD377035,
+ 0xBD958B6C,0x3F38893B,0x3ECB43A7,0xBD379A07,0xBD9585D0,0x3F387537,0x3ECB6F82,0xBD37C3D7,
+ 0xBD95802E,0x3F386131,0x3ECB9B5E,0xBD37EDA5,0xBD957A84,0x3F384D2A,0x3ECBC73B,0xBD381770,
+ 0xBD9574D3,0x3F383921,0x3ECBF31A,0xBD38413A,0xBD956F1C,0x3F382517,0x3ECC1EF9,0xBD386B01,
+ 0xBD95695D,0x3F38110B,0x3ECC4ADA,0xBD3894C5,0xBD956398,0x3F37FCFE,0x3ECC76BC,0xBD38BE87,
+ 0xBD955DCC,0x3F37E8EF,0x3ECCA29F,0xBD38E847,0xBD9557FA,0x3F37D4DE,0x3ECCCE83,0xBD391205,
+ 0xBD955220,0x3F37C0CC,0x3ECCFA68,0xBD393BC0,0xBD954C40,0x3F37ACB8,0x3ECD264E,0xBD396579,
+ 0xBD954658,0x3F3798A3,0x3ECD5236,0xBD398F2F,0xBD95406A,0x3F37848C,0x3ECD7E1E,0xBD39B8E3,
+ 0xBD953A76,0x3F377074,0x3ECDAA08,0xBD39E295,0xBD95347A,0x3F375C5A,0x3ECDD5F3,0xBD3A0C44,
+ 0xBD952E78,0x3F37483F,0x3ECE01DE,0xBD3A35F1,0xBD95286E,0x3F373422,0x3ECE2DCB,0xBD3A5F9B,
+ 0xBD95225E,0x3F372003,0x3ECE59B9,0xBD3A8943,0xBD951C48,0x3F370BE3,0x3ECE85A8,0xBD3AB2E8,
+ 0xBD95162A,0x3F36F7C2,0x3ECEB198,0xBD3ADC8B,0xBD951006,0x3F36E39F,0x3ECEDD89,0xBD3B062C,
+ 0xBD9509DB,0x3F36CF7A,0x3ECF097C,0xBD3B2FCA,0xBD9503A9,0x3F36BB54,0x3ECF356F,0xBD3B5965,
+ 0xBD94FD71,0x3F36A72C,0x3ECF6163,0xBD3B82FE,0xBD94F732,0x3F369303,0x3ECF8D59,0xBD3BAC94,
+ 0xBD94F0EC,0x3F367ED8,0x3ECFB94F,0xBD3BD628,0xBD94EA9F,0x3F366AAC,0x3ECFE546,0xBD3BFFB9,
+ 0xBD94E44C,0x3F36567F,0x3ED0113F,0xBD3C2948,0xBD94DDF2,0x3F36424F,0x3ED03D38,0xBD3C52D4,
+ 0xBD94D791,0x3F362E1E,0x3ED06933,0xBD3C7C5D,0xBD94D12A,0x3F3619EC,0x3ED0952F,0xBD3CA5E4,
+ 0xBD94CABC,0x3F3605B8,0x3ED0C12B,0xBD3CCF68,0xBD94C447,0x3F35F183,0x3ED0ED29,0xBD3CF8EA,
+ 0xBD94BDCC,0x3F35DD4C,0x3ED11927,0xBD3D2269,0xBD94B749,0x3F35C914,0x3ED14527,0xBD3D4BE5,
+ 0xBD94B0C1,0x3F35B4DA,0x3ED17128,0xBD3D755F,0xBD94AA31,0x3F35A09F,0x3ED19D29,0xBD3D9ED6,
+ 0xBD94A39B,0x3F358C62,0x3ED1C92C,0xBD3DC84A,0xBD949CFE,0x3F357824,0x3ED1F52F,0xBD3DF1BC,
+ 0xBD94965B,0x3F3563E4,0x3ED22134,0xBD3E1B2B,0xBD948FB1,0x3F354FA3,0x3ED24D39,0xBD3E4497,
+ 0xBD948900,0x3F353B60,0x3ED27940,0xBD3E6E00,0xBD948249,0x3F35271C,0x3ED2A547,0xBD3E9767,
+ 0xBD947B8B,0x3F3512D6,0x3ED2D150,0xBD3EC0CA,0xBD9474C6,0x3F34FE8F,0x3ED2FD59,0xBD3EEA2C,
+ 0xBD946DFB,0x3F34EA46,0x3ED32964,0xBD3F138A,0xBD946729,0x3F34D5FC,0x3ED3556F,0xBD3F3CE5,
+ 0xBD946051,0x3F34C1B0,0x3ED3817B,0xBD3F663E,0xBD945972,0x3F34AD63,0x3ED3AD88,0xBD3F8F94,
+ 0xBD94528C,0x3F349915,0x3ED3D997,0xBD3FB8E7,0xBD944BA0,0x3F3484C5,0x3ED405A6,0xBD3FE237,
+ 0xBD9444AE,0x3F347073,0x3ED431B6,0xBD400B85,0xBD943DB4,0x3F345C20,0x3ED45DC7,0xBD4034CF,
+ 0xBD9436B5,0x3F3447CC,0x3ED489D8,0xBD405E17,0xBD942FAE,0x3F343376,0x3ED4B5EB,0xBD40875B,
+ 0xBD9428A1,0x3F341F1F,0x3ED4E1FF,0xBD40B09D,0xBD94218E,0x3F340AC6,0x3ED50E14,0xBD40D9DC,
+ 0xBD941A74,0x3F33F66C,0x3ED53A29,0xBD410318,0xBD941353,0x3F33E210,0x3ED5663F,0xBD412C51,
+ 0xBD940C2C,0x3F33CDB3,0x3ED59257,0xBD415587,0xBD9404FF,0x3F33B954,0x3ED5BE6F,0xBD417EBA,
+ 0xBD93FDCB,0x3F33A4F4,0x3ED5EA88,0xBD41A7EA,0xBD93F690,0x3F339093,0x3ED616A2,0xBD41D118,
+ 0xBD93EF4F,0x3F337C30,0x3ED642BD,0xBD41FA42,0xBD93E808,0x3F3367CB,0x3ED66ED8,0xBD422369,
+ 0xBD93E0BA,0x3F335366,0x3ED69AF5,0xBD424C8D,0xBD93D965,0x3F333EFE,0x3ED6C712,0xBD4275AE,
+ 0xBD93D20A,0x3F332A96,0x3ED6F331,0xBD429ECC,0xBD93CAA8,0x3F33162C,0x3ED71F50,0xBD42C7E7,
+ 0xBD93C340,0x3F3301C0,0x3ED74B70,0xBD42F0FF,0xBD93BBD2,0x3F32ED53,0x3ED77790,0xBD431A14,
+ 0xBD93B45D,0x3F32D8E5,0x3ED7A3B2,0xBD434326,0xBD93ACE2,0x3F32C475,0x3ED7CFD5,0xBD436C34,
+ 0xBD93A560,0x3F32B004,0x3ED7FBF8,0xBD439540,0xBD939DD8,0x3F329B91,0x3ED8281C,0xBD43BE48,
+ 0xBD939649,0x3F32871D,0x3ED85441,0xBD43E74E,0xBD938EB4,0x3F3272A8,0x3ED88067,0xBD441050,
+ 0xBD938719,0x3F325E31,0x3ED8AC8E,0xBD44394F,0xBD937F77,0x3F3249B9,0x3ED8D8B5,0xBD44624B,
+ 0xBD9377CE,0x3F32353F,0x3ED904DD,0xBD448B43,0xBD937020,0x3F3220C4,0x3ED93106,0xBD44B439,
+ 0xBD93686A,0x3F320C48,0x3ED95D30,0xBD44DD2B,0xBD9360AF,0x3F31F7CA,0x3ED9895B,0xBD45061A,
+ 0xBD9358ED,0x3F31E34B,0x3ED9B586,0xBD452F06,0xBD935125,0x3F31CECA,0x3ED9E1B2,0xBD4557EE,
+ 0xBD934956,0x3F31BA48,0x3EDA0DDF,0xBD4580D4,0xBD934181,0x3F31A5C5,0x3EDA3A0D,0xBD45A9B6,
+ 0xBD9339A6,0x3F319140,0x3EDA663C,0xBD45D294,0xBD9331C4,0x3F317CBA,0x3EDA926B,0xBD45FB70,
+ 0xBD9329DC,0x3F316832,0x3EDABE9B,0xBD462448,0xBD9321EE,0x3F3153AA,0x3EDAEACC,0xBD464D1D,
+ 0xBD9319F9,0x3F313F1F,0x3EDB16FD,0xBD4675EE,0xBD9311FE,0x3F312A94,0x3EDB4330,0xBD469EBD,
+ 0xBD9309FC,0x3F311607,0x3EDB6F63,0xBD46C787,0xBD9301F5,0x3F310178,0x3EDB9B97,0xBD46F04F,
+ 0xBD92F9E7,0x3F30ECE8,0x3EDBC7CB,0xBD471913,0xBD92F1D2,0x3F30D857,0x3EDBF400,0xBD4741D4,
+ 0xBD92E9B8,0x3F30C3C5,0x3EDC2036,0xBD476A91,0xBD92E197,0x3F30AF31,0x3EDC4C6D,0xBD47934B,
+ 0xBD92D96F,0x3F309A9C,0x3EDC78A5,0xBD47BC01,0xBD92D142,0x3F308605,0x3EDCA4DD,0xBD47E4B4,
+ 0xBD92C90E,0x3F30716D,0x3EDCD116,0xBD480D64,0xBD92C0D4,0x3F305CD4,0x3EDCFD4F,0xBD483610,
+ 0xBD92B893,0x3F304839,0x3EDD2989,0xBD485EB9,0xBD92B04D,0x3F30339D,0x3EDD55C4,0xBD48875E,
+ 0xBD92A800,0x3F301F00,0x3EDD8200,0xBD48B000,0xBD929FAD,0x3F300A61,0x3EDDAE3C,0xBD48D89E,
+ 0xBD929754,0x3F2FF5C1,0x3EDDDA79,0xBD490139,0xBD928EF4,0x3F2FE120,0x3EDE06B7,0xBD4929D0,
+ 0xBD92868E,0x3F2FCC7D,0x3EDE32F5,0xBD495264,0xBD927E22,0x3F2FB7D9,0x3EDE5F35,0xBD497AF4,
+ 0xBD9275B0,0x3F2FA334,0x3EDE8B74,0xBD49A381,0xBD926D37,0x3F2F8E8D,0x3EDEB7B5,0xBD49CC0A,
+ 0xBD9264B8,0x3F2F79E5,0x3EDEE3F6,0xBD49F48F,0xBD925C34,0x3F2F653C,0x3EDF1037,0xBD4A1D11,
+ 0xBD9253A8,0x3F2F5091,0x3EDF3C7A,0xBD4A458F,0xBD924B17,0x3F2F3BE5,0x3EDF68BD,0xBD4A6E0A,
+ 0xBD924280,0x3F2F2738,0x3EDF9500,0xBD4A9681,0xBD9239E2,0x3F2F1289,0x3EDFC144,0xBD4ABEF4,
+ 0xBD92313E,0x3F2EFDD9,0x3EDFED89,0xBD4AE764,0xBD922894,0x3F2EE928,0x3EE019CF,0xBD4B0FD0,
+ 0xBD921FE4,0x3F2ED476,0x3EE04615,0xBD4B3838,0xBD92172E,0x3F2EBFC2,0x3EE0725C,0xBD4B609D,
+ 0xBD920E71,0x3F2EAB0C,0x3EE09EA3,0xBD4B88FE,0xBD9205AF,0x3F2E9656,0x3EE0CAEB,0xBD4BB15B,
+ 0xBD91FCE6,0x3F2E819E,0x3EE0F734,0xBD4BD9B4,0xBD91F417,0x3F2E6CE5,0x3EE1237D,0xBD4C020A,
+ 0xBD91EB42,0x3F2E582B,0x3EE14FC7,0xBD4C2A5C,0xBD91E267,0x3F2E436F,0x3EE17C11,0xBD4C52AA,
+ 0xBD91D986,0x3F2E2EB2,0x3EE1A85C,0xBD4C7AF5,0xBD91D09E,0x3F2E19F4,0x3EE1D4A7,0xBD4CA33C,
+ 0xBD91C7B1,0x3F2E0534,0x3EE200F4,0xBD4CCB7F,0xBD91BEBD,0x3F2DF073,0x3EE22D40,0xBD4CF3BE,
+ 0xBD91B5C3,0x3F2DDBB1,0x3EE2598D,0xBD4D1BF9,0xBD91ACC4,0x3F2DC6EE,0x3EE285DB,0xBD4D4431,
+ 0xBD91A3BE,0x3F2DB229,0x3EE2B22A,0xBD4D6C64,0xBD919AB2,0x3F2D9D63,0x3EE2DE79,0xBD4D9494,
+ 0xBD9191A0,0x3F2D889C,0x3EE30AC8,0xBD4DBCC0,0xBD918888,0x3F2D73D3,0x3EE33718,0xBD4DE4E8,
+ 0xBD917F6A,0x3F2D5F0A,0x3EE36369,0xBD4E0D0C,0xBD917646,0x3F2D4A3F,0x3EE38FBA,0xBD4E352D,
+ 0xBD916D1C,0x3F2D3572,0x3EE3BC0B,0xBD4E5D49,0xBD9163EB,0x3F2D20A5,0x3EE3E85D,0xBD4E8561,
+ 0xBD915AB5,0x3F2D0BD6,0x3EE414B0,0xBD4EAD76,0xBD915179,0x3F2CF706,0x3EE44103,0xBD4ED586,
+ 0xBD914836,0x3F2CE234,0x3EE46D57,0xBD4EFD93,0xBD913EEE,0x3F2CCD62,0x3EE499AB,0xBD4F259C,
+ 0xBD9135A0,0x3F2CB88E,0x3EE4C600,0xBD4F4DA0,0xBD912C4C,0x3F2CA3B9,0x3EE4F255,0xBD4F75A1,
+ 0xBD9122F1,0x3F2C8EE2,0x3EE51EAB,0xBD4F9D9E,0xBD911991,0x3F2C7A0B,0x3EE54B01,0xBD4FC596,
+ 0xBD91102B,0x3F2C6532,0x3EE57758,0xBD4FED8B,0xBD9106BE,0x3F2C5058,0x3EE5A3AF,0xBD50157B,
+ 0xBD90FD4C,0x3F2C3B7C,0x3EE5D007,0xBD503D68,0xBD90F3D4,0x3F2C26A0,0x3EE5FC5F,0xBD506550,
+ 0xBD90EA56,0x3F2C11C2,0x3EE628B8,0xBD508D35,0xBD90E0D1,0x3F2BFCE3,0x3EE65511,0xBD50B515,
+ 0xBD90D747,0x3F2BE803,0x3EE6816B,0xBD50DCF1,0xBD90CDB7,0x3F2BD321,0x3EE6ADC5,0xBD5104C9,
+ 0xBD90C421,0x3F2BBE3E,0x3EE6DA1F,0xBD512C9D,0xBD90BA85,0x3F2BA95B,0x3EE7067A,0xBD51546D,
+ 0xBD90B0E4,0x3F2B9475,0x3EE732D5,0xBD517C39,0xBD90A73C,0x3F2B7F8F,0x3EE75F31,0xBD51A401,
+ 0xBD909D8E,0x3F2B6AA7,0x3EE78B8D,0xBD51CBC4,0xBD9093DA,0x3F2B55BE,0x3EE7B7EA,0xBD51F383,
+ 0xBD908A21,0x3F2B40D4,0x3EE7E447,0xBD521B3E,0xBD908062,0x3F2B2BE9,0x3EE810A5,0xBD5242F5,
+ 0xBD90769C,0x3F2B16FD,0x3EE83D03,0xBD526AA8,0xBD906CD1,0x3F2B020F,0x3EE86961,0xBD529256,
+ 0xBD906300,0x3F2AED20,0x3EE895C0,0xBD52BA00,0xBD905929,0x3F2AD830,0x3EE8C21F,0xBD52E1A6,
+ 0xBD904F4C,0x3F2AC33F,0x3EE8EE7F,0xBD530947,0xBD90456A,0x3F2AAE4C,0x3EE91ADF,0xBD5330E5,
+ 0xBD903B81,0x3F2A9958,0x3EE9473F,0xBD53587E,0xBD903193,0x3F2A8464,0x3EE973A0,0xBD538013,
+ 0xBD90279E,0x3F2A6F6D,0x3EE9A001,0xBD53A7A3,0xBD901DA4,0x3F2A5A76,0x3EE9CC63,0xBD53CF2F,
+ 0xBD9013A4,0x3F2A457E,0x3EE9F8C5,0xBD53F6B7,0xBD90099F,0x3F2A3084,0x3EEA2527,0xBD541E3A,
+ 0xBD8FFF93,0x3F2A1B89,0x3EEA518A,0xBD5445BA,0xBD8FF582,0x3F2A068D,0x3EEA7DED,0xBD546D34,
+ 0xBD8FEB6B,0x3F29F190,0x3EEAAA50,0xBD5494AB,0xBD8FE14E,0x3F29DC92,0x3EEAD6B4,0xBD54BC1D,
+ 0xBD8FD72B,0x3F29C792,0x3EEB0318,0xBD54E38A,0xBD8FCD02,0x3F29B291,0x3EEB2F7C,0xBD550AF3,
+ 0xBD8FC2D4,0x3F299D90,0x3EEB5BE1,0xBD553258,0xBD8FB8A0,0x3F29888C,0x3EEB8846,0xBD5559B8,
+ 0xBD8FAE66,0x3F297388,0x3EEBB4AC,0xBD558114,0xBD8FA426,0x3F295E83,0x3EEBE111,0xBD55A86B,
+ 0xBD8F99E1,0x3F29497C,0x3EEC0D77,0xBD55CFBE,0xBD8F8F96,0x3F293475,0x3EEC39DE,0xBD55F70D,
+ 0xBD8F8545,0x3F291F6C,0x3EEC6645,0xBD561E57,0xBD8F7AEE,0x3F290A62,0x3EEC92AC,0xBD56459C,
+ 0xBD8F7092,0x3F28F557,0x3EECBF13,0xBD566CDD,0xBD8F662F,0x3F28E04A,0x3EECEB7B,0xBD569419,
+ 0xBD8F5BC7,0x3F28CB3D,0x3EED17E2,0xBD56BB51,0xBD8F515A,0x3F28B62E,0x3EED444B,0xBD56E284,
+ 0xBD8F46E6,0x3F28A11E,0x3EED70B3,0xBD5709B3,0xBD8F3C6D,0x3F288C0E,0x3EED9D1C,0xBD5730DD,
+ 0xBD8F31EF,0x3F2876FB,0x3EEDC985,0xBD575803,0xBD8F276A,0x3F2861E8,0x3EEDF5EE,0xBD577F24,
+ 0xBD8F1CE0,0x3F284CD4,0x3EEE2258,0xBD57A640,0xBD8F1250,0x3F2837BF,0x3EEE4EC2,0xBD57CD58,
+ 0xBD8F07BB,0x3F2822A8,0x3EEE7B2C,0xBD57F46B,0xBD8EFD1F,0x3F280D90,0x3EEEA796,0xBD581B79,
+ 0xBD8EF27F,0x3F27F877,0x3EEED401,0xBD584283,0xBD8EE7D8,0x3F27E35E,0x3EEF006C,0xBD586988,
+ 0xBD8EDD2C,0x3F27CE42,0x3EEF2CD7,0xBD589088,0xBD8ED27A,0x3F27B926,0x3EEF5943,0xBD58B784,
+ 0xBD8EC7C2,0x3F27A409,0x3EEF85AE,0xBD58DE7B,0xBD8EBD05,0x3F278EEB,0x3EEFB21A,0xBD59056D,
+ 0xBD8EB243,0x3F2779CB,0x3EEFDE86,0xBD592C5B,0xBD8EA77A,0x3F2764AA,0x3EF00AF2,0xBD595344,
+ 0xBD8E9CAC,0x3F274F89,0x3EF0375F,0xBD597A28,0xBD8E91D9,0x3F273A66,0x3EF063CC,0xBD59A107,
+ 0xBD8E86FF,0x3F272542,0x3EF09039,0xBD59C7E1,0xBD8E7C20,0x3F27101D,0x3EF0BCA6,0xBD59EEB7,
+ 0xBD8E713C,0x3F26FAF6,0x3EF0E913,0xBD5A1588,0xBD8E6652,0x3F26E5CF,0x3EF11581,0xBD5A3C54,
+ 0xBD8E5B62,0x3F26D0A7,0x3EF141EE,0xBD5A631B,0xBD8E506D,0x3F26BB7D,0x3EF16E5C,0xBD5A89DE,
+ 0xBD8E4572,0x3F26A653,0x3EF19ACA,0xBD5AB09B,0xBD8E3A72,0x3F269127,0x3EF1C739,0xBD5AD754,
+ 0xBD8E2F6C,0x3F267BFB,0x3EF1F3A7,0xBD5AFE08,0xBD8E2461,0x3F2666CD,0x3EF22016,0xBD5B24B7,
+ 0xBD8E1950,0x3F26519E,0x3EF24C84,0xBD5B4B61,0xBD8E0E39,0x3F263C6E,0x3EF278F3,0xBD5B7206,
+ 0xBD8E031D,0x3F26273D,0x3EF2A562,0xBD5B98A6,0xBD8DF7FB,0x3F26120B,0x3EF2D1D2,0xBD5BBF42,
+ 0xBD8DECD4,0x3F25FCD7,0x3EF2FE41,0xBD5BE5D8,0xBD8DE1A7,0x3F25E7A3,0x3EF32AB1,0xBD5C0C6A,
+ 0xBD8DD675,0x3F25D26E,0x3EF35720,0xBD5C32F6,0xBD8DCB3D,0x3F25BD37,0x3EF38390,0xBD5C597E,
+ 0xBD8DC000,0x3F25A800,0x3EF3B000,0xBD5C8000,0xBD8DB4BD,0x3F2592C7,0x3EF3DC70,0xBD5CA67D,
+ 0xBD8DA975,0x3F257D8E,0x3EF408E0,0xBD5CCCF6,0xBD8D9E27,0x3F256853,0x3EF43551,0xBD5CF369,
+ 0xBD8D92D4,0x3F255318,0x3EF461C1,0xBD5D19D8,0xBD8D877B,0x3F253DDB,0x3EF48E31,0xBD5D4041,
+ 0xBD8D7C1D,0x3F25289D,0x3EF4BAA2,0xBD5D66A6,0xBD8D70BA,0x3F25135E,0x3EF4E713,0xBD5D8D05,
+ 0xBD8D6550,0x3F24FE1E,0x3EF51384,0xBD5DB35F,0xBD8D59E2,0x3F24E8DD,0x3EF53FF5,0xBD5DD9B4,
+ 0xBD8D4E6E,0x3F24D39B,0x3EF56C66,0xBD5E0004,0xBD8D42F5,0x3F24BE58,0x3EF598D7,0xBD5E264F,
+ 0xBD8D3776,0x3F24A914,0x3EF5C548,0xBD5E4C95,0xBD8D2BF1,0x3F2493CF,0x3EF5F1B9,0xBD5E72D5,
+ 0xBD8D2068,0x3F247E89,0x3EF61E2A,0xBD5E9911,0xBD8D14D9,0x3F246942,0x3EF64A9C,0xBD5EBF47,
+ 0xBD8D0944,0x3F2453FA,0x3EF6770D,0xBD5EE578,0xBD8CFDAA,0x3F243EB0,0x3EF6A37E,0xBD5F0BA4,
+ 0xBD8CF20B,0x3F242966,0x3EF6CFF0,0xBD5F31CB,0xBD8CE666,0x3F24141B,0x3EF6FC62,0xBD5F57EC,
+ 0xBD8CDABC,0x3F23FECE,0x3EF728D3,0xBD5F7E08,0xBD8CCF0C,0x3F23E981,0x3EF75545,0xBD5FA41F,
+ 0xBD8CC357,0x3F23D433,0x3EF781B6,0xBD5FCA31,0xBD8CB79D,0x3F23BEE3,0x3EF7AE28,0xBD5FF03E,
+ 0xBD8CABDE,0x3F23A993,0x3EF7DA9A,0xBD601645,0xBD8CA019,0x3F239442,0x3EF8070C,0xBD603C47,
+ 0xBD8C944E,0x3F237EEF,0x3EF8337D,0xBD606244,0xBD8C887E,0x3F23699C,0x3EF85FEF,0xBD60883B,
+ 0xBD8C7CA9,0x3F235448,0x3EF88C61,0xBD60AE2D,0xBD8C70CF,0x3F233EF2,0x3EF8B8D3,0xBD60D41A,
+ 0xBD8C64EF,0x3F23299C,0x3EF8E544,0xBD60FA01,0xBD8C590A,0x3F231444,0x3EF911B6,0xBD611FE3,
+ 0xBD8C4D20,0x3F22FEEC,0x3EF93E28,0xBD6145C0,0xBD8C4130,0x3F22E993,0x3EF96A9A,0xBD616B97,
+ 0xBD8C353B,0x3F22D438,0x3EF9970B,0xBD619169,0xBD8C2941,0x3F22BEDD,0x3EF9C37D,0xBD61B736,
+ 0xBD8C1D42,0x3F22A981,0x3EF9EFEF,0xBD61DCFD,0xBD8C113D,0x3F229423,0x3EFA1C60,0xBD6202BF,
+ 0xBD8C0533,0x3F227EC5,0x3EFA48D2,0xBD62287B,0xBD8BF923,0x3F226966,0x3EFA7544,0xBD624E32,
+ 0xBD8BED0E,0x3F225405,0x3EFAA1B5,0xBD6273E3,0xBD8BE0F5,0x3F223EA4,0x3EFACE27,0xBD62998F,
+ 0xBD8BD4D5,0x3F222942,0x3EFAFA98,0xBD62BF35,0xBD8BC8B1,0x3F2213DF,0x3EFB2709,0xBD62E4D6,
+ 0xBD8BBC87,0x3F21FE7B,0x3EFB537B,0xBD630A72,0xBD8BB058,0x3F21E916,0x3EFB7FEC,0xBD633008,
+ 0xBD8BA424,0x3F21D3B0,0x3EFBAC5D,0xBD635598,0xBD8B97EB,0x3F21BE48,0x3EFBD8CE,0xBD637B23,
+ 0xBD8B8BAC,0x3F21A8E0,0x3EFC053F,0xBD63A0A8,0xBD8B7F68,0x3F219378,0x3EFC31B0,0xBD63C628,
+ 0xBD8B731F,0x3F217E0E,0x3EFC5E21,0xBD63EBA2,0xBD8B66D1,0x3F2168A3,0x3EFC8A91,0xBD641116,
+ 0xBD8B5A7D,0x3F215337,0x3EFCB702,0xBD643685,0xBD8B4E25,0x3F213DCA,0x3EFCE373,0xBD645BEF,
+ 0xBD8B41C7,0x3F21285D,0x3EFD0FE3,0xBD648152,0xBD8B3564,0x3F2112EE,0x3EFD3C53,0xBD64A6B1,
+ 0xBD8B28FC,0x3F20FD7E,0x3EFD68C3,0xBD64CC09,0xBD8B1C8E,0x3F20E80E,0x3EFD9533,0xBD64F15C,
+ 0xBD8B101C,0x3F20D29C,0x3EFDC1A3,0xBD6516A9,0xBD8B03A4,0x3F20BD2A,0x3EFDEE13,0xBD653BF0,
+ 0xBD8AF727,0x3F20A7B7,0x3EFE1A83,0xBD656132,0xBD8AEAA5,0x3F209242,0x3EFE46F2,0xBD65866E,
+ 0xBD8ADE1E,0x3F207CCD,0x3EFE7362,0xBD65ABA5,0xBD8AD191,0x3F206757,0x3EFE9FD1,0xBD65D0D5,
+ 0xBD8AC500,0x3F2051E0,0x3EFECC40,0xBD65F600,0xBD8AB869,0x3F203C68,0x3EFEF8AF,0xBD661B25,
+ 0xBD8AABCE,0x3F2026EF,0x3EFF251E,0xBD664044,0xBD8A9F2D,0x3F201175,0x3EFF518C,0xBD66655E,
+ 0xBD8A9287,0x3F1FFBFB,0x3EFF7DFB,0xBD668A72,0xBD8A85DC,0x3F1FE67F,0x3EFFAA69,0xBD66AF80,
+ 0xBD8A792C,0x3F1FD102,0x3EFFD6D7,0xBD66D488,0xBD8A6C77,0x3F1FBB85,0x3F0001A2,0xBD66F98A,
+ 0xBD8A5FBC,0x3F1FA607,0x3F0017D9,0xBD671E87,0xBD8A52FD,0x3F1F9087,0x3F002E10,0xBD67437E,
+ 0xBD8A4639,0x3F1F7B07,0x3F004447,0xBD67686F,0xBD8A396F,0x3F1F6586,0x3F005A7D,0xBD678D5A,
+ 0xBD8A2CA1,0x3F1F5004,0x3F0070B4,0xBD67B23F,0xBD8A1FCD,0x3F1F3A81,0x3F0086EA,0xBD67D71E,
+ 0xBD8A12F4,0x3F1F24FE,0x3F009D20,0xBD67FBF7,0xBD8A0617,0x3F1F0F79,0x3F00B356,0xBD6820CB,
+ 0xBD89F934,0x3F1EF9F4,0x3F00C98C,0xBD684598,0xBD89EC4C,0x3F1EE46D,0x3F00DFC2,0xBD686A60,
+ 0xBD89DF5F,0x3F1ECEE6,0x3F00F5F8,0xBD688F21,0xBD89D26E,0x3F1EB95E,0x3F010C2E,0xBD68B3DD,
+ 0xBD89C577,0x3F1EA3D5,0x3F012263,0xBD68D892,0xBD89B87B,0x3F1E8E4B,0x3F013899,0xBD68FD42,
+ 0xBD89AB7A,0x3F1E78C0,0x3F014ECE,0xBD6921EC,0xBD899E74,0x3F1E6334,0x3F016503,0xBD69468F,
+ 0xBD89916A,0x3F1E4DA8,0x3F017B38,0xBD696B2D,0xBD89845A,0x3F1E381A,0x3F01916D,0xBD698FC5,
+ 0xBD897745,0x3F1E228C,0x3F01A7A2,0xBD69B456,0xBD896A2B,0x3F1E0CFD,0x3F01BDD7,0xBD69D8E2,
+ 0xBD895D0C,0x3F1DF76D,0x3F01D40B,0xBD69FD67,0xBD894FE9,0x3F1DE1DC,0x3F01EA40,0xBD6A21E6,
+ 0xBD8942C0,0x3F1DCC4A,0x3F020074,0xBD6A4660,0xBD893593,0x3F1DB6B7,0x3F0216A8,0xBD6A6AD3,
+ 0xBD892860,0x3F1DA124,0x3F022CDC,0xBD6A8F40,0xBD891B29,0x3F1D8B90,0x3F024310,0xBD6AB3A7,
+ 0xBD890DEC,0x3F1D75FB,0x3F025943,0xBD6AD808,0xBD8900AB,0x3F1D6065,0x3F026F77,0xBD6AFC62,
+ 0xBD88F365,0x3F1D4ACE,0x3F0285AA,0xBD6B20B7,0xBD88E619,0x3F1D3536,0x3F029BDD,0xBD6B4505,
+ 0xBD88D8C9,0x3F1D1F9E,0x3F02B210,0xBD6B694D,0xBD88CB74,0x3F1D0A04,0x3F02C843,0xBD6B8D8F,
+ 0xBD88BE1A,0x3F1CF46A,0x3F02DE76,0xBD6BB1CB,0xBD88B0BC,0x3F1CDECF,0x3F02F4A9,0xBD6BD601,
+ 0xBD88A358,0x3F1CC933,0x3F030ADB,0xBD6BFA30,0xBD8895F0,0x3F1CB396,0x3F03210D,0xBD6C1E59,
+ 0xBD888882,0x3F1C9DF9,0x3F03373F,0xBD6C427C,0xBD887B10,0x3F1C885A,0x3F034D71,0xBD6C6698,
+ 0xBD886D99,0x3F1C72BB,0x3F0363A3,0xBD6C8AAE,0xBD88601D,0x3F1C5D1B,0x3F0379D4,0xBD6CAEBE,
+ 0xBD88529C,0x3F1C477A,0x3F039006,0xBD6CD2C8,0xBD884516,0x3F1C31D9,0x3F03A637,0xBD6CF6CB,
+ 0xBD88378C,0x3F1C1C36,0x3F03BC68,0xBD6D1AC8,0xBD8829FC,0x3F1C0693,0x3F03D298,0xBD6D3EBF,
+ 0xBD881C68,0x3F1BF0EF,0x3F03E8C9,0xBD6D62AF,0xBD880ECF,0x3F1BDB4A,0x3F03FEF9,0xBD6D8699,
+ 0xBD880132,0x3F1BC5A5,0x3F041529,0xBD6DAA7D,0xBD87F38F,0x3F1BAFFE,0x3F042B59,0xBD6DCE5A,
+ 0xBD87E5E8,0x3F1B9A57,0x3F044189,0xBD6DF231,0xBD87D83B,0x3F1B84AF,0x3F0457B9,0xBD6E1601,
+ 0xBD87CA8A,0x3F1B6F06,0x3F046DE8,0xBD6E39CB,0xBD87BCD5,0x3F1B595C,0x3F048417,0xBD6E5D8F,
+ 0xBD87AF1A,0x3F1B43B2,0x3F049A46,0xBD6E814C,0xBD87A15B,0x3F1B2E06,0x3F04B075,0xBD6EA503,
+ 0xBD879396,0x3F1B185A,0x3F04C6A4,0xBD6EC8B3,0xBD8785CE,0x3F1B02AE,0x3F04DCD2,0xBD6EEC5D,
+ 0xBD877800,0x3F1AED00,0x3F04F300,0xBD6F1000,0xBD876A2E,0x3F1AD752,0x3F05092E,0xBD6F339D,
+ 0xBD875C57,0x3F1AC1A2,0x3F051F5C,0xBD6F5733,0xBD874E7B,0x3F1AABF2,0x3F053589,0xBD6F7AC3,
+ 0xBD87409A,0x3F1A9642,0x3F054BB6,0xBD6F9E4C,0xBD8732B5,0x3F1A8090,0x3F0561E3,0xBD6FC1CF,
+ 0xBD8724CB,0x3F1A6ADE,0x3F057810,0xBD6FE54B,0xBD8716DC,0x3F1A552B,0x3F058E3D,0xBD7008C0,
+ 0xBD8708E8,0x3F1A3F77,0x3F05A469,0xBD702C2F,0xBD86FAF0,0x3F1A29C3,0x3F05BA95,0xBD704F97,
+ 0xBD86ECF3,0x3F1A140D,0x3F05D0C1,0xBD7072F9,0xBD86DEF2,0x3F19FE57,0x3F05E6EC,0xBD709654,
+ 0xBD86D0EC,0x3F19E8A0,0x3F05FD18,0xBD70B9A9,0xBD86C2E1,0x3F19D2E9,0x3F061343,0xBD70DCF6,
+ 0xBD86B4D1,0x3F19BD30,0x3F06296E,0xBD71003E,0xBD86A6BD,0x3F19A777,0x3F063F98,0xBD71237E,
+ 0xBD8698A4,0x3F1991BE,0x3F0655C2,0xBD7146B8,0xBD868A86,0x3F197C03,0x3F066BED,0xBD7169EB,
+ 0xBD867C64,0x3F196648,0x3F068216,0xBD718D18,0xBD866E3D,0x3F19508B,0x3F069840,0xBD71B03D,
+ 0xBD866012,0x3F193ACF,0x3F06AE69,0xBD71D35C,0xBD8651E2,0x3F192511,0x3F06C492,0xBD71F675,
+ 0xBD8643AD,0x3F190F53,0x3F06DABB,0xBD721986,0xBD863574,0x3F18F994,0x3F06F0E4,0xBD723C91,
+ 0xBD862736,0x3F18E3D4,0x3F07070C,0xBD725F95,0xBD8618F3,0x3F18CE14,0x3F071D34,0xBD728292,
+ 0xBD860AAC,0x3F18B852,0x3F07335C,0xBD72A589,0xBD85FC60,0x3F18A290,0x3F074983,0xBD72C878,
+ 0xBD85EE0F,0x3F188CCE,0x3F075FAA,0xBD72EB61,0xBD85DFBA,0x3F18770A,0x3F0775D1,0xBD730E43,
+ 0xBD85D161,0x3F186146,0x3F078BF8,0xBD73311E,0xBD85C303,0x3F184B82,0x3F07A21E,0xBD7353F3,
+ 0xBD85B4A0,0x3F1835BC,0x3F07B844,0xBD7376C0,0xBD85A639,0x3F181FF6,0x3F07CE6A,0xBD739987,
+ 0xBD8597CD,0x3F180A2F,0x3F07E48F,0xBD73BC46,0xBD85895C,0x3F17F467,0x3F07FAB4,0xBD73DEFF,
+ 0xBD857AE8,0x3F17DE9F,0x3F0810D9,0xBD7401B1,0xBD856C6E,0x3F17C8D6,0x3F0826FE,0xBD74245C,
+ 0xBD855DF0,0x3F17B30C,0x3F083D22,0xBD744700,0xBD854F6E,0x3F179D42,0x3F085346,0xBD74699D,
+ 0xBD8540E6,0x3F178776,0x3F08696A,0xBD748C33,0xBD85325B,0x3F1771AB,0x3F087F8D,0xBD74AEC2,
+ 0xBD8523CB,0x3F175BDE,0x3F0895B0,0xBD74D14A,0xBD851536,0x3F174611,0x3F08ABD3,0xBD74F3CB,
+ 0xBD85069D,0x3F173043,0x3F08C1F5,0xBD751646,0xBD84F800,0x3F171A74,0x3F08D817,0xBD7538B9,
+ 0xBD84E95E,0x3F1704A5,0x3F08EE39,0xBD755B25,0xBD84DAB7,0x3F16EED5,0x3F09045A,0xBD757D8A,
+ 0xBD84CC0C,0x3F16D904,0x3F091A7C,0xBD759FE8,0xBD84BD5D,0x3F16C333,0x3F09309C,0xBD75C23F,
+ 0xBD84AEA9,0x3F16AD61,0x3F0946BD,0xBD75E48F,0xBD849FF0,0x3F16978F,0x3F095CDD,0xBD7606D8,
+ 0xBD849133,0x3F1681BB,0x3F0972FD,0xBD762919,0xBD848272,0x3F166BE7,0x3F09891C,0xBD764B54,
+ 0xBD8473AC,0x3F165613,0x3F099F3B,0xBD766D87,0xBD8464E2,0x3F16403D,0x3F09B55A,0xBD768FB4,
+ 0xBD845614,0x3F162A67,0x3F09CB79,0xBD76B1D9,0xBD844740,0x3F161491,0x3F09E197,0xBD76D3F7,
+ 0xBD843869,0x3F15FEB9,0x3F09F7B5,0xBD76F60E,0xBD84298D,0x3F15E8E1,0x3F0A0DD2,0xBD77181E,
+ 0xBD841AAD,0x3F15D309,0x3F0A23EF,0xBD773A26,0xBD840BC8,0x3F15BD30,0x3F0A3A0C,0xBD775C27,
+ 0xBD83FCDF,0x3F15A756,0x3F0A5028,0xBD777E22,0xBD83EDF2,0x3F15917B,0x3F0A6644,0xBD77A014,
+ 0xBD83DF00,0x3F157BA0,0x3F0A7C60,0xBD77C200,0xBD83D00A,0x3F1565C4,0x3F0A927B,0xBD77E3E4,
+ 0xBD83C10F,0x3F154FE8,0x3F0AA896,0xBD7805C1,0xBD83B210,0x3F153A0B,0x3F0ABEB1,0xBD782797,
+ 0xBD83A30D,0x3F15242D,0x3F0AD4CB,0xBD784966,0xBD839405,0x3F150E4F,0x3F0AEAE5,0xBD786B2D,
+ 0xBD8384F9,0x3F14F870,0x3F0B00FE,0xBD788CED,0xBD8375E9,0x3F14E290,0x3F0B1718,0xBD78AEA6,
+ 0xBD8366D4,0x3F14CCB0,0x3F0B2D30,0xBD78D057,0xBD8357BC,0x3F14B6CF,0x3F0B4349,0xBD78F201,
+ 0xBD83489E,0x3F14A0ED,0x3F0B5961,0xBD7913A4,0xBD83397D,0x3F148B0B,0x3F0B6F78,0xBD79353F,
+ 0xBD832A57,0x3F147529,0x3F0B858F,0xBD7956D3,0xBD831B2C,0x3F145F45,0x3F0B9BA6,0xBD79785F,
+ 0xBD830BFE,0x3F144961,0x3F0BB1BD,0xBD7999E4,0xBD82FCCB,0x3F14337D,0x3F0BC7D3,0xBD79BB62,
+ 0xBD82ED94,0x3F141D98,0x3F0BDDE8,0xBD79DCD8,0xBD82DE59,0x3F1407B2,0x3F0BF3FE,0xBD79FE47,
+ 0xBD82CF19,0x3F13F1CB,0x3F0C0A13,0xBD7A1FAE,0xBD82BFD5,0x3F13DBE4,0x3F0C2027,0xBD7A410E,
+ 0xBD82B08D,0x3F13C5FD,0x3F0C363B,0xBD7A6266,0xBD82A140,0x3F13B015,0x3F0C4C4F,0xBD7A83B7,
+ 0xBD8291F0,0x3F139A2C,0x3F0C6262,0xBD7AA501,0xBD82829B,0x3F138443,0x3F0C7875,0xBD7AC643,
+ 0xBD827342,0x3F136E59,0x3F0C8E87,0xBD7AE77D,0xBD8263E4,0x3F13586E,0x3F0CA499,0xBD7B08B0,
+ 0xBD825482,0x3F134283,0x3F0CBAAB,0xBD7B29DB,0xBD82451D,0x3F132C97,0x3F0CD0BC,0xBD7B4AFF,
+ 0xBD8235B2,0x3F1316AB,0x3F0CE6CD,0xBD7B6C1B,0xBD822644,0x3F1300BE,0x3F0CFCDD,0xBD7B8D30,
+ 0xBD8216D2,0x3F12EAD1,0x3F0D12ED,0xBD7BAE3D,0xBD82075B,0x3F12D4E3,0x3F0D28FD,0xBD7BCF42,
+ 0xBD81F7E0,0x3F12BEF4,0x3F0D3F0C,0xBD7BF040,0xBD81E861,0x3F12A905,0x3F0D551B,0xBD7C1136,
+ 0xBD81D8DE,0x3F129315,0x3F0D6B29,0xBD7C3225,0xBD81C956,0x3F127D25,0x3F0D8137,0xBD7C530C,
+ 0xBD81B9CB,0x3F126734,0x3F0D9744,0xBD7C73EB,0xBD81AA3B,0x3F125143,0x3F0DAD51,0xBD7C94C2,
+ 0xBD819AA7,0x3F123B51,0x3F0DC35D,0xBD7CB592,0xBD818B0F,0x3F12255E,0x3F0DD969,0xBD7CD65B,
+ 0xBD817B72,0x3F120F6B,0x3F0DEF75,0xBD7CF71B,0xBD816BD2,0x3F11F977,0x3F0E0580,0xBD7D17D4,
+ 0xBD815C2E,0x3F11E383,0x3F0E1B8B,0xBD7D3885,0xBD814C85,0x3F11CD8E,0x3F0E3195,0xBD7D592E,
+ 0xBD813CD8,0x3F11B799,0x3F0E479F,0xBD7D79D0,0xBD812D27,0x3F11A1A3,0x3F0E5DA8,0xBD7D9A69,
+ 0xBD811D72,0x3F118BAD,0x3F0E73B1,0xBD7DBAFB,0xBD810DB9,0x3F1175B6,0x3F0E89BA,0xBD7DDB86,
+ 0xBD80FDFC,0x3F115FBE,0x3F0E9FC2,0xBD7DFC08,0xBD80EE3B,0x3F1149C7,0x3F0EB5C9,0xBD7E1C83,
+ 0xBD80DE75,0x3F1133CE,0x3F0ECBD0,0xBD7E3CF5,0xBD80CEAC,0x3F111DD5,0x3F0EE1D7,0xBD7E5D60,
+ 0xBD80BEDE,0x3F1107DB,0x3F0EF7DD,0xBD7E7DC3,0xBD80AF0D,0x3F10F1E1,0x3F0F0DE2,0xBD7E9E1F,
+ 0xBD809F37,0x3F10DBE7,0x3F0F23E7,0xBD7EBE72,0xBD808F5D,0x3F10C5EB,0x3F0F39EC,0xBD7EDEBD,
+ 0xBD807F80,0x3F10AFF0,0x3F0F4FF0,0xBD7EFF01,0xBD806F9E,0x3F1099F4,0x3F0F65F4,0xBD7F1F3D,
+ 0xBD805FB8,0x3F1083F7,0x3F0F7BF7,0xBD7F3F70,0xBD804FCE,0x3F106DFA,0x3F0F91FA,0xBD7F5F9C,
+ 0xBD803FE0,0x3F1057FC,0x3F0FA7FC,0xBD7F7FC0,0xBD802FEE,0x3F1041FE,0x3F0FBDFE,0xBD7F9FDC,
+ 0xBD801FF8,0x3F102BFF,0x3F0FD3FF,0xBD7FBFF0,0xBD800FFE,0x3F101600,0x3F0FEA00,0xBD7FDFFC,
+ 0xBD800000,0x3F100000,0x3F100000,0xBD800000,0xBD7FDFFC,0x3F0FEA00,0x3F101600,0xBD800FFE,
+ 0xBD7FBFF0,0x3F0FD3FF,0x3F102BFF,0xBD801FF8,0xBD7F9FDC,0x3F0FBDFE,0x3F1041FE,0xBD802FEE,
+ 0xBD7F7FC0,0x3F0FA7FC,0x3F1057FC,0xBD803FE0,0xBD7F5F9C,0x3F0F91FA,0x3F106DFA,0xBD804FCE,
+ 0xBD7F3F70,0x3F0F7BF7,0x3F1083F7,0xBD805FB8,0xBD7F1F3D,0x3F0F65F4,0x3F1099F4,0xBD806F9E,
+ 0xBD7EFF01,0x3F0F4FF0,0x3F10AFF0,0xBD807F80,0xBD7EDEBD,0x3F0F39EC,0x3F10C5EB,0xBD808F5D,
+ 0xBD7EBE72,0x3F0F23E7,0x3F10DBE7,0xBD809F37,0xBD7E9E1F,0x3F0F0DE2,0x3F10F1E1,0xBD80AF0D,
+ 0xBD7E7DC3,0x3F0EF7DD,0x3F1107DB,0xBD80BEDE,0xBD7E5D60,0x3F0EE1D7,0x3F111DD5,0xBD80CEAC,
+ 0xBD7E3CF5,0x3F0ECBD0,0x3F1133CE,0xBD80DE75,0xBD7E1C83,0x3F0EB5C9,0x3F1149C7,0xBD80EE3B,
+ 0xBD7DFC08,0x3F0E9FC2,0x3F115FBE,0xBD80FDFC,0xBD7DDB86,0x3F0E89BA,0x3F1175B6,0xBD810DB9,
+ 0xBD7DBAFB,0x3F0E73B1,0x3F118BAD,0xBD811D72,0xBD7D9A69,0x3F0E5DA8,0x3F11A1A3,0xBD812D27,
+ 0xBD7D79D0,0x3F0E479F,0x3F11B799,0xBD813CD8,0xBD7D592E,0x3F0E3195,0x3F11CD8E,0xBD814C85,
+ 0xBD7D3885,0x3F0E1B8B,0x3F11E383,0xBD815C2E,0xBD7D17D4,0x3F0E0580,0x3F11F977,0xBD816BD2,
+ 0xBD7CF71B,0x3F0DEF75,0x3F120F6B,0xBD817B72,0xBD7CD65B,0x3F0DD969,0x3F12255E,0xBD818B0F,
+ 0xBD7CB592,0x3F0DC35D,0x3F123B51,0xBD819AA7,0xBD7C94C2,0x3F0DAD51,0x3F125143,0xBD81AA3B,
+ 0xBD7C73EB,0x3F0D9744,0x3F126734,0xBD81B9CB,0xBD7C530C,0x3F0D8137,0x3F127D25,0xBD81C956,
+ 0xBD7C3225,0x3F0D6B29,0x3F129315,0xBD81D8DE,0xBD7C1136,0x3F0D551B,0x3F12A905,0xBD81E861,
+ 0xBD7BF040,0x3F0D3F0C,0x3F12BEF4,0xBD81F7E0,0xBD7BCF42,0x3F0D28FD,0x3F12D4E3,0xBD82075B,
+ 0xBD7BAE3D,0x3F0D12ED,0x3F12EAD1,0xBD8216D2,0xBD7B8D30,0x3F0CFCDD,0x3F1300BE,0xBD822644,
+ 0xBD7B6C1B,0x3F0CE6CD,0x3F1316AB,0xBD8235B2,0xBD7B4AFF,0x3F0CD0BC,0x3F132C97,0xBD82451D,
+ 0xBD7B29DB,0x3F0CBAAB,0x3F134283,0xBD825482,0xBD7B08B0,0x3F0CA499,0x3F13586E,0xBD8263E4,
+ 0xBD7AE77D,0x3F0C8E87,0x3F136E59,0xBD827342,0xBD7AC643,0x3F0C7875,0x3F138443,0xBD82829B,
+ 0xBD7AA501,0x3F0C6262,0x3F139A2C,0xBD8291F0,0xBD7A83B7,0x3F0C4C4F,0x3F13B015,0xBD82A140,
+ 0xBD7A6266,0x3F0C363B,0x3F13C5FD,0xBD82B08D,0xBD7A410E,0x3F0C2027,0x3F13DBE4,0xBD82BFD5,
+ 0xBD7A1FAE,0x3F0C0A13,0x3F13F1CB,0xBD82CF19,0xBD79FE47,0x3F0BF3FE,0x3F1407B2,0xBD82DE59,
+ 0xBD79DCD8,0x3F0BDDE8,0x3F141D98,0xBD82ED94,0xBD79BB62,0x3F0BC7D3,0x3F14337D,0xBD82FCCB,
+ 0xBD7999E4,0x3F0BB1BD,0x3F144961,0xBD830BFE,0xBD79785F,0x3F0B9BA6,0x3F145F45,0xBD831B2C,
+ 0xBD7956D3,0x3F0B858F,0x3F147529,0xBD832A57,0xBD79353F,0x3F0B6F78,0x3F148B0B,0xBD83397D,
+ 0xBD7913A4,0x3F0B5961,0x3F14A0ED,0xBD83489E,0xBD78F201,0x3F0B4349,0x3F14B6CF,0xBD8357BC,
+ 0xBD78D057,0x3F0B2D30,0x3F14CCB0,0xBD8366D4,0xBD78AEA6,0x3F0B1718,0x3F14E290,0xBD8375E9,
+ 0xBD788CED,0x3F0B00FE,0x3F14F870,0xBD8384F9,0xBD786B2D,0x3F0AEAE5,0x3F150E4F,0xBD839405,
+ 0xBD784966,0x3F0AD4CB,0x3F15242D,0xBD83A30D,0xBD782797,0x3F0ABEB1,0x3F153A0B,0xBD83B210,
+ 0xBD7805C1,0x3F0AA896,0x3F154FE8,0xBD83C10F,0xBD77E3E4,0x3F0A927B,0x3F1565C4,0xBD83D00A,
+ 0xBD77C200,0x3F0A7C60,0x3F157BA0,0xBD83DF00,0xBD77A014,0x3F0A6644,0x3F15917B,0xBD83EDF2,
+ 0xBD777E22,0x3F0A5028,0x3F15A756,0xBD83FCDF,0xBD775C27,0x3F0A3A0C,0x3F15BD30,0xBD840BC8,
+ 0xBD773A26,0x3F0A23EF,0x3F15D309,0xBD841AAD,0xBD77181E,0x3F0A0DD2,0x3F15E8E1,0xBD84298D,
+ 0xBD76F60E,0x3F09F7B5,0x3F15FEB9,0xBD843869,0xBD76D3F7,0x3F09E197,0x3F161491,0xBD844740,
+ 0xBD76B1D9,0x3F09CB79,0x3F162A67,0xBD845614,0xBD768FB4,0x3F09B55A,0x3F16403D,0xBD8464E2,
+ 0xBD766D87,0x3F099F3B,0x3F165613,0xBD8473AC,0xBD764B54,0x3F09891C,0x3F166BE7,0xBD848272,
+ 0xBD762919,0x3F0972FD,0x3F1681BB,0xBD849133,0xBD7606D8,0x3F095CDD,0x3F16978F,0xBD849FF0,
+ 0xBD75E48F,0x3F0946BD,0x3F16AD61,0xBD84AEA9,0xBD75C23F,0x3F09309C,0x3F16C333,0xBD84BD5D,
+ 0xBD759FE8,0x3F091A7C,0x3F16D904,0xBD84CC0C,0xBD757D8A,0x3F09045A,0x3F16EED5,0xBD84DAB7,
+ 0xBD755B25,0x3F08EE39,0x3F1704A5,0xBD84E95E,0xBD7538B9,0x3F08D817,0x3F171A74,0xBD84F800,
+ 0xBD751646,0x3F08C1F5,0x3F173043,0xBD85069D,0xBD74F3CB,0x3F08ABD3,0x3F174611,0xBD851536,
+ 0xBD74D14A,0x3F0895B0,0x3F175BDE,0xBD8523CB,0xBD74AEC2,0x3F087F8D,0x3F1771AB,0xBD85325B,
+ 0xBD748C33,0x3F08696A,0x3F178776,0xBD8540E6,0xBD74699D,0x3F085346,0x3F179D42,0xBD854F6E,
+ 0xBD744700,0x3F083D22,0x3F17B30C,0xBD855DF0,0xBD74245C,0x3F0826FE,0x3F17C8D6,0xBD856C6E,
+ 0xBD7401B1,0x3F0810D9,0x3F17DE9F,0xBD857AE8,0xBD73DEFF,0x3F07FAB4,0x3F17F467,0xBD85895C,
+ 0xBD73BC46,0x3F07E48F,0x3F180A2F,0xBD8597CD,0xBD739987,0x3F07CE6A,0x3F181FF6,0xBD85A639,
+ 0xBD7376C0,0x3F07B844,0x3F1835BC,0xBD85B4A0,0xBD7353F3,0x3F07A21E,0x3F184B82,0xBD85C303,
+ 0xBD73311E,0x3F078BF8,0x3F186146,0xBD85D161,0xBD730E43,0x3F0775D1,0x3F18770A,0xBD85DFBA,
+ 0xBD72EB61,0x3F075FAA,0x3F188CCE,0xBD85EE0F,0xBD72C878,0x3F074983,0x3F18A290,0xBD85FC60,
+ 0xBD72A589,0x3F07335C,0x3F18B852,0xBD860AAC,0xBD728292,0x3F071D34,0x3F18CE14,0xBD8618F3,
+ 0xBD725F95,0x3F07070C,0x3F18E3D4,0xBD862736,0xBD723C91,0x3F06F0E4,0x3F18F994,0xBD863574,
+ 0xBD721986,0x3F06DABB,0x3F190F53,0xBD8643AD,0xBD71F675,0x3F06C492,0x3F192511,0xBD8651E2,
+ 0xBD71D35C,0x3F06AE69,0x3F193ACF,0xBD866012,0xBD71B03D,0x3F069840,0x3F19508B,0xBD866E3D,
+ 0xBD718D18,0x3F068216,0x3F196648,0xBD867C64,0xBD7169EB,0x3F066BED,0x3F197C03,0xBD868A86,
+ 0xBD7146B8,0x3F0655C2,0x3F1991BE,0xBD8698A4,0xBD71237E,0x3F063F98,0x3F19A777,0xBD86A6BD,
+ 0xBD71003E,0x3F06296E,0x3F19BD30,0xBD86B4D1,0xBD70DCF6,0x3F061343,0x3F19D2E9,0xBD86C2E1,
+ 0xBD70B9A9,0x3F05FD18,0x3F19E8A0,0xBD86D0EC,0xBD709654,0x3F05E6EC,0x3F19FE57,0xBD86DEF2,
+ 0xBD7072F9,0x3F05D0C1,0x3F1A140D,0xBD86ECF3,0xBD704F97,0x3F05BA95,0x3F1A29C3,0xBD86FAF0,
+ 0xBD702C2F,0x3F05A469,0x3F1A3F77,0xBD8708E8,0xBD7008C0,0x3F058E3D,0x3F1A552B,0xBD8716DC,
+ 0xBD6FE54B,0x3F057810,0x3F1A6ADE,0xBD8724CB,0xBD6FC1CF,0x3F0561E3,0x3F1A8090,0xBD8732B5,
+ 0xBD6F9E4C,0x3F054BB6,0x3F1A9642,0xBD87409A,0xBD6F7AC3,0x3F053589,0x3F1AABF2,0xBD874E7B,
+ 0xBD6F5733,0x3F051F5C,0x3F1AC1A2,0xBD875C57,0xBD6F339D,0x3F05092E,0x3F1AD752,0xBD876A2E,
+ 0xBD6F1000,0x3F04F300,0x3F1AED00,0xBD877800,0xBD6EEC5D,0x3F04DCD2,0x3F1B02AE,0xBD8785CE,
+ 0xBD6EC8B3,0x3F04C6A4,0x3F1B185A,0xBD879396,0xBD6EA503,0x3F04B075,0x3F1B2E06,0xBD87A15B,
+ 0xBD6E814C,0x3F049A46,0x3F1B43B2,0xBD87AF1A,0xBD6E5D8F,0x3F048417,0x3F1B595C,0xBD87BCD5,
+ 0xBD6E39CB,0x3F046DE8,0x3F1B6F06,0xBD87CA8A,0xBD6E1601,0x3F0457B9,0x3F1B84AF,0xBD87D83B,
+ 0xBD6DF231,0x3F044189,0x3F1B9A57,0xBD87E5E8,0xBD6DCE5A,0x3F042B59,0x3F1BAFFE,0xBD87F38F,
+ 0xBD6DAA7D,0x3F041529,0x3F1BC5A5,0xBD880132,0xBD6D8699,0x3F03FEF9,0x3F1BDB4A,0xBD880ECF,
+ 0xBD6D62AF,0x3F03E8C9,0x3F1BF0EF,0xBD881C68,0xBD6D3EBF,0x3F03D298,0x3F1C0693,0xBD8829FC,
+ 0xBD6D1AC8,0x3F03BC68,0x3F1C1C36,0xBD88378C,0xBD6CF6CB,0x3F03A637,0x3F1C31D9,0xBD884516,
+ 0xBD6CD2C8,0x3F039006,0x3F1C477A,0xBD88529C,0xBD6CAEBE,0x3F0379D4,0x3F1C5D1B,0xBD88601D,
+ 0xBD6C8AAE,0x3F0363A3,0x3F1C72BB,0xBD886D99,0xBD6C6698,0x3F034D71,0x3F1C885A,0xBD887B10,
+ 0xBD6C427C,0x3F03373F,0x3F1C9DF9,0xBD888882,0xBD6C1E59,0x3F03210D,0x3F1CB396,0xBD8895F0,
+ 0xBD6BFA30,0x3F030ADB,0x3F1CC933,0xBD88A358,0xBD6BD601,0x3F02F4A9,0x3F1CDECF,0xBD88B0BC,
+ 0xBD6BB1CB,0x3F02DE76,0x3F1CF46A,0xBD88BE1A,0xBD6B8D8F,0x3F02C843,0x3F1D0A04,0xBD88CB74,
+ 0xBD6B694D,0x3F02B210,0x3F1D1F9E,0xBD88D8C9,0xBD6B4505,0x3F029BDD,0x3F1D3536,0xBD88E619,
+ 0xBD6B20B7,0x3F0285AA,0x3F1D4ACE,0xBD88F365,0xBD6AFC62,0x3F026F77,0x3F1D6065,0xBD8900AB,
+ 0xBD6AD808,0x3F025943,0x3F1D75FB,0xBD890DEC,0xBD6AB3A7,0x3F024310,0x3F1D8B90,0xBD891B29,
+ 0xBD6A8F40,0x3F022CDC,0x3F1DA124,0xBD892860,0xBD6A6AD3,0x3F0216A8,0x3F1DB6B7,0xBD893593,
+ 0xBD6A4660,0x3F020074,0x3F1DCC4A,0xBD8942C0,0xBD6A21E6,0x3F01EA40,0x3F1DE1DC,0xBD894FE9,
+ 0xBD69FD67,0x3F01D40B,0x3F1DF76D,0xBD895D0C,0xBD69D8E2,0x3F01BDD7,0x3F1E0CFD,0xBD896A2B,
+ 0xBD69B456,0x3F01A7A2,0x3F1E228C,0xBD897745,0xBD698FC5,0x3F01916D,0x3F1E381A,0xBD89845A,
+ 0xBD696B2D,0x3F017B38,0x3F1E4DA8,0xBD89916A,0xBD69468F,0x3F016503,0x3F1E6334,0xBD899E74,
+ 0xBD6921EC,0x3F014ECE,0x3F1E78C0,0xBD89AB7A,0xBD68FD42,0x3F013899,0x3F1E8E4B,0xBD89B87B,
+ 0xBD68D892,0x3F012263,0x3F1EA3D5,0xBD89C577,0xBD68B3DD,0x3F010C2E,0x3F1EB95E,0xBD89D26E,
+ 0xBD688F21,0x3F00F5F8,0x3F1ECEE6,0xBD89DF5F,0xBD686A60,0x3F00DFC2,0x3F1EE46D,0xBD89EC4C,
+ 0xBD684598,0x3F00C98C,0x3F1EF9F4,0xBD89F934,0xBD6820CB,0x3F00B356,0x3F1F0F79,0xBD8A0617,
+ 0xBD67FBF7,0x3F009D20,0x3F1F24FE,0xBD8A12F4,0xBD67D71E,0x3F0086EA,0x3F1F3A81,0xBD8A1FCD,
+ 0xBD67B23F,0x3F0070B4,0x3F1F5004,0xBD8A2CA1,0xBD678D5A,0x3F005A7D,0x3F1F6586,0xBD8A396F,
+ 0xBD67686F,0x3F004447,0x3F1F7B07,0xBD8A4639,0xBD67437E,0x3F002E10,0x3F1F9087,0xBD8A52FD,
+ 0xBD671E87,0x3F0017D9,0x3F1FA607,0xBD8A5FBC,0xBD66F98A,0x3F0001A2,0x3F1FBB85,0xBD8A6C77,
+ 0xBD66D488,0x3EFFD6D7,0x3F1FD102,0xBD8A792C,0xBD66AF80,0x3EFFAA69,0x3F1FE67F,0xBD8A85DC,
+ 0xBD668A72,0x3EFF7DFB,0x3F1FFBFB,0xBD8A9287,0xBD66655E,0x3EFF518C,0x3F201175,0xBD8A9F2D,
+ 0xBD664044,0x3EFF251E,0x3F2026EF,0xBD8AABCE,0xBD661B25,0x3EFEF8AF,0x3F203C68,0xBD8AB869,
+ 0xBD65F600,0x3EFECC40,0x3F2051E0,0xBD8AC500,0xBD65D0D5,0x3EFE9FD1,0x3F206757,0xBD8AD191,
+ 0xBD65ABA5,0x3EFE7362,0x3F207CCD,0xBD8ADE1E,0xBD65866E,0x3EFE46F2,0x3F209242,0xBD8AEAA5,
+ 0xBD656132,0x3EFE1A83,0x3F20A7B7,0xBD8AF727,0xBD653BF0,0x3EFDEE13,0x3F20BD2A,0xBD8B03A4,
+ 0xBD6516A9,0x3EFDC1A3,0x3F20D29C,0xBD8B101C,0xBD64F15C,0x3EFD9533,0x3F20E80E,0xBD8B1C8E,
+ 0xBD64CC09,0x3EFD68C3,0x3F20FD7E,0xBD8B28FC,0xBD64A6B1,0x3EFD3C53,0x3F2112EE,0xBD8B3564,
+ 0xBD648152,0x3EFD0FE3,0x3F21285D,0xBD8B41C7,0xBD645BEF,0x3EFCE373,0x3F213DCA,0xBD8B4E25,
+ 0xBD643685,0x3EFCB702,0x3F215337,0xBD8B5A7D,0xBD641116,0x3EFC8A91,0x3F2168A3,0xBD8B66D1,
+ 0xBD63EBA2,0x3EFC5E21,0x3F217E0E,0xBD8B731F,0xBD63C628,0x3EFC31B0,0x3F219378,0xBD8B7F68,
+ 0xBD63A0A8,0x3EFC053F,0x3F21A8E0,0xBD8B8BAC,0xBD637B23,0x3EFBD8CE,0x3F21BE48,0xBD8B97EB,
+ 0xBD635598,0x3EFBAC5D,0x3F21D3B0,0xBD8BA424,0xBD633008,0x3EFB7FEC,0x3F21E916,0xBD8BB058,
+ 0xBD630A72,0x3EFB537B,0x3F21FE7B,0xBD8BBC87,0xBD62E4D6,0x3EFB2709,0x3F2213DF,0xBD8BC8B1,
+ 0xBD62BF35,0x3EFAFA98,0x3F222942,0xBD8BD4D5,0xBD62998F,0x3EFACE27,0x3F223EA4,0xBD8BE0F5,
+ 0xBD6273E3,0x3EFAA1B5,0x3F225405,0xBD8BED0E,0xBD624E32,0x3EFA7544,0x3F226966,0xBD8BF923,
+ 0xBD62287B,0x3EFA48D2,0x3F227EC5,0xBD8C0533,0xBD6202BF,0x3EFA1C60,0x3F229423,0xBD8C113D,
+ 0xBD61DCFD,0x3EF9EFEF,0x3F22A981,0xBD8C1D42,0xBD61B736,0x3EF9C37D,0x3F22BEDD,0xBD8C2941,
+ 0xBD619169,0x3EF9970B,0x3F22D438,0xBD8C353B,0xBD616B97,0x3EF96A9A,0x3F22E993,0xBD8C4130,
+ 0xBD6145C0,0x3EF93E28,0x3F22FEEC,0xBD8C4D20,0xBD611FE3,0x3EF911B6,0x3F231444,0xBD8C590A,
+ 0xBD60FA01,0x3EF8E544,0x3F23299C,0xBD8C64EF,0xBD60D41A,0x3EF8B8D3,0x3F233EF2,0xBD8C70CF,
+ 0xBD60AE2D,0x3EF88C61,0x3F235448,0xBD8C7CA9,0xBD60883B,0x3EF85FEF,0x3F23699C,0xBD8C887E,
+ 0xBD606244,0x3EF8337D,0x3F237EEF,0xBD8C944E,0xBD603C47,0x3EF8070C,0x3F239442,0xBD8CA019,
+ 0xBD601645,0x3EF7DA9A,0x3F23A993,0xBD8CABDE,0xBD5FF03E,0x3EF7AE28,0x3F23BEE3,0xBD8CB79D,
+ 0xBD5FCA31,0x3EF781B6,0x3F23D433,0xBD8CC357,0xBD5FA41F,0x3EF75545,0x3F23E981,0xBD8CCF0C,
+ 0xBD5F7E08,0x3EF728D3,0x3F23FECE,0xBD8CDABC,0xBD5F57EC,0x3EF6FC62,0x3F24141B,0xBD8CE666,
+ 0xBD5F31CB,0x3EF6CFF0,0x3F242966,0xBD8CF20B,0xBD5F0BA4,0x3EF6A37E,0x3F243EB0,0xBD8CFDAA,
+ 0xBD5EE578,0x3EF6770D,0x3F2453FA,0xBD8D0944,0xBD5EBF47,0x3EF64A9C,0x3F246942,0xBD8D14D9,
+ 0xBD5E9911,0x3EF61E2A,0x3F247E89,0xBD8D2068,0xBD5E72D5,0x3EF5F1B9,0x3F2493CF,0xBD8D2BF1,
+ 0xBD5E4C95,0x3EF5C548,0x3F24A914,0xBD8D3776,0xBD5E264F,0x3EF598D7,0x3F24BE58,0xBD8D42F5,
+ 0xBD5E0004,0x3EF56C66,0x3F24D39B,0xBD8D4E6E,0xBD5DD9B4,0x3EF53FF5,0x3F24E8DD,0xBD8D59E2,
+ 0xBD5DB35F,0x3EF51384,0x3F24FE1E,0xBD8D6550,0xBD5D8D05,0x3EF4E713,0x3F25135E,0xBD8D70BA,
+ 0xBD5D66A6,0x3EF4BAA2,0x3F25289D,0xBD8D7C1D,0xBD5D4041,0x3EF48E31,0x3F253DDB,0xBD8D877B,
+ 0xBD5D19D8,0x3EF461C1,0x3F255318,0xBD8D92D4,0xBD5CF369,0x3EF43551,0x3F256853,0xBD8D9E27,
+ 0xBD5CCCF6,0x3EF408E0,0x3F257D8E,0xBD8DA975,0xBD5CA67D,0x3EF3DC70,0x3F2592C7,0xBD8DB4BD,
+ 0xBD5C8000,0x3EF3B000,0x3F25A800,0xBD8DC000,0xBD5C597E,0x3EF38390,0x3F25BD37,0xBD8DCB3D,
+ 0xBD5C32F6,0x3EF35720,0x3F25D26E,0xBD8DD675,0xBD5C0C6A,0x3EF32AB1,0x3F25E7A3,0xBD8DE1A7,
+ 0xBD5BE5D8,0x3EF2FE41,0x3F25FCD7,0xBD8DECD4,0xBD5BBF42,0x3EF2D1D2,0x3F26120B,0xBD8DF7FB,
+ 0xBD5B98A6,0x3EF2A562,0x3F26273D,0xBD8E031D,0xBD5B7206,0x3EF278F3,0x3F263C6E,0xBD8E0E39,
+ 0xBD5B4B61,0x3EF24C84,0x3F26519E,0xBD8E1950,0xBD5B24B7,0x3EF22016,0x3F2666CD,0xBD8E2461,
+ 0xBD5AFE08,0x3EF1F3A7,0x3F267BFB,0xBD8E2F6C,0xBD5AD754,0x3EF1C739,0x3F269127,0xBD8E3A72,
+ 0xBD5AB09B,0x3EF19ACA,0x3F26A653,0xBD8E4572,0xBD5A89DE,0x3EF16E5C,0x3F26BB7D,0xBD8E506D,
+ 0xBD5A631B,0x3EF141EE,0x3F26D0A7,0xBD8E5B62,0xBD5A3C54,0x3EF11581,0x3F26E5CF,0xBD8E6652,
+ 0xBD5A1588,0x3EF0E913,0x3F26FAF6,0xBD8E713C,0xBD59EEB7,0x3EF0BCA6,0x3F27101D,0xBD8E7C20,
+ 0xBD59C7E1,0x3EF09039,0x3F272542,0xBD8E86FF,0xBD59A107,0x3EF063CC,0x3F273A66,0xBD8E91D9,
+ 0xBD597A28,0x3EF0375F,0x3F274F89,0xBD8E9CAC,0xBD595344,0x3EF00AF2,0x3F2764AA,0xBD8EA77A,
+ 0xBD592C5B,0x3EEFDE86,0x3F2779CB,0xBD8EB243,0xBD59056D,0x3EEFB21A,0x3F278EEB,0xBD8EBD05,
+ 0xBD58DE7B,0x3EEF85AE,0x3F27A409,0xBD8EC7C2,0xBD58B784,0x3EEF5943,0x3F27B926,0xBD8ED27A,
+ 0xBD589088,0x3EEF2CD7,0x3F27CE42,0xBD8EDD2C,0xBD586988,0x3EEF006C,0x3F27E35E,0xBD8EE7D8,
+ 0xBD584283,0x3EEED401,0x3F27F877,0xBD8EF27F,0xBD581B79,0x3EEEA796,0x3F280D90,0xBD8EFD1F,
+ 0xBD57F46B,0x3EEE7B2C,0x3F2822A8,0xBD8F07BB,0xBD57CD58,0x3EEE4EC2,0x3F2837BF,0xBD8F1250,
+ 0xBD57A640,0x3EEE2258,0x3F284CD4,0xBD8F1CE0,0xBD577F24,0x3EEDF5EE,0x3F2861E8,0xBD8F276A,
+ 0xBD575803,0x3EEDC985,0x3F2876FB,0xBD8F31EF,0xBD5730DD,0x3EED9D1C,0x3F288C0E,0xBD8F3C6D,
+ 0xBD5709B3,0x3EED70B3,0x3F28A11E,0xBD8F46E6,0xBD56E284,0x3EED444B,0x3F28B62E,0xBD8F515A,
+ 0xBD56BB51,0x3EED17E2,0x3F28CB3D,0xBD8F5BC7,0xBD569419,0x3EECEB7B,0x3F28E04A,0xBD8F662F,
+ 0xBD566CDD,0x3EECBF13,0x3F28F557,0xBD8F7092,0xBD56459C,0x3EEC92AC,0x3F290A62,0xBD8F7AEE,
+ 0xBD561E57,0x3EEC6645,0x3F291F6C,0xBD8F8545,0xBD55F70D,0x3EEC39DE,0x3F293475,0xBD8F8F96,
+ 0xBD55CFBE,0x3EEC0D77,0x3F29497C,0xBD8F99E1,0xBD55A86B,0x3EEBE111,0x3F295E83,0xBD8FA426,
+ 0xBD558114,0x3EEBB4AC,0x3F297388,0xBD8FAE66,0xBD5559B8,0x3EEB8846,0x3F29888C,0xBD8FB8A0,
+ 0xBD553258,0x3EEB5BE1,0x3F299D90,0xBD8FC2D4,0xBD550AF3,0x3EEB2F7C,0x3F29B291,0xBD8FCD02,
+ 0xBD54E38A,0x3EEB0318,0x3F29C792,0xBD8FD72B,0xBD54BC1D,0x3EEAD6B4,0x3F29DC92,0xBD8FE14E,
+ 0xBD5494AB,0x3EEAAA50,0x3F29F190,0xBD8FEB6B,0xBD546D34,0x3EEA7DED,0x3F2A068D,0xBD8FF582,
+ 0xBD5445BA,0x3EEA518A,0x3F2A1B89,0xBD8FFF93,0xBD541E3A,0x3EEA2527,0x3F2A3084,0xBD90099F,
+ 0xBD53F6B7,0x3EE9F8C5,0x3F2A457E,0xBD9013A4,0xBD53CF2F,0x3EE9CC63,0x3F2A5A76,0xBD901DA4,
+ 0xBD53A7A3,0x3EE9A001,0x3F2A6F6D,0xBD90279E,0xBD538013,0x3EE973A0,0x3F2A8464,0xBD903193,
+ 0xBD53587E,0x3EE9473F,0x3F2A9958,0xBD903B81,0xBD5330E5,0x3EE91ADF,0x3F2AAE4C,0xBD90456A,
+ 0xBD530947,0x3EE8EE7F,0x3F2AC33F,0xBD904F4C,0xBD52E1A6,0x3EE8C21F,0x3F2AD830,0xBD905929,
+ 0xBD52BA00,0x3EE895C0,0x3F2AED20,0xBD906300,0xBD529256,0x3EE86961,0x3F2B020F,0xBD906CD1,
+ 0xBD526AA8,0x3EE83D03,0x3F2B16FD,0xBD90769C,0xBD5242F5,0x3EE810A5,0x3F2B2BE9,0xBD908062,
+ 0xBD521B3E,0x3EE7E447,0x3F2B40D4,0xBD908A21,0xBD51F383,0x3EE7B7EA,0x3F2B55BE,0xBD9093DA,
+ 0xBD51CBC4,0x3EE78B8D,0x3F2B6AA7,0xBD909D8E,0xBD51A401,0x3EE75F31,0x3F2B7F8F,0xBD90A73C,
+ 0xBD517C39,0x3EE732D5,0x3F2B9475,0xBD90B0E4,0xBD51546D,0x3EE7067A,0x3F2BA95B,0xBD90BA85,
+ 0xBD512C9D,0x3EE6DA1F,0x3F2BBE3E,0xBD90C421,0xBD5104C9,0x3EE6ADC5,0x3F2BD321,0xBD90CDB7,
+ 0xBD50DCF1,0x3EE6816B,0x3F2BE803,0xBD90D747,0xBD50B515,0x3EE65511,0x3F2BFCE3,0xBD90E0D1,
+ 0xBD508D35,0x3EE628B8,0x3F2C11C2,0xBD90EA56,0xBD506550,0x3EE5FC5F,0x3F2C26A0,0xBD90F3D4,
+ 0xBD503D68,0x3EE5D007,0x3F2C3B7C,0xBD90FD4C,0xBD50157B,0x3EE5A3AF,0x3F2C5058,0xBD9106BE,
+ 0xBD4FED8B,0x3EE57758,0x3F2C6532,0xBD91102B,0xBD4FC596,0x3EE54B01,0x3F2C7A0B,0xBD911991,
+ 0xBD4F9D9E,0x3EE51EAB,0x3F2C8EE2,0xBD9122F1,0xBD4F75A1,0x3EE4F255,0x3F2CA3B9,0xBD912C4C,
+ 0xBD4F4DA0,0x3EE4C600,0x3F2CB88E,0xBD9135A0,0xBD4F259C,0x3EE499AB,0x3F2CCD62,0xBD913EEE,
+ 0xBD4EFD93,0x3EE46D57,0x3F2CE234,0xBD914836,0xBD4ED586,0x3EE44103,0x3F2CF706,0xBD915179,
+ 0xBD4EAD76,0x3EE414B0,0x3F2D0BD6,0xBD915AB5,0xBD4E8561,0x3EE3E85D,0x3F2D20A5,0xBD9163EB,
+ 0xBD4E5D49,0x3EE3BC0B,0x3F2D3572,0xBD916D1C,0xBD4E352D,0x3EE38FBA,0x3F2D4A3F,0xBD917646,
+ 0xBD4E0D0C,0x3EE36369,0x3F2D5F0A,0xBD917F6A,0xBD4DE4E8,0x3EE33718,0x3F2D73D3,0xBD918888,
+ 0xBD4DBCC0,0x3EE30AC8,0x3F2D889C,0xBD9191A0,0xBD4D9494,0x3EE2DE79,0x3F2D9D63,0xBD919AB2,
+ 0xBD4D6C64,0x3EE2B22A,0x3F2DB229,0xBD91A3BE,0xBD4D4431,0x3EE285DB,0x3F2DC6EE,0xBD91ACC4,
+ 0xBD4D1BF9,0x3EE2598D,0x3F2DDBB1,0xBD91B5C3,0xBD4CF3BE,0x3EE22D40,0x3F2DF073,0xBD91BEBD,
+ 0xBD4CCB7F,0x3EE200F4,0x3F2E0534,0xBD91C7B1,0xBD4CA33C,0x3EE1D4A7,0x3F2E19F4,0xBD91D09E,
+ 0xBD4C7AF5,0x3EE1A85C,0x3F2E2EB2,0xBD91D986,0xBD4C52AA,0x3EE17C11,0x3F2E436F,0xBD91E267,
+ 0xBD4C2A5C,0x3EE14FC7,0x3F2E582B,0xBD91EB42,0xBD4C020A,0x3EE1237D,0x3F2E6CE5,0xBD91F417,
+ 0xBD4BD9B4,0x3EE0F734,0x3F2E819E,0xBD91FCE6,0xBD4BB15B,0x3EE0CAEB,0x3F2E9656,0xBD9205AF,
+ 0xBD4B88FE,0x3EE09EA3,0x3F2EAB0C,0xBD920E71,0xBD4B609D,0x3EE0725C,0x3F2EBFC2,0xBD92172E,
+ 0xBD4B3838,0x3EE04615,0x3F2ED476,0xBD921FE4,0xBD4B0FD0,0x3EE019CF,0x3F2EE928,0xBD922894,
+ 0xBD4AE764,0x3EDFED89,0x3F2EFDD9,0xBD92313E,0xBD4ABEF4,0x3EDFC144,0x3F2F1289,0xBD9239E2,
+ 0xBD4A9681,0x3EDF9500,0x3F2F2738,0xBD924280,0xBD4A6E0A,0x3EDF68BD,0x3F2F3BE5,0xBD924B17,
+ 0xBD4A458F,0x3EDF3C7A,0x3F2F5091,0xBD9253A8,0xBD4A1D11,0x3EDF1037,0x3F2F653C,0xBD925C34,
+ 0xBD49F48F,0x3EDEE3F6,0x3F2F79E5,0xBD9264B8,0xBD49CC0A,0x3EDEB7B5,0x3F2F8E8D,0xBD926D37,
+ 0xBD49A381,0x3EDE8B74,0x3F2FA334,0xBD9275B0,0xBD497AF4,0x3EDE5F35,0x3F2FB7D9,0xBD927E22,
+ 0xBD495264,0x3EDE32F5,0x3F2FCC7D,0xBD92868E,0xBD4929D0,0x3EDE06B7,0x3F2FE120,0xBD928EF4,
+ 0xBD490139,0x3EDDDA79,0x3F2FF5C1,0xBD929754,0xBD48D89E,0x3EDDAE3C,0x3F300A61,0xBD929FAD,
+ 0xBD48B000,0x3EDD8200,0x3F301F00,0xBD92A800,0xBD48875E,0x3EDD55C4,0x3F30339D,0xBD92B04D,
+ 0xBD485EB9,0x3EDD2989,0x3F304839,0xBD92B893,0xBD483610,0x3EDCFD4F,0x3F305CD4,0xBD92C0D4,
+ 0xBD480D64,0x3EDCD116,0x3F30716D,0xBD92C90E,0xBD47E4B4,0x3EDCA4DD,0x3F308605,0xBD92D142,
+ 0xBD47BC01,0x3EDC78A5,0x3F309A9C,0xBD92D96F,0xBD47934B,0x3EDC4C6D,0x3F30AF31,0xBD92E197,
+ 0xBD476A91,0x3EDC2036,0x3F30C3C5,0xBD92E9B8,0xBD4741D4,0x3EDBF400,0x3F30D857,0xBD92F1D2,
+ 0xBD471913,0x3EDBC7CB,0x3F30ECE8,0xBD92F9E7,0xBD46F04F,0x3EDB9B97,0x3F310178,0xBD9301F5,
+ 0xBD46C787,0x3EDB6F63,0x3F311607,0xBD9309FC,0xBD469EBD,0x3EDB4330,0x3F312A94,0xBD9311FE,
+ 0xBD4675EE,0x3EDB16FD,0x3F313F1F,0xBD9319F9,0xBD464D1D,0x3EDAEACC,0x3F3153AA,0xBD9321EE,
+ 0xBD462448,0x3EDABE9B,0x3F316832,0xBD9329DC,0xBD45FB70,0x3EDA926B,0x3F317CBA,0xBD9331C4,
+ 0xBD45D294,0x3EDA663C,0x3F319140,0xBD9339A6,0xBD45A9B6,0x3EDA3A0D,0x3F31A5C5,0xBD934181,
+ 0xBD4580D4,0x3EDA0DDF,0x3F31BA48,0xBD934956,0xBD4557EE,0x3ED9E1B2,0x3F31CECA,0xBD935125,
+ 0xBD452F06,0x3ED9B586,0x3F31E34B,0xBD9358ED,0xBD45061A,0x3ED9895B,0x3F31F7CA,0xBD9360AF,
+ 0xBD44DD2B,0x3ED95D30,0x3F320C48,0xBD93686A,0xBD44B439,0x3ED93106,0x3F3220C4,0xBD937020,
+ 0xBD448B43,0x3ED904DD,0x3F32353F,0xBD9377CE,0xBD44624B,0x3ED8D8B5,0x3F3249B9,0xBD937F77,
+ 0xBD44394F,0x3ED8AC8E,0x3F325E31,0xBD938719,0xBD441050,0x3ED88067,0x3F3272A8,0xBD938EB4,
+ 0xBD43E74E,0x3ED85441,0x3F32871D,0xBD939649,0xBD43BE48,0x3ED8281C,0x3F329B91,0xBD939DD8,
+ 0xBD439540,0x3ED7FBF8,0x3F32B004,0xBD93A560,0xBD436C34,0x3ED7CFD5,0x3F32C475,0xBD93ACE2,
+ 0xBD434326,0x3ED7A3B2,0x3F32D8E5,0xBD93B45D,0xBD431A14,0x3ED77790,0x3F32ED53,0xBD93BBD2,
+ 0xBD42F0FF,0x3ED74B70,0x3F3301C0,0xBD93C340,0xBD42C7E7,0x3ED71F50,0x3F33162C,0xBD93CAA8,
+ 0xBD429ECC,0x3ED6F331,0x3F332A96,0xBD93D20A,0xBD4275AE,0x3ED6C712,0x3F333EFE,0xBD93D965,
+ 0xBD424C8D,0x3ED69AF5,0x3F335366,0xBD93E0BA,0xBD422369,0x3ED66ED8,0x3F3367CB,0xBD93E808,
+ 0xBD41FA42,0x3ED642BD,0x3F337C30,0xBD93EF4F,0xBD41D118,0x3ED616A2,0x3F339093,0xBD93F690,
+ 0xBD41A7EA,0x3ED5EA88,0x3F33A4F4,0xBD93FDCB,0xBD417EBA,0x3ED5BE6F,0x3F33B954,0xBD9404FF,
+ 0xBD415587,0x3ED59257,0x3F33CDB3,0xBD940C2C,0xBD412C51,0x3ED5663F,0x3F33E210,0xBD941353,
+ 0xBD410318,0x3ED53A29,0x3F33F66C,0xBD941A74,0xBD40D9DC,0x3ED50E14,0x3F340AC6,0xBD94218E,
+ 0xBD40B09D,0x3ED4E1FF,0x3F341F1F,0xBD9428A1,0xBD40875B,0x3ED4B5EB,0x3F343376,0xBD942FAE,
+ 0xBD405E17,0x3ED489D8,0x3F3447CC,0xBD9436B5,0xBD4034CF,0x3ED45DC7,0x3F345C20,0xBD943DB4,
+ 0xBD400B85,0x3ED431B6,0x3F347073,0xBD9444AE,0xBD3FE237,0x3ED405A6,0x3F3484C5,0xBD944BA0,
+ 0xBD3FB8E7,0x3ED3D997,0x3F349915,0xBD94528C,0xBD3F8F94,0x3ED3AD88,0x3F34AD63,0xBD945972,
+ 0xBD3F663E,0x3ED3817B,0x3F34C1B0,0xBD946051,0xBD3F3CE5,0x3ED3556F,0x3F34D5FC,0xBD946729,
+ 0xBD3F138A,0x3ED32964,0x3F34EA46,0xBD946DFB,0xBD3EEA2C,0x3ED2FD59,0x3F34FE8F,0xBD9474C6,
+ 0xBD3EC0CA,0x3ED2D150,0x3F3512D6,0xBD947B8B,0xBD3E9767,0x3ED2A547,0x3F35271C,0xBD948249,
+ 0xBD3E6E00,0x3ED27940,0x3F353B60,0xBD948900,0xBD3E4497,0x3ED24D39,0x3F354FA3,0xBD948FB1,
+ 0xBD3E1B2B,0x3ED22134,0x3F3563E4,0xBD94965B,0xBD3DF1BC,0x3ED1F52F,0x3F357824,0xBD949CFE,
+ 0xBD3DC84A,0x3ED1C92C,0x3F358C62,0xBD94A39B,0xBD3D9ED6,0x3ED19D29,0x3F35A09F,0xBD94AA31,
+ 0xBD3D755F,0x3ED17128,0x3F35B4DA,0xBD94B0C1,0xBD3D4BE5,0x3ED14527,0x3F35C914,0xBD94B749,
+ 0xBD3D2269,0x3ED11927,0x3F35DD4C,0xBD94BDCC,0xBD3CF8EA,0x3ED0ED29,0x3F35F183,0xBD94C447,
+ 0xBD3CCF68,0x3ED0C12B,0x3F3605B8,0xBD94CABC,0xBD3CA5E4,0x3ED0952F,0x3F3619EC,0xBD94D12A,
+ 0xBD3C7C5D,0x3ED06933,0x3F362E1E,0xBD94D791,0xBD3C52D4,0x3ED03D38,0x3F36424F,0xBD94DDF2,
+ 0xBD3C2948,0x3ED0113F,0x3F36567F,0xBD94E44C,0xBD3BFFB9,0x3ECFE546,0x3F366AAC,0xBD94EA9F,
+ 0xBD3BD628,0x3ECFB94F,0x3F367ED8,0xBD94F0EC,0xBD3BAC94,0x3ECF8D59,0x3F369303,0xBD94F732,
+ 0xBD3B82FE,0x3ECF6163,0x3F36A72C,0xBD94FD71,0xBD3B5965,0x3ECF356F,0x3F36BB54,0xBD9503A9,
+ 0xBD3B2FCA,0x3ECF097C,0x3F36CF7A,0xBD9509DB,0xBD3B062C,0x3ECEDD89,0x3F36E39F,0xBD951006,
+ 0xBD3ADC8B,0x3ECEB198,0x3F36F7C2,0xBD95162A,0xBD3AB2E8,0x3ECE85A8,0x3F370BE3,0xBD951C48,
+ 0xBD3A8943,0x3ECE59B9,0x3F372003,0xBD95225E,0xBD3A5F9B,0x3ECE2DCB,0x3F373422,0xBD95286E,
+ 0xBD3A35F1,0x3ECE01DE,0x3F37483F,0xBD952E78,0xBD3A0C44,0x3ECDD5F3,0x3F375C5A,0xBD95347A,
+ 0xBD39E295,0x3ECDAA08,0x3F377074,0xBD953A76,0xBD39B8E3,0x3ECD7E1E,0x3F37848C,0xBD95406A,
+ 0xBD398F2F,0x3ECD5236,0x3F3798A3,0xBD954658,0xBD396579,0x3ECD264E,0x3F37ACB8,0xBD954C40,
+ 0xBD393BC0,0x3ECCFA68,0x3F37C0CC,0xBD955220,0xBD391205,0x3ECCCE83,0x3F37D4DE,0xBD9557FA,
+ 0xBD38E847,0x3ECCA29F,0x3F37E8EF,0xBD955DCC,0xBD38BE87,0x3ECC76BC,0x3F37FCFE,0xBD956398,
+ 0xBD3894C5,0x3ECC4ADA,0x3F38110B,0xBD95695D,0xBD386B01,0x3ECC1EF9,0x3F382517,0xBD956F1C,
+ 0xBD38413A,0x3ECBF31A,0x3F383921,0xBD9574D3,0xBD381770,0x3ECBC73B,0x3F384D2A,0xBD957A84,
+ 0xBD37EDA5,0x3ECB9B5E,0x3F386131,0xBD95802E,0xBD37C3D7,0x3ECB6F82,0x3F387537,0xBD9585D0,
+ 0xBD379A07,0x3ECB43A7,0x3F38893B,0xBD958B6C,0xBD377035,0x3ECB17CD,0x3F389D3D,0xBD959102,
+ 0xBD374660,0x3ECAEBF4,0x3F38B13E,0xBD959690,0xBD371C8A,0x3ECAC01D,0x3F38C53D,0xBD959C17,
+ 0xBD36F2B1,0x3ECA9446,0x3F38D93B,0xBD95A198,0xBD36C8D5,0x3ECA6871,0x3F38ED37,0xBD95A711,
+ 0xBD369EF8,0x3ECA3C9D,0x3F390132,0xBD95AC84,0xBD367518,0x3ECA10CA,0x3F39152A,0xBD95B1F0,
+ 0xBD364B37,0x3EC9E4F8,0x3F392922,0xBD95B755,0xBD362153,0x3EC9B928,0x3F393D17,0xBD95BCB3,
+ 0xBD35F76D,0x3EC98D59,0x3F39510C,0xBD95C20A,0xBD35CD84,0x3EC9618B,0x3F3964FE,0xBD95C75A,
+ 0xBD35A39A,0x3EC935BE,0x3F3978EF,0xBD95CCA3,0xBD3579AE,0x3EC909F2,0x3F398CDE,0xBD95D1E5,
+ 0xBD354FBF,0x3EC8DE28,0x3F39A0CC,0xBD95D720,0xBD3525CE,0x3EC8B25E,0x3F39B4B8,0xBD95DC55,
+ 0xBD34FBDC,0x3EC88696,0x3F39C8A3,0xBD95E182,0xBD34D1E7,0x3EC85AD0,0x3F39DC8C,0xBD95E6A9,
+ 0xBD34A7F0,0x3EC82F0A,0x3F39F073,0xBD95EBC8,0xBD347DF7,0x3EC80346,0x3F3A0459,0xBD95F0E1,
+ 0xBD3453FC,0x3EC7D782,0x3F3A183D,0xBD95F5F2,0xBD3429FF,0x3EC7ABC1,0x3F3A2C1F,0xBD95FAFD,
+ 0xBD340000,0x3EC78000,0x3F3A4000,0xBD960000,0xBD33D5FF,0x3EC75441,0x3F3A53DF,0xBD9604FC,
+ 0xBD33ABFC,0x3EC72883,0x3F3A67BD,0xBD9609F2,0xBD3381F7,0x3EC6FCC6,0x3F3A7B99,0xBD960EE0,
+ 0xBD3357F0,0x3EC6D10A,0x3F3A8F73,0xBD9613C8,0xBD332DE7,0x3EC6A550,0x3F3AA34C,0xBD9618A8,
+ 0xBD3303DC,0x3EC67997,0x3F3AB723,0xBD961D82,0xBD32D9D0,0x3EC64DDF,0x3F3ACAF8,0xBD962254,
+ 0xBD32AFC1,0x3EC62228,0x3F3ADECC,0xBD962720,0xBD3285B0,0x3EC5F673,0x3F3AF29E,0xBD962BE4,
+ 0xBD325B9E,0x3EC5CABF,0x3F3B066E,0xBD9630A1,0xBD32318A,0x3EC59F0D,0x3F3B1A3D,0xBD963557,
+ 0xBD320773,0x3EC5735B,0x3F3B2E0A,0xBD963A06,0xBD31DD5B,0x3EC547AB,0x3F3B41D6,0xBD963EAE,
+ 0xBD31B341,0x3EC51BFD,0x3F3B55A0,0xBD96434F,0xBD318926,0x3EC4F04F,0x3F3B6968,0xBD9647E9,
+ 0xBD315F08,0x3EC4C4A3,0x3F3B7D2E,0xBD964C7C,0xBD3134E9,0x3EC498F8,0x3F3B90F3,0xBD965108,
+ 0xBD310AC7,0x3EC46D4F,0x3F3BA4B7,0xBD96558C,0xBD30E0A4,0x3EC441A7,0x3F3BB878,0xBD965A0A,
+ 0xBD30B680,0x3EC41600,0x3F3BCC38,0xBD965E80,0xBD308C59,0x3EC3EA5A,0x3F3BDFF6,0xBD9662EF,
+ 0xBD306231,0x3EC3BEB6,0x3F3BF3B3,0xBD966758,0xBD303807,0x3EC39314,0x3F3C076E,0xBD966BB9,
+ 0xBD300DDB,0x3EC36772,0x3F3C1B27,0xBD967012,0xBD2FE3AE,0x3EC33BD2,0x3F3C2EDE,0xBD967465,
+ 0xBD2FB97E,0x3EC31033,0x3F3C4294,0xBD9678B1,0xBD2F8F4D,0x3EC2E496,0x3F3C5648,0xBD967CF5,
+ 0xBD2F651B,0x3EC2B8FA,0x3F3C69FB,0xBD968133,0xBD2F3AE7,0x3EC28D5F,0x3F3C7DAC,0xBD968569,
+ 0xBD2F10B1,0x3EC261C6,0x3F3C915B,0xBD968998,0xBD2EE679,0x3EC2362E,0x3F3CA508,0xBD968DBF,
+ 0xBD2EBC40,0x3EC20A98,0x3F3CB8B4,0xBD9691E0,0xBD2E9205,0x3EC1DF03,0x3F3CCC5E,0xBD9695F9,
+ 0xBD2E67C9,0x3EC1B36F,0x3F3CE006,0xBD969A0C,0xBD2E3D8B,0x3EC187DD,0x3F3CF3AD,0xBD969E17,
+ 0xBD2E134B,0x3EC15C4C,0x3F3D0752,0xBD96A21A,0xBD2DE90A,0x3EC130BD,0x3F3D1AF5,0xBD96A617,
+ 0xBD2DBEC7,0x3EC1052F,0x3F3D2E97,0xBD96AA0C,0xBD2D9483,0x3EC0D9A2,0x3F3D4236,0xBD96ADFB,
+ 0xBD2D6A3D,0x3EC0AE17,0x3F3D55D5,0xBD96B1E2,0xBD2D3FF6,0x3EC0828D,0x3F3D6971,0xBD96B5C1,
+ 0xBD2D15AD,0x3EC05705,0x3F3D7D0C,0xBD96B99A,0xBD2CEB62,0x3EC02B7E,0x3F3D90A5,0xBD96BD6B,
+ 0xBD2CC116,0x3EBFFFF8,0x3F3DA43C,0xBD96C135,0xBD2C96C9,0x3EBFD474,0x3F3DB7D1,0xBD96C4F8,
+ 0xBD2C6C7A,0x3EBFA8F2,0x3F3DCB65,0xBD96C8B3,0xBD2C422A,0x3EBF7D71,0x3F3DDEF7,0xBD96CC67,
+ 0xBD2C17D8,0x3EBF51F1,0x3F3DF288,0xBD96D014,0xBD2BED85,0x3EBF2673,0x3F3E0616,0xBD96D3BA,
+ 0xBD2BC330,0x3EBEFAF6,0x3F3E19A3,0xBD96D758,0xBD2B98DA,0x3EBECF7B,0x3F3E2D2E,0xBD96DAEF,
+ 0xBD2B6E83,0x3EBEA401,0x3F3E40B8,0xBD96DE7F,0xBD2B442A,0x3EBE7889,0x3F3E543F,0xBD96E207,
+ 0xBD2B19D0,0x3EBE4D12,0x3F3E67C5,0xBD96E588,0xBD2AEF74,0x3EBE219C,0x3F3E7B49,0xBD96E902,
+ 0xBD2AC517,0x3EBDF629,0x3F3E8ECC,0xBD96EC74,0xBD2A9AB9,0x3EBDCAB6,0x3F3EA24C,0xBD96EFE0,
+ 0xBD2A7059,0x3EBD9F45,0x3F3EB5CB,0xBD96F343,0xBD2A45F8,0x3EBD73D6,0x3F3EC948,0xBD96F6A0,
+ 0xBD2A1B96,0x3EBD4868,0x3F3EDCC4,0xBD96F9F5,0xBD29F132,0x3EBD1CFC,0x3F3EF03E,0xBD96FD43,
+ 0xBD29C6CD,0x3EBCF191,0x3F3F03B5,0xBD970089,0xBD299C67,0x3EBCC628,0x3F3F172C,0xBD9703C8,
+ 0xBD297200,0x3EBC9AC0,0x3F3F2AA0,0xBD970700,0xBD294797,0x3EBC6F5A,0x3F3F3E13,0xBD970A30,
+ 0xBD291D2E,0x3EBC43F5,0x3F3F5183,0xBD970D59,0xBD28F2C2,0x3EBC1892,0x3F3F64F3,0xBD97107B,
+ 0xBD28C856,0x3EBBED30,0x3F3F7860,0xBD971395,0xBD289DE9,0x3EBBC1D0,0x3F3F8BCB,0xBD9716A8,
+ 0xBD28737A,0x3EBB9672,0x3F3F9F35,0xBD9719B3,0xBD28490A,0x3EBB6B15,0x3F3FB29D,0xBD971CB7,
+ 0xBD281E99,0x3EBB3FB9,0x3F3FC603,0xBD971FB4,0xBD27F427,0x3EBB1460,0x3F3FD968,0xBD9722A9,
+ 0xBD27C9B3,0x3EBAE907,0x3F3FECCA,0xBD972596,0xBD279F3F,0x3EBABDB1,0x3F40002B,0xBD97287D,
+ 0xBD2774C9,0x3EBA925C,0x3F40138A,0xBD972B5B,0xBD274A53,0x3EBA6708,0x3F4026E8,0xBD972E33,
+ 0xBD271FDB,0x3EBA3BB6,0x3F403A43,0xBD973103,0xBD26F562,0x3EBA1066,0x3F404D9D,0xBD9733CB,
+ 0xBD26CAE8,0x3EB9E517,0x3F4060F4,0xBD97368C,0xBD26A06D,0x3EB9B9CA,0x3F40744B,0xBD973946,
+ 0xBD2675F1,0x3EB98E7E,0x3F40879F,0xBD973BF8,0xBD264B74,0x3EB96334,0x3F409AF1,0xBD973EA2,
+ 0xBD2620F6,0x3EB937EC,0x3F40AE42,0xBD974145,0xBD25F676,0x3EB90CA5,0x3F40C191,0xBD9743E1,
+ 0xBD25CBF6,0x3EB8E160,0x3F40D4DE,0xBD974675,0xBD25A175,0x3EB8B61D,0x3F40E829,0xBD974901,
+ 0xBD2576F3,0x3EB88ADB,0x3F40FB72,0xBD974B86,0xBD254C70,0x3EB85F9B,0x3F410EBA,0xBD974E04,
+ 0xBD2521EC,0x3EB8345C,0x3F412200,0xBD97507A,0xBD24F767,0x3EB80920,0x3F413544,0xBD9752E9,
+ 0xBD24CCE1,0x3EB7DDE4,0x3F414886,0xBD975550,0xBD24A25A,0x3EB7B2AB,0x3F415BC6,0xBD9757AF,
+ 0xBD2477D2,0x3EB78773,0x3F416F05,0xBD975A07,0xBD244D4A,0x3EB75C3D,0x3F418241,0xBD975C57,
+ 0xBD2422C0,0x3EB73108,0x3F41957C,0xBD975EA0,0xBD23F836,0x3EB705D5,0x3F41A8B5,0xBD9760E1,
+ 0xBD23CDAA,0x3EB6DAA4,0x3F41BBEC,0xBD97631B,0xBD23A31E,0x3EB6AF74,0x3F41CF21,0xBD97654D,
+ 0xBD237891,0x3EB68446,0x3F41E255,0xBD976777,0xBD234E03,0x3EB6591A,0x3F41F586,0xBD97699A,
+ 0xBD232375,0x3EB62DF0,0x3F4208B6,0xBD976BB6,0xBD22F8E5,0x3EB602C7,0x3F421BE4,0xBD976DC9,
+ 0xBD22CE55,0x3EB5D7A0,0x3F422F10,0xBD976FD6,0xBD22A3C4,0x3EB5AC7A,0x3F42423A,0xBD9771DA,
+ 0xBD227932,0x3EB58157,0x3F425563,0xBD9773D7,0xBD224EA0,0x3EB55635,0x3F426889,0xBD9775CC,
+ 0xBD22240C,0x3EB52B15,0x3F427BAE,0xBD9777BA,0xBD21F978,0x3EB4FFF6,0x3F428ED0,0xBD9779A0,
+ 0xBD21CEE4,0x3EB4D4D9,0x3F42A1F1,0xBD977B7E,0xBD21A44E,0x3EB4A9BE,0x3F42B510,0xBD977D55,
+ 0xBD2179B8,0x3EB47EA5,0x3F42C82E,0xBD977F24,0xBD214F21,0x3EB4538D,0x3F42DB49,0xBD9780EB,
+ 0xBD21248A,0x3EB42878,0x3F42EE62,0xBD9782AB,0xBD20F9F1,0x3EB3FD64,0x3F43017A,0xBD978463,
+ 0xBD20CF59,0x3EB3D251,0x3F43148F,0xBD978614,0xBD20A4BF,0x3EB3A741,0x3F4327A3,0xBD9787BC,
+ 0xBD207A25,0x3EB37C32,0x3F433AB5,0xBD97895D,0xBD204F8A,0x3EB35125,0x3F434DC5,0xBD978AF7,
+ 0xBD2024EF,0x3EB3261A,0x3F4360D3,0xBD978C88,0xBD1FFA53,0x3EB2FB10,0x3F4373DF,0xBD978E12,
+ 0xBD1FCFB7,0x3EB2D008,0x3F4386EA,0xBD978F95,0xBD1FA51A,0x3EB2A503,0x3F4399F2,0xBD97910F,
+ 0xBD1F7A7C,0x3EB279FE,0x3F43ACF9,0xBD979282,0xBD1F4FDE,0x3EB24EFC,0x3F43BFFD,0xBD9793ED,
+ 0xBD1F253F,0x3EB223FC,0x3F43D300,0xBD979551,0xBD1EFAA0,0x3EB1F8FD,0x3F43E601,0xBD9796AC,
+ 0xBD1ED000,0x3EB1CE00,0x3F43F900,0xBD979800,0xBD1EA560,0x3EB1A305,0x3F440BFD,0xBD97994C,
+ 0xBD1E7ABF,0x3EB1780C,0x3F441EF8,0xBD979A90,0xBD1E501E,0x3EB14D14,0x3F4431F1,0xBD979BCD,
+ 0xBD1E257C,0x3EB1221F,0x3F4444E9,0xBD979D02,0xBD1DFADA,0x3EB0F72B,0x3F4457DE,0xBD979E2F,
+ 0xBD1DD037,0x3EB0CC39,0x3F446AD2,0xBD979F54,0xBD1DA594,0x3EB0A149,0x3F447DC3,0xBD97A072,
+ 0xBD1D7AF1,0x3EB0765A,0x3F4490B3,0xBD97A188,0xBD1D504D,0x3EB04B6E,0x3F44A3A1,0xBD97A295,
+ 0xBD1D25A9,0x3EB02083,0x3F44B68C,0xBD97A39C,0xBD1CFB04,0x3EAFF59B,0x3F44C976,0xBD97A49A,
+ 0xBD1CD05F,0x3EAFCAB4,0x3F44DC5E,0xBD97A590,0xBD1CA5BA,0x3EAF9FCF,0x3F44EF44,0xBD97A67F,
+ 0xBD1C7B14,0x3EAF74EC,0x3F450228,0xBD97A766,0xBD1C506E,0x3EAF4A0A,0x3F45150A,0xBD97A845,
+ 0xBD1C25C8,0x3EAF1F2B,0x3F4527EA,0xBD97A91C,0xBD1BFB21,0x3EAEF44E,0x3F453AC9,0xBD97A9EB,
+ 0xBD1BD07A,0x3EAEC972,0x3F454DA5,0xBD97AAB3,0xBD1BA5D3,0x3EAE9E98,0x3F45607F,0xBD97AB72,
+ 0xBD1B7B2C,0x3EAE73C0,0x3F457358,0xBD97AC2A,0xBD1B5084,0x3EAE48EA,0x3F45862E,0xBD97ACDA,
+ 0xBD1B25DC,0x3EAE1E16,0x3F459903,0xBD97AD82,0xBD1AFB34,0x3EADF344,0x3F45ABD5,0xBD97AE22,
+ 0xBD1AD08B,0x3EADC874,0x3F45BEA6,0xBD97AEBA,0xBD1AA5E2,0x3EAD9DA6,0x3F45D175,0xBD97AF4B,
+ 0xBD1A7B39,0x3EAD72D9,0x3F45E441,0xBD97AFD3,0xBD1A5090,0x3EAD480F,0x3F45F70C,0xBD97B054,
+ 0xBD1A25E7,0x3EAD1D47,0x3F4609D5,0xBD97B0CD,0xBD19FB3D,0x3EACF280,0x3F461C9B,0xBD97B13D,
+ 0xBD19D094,0x3EACC7BB,0x3F462F60,0xBD97B1A6,0xBD19A5EA,0x3EAC9CF9,0x3F464223,0xBD97B207,
+ 0xBD197B40,0x3EAC7238,0x3F4654E4,0xBD97B260,0xBD195096,0x3EAC4779,0x3F4667A3,0xBD97B2B1,
+ 0xBD1925EC,0x3EAC1CBC,0x3F467A60,0xBD97B2FA,0xBD18FB41,0x3EABF202,0x3F468D1B,0xBD97B33B,
+ 0xBD18D097,0x3EABC749,0x3F469FD4,0xBD97B374,0xBD18A5ED,0x3EAB9C92,0x3F46B28B,0xBD97B3A6,
+ 0xBD187B42,0x3EAB71DD,0x3F46C540,0xBD97B3CF,0xBD185098,0x3EAB472A,0x3F46D7F3,0xBD97B3F0,
+ 0xBD1825ED,0x3EAB1C79,0x3F46EAA4,0xBD97B40A,0xBD17FB42,0x3EAAF1CA,0x3F46FD53,0xBD97B41B,
+ 0xBD17D098,0x3EAAC71D,0x3F471000,0xBD97B424,0xBD17A5ED,0x3EAA9C72,0x3F4722AB,0xBD97B425,
+ 0xBD177B42,0x3EAA71C9,0x3F473554,0xBD97B41F,0xBD175098,0x3EAA4722,0x3F4747FB,0xBD97B410,
+ 0xBD1725ED,0x3EAA1C7D,0x3F475AA0,0xBD97B3F9,0xBD16FB43,0x3EA9F1DA,0x3F476D43,0xBD97B3DB,
+ 0xBD16D098,0x3EA9C739,0x3F477FE4,0xBD97B3B4,0xBD16A5EE,0x3EA99C9A,0x3F479282,0xBD97B385,
+ 0xBD167B43,0x3EA971FD,0x3F47A51F,0xBD97B34E,0xBD165099,0x3EA94762,0x3F47B7BA,0xBD97B310,
+ 0xBD1625EF,0x3EA91CC9,0x3F47CA53,0xBD97B2C9,0xBD15FB45,0x3EA8F233,0x3F47DCEA,0xBD97B27A,
+ 0xBD15D09B,0x3EA8C79E,0x3F47EF7F,0xBD97B223,0xBD15A5F1,0x3EA89D0B,0x3F480212,0xBD97B1C4,
+ 0xBD157B47,0x3EA8727B,0x3F4814A3,0xBD97B15C,0xBD15509D,0x3EA847EC,0x3F482731,0xBD97B0ED,
+ 0xBD1525F4,0x3EA81D60,0x3F4839BE,0xBD97B076,0xBD14FB4B,0x3EA7F2D5,0x3F484C49,0xBD97AFF7,
+ 0xBD14D0A2,0x3EA7C84D,0x3F485ED2,0xBD97AF6F,0xBD14A5F9,0x3EA79DC6,0x3F487158,0xBD97AEDF,
+ 0xBD147B50,0x3EA77342,0x3F4883DD,0xBD97AE48,0xBD1450A8,0x3EA748C0,0x3F48965F,0xBD97ADA8,
+ 0xBD142600,0x3EA71E40,0x3F48A8E0,0xBD97AD00,0xBD13FB58,0x3EA6F3C2,0x3F48BB5E,0xBD97AC50,
+ 0xBD13D0B1,0x3EA6C946,0x3F48CDDB,0xBD97AB98,0xBD13A609,0x3EA69ECC,0x3F48E055,0xBD97AAD7,
+ 0xBD137B62,0x3EA67455,0x3F48F2CE,0xBD97AA0F,0xBD1350BB,0x3EA649DF,0x3F490544,0xBD97A93E,
+ 0xBD132615,0x3EA61F6C,0x3F4917B8,0xBD97A866,0xBD12FB6F,0x3EA5F4FB,0x3F492A2A,0xBD97A785,
+ 0xBD12D0C9,0x3EA5CA8B,0x3F493C9A,0xBD97A69C,0xBD12A624,0x3EA5A01E,0x3F494F08,0xBD97A5AA,
+ 0xBD127B7E,0x3EA575B3,0x3F496174,0xBD97A4B1,0xBD1250DA,0x3EA54B4B,0x3F4973DE,0xBD97A3AF,
+ 0xBD122635,0x3EA520E4,0x3F498646,0xBD97A2A5,0xBD11FB91,0x3EA4F680,0x3F4998AC,0xBD97A193,
+ 0xBD11D0EE,0x3EA4CC1D,0x3F49AB0F,0xBD97A079,0xBD11A64B,0x3EA4A1BD,0x3F49BD71,0xBD979F57,
+ 0xBD117BA8,0x3EA4775F,0x3F49CFD0,0xBD979E2C,0xBD115106,0x3EA44D03,0x3F49E22E,0xBD979CF9,
+ 0xBD112664,0x3EA422A9,0x3F49F489,0xBD979BBE,0xBD10FBC3,0x3EA3F852,0x3F4A06E3,0xBD979A7B,
+ 0xBD10D122,0x3EA3CDFD,0x3F4A193A,0xBD97992F,0xBD10A681,0x3EA3A3A9,0x3F4A2B8F,0xBD9797DB,
+ 0xBD107BE1,0x3EA37958,0x3F4A3DE2,0xBD97967F,0xBD105142,0x3EA34F0A,0x3F4A5033,0xBD97951B,
+ 0xBD1026A3,0x3EA324BD,0x3F4A6281,0xBD9793AE,0xBD0FFC05,0x3EA2FA73,0x3F4A74CE,0xBD97923A,
+ 0xBD0FD167,0x3EA2D02B,0x3F4A8719,0xBD9790BD,0xBD0FA6CA,0x3EA2A5E5,0x3F4A9961,0xBD978F37,
+ 0xBD0F7C2D,0x3EA27BA1,0x3F4AABA8,0xBD978DAA,0xBD0F5191,0x3EA2515F,0x3F4ABDEC,0xBD978C14,
+ 0xBD0F26F5,0x3EA22720,0x3F4AD02E,0xBD978A75,0xBD0EFC5A,0x3EA1FCE3,0x3F4AE26E,0xBD9788CF,
+ 0xBD0ED1C0,0x3EA1D2A8,0x3F4AF4AC,0xBD978720,0xBD0EA726,0x3EA1A86F,0x3F4B06E8,0xBD978569,
+ 0xBD0E7C8D,0x3EA17E39,0x3F4B1922,0xBD9783A9,0xBD0E51F5,0x3EA15405,0x3F4B2B59,0xBD9781E2,
+ 0xBD0E275D,0x3EA129D3,0x3F4B3D8F,0xBD978011,0xBD0DFCC6,0x3EA0FFA3,0x3F4B4FC2,0xBD977E39,
+ 0xBD0DD230,0x3EA0D576,0x3F4B61F3,0xBD977C58,0xBD0DA79A,0x3EA0AB4B,0x3F4B7422,0xBD977A6F,
+ 0xBD0D7D05,0x3EA08122,0x3F4B864F,0xBD97787E,0xBD0D5271,0x3EA056FB,0x3F4B987A,0xBD977684,
+ 0xBD0D27DD,0x3EA02CD7,0x3F4BAAA3,0xBD977481,0xBD0CFD4A,0x3EA002B5,0x3F4BBCC9,0xBD977277,
+ 0xBD0CD2B8,0x3E9FD895,0x3F4BCEED,0xBD977064,0xBD0CA827,0x3E9FAE78,0x3F4BE110,0xBD976E48,
+ 0xBD0C7D97,0x3E9F845C,0x3F4BF330,0xBD976C25,0xBD0C5307,0x3E9F5A44,0x3F4C054E,0xBD9769F9,
+ 0xBD0C2878,0x3E9F302D,0x3F4C176A,0xBD9767C4,0xBD0BFDEA,0x3E9F0619,0x3F4C2983,0xBD976587,
+ 0xBD0BD35D,0x3E9EDC07,0x3F4C3B9B,0xBD976342,0xBD0BA8D0,0x3E9EB1F7,0x3F4C4DB0,0xBD9760F4,
+ 0xBD0B7E45,0x3E9E87EA,0x3F4C5FC3,0xBD975E9E,0xBD0B53BA,0x3E9E5DDF,0x3F4C71D4,0xBD975C3F,
+ 0xBD0B2930,0x3E9E33D6,0x3F4C83E3,0xBD9759D8,0xBD0AFEA7,0x3E9E09D0,0x3F4C95F0,0xBD975768,
+ 0xBD0AD41F,0x3E9DDFCC,0x3F4CA7FA,0xBD9754F0,0xBD0AA998,0x3E9DB5CA,0x3F4CBA03,0xBD975270,
+ 0xBD0A7F12,0x3E9D8BCB,0x3F4CCC09,0xBD974FE7,0xBD0A548C,0x3E9D61CE,0x3F4CDE0D,0xBD974D56,
+ 0xBD0A2A08,0x3E9D37D3,0x3F4CF00F,0xBD974ABC,0xBD09FF84,0x3E9D0DDB,0x3F4D020E,0xBD97481A,
+ 0xBD09D502,0x3E9CE3E5,0x3F4D140C,0xBD97456F,0xBD09AA80,0x3E9CB9F1,0x3F4D2607,0xBD9742BC,
+ 0xBD098000,0x3E9C9000,0x3F4D3800,0xBD974000,0xBD095581,0x3E9C6611,0x3F4D49F7,0xBD973D3C,
+ 0xBD092B02,0x3E9C3C25,0x3F4D5BEC,0xBD973A6F,0xBD090085,0x3E9C123B,0x3F4D6DDE,0xBD97379A,
+ 0xBD08D608,0x3E9BE853,0x3F4D7FCE,0xBD9734BC,0xBD08AB8D,0x3E9BBE6E,0x3F4D91BD,0xBD9731D6,
+ 0xBD088112,0x3E9B948B,0x3F4DA3A9,0xBD972EE7,0xBD085699,0x3E9B6AAA,0x3F4DB592,0xBD972BEF,
+ 0xBD082C21,0x3E9B40CC,0x3F4DC77A,0xBD9728F0,0xBD0801AA,0x3E9B16F1,0x3F4DD95F,0xBD9725E7,
+ 0xBD07D734,0x3E9AED17,0x3F4DEB42,0xBD9722D6,0xBD07ACBF,0x3E9AC341,0x3F4DFD23,0xBD971FBC,
+ 0xBD07824B,0x3E9A996C,0x3F4E0F02,0xBD971C9A,0xBD0757D9,0x3E9A6F9A,0x3F4E20DE,0xBD971970,
+ 0xBD072D67,0x3E9A45CB,0x3F4E32B9,0xBD97163C,0xBD0702F7,0x3E9A1BFE,0x3F4E4491,0xBD971300,
+ 0xBD06D888,0x3E99F233,0x3F4E5666,0xBD970FBC,0xBD06AE1A,0x3E99C86B,0x3F4E683A,0xBD970C6F,
+ 0xBD0683AD,0x3E999EA5,0x3F4E7A0B,0xBD970919,0xBD065942,0x3E9974E2,0x3F4E8BDB,0xBD9705BB,
+ 0xBD062ED8,0x3E994B21,0x3F4E9DA8,0xBD970254,0xBD06046F,0x3E992162,0x3F4EAF72,0xBD96FEE5,
+ 0xBD05DA07,0x3E98F7A7,0x3F4EC13B,0xBD96FB6D,0xBD05AFA0,0x3E98CDED,0x3F4ED301,0xBD96F7EC,
+ 0xBD05853B,0x3E98A436,0x3F4EE4C5,0xBD96F462,0xBD055AD7,0x3E987A82,0x3F4EF687,0xBD96F0D0,
+ 0xBD053074,0x3E9850D0,0x3F4F0846,0xBD96ED36,0xBD050613,0x3E982720,0x3F4F1A03,0xBD96E993,
+ 0xBD04DBB3,0x3E97FD73,0x3F4F2BBE,0xBD96E5E7,0xBD04B154,0x3E97D3C9,0x3F4F3D77,0xBD96E232,
+ 0xBD0486F7,0x3E97AA21,0x3F4F4F2E,0xBD96DE75,0xBD045C9B,0x3E97807B,0x3F4F60E2,0xBD96DAAF,
+ 0xBD043240,0x3E9756D8,0x3F4F7294,0xBD96D6E0,0xBD0407E7,0x3E972D38,0x3F4F8444,0xBD96D309,
+ 0xBD03DD8F,0x3E97039A,0x3F4F95F1,0xBD96CF29,0xBD03B338,0x3E96D9FE,0x3F4FA79C,0xBD96CB40,
+ 0xBD0388E3,0x3E96B065,0x3F4FB945,0xBD96C74E,0xBD035E8F,0x3E9686CF,0x3F4FCAEC,0xBD96C354,
+ 0xBD03343D,0x3E965D3B,0x3F4FDC91,0xBD96BF51,0xBD0309EC,0x3E9633AA,0x3F4FEE33,0xBD96BB46,
+ 0xBD02DF9D,0x3E960A1B,0x3F4FFFD3,0xBD96B732,0xBD02B54F,0x3E95E08F,0x3F501170,0xBD96B314,
+ 0xBD028B03,0x3E95B705,0x3F50230B,0xBD96AEEF,0xBD0260B8,0x3E958D7E,0x3F5034A5,0xBD96AAC0,
+ 0xBD02366E,0x3E9563F9,0x3F50463B,0xBD96A689,0xBD020C26,0x3E953A77,0x3F5057D0,0xBD96A249,
+ 0xBD01E1E0,0x3E9510F8,0x3F506962,0xBD969E00,0xBD01B79B,0x3E94E77B,0x3F507AF2,0xBD9699AE,
+ 0xBD018D58,0x3E94BE01,0x3F508C80,0xBD969554,0xBD016316,0x3E949489,0x3F509E0B,0xBD9690F1,
+ 0xBD0138D6,0x3E946B14,0x3F50AF94,0xBD968C85,0xBD010E98,0x3E9441A2,0x3F50C11B,0xBD968810,
+ 0xBD00E45B,0x3E941832,0x3F50D29F,0xBD968393,0xBD00BA1F,0x3E93EEC5,0x3F50E421,0xBD967F0C,
+ 0xBD008FE6,0x3E93C55A,0x3F50F5A1,0xBD967A7D,0xBD0065AD,0x3E939BF2,0x3F51071E,0xBD9675E5,
+ 0xBD003B77,0x3E93728D,0x3F51189A,0xBD967144,0xBD001142,0x3E93492A,0x3F512A13,0xBD966C9B,
+ 0xBCFFCE1E,0x3E931FCA,0x3F513B89,0xBD9667E8,0xBCFF79BB,0x3E92F66C,0x3F514CFD,0xBD96632D,
+ 0xBCFF255C,0x3E92CD11,0x3F515E6F,0xBD965E69,0xBCFED100,0x3E92A3B9,0x3F516FDF,0xBD96599C,
+ 0xBCFE7CA7,0x3E927A63,0x3F51814C,0xBD9654C6,0xBCFE2852,0x3E925110,0x3F5192B7,0xBD964FE8,
+ 0xBCFDD400,0x3E9227C0,0x3F51A420,0xBD964B00,0xBCFD7FB2,0x3E91FE72,0x3F51B586,0xBD964610,
+ 0xBCFD2B67,0x3E91D527,0x3F51C6EA,0xBD964116,0xBCFCD720,0x3E91ABDF,0x3F51D84C,0xBD963C14,
+ 0xBCFC82DC,0x3E918299,0x3F51E9AB,0xBD963709,0xBCFC2E9C,0x3E915956,0x3F51FB08,0xBD9631F5,
+ 0xBCFBDA60,0x3E913016,0x3F520C63,0xBD962CD8,0xBCFB8627,0x3E9106D8,0x3F521DBB,0xBD9627B2,
+ 0xBCFB31F2,0x3E90DD9D,0x3F522F11,0xBD962284,0xBCFADDC1,0x3E90B465,0x3F524065,0xBD961D4C,
+ 0xBCFA8993,0x3E908B30,0x3F5251B6,0xBD96180B,0xBCFA3569,0x3E9061FD,0x3F526305,0xBD9612C2,
+ 0xBCF9E143,0x3E9038CD,0x3F527452,0xBD960D6F,0xBCF98D20,0x3E900F9F,0x3F52859C,0xBD960814,
+ 0xBCF93902,0x3E8FE674,0x3F5296E4,0xBD9602B0,0xBCF8E4E7,0x3E8FBD4C,0x3F52A829,0xBD95FD42,
+ 0xBCF890D0,0x3E8F9427,0x3F52B96C,0xBD95F7CC,0xBCF83CBD,0x3E8F6B04,0x3F52CAAD,0xBD95F24D,
+ 0xBCF7E8AE,0x3E8F41E5,0x3F52DBEC,0xBD95ECC5,0xBCF794A3,0x3E8F18C7,0x3F52ED28,0xBD95E733,
+ 0xBCF7409B,0x3E8EEFAD,0x3F52FE61,0xBD95E199,0xBCF6EC98,0x3E8EC695,0x3F530F99,0xBD95DBF6,
+ 0xBCF69899,0x3E8E9D81,0x3F5320CE,0xBD95D64A,0xBCF6449D,0x3E8E746E,0x3F533200,0xBD95D095,
+ 0xBCF5F0A6,0x3E8E4B5F,0x3F534330,0xBD95CAD6,0xBCF59CB3,0x3E8E2253,0x3F53545E,0xBD95C50F,
+ 0xBCF548C4,0x3E8DF949,0x3F53658A,0xBD95BF3F,0xBCF4F4D9,0x3E8DD042,0x3F5376B3,0xBD95B966,
+ 0xBCF4A0F2,0x3E8DA73D,0x3F5387D9,0xBD95B384,0xBCF44D0F,0x3E8D7E3C,0x3F5398FE,0xBD95AD98,
+ 0xBCF3F930,0x3E8D553D,0x3F53AA1F,0xBD95A7A4,0xBCF3A556,0x3E8D2C41,0x3F53BB3F,0xBD95A1A6,
+ 0xBCF35180,0x3E8D0348,0x3F53CC5C,0xBD959BA0,0xBCF2FDAE,0x3E8CDA52,0x3F53DD77,0xBD959590,
+ 0xBCF2A9E1,0x3E8CB15E,0x3F53EE8F,0xBD958F78,0xBCF25617,0x3E8C886D,0x3F53FFA5,0xBD958956,
+ 0xBCF20252,0x3E8C5F7F,0x3F5410B8,0xBD95832B,0xBCF1AE92,0x3E8C3694,0x3F5421C9,0xBD957CF8,
+ 0xBCF15AD5,0x3E8C0DAC,0x3F5432D8,0xBD9576BB,0xBCF1071D,0x3E8BE4C7,0x3F5443E4,0xBD957075,
+ 0xBCF0B36A,0x3E8BBBE4,0x3F5454EE,0xBD956A26,0xBCF05FBB,0x3E8B9304,0x3F5465F5,0xBD9563CD,
+ 0xBCF00C10,0x3E8B6A27,0x3F5476FA,0xBD955D6C,0xBCEFB86A,0x3E8B414D,0x3F5487FD,0xBD955701,
+ 0xBCEF64C9,0x3E8B1876,0x3F5498FD,0xBD95508E,0xBCEF112C,0x3E8AEFA1,0x3F54A9FB,0xBD954A11,
+ 0xBCEEBD93,0x3E8AC6D0,0x3F54BAF6,0xBD95438B,0xBCEE69FF,0x3E8A9E01,0x3F54CBEF,0xBD953CFC,
+ 0xBCEE1670,0x3E8A7535,0x3F54DCE6,0xBD953664,0xBCEDC2E5,0x3E8A4C6C,0x3F54EDDA,0xBD952FC3,
+ 0xBCED6F5F,0x3E8A23A6,0x3F54FECB,0xBD952918,0xBCED1BDE,0x3E89FAE3,0x3F550FBA,0xBD952265,
+ 0xBCECC861,0x3E89D222,0x3F5520A7,0xBD951BA8,0xBCEC74E9,0x3E89A965,0x3F553191,0xBD9514E2,
+ 0xBCEC2176,0x3E8980AA,0x3F554279,0xBD950E12,0xBCEBCE08,0x3E8957F2,0x3F55535E,0xBD95073A,
+ 0xBCEB7A9E,0x3E892F3E,0x3F556441,0xBD950058,0xBCEB2739,0x3E89068C,0x3F557522,0xBD94F96E,
+ 0xBCEAD3D9,0x3E88DDDD,0x3F558600,0xBD94F27A,0xBCEA807E,0x3E88B531,0x3F5596DB,0xBD94EB7C,
+ 0xBCEA2D28,0x3E888C87,0x3F55A7B4,0xBD94E476,0xBCE9D9D6,0x3E8863E1,0x3F55B88B,0xBD94DD66,
+ 0xBCE9868A,0x3E883B3E,0x3F55C95F,0xBD94D64E,0xBCE93342,0x3E88129D,0x3F55DA31,0xBD94CF2B,
+ 0xBCE8E000,0x3E87EA00,0x3F55EB00,0xBD94C800,0xBCE88CC3,0x3E87C165,0x3F55FBCD,0xBD94C0CB,
+ 0xBCE8398A,0x3E8798CE,0x3F560C97,0xBD94B98D,0xBCE7E657,0x3E877039,0x3F561D5F,0xBD94B246,
+ 0xBCE79328,0x3E8747A8,0x3F562E24,0xBD94AAF6,0xBCE73FFF,0x3E871F19,0x3F563EE7,0xBD94A39C,
+ 0xBCE6ECDB,0x3E86F68D,0x3F564FA7,0xBD949C39,0xBCE699BC,0x3E86CE04,0x3F566065,0xBD9494CD,
+ 0xBCE646A2,0x3E86A57E,0x3F567121,0xBD948D58,0xBCE5F38D,0x3E867CFC,0x3F5681DA,0xBD9485D9,
+ 0xBCE5A07E,0x3E86547C,0x3F569290,0xBD947E51,0xBCE54D74,0x3E862BFF,0x3F56A344,0xBD9476BF,
+ 0xBCE4FA6F,0x3E860385,0x3F56B3F6,0xBD946F24,0xBCE4A76F,0x3E85DB0E,0x3F56C4A5,0xBD946780,
+ 0xBCE45475,0x3E85B29A,0x3F56D551,0xBD945FD3,0xBCE40180,0x3E858A29,0x3F56E5FB,0xBD94581C,
+ 0xBCE3AE90,0x3E8561BB,0x3F56F6A2,0xBD94505C,0xBCE35BA6,0x3E853950,0x3F570747,0xBD944893,
+ 0xBCE308C1,0x3E8510E8,0x3F5717EA,0xBD9440C0,0xBCE2B5E1,0x3E84E883,0x3F57288A,0xBD9438E4,
+ 0xBCE26307,0x3E84C021,0x3F573927,0xBD9430FE,0xBCE21033,0x3E8497C3,0x3F5749C2,0xBD94290F,
+ 0xBCE1BD64,0x3E846F67,0x3F575A5B,0xBD942117,0xBCE16A9A,0x3E84470E,0x3F576AF1,0xBD941915,
+ 0xBCE117D6,0x3E841EB8,0x3F577B84,0xBD94110A,0xBCE0C518,0x3E83F665,0x3F578C15,0xBD9408F6,
+ 0xBCE0725F,0x3E83CE16,0x3F579CA3,0xBD9400D8,0xBCE01FAB,0x3E83A5C9,0x3F57AD2F,0xBD93F8B1,
+ 0xBCDFCCFE,0x3E837D80,0x3F57BDB8,0xBD93F081,0xBCDF7A56,0x3E835539,0x3F57CE3F,0xBD93E847,
+ 0xBCDF27B3,0x3E832CF6,0x3F57DEC3,0xBD93E003,0xBCDED517,0x3E8304B5,0x3F57EF45,0xBD93D7B6,
+ 0xBCDE8280,0x3E82DC78,0x3F57FFC4,0xBD93CF60,0xBCDE2FEF,0x3E82B43E,0x3F581041,0xBD93C700,
+ 0xBCDDDD64,0x3E828C07,0x3F5820BB,0xBD93BE97,0xBCDD8ADE,0x3E8263D3,0x3F583132,0xBD93B625,
+ 0xBCDD385E,0x3E823BA2,0x3F5841A7,0xBD93ADA8,0xBCDCE5E4,0x3E821374,0x3F58521A,0xBD93A523,
+ 0xBCDC9370,0x3E81EB49,0x3F586289,0xBD939C94,0xBCDC4102,0x3E81C321,0x3F5872F7,0xBD9393FB,
+ 0xBCDBEE9A,0x3E819AFD,0x3F588362,0xBD938B5A,0xBCDB9C38,0x3E8172DB,0x3F5893CA,0xBD9382AE,
+ 0xBCDB49DB,0x3E814ABD,0x3F58A42F,0xBD9379F9,0xBCDAF785,0x3E8122A2,0x3F58B493,0xBD93713B,
+ 0xBCDAA535,0x3E80FA8A,0x3F58C4F3,0xBD936873,0xBCDA52EA,0x3E80D275,0x3F58D551,0xBD935FA1,
+ 0xBCDA00A6,0x3E80AA63,0x3F58E5AC,0xBD9356C6,0xBCD9AE68,0x3E808255,0x3F58F605,0xBD934DE2,
+ 0xBCD95C30,0x3E805A49,0x3F59065C,0xBD9344F4,0xBCD909FE,0x3E803241,0x3F5916AF,0xBD933BFC,
+ 0xBCD8B7D2,0x3E800A3B,0x3F592700,0xBD9332FB,0xBCD865AD,0x3E7FC473,0x3F59374F,0xBD9329F1,
+ 0xBCD8138D,0x3E7F7475,0x3F59479B,0xBD9320DD,0xBCD7C174,0x3E7F247E,0x3F5957E4,0xBD9317BF,
+ 0xBCD76F61,0x3E7ED48C,0x3F59682B,0xBD930E98,0xBCD71D54,0x3E7E84A2,0x3F59786F,0xBD930567,
+ 0xBCD6CB4E,0x3E7E34BD,0x3F5988B1,0xBD92FC2C,0xBCD6794E,0x3E7DE4DF,0x3F5998F0,0xBD92F2E9,
+ 0xBCD62754,0x3E7D9508,0x3F59A92C,0xBD92E99B,0xBCD5D561,0x3E7D4536,0x3F59B966,0xBD92E044,
+ 0xBCD58374,0x3E7CF56B,0x3F59C99D,0xBD92D6E3,0xBCD5318D,0x3E7CA5A7,0x3F59D9D2,0xBD92CD79,
+ 0xBCD4DFAD,0x3E7C55E9,0x3F59EA04,0xBD92C405,0xBCD48DD3,0x3E7C0631,0x3F59FA33,0xBD92BA87,
+ 0xBCD43C00,0x3E7BB680,0x3F5A0A60,0xBD92B100,0xBCD3EA33,0x3E7B66D5,0x3F5A1A8A,0xBD92A76F,
+ 0xBCD3986D,0x3E7B1731,0x3F5A2AB2,0xBD929DD5,0xBCD346AD,0x3E7AC793,0x3F5A3AD7,0xBD929431,
+ 0xBCD2F4F4,0x3E7A77FC,0x3F5A4AF9,0xBD928A83,0xBCD2A342,0x3E7A286B,0x3F5A5B19,0xBD9280CC,
+ 0xBCD25196,0x3E79D8E0,0x3F5A6B36,0xBD92770B,0xBCD1FFF1,0x3E79895C,0x3F5A7B50,0xBD926D40,
+ 0xBCD1AE52,0x3E7939DF,0x3F5A8B68,0xBD92636C,0xBCD15CBA,0x3E78EA68,0x3F5A9B7E,0xBD92598D,
+ 0xBCD10B29,0x3E789AF7,0x3F5AAB90,0xBD924FA6,0xBCD0B99E,0x3E784B8D,0x3F5ABBA0,0xBD9245B4,
+ 0xBCD0681B,0x3E77FC2A,0x3F5ACBAD,0xBD923BB9,0xBCD0169E,0x3E77ACCD,0x3F5ADBB8,0xBD9231B5,
+ 0xBCCFC528,0x3E775D77,0x3F5AEBC0,0xBD9227A6,0xBCCF73B8,0x3E770E27,0x3F5AFBC6,0xBD921D8E,
+ 0xBCCF2250,0x3E76BEDE,0x3F5B0BC8,0xBD92136C,0xBCCED0EE,0x3E766F9B,0x3F5B1BC9,0xBD920940,
+ 0xBCCE7F94,0x3E76205F,0x3F5B2BC6,0xBD91FF0B,0xBCCE2E40,0x3E75D12A,0x3F5B3BC1,0xBD91F4CC,
+ 0xBCCDDCF3,0x3E7581FB,0x3F5B4BB9,0xBD91EA83,0xBCCD8BAD,0x3E7532D3,0x3F5B5BAF,0xBD91E031,
+ 0xBCCD3A6F,0x3E74E3B1,0x3F5B6BA2,0xBD91D5D4,0xBCCCE937,0x3E749497,0x3F5B7B92,0xBD91CB6E,
+ 0xBCCC9806,0x3E744582,0x3F5B8B7F,0xBD91C0FE,0xBCCC46DC,0x3E73F675,0x3F5B9B6A,0xBD91B685,
+ 0xBCCBF5BA,0x3E73A76E,0x3F5BAB53,0xBD91AC02,0xBCCBA49E,0x3E73586D,0x3F5BBB38,0xBD91A174,
+ 0xBCCB538A,0x3E730974,0x3F5BCB1B,0xBD9196DE,0xBCCB027D,0x3E72BA81,0x3F5BDAFB,0xBD918C3D,
+ 0xBCCAB176,0x3E726B94,0x3F5BEAD9,0xBD918192,0xBCCA6078,0x3E721CAF,0x3F5BFAB4,0xBD9176DE,
+ 0xBCCA0F80,0x3E71CDD0,0x3F5C0A8C,0xBD916C20,0xBCC9BE90,0x3E717EF8,0x3F5C1A62,0xBD916158,
+ 0xBCC96DA7,0x3E713026,0x3F5C2A34,0xBD915686,0xBCC91CC5,0x3E70E15C,0x3F5C3A05,0xBD914BAB,
+ 0xBCC8CBEA,0x3E709298,0x3F5C49D2,0xBD9140C5,0xBCC87B17,0x3E7043DB,0x3F5C599D,0xBD9135D6,
+ 0xBCC82A4B,0x3E6FF524,0x3F5C6965,0xBD912ADD,0xBCC7D987,0x3E6FA675,0x3F5C792A,0xBD911FDA,
+ 0xBCC788CA,0x3E6F57CC,0x3F5C88ED,0xBD9114CE,0xBCC73814,0x3E6F092A,0x3F5C98AD,0xBD9109B7,
+ 0xBCC6E766,0x3E6EBA8E,0x3F5CA86A,0xBD90FE96,0xBCC696C0,0x3E6E6BFA,0x3F5CB825,0xBD90F36C,
+ 0xBCC64621,0x3E6E1D6C,0x3F5CC7DD,0xBD90E838,0xBCC5F589,0x3E6DCEE5,0x3F5CD792,0xBD90DCFA,
+ 0xBCC5A4F9,0x3E6D8065,0x3F5CE745,0xBD90D1B2,0xBCC55471,0x3E6D31EC,0x3F5CF6F4,0xBD90C660,
+ 0xBCC503F0,0x3E6CE37A,0x3F5D06A2,0xBD90BB04,0xBCC4B377,0x3E6C950F,0x3F5D164C,0xBD90AF9E,
+ 0xBCC46305,0x3E6C46AA,0x3F5D25F4,0xBD90A42F,0xBCC4129B,0x3E6BF84C,0x3F5D3598,0xBD9098B5,
+ 0xBCC3C239,0x3E6BA9F5,0x3F5D453B,0xBD908D32,0xBCC371DF,0x3E6B5BA6,0x3F5D54DA,0xBD9081A4,
+ 0xBCC3218C,0x3E6B0D5D,0x3F5D6477,0xBD90760D,0xBCC2D141,0x3E6ABF1A,0x3F5D7411,0xBD906A6C,
+ 0xBCC280FE,0x3E6A70DF,0x3F5D83A8,0xBD905EC0,0xBCC230C3,0x3E6A22AB,0x3F5D933D,0xBD90530B,
+ 0xBCC1E08F,0x3E69D47E,0x3F5DA2CF,0xBD90474C,0xBCC19064,0x3E698657,0x3F5DB25E,0xBD903B83,
+ 0xBCC14040,0x3E693838,0x3F5DC1EA,0xBD902FB0,0xBCC0F024,0x3E68EA1F,0x3F5DD174,0xBD9023D3,
+ 0xBCC0A010,0x3E689C0E,0x3F5DE0FB,0xBD9017EC,0xBCC05004,0x3E684E03,0x3F5DF07F,0xBD900BFB,
+ 0xBCC00000,0x3E680000,0x3F5E0000,0xBD900000,0xBCBFB004,0x3E67B204,0x3F5E0F7F,0xBD8FF3FB,
+ 0xBCBF6010,0x3E67640E,0x3F5E1EFA,0xBD8FE7EC,0xBCBF1024,0x3E671620,0x3F5E2E74,0xBD8FDBD3,
+ 0xBCBEC040,0x3E66C838,0x3F5E3DEA,0xBD8FCFB0,0xBCBE7064,0x3E667A58,0x3F5E4D5E,0xBD8FC383,
+ 0xBCBE2091,0x3E662C7E,0x3F5E5CCE,0xBD8FB74C,0xBCBDD0C5,0x3E65DEAC,0x3F5E6C3C,0xBD8FAB0B,
+ 0xBCBD8102,0x3E6590E1,0x3F5E7BA8,0xBD8F9EC0,0xBCBD3147,0x3E65431D,0x3F5E8B10,0xBD8F926A,
+ 0xBCBCE194,0x3E64F55F,0x3F5E9A76,0xBD8F860B,0xBCBC91E9,0x3E64A7A9,0x3F5EA9D9,0xBD8F79A2,
+ 0xBCBC4247,0x3E6459FB,0x3F5EB939,0xBD8F6D2E,0xBCBBF2AD,0x3E640C53,0x3F5EC897,0xBD8F60B1,
+ 0xBCBBA31B,0x3E63BEB2,0x3F5ED7F1,0xBD8F5429,0xBCBB5391,0x3E637118,0x3F5EE749,0xBD8F4798,
+ 0xBCBB0410,0x3E632386,0x3F5EF69E,0xBD8F3AFC,0xBCBAB497,0x3E62D5FB,0x3F5F05F1,0xBD8F2E56,
+ 0xBCBA6527,0x3E628877,0x3F5F1540,0xBD8F21A6,0xBCBA15BF,0x3E623AFA,0x3F5F248D,0xBD8F14EC,
+ 0xBCB9C65F,0x3E61ED84,0x3F5F33D7,0xBD8F0828,0xBCB97708,0x3E61A015,0x3F5F431E,0xBD8EFB5A,
+ 0xBCB927BA,0x3E6152AE,0x3F5F5263,0xBD8EEE82,0xBCB8D874,0x3E61054D,0x3F5F61A4,0xBD8EE19F,
+ 0xBCB88936,0x3E60B7F4,0x3F5F70E3,0xBD8ED4B2,0xBCB83A01,0x3E606AA2,0x3F5F801F,0xBD8EC7BC,
+ 0xBCB7EAD5,0x3E601D58,0x3F5F8F58,0xBD8EBABB,0xBCB79BB1,0x3E5FD014,0x3F5F9E8E,0xBD8EADB0,
+ 0xBCB74C96,0x3E5F82D8,0x3F5FADC2,0xBD8EA09B,0xBCB6FD83,0x3E5F35A3,0x3F5FBCF3,0xBD8E937B,
+ 0xBCB6AE79,0x3E5EE876,0x3F5FCC21,0xBD8E8652,0xBCB65F78,0x3E5E9B4F,0x3F5FDB4C,0xBD8E791E,
+ 0xBCB61080,0x3E5E4E30,0x3F5FEA74,0xBD8E6BE0,0xBCB5C190,0x3E5E0118,0x3F5FF999,0xBD8E5E98,
+ 0xBCB572AA,0x3E5DB408,0x3F6008BC,0xBD8E5146,0xBCB523CB,0x3E5D66FE,0x3F6017DC,0xBD8E43E9,
+ 0xBCB4D4F6,0x3E5D19FC,0x3F6026F9,0xBD8E3682,0xBCB4862A,0x3E5CCD02,0x3F603613,0xBD8E2912,
+ 0xBCB43766,0x3E5C800E,0x3F60452A,0xBD8E1B96,0xBCB3E8AC,0x3E5C3322,0x3F60543F,0xBD8E0E11,
+ 0xBCB399FA,0x3E5BE63E,0x3F606351,0xBD8E0082,0xBCB34B51,0x3E5B9960,0x3F60725F,0xBD8DF2E8,
+ 0xBCB2FCB1,0x3E5B4C8B,0x3F60816B,0xBD8DE544,0xBCB2AE1B,0x3E5AFFBC,0x3F609075,0xBD8DD795,
+ 0xBCB25F8D,0x3E5AB2F5,0x3F609F7B,0xBD8DC9DD,0xBCB21108,0x3E5A6635,0x3F60AE7E,0xBD8DBC1A,
+ 0xBCB1C28C,0x3E5A197D,0x3F60BD7F,0xBD8DAE4D,0xBCB1741A,0x3E59CCCC,0x3F60CC7D,0xBD8DA076,
+ 0xBCB125B0,0x3E598022,0x3F60DB78,0xBD8D9294,0xBCB0D750,0x3E593380,0x3F60EA70,0xBD8D84A8,
+ 0xBCB088F8,0x3E58E6E5,0x3F60F965,0xBD8D76B2,0xBCB03AAA,0x3E589A52,0x3F610857,0xBD8D68B1,
+ 0xBCAFEC65,0x3E584DC6,0x3F611747,0xBD8D5AA7,0xBCAF9E2A,0x3E580142,0x3F612633,0xBD8D4C92,
+ 0xBCAF4FF7,0x3E57B4C5,0x3F61351D,0xBD8D3E72,0xBCAF01CE,0x3E57684F,0x3F614404,0xBD8D3049,
+ 0xBCAEB3AE,0x3E571BE1,0x3F6152E8,0xBD8D2214,0xBCAE6597,0x3E56CF7B,0x3F6161C9,0xBD8D13D6,
+ 0xBCAE178A,0x3E56831C,0x3F6170A7,0xBD8D058D,0xBCADC986,0x3E5636C4,0x3F617F82,0xBD8CF73A,
+ 0xBCAD7B8C,0x3E55EA74,0x3F618E5B,0xBD8CE8DD,0xBCAD2D9B,0x3E559E2C,0x3F619D31,0xBD8CDA75,
+ 0xBCACDFB3,0x3E5551EB,0x3F61AC03,0xBD8CCC03,0xBCAC91D5,0x3E5505B2,0x3F61BAD3,0xBD8CBD87,
+ 0xBCAC4400,0x3E54B980,0x3F61C9A0,0xBD8CAF00,0xBCABF635,0x3E546D56,0x3F61D86A,0xBD8CA06F,
+ 0xBCABA873,0x3E542133,0x3F61E731,0xBD8C91D3,0xBCAB5ABB,0x3E53D518,0x3F61F5F5,0xBD8C832D,
+ 0xBCAB0D0C,0x3E538905,0x3F6204B7,0xBD8C747D,0xBCAABF67,0x3E533CF9,0x3F621375,0xBD8C65C2,
+ 0xBCAA71CC,0x3E52F0F4,0x3F622231,0xBD8C56FD,0xBCAA243A,0x3E52A4F8,0x3F6230EA,0xBD8C482D,
+ 0xBCA9D6B2,0x3E525903,0x3F623F9F,0xBD8C3954,0xBCA98934,0x3E520D15,0x3F624E52,0xBD8C2A6F,
+ 0xBCA93BBF,0x3E51C130,0x3F625D02,0xBD8C1B80,0xBCA8EE54,0x3E517551,0x3F626BAF,0xBD8C0C87,
+ 0xBCA8A0F3,0x3E51297B,0x3F627A59,0xBD8BFD83,0xBCA8539B,0x3E50DDAC,0x3F628900,0xBD8BEE75,
+ 0xBCA8064E,0x3E5091E5,0x3F6297A5,0xBD8BDF5D,0xBCA7B90A,0x3E504626,0x3F62A646,0xBD8BD03A,
+ 0xBCA76BD0,0x3E4FFA6E,0x3F62B4E4,0xBD8BC10C,0xBCA71EA0,0x3E4FAEBE,0x3F62C380,0xBD8BB1D4,
+ 0xBCA6D17A,0x3E4F6316,0x3F62D219,0xBD8BA292,0xBCA6845E,0x3E4F1775,0x3F62E0AE,0xBD8B9345,
+ 0xBCA6374B,0x3E4ECBDC,0x3F62EF41,0xBD8B83ED,0xBCA5EA43,0x3E4E804B,0x3F62FDD1,0xBD8B748B,
+ 0xBCA59D45,0x3E4E34C2,0x3F630C5E,0xBD8B651F,0xBCA55050,0x3E4DE940,0x3F631AE7,0xBD8B55A8,
+ 0xBCA50366,0x3E4D9DC6,0x3F63296E,0xBD8B4626,0xBCA4B686,0x3E4D5254,0x3F6337F2,0xBD8B369B,
+ 0xBCA469B0,0x3E4D06EA,0x3F634674,0xBD8B2704,0xBCA41CE4,0x3E4CBB87,0x3F6354F2,0xBD8B1763,
+ 0xBCA3D022,0x3E4C702D,0x3F63636D,0xBD8B07B8,0xBCA3836A,0x3E4C24DA,0x3F6371E5,0xBD8AF801,
+ 0xBCA336BC,0x3E4BD98F,0x3F63805A,0xBD8AE841,0xBCA2EA19,0x3E4B8E4B,0x3F638ECD,0xBD8AD876,
+ 0xBCA29D80,0x3E4B4310,0x3F639D3C,0xBD8AC8A0,0xBCA250F1,0x3E4AF7DC,0x3F63ABA8,0xBD8AB8C0,
+ 0xBCA2046D,0x3E4AACB1,0x3F63BA12,0xBD8AA8D5,0xBCA1B7F2,0x3E4A618D,0x3F63C878,0xBD8A98DF,
+ 0xBCA16B82,0x3E4A1671,0x3F63D6DC,0xBD8A88DF,0xBCA11F1D,0x3E49CB5D,0x3F63E53C,0xBD8A78D5,
+ 0xBCA0D2C1,0x3E498051,0x3F63F39A,0xBD8A68C0,0xBCA08670,0x3E49354C,0x3F6401F4,0xBD8A58A0,
+ 0xBCA03A2A,0x3E48EA50,0x3F64104C,0xBD8A4876,0xBC9FEDEE,0x3E489F5B,0x3F641EA1,0xBD8A3841,
+ 0xBC9FA1BC,0x3E48546F,0x3F642CF2,0xBD8A2801,0xBC9F5595,0x3E48098A,0x3F643B41,0xBD8A17B7,
+ 0xBC9F0979,0x3E47BEAD,0x3F64498D,0xBD8A0762,0xBC9EBD67,0x3E4773D9,0x3F6457D5,0xBD89F702,
+ 0xBC9E715F,0x3E47290C,0x3F64661B,0xBD89E698,0xBC9E2562,0x3E46DE47,0x3F64745E,0xBD89D623,
+ 0xBC9DD970,0x3E46938A,0x3F64829E,0xBD89C5A4,0xBC9D8D88,0x3E4648D5,0x3F6490DA,0xBD89B51A,
+ 0xBC9D41AB,0x3E45FE28,0x3F649F14,0xBD89A485,0xBC9CF5D9,0x3E45B383,0x3F64AD4B,0xBD8993E6,
+ 0xBC9CAA11,0x3E4568E6,0x3F64BB7E,0xBD89833C,0xBC9C5E54,0x3E451E52,0x3F64C9AF,0xBD897287,
+ 0xBC9C12A2,0x3E44D3C5,0x3F64D7DD,0xBD8961C7,0xBC9BC6FB,0x3E448940,0x3F64E608,0xBD8950FD,
+ 0xBC9B7B5E,0x3E443EC3,0x3F64F42F,0xBD894028,0xBC9B2FCC,0x3E43F44F,0x3F650254,0xBD892F49,
+ 0xBC9AE445,0x3E43A9E2,0x3F651076,0xBD891E5F,0xBC9A98C9,0x3E435F7D,0x3F651E94,0xBD890D6A,
+ 0xBC9A4D58,0x3E431521,0x3F652CB0,0xBD88FC6A,0xBC9A01F1,0x3E42CACD,0x3F653AC8,0xBD88EB60,
+ 0xBC99B696,0x3E428080,0x3F6548DE,0xBD88DA4B,0xBC996B45,0x3E42363C,0x3F6556F0,0xBD88C92B,
+ 0xBC992000,0x3E41EC00,0x3F656500,0xBD88B800,0xBC98D4C6,0x3E41A1CC,0x3F65730C,0xBD88A6CB,
+ 0xBC988996,0x3E4157A0,0x3F658116,0xBD88958A,0xBC983E72,0x3E410D7D,0x3F658F1C,0xBD888440,
+ 0xBC97F358,0x3E40C361,0x3F659D20,0xBD8872EA,0xBC97A84A,0x3E40794E,0x3F65AB20,0xBD88618A,
+ 0xBC975D47,0x3E402F43,0x3F65B91D,0xBD88501E,0xBC97124F,0x3E3FE540,0x3F65C718,0xBD883EA8,
+ 0xBC96C762,0x3E3F9B45,0x3F65D50F,0xBD882D28,0xBC967C80,0x3E3F5152,0x3F65E303,0xBD881B9C,
+ 0xBC9631AA,0x3E3F0768,0x3F65F0F4,0xBD880A06,0xBC95E6DF,0x3E3EBD86,0x3F65FEE2,0xBD87F864,
+ 0xBC959C1F,0x3E3E73AC,0x3F660CCD,0xBD87E6B8,0xBC95516A,0x3E3E29DA,0x3F661AB5,0xBD87D501,
+ 0xBC9506C1,0x3E3DE010,0x3F66289A,0xBD87C340,0xBC94BC23,0x3E3D964F,0x3F66367C,0xBD87B173,
+ 0xBC947190,0x3E3D4C96,0x3F66445A,0xBD879F9C,0xBC942709,0x3E3D02E5,0x3F665236,0xBD878DBA,
+ 0xBC93DC8D,0x3E3CB93D,0x3F66600F,0xBD877BCD,0xBC93921C,0x3E3C6F9D,0x3F666DE4,0xBD8769D5,
+ 0xBC9347B7,0x3E3C2605,0x3F667BB7,0xBD8757D2,0xBC92FD5E,0x3E3BDC75,0x3F668986,0xBD8745C5,
+ 0xBC92B310,0x3E3B92EE,0x3F669753,0xBD8733AC,0xBC9268CD,0x3E3B496F,0x3F66A51C,0xBD872189,
+ 0xBC921E96,0x3E3AFFF8,0x3F66B2E2,0xBD870F5A,0xBC91D46B,0x3E3AB68A,0x3F66C0A5,0xBD86FD21,
+ 0xBC918A4B,0x3E3A6D24,0x3F66CE65,0xBD86EADD,0xBC914036,0x3E3A23C6,0x3F66DC22,0xBD86D88E,
+ 0xBC90F62E,0x3E39DA71,0x3F66E9DC,0xBD86C635,0xBC90AC31,0x3E399124,0x3F66F792,0xBD86B3D0,
+ 0xBC90623F,0x3E3947E0,0x3F670546,0xBD86A160,0xBC90185A,0x3E38FEA4,0x3F6712F7,0xBD868EE6,
+ 0xBC8FCE80,0x3E38B570,0x3F6720A4,0xBD867C60,0xBC8F84B2,0x3E386C45,0x3F672E4E,0xBD8669D0,
+ 0xBC8F3AF0,0x3E382322,0x3F673BF6,0xBD865734,0xBC8EF139,0x3E37DA07,0x3F67499A,0xBD86448E,
+ 0xBC8EA78E,0x3E3790F5,0x3F67573B,0xBD8631DC,0xBC8E5DEF,0x3E3747EC,0x3F6764D9,0xBD861F20,
+ 0xBC8E145C,0x3E36FEEB,0x3F677273,0xBD860C59,0xBC8DCAD5,0x3E36B5F2,0x3F67800B,0xBD85F987,
+ 0xBC8D815A,0x3E366D02,0x3F678DA0,0xBD85E6AA,0xBC8D37EB,0x3E36241A,0x3F679B31,0xBD85D3C1,
+ 0xBC8CEE87,0x3E35DB3B,0x3F67A8BF,0xBD85C0CE,0xBC8CA530,0x3E359264,0x3F67B64A,0xBD85ADD0,
+ 0xBC8C5BE5,0x3E354996,0x3F67C3D3,0xBD859AC7,0xBC8C12A5,0x3E3500D0,0x3F67D157,0xBD8587B3,
+ 0xBC8BC972,0x3E34B813,0x3F67DED9,0xBD857493,0xBC8B804B,0x3E346F5E,0x3F67EC58,0xBD856169,
+ 0xBC8B3730,0x3E3426B2,0x3F67F9D4,0xBD854E34,0xBC8AEE21,0x3E33DE0E,0x3F68074C,0xBD853AF4,
+ 0xBC8AA51E,0x3E339573,0x3F6814C1,0xBD8527A8,0xBC8A5C28,0x3E334CE1,0x3F682233,0xBD851452,
+ 0xBC8A133D,0x3E330457,0x3F682FA2,0xBD8500F1,0xBC89CA5F,0x3E32BBD6,0x3F683D0E,0xBD84ED84,
+ 0xBC89818D,0x3E32735D,0x3F684A77,0xBD84DA0D,0xBC8938C7,0x3E322AED,0x3F6857DC,0xBD84C68A,
+ 0xBC88F00E,0x3E31E285,0x3F68653F,0xBD84B2FC,0xBC88A761,0x3E319A26,0x3F68729E,0xBD849F64,
+ 0xBC885EC0,0x3E3151D0,0x3F687FFA,0xBD848BC0,0xBC88162C,0x3E310982,0x3F688D53,0xBD847811,
+ 0xBC87CDA4,0x3E30C13D,0x3F689AA9,0xBD846457,0xBC878528,0x3E307901,0x3F68A7FB,0xBD845092,
+ 0xBC873CB9,0x3E3030CD,0x3F68B54B,0xBD843CC2,0xBC86F456,0x3E2FE8A2,0x3F68C297,0xBD8428E6,
+ 0xBC86AC00,0x3E2FA080,0x3F68CFE0,0xBD841500,0xBC8663B6,0x3E2F5866,0x3F68DD26,0xBD84010E,
+ 0xBC861B79,0x3E2F1055,0x3F68EA69,0xBD83ED12,0xBC85D348,0x3E2EC84D,0x3F68F7A8,0xBD83D90A,
+ 0xBC858B24,0x3E2E804E,0x3F6904E5,0xBD83C4F7,0xBC85430D,0x3E2E3857,0x3F69121E,0xBD83B0D9,
+ 0xBC84FB02,0x3E2DF069,0x3F691F54,0xBD839CB0,0xBC84B304,0x3E2DA883,0x3F692C87,0xBD83887B,
+ 0xBC846B12,0x3E2D60A7,0x3F6939B6,0xBD83743C,0xBC84232D,0x3E2D18D3,0x3F6946E3,0xBD835FF1,
+ 0xBC83DB55,0x3E2CD108,0x3F69540C,0xBD834B9B,0xBC839389,0x3E2C8946,0x3F696132,0xBD83373A,
+ 0xBC834BCB,0x3E2C418C,0x3F696E55,0xBD8322CD,0xBC830419,0x3E2BF9DB,0x3F697B75,0xBD830E56,
+ 0xBC82BC74,0x3E2BB233,0x3F698891,0xBD82F9D3,0xBC8274DB,0x3E2B6A94,0x3F6995AA,0xBD82E545,
+ 0xBC822D50,0x3E2B22FE,0x3F69A2C0,0xBD82D0AC,0xBC81E5D1,0x3E2ADB71,0x3F69AFD3,0xBD82BC08,
+ 0xBC819E60,0x3E2A93EC,0x3F69BCE3,0xBD82A758,0xBC8156FB,0x3E2A4C70,0x3F69C9EF,0xBD82929D,
+ 0xBC810FA3,0x3E2A04FD,0x3F69D6F9,0xBD827DD7,0xBC80C858,0x3E29BD93,0x3F69E3FF,0xBD826906,
+ 0xBC80811B,0x3E297632,0x3F69F102,0xBD825429,0xBC8039EA,0x3E292EDA,0x3F69FE01,0xBD823F42,
+ 0xBC7FE58C,0x3E28E78A,0x3F6A0AFD,0xBD822A4E,0xBC7F575F,0x3E28A044,0x3F6A17F7,0xBD821550,
+ 0xBC7EC94B,0x3E285906,0x3F6A24EC,0xBD820047,0xBC7E3B52,0x3E2811D1,0x3F6A31DF,0xBD81EB32,
+ 0xBC7DAD74,0x3E27CAA6,0x3F6A3ECF,0xBD81D612,0xBC7D1FAF,0x3E278383,0x3F6A4BBB,0xBD81C0E6,
+ 0xBC7C9205,0x3E273C69,0x3F6A58A4,0xBD81ABAF,0xBC7C0475,0x3E26F558,0x3F6A658A,0xBD81966D,
+ 0xBC7B7700,0x3E26AE50,0x3F6A726C,0xBD818120,0xBC7AE9A5,0x3E266751,0x3F6A7F4B,0xBD816BC7,
+ 0xBC7A5C65,0x3E26205B,0x3F6A8C27,0xBD815663,0xBC79CF3F,0x3E25D96E,0x3F6A9900,0xBD8140F4,
+ 0xBC794234,0x3E25928A,0x3F6AA5D6,0xBD812B79,0xBC78B544,0x3E254BAF,0x3F6AB2A8,0xBD8115F3,
+ 0xBC78286F,0x3E2504DD,0x3F6ABF77,0xBD810062,0xBC779BB4,0x3E24BE14,0x3F6ACC43,0xBD80EAC6,
+ 0xBC770F14,0x3E247754,0x3F6AD90B,0xBD80D51E,0xBC76828F,0x3E24309D,0x3F6AE5D0,0xBD80BF6A,
+ 0xBC75F625,0x3E23E9EF,0x3F6AF292,0xBD80A9AB,0xBC7569D6,0x3E23A34A,0x3F6AFF51,0xBD8093E1,
+ 0xBC74DDA2,0x3E235CAE,0x3F6B0C0C,0xBD807E0C,0xBC745188,0x3E23161C,0x3F6B18C5,0xBD80682B,
+ 0xBC73C58A,0x3E22CF92,0x3F6B257A,0xBD80523F,0xBC7339A8,0x3E228911,0x3F6B322B,0xBD803C47,
+ 0xBC72ADE0,0x3E22429A,0x3F6B3EDA,0xBD802644,0xBC722234,0x3E21FC2C,0x3F6B4B85,0xBD801036,
+ 0xBC7196A3,0x3E21B5C6,0x3F6B582C,0xBD7FF437,0xBC710B2D,0x3E216F6A,0x3F6B64D1,0xBD7FC7ED,
+ 0xBC707FD2,0x3E212917,0x3F6B7172,0xBD7F9B8B,0xBC6FF494,0x3E20E2CE,0x3F6B7E10,0xBD7F6F13,
+ 0xBC6F6970,0x3E209C8D,0x3F6B8AAB,0xBD7F4284,0xBC6EDE68,0x3E205656,0x3F6B9742,0xBD7F15DE,
+ 0xBC6E537C,0x3E201027,0x3F6BA3D6,0xBD7EE921,0xBC6DC8AB,0x3E1FCA02,0x3F6BB067,0xBD7EBC4D,
+ 0xBC6D3DF6,0x3E1F83E6,0x3F6BBCF4,0xBD7E8F62,0xBC6CB35D,0x3E1F3DD3,0x3F6BC97F,0xBD7E6261,
+ 0xBC6C28E0,0x3E1EF7CA,0x3F6BD606,0xBD7E3548,0xBC6B9E7E,0x3E1EB1CA,0x3F6BE289,0xBD7E0819,
+ 0xBC6B1438,0x3E1E6BD2,0x3F6BEF09,0xBD7DDAD2,0xBC6A8A0E,0x3E1E25E5,0x3F6BFB86,0xBD7DAD75,
+ 0xBC6A0000,0x3E1DE000,0x3F6C0800,0xBD7D8000,0xBC69760E,0x3E1D9A25,0x3F6C1476,0xBD7D5274,
+ 0xBC68EC38,0x3E1D5453,0x3F6C20E9,0xBD7D24D2,0xBC68627E,0x3E1D0E8A,0x3F6C2D59,0xBD7CF718,
+ 0xBC67D8E0,0x3E1CC8CA,0x3F6C39C5,0xBD7CC948,0xBC674F5F,0x3E1C8314,0x3F6C462F,0xBD7C9B60,
+ 0xBC66C5FA,0x3E1C3D67,0x3F6C5294,0xBD7C6D62,0xBC663CB1,0x3E1BF7C3,0x3F6C5EF7,0xBD7C3F4C,
+ 0xBC65B384,0x3E1BB229,0x3F6C6B56,0xBD7C111F,0xBC652A74,0x3E1B6C98,0x3F6C77B2,0xBD7BE2DB,
+ 0xBC64A180,0x3E1B2710,0x3F6C840A,0xBD7BB480,0xBC6418A8,0x3E1AE192,0x3F6C905F,0xBD7B860E,
+ 0xBC638FEE,0x3E1A9C1D,0x3F6C9CB1,0xBD7B5785,0xBC63074F,0x3E1A56B1,0x3F6CA8FF,0xBD7B28E4,
+ 0xBC627ECD,0x3E1A114F,0x3F6CB54A,0xBD7AFA2D,0xBC61F668,0x3E19CBF6,0x3F6CC192,0xBD7ACB5E,
+ 0xBC616E20,0x3E1986A6,0x3F6CCDD6,0xBD7A9C78,0xBC60E5F4,0x3E194160,0x3F6CDA18,0xBD7A6D7B,
+ 0xBC605DE6,0x3E18FC23,0x3F6CE655,0xBD7A3E67,0xBC5FD5F4,0x3E18B6F0,0x3F6CF290,0xBD7A0F3B,
+ 0xBC5F4E1E,0x3E1871C6,0x3F6CFEC7,0xBD79DFF8,0xBC5EC666,0x3E182CA5,0x3F6D0AFA,0xBD79B09E,
+ 0xBC5E3ECB,0x3E17E78E,0x3F6D172A,0xBD79812D,0xBC5DB74D,0x3E17A280,0x3F6D2357,0xBD7951A5,
+ 0xBC5D2FEC,0x3E175D7C,0x3F6D2F81,0xBD792205,0xBC5CA8A8,0x3E171882,0x3F6D3BA7,0xBD78F24E,
+ 0xBC5C2181,0x3E16D390,0x3F6D47CA,0xBD78C280,0xBC5B9A78,0x3E168EA8,0x3F6D53E9,0xBD78929A,
+ 0xBC5B138C,0x3E1649CA,0x3F6D6005,0xBD78629D,0xBC5A8CBD,0x3E1604F5,0x3F6D6C1E,0xBD783289,
+ 0xBC5A060B,0x3E15C02A,0x3F6D7833,0xBD78025D,0xBC597F77,0x3E157B68,0x3F6D8445,0xBD77D21A,
+ 0xBC58F900,0x3E1536B0,0x3F6D9054,0xBD77A1C0,0xBC5872A7,0x3E14F201,0x3F6D9C5F,0xBD77714E,
+ 0xBC57EC6B,0x3E14AD5C,0x3F6DA867,0xBD7740C5,0xBC57664D,0x3E1468C0,0x3F6DB46B,0xBD771025,
+ 0xBC56E04C,0x3E14242E,0x3F6DC06C,0xBD76DF6D,0xBC565A6A,0x3E13DFA6,0x3F6DCC6A,0xBD76AE9E,
+ 0xBC55D4A5,0x3E139B27,0x3F6DD864,0xBD767DB7,0xBC554EFD,0x3E1356B2,0x3F6DE45B,0xBD764CB9,
+ 0xBC54C974,0x3E131246,0x3F6DF04F,0xBD761BA3,0xBC544408,0x3E12CDE4,0x3F6DFC3F,0xBD75EA76,
+ 0xBC53BEBB,0x3E12898B,0x3F6E082B,0xBD75B931,0xBC53398B,0x3E12453C,0x3F6E1414,0xBD7587D5,
+ 0xBC52B47A,0x3E1200F7,0x3F6E1FFA,0xBD755662,0xBC522F86,0x3E11BCBB,0x3F6E2BDD,0xBD7524D7,
+ 0xBC51AAB0,0x3E117889,0x3F6E37BC,0xBD74F334,0xBC5125F9,0x3E113461,0x3F6E4397,0xBD74C17A,
+ 0xBC50A160,0x3E10F042,0x3F6E4F70,0xBD748FA8,0xBC501CE5,0x3E10AC2D,0x3F6E5B44,0xBD745DBF,
+ 0xBC4F9889,0x3E106822,0x3F6E6716,0xBD742BBE,0xBC4F144A,0x3E102420,0x3F6E72E4,0xBD73F9A5,
+ 0xBC4E902A,0x3E0FE028,0x3F6E7EAE,0xBD73C775,0xBC4E0C29,0x3E0F9C3A,0x3F6E8A75,0xBD73952E,
+ 0xBC4D8846,0x3E0F5855,0x3F6E9639,0xBD7362CE,0xBC4D0482,0x3E0F147A,0x3F6EA1F9,0xBD733058,
+ 0xBC4C80DC,0x3E0ED0A9,0x3F6EADB6,0xBD72FDC9,0xBC4BFD55,0x3E0E8CE2,0x3F6EB96F,0xBD72CB23,
+ 0xBC4B79EC,0x3E0E4924,0x3F6EC525,0xBD729865,0xBC4AF6A3,0x3E0E0570,0x3F6ED0D7,0xBD72658F,
+ 0xBC4A7378,0x3E0DC1C6,0x3F6EDC86,0xBD7232A2,0xBC49F06B,0x3E0D7E26,0x3F6EE832,0xBD71FF9D,
+ 0xBC496D7E,0x3E0D3A90,0x3F6EF3DA,0xBD71CC81,0xBC48EAAF,0x3E0CF703,0x3F6EFF7F,0xBD71994C,
+ 0xBC486800,0x3E0CB380,0x3F6F0B20,0xBD716600,0xBC47E570,0x3E0C7007,0x3F6F16BE,0xBD71329C,
+ 0xBC4762FE,0x3E0C2C98,0x3F6F2258,0xBD70FF20,0xBC46E0AC,0x3E0BE932,0x3F6F2DEF,0xBD70CB8D,
+ 0xBC465E78,0x3E0BA5D7,0x3F6F3982,0xBD7097E2,0xBC45DC64,0x3E0B6285,0x3F6F4512,0xBD70641F,
+ 0xBC455A70,0x3E0B1F3D,0x3F6F509F,0xBD703044,0xBC44D89A,0x3E0ADBFF,0x3F6F5C28,0xBD6FFC51,
+ 0xBC4456E4,0x3E0A98CB,0x3F6F67AD,0xBD6FC847,0xBC43D54D,0x3E0A55A0,0x3F6F732F,0xBD6F9425,
+ 0xBC4353D6,0x3E0A1280,0x3F6F7EAE,0xBD6F5FEB,0xBC42D27E,0x3E09CF6A,0x3F6F8A29,0xBD6F2B99,
+ 0xBC425146,0x3E098C5D,0x3F6F95A1,0xBD6EF72F,0xBC41D02D,0x3E09495A,0x3F6FA115,0xBD6EC2AD,
+ 0xBC414F33,0x3E090662,0x3F6FAC86,0xBD6E8E13,0xBC40CE5A,0x3E08C373,0x3F6FB7F3,0xBD6E5962,
+ 0xBC404DA0,0x3E08808E,0x3F6FC35C,0xBD6E2498,0xBC3FCD06,0x3E083DB3,0x3F6FCEC3,0xBD6DEFB7,
+ 0xBC3F4C8C,0x3E07FAE2,0x3F6FDA25,0xBD6DBABD,0xBC3ECC31,0x3E07B81B,0x3F6FE585,0xBD6D85AC,
+ 0xBC3E4BF6,0x3E07755E,0x3F6FF0E0,0xBD6D5082,0xBC3DCBDC,0x3E0732AB,0x3F6FFC39,0xBD6D1B41,
+ 0xBC3D4BE1,0x3E06F002,0x3F70078D,0xBD6CE5E8,0xBC3CCC07,0x3E06AD63,0x3F7012DF,0xBD6CB076,
+ 0xBC3C4C4C,0x3E066ACE,0x3F701E2C,0xBD6C7AED,0xBC3BCCB2,0x3E062843,0x3F702977,0xBD6C454C,
+ 0xBC3B4D37,0x3E05E5C2,0x3F7034BD,0xBD6C0F92,0xBC3ACDDD,0x3E05A34B,0x3F704001,0xBD6BD9C1,
+ 0xBC3A4EA4,0x3E0560DF,0x3F704B40,0xBD6BA3D7,0xBC39CF8A,0x3E051E7C,0x3F70567D,0xBD6B6DD5,
+ 0xBC395091,0x3E04DC23,0x3F7061B5,0xBD6B37BC,0xBC38D1B8,0x3E0499D5,0x3F706CEA,0xBD6B018A,
+ 0xBC385300,0x3E045790,0x3F70781C,0xBD6ACB40,0xBC37D468,0x3E041556,0x3F70834A,0xBD6A94DE,
+ 0xBC3755F1,0x3E03D325,0x3F708E75,0xBD6A5E64,0xBC36D79A,0x3E0390FF,0x3F70999C,0xBD6A27D1,
+ 0xBC365964,0x3E034EE3,0x3F70A4BF,0xBD69F127,0xBC35DB4F,0x3E030CD1,0x3F70AFDF,0xBD69BA64,
+ 0xBC355D5B,0x3E02CAC9,0x3F70BAFC,0xBD698389,0xBC34DF87,0x3E0288CB,0x3F70C615,0xBD694C96,
+ 0xBC3461D4,0x3E0246D8,0x3F70D12A,0xBD69158B,0xBC33E442,0x3E0204EE,0x3F70DC3C,0xBD68DE68,
+ 0xBC3366D1,0x3E01C30F,0x3F70E74A,0xBD68A72C,0xBC32E981,0x3E01813A,0x3F70F255,0xBD686FD8,
+ 0xBC326C52,0x3E013F6F,0x3F70FD5C,0xBD68386C,0xBC31EF43,0x3E00FDAF,0x3F710860,0xBD6800E7,
+ 0xBC317256,0x3E00BBF8,0x3F711360,0xBD67C94A,0xBC30F58B,0x3E007A4C,0x3F711E5D,0xBD679195,
+ 0xBC3078E0,0x3E0038AA,0x3F712956,0xBD6759C8,0xBC2FFC57,0x3DFFEE24,0x3F71344B,0xBD6721E2,
+ 0xBC2F7FEF,0x3DFF6B09,0x3F713F3D,0xBD66E9E4,0xBC2F03A8,0x3DFEE803,0x3F714A2B,0xBD66B1CE,
+ 0xBC2E8782,0x3DFE6511,0x3F715516,0xBD66799F,0xBC2E0B7F,0x3DFDE233,0x3F715FFD,0xBD664158,
+ 0xBC2D8F9C,0x3DFD5F6B,0x3F716AE1,0xBD6608F9,0xBC2D13DB,0x3DFCDCB6,0x3F7175C1,0xBD65D081,
+ 0xBC2C983C,0x3DFC5A16,0x3F71809D,0xBD6597F1,0xBC2C1CBE,0x3DFBD78B,0x3F718B76,0xBD655F48,
+ 0xBC2BA162,0x3DFB5515,0x3F71964B,0xBD652687,0xBC2B2628,0x3DFAD2B3,0x3F71A11D,0xBD64EDAE,
+ 0xBC2AAB10,0x3DFA5066,0x3F71ABEB,0xBD64B4BC,0xBC2A3019,0x3DF9CE2D,0x3F71B6B6,0xBD647BB2,
+ 0xBC29B544,0x3DF94C09,0x3F71C17D,0xBD64428F,0xBC293A91,0x3DF8C9FA,0x3F71CC40,0xBD640954,
+ 0xBC28C000,0x3DF84800,0x3F71D700,0xBD63D000,0xBC284591,0x3DF7C61A,0x3F71E1BC,0xBD639694,
+ 0xBC27CB44,0x3DF7444A,0x3F71EC75,0xBD635D0F,0xBC275119,0x3DF6C28D,0x3F71F72A,0xBD632372,
+ 0xBC26D710,0x3DF640E6,0x3F7201DB,0xBD62E9BC,0xBC265D2A,0x3DF5BF54,0x3F720C89,0xBD62AFEE,
+ 0xBC25E366,0x3DF53DD6,0x3F721733,0xBD627607,0xBC2569C4,0x3DF4BC6D,0x3F7221DA,0xBD623C07,
+ 0xBC24F044,0x3DF43B1A,0x3F722C7D,0xBD6201EF,0xBC2476E7,0x3DF3B9DB,0x3F72371C,0xBD61C7BE,
+ 0xBC23FDAC,0x3DF338B0,0x3F7241B8,0xBD618D75,0xBC238493,0x3DF2B79B,0x3F724C50,0xBD615313,
+ 0xBC230B9E,0x3DF2369B,0x3F7256E5,0xBD611899,0xBC2292CA,0x3DF1B5B0,0x3F726176,0xBD60DE05,
+ 0xBC221A19,0x3DF134DA,0x3F726C03,0xBD60A35A,0xBC21A18B,0x3DF0B418,0x3F72768C,0xBD606895,
+ 0xBC212920,0x3DF0336C,0x3F728112,0xBD602DB8,0xBC20B0D7,0x3DEFB2D5,0x3F728B95,0xBD5FF2C2,
+ 0xBC2038B2,0x3DEF3253,0x3F729614,0xBD5FB7B4,0xBC1FC0AF,0x3DEEB1E5,0x3F72A08F,0xBD5F7C8C,
+ 0xBC1F48CE,0x3DEE318D,0x3F72AB06,0xBD5F414C,0xBC1ED111,0x3DEDB14B,0x3F72B57A,0xBD5F05F4,
+ 0xBC1E5977,0x3DED311D,0x3F72BFEA,0xBD5ECA82,0xBC1DE200,0x3DECB104,0x3F72CA57,0xBD5E8EF8,
+ 0xBC1D6AAC,0x3DEC3100,0x3F72D4C0,0xBD5E5355,0xBC1CF37B,0x3DEBB112,0x3F72DF25,0xBD5E1799,
+ 0xBC1C7C6D,0x3DEB3139,0x3F72E987,0xBD5DDBC5,0xBC1C0583,0x3DEAB175,0x3F72F3E5,0xBD5D9FD7,
+ 0xBC1B8EBC,0x3DEA31C6,0x3F72FE3F,0xBD5D63D1,0xBC1B1818,0x3DE9B22D,0x3F730896,0xBD5D27B2,
+ 0xBC1AA197,0x3DE932A9,0x3F7312E9,0xBD5CEB7A,0xBC1A2B3A,0x3DE8B33A,0x3F731D38,0xBD5CAF2A,
+ 0xBC19B500,0x3DE833E0,0x3F732784,0xBD5C72C0,0xBC193EEA,0x3DE7B49C,0x3F7331CC,0xBD5C363E,
+ 0xBC18C8F7,0x3DE7356D,0x3F733C10,0xBD5BF9A2,0xBC185328,0x3DE6B653,0x3F734651,0xBD5BBCEE,
+ 0xBC17DD7C,0x3DE6374F,0x3F73508E,0xBD5B8021,0xBC1767F5,0x3DE5B860,0x3F735AC8,0xBD5B433B,
+ 0xBC16F291,0x3DE53986,0x3F7364FD,0xBD5B063C,0xBC167D50,0x3DE4BAC2,0x3F736F2F,0xBD5AC924,
+ 0xBC160834,0x3DE43C14,0x3F73795E,0xBD5A8BF3,0xBC15933B,0x3DE3BD7A,0x3F738388,0xBD5A4EA9,
+ 0xBC151E67,0x3DE33EF7,0x3F738DAF,0xBD5A1146,0xBC14A9B6,0x3DE2C088,0x3F7397D2,0xBD59D3CA,
+ 0xBC14352A,0x3DE24230,0x3F73A1F2,0xBD599636,0xBC13C0C1,0x3DE1C3EC,0x3F73AC0E,0xBD595888,
+ 0xBC134C7C,0x3DE145BF,0x3F73B626,0xBD591AC1,0xBC12D85C,0x3DE0C7A7,0x3F73C03B,0xBD58DCE1,
+ 0xBC126460,0x3DE049A4,0x3F73CA4C,0xBD589EE8,0xBC11F088,0x3DDFCBB7,0x3F73D459,0xBD5860D6,
+ 0xBC117CD5,0x3DDF4DE0,0x3F73DE62,0xBD5822AB,0xBC110945,0x3DDED01E,0x3F73E868,0xBD57E467,
+ 0xBC1095DA,0x3DDE5272,0x3F73F26A,0xBD57A609,0xBC102294,0x3DDDD4DC,0x3F73FC68,0xBD576793,
+ 0xBC0FAF72,0x3DDD575B,0x3F740663,0xBD572903,0xBC0F3C75,0x3DDCD9F0,0x3F74105A,0xBD56EA5B,
+ 0xBC0EC99C,0x3DDC5C9A,0x3F741A4D,0xBD56AB99,0xBC0E56E8,0x3DDBDF5B,0x3F74243C,0xBD566CBE,
+ 0xBC0DE458,0x3DDB6231,0x3F742E28,0xBD562DCA,0xBC0D71EE,0x3DDAE51D,0x3F743810,0xBD55EEBD,
+ 0xBC0CFFA8,0x3DDA681F,0x3F7441F4,0xBD55AF96,0xBC0C8D86,0x3DD9EB36,0x3F744BD5,0xBD557056,
+ 0xBC0C1B8A,0x3DD96E64,0x3F7455B2,0xBD5530FE,0xBC0BA9B2,0x3DD8F1A7,0x3F745F8B,0xBD54F18B,
+ 0xBC0B3800,0x3DD87500,0x3F746960,0xBD54B200,0xBC0AC673,0x3DD7F86F,0x3F747332,0xBD54725B,
+ 0xBC0A550A,0x3DD77BF4,0x3F747D00,0xBD54329D,0xBC09E3C7,0x3DD6FF8F,0x3F7486CA,0xBD53F2C6,
+ 0xBC0972A8,0x3DD6833F,0x3F749090,0xBD53B2D6,0xBC0901AF,0x3DD60706,0x3F749A53,0xBD5372CC,
+ 0xBC0890DC,0x3DD58AE2,0x3F74A412,0xBD5332A9,0xBC08202D,0x3DD50ED5,0x3F74ADCD,0xBD52F26D,
+ 0xBC07AFA4,0x3DD492DE,0x3F74B784,0xBD52B217,0xBC073F40,0x3DD416FC,0x3F74C138,0xBD5271A8,
+ 0xBC06CF02,0x3DD39B31,0x3F74CAE8,0xBD523120,0xBC065EE9,0x3DD31F7B,0x3F74D494,0xBD51F07E,
+ 0xBC05EEF6,0x3DD2A3DC,0x3F74DE3C,0xBD51AFC3,0xBC057F28,0x3DD22853,0x3F74E7E1,0xBD516EEE,
+ 0xBC050F7F,0x3DD1ACE0,0x3F74F182,0xBD512E00,0xBC049FFD,0x3DD13183,0x3F74FB1F,0xBD50ECF9,
+ 0xBC0430A0,0x3DD0B63C,0x3F7504B8,0xBD50ABD8,0xBC03C169,0x3DD03B0B,0x3F750E4E,0xBD506A9E,
+ 0xBC035258,0x3DCFBFF1,0x3F7517E0,0xBD50294A,0xBC02E36C,0x3DCF44ED,0x3F75216E,0xBD4FE7DD,
+ 0xBC0274A6,0x3DCEC9FE,0x3F752AF8,0xBD4FA656,0xBC020607,0x3DCE4F27,0x3F75347F,0xBD4F64B6,
+ 0xBC01978D,0x3DCDD465,0x3F753E01,0xBD4F22FD,0xBC01293A,0x3DCD59BA,0x3F754780,0xBD4EE12A,
+ 0xBC00BB0C,0x3DCCDF24,0x3F7550FB,0xBD4E9F3D,0xBC004D05,0x3DCC64A6,0x3F755A73,0xBD4E5D37,
+ 0xBBFFBE47,0x3DCBEA3D,0x3F7563E6,0xBD4E1B17,0xBBFEE2D1,0x3DCB6FEB,0x3F756D56,0xBD4DD8DE,
+ 0xBBFE07A7,0x3DCAF5AF,0x3F7576C2,0xBD4D968B,0xBBFD2CCA,0x3DCA7B8A,0x3F75802A,0xBD4D541F,
+ 0xBBFC523A,0x3DCA017B,0x3F75898F,0xBD4D1199,0xBBFB77F6,0x3DC98782,0x3F7592EF,0xBD4CCEF9,
+ 0xBBFA9E00,0x3DC90DA0,0x3F759C4C,0xBD4C8C40,0xBBF9C457,0x3DC893D4,0x3F75A5A5,0xBD4C496D,
+ 0xBBF8EAFA,0x3DC81A1F,0x3F75AEFA,0xBD4C0681,0xBBF811EB,0x3DC7A080,0x3F75B84B,0xBD4BC37B,
+ 0xBBF73929,0x3DC726F8,0x3F75C199,0xBD4B805B,0xBBF660B4,0x3DC6AD86,0x3F75CAE3,0xBD4B3D21,
+ 0xBBF5888D,0x3DC6342B,0x3F75D429,0xBD4AF9CE,0xBBF4B0B4,0x3DC5BAE6,0x3F75DD6B,0xBD4AB662,
+ 0xBBF3D928,0x3DC541B8,0x3F75E6A9,0xBD4A72DB,0xBBF301EA,0x3DC4C8A0,0x3F75EFE4,0xBD4A2F3B,
+ 0xBBF22AFA,0x3DC44F9F,0x3F75F91A,0xBD49EB81,0xBBF15457,0x3DC3D6B4,0x3F76024D,0xBD49A7AD,
+ 0xBBF07E03,0x3DC35DE1,0x3F760B7C,0xBD4963C0,0xBBEFA7FD,0x3DC2E523,0x3F7614A7,0xBD491FB8,
+ 0xBBEED245,0x3DC26C7D,0x3F761DCE,0xBD48DB97,0xBBEDFCDB,0x3DC1F3ED,0x3F7626F2,0xBD48975D,
+ 0xBBED27C0,0x3DC17B74,0x3F763012,0xBD485308,0xBBEC52F3,0x3DC10312,0x3F76392D,0xBD480E9A,
+ 0xBBEB7E75,0x3DC08AC6,0x3F764245,0xBD47CA11,0xBBEAAA46,0x3DC01291,0x3F764B59,0xBD47856F,
+ 0xBBE9D665,0x3DBF9A73,0x3F76546A,0xBD4740B3,0xBBE902D3,0x3DBF226C,0x3F765D76,0xBD46FBDE,
+ 0xBBE82F90,0x3DBEAA7B,0x3F76667F,0xBD46B6EE,0xBBE75C9D,0x3DBE32A1,0x3F766F83,0xBD4671E4,
+ 0xBBE689F8,0x3DBDBADE,0x3F767884,0xBD462CC1,0xBBE5B7A3,0x3DBD4332,0x3F768181,0xBD45E784,
+ 0xBBE4E59D,0x3DBCCB9D,0x3F768A7A,0xBD45A22C,0xBBE413E6,0x3DBC541F,0x3F769370,0xBD455CBB,
+ 0xBBE3427F,0x3DBBDCB8,0x3F769C61,0xBD451730,0xBBE27168,0x3DBB6567,0x3F76A54F,0xBD44D18B,
+ 0xBBE1A0A0,0x3DBAEE2E,0x3F76AE38,0xBD448BCC,0xBBE0D028,0x3DBA770B,0x3F76B71E,0xBD4445F3,
+ 0xBBE00000,0x3DBA0000,0x3F76C000,0xBD440000,0xBBDF3028,0x3DB9890C,0x3F76C8DE,0xBD43B9F3,
+ 0xBBDE60A0,0x3DB9122E,0x3F76D1B8,0xBD4373CC,0xBBDD9168,0x3DB89B68,0x3F76DA8F,0xBD432D8B,
+ 0xBBDCC281,0x3DB824B8,0x3F76E361,0xBD42E730,0xBBDBF3EA,0x3DB7AE20,0x3F76EC30,0xBD42A0BB,
+ 0xBBDB25A3,0x3DB7379F,0x3F76F4FA,0xBD425A2C,0xBBDA57AD,0x3DB6C135,0x3F76FDC1,0xBD421382,
+ 0xBBD98A08,0x3DB64AE2,0x3F770684,0xBD41CCBF,0xBBD8BCB3,0x3DB5D4A6,0x3F770F43,0xBD4185E2,
+ 0xBBD7EFB0,0x3DB55E81,0x3F7717FE,0xBD413EEA,0xBBD722FD,0x3DB4E873,0x3F7720B5,0xBD40F7D8,
+ 0xBBD6569B,0x3DB4727D,0x3F772968,0xBD40B0AD,0xBBD58A8A,0x3DB3FC9E,0x3F773218,0xBD406967,
+ 0xBBD4BECB,0x3DB386D6,0x3F773AC3,0xBD402207,0xBBD3F35D,0x3DB31125,0x3F77436B,0xBD3FDA8C,
+ 0xBBD32840,0x3DB29B8C,0x3F774C0E,0xBD3F92F8,0xBBD25D75,0x3DB2260A,0x3F7754AE,0xBD3F4B49,
+ 0xBBD192FB,0x3DB1B09F,0x3F775D4A,0xBD3F0381,0xBBD0C8D3,0x3DB13B4C,0x3F7765E2,0xBD3EBB9E,
+ 0xBBCFFEFD,0x3DB0C60F,0x3F776E76,0xBD3E73A0,0xBBCF3579,0x3DB050EB,0x3F777706,0xBD3E2B89,
+ 0xBBCE6C46,0x3DAFDBDD,0x3F777F92,0xBD3DE357,0xBBCDA366,0x3DAF66E7,0x3F77881B,0xBD3D9B0B,
+ 0xBBCCDAD8,0x3DAEF208,0x3F77909F,0xBD3D52A5,0xBBCC129C,0x3DAE7D41,0x3F77991F,0xBD3D0A24,
+ 0xBBCB4AB3,0x3DAE0891,0x3F77A19C,0xBD3CC18A,0xBBCA831C,0x3DAD93F9,0x3F77AA14,0xBD3C78D5,
+ 0xBBC9BBD7,0x3DAD1F78,0x3F77B289,0xBD3C3005,0xBBC8F4E5,0x3DACAB0F,0x3F77BAFA,0xBD3BE71B,
+ 0xBBC82E46,0x3DAC36BD,0x3F77C366,0xBD3B9E17,0xBBC767F9,0x3DABC283,0x3F77CBCF,0xBD3B54F9,
+ 0xBBC6A200,0x3DAB4E60,0x3F77D434,0xBD3B0BC0,0xBBC5DC5A,0x3DAADA55,0x3F77DC95,0xBD3AC26D,
+ 0xBBC51706,0x3DAA6661,0x3F77E4F2,0xBD3A78FF,0xBBC45206,0x3DA9F285,0x3F77ED4B,0xBD3A2F77,
+ 0xBBC38D59,0x3DA97EC1,0x3F77F5A0,0xBD39E5D5,0xBBC2C8FF,0x3DA90B14,0x3F77FDF1,0xBD399C18,
+ 0xBBC204F9,0x3DA8977F,0x3F78063E,0xBD395241,0xBBC14147,0x3DA82401,0x3F780E87,0xBD39084F,
+ 0xBBC07DE8,0x3DA7B09C,0x3F7816CD,0xBD38BE43,0xBBBFBADD,0x3DA73D4D,0x3F781F0E,0xBD38741C,
+ 0xBBBEF826,0x3DA6CA17,0x3F78274B,0xBD3829DB,0xBBBE35C2,0x3DA656F8,0x3F782F84,0xBD37DF80,
+ 0xBBBD73B3,0x3DA5E3F2,0x3F7837BA,0xBD37950A,0xBBBCB1F8,0x3DA57102,0x3F783FEB,0xBD374A79,
+ 0xBBBBF091,0x3DA4FE2B,0x3F784819,0xBD36FFCE,0xBBBB2F7E,0x3DA48B6C,0x3F785042,0xBD36B508,
+ 0xBBBA6EC0,0x3DA418C4,0x3F785868,0xBD366A28,0xBBB9AE56,0x3DA3A634,0x3F786089,0xBD361F2D,
+ 0xBBB8EE41,0x3DA333BC,0x3F7868A6,0xBD35D418,0xBBB82E81,0x3DA2C15C,0x3F7870C0,0xBD3588E8,
+ 0xBBB76F15,0x3DA24F14,0x3F7878D6,0xBD353D9D,0xBBB6AFFE,0x3DA1DCE4,0x3F7880E7,0xBD34F238,
+ 0xBBB5F13C,0x3DA16ACB,0x3F7888F5,0xBD34A6B8,0xBBB532D0,0x3DA0F8CB,0x3F7890FE,0xBD345B1E,
+ 0xBBB474B8,0x3DA086E2,0x3F789904,0xBD340F69,0xBBB3B6F6,0x3DA01512,0x3F78A105,0xBD33C399,
+ 0xBBB2F989,0x3D9FA35A,0x3F78A903,0xBD3377AF,0xBBB23C71,0x3D9F31B9,0x3F78B0FC,0xBD332BAA,
+ 0xBBB17FAF,0x3D9EC031,0x3F78B8F2,0xBD32DF8A,0xBBB0C343,0x3D9E4EC0,0x3F78C0E3,0xBD329350,
+ 0xBBB0072C,0x3D9DDD68,0x3F78C8D1,0xBD3246FB,0xBBAF4B6B,0x3D9D6C28,0x3F78D0BA,0xBD31FA8B,
+ 0xBBAE9000,0x3D9CFB00,0x3F78D8A0,0xBD31AE00,0xBBADD4EB,0x3D9C89F0,0x3F78E081,0xBD31615B,
+ 0xBBAD1A2C,0x3D9C18F8,0x3F78E85F,0xBD31149A,0xBBAC5FC3,0x3D9BA819,0x3F78F038,0xBD30C7C0,
+ 0xBBABA5B1,0x3D9B3751,0x3F78F80E,0xBD307ACA,0xBBAAEBF5,0x3D9AC6A2,0x3F78FFDF,0xBD302DB9,
+ 0xBBAA328F,0x3D9A560B,0x3F7907AD,0xBD2FE08E,0xBBA97980,0x3D99E58C,0x3F790F76,0xBD2F9348,
+ 0xBBA8C0C8,0x3D997526,0x3F79173B,0xBD2F45E7,0xBBA80866,0x3D9904D7,0x3F791EFD,0xBD2EF86B,
+ 0xBBA7505C,0x3D9894A1,0x3F7926BA,0xBD2EAAD5,0xBBA698A8,0x3D982483,0x3F792E73,0xBD2E5D23,
+ 0xBBA5E14B,0x3D97B47E,0x3F793628,0xBD2E0F57,0xBBA52A45,0x3D974491,0x3F793DD9,0xBD2DC16F,
+ 0xBBA47397,0x3D96D4BC,0x3F794586,0xBD2D736D,0xBBA3BD40,0x3D966500,0x3F794D30,0xBD2D2550,
+ 0xBBA30740,0x3D95F55C,0x3F7954D4,0xBD2CD718,0xBBA25198,0x3D9585D0,0x3F795C75,0xBD2C88C5,
+ 0xBBA19C47,0x3D95165D,0x3F796412,0xBD2C3A57,0xBBA0E74E,0x3D94A703,0x3F796BAB,0xBD2BEBCE,
+ 0xBBA032AD,0x3D9437C0,0x3F797340,0xBD2B9D2A,0xBB9F7E64,0x3D93C897,0x3F797AD1,0xBD2B4E6C,
+ 0xBB9ECA72,0x3D935985,0x3F79825D,0xBD2AFF92,0xBB9E16D9,0x3D92EA8D,0x3F7989E6,0xBD2AB09D,
+ 0xBB9D6398,0x3D927BAC,0x3F79916A,0xBD2A618D,0xBB9CB0AF,0x3D920CE5,0x3F7998EB,0xBD2A1262,
+ 0xBB9BFE1F,0x3D919E36,0x3F79A067,0xBD29C31C,0xBB9B4BE7,0x3D912F9F,0x3F79A7E0,0xBD2973BB,
+ 0xBB9A9A07,0x3D90C121,0x3F79AF54,0xBD29243F,0xBB99E880,0x3D9052BC,0x3F79B6C4,0xBD28D4A8,
+ 0xBB993752,0x3D8FE46F,0x3F79BE30,0xBD2884F6,0xBB98867C,0x3D8F763B,0x3F79C598,0xBD283528,
+ 0xBB97D600,0x3D8F0820,0x3F79CCFC,0xBD27E540,0xBB9725DD,0x3D8E9A1D,0x3F79D45C,0xBD27953C,
+ 0xBB967612,0x3D8E2C33,0x3F79DBB8,0xBD27451E,0xBB95C6A1,0x3D8DBE62,0x3F79E30F,0xBD26F4E4,
+ 0xBB951789,0x3D8D50AA,0x3F79EA63,0xBD26A48F,0xBB9468CA,0x3D8CE30A,0x3F79F1B2,0xBD26541F,
+ 0xBB93BA65,0x3D8C7583,0x3F79F8FE,0xBD260393,0xBB930C5A,0x3D8C0815,0x3F7A0045,0xBD25B2ED,
+ 0xBB925EA8,0x3D8B9AC0,0x3F7A0788,0xBD25622B,0xBB91B150,0x3D8B2D83,0x3F7A0EC7,0xBD25114E,
+ 0xBB910452,0x3D8AC05F,0x3F7A1602,0xBD24C056,0xBB9057AD,0x3D8A5354,0x3F7A1D39,0xBD246F42,
+ 0xBB8FAB63,0x3D89E663,0x3F7A246C,0xBD241E14,0xBB8EFF73,0x3D89798A,0x3F7A2B9A,0xBD23CCCA,
+ 0xBB8E53DD,0x3D890CC9,0x3F7A32C5,0xBD237B64,0xBB8DA8A1,0x3D88A022,0x3F7A39EB,0xBD2329E4,
+ 0xBB8CFDC0,0x3D883394,0x3F7A410E,0xBD22D848,0xBB8C5339,0x3D87C71F,0x3F7A482C,0xBD228691,
+ 0xBB8BA90D,0x3D875AC2,0x3F7A4F46,0xBD2234BE,0xBB8AFF3C,0x3D86EE7F,0x3F7A565C,0xBD21E2D1,
+ 0xBB8A55C5,0x3D868255,0x3F7A5D6D,0xBD2190C7,0xBB89ACA9,0x3D861644,0x3F7A647B,0xBD213EA3,
+ 0xBB8903E8,0x3D85AA4C,0x3F7A6B85,0xBD20EC63,0xBB885B83,0x3D853E6C,0x3F7A728A,0xBD209A08,
+ 0xBB87B378,0x3D84D2A6,0x3F7A798B,0xBD204791,0xBB870BC9,0x3D8466FA,0x3F7A8088,0xBD1FF4FF,
+ 0xBB866475,0x3D83FB66,0x3F7A8781,0xBD1FA251,0xBB85BD7C,0x3D838FEB,0x3F7A8E76,0xBD1F4F88,
+ 0xBB8516DF,0x3D83248A,0x3F7A9567,0xBD1EFCA4,0xBB84709E,0x3D82B942,0x3F7A9C53,0xBD1EA9A4,
+ 0xBB83CAB8,0x3D824E12,0x3F7AA33C,0xBD1E5689,0xBB83252E,0x3D81E2FD,0x3F7AAA20,0xBD1E0352,
+ 0xBB828000,0x3D817800,0x3F7AB100,0xBD1DB000,0xBB81DB2E,0x3D810D1D,0x3F7AB7DC,0xBD1D5C92,
+ 0xBB8136B8,0x3D80A253,0x3F7ABEB4,0xBD1D0909,0xBB80929E,0x3D8037A2,0x3F7AC587,0xBD1CB564,
+ 0xBB7FDDC2,0x3D7F9A14,0x3F7ACC57,0xBD1C61A4,0xBB7E9700,0x3D7EC518,0x3F7AD322,0xBD1C0DC8,
+ 0xBB7D50F7,0x3D7DF04E,0x3F7AD9E9,0xBD1BB9D1,0xBB7C0BA7,0x3D7D1BB7,0x3F7AE0AC,0xBD1B65BE,
+ 0xBB7AC710,0x3D7C4753,0x3F7AE76B,0xBD1B118F,0xBB798333,0x3D7B7322,0x3F7AEE25,0xBD1ABD45,
+ 0xBB78400F,0x3D7A9F23,0x3F7AF4DC,0xBD1A68DF,0xBB76FDA6,0x3D79CB57,0x3F7AFB8E,0xBD1A145E,
+ 0xBB75BBF6,0x3D78F7BE,0x3F7B023C,0xBD19BFC1,0xBB747B01,0x3D782458,0x3F7B08E6,0xBD196B08,
+ 0xBB733AC6,0x3D775125,0x3F7B0F8C,0xBD191634,0xBB71FB45,0x3D767E25,0x3F7B162D,0xBD18C144,
+ 0xBB70BC80,0x3D75AB58,0x3F7B1CCA,0xBD186C38,0xBB6F7E76,0x3D74D8BE,0x3F7B2364,0xBD181711,
+ 0xBB6E4126,0x3D740657,0x3F7B29F9,0xBD17C1CE,0xBB6D0492,0x3D733423,0x3F7B3089,0xBD176C6F,
+ 0xBB6BC8BA,0x3D726223,0x3F7B3716,0xBD1716F4,0xBB6A8D9D,0x3D719056,0x3F7B3D9E,0xBD16C15E,
+ 0xBB69533D,0x3D70BEBB,0x3F7B4422,0xBD166BAC,0xBB681998,0x3D6FED55,0x3F7B4AA2,0xBD1615DE,
+ 0xBB66E0B0,0x3D6F1C21,0x3F7B511E,0xBD15BFF5,0xBB65A884,0x3D6E4B21,0x3F7B5795,0xBD1569F0,
+ 0xBB647115,0x3D6D7A54,0x3F7B5E09,0xBD1513CF,0xBB633A63,0x3D6CA9BB,0x3F7B6478,0xBD14BD92,
+ 0xBB62046E,0x3D6BD955,0x3F7B6AE3,0xBD146739,0xBB60CF36,0x3D6B0922,0x3F7B7149,0xBD1410C5,
+ 0xBB5F9ABC,0x3D6A3923,0x3F7B77AC,0xBD13BA34,0xBB5E66FF,0x3D696958,0x3F7B7E0A,0xBD136388,
+ 0xBB5D3400,0x3D6899C0,0x3F7B8464,0xBD130CC0,0xBB5C01BF,0x3D67CA5C,0x3F7B8ABA,0xBD12B5DC,
+ 0xBB5AD03C,0x3D66FB2B,0x3F7B910B,0xBD125EDC,0xBB599F78,0x3D662C2E,0x3F7B9759,0xBD1207C1,
+ 0xBB586F72,0x3D655D65,0x3F7B9DA2,0xBD11B089,0xBB57402B,0x3D648ED0,0x3F7BA3E6,0xBD115935,
+ 0xBB5611A3,0x3D63C06F,0x3F7BAA27,0xBD1101C6,0xBB54E3DA,0x3D62F241,0x3F7BB063,0xBD10AA3A,
+ 0xBB53B6D0,0x3D622447,0x3F7BB69C,0xBD105293,0xBB528A86,0x3D615681,0x3F7BBCCF,0xBD0FFAD0,
+ 0xBB515EFB,0x3D6088EF,0x3F7BC2FF,0xBD0FA2F0,0xBB503431,0x3D5FBB91,0x3F7BC92A,0xBD0F4AF5,
+ 0xBB4F0A26,0x3D5EEE67,0x3F7BCF52,0xBD0EF2DE,0xBB4DE0DC,0x3D5E2171,0x3F7BD574,0xBD0E9AAA,
+ 0xBB4CB852,0x3D5D54AF,0x3F7BDB93,0xBD0E425B,0xBB4B9088,0x3D5C8822,0x3F7BE1AD,0xBD0DE9EF,
+ 0xBB4A6980,0x3D5BBBC8,0x3F7BE7C4,0xBD0D9168,0xBB494339,0x3D5AEFA3,0x3F7BEDD5,0xBD0D38C4,
+ 0xBB481DB2,0x3D5A23B1,0x3F7BF3E3,0xBD0CE005,0xBB46F8ED,0x3D5957F5,0x3F7BF9EC,0xBD0C8729,
+ 0xBB45D4EA,0x3D588C6C,0x3F7BFFF1,0xBD0C2E31,0xBB44B1A8,0x3D57C118,0x3F7C05F2,0xBD0BD51D,
+ 0xBB438F29,0x3D56F5F8,0x3F7C0BEF,0xBD0B7BED,0xBB426D6B,0x3D562B0C,0x3F7C11E7,0xBD0B22A1,
+ 0xBB414C70,0x3D556055,0x3F7C17DB,0xBD0AC939,0xBB402C37,0x3D5495D2,0x3F7C1DCA,0xBD0A6FB5,
+ 0xBB3F0CC1,0x3D53CB84,0x3F7C23B6,0xBD0A1614,0xBB3DEE0E,0x3D53016B,0x3F7C299D,0xBD09BC57,
+ 0xBB3CD01E,0x3D523786,0x3F7C2F80,0xBD09627E,0xBB3BB2F1,0x3D516DD5,0x3F7C355E,0xBD090889,
+ 0xBB3A9688,0x3D50A459,0x3F7C3B38,0xBD08AE78,0xBB397AE2,0x3D4FDB12,0x3F7C410E,0xBD08544A,
+ 0xBB386000,0x3D4F1200,0x3F7C46E0,0xBD07FA00,0xBB3745E2,0x3D4E4922,0x3F7C4CAD,0xBD079F9A,
+ 0xBB362C88,0x3D4D807A,0x3F7C5276,0xBD074517,0xBB3513F3,0x3D4CB806,0x3F7C583B,0xBD06EA79,
+ 0xBB33FC22,0x3D4BEFC6,0x3F7C5DFC,0xBD068FBE,0xBB32E516,0x3D4B27BC,0x3F7C63B8,0xBD0634E7,
+ 0xBB31CECF,0x3D4A5FE7,0x3F7C6970,0xBD05D9F3,0xBB30B94D,0x3D499846,0x3F7C6F23,0xBD057EE3,
+ 0xBB2FA490,0x3D48D0DB,0x3F7C74D2,0xBD0523B7,0xBB2E9099,0x3D4809A5,0x3F7C7A7D,0xBD04C86E,
+ 0xBB2D7D67,0x3D4742A3,0x3F7C8024,0xBD046D0A,0xBB2C6AFC,0x3D467BD7,0x3F7C85C6,0xBD041188,
+ 0xBB2B5956,0x3D45B540,0x3F7C8B64,0xBD03B5EB,0xBB2A4877,0x3D44EEDE,0x3F7C90FE,0xBD035A31,
+ 0xBB29385E,0x3D4428B2,0x3F7C9693,0xBD02FE5A,0xBB28290B,0x3D4362BA,0x3F7C9C24,0xBD02A267,
+ 0xBB271A80,0x3D429CF8,0x3F7CA1B0,0xBD024658,0xBB260CBC,0x3D41D76B,0x3F7CA739,0xBD01EA2C,
+ 0xBB24FFBE,0x3D411214,0x3F7CACBD,0xBD018DE4,0xBB23F388,0x3D404CF2,0x3F7CB23C,0xBD01317F,
+ 0xBB22E81A,0x3D3F8805,0x3F7CB7B8,0xBD00D4FE,0xBB21DD73,0x3D3EC34E,0x3F7CBD2F,0xBD007861,
+ 0xBB20D395,0x3D3DFECC,0x3F7CC2A1,0xBD001BA7,0xBB1FCA7E,0x3D3D3A80,0x3F7CC810,0xBCFF7DA0,
+ 0xBB1EC230,0x3D3C7669,0x3F7CCD79,0xBCFEC3BA,0xBB1DBAAA,0x3D3BB288,0x3F7CD2DF,0xBCFE099B,
+ 0xBB1CB3ED,0x3D3AEEDC,0x3F7CD840,0xBCFD4F42,0xBB1BADF9,0x3D3A2B67,0x3F7CDD9D,0xBCFC94B1,
+ 0xBB1AA8CE,0x3D396827,0x3F7CE2F6,0xBCFBD9E6,0xBB19A46C,0x3D38A51C,0x3F7CE84A,0xBCFB1EE2,
+ 0xBB18A0D4,0x3D37E248,0x3F7CED9A,0xBCFA63A6,0xBB179E05,0x3D371FA9,0x3F7CF2E5,0xBCF9A82F,
+ 0xBB169C00,0x3D365D40,0x3F7CF82C,0xBCF8EC80,0xBB159AC5,0x3D359B0D,0x3F7CFD6F,0xBCF83097,
+ 0xBB149A54,0x3D34D910,0x3F7D02AD,0xBCF77475,0xBB139AAE,0x3D341749,0x3F7D07E7,0xBCF6B81A,
+ 0xBB129BD2,0x3D3355B7,0x3F7D0D1D,0xBCF5FB86,0xBB119DC1,0x3D32945C,0x3F7D124E,0xBCF53EB8,
+ 0xBB10A07B,0x3D31D337,0x3F7D177B,0xBCF481B1,0xBB0FA400,0x3D311248,0x3F7D1CA3,0xBCF3C470,
+ 0xBB0EA850,0x3D30518F,0x3F7D21C7,0xBCF306F6,0xBB0DAD6C,0x3D2F910C,0x3F7D26E7,0xBCF24943,
+ 0xBB0CB353,0x3D2ED0C0,0x3F7D2C02,0xBCF18B56,0xBB0BBA07,0x3D2E10A9,0x3F7D3119,0xBCF0CD2F,
+ 0xBB0AC186,0x3D2D50C9,0x3F7D362B,0xBCF00ECF,0xBB09C9D2,0x3D2C911F,0x3F7D3B3A,0xBCEF5036,
+ 0xBB08D2EA,0x3D2BD1AC,0x3F7D4043,0xBCEE9163,0xBB07DCCE,0x3D2B126F,0x3F7D4549,0xBCEDD256,
+ 0xBB06E780,0x3D2A5368,0x3F7D4A4A,0xBCED1310,0xBB05F2FF,0x3D299498,0x3F7D4F46,0xBCEC5390,
+ 0xBB04FF4A,0x3D28D5FE,0x3F7D543E,0xBCEB93D7,0xBB040C63,0x3D28179B,0x3F7D5932,0xBCEAD3E4,
+ 0xBB031A4A,0x3D27596E,0x3F7D5E21,0xBCEA13B7,0xBB0228FE,0x3D269B78,0x3F7D630C,0xBCE95350,
+ 0xBB013881,0x3D25DDB8,0x3F7D67F2,0xBCE892B0,0xBB0048D1,0x3D25202F,0x3F7D6CD5,0xBCE7D1D6,
+ 0xBAFEB3E0,0x3D2462DD,0x3F7D71B2,0xBCE710C2,0xBAFCD7BB,0x3D23A5C1,0x3F7D768B,0xBCE64F74,
+ 0xBAFAFD32,0x3D22E8DD,0x3F7D7B60,0xBCE58DED,0xBAF92448,0x3D222C2F,0x3F7D8031,0xBCE4CC2B,
+ 0xBAF74CFC,0x3D216FB8,0x3F7D84FD,0xBCE40A30,0xBAF5774E,0x3D20B377,0x3F7D89C4,0xBCE347FB,
+ 0xBAF3A340,0x3D1FF76E,0x3F7D8E87,0xBCE2858C,0xBAF1D0D0,0x3D1F3B9B,0x3F7D9346,0xBCE1C2E3,
+ 0xBAF00000,0x3D1E8000,0x3F7D9800,0xBCE10000,0xBAEE30D0,0x3D1DC49C,0x3F7D9CB6,0xBCE03CE3,
+ 0xBAEC6340,0x3D1D096E,0x3F7DA167,0xBCDF798C,0xBAEA9752,0x3D1C4E78,0x3F7DA614,0xBCDEB5FB,
+ 0xBAE8CD04,0x3D1B93B8,0x3F7DAABC,0xBCDDF230,0xBAE70458,0x3D1AD930,0x3F7DAF60,0xBCDD2E2B,
+ 0xBAE53D4E,0x3D1A1EDF,0x3F7DB400,0xBCDC69EB,0xBAE377E5,0x3D1964C6,0x3F7DB89B,0xBCDBA572,
+ 0xBAE1B420,0x3D18AAE3,0x3F7DBD32,0xBCDAE0BE,0xBADFF1FE,0x3D17F138,0x3F7DC1C4,0xBCDA1BD0,
+ 0xBADE317E,0x3D1737C4,0x3F7DC652,0xBCD956A8,0xBADC72A3,0x3D167E87,0x3F7DCADB,0xBCD89146,
+ 0xBADAB56C,0x3D15C582,0x3F7DCF60,0xBCD7CBA9,0xBAD8F9D9,0x3D150CB4,0x3F7DD3E0,0xBCD705D2,
+ 0xBAD73FEC,0x3D14541E,0x3F7DD85C,0xBCD63FC1,0xBAD587A3,0x3D139BBF,0x3F7DDCD4,0xBCD57976,
+ 0xBAD3D100,0x3D12E398,0x3F7DE146,0xBCD4B2F0,0xBAD21C03,0x3D122BA8,0x3F7DE5B5,0xBCD3EC30,
+ 0xBAD068AC,0x3D1173F0,0x3F7DEA1F,0xBCD32535,0xBACEB6FD,0x3D10BC70,0x3F7DEE85,0xBCD25E00,
+ 0xBACD06F4,0x3D100527,0x3F7DF2E6,0xBCD19691,0xBACB5893,0x3D0F4E16,0x3F7DF742,0xBCD0CEE7,
+ 0xBAC9ABDA,0x3D0E973C,0x3F7DFB9A,0xBCD00702,0xBAC800C8,0x3D0DE09B,0x3F7DFFEE,0xBCCF3EE3,
+ 0xBAC65760,0x3D0D2A31,0x3F7E043D,0xBCCE768A,0xBAC4AFA1,0x3D0C73FF,0x3F7E0888,0xBCCDADF6,
+ 0xBAC3098A,0x3D0BBE05,0x3F7E0CCE,0xBCCCE527,0xBAC1651E,0x3D0B0843,0x3F7E110F,0xBCCC1C1E,
+ 0xBABFC25C,0x3D0A52B9,0x3F7E154C,0xBCCB52DA,0xBABE2144,0x3D099D66,0x3F7E1985,0xBCCA895C,
+ 0xBABC81D8,0x3D08E84C,0x3F7E1DB9,0xBCC9BFA3,0xBABAE416,0x3D08336A,0x3F7E21E9,0xBCC8F5AF,
+ 0xBAB94800,0x3D077EC0,0x3F7E2614,0xBCC82B80,0xBAB7AD96,0x3D06CA4E,0x3F7E2A3B,0xBCC76117,
+ 0xBAB614D8,0x3D061614,0x3F7E2E5D,0xBCC69672,0xBAB47DC8,0x3D056213,0x3F7E327A,0xBCC5CB94,
+ 0xBAB2E864,0x3D04AE49,0x3F7E3693,0xBCC5007A,0xBAB154AE,0x3D03FAB8,0x3F7E3AA8,0xBCC43525,
+ 0xBAAFC2A6,0x3D034760,0x3F7E3EB8,0xBCC36996,0xBAAE324B,0x3D02943F,0x3F7E42C4,0xBCC29DCB,
+ 0xBAACA3A0,0x3D01E157,0x3F7E46CB,0xBCC1D1C6,0xBAAB16A4,0x3D012EA7,0x3F7E4ACD,0xBCC10586,
+ 0xBAA98B56,0x3D007C30,0x3F7E4ECB,0xBCC0390B,0xBAA801B9,0x3CFF93E3,0x3F7E52C4,0xBCBF6C54,
+ 0xBAA679CC,0x3CFE2FD6,0x3F7E56B9,0xBCBE9F63,0xBAA4F38F,0x3CFCCC3B,0x3F7E5AAA,0xBCBDD237,
+ 0xBAA36F04,0x3CFB6911,0x3F7E5E95,0xBCBD04D0,0xBAA1EC29,0x3CFA0658,0x3F7E627D,0xBCBC372D,
+ 0xBAA06B00,0x3CF8A410,0x3F7E6660,0xBCBB6950,0xBA9EEB89,0x3CF7423A,0x3F7E6A3E,0xBCBA9B37,
+ 0xBA9D6DC4,0x3CF5E0D5,0x3F7E6E17,0xBCB9CCE4,0xBA9BF1B3,0x3CF47FE2,0x3F7E71EC,0xBCB8FE55,
+ 0xBA9A7754,0x3CF31F60,0x3F7E75BD,0xBCB82F8B,0xBA98FEA9,0x3CF1BF50,0x3F7E7989,0xBCB76085,
+ 0xBA9787B2,0x3CF05FB1,0x3F7E7D50,0xBCB69145,0xBA96126E,0x3CEF0085,0x3F7E8113,0xBCB5C1C9,
+ 0xBA949EE0,0x3CEDA1CA,0x3F7E84D2,0xBCB4F212,0xBA932D07,0x3CEC4381,0x3F7E888B,0xBCB42220,
+ 0xBA91BCE2,0x3CEAE5AA,0x3F7E8C41,0xBCB351F2,0xBA904E74,0x3CE98846,0x3F7E8FF1,0xBCB28189,
+ 0xBA8EE1BC,0x3CE82B53,0x3F7E939D,0xBCB1B0E4,0xBA8D76BA,0x3CE6CED3,0x3F7E9745,0xBCB0E004,
+ 0xBA8C0D70,0x3CE572C5,0x3F7E9AE8,0xBCB00EE9,0xBA8AA5DC,0x3CE41729,0x3F7E9E86,0xBCAF3D92,
+ 0xBA894000,0x3CE2BC00,0x3F7EA220,0xBCAE6C00,0xBA87DBDC,0x3CE16149,0x3F7EA5B5,0xBCAD9A32,
+ 0xBA867970,0x3CE00705,0x3F7EA946,0xBCACC829,0xBA8518BE,0x3CDEAD34,0x3F7EACD2,0xBCABF5E4,
+ 0xBA83B9C4,0x3CDD53D5,0x3F7EB059,0xBCAB2364,0xBA825C84,0x3CDBFAE9,0x3F7EB3DC,0xBCAA50A8,
+ 0xBA8100FE,0x3CDAA270,0x3F7EB75B,0xBCA97DB0,0xBA7F4E63,0x3CD94A69,0x3F7EBAD4,0xBCA8AA7D,
+ 0xBA7C9E40,0x3CD7F2D6,0x3F7EBE49,0xBCA7D70E,0xBA79F193,0x3CD69BB6,0x3F7EC1BA,0xBCA70363,
+ 0xBA77485D,0x3CD54509,0x3F7EC526,0xBCA62F7D,0xBA74A29E,0x3CD3EECF,0x3F7EC88D,0xBCA55B5B,
+ 0xBA720058,0x3CD29908,0x3F7ECBF0,0xBCA486FD,0xBA6F618B,0x3CD143B5,0x3F7ECF4E,0xBCA3B264,
+ 0xBA6CC637,0x3CCFEED5,0x3F7ED2A7,0xBCA2DD8E,0xBA6A2E5E,0x3CCE9A69,0x3F7ED5FC,0xBCA2087D,
+ 0xBA679A00,0x3CCD4670,0x3F7ED94C,0xBCA13330,0xBA65091E,0x3CCBF2EB,0x3F7EDC98,0xBCA05DA7,
+ 0xBA627BB9,0x3CCA9FD9,0x3F7EDFDF,0xBC9F87E2,0xBA5FF1D1,0x3CC94D3C,0x3F7EE322,0xBC9EB1E1,
+ 0xBA5D6B68,0x3CC7FB12,0x3F7EE65F,0xBC9DDBA5,0xBA5AE87E,0x3CC6A95C,0x3F7EE999,0xBC9D052C,
+ 0xBA586913,0x3CC5581A,0x3F7EECCD,0xBC9C2E77,0xBA55ED29,0x3CC4074C,0x3F7EEFFD,0xBC9B5787,
+ 0xBA5374C0,0x3CC2B6F2,0x3F7EF328,0xBC9A805A,0xBA50FFD9,0x3CC1670C,0x3F7EF64F,0xBC99A8F1,
+ 0xBA4E8E75,0x3CC0179B,0x3F7EF971,0xBC98D14C,0xBA4C2094,0x3CBEC89E,0x3F7EFC8F,0xBC97F96B,
+ 0xBA49B638,0x3CBD7A15,0x3F7EFFA7,0xBC97214E,0xBA474F61,0x3CBC2C01,0x3F7F02BB,0xBC9648F5,
+ 0xBA44EC0F,0x3CBADE61,0x3F7F05CB,0xBC957060,0xBA428C44,0x3CB99136,0x3F7F08D6,0xBC94978E,
+ 0xBA403000,0x3CB84480,0x3F7F0BDC,0xBC93BE80,0xBA3DD744,0x3CB6F83E,0x3F7F0EDE,0xBC92E536,
+ 0xBA3B8211,0x3CB5AC72,0x3F7F11DA,0xBC920BAF,0xBA393067,0x3CB4611A,0x3F7F14D3,0xBC9131ED,
+ 0xBA36E248,0x3CB31637,0x3F7F17C6,0xBC9057EE,0xBA3497B4,0x3CB1CBC9,0x3F7F1AB5,0xBC8F7DB2,
+ 0xBA3250AB,0x3CB081D0,0x3F7F1D9F,0xBC8EA33B,0xBA300D2F,0x3CAF384C,0x3F7F2085,0xBC8DC887,
+ 0xBA2DCD40,0x3CADEF3E,0x3F7F2366,0xBC8CED96,0xBA2B90DF,0x3CACA6A5,0x3F7F2642,0xBC8C1269,
+ 0xBA29580D,0x3CAB5E81,0x3F7F291A,0xBC8B3700,0xBA2722CA,0x3CAA16D3,0x3F7F2BED,0xBC8A5B5A,
+ 0xBA24F118,0x3CA8CF9A,0x3F7F2EBB,0xBC897F77,0xBA22C2F7,0x3CA788D7,0x3F7F3185,0xBC88A358,
+ 0xBA209867,0x3CA6428A,0x3F7F344A,0xBC87C6FD,0xBA1E716A,0x3CA4FCB2,0x3F7F370A,0xBC86EA65,
+ 0xBA1C4E00,0x3CA3B750,0x3F7F39C6,0xBC860D90,0xBA1A2E2A,0x3CA27264,0x3F7F3C7C,0xBC85307F,
+ 0xBA1811E9,0x3CA12DEE,0x3F7F3F2F,0xBC845331,0xBA15F93D,0x3C9FE9EE,0x3F7F41DC,0xBC8375A6,
+ 0xBA13E428,0x3C9EA664,0x3F7F4485,0xBC8297DF,0xBA11D2AA,0x3C9D6350,0x3F7F4729,0xBC81B9DB,
+ 0xBA0FC4C3,0x3C9C20B2,0x3F7F49C8,0xBC80DB9A,0xBA0DBA75,0x3C9ADE8B,0x3F7F4C63,0xBC7FFA39,
+ 0xBA0BB3C0,0x3C999CDA,0x3F7F4EF9,0xBC7E3CC4,0xBA09B0A5,0x3C985B9F,0x3F7F518B,0xBC7C7ED6,
+ 0xBA07B125,0x3C971ADB,0x3F7F5417,0xBC7AC06E,0xBA05B540,0x3C95DA8E,0x3F7F569F,0xBC79018C,
+ 0xBA03BCF8,0x3C949AB7,0x3F7F5922,0xBC774230,0xBA01C84D,0x3C935B57,0x3F7F5BA1,0xBC75825B,
+ 0xB9FFAE7E,0x3C921C6E,0x3F7F5E1B,0xBC73C20C,0xB9FBD3A0,0x3C90DDFB,0x3F7F6090,0xBC720143,
+ 0xB9F80000,0x3C8FA000,0x3F7F6300,0xBC704000,0xB9F433A0,0x3C8E627C,0x3F7F656C,0xBC6E7E43,
+ 0xB9F06E82,0x3C8D256E,0x3F7F67D3,0xBC6CBC0C,0xB9ECB0A7,0x3C8BE8D8,0x3F7F6A35,0xBC6AF95B,
+ 0xB9E8FA10,0x3C8AACB9,0x3F7F6C92,0xBC693630,0xB9E54ABF,0x3C897111,0x3F7F6EEB,0xBC67728A,
+ 0xB9E1A2B6,0x3C8835E1,0x3F7F713F,0xBC65AE6A,0xB9DE01F6,0x3C86FB28,0x3F7F738E,0xBC63E9D0,
+ 0xB9DA6880,0x3C85C0E6,0x3F7F75D9,0xBC6224BC,0xB9D6D656,0x3C84871C,0x3F7F781F,0xBC605F2D,
+ 0xB9D34B7A,0x3C834DCA,0x3F7F7A60,0xBC5E9924,0xB9CFC7ED,0x3C8214EF,0x3F7F7C9C,0xBC5CD2A1,
+ 0xB9CC4BB0,0x3C80DC8C,0x3F7F7ED4,0xBC5B0BA2,0xB9C8D6C5,0x3C7F4942,0x3F7F8106,0xBC59442A,
+ 0xB9C5692E,0x3C7CDA5C,0x3F7F8335,0xBC577C37,0xB9C202EC,0x3C7A6C66,0x3F7F855E,0xBC55B3C9,
+ 0xB9BEA400,0x3C77FF60,0x3F7F8782,0xBC53EAE0,0xB9BB4C6C,0x3C75934A,0x3F7F89A2,0xBC52217D,
+ 0xB9B7FC32,0x3C732825,0x3F7F8BBD,0xBC50579E,0xB9B4B353,0x3C70BDF0,0x3F7F8DD4,0xBC4E8D45,
+ 0xB9B171D0,0x3C6E54AC,0x3F7F8FE5,0xBC4CC272,0xB9AE37AB,0x3C6BEC58,0x3F7F91F2,0xBC4AF723,
+ 0xB9AB04E6,0x3C6984F6,0x3F7F93FA,0xBC492B59,0xB9A7D982,0x3C671E84,0x3F7F95FD,0xBC475F14,
+ 0xB9A4B580,0x3C64B904,0x3F7F97FC,0xBC459254,0xB9A198E2,0x3C625475,0x3F7F99F6,0xBC43C519,
+ 0xB99E83AA,0x3C5FF0D8,0x3F7F9BEB,0xBC41F763,0xB99B75D9,0x3C5D8E2C,0x3F7F9DDB,0xBC402931,
+ 0xB9986F70,0x3C5B2C72,0x3F7F9FC6,0xBC3E5A84,0xB9957071,0x3C58CBAB,0x3F7FA1AD,0xBC3C8B5C,
+ 0xB99278DE,0x3C566BD5,0x3F7FA38F,0xBC3ABBB9,0xB98F88B8,0x3C540CF1,0x3F7FA56C,0xBC38EB9A,
+ 0xB98CA000,0x3C51AF00,0x3F7FA744,0xBC371B00,0xB989BEB8,0x3C4F5201,0x3F7FA917,0xBC3549EA,
+ 0xB986E4E2,0x3C4CF5F5,0x3F7FAAE6,0xBC337859,0xB984127F,0x3C4A9ADC,0x3F7FACB0,0xBC31A64C,
+ 0xB9814790,0x3C4840B6,0x3F7FAE75,0xBC2FD3C4,0xB97D082E,0x3C45E782,0x3F7FB035,0xBC2E00BF,
+ 0xB977902C,0x3C438F42,0x3F7FB1F1,0xBC2C2D3F,0xB972271C,0x3C4137F5,0x3F7FB3A8,0xBC2A5944,
+ 0xB96CCD00,0x3C3EE19C,0x3F7FB55A,0xBC2884CC,0xB96781DC,0x3C3C8C36,0x3F7FB707,0xBC26AFD9,
+ 0xB96245B4,0x3C3A37C4,0x3F7FB8AF,0xBC24DA69,0xB95D188A,0x3C37E446,0x3F7FBA52,0xBC23047E,
+ 0xB957FA60,0x3C3591BC,0x3F7FBBF1,0xBC212E16,0xB952EB3A,0x3C334027,0x3F7FBD8B,0xBC1F5733,
+ 0xB94DEB1C,0x3C30EF85,0x3F7FBF20,0xBC1D7FD4,0xB948FA08,0x3C2E9FD8,0x3F7FC0B0,0xBC1BA7F8,
+ 0xB9441800,0x3C2C5120,0x3F7FC23C,0xBC19CFA0,0xB93F4508,0x3C2A035C,0x3F7FC3C2,0xBC17F6CC,
+ 0xB93A8124,0x3C27B68E,0x3F7FC544,0xBC161D7B,0xB935CC56,0x3C256AB4,0x3F7FC6C1,0xBC1443AF,
+ 0xB93126A0,0x3C231FD0,0x3F7FC839,0xBC126966,0xB92C9006,0x3C20D5E0,0x3F7FC9AC,0xBC108EA0,
+ 0xB928088C,0x3C1E8CE7,0x3F7FCB1A,0xBC0EB35E,0xB9239034,0x3C1C44E2,0x3F7FCC84,0xBC0CD79F,
+ 0xB91F2700,0x3C19FDD4,0x3F7FCDE9,0xBC0AFB64,0xB91ACCF4,0x3C17B7BB,0x3F7FCF49,0xBC091EAC,
+ 0xB9168214,0x3C157299,0x3F7FD0A4,0xBC074178,0xB9124662,0x3C132E6D,0x3F7FD1FA,0xBC0563C6,
+ 0xB90E19E0,0x3C10EB36,0x3F7FD34B,0xBC038598,0xB909FC92,0x3C0EA8F7,0x3F7FD498,0xBC01A6EE,
+ 0xB905EE7C,0x3C0C67AE,0x3F7FD5DF,0xBBFF8F8C,0xB901EFA0,0x3C0A275B,0x3F7FD722,0xBBFBD043,
+ 0xB8FC0000,0x3C07E800,0x3F7FD860,0xBBF81000,0xB8F43F41,0x3C05A99C,0x3F7FD999,0xBBF44EC3,
+ 0xB8EC9D08,0x3C036C2E,0x3F7FDACD,0xBBF08C8C,0xB8E5195B,0x3C012FB8,0x3F7FDBFD,0xBBECC95B,
+ 0xB8DDB440,0x3BFDE873,0x3F7FDD27,0xBBE9052F,0xB8D66DBD,0x3BF97365,0x3F7FDE4D,0xBBE54009,
+ 0xB8CF45D8,0x3BF50046,0x3F7FDF6D,0xBBE179E9,0xB8C83C97,0x3BF08F17,0x3F7FE089,0xBBDDB2CE,
+ 0xB8C15200,0x3BEC1FD8,0x3F7FE1A0,0xBBD9EAB8,0xB8BA8619,0x3BE7B289,0x3F7FE2B2,0xBBD621A8,
+ 0xB8B3D8E8,0x3BE3472B,0x3F7FE3C0,0xBBD2579C,0xB8AD4A73,0x3BDEDDBD,0x3F7FE4C8,0xBBCE8C96,
+ 0xB8A6DAC0,0x3BDA7641,0x3F7FE5CB,0xBBCAC095,0xB8A089D5,0x3BD610B6,0x3F7FE6CA,0xBBC6F399,
+ 0xB89A57B8,0x3BD1AD1D,0x3F7FE7C4,0xBBC325A1,0xB894446F,0x3BCD4B75,0x3F7FE8B9,0xBBBF56AE,
+ 0xB88E5000,0x3BC8EBC0,0x3F7FE9A8,0xBBBB86C0,0xB8887A71,0x3BC48DFD,0x3F7FEA94,0xBBB7B5D6,
+ 0xB882C3C8,0x3BC0322D,0x3F7FEB7A,0xBBB3E3F1,0xB87A5816,0x3BBBD851,0x3F7FEC5B,0xBBB01110,
+ 0xB86F6680,0x3BB78067,0x3F7FED37,0xBBAC3D33,0xB864B2DA,0x3BB32A71,0x3F7FEE0F,0xBBA8685A,
+ 0xB85A3D30,0x3BAED66F,0x3F7FEEE1,0xBBA49286,0xB850058E,0x3BAA8461,0x3F7FEFAF,0xBBA0BBB5,
+ 0xB8460C00,0x3BA63448,0x3F7FF077,0xBB9CE3E8,0xB83C5092,0x3BA1E623,0x3F7FF13B,0xBB990B1F,
+ 0xB832D350,0x3B9D99F4,0x3F7FF1FA,0xBB953159,0xB8299446,0x3B994FBA,0x3F7FF2B4,0xBB915697,
+ 0xB8209380,0x3B950775,0x3F7FF369,0xBB8D7AD9,0xB817D10A,0x3B90C126,0x3F7FF419,0xBB899E1E,
+ 0xB80F4CF0,0x3B8C7CCE,0x3F7FF4C4,0xBB85C066,0xB807073E,0x3B883A6B,0x3F7FF56B,0xBB81E1B2,
+ 0xB7FE0000,0x3B83FA00,0x3F7FF60C,0xBB7C0400,0xB7EE6E84,0x3B7F7717,0x3F7FF6A8,0xBB7442A3,
+ 0xB7DF5A20,0x3B76FE1D,0x3F7FF740,0xBB6C7F4C,0xB7D0C2EC,0x3B6E8912,0x3F7FF7D2,0xBB64B9FA,
+ 0xB7C2A900,0x3B6617F6,0x3F7FF860,0xBB5CF2AE,0xB7B50C74,0x3B5DAACB,0x3F7FF8E9,0xBB552967,
+ 0xB7A7ED60,0x3B554190,0x3F7FF96C,0xBB4D5E25,0xB79B4BDC,0x3B4CDC47,0x3F7FF9EB,0xBB4590E8,
+ 0xB78F2800,0x3B447AF0,0x3F7FFA65,0xBB3DC1B0,0xB78381E4,0x3B3C1D8B,0x3F7FFADA,0xBB35F07C,
+ 0xB770B340,0x3B33C41A,0x3F7FFB4A,0xBB2E1D4D,0xB75B5E98,0x3B2B6E9C,0x3F7FFBB5,0xBB264821,
+ 0xB7470600,0x3B231D12,0x3F7FFC1B,0xBB1E70FA,0xB733A9A8,0x3B1ACF7D,0x3F7FFC7C,0xBB1697D6,
+ 0xB72149C0,0x3B1285DD,0x3F7FFCD8,0xBB0EBCB6,0xB70FE678,0x3B0A4033,0x3F7FFD2F,0xBB06DF9A,
+ 0xB6FF0000,0x3B01FE80,0x3F7FFD82,0xBAFE0100,0xB6E02D10,0x3AF38187,0x3F7FFDCF,0xBAEE3ED3,
+ 0xB6C35480,0x3AE30DFE,0x3F7FFE17,0xBADE78AC,0xB6A876B0,0x3AD2A264,0x3F7FFE5A,0xBACEAE89,
+ 0xB68F9400,0x3AC23EBC,0x3F7FFE99,0xBABEE06C,0xB67159A0,0x3AB1E306,0x3F7FFED2,0xBAAF0E53,
+ 0xB6478300,0x3AA18F44,0x3F7FFF06,0xBA9F383E,0xB621A4E0,0x3A914377,0x3F7FFF36,0xBA8F5E2E,
+ 0xB5FF8000,0x3A80FFA0,0x3F7FFF60,0xBA7F0040,0xB5C3AA40,0x3A61877F,0x3F7FFF86,0xBA5F3C2B,
+ 0xB58FCA00,0x3A411FAF,0x3F7FFFA6,0xBA3F701B,0xB547C180,0x3A20C7D1,0x3F7FFFC2,0xBA1F9C10,
+ 0xB4FFC000,0x3A007FE8,0x3F7FFFD8,0xB9FF8010,0xB48FE500,0x39C08FEC,0x3F7FFFEA,0xB9BFB807,
+ 0xB3FFE000,0x39803FFA,0x3F7FFFF6,0xB97FC004,0xB2FFF000,0x39001FFE,0x3F7FFFFE,0xB8FFE001
};
-
-#endif
--- a/src/mixer/ft2_intrp_table.h
+++ b/src/mixer/ft2_intrp_table.h
@@ -6,22 +6,11 @@
#define CUBIC_WIDTH 4 /* number of taps */
#define CUBIC_WIDTH_BITS 2
-#if defined __amd64__ || defined _WIN64
-
-// 15-bit precision, 4096 phases
#define CUBIC_PHASES 4096
#define CUBIC_PHASES_BITS 12
-#else
+extern const uint32_t fCubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES];
-// for non-x86_64 CPUs: 15-bit precision, 1024 phases (less hard on the CPU cache)
-#define CUBIC_PHASES 1024
-#define CUBIC_PHASES_BITS 10
-
-#endif
-
#define CUBIC_FSHIFT (MIXER_FRAC_BITS-(CUBIC_PHASES_BITS+CUBIC_WIDTH_BITS))
#define CUBIC_FMASK ((CUBIC_WIDTH*CUBIC_PHASES)-CUBIC_WIDTH)
#define CUBIC_QUANTSHIFT 15
-
-extern const int16_t cubicSplineTable[CUBIC_WIDTH * CUBIC_PHASES];
--- a/src/mixer/ft2_mix.c
+++ b/src/mixer/ft2_mix.c
@@ -6,31 +6,33 @@
#include "ft2_center_mix.h"
/*
-** --------------------- 32-bit fixed-point audio channel mixer ---------------------
-** (Note: Mixing macros can be found in ft2_mix_macros.h)
+** -------------------- floating point audio channel mixer ---------------------
+** (Note: Mixing macros can be found in ft2_mix_macros.h)
**
-** 8bitbubsy: This is mostly ported from the i386-asm 32-bit mixer that was introduced
-** in FT2.08 (MS-DOS). It has been changed and improved quite a bit, though...
-** Instead of 2-tap linear interpolation, it has 4-tap cubic spline interpolation.
-** For x86_64: Fixed-point precision is 32.32 instead of 16.16
+** Specifications:
+** - Fast 4-tap cubic interpolation through 32-bit float LUT (optional)
+** - Linear volume ramping, matching FT2 (optional)
+** - 32.32 fixed-point logic for position delta
+** - 32-bit float logic for volumes/amplitudes
**
** This file has separate routines for EVERY possible sampling variation:
-** Interpolation on/off, volume ramping on/off, 8-bit, 16-bit, no loop, loop, pingpong.
-** (24 mixing routines in total)
+** Interpolation on/off, volumeramp on/off, 8-bit, 16-bit, no loop, loop, bidi.
+** (24 mixing routines in total + another 24 for center-mixing)
**
-** Every voice has a function pointer set to the according mixing routine on sample
-** trigger (from replayer, but set in audio thread), using a function pointer look-up
-** table. All voices & pointers are always thread-safely cleared when changing any
-** of the above attributes from the GUI, to prevent possible thread-related issues.
+** Every voice has a function pointer set to the according mixing routine on
+** sample trigger (from replayer, but set in audio thread), using a function
+** pointer look-up table. All voices & pointers are always thread-safely cleared
+** when changing any of the above attributes from the GUI, to prevent possible
+** thread-related issues.
**
** There's one problem with the 4-tap cubic spline resampling interpolation...
** On looped samples where loopStart>0, the splines are not correct when reading
-** from the loopStart (or +1?) sample point. The difference in audio is very minor,
-** so it's not a big problem. It just has to stay like this the way the mixer works.
-** In cases where loopStart=0, the sample before index 0 (yes, we allocate enough
-** data and pre-increment main pointer to support negative look-up), is already
-** pre-fixed so that the splines will be correct.
-** ----------------------------------------------------------------------------------
+** from the loopStart (or +1?) sample point. The difference in audio is very
+** minor, so it's not a big problem. It just has to stay like this the way the
+** mixer works. In cases where loopStart=0, the sample before index 0 (yes, we
+** allocate enough data and pre-increment main pointer to support negative
+** look-up), is already pre-fixed so that the splines will be correct.
+** -----------------------------------------------------------------------------
*/
/* ----------------------------------------------------------------------- */
@@ -39,39 +41,28 @@
static void mix8bNoLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- INC_POS
- RENDER_8BIT_SMP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -92,39 +83,28 @@
static void mix8bLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- INC_POS
- RENDER_8BIT_SMP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -145,40 +125,29 @@
static void mix8bBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL
GET_MIXER_VARS
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- INC_POS_BIDI
- RENDER_8BIT_SMP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -199,39 +168,28 @@
static void mix8bNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- INC_POS
- RENDER_8BIT_SMP_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -252,39 +210,28 @@
static void mix8bLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- INC_POS
- RENDER_8BIT_SMP_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -305,40 +252,29 @@
static void mix8bBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL
GET_MIXER_VARS
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- INC_POS_BIDI
- RENDER_8BIT_SMP_INTRP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -360,44 +296,31 @@
static void mix8bRampNoLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -423,44 +346,31 @@
static void mix8bRampLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -486,45 +396,32 @@
static void mix8bRampBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP
VOLUME_RAMPING
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS_BIDI
- RENDER_8BIT_SMP
- VOLUME_RAMPING
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP
@@ -551,44 +448,31 @@
static void mix8bRampNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -614,44 +498,31 @@
static void mix8bRampLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int8_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -677,45 +548,32 @@
static void mix8bRampBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int8_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int8_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE8_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_8BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS_BIDI
- RENDER_8BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_8BIT_SMP_INTRP
@@ -748,39 +606,28 @@
static void mix16bNoLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- INC_POS
- RENDER_16BIT_SMP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -801,39 +648,28 @@
static void mix16bLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- INC_POS
- RENDER_16BIT_SMP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -854,40 +690,29 @@
static void mix16bBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL
GET_MIXER_VARS
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- INC_POS_BIDI
- RENDER_16BIT_SMP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -909,39 +734,28 @@
static void mix16bNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- INC_POS
- RENDER_16BIT_SMP_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -962,39 +776,28 @@
static void mix16bLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL
GET_MIXER_VARS
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- INC_POS
- RENDER_16BIT_SMP_INTRP
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -1015,40 +818,29 @@
static void mix16bBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL
GET_MIXER_VARS
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- INC_POS_BIDI
- RENDER_16BIT_SMP_INTRP
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -1070,44 +862,31 @@
static void mix16bRampNoLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -1133,44 +912,31 @@
static void mix16bRampLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -1196,45 +962,32 @@
static void mix16bRampBidiLoop(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP
VOLUME_RAMPING
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS_BIDI
- RENDER_16BIT_SMP
- VOLUME_RAMPING
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP
@@ -1261,44 +1014,31 @@
static void mix16bRampNoLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -1324,44 +1064,31 @@
static void mix16bRampLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ const int16_t *base, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -1387,45 +1114,32 @@
static void mix16bRampBidiLoopIntrp(voice_t *v, uint32_t numSamples)
{
- const int16_t *CDA_LinearAdr, *CDA_LinAdrRev, *smpPtr;
- int32_t realPos, sample, sample2, sample3, sample4, *audioMixL, *audioMixR;
- int32_t CDA_LVolIP, CDA_RVolIP, CDA_LVol, CDA_RVol;
- uint32_t i, samplesToMix, CDA_BytesLeft;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos, delta;
-#else
- uint32_t pos, delta;
-#endif
+ const int16_t *base, *revBase, *smpPtr;
+ float fSample, fSample2, fSample3, fSample4, *fMixBufferL, *fMixBufferR;
+ int32_t pos;
+ float fVolLDelta, fVolRDelta, fVolL, fVolR;
+ uint32_t i, samplesToMix, samplesLeft;
+ uint64_t posFrac, tmpDelta;
GET_VOL_RAMP
GET_MIXER_VARS_RAMP
SET_BASE16_BIDI
- CDA_BytesLeft = numSamples;
- while (CDA_BytesLeft > 0)
+ samplesLeft = numSamples;
+ while (samplesLeft > 0)
{
LIMIT_MIX_NUM
LIMIT_MIX_NUM_RAMP
- CDA_BytesLeft -= samplesToMix;
+ samplesLeft -= samplesToMix;
START_BIDI
- if (samplesToMix & 1)
+ for (i = 0; i < (samplesToMix & 3); i++)
{
RENDER_16BIT_SMP_INTRP
VOLUME_RAMPING
INC_POS_BIDI
}
- samplesToMix >>= 1;
- if (samplesToMix & 1)
- {
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS_BIDI
- RENDER_16BIT_SMP_INTRP
- VOLUME_RAMPING
- INC_POS_BIDI
- }
- samplesToMix >>= 1;
+ samplesToMix >>= 2;
for (i = 0; i < samplesToMix; i++)
{
RENDER_16BIT_SMP_INTRP
@@ -1454,7 +1168,7 @@
const mixFunc mixFuncTab[48] =
{
- // normal mixing
+ // normal mixing (this file)
(mixFunc)mix8bNoLoop,
(mixFunc)mix8bLoop,
(mixFunc)mix8bBidiLoop,
@@ -1480,7 +1194,7 @@
(mixFunc)mix16bRampLoopIntrp,
(mixFunc)mix16bRampBidiLoopIntrp,
- // center mixing
+ // center mixing (ft2_center_mix.c)
(mixFunc)centerMix8bNoLoop,
(mixFunc)centerMix8bLoop,
(mixFunc)centerMix8bBidiLoop,
--- a/src/mixer/ft2_mix_macros.h
+++ b/src/mixer/ft2_mix_macros.h
@@ -8,110 +8,80 @@
/* ----------------------------------------------------------------------- */
#define GET_VOL \
- const int32_t CDA_LVol = v->SLVol2; \
- const int32_t CDA_RVol = v->SRVol2; \
+ const float fVolL = v->fVolL; \
+ const float fVolR = v->fVolR; \
#define GET_VOL_MONO \
- const int32_t CDA_LVol = v->SLVol2; \
+ const float fVolL = v->fVolL; \
#define GET_VOL_RAMP \
- CDA_LVol = v->SLVol2; \
- CDA_RVol = v->SRVol2; \
+ fVolL = v->fVolL; \
+ fVolR = v->fVolR; \
#define GET_VOL_MONO_RAMP \
- CDA_LVol = v->SLVol2; \
+ fVolL = v->fVolL; \
#define SET_VOL_BACK \
- v->SLVol2 = CDA_LVol; \
- v->SRVol2 = CDA_RVol; \
+ v->fVolL = fVolL; \
+ v->fVolR = fVolR; \
#define SET_VOL_BACK_MONO \
- v->SLVol2 = v->SRVol2 = CDA_LVol; \
+ v->fVolL = v->fVolR = fVolL; \
-#if defined _WIN64 || defined __amd64__
-
#define GET_MIXER_VARS \
- const uint64_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
+ const uint64_t delta = v->delta; \
+ fMixBufferL = audio.fMixBufferL; \
+ fMixBufferR = audio.fMixBufferR; \
+ pos = v->pos; \
+ posFrac = v->posFrac; \
#define GET_MIXER_VARS_RAMP \
- const uint64_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- CDA_LVolIP = v->SLVolIP; \
- CDA_RVolIP = v->SRVolIP; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
+ const uint64_t delta = v->delta; \
+ fMixBufferL = audio.fMixBufferL; \
+ fMixBufferR = audio.fMixBufferR; \
+ fVolLDelta = v->fVolDeltaL; \
+ fVolRDelta = v->fVolDeltaR; \
+ pos = v->pos; \
+ posFrac = v->posFrac; \
#define GET_MIXER_VARS_MONO_RAMP \
- const uint64_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- CDA_LVolIP = v->SLVolIP; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
+ const uint64_t delta = v->delta; \
+ fMixBufferL = audio.fMixBufferL; \
+ fMixBufferR = audio.fMixBufferR; \
+ fVolLDelta = v->fVolDeltaL; \
+ pos = v->pos; \
+ posFrac = v->posFrac; \
-#else
-
-#define GET_MIXER_VARS \
- const uint32_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
-
-#define GET_MIXER_VARS_RAMP \
- const uint32_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- CDA_LVolIP = v->SLVolIP; \
- CDA_RVolIP = v->SRVolIP; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
-
-#define GET_MIXER_VARS_MONO_RAMP \
- const uint32_t SFrq = v->SFrq; \
- audioMixL = audio.mixBufferL; \
- audioMixR = audio.mixBufferR; \
- CDA_LVolIP = v->SLVolIP; \
- realPos = v->SPos; \
- pos = v->SPosDec; \
-
-#endif
-
#define SET_BASE8 \
- CDA_LinearAdr = v->SBase8; \
- smpPtr = CDA_LinearAdr + realPos; \
+ base = v->base8; \
+ smpPtr = base + pos; \
#define SET_BASE16 \
- CDA_LinearAdr = v->SBase16; \
- smpPtr = CDA_LinearAdr + realPos; \
+ base = v->base16; \
+ smpPtr = base + pos; \
#define SET_BASE8_BIDI \
- CDA_LinearAdr = v->SBase8; \
- CDA_LinAdrRev = v->SRevBase8; \
+ base = v->base8; \
+ revBase = v->revBase8; \
#define SET_BASE16_BIDI \
- CDA_LinearAdr = v->SBase16; \
- CDA_LinAdrRev = v->SRevBase16; \
+ base = v->base16; \
+ revBase = v->revBase16; \
#define INC_POS \
- pos += SFrq; \
- smpPtr += pos >> MIXER_FRAC_BITS; \
- pos &= MIXER_FRAC_MASK; \
+ posFrac += delta; \
+ smpPtr += posFrac >> MIXER_FRAC_BITS; \
+ posFrac &= MIXER_FRAC_MASK; \
#define INC_POS_BIDI \
- pos += CDA_IPValL; \
- smpPtr += pos >> MIXER_FRAC_BITS; \
- smpPtr += CDA_IPValH; \
- pos &= MIXER_FRAC_MASK; \
+ posFrac += deltaLo; \
+ smpPtr += posFrac >> MIXER_FRAC_BITS; \
+ smpPtr += deltaHi; \
+ posFrac &= MIXER_FRAC_MASK; \
#define SET_BACK_MIXER_POS \
- v->SPosDec = pos; \
- v->SPos = realPos; \
+ v->posFrac = posFrac; \
+ v->pos = pos; \
/* ----------------------------------------------------------------------- */
/* SAMPLE RENDERING MACROS */
@@ -118,54 +88,48 @@
/* ----------------------------------------------------------------------- */
#define VOLUME_RAMPING \
- CDA_LVol += CDA_LVolIP; \
- CDA_RVol += CDA_RVolIP; \
+ fVolL += fVolLDelta; \
+ fVolR += fVolRDelta; \
#define VOLUME_RAMPING_MONO \
- CDA_LVol += CDA_LVolIP; \
+ fVolL += fVolLDelta; \
-// all the 64-bit MULs here convert to fast logic even on most 32-bit CPUs
-
#define RENDER_8BIT_SMP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = *smpPtr << (12+8); \
- *audioMixL++ += ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixR++ += ((int64_t)sample * CDA_RVol) >> 32; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = *smpPtr * (1.0f / 128.0f); \
+ *fMixBufferL++ += fSample * fVolL; \
+ *fMixBufferR++ += fSample * fVolR; \
#define RENDER_8BIT_SMP_MONO \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = *smpPtr << (12+8); \
- sample = ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixL++ += sample; \
- *audioMixR++ += sample; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = (*smpPtr * (1.0f / 128.0f)) * fVolL; \
+ *fMixBufferL++ += fSample; \
+ *fMixBufferR++ += fSample; \
#define RENDER_16BIT_SMP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = *smpPtr << 12; \
- *audioMixL++ += ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixR++ += ((int64_t)sample * CDA_RVol) >> 32; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = *smpPtr * (1.0f / 32768.0f); \
+ *fMixBufferL++ += fSample * fVolL; \
+ *fMixBufferR++ += fSample * fVolR; \
#define RENDER_16BIT_SMP_MONO \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = *smpPtr << 12; \
- sample = ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixL++ += sample; \
- *audioMixR++ += sample; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = (*smpPtr * (1.0f / 32768.0f)) * fVolL; \
+ *fMixBufferL++ += fSample; \
+ *fMixBufferR++ += fSample; \
// 4-tap cubic spline interpolation
-// in: int32_t s0,s1,s2,s3 = -128..127 | f = 0..65535 (frac) | out: 16-bit s0 (will exceed 16-bits because of overshoot)
#define INTERPOLATE8(s0, s1, s2, s3, f) \
{ \
- const int16_t *t = cubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
- s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> (CUBIC_QUANTSHIFT-8); \
+ const float *t = (float *)fCubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
+ s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) * (1.0f / 128.0f); \
} \
-// in: int32_t s0,s1,s2,s3 = -32768..32767 | f = 0..65535 (frac) | out: 16-bit s0 (will exceed 16-bits because of overshoot)
#define INTERPOLATE16(s0, s1, s2, s3, f) \
{ \
- const int16_t *t = cubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
- s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) >> CUBIC_QUANTSHIFT; \
+ const float *t = (float *)fCubicSplineTable + ((f >> CUBIC_FSHIFT) & CUBIC_FMASK); \
+ s0 = ((s0 * t[0]) + (s1 * t[1]) + (s2 * t[2]) + (s3 * t[3])) * (1.0f / 32768.0f); \
} \
/* 8bitbubsy: It may look like we are potentially going out of bounds by looking up sample point
@@ -179,128 +143,87 @@
*/
#define RENDER_8BIT_SMP_INTRP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = smpPtr[-1]; \
- sample2 = smpPtr[0]; \
- sample3 = smpPtr[1]; \
- sample4 = smpPtr[2]; \
- INTERPOLATE8(sample, sample2, sample3, sample4, pos) \
- sample <<= 12; \
- *audioMixL++ += ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixR++ += ((int64_t)sample * CDA_RVol) >> 32; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = smpPtr[-1]; \
+ fSample2 = smpPtr[0]; \
+ fSample3 = smpPtr[1]; \
+ fSample4 = smpPtr[2]; \
+ INTERPOLATE8(fSample, fSample2, fSample3, fSample4, posFrac) \
+ *fMixBufferL++ += fSample * fVolL; \
+ *fMixBufferR++ += fSample * fVolR; \
#define RENDER_8BIT_SMP_MONO_INTRP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = smpPtr[-1]; \
- sample2 = smpPtr[0]; \
- sample3 = smpPtr[1]; \
- sample4 = smpPtr[2]; \
- INTERPOLATE8(sample, sample2, sample3, sample4, pos) \
- sample <<= 12; \
- sample = ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixL++ += sample; \
- *audioMixR++ += sample; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = smpPtr[-1]; \
+ fSample2 = smpPtr[0]; \
+ fSample3 = smpPtr[1]; \
+ fSample4 = smpPtr[2]; \
+ INTERPOLATE8(fSample, fSample2, fSample3, fSample4, posFrac) \
+ fSample *= fVolL; \
+ *fMixBufferL++ += fSample; \
+ *fMixBufferR++ += fSample; \
#define RENDER_16BIT_SMP_INTRP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = smpPtr[-1]; \
- sample2 = smpPtr[0]; \
- sample3 = smpPtr[1]; \
- sample4 = smpPtr[2]; \
- INTERPOLATE16(sample, sample2, sample3, sample4, pos) \
- sample <<= 12; \
- *audioMixL++ += ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixR++ += ((int64_t)sample * CDA_RVol) >> 32; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = smpPtr[-1]; \
+ fSample2 = smpPtr[0]; \
+ fSample3 = smpPtr[1]; \
+ fSample4 = smpPtr[2]; \
+ INTERPOLATE16(fSample, fSample2, fSample3, fSample4, posFrac) \
+ *fMixBufferL++ += fSample * fVolL; \
+ *fMixBufferR++ += fSample * fVolR; \
#define RENDER_16BIT_SMP_MONO_INTRP \
- assert(smpPtr >= CDA_LinearAdr && smpPtr < CDA_LinearAdr+v->SLen); \
- sample = smpPtr[-1]; \
- sample2 = smpPtr[0]; \
- sample3 = smpPtr[1]; \
- sample4 = smpPtr[2]; \
- INTERPOLATE16(sample, sample2, sample3, sample4, pos) \
- sample <<= 12; \
- sample = ((int64_t)sample * CDA_LVol) >> 32; \
- *audioMixL++ += sample; \
- *audioMixR++ += sample; \
+ assert(smpPtr >= base && smpPtr < base+v->end); \
+ fSample = smpPtr[-1]; \
+ fSample2 = smpPtr[0]; \
+ fSample3 = smpPtr[1]; \
+ fSample4 = smpPtr[2]; \
+ INTERPOLATE16(fSample, fSample2, fSample3, fSample4, posFrac) \
+ fSample *= fVolL; \
+ *fMixBufferL++ += fSample; \
+ *fMixBufferR++ += fSample; \
/* ----------------------------------------------------------------------- */
/* SAMPLES-TO-MIX LIMITING MACROS */
/* ----------------------------------------------------------------------- */
-#if defined _WIN64 || defined __amd64__
-
#define LIMIT_MIX_NUM \
- i = (v->SLen - 1) - realPos; \
+ i = (v->end - 1) - pos; \
if (i > 65535) \
i = 65535; \
\
- i = (i << 16) | ((uint32_t)(pos >> 16) ^ 0xFFFF); \
- samplesToMix = ((int64_t)i * v->SFrqRev) >> 32; \
+ i = (i << 16) | ((uint32_t)(posFrac >> 16) ^ 0xFFFF); \
+ samplesToMix = ((int64_t)i * v->revDelta) >> 32; \
samplesToMix++; \
\
- if (samplesToMix > CDA_BytesLeft) \
- samplesToMix = CDA_BytesLeft; \
+ if (samplesToMix > samplesLeft) \
+ samplesToMix = samplesLeft; \
#define START_BIDI \
if (v->backwards) \
{ \
- delta = 0 - SFrq; \
- assert(realPos >= v->SRepS && realPos < v->SLen); \
- realPos = ~realPos; \
- smpPtr = CDA_LinAdrRev + realPos; \
- pos ^= MIXER_FRAC_MASK; \
+ tmpDelta = 0 - delta; \
+ assert(pos >= v->loopStart && pos < v->end); \
+ pos = ~pos; \
+ smpPtr = revBase + pos; \
+ posFrac ^= MIXER_FRAC_MASK; \
} \
else \
{ \
- delta = SFrq; \
- assert(realPos >= 0 && realPos < v->SLen); \
- smpPtr = CDA_LinearAdr + realPos; \
+ tmpDelta = delta; \
+ assert(pos >= 0 && pos < v->end); \
+ smpPtr = base + pos; \
} \
\
- const int32_t CDA_IPValH = (int64_t)delta >> MIXER_FRAC_BITS; \
- const uint32_t CDA_IPValL = delta & MIXER_FRAC_MASK; \
+ const int32_t deltaHi = (int64_t)tmpDelta >> MIXER_FRAC_BITS; \
+ const uint32_t deltaLo = tmpDelta & MIXER_FRAC_MASK; \
-#else
-
-#define LIMIT_MIX_NUM \
- i = (v->SLen - 1) - realPos; \
- if (i > (1UL << (32-MIXER_FRAC_BITS))-1) \
- i = (1UL << (32-MIXER_FRAC_BITS))-1; \
- \
- i = (i << MIXER_FRAC_BITS) | (pos ^ MIXER_FRAC_MASK); \
- samplesToMix = ((int64_t)i * v->SFrqRev) >> 32; \
- samplesToMix++; \
- \
- if (samplesToMix > CDA_BytesLeft) \
- samplesToMix = CDA_BytesLeft; \
-
-#define START_BIDI \
- if (v->backwards) \
- { \
- delta = 0 - SFrq; \
- assert(realPos >= v->SRepS && realPos < v->SLen); \
- realPos = ~realPos; \
- smpPtr = CDA_LinAdrRev + realPos; \
- pos ^= MIXER_FRAC_MASK; \
- } \
- else \
- { \
- delta = SFrq; \
- assert(realPos >= 0 && realPos < v->SLen); \
- smpPtr = CDA_LinearAdr + realPos; \
- } \
- \
- const int32_t CDA_IPValH = (int32_t)delta >> MIXER_FRAC_BITS; \
- const uint32_t CDA_IPValL = delta & MIXER_FRAC_MASK; \
-
-#endif
-
#define LIMIT_MIX_NUM_RAMP \
- if (v->SVolIPLen == 0) \
+ if (v->volRampSamples == 0) \
{ \
- CDA_LVolIP = 0; \
- CDA_RVolIP = 0; \
+ fVolLDelta = 0; \
+ fVolRDelta = 0; \
\
if (v->isFadeOutVoice) \
{ \
@@ -310,16 +233,16 @@
} \
else \
{ \
- if (samplesToMix > v->SVolIPLen) \
- samplesToMix = v->SVolIPLen; \
+ if (samplesToMix > v->volRampSamples) \
+ samplesToMix = v->volRampSamples; \
\
- v->SVolIPLen -= samplesToMix; \
+ v->volRampSamples -= samplesToMix; \
} \
#define LIMIT_MIX_NUM_MONO_RAMP \
- if (v->SVolIPLen == 0) \
+ if (v->volRampSamples == 0) \
{ \
- CDA_LVolIP = 0; \
+ fVolLDelta = 0; \
if (v->isFadeOutVoice) \
{ \
v->active = false; /* volume ramp fadeout-voice is done, shut it down */ \
@@ -328,15 +251,15 @@
} \
else \
{ \
- if (samplesToMix > v->SVolIPLen) \
- samplesToMix = v->SVolIPLen; \
+ if (samplesToMix > v->volRampSamples) \
+ samplesToMix = v->volRampSamples; \
\
- v->SVolIPLen -= samplesToMix; \
+ v->volRampSamples -= samplesToMix; \
} \
#define HANDLE_SAMPLE_END \
- realPos = (int32_t)(smpPtr - CDA_LinearAdr); \
- if (realPos >= v->SLen) \
+ pos = (int32_t)(smpPtr - base); \
+ if (pos >= v->end) \
{ \
v->active = false; \
return; \
@@ -343,15 +266,15 @@
} \
#define WRAP_LOOP \
- realPos = (int32_t)(smpPtr - CDA_LinearAdr); \
- while (realPos >= v->SLen) \
- realPos -= v->SRepL; \
- smpPtr = CDA_LinearAdr + realPos; \
+ pos = (int32_t)(smpPtr - base); \
+ while (pos >= v->end) \
+ pos -= v->loopLength; \
+ smpPtr = base + pos; \
#define WRAP_BIDI_LOOP \
- while (realPos >= v->SLen) \
+ while (pos >= v->end) \
{ \
- realPos -= v->SRepL; \
+ pos -= v->loopLength; \
v->backwards ^= 1; \
} \
@@ -358,11 +281,11 @@
#define END_BIDI \
if (v->backwards) \
{ \
- pos ^= MIXER_FRAC_MASK; \
- realPos = ~(int32_t)(smpPtr - CDA_LinAdrRev); \
+ posFrac ^= MIXER_FRAC_MASK; \
+ pos = ~(int32_t)(smpPtr - revBase); \
} \
else \
{ \
- realPos = (int32_t)(smpPtr - CDA_LinearAdr); \
+ pos = (int32_t)(smpPtr - base); \
} \
--- a/src/mixer/ft2_silence_mix.c
+++ b/src/mixer/ft2_silence_mix.c
@@ -4,28 +4,24 @@
void silenceMixRoutine(voice_t *v, int32_t numSamples)
{
- int32_t realPos;
-#if defined _WIN64 || defined __amd64__
- uint64_t pos;
-#else
- uint32_t pos;
-#endif
+ int32_t pos;
+ uint64_t posFrac;
SILENCE_MIX_INC_POS
- if (v->SLoopType == 0)
+ if (v->loopType == LOOP_DISABLED)
{
SILENCE_MIX_NO_LOOP
}
- else if (v->SLoopType == 1)
+ else if (v->loopType == LOOP_FORWARD)
{
SILENCE_MIX_LOOP
}
- else
+ else // pingpong loop
{
SILENCE_MIX_BIDI_LOOP
}
- v->SPosDec = pos;
- v->SPos = realPos;
+ v->posFrac = posFrac;
+ v->pos = pos;
}
--- a/src/mixer/ft2_silence_mix.h
+++ b/src/mixer/ft2_silence_mix.h
@@ -5,71 +5,46 @@
#include "../ft2_audio.h"
#define SILENCE_MIX_NO_LOOP \
- if (realPos >= v->SLen) \
+ if (pos >= v->end) \
{ \
v->active = false; /* shut down voice */ \
return; \
} \
-#if defined _WIN64 || defined __amd64__
-
#define SILENCE_MIX_INC_POS \
- const uint64_t newPos = v->SFrq * (uint64_t)numSamples; \
+ const uint64_t newPos = v->delta * (uint64_t)numSamples; \
const uint32_t addPos = (uint32_t)(newPos >> MIXER_FRAC_BITS); \
uint64_t addFrac = newPos & MIXER_FRAC_MASK; \
\
- addFrac += v->SPosDec; \
- realPos = v->SPos + addPos + (uint32_t)(addFrac >> MIXER_FRAC_BITS); \
- pos = addFrac & MIXER_FRAC_MASK; \
+ addFrac += v->posFrac; \
+ pos = v->pos + addPos + (uint32_t)(addFrac >> MIXER_FRAC_BITS); \
+ posFrac = addFrac & MIXER_FRAC_MASK; \
-
#define SILENCE_MIX_LOOP \
- if (realPos >= v->SLen) \
+ if (pos >= v->end) \
{ \
- if (v->SRepL >= 2) \
- realPos = v->SRepS + ((realPos - v->SLen) % v->SRepL); \
+ if (v->loopLength >= 2) \
+ pos = v->loopStart + ((pos - v->end) % v->loopLength); \
else \
- realPos = v->SRepS; \
+ pos = v->loopStart; \
} \
#define SILENCE_MIX_BIDI_LOOP \
- if (realPos >= v->SLen) \
+ if (pos >= v->end) \
{ \
- if (v->SRepL >= 2) \
+ if (v->loopLength >= 2) \
{ \
- const int32_t overflow = realPos - v->SLen; \
- const int32_t cycles = overflow / v->SRepL; \
- const int32_t phase = overflow % v->SRepL; \
+ const int32_t overflow = pos - v->end; \
+ const int32_t cycles = overflow / v->loopLength; \
+ const int32_t phase = overflow % v->loopLength; \
\
- realPos = v->SRepS + phase; \
+ pos = v->loopStart + phase; \
v->backwards ^= !(cycles & 1); \
} \
else \
{ \
- realPos = v->SRepS; \
+ pos = v->loopStart; \
} \
} \
-
-#else
-
-#define SILENCE_MIX_INC_POS \
- assert(numSamples <= 65536); \
- \
- pos = v->SPosDec + ((v->SFrq & 0xFFFF) * numSamples); \
- realPos = v->SPos + ((v->SFrq >> 16) * numSamples) + (pos >> 16); \
- pos &= 0xFFFF; \
-
-#define SILENCE_MIX_LOOP \
- while (realPos >= v->SLen) \
- realPos -= v->SRepL; \
-
-#define SILENCE_MIX_BIDI_LOOP \
- while (realPos >= v->SLen) \
- { \
- realPos -= v->SRepL; \
- v->backwards ^= 1; \
- } \
-
-#endif
void silenceMixRoutine(voice_t *v, int32_t numSamples);