Convertisseur du format jo au format wav, utilisant les tableaux

C'est du c++, il faut entrer un fichier 10.jo pour généré un fichier 10.wav
pour compiler : g++ convertisseur.cpp -o convertisseur -Wall


// pour compiler g++ convertisseur.cpp -o convertisseur  -Wall
//converti un fichier nommé 10.jo en 10.wav
#include <stdio.h>
#include <stdlib.h>

#include <stdio.h>
#include <iostream>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>

#define total1 256
#define total 256
#define combientab1 1
#define combientab2 2
#define combientab3 3
#define combientab4 4
#define combientab5 5
#define combientab6 6
#define combientab7 7
#define combientab8 8
#define combientab9 9
#define combientab10 10
#define combientab11 11
#define combientab12 12
#define combientab13 13
#define combientab14 14
#define combientab15 15
#define combientab16 16
#define combientab17 17
#define combientab18 18
#define combientab19 19
#define combientab20 20
#define combientab21 21
#define combientab22 22
#define combientab23 23
#define combientab24 24
#define combientab25 25
#define combientab26 26
#define combientab27 27
#define combientab28 28
#define combientab29 29
#define combientab30 30
#define combientab31 31
#define combientab32 32
#define combientab33 33
#define combientab34 34
#define combientab35 35
#define combientab36 36
#define combientab37 37
#define combientab38 38
#define combientab39 39
#define combientab40 40
#define combientab41 41
#define combientab42 42
#define combientab43 43
#define combientab44 44
#define combientab45 45
#define combientab46 46
#define combientab47 47
#define combientab48 48
#define combientab49 49
#define combientab50 50
#define combientab51 51
#define combientab52 52
#define combientab53 53
#define combientab54 54
#define combientab55 55
#define combientab56 56
#define combientab57 57
#define combientab58 58
#define combientab59 59
#define combientab60 60
#define combientab61 61
#define combientab62 62
#define combientab63 63
#define combientab64 64
#define combientab65 65
#define combientab66 66
#define combientab67 67
#define combientab68 68
#define combientab69 69
#define combientab70 70
#define combientab71 71
#define combientab72 72
#define combientab73 73
#define combientab74 74
#define combientab75 75
#define combientab76 76
#define combientab77 77
#define combientab78 78
#define combientab79 79
#define combientab80 80
#define combientab81 81
#define combientab82 82
#define combientab83 83
#define combientab84 84
#define combientab85 85
#define combientab86 86
#define combientab87 87
#define combientab88 88
#define combientab89 89
#define combientab90 90
#define combientab91 91
#define combientab92 92
#define combientab93 93
#define combientab94 94
#define combientab95 95
#define combientab96 96
#define combientab97 97
#define combientab98 98
#define combientab99 99
#define combientab100 100
#define combientab101 101
#define combientab102 102
#define combientab103 103
#define combientab104 104
#define combientab105 105
#define combientab106 106
#define combientab107 107
#define combientab108 108
#define combientab109 109
#define combientab110 110
#define combientab111 111
#define combientab112 112
#define combientab113 113
#define combientab114 114
#define combientab115 115
#define combientab116 116
#define combientab117 117
#define combientab118 118
#define combientab119 119
#define combientab120 120
#define combientab121 121
#define combientab122 122
#define combientab123 123
#define combientab124 124
#define combientab125 125
#define combientab126 126
#define combientab127 127
#define combientab128 128

#define NumDeTab 128

  // Nom du fichier piste
  char awav[32];

  
    // Nom du fichier piste
  char ajo[32];


//char awav[] = {"1.wav"};
//char ajo[] = {"1.jo"};

		  double codebash;
// Calcule le nombre de points du fichier jo fichierjo
static int nbdepointsFichierJo(FILE* fichierjo)
{
  // Retour au début du fichier
  rewind(fichierjo);

  // Initialisation compteur de points
  int nbdepoints = 0;
  int abadie = EOF;
  for(int impair=1; (abadie=fgetc(fichierjo))!= EOF; impair=1-impair)
   {
    if(impair)
     continue;
    nbdepoints += abadie;
   }

  return nbdepoints;
}

// Écrit l'en-tête wave du fichier cn.wav en fonction du fichier cn.jo
static void enteteFichierWave(FILE* fichierwav, FILE* fichierjo)
{
  int nbdepoints = nbdepointsFichierJo(fichierjo);

  /*ici*je*commence*le*traitement*comme*jécris*chaque*base*de*temps*sur*deux*octets*je*multiplis*par*2*/
  int durerentete = nbdepoints * 2;
  int longueurentete = durerentete + 44 - 8;

  /****declaration**type**audio*4octets**/
  unsigned char riff[4] = { 0x52, 0x49, 0x46, 0x46 };
  fwrite (riff, 1, sizeof (riff), fichierwav);

  /****longueurentete*du*fichier*audio*ici*21200**/
  fwrite (&longueurentete, sizeof (longueurentete), 1, fichierwav);

  /****declaration**type**wave*4octets**/
  unsigned char wave[4] = { 0x57, 0x41, 0x56, 0x45 };
  fwrite (wave, 1, sizeof (wave), fichierwav);

  /****declaration**type**fmt suivit d'un espace qui s'écrit 0x20 soit 4octets**/
  unsigned char fmt[4] = { 0x66, 0x6D, 0x74, 0x20 };
  fwrite (fmt, 1, sizeof (fmt), fichierwav);

  /****declaration**de*la*maniere d'écrire*sous forme*d'un*entier long (unsigned int) soit 4octets**/
  /**comme c'est du 16 octets en exadécimal cela donne 0x10****/
  unsigned char poids[4] = { 0x10, 0x00, 0x00, 0x00 };
  fwrite (poids, 1, sizeof (poids), fichierwav);

  /****codage pour indiquer le PCM c'est : 1 soit 2octets**/
  unsigned char pourpcm[2] = { 0x01, 0x00 };
  fwrite (pourpcm, 1, sizeof (pourpcm), fichierwav);

  /****nombre de piste sur 2octets*ici c'est du mono, donc 1*/
  unsigned char piste[2] = { 0x01, 0x00 };
  fwrite (piste, 1, sizeof (piste), fichierwav);

  /**nombre d'échantillons par seconde**sur 4 octets**/
  unsigned char tempsunitaire[4] = { 0x44, 0xAC, 0x00, 0x00 };
  fwrite (tempsunitaire, 1, sizeof (tempsunitaire), fichierwav);

  /**nombre d'octets par secondes**sur 4 octets***le*double*du*précédent*dans*ce*cas*/
  unsigned char octetpars[4] = { 0x88, 0x58, 0x01, 0x00 };
  fwrite (octetpars, 1, sizeof (octetpars), fichierwav);

  /*taille en octet d'1 échantillon***sur*2octets**/
  unsigned char tailleechant[2] = { 0x02, 0x00 };
  fwrite (tailleechant, 1, sizeof (tailleechant), fichierwav);

  /*contient le nombre de bits par échantillon*2x8=16*soit*10*en*exa**sur*2octets**/
  unsigned char bitparechan[2] = { 0x10, 0x00 };
  fwrite (bitparechan, 1, sizeof (bitparechan), fichierwav);

  /**On ecrit ici data pour dire que le fichier commence**sur 4cotets**/
  unsigned char mono[4] = { 0x64, 0x61, 0x74, 0x61 };
  fwrite (mono, 1, sizeof (mono), fichierwav);

  fwrite (&durerentete, sizeof (durerentete), 1, fichierwav);
}

