30unsigned char OpenSimplex2S::LOOKUP_4D_SIZE[256] {};
32OpenSimplex2S::Initializer::Initializer()
34 OpenSimplex2S::initLatticePoints();
35 OpenSimplex2S::initGradients();
40OpenSimplex2S::OpenSimplex2S(
long seed)
42 short source[PSIZE] {};
43 for (
short i = 0; i < PSIZE; i++) {
46 for (
int i = PSIZE - 1; i >= 0; i--) {
47 seed = seed * 6364136223846793005L + 1442695040888963407L;
48 int r =
static_cast<int>((seed + 31) % (i + 1));
54 permGrad3[i] = GRADIENTS_3D[perm[i]];
55 permGrad4[i] = GRADIENTS_4D[perm[i]];
56 source[r] = source[i];
66 double s = 0.366025403784439 * (x + y);
81 double xx = x * 0.7071067811865476;
82 double yy = y * 1.224744871380249;
96 int xsb = fastFloor(xs);
97 int ysb = fastFloor(ys);
98 double xsi = xs - xsb;
99 double ysi = ys - ysb;
102 int a =
static_cast<int>(xsi + ysi);
103 int index = (a << 2) | static_cast<int>(xsi - ysi / 2 + 1 - a / 2.0) << 3
104 |
static_cast<int>(ysi - xsi / 2 + 1 - a / 2.0) << 4;
106 double ssi = (xsi + ysi) * -0.211324865405187;
107 double xi = xsi + ssi;
108 double yi = ysi + ssi;
111 for (
int i = 0; i < 4; i++) {
114 double dx = xi + c.dx;
115 double dy = yi + c.dy;
116 double attn = 2.0 / 3.0 - dx * dx - dy * dy;
121 int pxm = (xsb + c.xsv) & PMASK;
122 int pym = (ysb + c.ysv) & PMASK;
123 Grad2 grad = permGrad2[perm[pxm] ^ pym];
124 double extrapolation = grad.dx * dx + grad.dy * dy;
127 value += attn * attn * extrapolation;
144 double r = (2.0 / 3.0) * (x + y + z);
166 double s2 = xy * -0.211324865405187;
167 double zz = z * 0.577350269189626;
168 double xr = x + s2 - zz;
169 double yr = y + s2 - zz;
170 double zr = xy * 0.577350269189626 + zz;
189 double s2 = xz * -0.211324865405187;
190 double yy = y * 0.577350269189626;
191 double xr = x + s2 - yy;
192 double zr = z + s2 - yy;
193 double yr = xz * 0.577350269189626 + yy;
208 int xrb = fastFloor(xr);
209 int yrb = fastFloor(yr);
210 int zrb = fastFloor(zr);
211 double xri = xr - xrb;
212 double yri = yr - yrb;
213 double zri = zr - zrb;
217 int xht =
static_cast<int>(xri + 0.5);
218 int yht =
static_cast<int>(yri + 0.5);
219 int zht =
static_cast<int>(zri + 0.5);
220 int index = (xht << 0) | (yht << 1) | (zht << 2);
225 while (c !=
nullptr) {
226 double dxr = xri + c->dxr;
227 double dyr = yri + c->dyr;
228 double dzr = zri + c->dzr;
229 double attn = 0.75 - dxr * dxr - dyr * dyr - dzr * dzr;
231 c = c->nextOnFailure.get();
233 int pxm = (xrb + c->xrv) & PMASK;
234 int pym = (yrb + c->yrv) & PMASK;
235 int pzm = (zrb + c->zrv) & PMASK;
236 Grad3 grad = permGrad3[perm[perm[pxm] ^ pym] ^ pzm];
237 double extrapolation = grad.dx * dxr + grad.dy * dyr + grad.dz * dzr;
240 value += attn * attn * extrapolation;
241 c = c->nextOnSuccess.get();
253 double s = 0.309016994374947 * (x + y + z + w);
269 double s2 = (x + y) * -0.28522513987434876941 + (z + w) * 0.83897065470611435718;
270 double t2 = (z + w) * 0.21939749883706435719 + (x + y) * -0.48214856493302476942;
285 double s2 = (x + z) * -0.28522513987434876941 + (y + w) * 0.83897065470611435718;
286 double t2 = (y + w) * 0.21939749883706435719 + (x + z) * -0.48214856493302476942;
302 double xyz = x + y + z;
303 double ww = w * 1.118033988749894;
304 double s2 = xyz * -0.16666666666666666 + ww;
308 double ws = -0.5 * xyz + ww;
324 int xsb = fastFloor(xs);
325 int ysb = fastFloor(ys);
326 int zsb = fastFloor(zs);
327 int wsb = fastFloor(ws);
328 double xsi = xs - xsb;
329 double ysi = ys - ysb;
330 double zsi = zs - zsb;
331 double wsi = ws - wsb;
334 double ssi = (xsi + ysi + zsi + wsi) * -0.138196601125011;
335 double xi = xsi + ssi;
336 double yi = ysi + ssi;
337 double zi = zsi + ssi;
338 double wi = wsi + ssi;
340 int index = ((fastFloor(xs * 4) & 3) << 0) | ((fastFloor(ys * 4) & 3) << 2)
341 | ((fastFloor(zs * 4) & 3) << 4) | ((fastFloor(ws * 4) & 3) << 6);
344 for (
int i = 0; i < LOOKUP_4D_SIZE[index]; ++i) {
345 auto& c = LOOKUP_4D[index][i];
346 double dx = xi + c.dx;
347 double dy = yi + c.dy;
348 double dz = zi + c.dz;
349 double dw = wi + c.dw;
350 double attn = 0.8 - dx * dx - dy * dy - dz * dz - dw * dw;
354 int pxm = (xsb + c.xsv) & PMASK;
355 int pym = (ysb + c.ysv) & PMASK;
356 int pzm = (zsb + c.zsv) & PMASK;
357 int pwm = (wsb + c.wsv) & PMASK;
358 Grad4 grad = permGrad4[perm[perm[perm[pxm] ^ pym] ^ pzm] ^ pwm];
359 double extrapolation = grad.dx * dx + grad.dy * dy + grad.dz * dz + grad.dw * dw;
361 value += attn * attn * extrapolation;
367int OpenSimplex2S::fastFloor(
double x)
369 int xi =
static_cast<int>(x);
370 return x < xi ? xi - 1 : xi;
373OpenSimplex2S::LatticePoint2D::LatticePoint2D(
int a_xsv,
int a_ysv)
377 double ssv = (a_xsv + a_ysv) * -0.211324865405187;
382OpenSimplex2S::LatticePoint2D::LatticePoint2D() =
default;
384OpenSimplex2S::LatticePoint3D::LatticePoint3D(
int a_xrv,
int a_yrv,
int a_zrv,
int lattice)
386 dxr = -a_xrv + lattice * 0.5;
387 dyr = -a_yrv + lattice * 0.5;
388 dzr = -a_zrv + lattice * 0.5;
389 xrv = a_xrv + lattice * 1024;
390 yrv = a_yrv + lattice * 1024;
391 zrv = a_zrv + lattice * 1024;
394OpenSimplex2S::LatticePoint3D::LatticePoint3D() =
default;
396OpenSimplex2S::LatticePoint4D::LatticePoint4D(
int a_xsv,
int a_ysv,
int a_zsv,
int a_wsv)
402 double ssv = (a_xsv + a_ysv + a_zsv + a_wsv) * -0.138196601125011;
409OpenSimplex2S::LatticePoint4D::LatticePoint4D() =
default;
411void OpenSimplex2S::initLatticePoints()
413 for (
int i = 0; i < 8; i++) {
446 LOOKUP_2D[i * 4 + 0] = { 0, 0 };
447 LOOKUP_2D[i * 4 + 1] = { 1, 1 };
448 LOOKUP_2D[i * 4 + 2] = { i1, j1 };
449 LOOKUP_2D[i * 4 + 3] = { i2, j2 };
452 for (
int i = 0; i < 8; i++) {
453 int i1, j1, k1, i2, j2, k2;
462 auto c0 = std::make_shared<LatticePoint3D>(i1, j1, k1, 0);
463 auto c1 = std::make_shared<LatticePoint3D>(i1 + i2, j1 + j2, k1 + k2, 1);
466 auto c2 = std::make_shared<LatticePoint3D>(i1 ^ 1, j1, k1, 0);
467 auto c3 = std::make_shared<LatticePoint3D>(i1, j1 ^ 1, k1 ^ 1, 0);
470 auto c4 = std::make_shared<LatticePoint3D>(i1 + (i2 ^ 1), j1 + j2, k1 + k2, 1);
471 auto c5 = std::make_shared<LatticePoint3D>(i1 + i2, j1 + (j2 ^ 1), k1 + (k2 ^ 1), 1);
474 auto c6 = std::make_shared<LatticePoint3D>(i1, j1 ^ 1, k1, 0);
475 auto c7 = std::make_shared<LatticePoint3D>(i1 ^ 1, j1, k1 ^ 1, 0);
478 auto c8 = std::make_shared<LatticePoint3D>(i1 + i2, j1 + (j2 ^ 1), k1 + k2, 1);
479 auto c9 = std::make_shared<LatticePoint3D>(i1 + (i2 ^ 1), j1 + j2, k1 + (k2 ^ 1), 1);
482 auto cA = std::make_shared<LatticePoint3D>(i1, j1, k1 ^ 1, 0);
483 auto cB = std::make_shared<LatticePoint3D>(i1 ^ 1, j1 ^ 1, k1, 0);
486 auto cC = std::make_shared<LatticePoint3D>(i1 + i2, j1 + j2, k1 + (k2 ^ 1), 1);
487 auto cD = std::make_shared<LatticePoint3D>(i1 + (i2 ^ 1), j1 + (j2 ^ 1), k1 + k2, 1);
490 c0->nextOnFailure = c0->nextOnSuccess = c1;
491 c1->nextOnFailure = c1->nextOnSuccess = c2;
494 c2->nextOnFailure = c3;
495 c2->nextOnSuccess = c5;
496 c3->nextOnFailure = c4;
497 c3->nextOnSuccess = c4;
500 c4->nextOnFailure = c5;
501 c4->nextOnSuccess = c6;
502 c5->nextOnFailure = c5->nextOnSuccess = c6;
505 c6->nextOnFailure = c7;
506 c6->nextOnSuccess = c9;
507 c7->nextOnFailure = c8;
508 c7->nextOnSuccess = c8;
511 c8->nextOnFailure = c9;
512 c8->nextOnSuccess = cA;
513 c9->nextOnFailure = c9->nextOnSuccess = cA;
516 cA->nextOnFailure = cB;
517 cA->nextOnSuccess = cD;
518 cB->nextOnFailure = cC;
519 cB->nextOnSuccess = cC;
522 cC->nextOnFailure = cD;
523 cC->nextOnSuccess =
nullptr;
524 cD->nextOnFailure = cD->nextOnSuccess =
nullptr;
529 unsigned char lookup4DPregenSize[256] {
531 20, 15, 16, 17, 15, 16, 12, 15, 16, 12, 10, 14, 17, 15, 14, 17,
532 15, 16, 12, 15, 16, 14, 14, 13, 12, 14, 11, 12, 15, 13, 12, 14,
533 16, 12, 10, 14, 12, 14, 11, 12, 10, 11, 10, 13, 14, 12, 13, 15,
534 17, 15, 14, 17, 15, 13, 12, 14, 14, 12, 13, 15, 17, 14, 15, 17,
535 15, 16, 12, 15, 16, 14, 14, 13, 12, 14, 11, 12, 15, 13, 12, 14,
536 16, 14, 14, 13, 14, 16, 16, 10, 14, 16, 19, 11, 13, 10, 11, 10,
537 12, 14, 11, 12, 14, 16, 19, 11, 11, 19, 13, 14, 12, 11, 14, 13,
538 15, 13, 12, 14, 13, 10, 11, 10, 12, 11, 14, 13, 14, 10, 13, 13,
539 16, 12, 10, 14, 12, 14, 11, 12, 10, 11, 10, 13, 14, 12, 13, 15,
540 12, 14, 11, 12, 14, 16, 19, 11, 11, 19, 13, 14, 12, 11, 14, 13,
541 10, 11, 10, 13, 11, 19, 13, 14, 10, 13, 16, 14, 13, 14, 14, 16,
542 14, 12, 13, 15, 12, 11, 14, 13, 13, 14, 14, 16, 15, 13, 16, 15,
543 17, 15, 14, 17, 15, 13, 12, 14, 14, 12, 13, 15, 17, 14, 15, 17,
544 15, 13, 12, 14, 13, 10, 11, 10, 12, 11, 14, 13, 14, 10, 13, 13,
545 14, 12, 13, 15, 12, 11, 14, 13, 13, 14, 14, 16, 15, 13, 16, 15,
546 17, 14, 15, 17, 14, 10, 13, 13, 15, 13, 16, 15, 17, 13, 15, 20,
550 unsigned char lookup4DPregen[256][20] {
552 { 0x15, 0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA },
553 { 0x15, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00 },
554 { 0x01, 0x05, 0x11, 0x15, 0x41, 0x45, 0x51, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00 },
555 { 0x01, 0x15, 0x16, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00 },
556 { 0x15, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00 },
557 { 0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00 },
558 { 0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
559 { 0x05, 0x15, 0x16, 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00 },
560 { 0x04, 0x05, 0x14, 0x15, 0x44, 0x45, 0x54, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
561 { 0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
562 { 0x05, 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
563 { 0x05, 0x15, 0x16, 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x5B, 0x6A, 0x9A, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
564 { 0x04, 0x15, 0x19, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00 },
565 { 0x05, 0x15, 0x19, 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00 },
566 { 0x05, 0x15, 0x19, 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x5E, 0x6A, 0x9A, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
567 { 0x05, 0x15, 0x1A, 0x45, 0x4A, 0x55, 0x56, 0x59, 0x5A, 0x5B, 0x5E, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00 },
568 { 0x15, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00 },
569 { 0x11, 0x15, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00 },
570 { 0x11, 0x15, 0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
571 { 0x11, 0x15, 0x16, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00 },
572 { 0x14, 0x15, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
573 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x9A, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
574 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
575 { 0x15, 0x16, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x6B, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
576 { 0x14, 0x15, 0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
577 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
578 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
579 { 0x15, 0x16, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x6B, 0x9A, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
580 { 0x14, 0x15, 0x19, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00 },
581 { 0x15, 0x19, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x6E, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
582 { 0x15, 0x19, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x6E, 0x9A, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
583 { 0x15, 0x1A, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x6B, 0x6E, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
584 { 0x10, 0x11, 0x14, 0x15, 0x50, 0x51, 0x54, 0x55, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
585 { 0x11, 0x15, 0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
586 { 0x11, 0x15, 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
587 { 0x11, 0x15, 0x16, 0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x67, 0x6A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
588 { 0x14, 0x15, 0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
589 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
590 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
591 { 0x15, 0x16, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x6B, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
592 { 0x14, 0x15, 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
593 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
594 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
595 { 0x15, 0x16, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
596 { 0x14, 0x15, 0x19, 0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x6A, 0x6D, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
597 { 0x15, 0x19, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x6E, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
598 { 0x15, 0x19, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6E, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
599 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x6B, 0x6E, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00 },
600 { 0x10, 0x15, 0x25, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00 },
601 { 0x11, 0x15, 0x25, 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00 },
602 { 0x11, 0x15, 0x25, 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x6A, 0x76, 0xA6, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
603 { 0x11, 0x15, 0x26, 0x51, 0x55, 0x56, 0x62, 0x65, 0x66, 0x67, 0x6A, 0x76, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00 },
604 { 0x14, 0x15, 0x25, 0x54, 0x55, 0x59, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00 },
605 { 0x15, 0x25, 0x55, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
606 { 0x15, 0x25, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA6, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
607 { 0x15, 0x26, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x6B, 0x7A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
608 { 0x14, 0x15, 0x25, 0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x6A, 0x79, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
609 { 0x15, 0x25, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
610 { 0x15, 0x25, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x7A, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
611 { 0x15, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0x7A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00 },
612 { 0x14, 0x15, 0x29, 0x54, 0x55, 0x59, 0x65, 0x68, 0x69, 0x6A, 0x6D, 0x79, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00 },
613 { 0x15, 0x29, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x6E, 0x7A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
614 { 0x15, 0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6E, 0x7A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00 },
615 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x6B, 0x6E, 0x7A, 0xAA, 0xAB, 0xAE, 0xBA, 0xBF, 0x00, 0x00, 0x00 },
616 { 0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00 },
617 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00 },
618 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x5A, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
619 { 0x41, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00 },
620 { 0x44, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
621 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
622 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
623 { 0x45, 0x46, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
624 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x5A, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
625 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
626 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
627 { 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x9A, 0x9B, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
628 { 0x44, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00 },
629 { 0x45, 0x49, 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
630 { 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x99, 0x9A, 0x9E, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
631 { 0x45, 0x4A, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
632 { 0x50, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
633 { 0x51, 0x55, 0x56, 0x59, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
634 { 0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
635 { 0x51, 0x52, 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
636 { 0x54, 0x55, 0x56, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
637 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
638 { 0x15, 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00 },
639 { 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
640 { 0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
641 { 0x15, 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00 },
642 { 0x15, 0x45, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0x00 },
643 { 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
644 { 0x54, 0x55, 0x58, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
645 { 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
646 { 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
647 { 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
648 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x66, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
649 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
650 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
651 { 0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA6, 0xA7, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
652 { 0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
653 { 0x15, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00 },
654 { 0x15, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA, 0x00 },
655 { 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
656 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
657 { 0x15, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA, 0x00 },
658 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
659 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
660 { 0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA9, 0xAA, 0xAD, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
661 { 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
662 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
663 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
664 { 0x50, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x66, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00 },
665 { 0x51, 0x55, 0x61, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
666 { 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x6A, 0xA5, 0xA6, 0xAA, 0xB6, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
667 { 0x51, 0x55, 0x56, 0x62, 0x65, 0x66, 0x6A, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
668 { 0x54, 0x55, 0x64, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
669 { 0x55, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
670 { 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
671 { 0x55, 0x56, 0x65, 0x66, 0x6A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
672 { 0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x6A, 0xA5, 0xA9, 0xAA, 0xB9, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
673 { 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
674 { 0x15, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
675 { 0x15, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
676 { 0x54, 0x55, 0x59, 0x65, 0x68, 0x69, 0x6A, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
677 { 0x55, 0x59, 0x65, 0x69, 0x6A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
678 { 0x15, 0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
679 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0xAA, 0xAB, 0xAE, 0xBA, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
680 { 0x40, 0x41, 0x44, 0x45, 0x50, 0x51, 0x54, 0x55, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
681 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
682 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
683 { 0x41, 0x45, 0x46, 0x51, 0x52, 0x55, 0x56, 0x95, 0x96, 0x97, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
684 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
685 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
686 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
687 { 0x45, 0x46, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
688 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
689 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
690 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
691 { 0x45, 0x46, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
692 { 0x44, 0x45, 0x49, 0x54, 0x55, 0x58, 0x59, 0x95, 0x99, 0x9A, 0x9D, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
693 { 0x45, 0x49, 0x55, 0x59, 0x5A, 0x95, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
694 { 0x45, 0x49, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9E, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
695 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x99, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00 },
696 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
697 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
698 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
699 { 0x51, 0x52, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
700 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
701 { 0x45, 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00 },
702 { 0x45, 0x51, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xEA, 0x00 },
703 { 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
704 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
705 { 0x45, 0x54, 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xEA, 0x00 },
706 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
707 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
708 { 0x54, 0x55, 0x58, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
709 { 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
710 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
711 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x96, 0x99, 0x9A, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
712 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
713 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
714 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
715 { 0x51, 0x52, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
716 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
717 { 0x51, 0x54, 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0x00 },
718 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
719 { 0x51, 0x55, 0x56, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
720 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
721 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
722 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0x00, 0x00, 0x00, 0x00 },
723 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
724 { 0x54, 0x55, 0x58, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
725 { 0x54, 0x55, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
726 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
727 { 0x55, 0x56, 0x59, 0x5A, 0x66, 0x69, 0x6A, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xAF, 0x00, 0x00, 0x00, 0x00 },
728 { 0x50, 0x51, 0x54, 0x55, 0x61, 0x64, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB5, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
729 { 0x51, 0x55, 0x61, 0x65, 0x66, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
730 { 0x51, 0x55, 0x56, 0x61, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xB6, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
731 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00 },
732 { 0x54, 0x55, 0x64, 0x65, 0x69, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
733 { 0x55, 0x65, 0x66, 0x69, 0x6A, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
734 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
735 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x6A, 0x96, 0xA5, 0xA6, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
736 { 0x54, 0x55, 0x59, 0x64, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xB9, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
737 { 0x54, 0x55, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
738 { 0x55, 0x56, 0x59, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
739 { 0x55, 0x56, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA, 0xBB, 0x00, 0x00, 0x00, 0x00 },
740 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00 },
741 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x6A, 0x99, 0xA5, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
742 { 0x55, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA, 0xBE, 0x00, 0x00, 0x00, 0x00 },
743 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00 },
744 { 0x40, 0x45, 0x51, 0x54, 0x55, 0x85, 0x91, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00 },
745 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x85, 0x91, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
746 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x85, 0x91, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xD6, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
747 { 0x41, 0x45, 0x51, 0x55, 0x56, 0x86, 0x92, 0x95, 0x96, 0x97, 0x9A, 0xA6, 0xAA, 0xAB, 0xD6, 0xEA, 0xEB, 0x00, 0x00, 0x00 },
748 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x85, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
749 { 0x45, 0x55, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xDA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
750 { 0x45, 0x55, 0x56, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xDA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
751 { 0x45, 0x55, 0x56, 0x86, 0x95, 0x96, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0xDA, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
752 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x85, 0x94, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xD9, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
753 { 0x45, 0x55, 0x59, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xDA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
754 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x85, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0xDA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
755 { 0x45, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0xA6, 0xAA, 0xAB, 0xDA, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00 },
756 { 0x44, 0x45, 0x54, 0x55, 0x59, 0x89, 0x95, 0x98, 0x99, 0x9A, 0x9D, 0xA9, 0xAA, 0xAE, 0xD9, 0xEA, 0xEE, 0x00, 0x00, 0x00 },
757 { 0x45, 0x55, 0x59, 0x89, 0x95, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0xDA, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
758 { 0x45, 0x55, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9E, 0xA9, 0xAA, 0xAE, 0xDA, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00 },
759 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0x9B, 0x9E, 0xAA, 0xAB, 0xAE, 0xDA, 0xEA, 0xEF, 0x00, 0x00, 0x00 },
760 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x91, 0x94, 0x95, 0x96, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
761 { 0x51, 0x55, 0x91, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xE6, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
762 { 0x51, 0x55, 0x56, 0x91, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xE6, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
763 { 0x51, 0x55, 0x56, 0x92, 0x95, 0x96, 0x9A, 0xA6, 0xA7, 0xAA, 0xAB, 0xE6, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
764 { 0x54, 0x55, 0x94, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xE9, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
765 { 0x55, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
766 { 0x55, 0x56, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
767 { 0x55, 0x56, 0x95, 0x96, 0x9A, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
768 { 0x54, 0x55, 0x59, 0x94, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xE9, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
769 { 0x55, 0x59, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
770 { 0x45, 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
771 { 0x45, 0x55, 0x56, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
772 { 0x54, 0x55, 0x59, 0x95, 0x98, 0x99, 0x9A, 0xA9, 0xAA, 0xAD, 0xAE, 0xE9, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
773 { 0x55, 0x59, 0x95, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
774 { 0x45, 0x55, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
775 { 0x55, 0x56, 0x59, 0x5A, 0x95, 0x96, 0x99, 0x9A, 0xAA, 0xAB, 0xAE, 0xEA, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
776 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x91, 0x94, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xE5, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
777 { 0x51, 0x55, 0x65, 0x91, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xE6, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
778 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x91, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xE6, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
779 { 0x51, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xE6, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00 },
780 { 0x54, 0x55, 0x65, 0x94, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xE9, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
781 { 0x55, 0x65, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
782 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
783 { 0x51, 0x55, 0x56, 0x66, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xAA, 0xAB, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
784 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x94, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xE9, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
785 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
786 { 0x55, 0x56, 0x59, 0x65, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
787 { 0x55, 0x56, 0x5A, 0x66, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xEA, 0xEB, 0x00, 0x00, 0x00, 0x00 },
788 { 0x54, 0x55, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xE9, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00 },
789 { 0x54, 0x55, 0x59, 0x69, 0x95, 0x99, 0x9A, 0xA5, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
790 { 0x55, 0x59, 0x5A, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xEA, 0xEE, 0x00, 0x00, 0x00, 0x00 },
791 { 0x55, 0x56, 0x59, 0x5A, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
792 { 0x50, 0x51, 0x54, 0x55, 0x65, 0x95, 0xA1, 0xA4, 0xA5, 0xA6, 0xA9, 0xAA, 0xB5, 0xBA, 0xE5, 0xEA, 0xFA, 0x00, 0x00, 0x00 },
793 { 0x51, 0x55, 0x65, 0x95, 0xA1, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0xE6, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
794 { 0x51, 0x55, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xB6, 0xBA, 0xE6, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00 },
795 { 0x51, 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA7, 0xAA, 0xAB, 0xB6, 0xBA, 0xE6, 0xEA, 0xFB, 0x00, 0x00, 0x00 },
796 { 0x54, 0x55, 0x65, 0x95, 0xA4, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0xE9, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
797 { 0x55, 0x65, 0x95, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
798 { 0x51, 0x55, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
799 { 0x55, 0x56, 0x65, 0x66, 0x95, 0x96, 0xA5, 0xA6, 0xAA, 0xAB, 0xBA, 0xEA, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
800 { 0x54, 0x55, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xB9, 0xBA, 0xE9, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00 },
801 { 0x54, 0x55, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
802 { 0x55, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xBA, 0xEA, 0xFA, 0x00, 0x00, 0x00, 0x00 },
803 { 0x55, 0x56, 0x65, 0x66, 0x6A, 0x95, 0x96, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xBA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
804 { 0x54, 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAD, 0xAE, 0xB9, 0xBA, 0xE9, 0xEA, 0xFE, 0x00, 0x00, 0x00 },
805 { 0x55, 0x59, 0x65, 0x69, 0x95, 0x99, 0xA5, 0xA9, 0xAA, 0xAE, 0xBA, 0xEA, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
806 { 0x55, 0x59, 0x65, 0x69, 0x6A, 0x95, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAE, 0xBA, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00 },
807 { 0x55, 0x56, 0x59, 0x5A, 0x65, 0x66, 0x69, 0x6A, 0x95, 0x96, 0x99, 0x9A, 0xA5, 0xA6, 0xA9, 0xAA, 0xAB, 0xAE, 0xBA, 0xEA },
811 LatticePoint4D latticePoints[256];
812 for (
int i = 0; i < 256; i++) {
813 int cx = ((i >> 0) & 3) - 1;
814 int cy = ((i >> 2) & 3) - 1;
815 int cz = ((i >> 4) & 3) - 1;
816 int cw = ((i >> 6) & 3) - 1;
817 latticePoints[i] = { cx, cy, cz, cw };
819 for (
unsigned int i = 0; i < 256; i++) {
820 LOOKUP_4D_SIZE[i] = lookup4DPregenSize[i];
821 for (
unsigned char j = 0; j < lookup4DPregenSize[i]; j++) {
822 LOOKUP_4D[i][j] = latticePoints[lookup4DPregen[i][j]];
827void OpenSimplex2S::initGradients()
829 static const int grad2_size = 24;
830 Grad2 grad2[grad2_size] {
831 { 0.130526192220052, 0.99144486137381 }, { 0.38268343236509, 0.923879532511287 },
832 { 0.608761429008721, 0.793353340291235 }, { 0.793353340291235, 0.608761429008721 },
833 { 0.923879532511287, 0.38268343236509 }, { 0.99144486137381, 0.130526192220051 },
834 { 0.99144486137381, -0.130526192220051 }, { 0.923879532511287, -0.38268343236509 },
835 { 0.793353340291235, -0.60876142900872 }, { 0.608761429008721, -0.793353340291235 },
836 { 0.38268343236509, -0.923879532511287 }, { 0.130526192220052, -0.99144486137381 },
837 { -0.130526192220052, -0.99144486137381 }, { -0.38268343236509, -0.923879532511287 },
838 { -0.608761429008721, -0.793353340291235 }, { -0.793353340291235, -0.608761429008721 },
839 { -0.923879532511287, -0.38268343236509 }, { -0.99144486137381, -0.130526192220052 },
840 { -0.99144486137381, 0.130526192220051 }, { -0.923879532511287, 0.38268343236509 },
841 { -0.793353340291235, 0.608761429008721 }, { -0.608761429008721, 0.793353340291235 },
842 { -0.38268343236509, 0.923879532511287 }, { -0.130526192220052, 0.99144486137381 },
844 for (
int i = 0; i < grad2_size; i++) {
848 for (
int i = 0; i < PSIZE; i++) {
852 static const int grad3_size = 48;
853 Grad3 grad3[grad3_size] {
854 { -2.22474487139, -2.22474487139, -1.0 },
855 { -2.22474487139, -2.22474487139, 1.0 },
856 { -3.0862664687972017, -1.1721513422464978, 0.0 },
857 { -1.1721513422464978, -3.0862664687972017, 0.0 },
858 { -2.22474487139, -1.0, -2.22474487139 },
859 { -2.22474487139, 1.0, -2.22474487139 },
860 { -1.1721513422464978, 0.0, -3.0862664687972017 },
861 { -3.0862664687972017, 0.0, -1.1721513422464978 },
862 { -2.22474487139, -1.0, 2.22474487139 },
863 { -2.22474487139, 1.0, 2.22474487139 },
864 { -3.0862664687972017, 0.0, 1.1721513422464978 },
865 { -1.1721513422464978, 0.0, 3.0862664687972017 },
866 { -2.22474487139, 2.22474487139, -1.0 },
867 { -2.22474487139, 2.22474487139, 1.0 },
868 { -1.1721513422464978, 3.0862664687972017, 0.0 },
869 { -3.0862664687972017, 1.1721513422464978, 0.0 },
870 { -1.0, -2.22474487139, -2.22474487139 },
871 { 1.0, -2.22474487139, -2.22474487139 },
872 { 0.0, -3.0862664687972017, -1.1721513422464978 },
873 { 0.0, -1.1721513422464978, -3.0862664687972017 },
874 { -1.0, -2.22474487139, 2.22474487139 },
875 { 1.0, -2.22474487139, 2.22474487139 },
876 { 0.0, -1.1721513422464978, 3.0862664687972017 },
877 { 0.0, -3.0862664687972017, 1.1721513422464978 },
878 { -1.0, 2.22474487139, -2.22474487139 },
879 { 1.0, 2.22474487139, -2.22474487139 },
880 { 0.0, 1.1721513422464978, -3.0862664687972017 },
881 { 0.0, 3.0862664687972017, -1.1721513422464978 },
882 { -1.0, 2.22474487139, 2.22474487139 },
883 { 1.0, 2.22474487139, 2.22474487139 },
884 { 0.0, 3.0862664687972017, 1.1721513422464978 },
885 { 0.0, 1.1721513422464978, 3.0862664687972017 },
886 { 2.22474487139, -2.22474487139, -1.0 },
887 { 2.22474487139, -2.22474487139, 1.0 },
888 { 1.1721513422464978, -3.0862664687972017, 0.0 },
889 { 3.0862664687972017, -1.1721513422464978, 0.0 },
890 { 2.22474487139, -1.0, -2.22474487139 },
891 { 2.22474487139, 1.0, -2.22474487139 },
892 { 3.0862664687972017, 0.0, -1.1721513422464978 },
893 { 1.1721513422464978, 0.0, -3.0862664687972017 },
894 { 2.22474487139, -1.0, 2.22474487139 },
895 { 2.22474487139, 1.0, 2.22474487139 },
896 { 1.1721513422464978, 0.0, 3.0862664687972017 },
897 { 3.0862664687972017, 0.0, 1.1721513422464978 },
898 { 2.22474487139, 2.22474487139, -1.0 },
899 { 2.22474487139, 2.22474487139, 1.0 },
900 { 3.0862664687972017, 1.1721513422464978, 0.0 },
901 { 1.1721513422464978, 3.0862664687972017, 0.0 },
903 for (
int i = 0; i < grad3_size; i++) {
908 for (
int i = 0; i < PSIZE; i++) {
909 GRADIENTS_3D[i] = grad3[i % grad3_size];
912 static const int grad4_size = 160;
913 Grad4 grad4[grad4_size] {
914 { -0.753341017856078, -0.37968289875261624, -0.37968289875261624, -0.37968289875261624 },
915 { -0.7821684431180708, -0.4321472685365301, -0.4321472685365301, 0.12128480194602098 },
916 { -0.7821684431180708, -0.4321472685365301, 0.12128480194602098, -0.4321472685365301 },
917 { -0.7821684431180708, 0.12128480194602098, -0.4321472685365301, -0.4321472685365301 },
918 { -0.8586508742123365, -0.508629699630796, 0.044802370851755174, 0.044802370851755174 },
919 { -0.8586508742123365, 0.044802370851755174, -0.508629699630796, 0.044802370851755174 },
920 { -0.8586508742123365, 0.044802370851755174, 0.044802370851755174, -0.508629699630796 },
921 { -0.9982828964265062, -0.03381941603233842, -0.03381941603233842, -0.03381941603233842 },
922 { -0.37968289875261624, -0.753341017856078, -0.37968289875261624, -0.37968289875261624 },
923 { -0.4321472685365301, -0.7821684431180708, -0.4321472685365301, 0.12128480194602098 },
924 { -0.4321472685365301, -0.7821684431180708, 0.12128480194602098, -0.4321472685365301 },
925 { 0.12128480194602098, -0.7821684431180708, -0.4321472685365301, -0.4321472685365301 },
926 { -0.508629699630796, -0.8586508742123365, 0.044802370851755174, 0.044802370851755174 },
927 { 0.044802370851755174, -0.8586508742123365, -0.508629699630796, 0.044802370851755174 },
928 { 0.044802370851755174, -0.8586508742123365, 0.044802370851755174, -0.508629699630796 },
929 { -0.03381941603233842, -0.9982828964265062, -0.03381941603233842, -0.03381941603233842 },
930 { -0.37968289875261624, -0.37968289875261624, -0.753341017856078, -0.37968289875261624 },
931 { -0.4321472685365301, -0.4321472685365301, -0.7821684431180708, 0.12128480194602098 },
932 { -0.4321472685365301, 0.12128480194602098, -0.7821684431180708, -0.4321472685365301 },
933 { 0.12128480194602098, -0.4321472685365301, -0.7821684431180708, -0.4321472685365301 },
934 { -0.508629699630796, 0.044802370851755174, -0.8586508742123365, 0.044802370851755174 },
935 { 0.044802370851755174, -0.508629699630796, -0.8586508742123365, 0.044802370851755174 },
936 { 0.044802370851755174, 0.044802370851755174, -0.8586508742123365, -0.508629699630796 },
937 { -0.03381941603233842, -0.03381941603233842, -0.9982828964265062, -0.03381941603233842 },
938 { -0.37968289875261624, -0.37968289875261624, -0.37968289875261624, -0.753341017856078 },
939 { -0.4321472685365301, -0.4321472685365301, 0.12128480194602098, -0.7821684431180708 },
940 { -0.4321472685365301, 0.12128480194602098, -0.4321472685365301, -0.7821684431180708 },
941 { 0.12128480194602098, -0.4321472685365301, -0.4321472685365301, -0.7821684431180708 },
942 { -0.508629699630796, 0.044802370851755174, 0.044802370851755174, -0.8586508742123365 },
943 { 0.044802370851755174, -0.508629699630796, 0.044802370851755174, -0.8586508742123365 },
944 { 0.044802370851755174, 0.044802370851755174, -0.508629699630796, -0.8586508742123365 },
945 { -0.03381941603233842, -0.03381941603233842, -0.03381941603233842, -0.9982828964265062 },
946 { -0.6740059517812944, -0.3239847771997537, -0.3239847771997537, 0.5794684678643381 },
947 { -0.7504883828755602, -0.4004672082940195, 0.15296486218853164, 0.5029860367700724 },
948 { -0.7504883828755602, 0.15296486218853164, -0.4004672082940195, 0.5029860367700724 },
949 { -0.8828161875373585, 0.08164729285680945, 0.08164729285680945, 0.4553054119602712 },
950 { -0.4553054119602712, -0.08164729285680945, -0.08164729285680945, 0.8828161875373585 },
951 { -0.5029860367700724, -0.15296486218853164, 0.4004672082940195, 0.7504883828755602 },
952 { -0.5029860367700724, 0.4004672082940195, -0.15296486218853164, 0.7504883828755602 },
953 { -0.5794684678643381, 0.3239847771997537, 0.3239847771997537, 0.6740059517812944 },
954 { -0.3239847771997537, -0.6740059517812944, -0.3239847771997537, 0.5794684678643381 },
955 { -0.4004672082940195, -0.7504883828755602, 0.15296486218853164, 0.5029860367700724 },
956 { 0.15296486218853164, -0.7504883828755602, -0.4004672082940195, 0.5029860367700724 },
957 { 0.08164729285680945, -0.8828161875373585, 0.08164729285680945, 0.4553054119602712 },
958 { -0.08164729285680945, -0.4553054119602712, -0.08164729285680945, 0.8828161875373585 },
959 { -0.15296486218853164, -0.5029860367700724, 0.4004672082940195, 0.7504883828755602 },
960 { 0.4004672082940195, -0.5029860367700724, -0.15296486218853164, 0.7504883828755602 },
961 { 0.3239847771997537, -0.5794684678643381, 0.3239847771997537, 0.6740059517812944 },
962 { -0.3239847771997537, -0.3239847771997537, -0.6740059517812944, 0.5794684678643381 },
963 { -0.4004672082940195, 0.15296486218853164, -0.7504883828755602, 0.5029860367700724 },
964 { 0.15296486218853164, -0.4004672082940195, -0.7504883828755602, 0.5029860367700724 },
965 { 0.08164729285680945, 0.08164729285680945, -0.8828161875373585, 0.4553054119602712 },
966 { -0.08164729285680945, -0.08164729285680945, -0.4553054119602712, 0.8828161875373585 },
967 { -0.15296486218853164, 0.4004672082940195, -0.5029860367700724, 0.7504883828755602 },
968 { 0.4004672082940195, -0.15296486218853164, -0.5029860367700724, 0.7504883828755602 },
969 { 0.3239847771997537, 0.3239847771997537, -0.5794684678643381, 0.6740059517812944 },
970 { -0.6740059517812944, -0.3239847771997537, 0.5794684678643381, -0.3239847771997537 },
971 { -0.7504883828755602, -0.4004672082940195, 0.5029860367700724, 0.15296486218853164 },
972 { -0.7504883828755602, 0.15296486218853164, 0.5029860367700724, -0.4004672082940195 },
973 { -0.8828161875373585, 0.08164729285680945, 0.4553054119602712, 0.08164729285680945 },
974 { -0.4553054119602712, -0.08164729285680945, 0.8828161875373585, -0.08164729285680945 },
975 { -0.5029860367700724, -0.15296486218853164, 0.7504883828755602, 0.4004672082940195 },
976 { -0.5029860367700724, 0.4004672082940195, 0.7504883828755602, -0.15296486218853164 },
977 { -0.5794684678643381, 0.3239847771997537, 0.6740059517812944, 0.3239847771997537 },
978 { -0.3239847771997537, -0.6740059517812944, 0.5794684678643381, -0.3239847771997537 },
979 { -0.4004672082940195, -0.7504883828755602, 0.5029860367700724, 0.15296486218853164 },
980 { 0.15296486218853164, -0.7504883828755602, 0.5029860367700724, -0.4004672082940195 },
981 { 0.08164729285680945, -0.8828161875373585, 0.4553054119602712, 0.08164729285680945 },
982 { -0.08164729285680945, -0.4553054119602712, 0.8828161875373585, -0.08164729285680945 },
983 { -0.15296486218853164, -0.5029860367700724, 0.7504883828755602, 0.4004672082940195 },
984 { 0.4004672082940195, -0.5029860367700724, 0.7504883828755602, -0.15296486218853164 },
985 { 0.3239847771997537, -0.5794684678643381, 0.6740059517812944, 0.3239847771997537 },
986 { -0.3239847771997537, -0.3239847771997537, 0.5794684678643381, -0.6740059517812944 },
987 { -0.4004672082940195, 0.15296486218853164, 0.5029860367700724, -0.7504883828755602 },
988 { 0.15296486218853164, -0.4004672082940195, 0.5029860367700724, -0.7504883828755602 },
989 { 0.08164729285680945, 0.08164729285680945, 0.4553054119602712, -0.8828161875373585 },
990 { -0.08164729285680945, -0.08164729285680945, 0.8828161875373585, -0.4553054119602712 },
991 { -0.15296486218853164, 0.4004672082940195, 0.7504883828755602, -0.5029860367700724 },
992 { 0.4004672082940195, -0.15296486218853164, 0.7504883828755602, -0.5029860367700724 },
993 { 0.3239847771997537, 0.3239847771997537, 0.6740059517812944, -0.5794684678643381 },
994 { -0.6740059517812944, 0.5794684678643381, -0.3239847771997537, -0.3239847771997537 },
995 { -0.7504883828755602, 0.5029860367700724, -0.4004672082940195, 0.15296486218853164 },
996 { -0.7504883828755602, 0.5029860367700724, 0.15296486218853164, -0.4004672082940195 },
997 { -0.8828161875373585, 0.4553054119602712, 0.08164729285680945, 0.08164729285680945 },
998 { -0.4553054119602712, 0.8828161875373585, -0.08164729285680945, -0.08164729285680945 },
999 { -0.5029860367700724, 0.7504883828755602, -0.15296486218853164, 0.4004672082940195 },
1000 { -0.5029860367700724, 0.7504883828755602, 0.4004672082940195, -0.15296486218853164 },
1001 { -0.5794684678643381, 0.6740059517812944, 0.3239847771997537, 0.3239847771997537 },
1002 { -0.3239847771997537, 0.5794684678643381, -0.6740059517812944, -0.3239847771997537 },
1003 { -0.4004672082940195, 0.5029860367700724, -0.7504883828755602, 0.15296486218853164 },
1004 { 0.15296486218853164, 0.5029860367700724, -0.7504883828755602, -0.4004672082940195 },
1005 { 0.08164729285680945, 0.4553054119602712, -0.8828161875373585, 0.08164729285680945 },
1006 { -0.08164729285680945, 0.8828161875373585, -0.4553054119602712, -0.08164729285680945 },
1007 { -0.15296486218853164, 0.7504883828755602, -0.5029860367700724, 0.4004672082940195 },
1008 { 0.4004672082940195, 0.7504883828755602, -0.5029860367700724, -0.15296486218853164 },
1009 { 0.3239847771997537, 0.6740059517812944, -0.5794684678643381, 0.3239847771997537 },
1010 { -0.3239847771997537, 0.5794684678643381, -0.3239847771997537, -0.6740059517812944 },
1011 { -0.4004672082940195, 0.5029860367700724, 0.15296486218853164, -0.7504883828755602 },
1012 { 0.15296486218853164, 0.5029860367700724, -0.4004672082940195, -0.7504883828755602 },
1013 { 0.08164729285680945, 0.4553054119602712, 0.08164729285680945, -0.8828161875373585 },
1014 { -0.08164729285680945, 0.8828161875373585, -0.08164729285680945, -0.4553054119602712 },
1015 { -0.15296486218853164, 0.7504883828755602, 0.4004672082940195, -0.5029860367700724 },
1016 { 0.4004672082940195, 0.7504883828755602, -0.15296486218853164, -0.5029860367700724 },
1017 { 0.3239847771997537, 0.6740059517812944, 0.3239847771997537, -0.5794684678643381 },
1018 { 0.5794684678643381, -0.6740059517812944, -0.3239847771997537, -0.3239847771997537 },
1019 { 0.5029860367700724, -0.7504883828755602, -0.4004672082940195, 0.15296486218853164 },
1020 { 0.5029860367700724, -0.7504883828755602, 0.15296486218853164, -0.4004672082940195 },
1021 { 0.4553054119602712, -0.8828161875373585, 0.08164729285680945, 0.08164729285680945 },
1022 { 0.8828161875373585, -0.4553054119602712, -0.08164729285680945, -0.08164729285680945 },
1023 { 0.7504883828755602, -0.5029860367700724, -0.15296486218853164, 0.4004672082940195 },
1024 { 0.7504883828755602, -0.5029860367700724, 0.4004672082940195, -0.15296486218853164 },
1025 { 0.6740059517812944, -0.5794684678643381, 0.3239847771997537, 0.3239847771997537 },
1026 { 0.5794684678643381, -0.3239847771997537, -0.6740059517812944, -0.3239847771997537 },
1027 { 0.5029860367700724, -0.4004672082940195, -0.7504883828755602, 0.15296486218853164 },
1028 { 0.5029860367700724, 0.15296486218853164, -0.7504883828755602, -0.4004672082940195 },
1029 { 0.4553054119602712, 0.08164729285680945, -0.8828161875373585, 0.08164729285680945 },
1030 { 0.8828161875373585, -0.08164729285680945, -0.4553054119602712, -0.08164729285680945 },
1031 { 0.7504883828755602, -0.15296486218853164, -0.5029860367700724, 0.4004672082940195 },
1032 { 0.7504883828755602, 0.4004672082940195, -0.5029860367700724, -0.15296486218853164 },
1033 { 0.6740059517812944, 0.3239847771997537, -0.5794684678643381, 0.3239847771997537 },
1034 { 0.5794684678643381, -0.3239847771997537, -0.3239847771997537, -0.6740059517812944 },
1035 { 0.5029860367700724, -0.4004672082940195, 0.15296486218853164, -0.7504883828755602 },
1036 { 0.5029860367700724, 0.15296486218853164, -0.4004672082940195, -0.7504883828755602 },
1037 { 0.4553054119602712, 0.08164729285680945, 0.08164729285680945, -0.8828161875373585 },
1038 { 0.8828161875373585, -0.08164729285680945, -0.08164729285680945, -0.4553054119602712 },
1039 { 0.7504883828755602, -0.15296486218853164, 0.4004672082940195, -0.5029860367700724 },
1040 { 0.7504883828755602, 0.4004672082940195, -0.15296486218853164, -0.5029860367700724 },
1041 { 0.6740059517812944, 0.3239847771997537, 0.3239847771997537, -0.5794684678643381 },
1042 { 0.03381941603233842, 0.03381941603233842, 0.03381941603233842, 0.9982828964265062 },
1043 { -0.044802370851755174, -0.044802370851755174, 0.508629699630796, 0.8586508742123365 },
1044 { -0.044802370851755174, 0.508629699630796, -0.044802370851755174, 0.8586508742123365 },
1045 { -0.12128480194602098, 0.4321472685365301, 0.4321472685365301, 0.7821684431180708 },
1046 { 0.508629699630796, -0.044802370851755174, -0.044802370851755174, 0.8586508742123365 },
1047 { 0.4321472685365301, -0.12128480194602098, 0.4321472685365301, 0.7821684431180708 },
1048 { 0.4321472685365301, 0.4321472685365301, -0.12128480194602098, 0.7821684431180708 },
1049 { 0.37968289875261624, 0.37968289875261624, 0.37968289875261624, 0.753341017856078 },
1050 { 0.03381941603233842, 0.03381941603233842, 0.9982828964265062, 0.03381941603233842 },
1051 { -0.044802370851755174, 0.044802370851755174, 0.8586508742123365, 0.508629699630796 },
1052 { -0.044802370851755174, 0.508629699630796, 0.8586508742123365, -0.044802370851755174 },
1053 { -0.12128480194602098, 0.4321472685365301, 0.7821684431180708, 0.4321472685365301 },
1054 { 0.508629699630796, -0.044802370851755174, 0.8586508742123365, -0.044802370851755174 },
1055 { 0.4321472685365301, -0.12128480194602098, 0.7821684431180708, 0.4321472685365301 },
1056 { 0.4321472685365301, 0.4321472685365301, 0.7821684431180708, -0.12128480194602098 },
1057 { 0.37968289875261624, 0.37968289875261624, 0.753341017856078, 0.37968289875261624 },
1058 { 0.03381941603233842, 0.9982828964265062, 0.03381941603233842, 0.03381941603233842 },
1059 { -0.044802370851755174, 0.8586508742123365, -0.044802370851755174, 0.508629699630796 },
1060 { -0.044802370851755174, 0.8586508742123365, 0.508629699630796, -0.044802370851755174 },
1061 { -0.12128480194602098, 0.7821684431180708, 0.4321472685365301, 0.4321472685365301 },
1062 { 0.508629699630796, 0.8586508742123365, -0.044802370851755174, -0.044802370851755174 },
1063 { 0.4321472685365301, 0.7821684431180708, -0.12128480194602098, 0.4321472685365301 },
1064 { 0.4321472685365301, 0.7821684431180708, 0.4321472685365301, -0.12128480194602098 },
1065 { 0.37968289875261624, 0.753341017856078, 0.37968289875261624, 0.37968289875261624 },
1066 { 0.9982828964265062, 0.03381941603233842, 0.03381941603233842, 0.03381941603233842 },
1067 { 0.8586508742123365, -0.044802370851755174, -0.044802370851755174, 0.508629699630796 },
1068 { 0.8586508742123365, -0.044802370851755174, 0.508629699630796, -0.044802370851755174 },
1069 { 0.7821684431180708, -0.12128480194602098, 0.4321472685365301, 0.4321472685365301 },
1070 { 0.8586508742123365, 0.508629699630796, -0.044802370851755174, -0.044802370851755174 },
1071 { 0.7821684431180708, 0.4321472685365301, -0.12128480194602098, 0.4321472685365301 },
1072 { 0.7821684431180708, 0.4321472685365301, 0.4321472685365301, -0.12128480194602098 },
1073 { 0.753341017856078, 0.37968289875261624, 0.37968289875261624, 0.37968289875261624 },
1075 for (
int i = 0; i < grad4_size; i++) {
1081 for (
int i = 0; i < PSIZE; i++) {
1082 GRADIENTS_4D[i] = grad4[i % grad4_size];
double noise3_XYBeforeZ(double x, double y, double z)
static Grad2 GRADIENTS_2D[PSIZE]
double noise2_Base(double xs, double ys)
double noise4_XZBeforeYW(double x, double y, double z, double w)
double noise3_BCC(double xr, double yr, double zr)
double noise2_XBeforeY(double x, double y)
double noise3_XZBeforeY(double x, double y, double z)
double noise3_Classic(double x, double y, double z)
double noise2(double x, double y)
double noise4_Classic(double x, double y, double z, double w)
double noise4_XYZBeforeW(double x, double y, double z, double w)
double noise4_Base(double xs, double ys, double zs, double ws)
double noise4_XYBeforeZW(double x, double y, double z, double w)