// Conversion d'un fichier piste.jo en un fichier piste.wav
void conversionJoWav(int piste)
{

  snprintf(awav, 32, "%d.wav", piste);
    snprintf(ajo, 32, "%d.jo", piste);

  // Nom du fichier wave cn.wav
  char nomfichierwav[32];
  snprintf(nomfichierwav, 32, "%d.wav", piste);
  char numeropourwav[1];
  snprintf(numeropourwav, 1, "%d", piste);

  // Ouverture du fichier wave
  FILE *fichierwav;
  if (!(fichierwav=fopen(nomfichierwav,"wb")))
   {
    printf ("Erreur: impossible d'ouvrir le fichier .wav suivant: %s\n", nomfichierwav);
    exit(-1);
   }

  // Nom du fichier jo cn.jo
  char nomfichierjo[32];
  snprintf(nomfichierjo,  32, "%d.jo",  piste);

  // Ouverture du fichier jo
  FILE *fichierjo;
  if(!(fichierjo=fopen(nomfichierjo,"rb")))
   {
    printf ("Erreur: impossible d'ouvrir le fichier .jo suivant: %s\n", nomfichierjo);
    exit(-1);
   }

  // Écritude de l'en-tête du fichier .wav
  enteteFichierWave(fichierwav,fichierjo);
  rewind(fichierjo);

  fclose(fichierjo);
  fclose(fichierwav);
  // Table magique de conversion
 










/*j ouvre mon fichier de donner*/
  FILE *jojo = NULL;

  int abadie = 0;


  int placement[NumDeTab] =
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128 };





  int tab1jo17[combientab1] = { 97932 };
  int tab2jo17[combientab2] = { 85621, 97932 };
  int tab3jo17[combientab3] = { 72553, 92467, 97932 };
  int tab4jo17[combientab4] = { 62080, 85621, 94547, 97932 };
  int tab5jo17[combientab5] = { 53965, 78807, 90244, 95509, 97932 };
  int tab6jo17[combientab6] = { 47611, 72553, 85621, 92467, 96053, 97932 };
  int tab7jo17[combientab7] =
    { 42542, 66986, 81030, 89100, 93737, 96402, 97932 };
  int tab8jo17[combientab8] =
    { 38421, 62080, 76649, 85621, 91145, 94547, 96642, 97932 };
  int tab9jo17[combientab9] =
    { 35013, 57766, 72553, 82163, 88408, 92467, 95104, 96818, 97932 };
  int tab10jo17[combientab10] =
    { 32151, 53965, 68765, 78807, 85621, 90244, 93381, 95509, 96953, 97932 };
  int tab11jo17[combientab11] =
    { 29715, 50601, 65280, 75597, 82849, 87945, 91527, 94045, 95815, 97058,
97932 };
  int tab12jo17[combientab12] =
    { 27619, 47611, 62080, 72553, 80134, 85621, 89592, 92467, 94547, 96053,
97143, 97932 };
  int tab13jo17[combientab13] =
    { 25797, 44939, 59144, 69683, 77504, 83307, 87614, 90809, 93180, 94939,
96245, 97214, 97932 };
  int tab14jo17[combientab14] =
    { 24199, 42542, 56446, 66986, 74975, 81030, 85621, 89100, 91738, 93737,
95253, 96402, 97272, 97932 };
  int tab15jo17[combientab15] =
    { 22786, 40380, 53965, 64454, 72553, 78807, 83636, 87365, 90244, 92467,
94183, 95509, 96532, 97322, 97932 };
  int tab16jo17[combientab16] =
    { 21528, 38421, 51677, 62080, 70243, 76649, 81676, 85621, 88716, 91145,
93052, 94547, 95721, 96642, 97365, 97932 };
  int tab17jo17[combientab17] =
    { 20401, 36639, 49565, 59854, 68044, 74563, 79753, 83883, 87171, 89788,
91872, 93530, 94850, 95900, 96737, 97403, 97932 };
  int tab18jo17[combientab18] =
    { 19385, 35013, 47611, 57766, 65953, 72553, 77874, 82163, 85621, 88408,
90655, 92467, 93927, 95104, 96053, 96818, 97435, 97932 };
  int tab19jo17[combientab19] =
    { 18466, 33522, 45797, 55806, 63967, 70621, 76046, 80469, 84076, 87016,
89414, 91369, 92962, 94262, 95322, 96185, 96890, 97464, 97932 };
  int tab20jo17[combientab20] =
    { 17629, 32151, 44112, 53965, 62080, 68765, 74272, 78807, 82543, 85621,
88156, 90244, 91964, 93381, 94547, 95509, 96300, 96953, 97490, 97932 };
  int tab21jo17[combientab21] =
    { 16865, 30886, 42542, 52232, 60288, 66986, 72553, 77182, 81030, 84230,
86889, 89100, 90939, 92467, 93737, 94794, 95672, 96402, 97008, 97513, 97932 };
  int tab22jo17[combientab22] =
    { 16164, 29715, 41076, 50601, 58586, 65280, 70892, 75597, 79542, 82849,
85621, 87945, 89894, 91527, 92897, 94045, 95008, 95815, 96491, 97058, 97534, 97932 };
  int tab23jo17[combientab23] =
    { 15519, 28630, 39705, 49063, 56968, 63646, 69288, 74054, 78080, 81482,
84356, 86784, 88835, 90567, 92031, 93268, 94313, 95195, 95941, 96571, 97103, 97553, 97932 };
  int tab24jo17[combientab24] =
    { 14923, 27619, 38421, 47611, 55429, 62080, 67739, 72553, 76649, 80134,
83099, 85621, 87767, 89592, 91145, 92467, 93591, 94547, 95361, 96053, 96642, 97143, 97570, 97932 };
  int tab25jo17[combientab25] =
    { 14371, 26678, 37215, 46238, 53965, 60580, 66246, 71097, 75250, 78807,
81853, 84461, 86694, 88606, 90244, 91646, 92847, 93875, 94755, 95509, 96154, 96707, 97180, 97585,
97932 };
  int tab26jo17[combientab26] =
    { 13859, 25797, 36081, 44939, 52570, 59144, 64806, 69683, 73885, 77504,
80622, 83307, 85621, 87614, 89330, 90809, 92083, 93180, 94125, 94939, 95641, 96245, 96765, 97214,
97600, 97932 };
  int tab27jo17[combientab27] =
    { 13382, 24973, 35013, 43709, 51242, 57766, 63418, 68313, 72553, 76226,
79408, 82163, 84550, 86618, 88408, 89959, 91303, 92467, 93475, 94348, 95104, 95760, 96327, 96818,
97244, 97613, 97932 };
  int tab28jo17[combientab28] =
    { 12936, 24199, 34005, 42542, 49975, 56446, 62080, 66986, 71256, 74975,
78212, 81030, 83484, 85621, 87481, 89100, 90510, 91738, 92807, 93737, 94547, 95253, 95867, 96402,
96867, 97272, 97625, 97932 };
  int tab29jo17[combientab29] =
    { 12519, 23471, 33052, 41433, 48765, 55180, 60791, 65700, 69994, 73750,
77037, 79911, 82426, 84626, 86551, 88235, 89708, 90996, 92123, 93109, 93972, 94727, 95387, 95964,
96470, 96912, 97298, 97637, 97932 };
  int tab30jo17[combientab30] =
    { 12128, 22786, 32151, 40380, 47611, 53965, 59548, 64454, 68765, 72553,
75882, 78807, 81378, 83636, 85621, 87365, 88897, 90244, 91427, 92467, 93381, 94183, 94889, 95509,
96053, 96532, 96953, 97322, 97647, 97932 };
  int tab31jo17[combientab31] =
    { 11761, 22139, 31296, 39377, 46507, 52798, 58349, 63248, 67570, 71385,
74750, 77720, 80340, 82652, 84693, 86493, 88081, 89483, 90720, 91812, 92775, 93624, 94374, 95036,
95620, 96135, 96589, 96991, 97345, 97657, 97932 };
  int tab32jo17[combientab32] =
    { 11415, 21528, 30486, 38421, 45450, 51677, 57194, 62080, 66409, 70243,
73640, 76649, 79315, 81676, 83768, 85621, 87262, 88716, 90004, 91145, 92156, 93052, 93845, 94547,
95170, 95721, 96210, 96642, 97026, 97365, 97666, 97932 };
  int tab33jo17[combientab33] =
    { 11089, 20949, 29715, 37510, 44439, 50601, 56079, 60949, 65280, 69130,
72553, 75597, 78303, 80709, 82849, 84751, 86442, 87945, 89282, 90471, 91527, 92467, 93302, 94045,
94705, 95293, 95815, 96279, 96691, 97058, 97384, 97675, 97932 };
  int tab34jo17[combientab34] =
    { 10782, 20401, 28983, 36639, 43471, 49565, 55003, 59854, 64183, 68044,
71490, 74563, 77306, 79753, 81936, 83883, 85621, 87171, 88554, 89788, 90889, 91872, 92748, 93530,
94227, 94850, 95405, 95900, 96342, 96737, 97089, 97403, 97683, 97932 };
  int tab35jo17[combientab35] =
    { 10490, 19880, 28285, 35808, 42542, 48569, 53965, 58794, 63116, 66986,
70449, 73549, 76324, 78807, 81030, 83020, 84802, 86396, 87823, 89100, 90244, 91267, 92183, 93003,
93737, 94394, 94982, 95509, 95980, 96402, 96779, 97117, 97419, 97690, 97932 };
  int tab36jo17[combientab36] =
    { 10214, 19385, 27619, 35013, 41651, 47611, 52962, 57766, 62080, 65953,
69431, 72553, 75357, 77874, 80134, 82163, 83985, 85621, 87090, 88408, 89592, 90655, 91610, 92467,
93236, 93927, 94547, 95104, 95604, 96053, 96457, 96818, 97143, 97435, 97697, 97932 };
  int tab37jo17[combientab37] =
    { 9952, 18914, 26984, 34251, 40795, 46687, 51993, 56771, 61073, 64947,
68436, 71577, 74406, 76953, 79247, 81312, 83172, 84847, 86355, 87713, 88936, 90037, 91029, 91922,
92726, 93450, 94101, 94689, 95217, 95693, 96122, 96508, 96855, 97168, 97450, 97704, 97932 };
  int tab38jo17[combientab38] =
    { 9704, 18466, 26378, 33522, 39972, 45797, 51057, 55806, 60095, 63967,
67463, 70621, 73472, 76046, 78370, 80469, 82364, 84076, 85621, 87016, 88276, 89414, 90441, 91369,
92206, 92962, 93645, 94262, 94819, 95322, 95776, 96185, 96556, 96890, 97192, 97464, 97710, 97932 };
  int tab39jo17[combientab39] =
    { 9467, 18038, 25797, 32822, 39182, 44939, 50152, 54871, 59144, 63011,
66513, 69683, 72553, 75152, 77504, 79634, 81562, 83307, 84888, 86318, 87614, 88786, 89848, 90809,
91679, 92467, 93180, 93826, 94410, 94939, 95418, 95852, 96245, 96600, 96922, 97214, 97477, 97716,
97932 };
  int tab40jo17[combientab40] =
    { 9242, 17629, 25242, 32151, 38421, 44112, 49277, 53965, 58219, 62080,
65585, 68765, 71652, 74272, 76649, 78807, 80766, 82543, 84157, 85621, 86950, 88156, 89250, 90244,
91145, 91964, 92706, 93381, 93992, 94547, 95051, 95509, 95924, 96300, 96642, 96953, 97234, 97490,
97722, 97932 };
  int tab41jo17[combientab41] =
    { 9027, 17239, 24709, 31506, 37688, 43313, 48430, 53085, 57320, 61173,
64678, 67866, 70767, 73405, 75806, 77990, 79977, 81784, 83429, 84924, 86285, 87523, 88649, 89674,
90606, 91454, 92226, 92927, 93566, 94147, 94675, 95156, 95593, 95991, 96353, 96682, 96981, 97254,
97502, 97727, 97932 };
  int tab42jo17[combientab42] =
    { 8822, 16865, 24199, 30886, 36983, 42542, 47611, 52232, 56446, 60288,
63791, 66986, 69898, 72553, 74975, 77182, 79195, 81030, 82704, 84230, 85621, 86889, 88046, 89100,
90062, 90939, 91738, 92467, 93131, 93737, 94290, 94794, 95253, 95672, 96053, 96402, 96719, 97008,
97272, 97513, 97732, 97932 };
  int tab43jo17[combientab43] =
    { 8626, 16507, 23709, 30289, 36302, 41797, 46817, 51404, 55596, 59426,
62926, 66124, 69046, 71716, 74155, 76385, 78422, 80283, 81984, 83538, 84958, 86255, 87441, 88524,
89514, 90418, 91245, 92000, 92690, 93321, 93897, 94423, 94904, 95344, 95745, 96112, 96448, 96754,
97034, 97290, 97524, 97737, 97932 };
  int tab44jo17[combientab44] =
    { 8438, 16164, 23238, 29715, 35646, 41076, 46048, 50601, 54769, 58586,
62080, 65280, 68210, 70892, 73348, 75597, 77656, 79542, 81268, 82849, 84296, 85621, 86834, 87945,
88962, 89894, 90746, 91527, 92242, 92897, 93496, 94045, 94547, 95008, 95429, 95815, 96168, 96491,
96787, 97058, 97306, 97534, 97742, 97932 };
  int tab45jo17[combientab45] =
    { 8258, 15835, 22786, 29162, 35013, 40380, 45303, 49820, 53965, 57766,
61254, 64454, 67390, 70083, 72553, 74820, 76900, 78807, 80558, 82163, 83636, 84988, 86227, 87365,
88408, 89366, 90244, 91050, 91789, 92467, 93089, 93660, 94183, 94664, 95104, 95509, 95880, 96220,
96532, 96818, 97081, 97322, 97543, 97746, 97932 };
  int tab46jo17[combientab46] =
    { 8086, 15519, 22350, 28630, 34401, 39705, 44581, 49063, 53182, 56968,
60447, 63646, 66585, 69288, 71771, 74054, 76152, 78080, 79853, 81482, 82979, 84356, 85621, 86784,
87852, 88835, 89738, 90567, 91330, 92031, 92676, 93268, 93812, 94313, 94773, 95195, 95584, 95941,
96269, 96571, 96848, 97103, 97337, 97553, 97751, 97932 };
  int tab47jo17[combientab47] =
    { 7921, 15215, 21931, 28116, 33810, 39053, 43881, 48326, 52419, 56189,
59659, 62855, 65797, 68506, 71001, 73298, 75413, 77361, 79154, 80806, 82326, 83726, 85015, 86202,
87295, 88302, 89228, 90081, 90867, 91591, 92257, 92870, 93435, 93955, 94434, 94875, 95281, 95655,
95999, 96316, 96608, 96876, 97124, 97352, 97561, 97755, 97932 };
  int tab48jo17[combientab48] =
    { 7763, 14923, 21528, 27619, 33238, 38421, 43201, 47611, 51677, 55429,
58889, 62080, 65024, 67739, 70243, 72553, 74684, 76649, 78462, 80134, 81676, 83099, 84411, 85621,
86737, 87767, 88716, 89592, 90400, 91145, 91833, 92467, 93052, 93591, 94089, 94547, 94971, 95361,
95721, 96053, 96360, 96642, 96903, 97143, 97365, 97570, 97758, 97932 };
  int tab49jo17[combientab49] =
    { 7611, 14642, 21138, 27140, 32686, 37809, 42542, 46915, 50955, 54688,
58136, 61322, 64266, 66986, 69498, 71820, 73964, 75946, 77776, 79468, 81030, 82474, 83808, 85040,
86179, 87231, 88203, 89100, 89930, 90696, 91404, 92059, 92663, 93221, 93737, 94214, 94654, 95061,
95437, 95784, 96105, 96402, 96675, 96928, 97162, 97378, 97578, 97762, 97932 };
  int tab50jo17[combientab50] =
    { 7464, 14371, 20763, 26678, 32151, 37215, 41901, 46238, 50251, 53965,
57401, 60580, 63523, 66246, 68765, 71097, 73254, 75250, 77098, 78807, 80389, 81853, 83208, 84461,
85621, 86694, 87687, 88606, 89457, 90244, 90972, 91646, 92270, 92847, 93381, 93875, 94332, 94755,
95146, 95509, 95844, 96154, 96441, 96707, 96953, 97180, 97391, 97585, 97766, 97932 };
  int tab51jo17[combientab51] =
    { 7323, 14111, 20401, 26230, 31633, 36639, 41280, 45580, 49565, 53259,
56682, 59854, 62794, 65519, 68044, 70385, 72553, 74563, 76426, 78153, 79753, 81235, 82610, 83883,
85064, 86157, 87171, 88111, 88981, 89788, 90536, 91229, 91872, 92467, 93019, 93530, 94004, 94443,
94850, 95227, 95577, 95900, 96201, 96479, 96737, 96976, 97197, 97403, 97593, 97769, 97932 };
  int tab52jo17[combientab52] =
    { 7188, 13859, 20051, 25797, 31131, 36081, 40675, 44939, 48897, 52570,
55979, 59144, 62080, 64806, 67335, 69683, 71862, 73885, 75762, 77504, 79121, 80622, 82015, 83307,
84507, 85621, 86654, 87614, 88504, 89330, 90097, 90809, 91470, 92083, 92652, 93180, 93670, 94125,
94547, 94939, 95303, 95641, 95954, 96245, 96515, 96765, 96998, 97214, 97414, 97600, 97772, 97932 };
  int tab53jo17[combientab53] =
    { 7057, 13616, 19712, 25378, 30644, 35539, 40088, 44316, 48246, 51898,
55293, 58448, 61380, 64105, 66639, 68993, 71181, 73215, 75105, 76862, 78495, 80012, 81423, 82734,
83952, 85085, 86138, 87116, 88025, 88870, 89656, 90386, 91064, 91695, 92281, 92826, 93332, 93802,
94240, 94646, 95024, 95375, 95702, 96005, 96287, 96549, 96793, 97019, 97229, 97425, 97607, 97775,
97932 };
  int tab54jo17[combientab54] =
    { 6931, 13382, 19385, 24973, 30173, 35013, 39517, 43709, 47611, 51242,
54621, 57766, 60694, 63418, 65953, 68313, 70509, 72553, 74456, 76226, 77874, 79408, 80835, 82163,
83399, 84550, 85621, 86618, 87545, 88408, 89212, 89959, 90655, 91303, 91906, 92467, 92989, 93475,
93927, 94348, 94740, 95104, 95444, 95760, 96053, 96327, 96582, 96818, 97039, 97244, 97435, 97613,
97778, 97932 };
  int tab55jo17[combientab55] =
    { 6809, 13155, 19069, 24580, 29715, 34501, 38961, 43118, 46991, 50601,
53965, 57099, 60021, 62743, 65280, 67644, 69847, 71901, 73814, 75597, 77259, 78807, 80250, 81595,
82849, 84016, 85105, 86119, 87064, 87945, 88766, 89531, 90244, 90908, 91527, 92104, 92642, 93143,
93610, 94045, 94450, 94828, 95181, 95509, 95815, 96100, 96365, 96613, 96843, 97058, 97259, 97445,
97619, 97781, 97932 };
  int tab56jo17[combientab56] =
    { 6692, 12936, 18762, 24199, 29271, 34005, 38421, 42542, 46387, 49975,
53322, 56446, 59361, 62080, 64618, 66986, 69195, 71256, 73180, 74975, 76649, 78212, 79670, 81030,
82300, 83484, 84590, 85621, 86583, 87481, 88319, 89100, 89830, 90510, 91145, 91738, 92291, 92807,
93288, 93737, 94156, 94547, 94912, 95253, 95570, 95867, 96144, 96402, 96642, 96867, 97077, 97272,
97455, 97625, 97784, 97932 };
  int tab57jo17[combientab57] =
    { 6579, 12724, 18466, 23829, 28840, 33522, 37895, 41981, 45797, 49363,
52694, 55806, 58714, 61430, 63967, 66337, 68552, 70621, 72553, 74359, 76046, 77622, 79094, 80469,
81754, 82954, 84076, 85123, 86102, 87016, 87870, 88668, 89414, 90110, 90761, 91369, 91936, 92467,
92962, 93425, 93858, 94262, 94639, 94992, 95322, 95629, 95917, 96185, 96436, 96671, 96890, 97094,
97286, 97464, 97631, 97787, 97932 };
  int tab58jo17[combientab58] =
    { 6469, 12519, 18178, 23471, 28422, 33052, 37383, 41433, 45222, 48765,
52080, 55180, 58079, 60791, 63327, 65700, 67918, 69994, 71935, 73750, 75448, 77037, 78522, 79911,
81211, 82426, 83563, 84626, 85621, 86551, 87421, 88235, 88996, 89708, 90373, 90996, 91579, 92123,
92633, 93109, 93555, 93972, 94362, 94727, 95068, 95387, 95685, 95964, 96226, 96470, 96698, 96912,
97111, 97298, 97473, 97637, 97789, 97932 };
  int tab59jo17[combientab59] =
    { 6363, 12321, 17900, 23123, 28015, 32595, 36884, 40900, 44660, 48181,
51479, 54566, 57457, 60164, 62698, 65072, 67294, 69375, 71324, 73148, 74857, 76457, 77955, 79357,
80671, 81901, 83052, 84131, 85140, 86086, 86971, 87800, 88576, 89303, 89984, 90621, 91218, 91777,
92300, 92790, 93249, 93678, 94080, 94457, 94810, 95140, 95449, 95739, 96010, 96264, 96502, 96724,
96933, 97128, 97311, 97482, 97642, 97792, 97932 };
  int tab60jo17[combientab60] =
    { 6260, 12128, 17629, 22786, 27619, 32151, 36398, 40380, 44112, 47611,
50890, 53965, 56846, 59548, 62080, 64454, 66679, 68765, 70721, 72553, 74272, 75882, 77392, 78807,
80134, 81378, 82543, 83636, 84661, 85621, 86521, 87365, 88156, 88897, 89592, 90244, 90855, 91427,
91964, 92467, 92938, 93381, 93795, 94183, 94547, 94889, 95209, 95509, 95790, 96053, 96300, 96532,
96749, 96953, 97143, 97322, 97490, 97647, 97794, 97932 };
  int tab61jo17[combientab61] =
    { 6161, 11942, 17367, 22458, 27235, 31718, 35924, 39872, 43576, 47052,
50314, 53375, 56248, 58943, 61473, 63846, 66073, 68164, 70125, 71965, 73693, 75313, 76834, 78261,
79601, 80857, 82037, 83143, 84182, 85156, 86071, 86929, 87734, 88490, 89199, 89864, 90489, 91075,
91625, 92141, 92625, 93079, 93506, 93906, 94281, 94633, 94964, 95274, 95565, 95839, 96095, 96336,
96561, 96773, 96972, 97159, 97334, 97498, 97652, 97797, 97932 };
  int tab62jo17[combientab62] =
    { 6064, 11761, 17112, 22139, 26861, 31296, 35463, 39377, 43053, 46507,
49751, 52798, 55660, 58349, 60875, 63248, 65477, 67570, 69537, 71385, 73120, 74750, 76281, 77720,
79071, 80340, 81532, 82652, 83704, 84693, 85621, 86493, 87312, 88081, 88804, 89483, 90121, 90720,
91283, 91812, 92308, 92775, 93213, 93624, 94011, 94374, 94715, 95036, 95337, 95620, 95885, 96135,
96369, 96589, 96796, 96991, 97173, 97345, 97506, 97657, 97799, 97932 };
  int tab63jo17[combientab63] =
    { 5971, 11586, 16865, 21829, 26497, 30886, 35013, 38893, 42542, 45973,
49199, 52232, 55084, 57766, 60288, 62659, 64889, 66986, 68957, 70811, 72553, 74192, 75733, 77182,
78545, 79826, 81030, 82163, 83228, 84230, 85171, 86057, 86889, 87672, 88408, 89100, 89751, 90363,
90939, 91480, 91988, 92467, 92917, 93340, 93737, 94111, 94463, 94794, 95104, 95397, 95672, 95930,
96173, 96402, 96616, 96818, 97008, 97187, 97355, 97513, 97661, 97801, 97932 };
  int tab64jo17[combientab64] =
    { 5881, 11415, 16625, 21528, 26142, 30486, 34573, 38421, 42042, 45450,
48658, 51677, 54519, 57194, 59711, 62080, 64310, 66409, 68384, 70243, 71993, 73640, 75190, 76649,
78023, 79315, 80531, 81676, 82754, 83768, 84722, 85621, 86466, 87262, 88011, 88716, 89380, 90004,
90592, 91145, 91666, 92156, 92618, 93052, 93460, 93845, 94207, 94547, 94868, 95170, 95454, 95721,
95973, 96210, 96433, 96642, 96840, 97026, 97201, 97365, 97520, 97666, 97803, 97932 };
  int tab65jo17[combientab65] =
    { 5793, 11250, 16391, 21234, 25797, 30096, 34145, 37960, 41554, 44939,
48129, 51134, 53965, 56631, 59144, 61510, 63740, 65840, 67819, 69683, 71440, 73094, 74653, 76121,
77504, 78807, 80035, 81192, 82281, 83307, 84274, 85185, 86044, 86852, 87614, 88331, 89007, 89644,
90244, 90809, 91341, 91843, 92316, 92761, 93180, 93575, 93947, 94298, 94628, 94939, 95233, 95509,
95769, 96014, 96245, 96462, 96667, 96860, 97042, 97214, 97375, 97527, 97670, 97805, 97932 };
  int tab66jo17[combientab66] =
    { 5708, 11089, 16164, 20949, 25461, 29715, 33727, 37510, 41076, 44439,
47611, 50601, 53420, 56079, 58586, 60949, 63178, 65280, 67262, 69130, 70892, 72553, 74120, 75597,
76990, 78303, 79542, 80709, 81810, 82849, 83827, 84751, 85621, 86442, 87215, 87945, 88633, 89282,
89894, 90471, 91014, 91527, 92011, 92467, 92897, 93302, 93685, 94045, 94385, 94705, 95008, 95293,
95561, 95815, 96053, 96279, 96491, 96691, 96880, 97058, 97226, 97384, 97534, 97675, 97807, 97932 };
  int tab67jo17[combientab67] =
    { 5625, 10933, 15943, 20671, 25133, 29344, 33319, 37069, 40609, 43950,
47103, 50078, 52886, 55536, 58037, 60397, 62625, 64727, 66711, 68584, 70351, 72019, 73593, 75078,
76480, 77803, 79051, 80230, 81342, 82391, 83382, 84316, 85199, 86031, 86817, 87558, 88258, 88919,
89542, 90130, 90685, 91209, 91704, 92170, 92611, 93026, 93419, 93789, 94138, 94468, 94779, 95073,
95350, 95612, 95858, 96091, 96311, 96519, 96714, 96899, 97074, 97238, 97394, 97540, 97679, 97809,
97932 };
  int tab68jo17[combientab68] =
    { 5544, 10782, 15728, 20401, 24814, 28983, 32920, 36639, 40152, 43471,
46605, 49565, 52362, 55003, 57498, 59854, 62080, 64183, 66169, 68044, 69816, 71490, 73070, 74563,
75974, 77306, 78564, 79753, 80875, 81936, 82937, 83883, 84777, 85621, 86418, 87171, 87882, 88554,
89189, 89788, 90355, 90889, 91394, 91872, 92322, 92748, 93150, 93530, 93889, 94227, 94547, 94850,
95135, 95405, 95660, 95900, 96128, 96342, 96545, 96737, 96918, 97089, 97250, 97403, 97547, 97683,
97811, 97932 };
  int tab69jo17[combientab69] =
    { 5466, 10634, 15519, 20137, 24503, 28630, 32531, 36219, 39705, 43001,
46117, 49063, 51847, 54479, 56968, 59320, 61544, 63646, 65633, 67512, 69288, 70966, 72553, 74054,
75472, 76813, 78080, 79279, 80411, 81482, 82494, 83451, 84356, 85211, 86019, 86784, 87506, 88189,
88835, 89445, 90022, 90567, 91083, 91570, 92031, 92467, 92879, 93268, 93636, 93984, 94313, 94624,
94917, 95195, 95458, 95706, 95941, 96163, 96373, 96571, 96758, 96936, 97103, 97261, 97411, 97553,
97686, 97813, 97932 };
  int tab70jo17[combientab70] =
    { 5390, 10490, 15315, 19880, 24199, 28285, 32151, 35808, 39268, 42542,
45639, 48569, 51342, 53965, 56446, 58794, 61015, 63116, 65105, 66986, 68765, 70449, 72042, 73549,
74975, 76324, 77600, 78807, 79950, 81030, 82053, 83020, 83936, 84802, 85621, 86396, 87129, 87823,
88479, 89100, 89688, 90244, 90770, 91267, 91738, 92183, 92605, 93003, 93381, 93737, 94075, 94394,
94696, 94982, 95253, 95509, 95751, 95980, 96197, 96402, 96596, 96779, 96953, 97117, 97272, 97419,
97558, 97690, 97815, 97932 };
  int tab71jo17[combientab71] =
    { 5317, 10350, 15117, 19630, 23902, 27948, 31779, 35406, 38840, 42092,
45170, 48085, 50845, 53459, 55933, 58276, 60494, 62595, 64583, 66466, 68249, 69937, 71535, 73049,
74482, 75838, 77123, 78339, 79491, 80581, 81614, 82591, 83517, 84393, 85223, 86008, 86752, 87457,
88123, 88755, 89353, 89919, 90455, 90962, 91443, 91898, 92328, 92736, 93122, 93488, 93834, 94162,
94472, 94766, 95045, 95308, 95558, 95794, 96017, 96229, 96430, 96619, 96799, 96969, 97130, 97283,
97427, 97564, 97694, 97816, 97932 };
  int tab72jo17[combientab72] =
    { 5245, 10214, 14923, 19385, 23613, 27619, 31416, 35013, 38421, 41651,
44711, 47611, 50358, 52962, 55429, 57766, 59981, 62080, 64069, 65953, 67739, 69431, 71034, 72553,
73993, 75357, 76649, 77874, 79034, 80134, 81176, 82163, 83099, 83985, 84825, 85621, 86375, 87090,
87767, 88408, 89016, 89592, 90138, 90655, 91145, 91610, 92050, 92467, 92862, 93236, 93591, 93927,
94246, 94547, 94833, 95104, 95361, 95604, 95835, 96053, 96260, 96457, 96642, 96818, 96985, 97143,
97293, 97435, 97570, 97697, 97818, 97932 };
  int tab73jo17[combientab73] =
    { 5175, 10082, 14735, 19147, 23331, 27298, 31060, 34628, 38011, 41218,
44260, 47145, 49880, 52473, 54933, 57265, 59476, 61573, 63562, 65447, 67235, 68931, 70538, 72063,
73509, 74880, 76179, 77412, 78581, 79689, 80740, 81737, 82682, 83578, 84428, 85234, 85998, 86722,
87410, 88061, 88679, 89265, 89820, 90347, 90846, 91320, 91769, 92195, 92599, 92982, 93345, 93690,
94016, 94326, 94619, 94898, 95162, 95412, 95650, 95875, 96088, 96291, 96483, 96665, 96837, 97001,
97156, 97303, 97443, 97575, 97701, 97820, 97932 };
  int tab74jo17[combientab74] =
    { 5107, 9952, 14551, 18914, 23055, 26984, 30713, 34251, 37609, 40795,
43818, 46687, 49410, 51993, 54445, 56771, 58978, 61073, 63061, 64947, 66737, 68436, 70048, 71577,
73029, 74406, 75713, 76953, 78130, 79247, 80307, 81312, 82267, 83172, 84032, 84847, 85621, 86355,
87052, 87713, 88341, 88936, 89501, 90037, 90546, 91029, 91487, 91922, 92334, 92726, 93097, 93450,
93784, 94101, 94403, 94689, 94960, 95217, 95461, 95693, 95913, 96122, 96320, 96508, 96686, 96855,
97016, 97168, 97313, 97450, 97580, 97704, 97821, 97932 };
  int tab75jo17[combientab75] =
    { 5040, 9826, 14371, 18687, 22786, 26678, 30373, 33883, 37215, 40380,
43385, 46238, 48948, 51521, 53965, 56285, 58488, 60580, 62567, 64454, 66246, 67947, 69563, 71097,
72553, 73937, 75250, 76498, 77682, 78807, 79876, 80890, 81853, 82768, 83636, 84461, 85244, 85988,
86694, 87365, 88002, 88606, 89181, 89726, 90244, 90736, 91203, 91646, 92067, 92467, 92847, 93207,
93549, 93875, 94183, 94477, 94755, 95019, 95270, 95509, 95735, 95950, 96154, 96348, 96532, 96707,
96873, 97030, 97180, 97322, 97457, 97585, 97707, 97823, 97932 };
  int tab76jo17[combientab76] =
    { 4976, 9704, 14196, 18466, 22523, 26378, 30041, 33522, 36829, 39972,
42959, 45797, 48494, 51057, 53492, 55806, 58005, 60095, 62080, 63967, 65760, 67463, 69082, 70621,
72083, 73472, 74792, 76046, 77238, 78370, 79446, 80469, 81441, 82364, 83242, 84076, 84868, 85621,
86336, 87016, 87662, 88276, 88859, 89414, 89940, 90441, 90917, 91369, 91798, 92206, 92594, 92962,
93313, 93645, 93962, 94262, 94547, 94819, 95077, 95322, 95554, 95776, 95986, 96185, 96375, 96556,
96727, 96890, 97045, 97192, 97331, 97464, 97590, 97710, 97824, 97932 };
  int tab77jo17[combientab77] =
    { 4913, 9584, 14026, 18249, 22265, 26084, 29715, 33168, 36451, 39573,
42542, 45365, 48049, 50601, 53028, 55335, 57529, 59616, 61600, 63486, 65280, 66986, 68607, 70150,
71616, 73010, 74336, 75597, 76796, 77936, 79020, 80050, 81030, 81962, 82849, 83691, 84492, 85254,
85979, 86667, 87322, 87945, 88537, 89100, 89636, 90145, 90629, 91090, 91527, 91944, 92339, 92716,
93073, 93414, 93737, 94045, 94338, 94616, 94880, 95132, 95371, 95598, 95815, 96020, 96216, 96402,
96578, 96746, 96906, 97058, 97203, 97340, 97471, 97595, 97713, 97826, 97932 };
  int tab78jo17[combientab78] =
    { 4851, 9467, 13859, 18038, 22014, 25797, 29397, 32822, 36081, 39182,
42132, 44939, 47611, 50152, 52570, 54871, 57060, 59144, 61126, 63011, 64806, 66513, 68138, 69683,
71154, 72553, 73885, 75152, 76357, 77504, 78596, 79634, 80622, 81562, 82456, 83307, 84117, 84888,
85621, 86318, 86982, 87614, 88215, 88786, 89330, 89848, 90340, 90809, 91255, 91679, 92083, 92467,
92832, 93180, 93511, 93826, 94125, 94410, 94681, 94939, 95185, 95418, 95641, 95852, 96053, 96245,
96427, 96600, 96765, 96922, 97072, 97214, 97349, 97477, 97600, 97716, 97827, 97932 };
  int tab79jo17[combientab79] =
    { 4791, 9353, 13696, 17831, 21768, 25516, 29085, 32483, 35718, 38798,
41730, 44522, 47180, 49711, 52120, 54414, 56598, 58678, 60658, 62543, 64337, 66046, 67673, 69222,
70697, 72101, 73437, 74710, 75922, 77075, 78174, 79219, 80215, 81163, 82066, 82925, 83743, 84522,
85264, 85970, 86642, 87282, 87891, 88471, 89024, 89550, 90050, 90527, 90981, 91413, 91824, 92216,
92589, 92944, 93282, 93604, 93911, 94202, 94480, 94745, 94996, 95236, 95464, 95682, 95889, 96086,
96273, 96452, 96622, 96784, 96938, 97084, 97224, 97357, 97484, 97604, 97719, 97828, 97932 };
  int tab80jo17[combientab80] =
    { 4733, 9242, 13537, 17629, 21528, 25242, 28780, 32151, 35362, 38421,
41335, 44112, 46757, 49277, 51677, 53965, 56143, 58219, 60196, 62080, 63875, 65585, 67213, 68765,
70243, 71652, 72993, 74272, 75489, 76649, 77754, 78807, 79810, 80766, 81676, 82543, 83370, 84157,
84907, 85621, 86301, 86950, 87567, 88156, 88716, 89250, 89759, 90244, 90706, 91145, 91565, 91964,
92344, 92706, 93052, 93381, 93694, 93992, 94277, 94547, 94806, 95051, 95286, 95509, 95721, 95924,
96117, 96300, 96476, 96642, 96801, 96953, 97097, 97234, 97365, 97490, 97609, 97722, 97830, 97932 };
  int tab81jo17[combientab81] =
    { 4676, 9133, 13382, 17432, 21292, 24973, 28481, 31825, 35013, 38051,
40948, 43709, 46341, 48850, 51242, 53521, 55695, 57766, 59741, 61624, 63418, 65128, 66759, 68313,
69795, 71207, 72553, 73837, 75060, 76226, 77338, 78397, 79408, 80370, 81288, 82163, 82997, 83792,
84550, 85272, 85961, 86618, 87243, 87840, 88408, 88950, 89467, 89959, 90429, 90876, 91303, 91710,
92097, 92467, 92819, 93155, 93475, 93780, 94071, 94348, 94612, 94864, 95104, 95333, 95552, 95760,
95958, 96147, 96327, 96499, 96662, 96818, 96967, 97109, 97244, 97373, 97496, 97613, 97725, 97831,
97932 };
  int tab82jo17[combientab82] =
    { 4620, 9027, 13230, 17239, 21062, 24709, 28188, 31506, 34670, 37688,
40567, 43313, 45932, 48430, 50813, 53085, 55253, 57320, 59292, 61173, 62967, 64678, 66309, 67866,
69351, 70767, 72117, 73405, 74634, 75806, 76924, 77990, 79007, 79977, 80902, 81784, 82626, 83429,
84194, 84924, 85621, 86285, 86919, 87523, 88100, 88649, 89174, 89674, 90151, 90606, 91040, 91454,
91849, 92226, 92585, 92927, 93254, 93566, 93863, 94147, 94417, 94675, 94921, 95156, 95379, 95593,
95797, 95991, 96176, 96353, 96521, 96682, 96835, 96981, 97121, 97254, 97381, 97502, 97617, 97727,
97832, 97932 };
  int tab83jo17[combientab83] =
    { 4566, 8923, 13081, 17050, 20837, 24451, 27901, 31193, 34334, 37332,
40194, 42924, 45530, 48017, 50390, 52655, 54817, 56880, 58849, 60728, 62521, 64232, 65865, 67423,
68911, 70330, 71685, 72978, 74211, 75389, 76513, 77585, 78608, 79585, 80517, 81407, 82256, 83066,
83839, 84577, 85281, 85953, 86594, 87206, 87791, 88348, 88880, 89388, 89872, 90335, 90776, 91197,
91599, 91983, 92349, 92698, 93031, 93350, 93653, 93943, 94219, 94483, 94735, 94976, 95205, 95424,
95633, 95832, 96023, 96204, 96377, 96543, 96701, 96851, 96995, 97132, 97263, 97388, 97507, 97621,
97730, 97833, 97932 };
  int tab84jo17[combientab84] =
    { 4513, 8822, 12936, 16865, 20617, 24199, 27619, 30886, 34005, 36983,
39826, 42542, 45135, 47611, 49975, 52232, 54388, 56446, 58411, 60288, 62080, 63791, 65425, 66986,
68475, 69898, 71256, 72553, 73792, 74975, 76104, 77182, 78212, 79195, 80134, 81030, 81887, 82704,
83484, 84230, 84941, 85621, 86270, 86889, 87481, 88046, 88585, 89100, 89592, 90062, 90510, 90939,
91348, 91738, 92111, 92467, 92807, 93131, 93441, 93737, 94020, 94290, 94547, 94794, 95028, 95253,
95467, 95672, 95867, 96053, 96232, 96402, 96564, 96719, 96867, 97008, 97143, 97272, 97395, 97513,
97625, 97732, 97835, 97932 };
  int tab85jo17[combientab85] =
    { 4461, 8722, 12794, 16684, 20401, 23951, 27344, 30585, 33681, 36639,
39466, 42166, 44746, 47211, 49565, 51815, 53965, 56018, 57980, 59854, 61645, 63356, 64991, 66552,
68044, 69470, 70832, 72133, 73376, 74563, 75698, 76782, 77818, 78807, 79753, 80656, 81519, 82343,
83131, 83883, 84602, 85289, 85945, 86572, 87171, 87743, 88290, 88813, 89312, 89788, 90244, 90679,
91095, 91492, 91872, 92234, 92581, 92912, 93228, 93530, 93818, 94094, 94358, 94609, 94850, 95080,
95299, 95509, 95709, 95900, 96083, 96258, 96425, 96584, 96737, 96882, 97021, 97154, 97281, 97403,
97518, 97629, 97735, 97836, 97932 };
  int tab86jo17[combientab86] =
    { 4410, 8626, 12655, 16507, 20189, 23709, 27073, 30289, 33364, 36302,
39111, 41797, 44363, 46817, 49162, 51404, 53547, 55596, 57554, 59426, 61215, 62926, 64561, 66124,
67618, 69046, 70411, 71716, 72963, 74155, 75295, 76385, 77426, 78422, 79373, 80283, 81152, 81984,
82778, 83538, 84264, 84958, 85621, 86255, 86861, 87441, 87994, 88524, 89030, 89514, 89976, 90418,
90841, 91245, 91631, 92000, 92353, 92690, 93012, 93321, 93615, 93897, 94166, 94423, 94669, 94904,
95129, 95344, 95549, 95745, 95933, 96112, 96284, 96448, 96604, 96754, 96897, 97034, 97165, 97290,
97409, 97524, 97633, 97737, 97837, 97932 };
  int tab87jo17[combientab87] =
    { 4360, 8531, 12519, 16334, 19982, 23471, 26808, 30000, 33052, 35971,
38763, 41433, 43987, 46430, 48765, 51000, 53136, 55180, 57134, 59003, 60791, 62501, 64136, 65700,
67195, 68626, 69994, 71302, 72553, 73750, 74895, 75990, 77037, 78038, 78995, 79911, 80787, 81625,
82426, 83193, 83925, 84626, 85297, 85938, 86551, 87137, 87698, 88235, 88748, 89238, 89708, 90156,
90586, 90996, 91389, 91764, 92123, 92467, 92795, 93109, 93410, 93697, 93972, 94235, 94486, 94727,
94957, 95177, 95387, 95588, 95780, 95964, 96140, 96309, 96470, 96624, 96771, 96912, 97046, 97175,
97298, 97416, 97529, 97637, 97740, 97838, 97932 };
  int tab88jo17[combientab88] =
    { 4312, 8438, 12386, 16164, 19779, 23238, 26548, 29715, 32746, 35646,
38421, 41076, 43617, 46048, 48375, 50601, 52731, 54769, 56719, 58586, 60371, 62080, 63715, 65280,
66777, 68210, 69580, 70892, 72147, 73348, 74497, 75597, 76649, 77656, 78620, 79542, 80424, 81268,
82076, 82849, 83588, 84296, 84973, 85621, 86241, 86834, 87402, 87945, 88465, 88962, 89438, 89894,
90329, 90746, 91145, 91527, 91893, 92242, 92577, 92897, 93203, 93496, 93777, 94045, 94302, 94547,
94783, 95008, 95223, 95429, 95626, 95815, 95995, 96168, 96333, 96491, 96642, 96787, 96926, 97058,
97185, 97306, 97423, 97534, 97640, 97742, 97839, 97932 };
  int tab89jo17[combientab89] =
    { 4265, 8347, 12256, 15998, 19580, 23010, 26293, 29436, 32446, 35327,
38085, 40725, 43253, 45673, 47990, 50208, 52331, 54364, 56310, 58173, 59957, 61665, 63300, 64865,
66363, 67798, 69171, 70486, 71744, 72949, 74103, 75207, 76265, 77277, 78246, 79174, 80062, 80912,
81726, 82505, 83251, 83966, 84649, 85304, 85931, 86531, 87105, 87655, 88182, 88686, 89168, 89630,
90072, 90496, 90901, 91289, 91661, 92016, 92357, 92683, 92995, 93293, 93579, 93853, 94115, 94366,
94607, 94837, 95057, 95268, 95469, 95663, 95848, 96025, 96194, 96356, 96512, 96661, 96803, 96939,
97070, 97195, 97314, 97429, 97539, 97644, 97744, 97840, 97932 };
  int tab90jo17[combientab90] =
    { 4218, 8258, 12128, 15835, 19385, 22786, 26043, 29162, 32151, 35013,
37754, 40380, 42894, 45303, 47611, 49820, 51937, 53965, 55906, 57766, 59548, 61254, 62889, 64454,
65953, 67390, 68765, 70083, 71345, 72553, 73711, 74820, 75882, 76900, 77874, 78807, 79701, 80558,
81378, 82163, 82916, 83636, 84326, 84988, 85621, 86227, 86808, 87365, 87898, 88408, 88897, 89366,
89814, 90244, 90655, 91050, 91427, 91789, 92135, 92467, 92785, 93089, 93381, 93660, 93927, 94183,
94429, 94664, 94889, 95104, 95311, 95509, 95698, 95880, 96053, 96220, 96379, 96532, 96678, 96818,
96953, 97081, 97204, 97322, 97435, 97543, 97647, 97746, 97841, 97932 };
  int tab91jo17[combientab91] =
    { 4173, 8172, 12003, 15675, 19194, 22566, 25797, 28894, 31861, 34704,
37429, 40040, 42542, 44939, 47237, 49439, 51549, 53570, 55508, 57364, 59144, 60848, 62482, 64048,
65548, 66986, 68363, 69683, 70948, 72161, 73322, 74436, 75502, 76525, 77504, 78443, 79342, 80204,
81030, 81822, 82581, 83307, 84004, 84672, 85311, 85924, 86511, 87074, 87614, 88131, 88626, 89100,
89555, 89991, 90409, 90809, 91193, 91560, 91912, 92250, 92573, 92883, 93180, 93465, 93737, 93999,
94249, 94489, 94719, 94939, 95151, 95353, 95547, 95733, 95911, 96081, 96245, 96402, 96552, 96696,
96834, 96966, 97092, 97214, 97330, 97441, 97548, 97650, 97748, 97842, 97932 };
  int tab92jo17[combientab92] =
    { 4128, 8086, 11881, 15519, 19007, 22350, 25556, 28630, 31576, 34401,
37109, 39705, 42195, 44581, 46869, 49063, 51165, 53182, 55114, 56968, 58744, 60447, 62080, 63646,
65147, 66585, 67965, 69288, 70555, 71771, 72936, 74054, 75125, 76152, 77136, 78080, 78985, 79853,
80685, 81482, 82247, 82979, 83682, 84356, 85002, 85621, 86215, 86784, 87329, 87852, 88354, 88835,
89296, 89738, 90161, 90567, 90957, 91330, 91688, 92031, 92360, 92676, 92978, 93268, 93546, 93812,
94068, 94313, 94547, 94773, 94988, 95195, 95394, 95584, 95766, 95941, 96109, 96269, 96423, 96571,
96712, 96848, 96978, 97103, 97223, 97337, 97447, 97553, 97654, 97751, 97843, 97932 };
  int tab93jo17[combientab93] =
    { 4085, 8003, 11761, 15366, 18823, 22139, 25320, 28370, 31296, 34103,
36795, 39377, 41853, 44228, 46507, 48692, 50788, 52798, 54726, 56576, 58349, 60051, 61683, 63248,
64749, 66189, 67570, 68895, 70166, 71385, 72553, 73675, 74750, 75781, 76771, 77720, 78630, 79503,
80340, 81143, 81913, 82652, 83361, 84041, 84693, 85318, 85918, 86493, 87045, 87574, 88081, 88568,
89035, 89483, 89913, 90325, 90720, 91099, 91463, 91812, 92146, 92467, 92775, 93070, 93353, 93624,
93885, 94135, 94374, 94604, 94824, 95036, 95239, 95433, 95620, 95799, 95970, 96135, 96293, 96444,
96589, 96729, 96862, 96991, 97114, 97231, 97345, 97453, 97557, 97657, 97753, 97844, 97932 };
  int tab94jo17[combientab94] =
    { 4042, 7921, 11644, 15215, 18643, 21931, 25087, 28116, 31021, 33810,
36485, 39053, 41517, 43881, 46149, 48326, 50415, 52419, 54343, 56189, 57960, 59659, 61290, 62855,
64356, 65797, 67180, 68506, 69779, 71001, 72173, 73298, 74378, 75413, 76407, 77361, 78276, 79154,
79997, 80806, 81581, 82326, 83040, 83726, 84384, 85015, 85621, 86202, 86760, 87295, 87809, 88302,
88774, 89228, 89664, 90081, 90482, 90867, 91236, 91591, 91931, 92257, 92570, 92870, 93158, 93435,
93700, 93955, 94199, 94434, 94659, 94875, 95082, 95281, 95471, 95655, 95830, 95999, 96161, 96316,
96465, 96608, 96745, 96876, 97003, 97124, 97240, 97352, 97459, 97561, 97660, 97755, 97845, 97932 };
  int tab95jo17[combientab95] =
    { 4001, 7841, 11528, 15068, 18466, 21728, 24859, 27865, 30751, 33522,
36181, 38734, 41185, 43538, 45797, 47966, 50048, 52046, 53965, 55806, 57574, 59272, 60901, 62465,
63967, 65409, 66792, 68121, 69396, 70621, 71796, 72924, 74008, 75048, 76046, 77004, 77924, 78807,
79655, 80469, 81251, 82001, 82721, 83412, 84076, 84713, 85324, 85911, 86475, 87016, 87536, 88034,
88513, 88973, 89414, 89837, 90244, 90634, 91009, 91369, 91714, 92045, 92364, 92669, 92962, 93244,
93514, 93774, 94023, 94262, 94492, 94712, 94923, 95127, 95322, 95509, 95688, 95861, 96026, 96185,
96338, 96485, 96625, 96760, 96890, 97014, 97134, 97248, 97358, 97464, 97566, 97663, 97756, 97846,
97932 };
  int tab96jo17[combientab96] =
    { 3960, 7763, 11415, 14923, 18292, 21528, 24635, 27619, 30486, 33238,
35882, 38421, 40859, 43201, 45450, 47611, 49685, 51677, 53591, 55429, 57194, 58889, 60517, 62080,
63582, 65024, 66409, 67739, 69017, 70243, 71422, 72553, 73640, 74684, 75687, 76649, 77574, 78462,
79315, 80134, 80921, 81676, 82402, 83099, 83768, 84411, 85028, 85621, 86190, 86737, 87262, 87767,
88251, 88716, 89163, 89592, 90004, 90400, 90780, 91145, 91496, 91833, 92156, 92467, 92765, 93052,
93327, 93591, 93845, 94089, 94323, 94547, 94763, 94971, 95170, 95361, 95545, 95721, 95891, 96053,
96210, 96360, 96504, 96642, 96775, 96903, 97026, 97143, 97257, 97365, 97470, 97570, 97666, 97758,
97847, 97932 };
  int tab97jo17[combientab97] =
    { 3920, 7686, 11305, 14781, 18122, 21331, 24415, 27378, 30225, 32960,
35588, 38112, 40538, 42869, 45109, 47260, 49328, 51314, 53222, 55056, 56818, 58510, 60137, 61699,
63201, 64643, 66029, 67361, 68640, 69869, 71050, 72185, 73275, 74323, 75330, 76297, 77226, 78118,
78976, 79800, 80592, 81353, 82084, 82786, 83461, 84109, 84732, 85331, 85906, 86458, 86989, 87499,
87989, 88460, 88912, 89347, 89764, 90166, 90551, 90921, 91277, 91619, 91948, 92263, 92567, 92858,
93138, 93407, 93665, 93914, 94152, 94381, 94602, 94813, 95017, 95212, 95400, 95580, 95753, 95920,
96080, 96233, 96381, 96523, 96659, 96790, 96916, 97037, 97153, 97265, 97372, 97475, 97574, 97669,
97760, 97848, 97932 };
  int tab98jo17[combientab98] =
    { 3881, 7611, 11196, 14642, 17955, 21138, 24199, 27140, 29968, 32686,
35298, 37809, 40222, 42542, 44772, 46915, 48975, 50955, 52858, 54688, 56446, 58136, 59761, 61322,
62823, 64266, 65653, 66986, 68267, 69498, 70682, 71820, 72913, 73964, 74975, 75946, 76879, 77776,
78639, 79468, 80265, 81030, 81767, 82474, 83154, 83808, 84436, 85040, 85621, 86179, 86715, 87231,
87726, 88203, 88660, 89100, 89523, 89930, 90321, 90696, 91057, 91404, 91738, 92059, 92367, 92663,
92948, 93221, 93484, 93737, 93980, 94214, 94438, 94654, 94862, 95061, 95253, 95437, 95614, 95784,
95948, 96105, 96256, 96402, 96541, 96675, 96804, 96928, 97048, 97162, 97272, 97378, 97480, 97578,
97672, 97762, 97849, 97932 };
  int tab99jo17[combientab99] =
    { 3842, 7537, 11089, 14506, 17790, 20949, 23986, 26907, 29715, 32416,
35013, 37510, 39911, 42219, 44439, 46574, 48627, 50601, 52499, 54324, 56079, 57766, 59389, 60949,
62450, 63893, 65280, 66614, 67897, 69130, 70316, 71457, 72553, 73608, 74622, 75597, 76535, 77436,
78303, 79137, 79938, 80709, 81450, 82163, 82849, 83508, 84141, 84751, 85336, 85900, 86442, 86963,
87463, 87945, 88408, 88854, 89282, 89694, 90090, 90471, 90837, 91189, 91527, 91853, 92166, 92467,
92756, 93035, 93302, 93560, 93807, 94045, 94274, 94494, 94705, 94909, 95104, 95293, 95473, 95647,
95815, 95975, 96130, 96279, 96422, 96559, 96691, 96818, 96941, 97058, 97171, 97280, 97384, 97485,
97582, 97675, 97764, 97850, 97932 };
  int tab100jo17[combientab100] =
    { 3805, 7464, 10985, 14371, 17629, 20763, 23778, 26678, 29467, 32151,
34732, 37215, 39604, 41901, 44112, 46238, 48284, 50251, 52144, 53965, 55716, 57401, 59021, 60580,
62080, 63523, 64911, 66246, 67530, 68765, 69954, 71097, 72196, 73254, 74272, 75250, 76192, 77098,
77969, 78807, 79614, 80389, 81135, 81853, 82543, 83208, 83846, 84461, 85052, 85621, 86168, 86694,
87200, 87687, 88156, 88606, 89040, 89457, 89858, 90244, 90615, 90972, 91316, 91646, 91964, 92270,
92564, 92847, 93119, 93381, 93632, 93875, 94108, 94332, 94547, 94755, 94954, 95146, 95331, 95509,
95680, 95844, 96002, 96154, 96300, 96441, 96577, 96707, 96832, 96953, 97069, 97180, 97287, 97391,
97490, 97585, 97677, 97766, 97851, 97932 };
  int tab101jo17[combientab101] =
    { 3768, 7393, 10882, 14240, 17471, 20580, 23572, 26452, 29223, 31889,
34456, 36925, 39301, 41588, 43789, 45907, 47945, 49906, 51793, 53610, 55357, 57039, 58658, 60215,
61714, 63157, 64545, 65881, 67166, 68403, 69594, 70739, 71842, 72903, 73923, 74906, 75851, 76761,
77637, 78479, 79290, 80070, 80821, 81544, 82239, 82908, 83552, 84172, 84768, 85342, 85894, 86426,
86937, 87429, 87903, 88359, 88797, 89219, 89626, 90016, 90393, 90755, 91103, 91438, 91761, 92071,
92370, 92657, 92934, 93200, 93456, 93703, 93940, 94168, 94388, 94600, 94803, 94999, 95187, 95369,
95543, 95711, 95873, 96028, 96178, 96322, 96460, 96594, 96722, 96846, 96964, 97079, 97189, 97295,
97397, 97495, 97589, 97680, 97767, 97851, 97932 };
  int tab102jo17[combientab102] =
    { 3731, 7323, 10782, 14111, 17315, 20401, 23371, 26230, 28983, 31633,
34184, 36639, 39004, 41280, 43471, 45580, 47611, 49565, 51447, 53259, 55003, 56682, 58298, 59854,
61352, 62794, 64183, 65519, 66806, 68044, 69237, 70385, 71490, 72553, 73578, 74563, 75513, 76426,
77306, 78153, 78968, 79753, 80508, 81235, 81936, 82610, 83259, 83883, 84485, 85064, 85621, 86157,
86674, 87171, 87650, 88111, 88554, 88981, 89393, 89788, 90169, 90536, 90889, 91229, 91557, 91872,
92175, 92467, 92748, 93019, 93279, 93530, 93771, 94004, 94227, 94443, 94650, 94850, 95042, 95227,
95405, 95577, 95742, 95900, 96053, 96201, 96342, 96479, 96610, 96737, 96859, 96976, 97089, 97197,
97302, 97403, 97499, 97593, 97683, 97769, 97852, 97932 };
  int tab103jo17[combientab103] =
    { 3696, 7255, 10683, 13984, 17163, 20224, 23172, 26012, 28746, 31380,
33916, 36358, 38710, 40975, 43157, 45258, 47281, 49229, 51105, 52913, 54653, 56329, 57943, 59497,
60994, 62436, 63824, 65161, 66448, 67688, 68883, 70033, 71140, 72207, 73234, 74223, 75176, 76093,
76977, 77828, 78647, 79436, 80196, 80928, 81633, 82312, 82966, 83595, 84201, 84785, 85348, 85889,
86411, 86913, 87397, 87862, 88311, 88743, 89159, 89560, 89945, 90317, 90675, 91020, 91351, 91671,
91979, 92275, 92561, 92836, 93101, 93356, 93601, 93838, 94065, 94285, 94496, 94699, 94895, 95084,
95266, 95441, 95609, 95771, 95928, 96078, 96223, 96363, 96497, 96627, 96751, 96871, 96987, 97098,
97206, 97309, 97408, 97504, 97596, 97685, 97771, 97853, 97932 };
  int tab104jo17[combientab104] =
    { 3661, 7188, 10586, 13859, 17012, 20051, 22977, 25797, 28514, 31131,
33652, 36081, 38421, 40675, 42847, 44939, 46955, 48897, 50768, 52570, 54307, 55979, 57591, 59144,
60639, 62080, 63468, 64806, 66094, 67335, 68531, 69683, 70793, 71862, 72893, 73885, 74841, 75762,
76649, 77504, 78328, 79121, 79886, 80622, 81331, 82015, 82673, 83307, 83919, 84507, 85074, 85621,
86147, 86654, 87143, 87614, 88067, 88504, 88925, 89330, 89721, 90097, 90460, 90809, 91145, 91470,
91782, 92083, 92373, 92652, 92921, 93180, 93430, 93670, 93902, 94125, 94340, 94547, 94747, 94939,
95125, 95303, 95475, 95641, 95800, 95954, 96102, 96245, 96382, 96515, 96642, 96765, 96884, 96998,
97108, 97214, 97316, 97414, 97509, 97600, 97688, 97772, 97854, 97932 };
  int tab105jo17[combientab105] =
    { 3627, 7122, 10490, 13736, 16865, 19880, 22786, 25586, 28285, 30886,
33392, 35808, 38136, 40380, 42542, 44626, 46634, 48569, 50435, 52232, 53965, 55634, 57243, 58794,
60288, 61728, 63116, 64454, 65743, 66986, 68183, 69337, 70449, 71521, 72553, 73549, 74508, 75433,
76324, 77182, 78010, 78807, 79576, 80317, 81030, 81718, 82381, 83020, 83636, 84230, 84802, 85353,
85884, 86396, 86889, 87365, 87823, 88265, 88690, 89100, 89496, 89877, 90244, 90598, 90939, 91267,
91584, 91889, 92183, 92467, 92740, 93003, 93257, 93502, 93737, 93964, 94183, 94394, 94598, 94794,
94982, 95164, 95340, 95509, 95672, 95829, 95980, 96126, 96266, 96402, 96532, 96658, 96779, 96896,
97008, 97117, 97222, 97322, 97419, 97513, 97603, 97690, 97774, 97855, 97932 };
  int tab106jo17[combientab106] =
    { 3593, 7057, 10397, 13616, 16720, 19712, 22597, 25378, 28060, 30644,
33136, 35539, 37855, 40088, 42241, 44316, 46317, 48246, 50105, 51898, 53626, 55293, 56899, 58448,
59941, 61380, 62768, 64105, 65395, 66639, 67837, 68993, 70107, 71181, 72217, 73215, 74177, 75105,
76000, 76862, 77693, 78495, 79268, 80012, 80731, 81423, 82091, 82734, 83354, 83952, 84529, 85085,
85621, 86138, 86636, 87116, 87579, 88025, 88455, 88870, 89270, 89656, 90027, 90386, 90731, 91064,
91385, 91695, 91993, 92281, 92558, 92826, 93083, 93332, 93571, 93802, 94025, 94240, 94447, 94646,
94839, 95024, 95203, 95375, 95541, 95702, 95856, 96005, 96149, 96287, 96420, 96549, 96673, 96793,
96908, 97019, 97126, 97229, 97329, 97425, 97517, 97607, 97693, 97775, 97855, 97932 };
  int tab107jo17[combientab107] =
    { 3560, 6993, 10305, 13498, 16577, 19547, 22412, 25174, 27838, 30407,
32884, 35274, 37578, 39800, 41944, 44010, 46004, 47926, 49780, 51568, 53292, 54955, 56559, 58105,
59597, 61035, 62422, 63760, 65050, 66295, 67495, 68652, 69768, 70844, 71882, 72883, 73848, 74780,
75677, 76543, 77378, 78184, 78960, 79709, 80432, 81128, 81800, 82448, 83073, 83676, 84257, 84817,
85358, 85879, 86382, 86867, 87334, 87785, 88220, 88639, 89044, 89434, 89810, 90173, 90523, 90860,
91186, 91499, 91802, 92094, 92375, 92647, 92909, 93161, 93404, 93639, 93866, 94084, 94295, 94498,
94694, 94883, 95065, 95241, 95410, 95573, 95731, 95883, 96030, 96171, 96307, 96439, 96565, 96688,
96806, 96919, 97029, 97135, 97237, 97335, 97430, 97522, 97610, 97695, 97777, 97856, 97932 };
  int tab108jo17[combientab108] =
    { 3528, 6931, 10214, 13382, 16437, 19385, 22229, 24973, 27619, 30173,
32636, 35013, 37305, 39517, 41651, 43709, 45695, 47611, 49459, 51242, 52962, 54621, 56222, 57766,
59256, 60694, 62080, 63418, 64708, 65953, 67155, 68313, 69431, 70509, 71550, 72553, 73522, 74456,
75357, 76226, 77065, 77874, 78655, 79408, 80134, 80835, 81511, 82163, 82792, 83399, 83985, 84550,
85095, 85621, 86128, 86618, 87090, 87545, 87984, 88408, 88817, 89212, 89592, 89959, 90314, 90655,
90985, 91303, 91610, 91906, 92191, 92467, 92733, 92989, 93236, 93475, 93705, 93927, 94141, 94348,
94547, 94740, 94925, 95104, 95277, 95444, 95604, 95760, 95909, 96053, 96193, 96327, 96457, 96582,
96702, 96818, 96931, 97039, 97143, 97244, 97341, 97435, 97526, 97613, 97697, 97778, 97857, 97932 };
  int tab109jo17[combientab109] =
    { 3496, 6870, 10125, 13267, 16300, 19226, 22050, 24775, 27404, 29942,
32392, 34755, 37036, 39237, 41361, 43411, 45390, 47299, 49141, 50919, 52635, 54291, 55889, 57431,
58919, 60355, 61741, 63079, 64370, 65615, 66817, 67977, 69097, 70177, 71220, 72226, 73197, 74134,
75038, 75911, 76753, 77566, 78350, 79107, 79837, 80542, 81222, 81879, 82512, 83124, 83714, 84283,
84833, 85363, 85874, 86368, 86845, 87305, 87749, 88177, 88590, 88989, 89374, 89745, 90104, 90450,
90784, 91106, 91417, 91717, 92007, 92286, 92556, 92816, 93067, 93309, 93543, 93769, 93987, 94197,
94400, 94596, 94785, 94967, 95143, 95313, 95477, 95635, 95787, 95935, 96077, 96214, 96346, 96474,
96597, 96716, 96831, 96942, 97049, 97152, 97251, 97348, 97440, 97530, 97616, 97699, 97780, 97858,
97932 };
  int tab110jo17[combientab110] =
    { 3465, 6809, 10038, 13155, 16164, 19069, 21873, 24580, 27193, 29715,
32151, 34501, 36771, 38961, 41076, 43118, 45089, 46991, 48828, 50601, 52312, 53965, 55560, 57099,
58586, 60021, 61406, 62743, 64034, 65280, 66483, 67644, 68765, 69847, 70892, 71901, 72874, 73814,
74721, 75597, 76443, 77259, 78047, 78807, 79542, 80250, 80935, 81595, 82233, 82849, 83443, 84016,
84570, 85105, 85621, 86119, 86600, 87064, 87512, 87945, 88363, 88766, 89155, 89531, 89894, 90244,
90582, 90908, 91223, 91527, 91821, 92104, 92378, 92642, 92897, 93143, 93381, 93610, 93831, 94045,
94251, 94450, 94643, 94828, 95008, 95181, 95348, 95509, 95664, 95815, 95960, 96100, 96235, 96365,
96491, 96613, 96730, 96843, 96953, 97058, 97160, 97259, 97354, 97445, 97534, 97619, 97702, 97781,
97858, 97932 };
  int tab111jo17[combientab111] =
    { 3434, 6750, 9952, 13045, 16031, 18914, 21699, 24388, 26984, 29492,
31913, 34251, 36509, 38689, 40795, 42828, 44791, 46687, 48518, 50286, 51993, 53642, 55234, 56771,
58255, 59689, 61073, 62410, 63701, 64947, 66151, 67314, 68436, 69520, 70567, 71577, 72553, 73496,
74406, 75285, 76134, 76953, 77745, 78509, 79247, 79960, 80648, 81312, 81954, 82574, 83172, 83750,
84308, 84847, 85367, 85870, 86355, 86824, 87276, 87713, 88135, 88543, 88936, 89316, 89683, 90037,
90379, 90710, 91029, 91337, 91634, 91922, 92199, 92467, 92726, 92975, 93217, 93450, 93674, 93892,
94101, 94304, 94500, 94689, 94871, 95047, 95217, 95381, 95540, 95693, 95841, 95984, 96122, 96255,
96384, 96508, 96628, 96743, 96855, 96963, 97068, 97168, 97266, 97359, 97450, 97538, 97622, 97704,
97783, 97859, 97932 };
  int tab112jo17[combientab112] =
    { 3404, 6692, 9868, 12936, 15900, 18762, 21528, 24199, 26779, 29271,
31679, 34005, 36251, 38421, 40517, 42542, 44498, 46387, 48212, 49975, 51677, 53322, 54911, 56446,
57929, 59361, 60744, 62080, 63371, 64618, 65822, 66986, 68109, 69195, 70243, 71256, 72235, 73180,
74093, 74975, 75827, 76649, 77444, 78212, 78954, 79670, 80362, 81030, 81676, 82300, 82902, 83484,
84047, 84590, 85114, 85621, 86110, 86583, 87040, 87481, 87907, 88319, 88716, 89100, 89471, 89830,
90176, 90510, 90833, 91145, 91447, 91738, 92019, 92291, 92553, 92807, 93052, 93288, 93517, 93737,
93951, 94156, 94355, 94547, 94733, 94912, 95086, 95253, 95414, 95570, 95721, 95867, 96008, 96144,
96275, 96402, 96524, 96642, 96757, 96867, 96974, 97077, 97176, 97272, 97365, 97455, 97542, 97625,
97706, 97784, 97860, 97932 };
  int tab113jo17[combientab113] =
    { 3374, 6635, 9785, 12829, 15771, 18613, 21359, 24013, 26577, 29054,
31448, 33761, 35996, 38156, 40243, 42259, 44208, 46090, 47909, 49667, 51365, 53007, 54592, 56124,
57605, 59036, 60418, 61753, 63044, 64291, 65496, 66660, 67785, 68872, 69923, 70937, 71918, 72866,
73781, 74666, 75521, 76347, 77145, 77916, 78661, 79381, 80077, 80749, 81399, 82027, 82633, 83219,
83785, 84332, 84861, 85372, 85866, 86343, 86803, 87249, 87679, 88095, 88496, 88885, 89260, 89622,
89972, 90311, 90638, 90953, 91259, 91554, 91839, 92114, 92380, 92637, 92886, 93126, 93358, 93582,
93798, 94008, 94210, 94405, 94594, 94776, 94953, 95123, 95288, 95447, 95600, 95749, 95892, 96031,
96165, 96294, 96419, 96540, 96657, 96770, 96879, 96984, 97086, 97184, 97279, 97371, 97460, 97545,
97628, 97708, 97785, 97860, 97932 };
  int tab114jo17[combientab114] =
    { 3345, 6579, 9704, 12724, 15644, 18466, 21193, 23829, 26378, 28840,
31221, 33522, 35745, 37895, 39972, 41981, 43921, 45797, 47611, 49363, 51057, 52694, 54277, 55806,
57285, 58714, 60095, 61430, 62720, 63967, 65172, 66337, 67463, 68552, 69604, 70621, 71604, 72553,
73472, 74359, 75217, 76046, 76847, 77622, 78370, 79094, 79793, 80469, 81122, 81754, 82364, 82954,
83525, 84076, 84608, 85123, 85621, 86102, 86567, 87016, 87451, 87870, 88276, 88668, 89047, 89414,
89768, 90110, 90441, 90761, 91070, 91369, 91657, 91936, 92206, 92467, 92719, 92962, 93198, 93425,
93645, 93858, 94063, 94262, 94454, 94639, 94819, 94992, 95160, 95322, 95478, 95629, 95776, 95917,
96053, 96185, 96313, 96436, 96556, 96671, 96782, 96890, 96994, 97094, 97192, 97286, 97376, 97464,
97549, 97631, 97710, 97787, 97861, 97932 };
  int tab115jo17[combientab115] =
    { 3317, 6523, 9623, 12621, 15519, 18321, 21030, 23649, 26181, 28630,
30997, 33285, 35498, 37637, 39705, 41705, 43639, 45508, 47315, 49063, 50752, 52385, 53965, 55491,
56968, 58395, 59775, 61109, 62399, 63646, 64851, 66017, 67144, 68234, 69288, 70306, 71291, 72243,
73164, 74054, 74914, 75746, 76551, 77328, 78080, 78807, 79510, 80190, 80847, 81482, 82096, 82690,
83264, 83819, 84356, 84875, 85376, 85861, 86330, 86784, 87222, 87646, 88056, 88452, 88835, 89205,
89563, 89909, 90244, 90567, 90880, 91183, 91475, 91758, 92031, 92296, 92551, 92798, 93037, 93268,
93491, 93707, 93916, 94118, 94313, 94501, 94684, 94860, 95030, 95195, 95355, 95509, 95658, 95802,
95941, 96076, 96206, 96332, 96453, 96571, 96685, 96795, 96901, 97004, 97103, 97199, 97292, 97382,
97469, 97553, 97634, 97712, 97788, 97861, 97932 };
  int tab116jo17[combientab116] =
    { 3288, 6469, 9545, 12519, 15396, 18178, 20869, 23471, 25988, 28422,
30776, 33052, 35254, 37383, 39442, 41433, 43359, 45222, 47023, 48765, 50450, 52080, 53656, 55180,
56654, 58079, 59458, 60791, 62080, 63327, 64533, 65700, 66827, 67918, 68973, 69994, 70980, 71935,
72858, 73750, 74613, 75448, 76256, 77037, 77792, 78522, 79228, 79911, 80572, 81211, 81829, 82426,
83004, 83563, 84104, 84626, 85132, 85621, 86094, 86551, 86993, 87421, 87835, 88235, 88622, 88996,
89358, 89708, 90046, 90373, 90690, 90996, 91292, 91579, 91856, 92123, 92382, 92633, 92875, 93109,
93336, 93555, 93767, 93972, 94170, 94362, 94547, 94727, 94900, 95068, 95230, 95387, 95539, 95685,
95827, 95964, 96097, 96226, 96350, 96470, 96586, 96698, 96807, 96912, 97013, 97111, 97206, 97298,
97387, 97473, 97556, 97637, 97714, 97789, 97862, 97932 };
  int tab117jo17[combientab117] =
    { 3261, 6415, 9467, 12419, 15275, 18038, 20710, 23296, 25797, 28217,
30558, 32822, 35013, 37132, 39182, 41165, 43083, 44939, 46735, 48472, 50152, 51778, 53350, 54871,
56343, 57766, 59144, 60476, 61765, 63011, 64218, 65384, 66513, 67605, 68661, 69683, 70672, 71628,
72553, 73448, 74314, 75152, 75962, 76746, 77504, 78238, 78947, 79634, 80298, 80940, 81562, 82163,
82745, 83307, 83852, 84378, 84888, 85381, 85857, 86318, 86765, 87196, 87614, 88018, 88408, 88786,
89152, 89506, 89848, 90179, 90499, 90809, 91109, 91399, 91679, 91950, 92213, 92467, 92713, 92950,
93180, 93402, 93618, 93826, 94027, 94222, 94410, 94592, 94769, 94939, 95104, 95264, 95418, 95568,
95712, 95852, 95987, 96118, 96245, 96367, 96486, 96600, 96711, 96818, 96922, 97023, 97120, 97214,
97304, 97392, 97477, 97560, 97639, 97716, 97791, 97863, 97932 };
  int tab118jo17[combientab118] =
    { 3234, 6363, 9391, 12321, 15156, 17900, 20554, 23123, 25609, 28015,
30343, 32595, 34775, 36884, 38925, 40900, 42811, 44660, 46450, 48181, 49857, 51479, 53048, 54566,
56035, 57457, 58832, 60164, 61452, 62698, 63905, 65072, 66201, 67294, 68352, 69375, 70365, 71324,
72251, 73148, 74017, 74857, 75670, 76457, 77218, 77955, 78668, 79357, 80025, 80671, 81296, 81901,
82486, 83052, 83600, 84131, 84644, 85140, 85621, 86086, 86536, 86971, 87392, 87800, 88195, 88576,
88946, 89303, 89649, 89984, 90308, 90621, 90924, 91218, 91502, 91777, 92043, 92300, 92549, 92790,
93023, 93249, 93467, 93678, 93883, 94080, 94272, 94457, 94636, 94810, 94978, 95140, 95297, 95449,
95596, 95739, 95877, 96010, 96139, 96264, 96385, 96502, 96615, 96724, 96830, 96933, 97032, 97128,
97221, 97311, 97397, 97482, 97563, 97642, 97718, 97792, 97863, 97932 };
  int tab119jo17[combientab119] =
    { 3207, 6311, 9316, 12224, 15039, 17763, 20401, 22953, 25424, 27816,
30131, 32371, 34540, 36639, 38671, 40638, 42542, 44384, 46168, 47894, 49565, 51183, 52748, 54264,
55730, 57150, 58524, 59854, 61142, 62388, 63594, 64762, 65892, 66986, 68044, 69069, 70061, 71021,
71951, 72850, 73721, 74563, 75379, 76169, 76933, 77673, 78389, 79082, 79753, 80402, 81030, 81639,
82228, 82798, 83349, 83883, 84400, 84900, 85385, 85853, 86307, 86746, 87171, 87583, 87981, 88366,
88739, 89100, 89450, 89788, 90116, 90433, 90740, 91037, 91324, 91602, 91872, 92132, 92385, 92629,
92865, 93094, 93315, 93530, 93737, 93938, 94133, 94321, 94503, 94679, 94850, 95015, 95175, 95330,
95479, 95624, 95765, 95900, 96032, 96159, 96282, 96402, 96517, 96629, 96737, 96841, 96943, 97041,
97136, 97228, 97316, 97403, 97486, 97566, 97644, 97720, 97793, 97864, 97932 };
  int tab120jo17[combientab120] =
    { 3181, 6260, 9242, 12128, 14923, 17629, 20249, 22786, 25242, 27619,
29922, 32151, 34309, 36398, 38421, 40380, 42276, 44112, 45889, 47611, 49277, 50890, 52452, 53965,
55429, 56846, 58219, 59548, 60834, 62080, 63286, 64454, 65585, 66679, 67739, 68765, 69759, 70721,
71652, 72553, 73426, 74272, 75090, 75882, 76649, 77392, 78111, 78807, 79481, 80134, 80766, 81378,
81970, 82543, 83099, 83636, 84157, 84661, 85149, 85621, 86078, 86521, 86950, 87365, 87767, 88156,
88533, 88897, 89250, 89592, 89923, 90244, 90554, 90855, 91145, 91427, 91700, 91964, 92219, 92467,
92706, 92938, 93163, 93381, 93591, 93795, 93992, 94183, 94368, 94547, 94721, 94889, 95051, 95209,
95361, 95509, 95652, 95790, 95924, 96053, 96179, 96300, 96418, 96532, 96642, 96749, 96853, 96953,
97050, 97143, 97234, 97322, 97407, 97490, 97570, 97647, 97722, 97794, 97864, 97932 };
  int tab121jo17[combientab121] =
    { 3155, 6210, 9169, 12034, 14810, 17497, 20100, 22621, 25062, 27426,
29715, 31933, 34080, 36160, 38174, 40124, 42013, 43842, 45614, 47330, 48992, 50601, 52159, 53668,
55130, 56546, 57917, 59244, 60530, 61775, 62981, 64149, 65280, 66375, 67436, 68463, 69458, 70422,
71355, 72259, 73134, 73981, 74802, 75597, 76367, 77113, 77835, 78534, 79211, 79867, 80502, 81117,
81713, 82290, 82849, 83390, 83914, 84421, 84913, 85389, 85850, 86296, 86728, 87147, 87552, 87945,
88325, 88694, 89050, 89396, 89730, 90054, 90368, 90672, 90966, 91251, 91527, 91795, 92053, 92304,
92547, 92782, 93010, 93230, 93444, 93651, 93851, 94045, 94233, 94415, 94591, 94762, 94927, 95087,
95242, 95392, 95537, 95678, 95815, 95947, 96074, 96198, 96318, 96434, 96547, 96656, 96761, 96863,
96962, 97058, 97151, 97241, 97328, 97412, 97494, 97573, 97650, 97724, 97796, 97865, 97932 };
  int tab122jo17[combientab122] =
    { 3129, 6161, 9097, 11942, 14698, 17367, 19953, 22458, 24884, 27235,
29512, 31718, 33855, 35924, 37930, 39872, 41754, 43576, 45342, 47052, 48709, 50314, 51869, 53375,
54834, 56248, 57617, 58943, 60228, 61473, 62678, 63846, 64978, 66073, 67135, 68164, 69160, 70125,
71060, 71965, 72843, 73693, 74516, 75313, 76086, 76834, 77559, 78261, 78942, 79601, 80239, 80857,
81456, 82037, 82599, 83143, 83671, 84182, 84677, 85156, 85621, 86071, 86507, 86929, 87338, 87734,
88118, 88490, 88850, 89199, 89537, 89864, 90182, 90489, 90787, 91075, 91354, 91625, 91887, 92141,
92387, 92625, 92856, 93079, 93296, 93506, 93709, 93906, 94096, 94281, 94460, 94633, 94801, 94964,
95122, 95274, 95422, 95565, 95704, 95839, 95969, 96095, 96217, 96336, 96450, 96561, 96669, 96773,
96874, 96972, 97067, 97159, 97247, 97334, 97417, 97498, 97576, 97652, 97725, 97797, 97866, 97932 };
  int tab123jo17[combientab123] =
    { 3104, 6112, 9027, 11851, 14587, 17239, 19808, 22297, 24709, 27047,
29311, 31506, 33632, 35692, 37688, 39623, 41497, 43313, 45073, 46778, 48430, 50031, 51582, 53085,
54542, 55953, 57320, 58645, 59929, 61173, 62378, 63546, 64678, 65774, 66836, 67866, 68864, 69830,
70767, 71674, 72553, 73405, 74231, 75031, 75806, 76557, 77285, 77990, 78673, 79335, 79977, 80598,
81201, 81784, 82350, 82898, 83429, 83943, 84441, 84924, 85392, 85846, 86285, 86711, 87123, 87523,
87911, 88286, 88649, 89002, 89343, 89674, 89995, 90305, 90606, 90898, 91180, 91454, 91719, 91976,
92226, 92467, 92701, 92927, 93147, 93360, 93566, 93765, 93959, 94147, 94328, 94504, 94675, 94840,
95000, 95156, 95306, 95452, 95593, 95730, 95862, 95991, 96115, 96236, 96353, 96466, 96576, 96682,
96785, 96885, 96981, 97075, 97166, 97254, 97339, 97422, 97502, 97579, 97654, 97727, 97798, 97866,
97932 };
  int tab124jo17[combientab124] =
    { 3080, 6064, 8957, 11761, 14479, 17112, 19665, 22139, 24537, 26861,
29113, 31296, 33412, 35463, 37450, 39377, 41244, 43053, 44807, 46507, 48154, 49751, 51298, 52798,
54252, 55660, 57026, 58349, 59632, 60875, 62080, 63248, 64380, 65477, 66540, 67570, 68569, 69537,
70475, 71385, 72266, 73120, 73948, 74750, 75528, 76281, 77012, 77720, 78406, 79071, 79715, 80340,
80946, 81532, 82101, 82652, 83187, 83704, 84206, 84693, 85164, 85621, 86064, 86493, 86909, 87312,
87703, 88081, 88449, 88804, 89149, 89483, 89807, 90121, 90425, 90720, 91006, 91283, 91551, 91812,
92064, 92308, 92545, 92775, 92997, 93213, 93422, 93624, 93821, 94011, 94195, 94374, 94547, 94715,
94878, 95036, 95189, 95337, 95481, 95620, 95755, 95885, 96012, 96135, 96254, 96369, 96481, 96589,
96694, 96796, 96895, 96991, 97083, 97173, 97260, 97345, 97426, 97506, 97582, 97657, 97729, 97799,
97867, 97932 };
  int tab125jo17[combientab125] =
    { 3055, 6017, 8889, 11673, 14371, 16988, 19524, 21983, 24367, 26678,
28918, 31090, 33195, 35236, 37215, 39133, 40993, 42796, 44544, 46238, 47881, 49473, 51017, 52514,
53965, 55371, 56735, 58057, 59338, 60580, 61785, 62953, 64084, 65182, 66246, 67277, 68277, 69246,
70186, 71097, 71980, 72836, 73666, 74470, 75250, 76007, 76740, 77450, 78139, 78807, 79455, 80083,
80691, 81281, 81853, 82407, 82945, 83466, 83971, 84461, 84936, 85396, 85842, 86275, 86694, 87101,
87495, 87877, 88247, 88606, 88955, 89292, 89619, 89936, 90244, 90542, 90831, 91111, 91383, 91646,
91901, 92149, 92389, 92621, 92847, 93065, 93277, 93482, 93682, 93875, 94062, 94243, 94419, 94590,
94755, 94915, 95071, 95221, 95367, 95509, 95646, 95779, 95908, 96033, 96154, 96272, 96386, 96496,
96603, 96707, 96807, 96905, 97000, 97091, 97180, 97266, 97350, 97431, 97509, 97585, 97659, 97731,
97800, 97867, 97932 };
  int tab126jo17[combientab126] =
    { 3032, 5971, 8822, 11586, 14266, 16865, 19385, 21829, 24199, 26497,
28725, 30886, 32981, 35013, 36983, 38893, 40746, 42542, 44284, 45973, 47611, 49199, 50739, 52232,
53680, 55084, 56446, 57766, 59047, 60288, 61492, 62659, 63791, 64889, 65953, 66986, 67986, 68957,
69898, 70811, 71695, 72553, 73385, 74192, 74975, 75733, 76469, 77182, 77874, 78545, 79195, 79826,
80437, 81030, 81606, 82163, 82704, 83228, 83737, 84230, 84708, 85171, 85621, 86057, 86479, 86889,
87287, 87672, 88046, 88408, 88760, 89100, 89431, 89751, 90062, 90363, 90655, 90939, 91213, 91480,
91738, 91988, 92231, 92467, 92695, 92917, 93131, 93340, 93542, 93737, 93927, 94111, 94290, 94463,
94631, 94794, 94951, 95104, 95253, 95397, 95536, 95672, 95803, 95930, 96053, 96173, 96289, 96402,
96511, 96616, 96719, 96818, 96915, 97008, 97099, 97187, 97272, 97355, 97435, 97513, 97588, 97661,
97732, 97801, 97868, 97932 };
  int tab127jo17[combientab127] =
    { 3008, 5926, 8755, 11500, 14162, 16744, 19248, 21677, 24033, 26318,
28535, 30684, 32769, 34792, 36753, 38656, 40501, 42291, 44026, 45710, 47343, 48927, 50463, 51953,
53399, 54800, 56160, 57479, 58758, 59998, 61202, 62369, 63501, 64598, 65663, 66696, 67698, 68670,
69612, 70526, 71413, 72273, 73107, 73916, 74700, 75461, 76199, 76915, 77610, 78283, 78936, 79570,
80185, 80781, 81359, 81919, 82463, 82991, 83502, 83999, 84480, 84947, 85400, 85839, 86265, 86678,
87079, 87467, 87844, 88210, 88565, 88909, 89242, 89566, 89880, 90184, 90479, 90766, 91043, 91313,
91574, 91828, 92073, 92312, 92543, 92767, 92985, 93196, 93401, 93599, 93792, 93978, 94160, 94335,
94506, 94671, 94831, 94987, 95138, 95284, 95426, 95563, 95697, 95826, 95952, 96073, 96192, 96306,
96417, 96525, 96630, 96731, 96829, 96925, 97017, 97107, 97194, 97278, 97360, 97440, 97517, 97591,
97664, 97734, 97802, 97868, 97932 };
  int tab128jo17[combientab128] =
    { 2985, 5881, 8690, 11415, 14060, 16625, 19113, 21528, 23870, 26142,
28347, 30486, 32561, 34573, 36526, 38421, 40259, 42042, 43772, 45450, 47079, 48658, 50191, 51677,
53120, 54519, 55877, 57194, 58471, 59711, 60914, 62080, 63212, 64310, 65375, 66409, 67412, 68384,
69328, 70243, 71132, 71993, 72829, 73640, 74427, 75190, 75931, 76649, 77346, 78023, 78679, 79315,
79932, 80531, 81112, 81676, 82223, 82754, 83269, 83768, 84252, 84722, 85178, 85621, 86050, 86466,
86870, 87262, 87643, 88011, 88369, 88716, 89053, 89380, 89697, 90004, 90303, 90592, 90873, 91145,
91410, 91666, 91915, 92156, 92390, 92618, 92838, 93052, 93259, 93460, 93655, 93845, 94029, 94207,
94380, 94547, 94710, 94868, 95021, 95170, 95314, 95454, 95590, 95721, 95849, 95973, 96093, 96210,
96323, 96433, 96539, 96642, 96743, 96840, 96934, 97026, 97114, 97201, 97284, 97365, 97444, 97520,
97594, 97666, 97736, 97803, 97869, 97932 };




  int *table[] =
    { tab1jo17, tab2jo17, tab3jo17, tab4jo17, tab5jo17, tab6jo17, tab7jo17,
tab8jo17, tab9jo17, tab10jo17, tab11jo17, tab12jo17, tab13jo17, tab14jo17, tab15jo17,
tab16jo17, tab17jo17, tab18jo17, tab19jo17, tab20jo17, tab21jo17, tab22jo17,
tab23jo17, tab24jo17, tab25jo17, tab26jo17, tab27jo17, tab28jo17, tab29jo17,
tab30jo17, tab31jo17, tab32jo17, tab33jo17, tab34jo17, tab35jo17, tab36jo17,
tab37jo17, tab38jo17, tab39jo17, tab40jo17, tab41jo17, tab42jo17, tab43jo17,
tab44jo17, tab45jo17, tab46jo17, tab47jo17, tab48jo17, tab49jo17, tab50jo17,
tab51jo17, tab52jo17, tab53jo17, tab54jo17, tab55jo17, tab56jo17, tab57jo17,
tab58jo17, tab59jo17, tab60jo17, tab61jo17, tab62jo17, tab63jo17, tab64jo17,
tab65jo17, tab66jo17, tab67jo17, tab68jo17, tab69jo17, tab70jo17, tab71jo17,
tab72jo17, tab73jo17, tab74jo17, tab75jo17, tab76jo17, tab77jo17, tab78jo17,
tab79jo17, tab80jo17, tab81jo17, tab82jo17, tab83jo17, tab84jo17, tab85jo17,
tab86jo17, tab87jo17, tab88jo17, tab89jo17, tab90jo17, tab91jo17, tab92jo17,
tab93jo17, tab94jo17, tab95jo17, tab96jo17, tab97jo17, tab98jo17, tab99jo17,
tab100jo17, tab101jo17, tab102jo17, tab103jo17, tab104jo17, tab105jo17, tab106jo17,
tab107jo17, tab108jo17, tab109jo17, tab110jo17, tab111jo17, tab112jo17, tab113jo17,
tab114jo17, tab115jo17, tab116jo17, tab117jo17, tab118jo17, tab119jo17, tab120jo17,
tab121jo17, tab122jo17, tab123jo17, tab124jo17, tab125jo17, tab126jo17, tab127jo17,
tab128jo17 };


  unsigned char tab1[total1] =
    { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B,
0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B,
0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B,
0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B,
0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B,
0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B,
0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B,
0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB,
0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB,
0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
    0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3,
      0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB,
      0xFC, 0xFD, 0xFE, 0xFF
  };


  jojo = fopen (ajo, "rb");
  if (jojo == NULL)
    {
      printf ("Ce fichier ne va pas %s\n", ajo);
      exit (1);
    }

  if (jojo != NULL)
    {

      int assemble = 0;
      int ludion = 32768;
      int enclanche = 0;
      int nbdepoints;

      int ouaitu;
      int amplitude = 32768;
      int force1 = 0;
      int joencour;
      float jo;

      abadie = fgetc (jojo);	/* abadie vient chercher tout ce qui bouge */
      while (abadie != EOF)
	{



	      for (ouaitu = 0; ouaitu < 255; ouaitu++)
		{
		  if (abadie == tab1[ouaitu])
		    {
		      force1 = ouaitu;
		      assemble++;
		    }
		}
/***debut assemble***/

	      switch (assemble)
		{

		case 1:
		  amplitude = (force1 * 256);

/****************************traitement*amplitude****/

		  break;

		default:
		  nbdepoints = force1;


/****fin traitement bin******/
		  joencour = 17;
		  float okioki;
		  float okioki1;
		  okioki = (float) (nbdepoints);
		  okioki1 = (float) (joencour);

		  jo = (okioki * okioki1 * (0.01));


		  if (jo < 2)
		    {
		      jo = 1;
		    }
		  int sens;
		  if (ludion > amplitude)
		    {
		      sens = 2;
		    }
		  else
		    {
		      sens = 1;
		    }

/***fin conversion***/
		  double codebash;

		  FILE *temps = NULL;

		  char tab[total] =
		    { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,
      0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
      0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0,
      0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC,
      0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
      0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
      0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
      0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC,
      0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,
      0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4,
      0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00,
      0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
      0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
      0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24,
      0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,
      0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C,
      0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
		    0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51,
		      0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
		      0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63,
		      0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C,
		      0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
		      0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
		      0x7F
		  };



		  char *ptr;
		  char *petr;


		  temps = fopen (awav, "ab");	/* pour ajouter a. possible w ou r+ w+ tester */

		  if (temps != NULL)

		    {





/*******/

		      if (sens == 2)

/*ajouter dessous*/
			{


			  if (nbdepoints < 2)
			    {
			      codebash = (int) (amplitude);



			      int ji;
			      int ij;
			      int ola;
			      ola = (int) codebash;

/*ji = ola%256;*/
			      ij = (int) (ola * 0.00390625);
			      ji = ola - (256 * ij);

			      ptr = &tab[ji];
			      petr = &tab[ij];


			      fwrite (ptr, sizeof (char), 1, temps);
			      fwrite (petr, sizeof (char), 1, temps);


			    }



			  else
			    {


			      float ote, ote1;
				ote1 = 1;
			      int boucle;
			      boucle = nbdepoints * 0.5;

			      int reste;
			      reste = nbdepoints - boucle;

			      ote = (ludion - amplitude) * 0.5;


			      int i, j, *p;


			      for (i = boucle - 1; i + 1 > 0; i--)
				{
				  for (p = table[boucle - 1], j = 0;
				       j < placement[i]; j++)

				    ote1 = ote * 0.00001 * p[j];

/*
fprintf(temps,"%d ", (int)codebash );
*/


				  codebash = (int) (amplitude + ote + ote1);


				  int ji;
				  int ij;
				  int ola;
				  ola = (int) codebash;

/*ji = ola%256;*/
				  ij = (int) (ola * 0.00390625);
				  ji = ola - (256 * ij);

				  ptr = &tab[ji];
				  petr = &tab[ij];


				  fwrite (ptr, sizeof (char), 1, temps);
				  fwrite (petr, sizeof (char), 1, temps);





/*fin modif*/


				}


			      enclanche = 2;
	       /*** deuxieme enclanche du sens 2**********/

			      if (enclanche == 2)
				{




				  float ote, ote1;
				ote1 = 1;

				  ote = (ludion - amplitude) * 0.5;


				  int i, j, *p;


				  for (i = 0; i < reste; i++)
				    {
				      for (p = table[reste], j = 0;
					   j < placement[i]; j++)

					ote1 = ote * 0.00001 * p[j];


				      codebash = (int) (ludion - ote - ote1);


				      int ji;
				      int ij;
				      int ola;
				      ola = (int) codebash;

/*ji = ola%256;*/
				      ij = (int) (ola * 0.00390625);
				      ji = ola - (256 * ij);

				      ptr = &tab[ji];
				      petr = &tab[ij];


				      fwrite (ptr, sizeof (char), 1, temps);
				      fwrite (petr, sizeof (char), 1, temps);






/*fin modif*/


				    }



				  enclanche = 0;




/* fin descente 2*/


				}
			    }

			}


/*en attente*/

/**********/

		      if (sens == 1)
			{
			  if (nbdepoints < 2)
			    {
			      codebash = (int) (amplitude);



			      int ji;
			      int ij;
			      int ola;
			      ola = (int) codebash;

/*ji = ola%256;*/
			      ij = (int) (ola * 0.00390625);
			      ji = ola - (256 * ij);

			      ptr = &tab[ji];
			      petr = &tab[ij];


			      fwrite (ptr, sizeof (char), 1, temps);
			      fwrite (petr, sizeof (char), 1, temps);


			    }


			  else
			    {


			      float ote, ote1;
				ote1 = 1;


			      int boucle;
			      boucle = nbdepoints * 0.5;
			      int ajuste;
			      ajuste = nbdepoints - boucle;

			      if (boucle == 0)
				{
				  boucle = 1;
				}


			      ote = (amplitude - ludion) * 0.5;


			      int i, j, *p;


			      for (i = boucle - 1; i + 1 > 0; i--)
				{
				  for (p = table[boucle - 1], j = 0;
				       j < placement[i]; j++)

				    ote1 = ote * 0.00001 * p[j];

				  codebash = amplitude - ote - ote1;
/*
fprintf(temps,"%d ", (int)codebash );
*/



				  codebash = (int) (amplitude - ote - ote1);



				  int ji;
				  int ij;
				  int ola;
				  ola = (int) codebash;

/*ji = ola%256;*/
				  ij = (int) (ola * 0.00390625);
				  ji = ola - (256 * ij);

				  ptr = &tab[ji];
				  petr = &tab[ij];


				  fwrite (ptr, sizeof (char), 1, temps);
				  fwrite (petr, sizeof (char), 1, temps);


/*fin modif*/

				}

			      enclanche = 1;
/* debut descente inverse du sens 1 */
			      if (enclanche == 1)

				{


				  float ote, ote1;
				ote1 = 1;
				  int boucle, boncompte;
				  boucle = 1;

				  ote = (amplitude - ludion) * 0.5;
				  boncompte = ajuste;
				  if (boncompte == 0)
				    {
				      boncompte = 1;
				    }


				  int i, j, *p;


				  for (i = 0; i < boncompte; i++)
				    {
				      for (p = table[boncompte], j = 0;
					   j < placement[i]; j++)

					ote1 = ote * 0.00001 * p[j];



				      codebash = (int) (ludion + ote + ote1);


				      int ji;
				      int ij;
				      int ola;
				      ola = (int) codebash;

/*ji = ola%256;*/
				      ij = (int) (ola * 0.00390625);
				      ji = ola - (256 * ij);

				      ptr = &tab[ji];
				      petr = &tab[ij];


				      fwrite (ptr, sizeof (char), 1, temps);
				      fwrite (petr, sizeof (char), 1, temps);






/*fin modif*/
				      boucle++;
				    }


				  enclanche = 0;

				}

			    }


			}


/* fin*/






/********/


/*****/



		      fclose (temps), temps = NULL;;
		    }
		  ludion = amplitude;

/*pas*toucher*/
		  assemble = 0;
		}
  /***fin assemble***/

	  abadie = fgetc (jojo);	/* abadie va chercher la suivante */
	}
      fclose (jojo), jojo = NULL;;


    }


/**************************************************************************************/
//  fclose(fichierjo);
//  fclose(fichierwav);
}


int main( int argc, char* args[] )
{
int piste = 10;
		                    conversionJoWav (piste);


	return 0;
}

Contact et support: Joris Abadie