diff --git a/Assets/NewSystemeDeTraces.cs b/Assets/NewSystemeDeTraces.cs
index 6f2a5b9f1106d145a3d1a0f2ed504cdbd6daa2e4..3cb4455020c977ec9a0ad4c513463e2a93487af3 100644
--- a/Assets/NewSystemeDeTraces.cs
+++ b/Assets/NewSystemeDeTraces.cs
@@ -8,10 +8,11 @@ using static System.Collections.Specialized.BitVector32;
 using UnityEngine.SceneManagement;
 using UnityEditor;
 using DG.Tweening;
+using static ChargementJSONStructure;
 
 public class NewSystemeDeTraces : MonoBehaviour
 {
-    
+
     public mainManager mM;
     private NewSystemeDeTracesJSONRoot traceJson;
     private int volumeCourant = 1;
@@ -64,11 +65,15 @@ public class NewSystemeDeTraces : MonoBehaviour
     string pathDirectory;
     string pathDirectoryArchive;
     string PathDirectoryTemporary;
+    string pathDirectoryArchiveAncien;
     private bool justCreated = false;
-    public void initialiseNewSystemeDeTraces (bool poidsDepassedAfterSave = false)
+    private string currentFilePath = "";
+    private string currentTemporaryFilePath = "";
+    public void initialiseNewSystemeDeTraces(bool poidsDepassedAfterSave = false)
     {
         pathDirectory = Application.persistentDataPath + "/newSystemeTraces/";
-        pathDirectoryArchive = Application.persistentDataPath + "/newSystemeTraces/Archive";
+        pathDirectoryArchive = Application.persistentDataPath + "/newSystemeTraces/ArchiveReal";
+        pathDirectoryArchiveAncien = Application.persistentDataPath + "/newSystemeTraces/Archive";
         PathDirectoryTemporary = Application.persistentDataPath + "/newSystemeTraces/Temporary";
         // Obtenez le chemin du fichier JSON en fonction de la plateforme
         jsonFilePath = GetJsonFilePath(poidsDepassedAfterSave);
@@ -78,7 +83,9 @@ public class NewSystemeDeTraces : MonoBehaviour
         if (File.Exists(jsonFilePath))
         {
             // Le fichier JSON existe, donc nous le lisons
+
             jsonContents = File.ReadAllText(jsonFilePath);
+            mM.texteCheat.text += " un json existe deja length= " + jsonContents.Length;
             //Debug.Log("Contenu JSON existant : " + jsonContents);
         }
         else
@@ -97,30 +104,40 @@ public class NewSystemeDeTraces : MonoBehaviour
         }
     }
 
-    
+
 
     public static string returnUserIDFLuence_or_UserIDHM()
     {
         string UserIdToUse = "Evalulu_missin_gmode_Plugin_HM_cant_fetchUserID";
         if (SplashScreenScript.mode_Plugin_HM && HM_DataController.currentChildUser != null)
         {
-            UserIdToUse = "Evalulu_currentTeacherAccount_" + HM_DataController.currentTeacherAccount.teacherCode.ToString()+ "_HM_userID_"+HM_DataController.currentChildUser.userID.ToString() + "_HM_loginCode_" + HM_DataController.currentChildUser.loginCode;
+            UserIdToUse = "Evalulu_currentTeacherAccount_" + HM_DataController.currentTeacherAccount.teacherCode.ToString() + "_HM_userID_" + HM_DataController.currentChildUser.userID.ToString() + "_HM_loginCode_" + HM_DataController.currentChildUser.loginCode;
         }
         return UserIdToUse;
     }
     private int nombreDeFichiersATransferer = 0;
     private int nombreDeFichiersTraites = 0;
     private bool terminateSceneAFterTransfert = false;
-    public void sendThisUserTracesToHMPlugin(bool terminateSceneAFterTrasfert1=false)
+    private bool envoieEnCours = false;
+    private string[] fichiersSauvegardes;
+    public void sendThisUserTracesToHMPlugin(bool terminateSceneAFterTrasfert1 = false)
     {
-        Debug.Log("sendThisUserTracesToHMPlugin terminateSceneAFterTrasfert1= " + terminateSceneAFterTrasfert1 + " justCreated=" + justCreated);
-        terminateSceneAFterTransfert = terminateSceneAFterTrasfert1;
-        if (!justCreated)
+        //Debug.LogError("sendThisUserTracesToHMPlugin launched envoieEnCours="+ envoieEnCours+ " terminateSceneAFterTransfert="+ terminateSceneAFterTransfert);
+
+        if (!terminateSceneAFterTransfert)
+        {
+            terminateSceneAFterTransfert = terminateSceneAFterTrasfert1;
+
+        }
+        if (!envoieEnCours)
         {
+            envoieEnCours = true;
+            saveNewSystemeTraces();
             nombreDeFichiersATransferer = 0;
             nombreDeFichiersTraites = 0;
+            doingAncientArchiveFolderNow = false;
             string nomFichierBase = returnUserIDFLuence_or_UserIDHM();
-            string[] fichiersSauvegardes = Directory.GetFiles(pathDirectory, $"{nomFichierBase}_vol*.json");
+            fichiersSauvegardes = Directory.GetFiles(pathDirectory, $"{nomFichierBase}_vol*.json");
             if (!Directory.Exists(pathDirectoryArchive))
             {
                 Directory.CreateDirectory(pathDirectoryArchive);
@@ -134,104 +151,14 @@ public class NewSystemeDeTraces : MonoBehaviour
                 deleteAllTemporaryFiles();
             }
             nombreDeFichiersATransferer = fichiersSauvegardes.Length;
-            if (nombreDeFichiersATransferer <= 0)
-            {
-                Debug.Log("rien a transferer");
-                nombreDeFichiersTraites = 99;
-                nombreDeFichiersATransferer = 99;
-            }
-            else
-            {
-                foreach (string s in fichiersSauvegardes)
-                {
-
-                    // Le fichier JSON existe, donc nous le lisons
-                    string dateEnvoi = DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
-                    string nouveauNomAvecDate = Path.GetFileNameWithoutExtension(s) + "-" + dateEnvoi + ".json";
-                    string nouveauChemin = Path.Combine(PathDirectoryTemporary, nouveauNomAvecDate);
-                    // Copiez le fichier source vers le dossier de destination en le renommant si nécessaire.
-                    File.Copy(s, nouveauChemin, true);
-                    if (File.Exists(nouveauChemin))
-                    {
-                        try
-                        {
-                            HM_PluginController.UploadTrace(nouveauChemin, transfertAsynchroneFinished);
-                        }
-                        catch (Exception ex)
-                        {
-                            nombreDeFichiersTraites++;
-                            // Gérez toute exception survenue lors de l'appel à CheckTraceExist ici.
-                            Debug.LogError("Erreur lors de l'appel à UploadTrace : " + ex.Message);
-                            deleteTemporaryFile_archiveOriginalFile(nouveauChemin, "");
-                            break;
-                        }
-                    }
-                    else
-                    {
-                        nombreDeFichiersTraites++;
-                        Debug.LogError("Traces 2 - ne devrait jamais arriver");
-                        /* sauf si : 
-                         * Fichier source inexistant : Si le fichier source spécifié n'existe pas, la copie échouera.
-                            Permissions insuffisantes : Si l'application n'a pas les permissions nécessaires pour lire le fichier source ou écrire dans le répertoire de destination, la copie échouera.
-                            Espace disque insuffisant : Si le disque de destination est plein ou manque d'espace, la copie échouera.
-                            Fichier de destination verrouillé : Si le fichier de destination est déjà ouvert ou verrouillé par une autre application, la copie échouera.
-                            Problèmes matériels : Des problèmes matériels, tels que des secteurs défectueux sur le disque, peuvent entraîner des erreurs lors de la copie
-                        */
-                    }
-                }
-            }
-            
-        }
-        else if (terminateSceneAFterTrasfert1)
-        {
-            nombreDeFichiersTraites = 99;
-            nombreDeFichiersATransferer = 99;
-        }
-        
-    }
-
-
-    private void transfertAsynchroneFinished(int resultCode, string resultMessage)
-    {
-        nombreDeFichiersTraites++;
-        Debug.Log("resultCode = " + resultCode.ToString() + " resultMessage=" + resultMessage+ " nombreDeFichiersTraites = "+ nombreDeFichiersTraites);
-        if (resultCode == 0)
-        {
-            
-        }
-    }
 
-    private void Update()
-    {
-        if(nombreDeFichiersTraites>0 && nombreDeFichiersTraites == nombreDeFichiersATransferer)
-        {
-            Debug.Log("tous les transferts ou les echecs de transferts sont terminés");
-            string nomFichierBase = returnUserIDFLuence_or_UserIDHM();
-            string[] fichiersSauvegardes = Directory.GetFiles(pathDirectory, $"{nomFichierBase}_vol*.json");
-            string[] fichiersInTemporaryFiles = Directory.GetFiles(PathDirectoryTemporary, $"{nomFichierBase}_vol*.json");
-            // le fichier a bien été transféré
-            foreach (string currenttemporaryfile in fichiersInTemporaryFiles)
-            {
-                foreach (string originalFile in fichiersSauvegardes)
-                {
-                    String fileNameOnly = Path.GetFileNameWithoutExtension(originalFile);
-                    if (currenttemporaryfile.Contains(fileNameOnly))
-                    {
-                        Debug.Log("correspondance trouvée entre fichier original et fichier temporaire "+ fileNameOnly+" dans "+ currenttemporaryfile);
-                        deleteTemporaryFile_archiveOriginalFile(currenttemporaryfile, originalFile);
-                    }
-                }
-            }
-            nombreDeFichiersTraites = 0;
-            nombreDeFichiersATransferer = 0;
-            if (terminateSceneAFterTransfert)
+            if (nombreDeFichiersATransferer > 0)
             {
-                StartCoroutine(mM.terminateScene());
+                sendOnefichierTraceToHM();
             }
         }
-    }
-
 
+    }
     private void deleteTemporaryFile_archiveOriginalFile(string fichierTemporary, string fichierOriginal)
     {
         if (fichierTemporary.Length > 0)
@@ -246,7 +173,7 @@ public class NewSystemeDeTraces : MonoBehaviour
         }
         if (fichierOriginal.Length > 0)
         {
-            
+
             Debug.Log("ToDeleteOriginalFilePath = " + fichierOriginal);
             if (File.Exists(fichierOriginal))
             {
@@ -257,34 +184,11 @@ public class NewSystemeDeTraces : MonoBehaviour
             {
                 Debug.Log("le fichier original n'existe pas ");
             }
-            
-        }
-    }
-
-    private void deleteAllTemporaryFiles()
-    {
-        // Obtenez la liste de tous les fichiers dans le dossier spécifié.
-        string[] files = Directory.GetFiles(PathDirectoryTemporary);
 
-        foreach (string filePath in files)
-        {
-            if (Path.GetExtension(filePath) == ".json")
-            {
-                try
-                {
-                    // Supprimez le fichier s'il a l'extension .json.
-                    File.Delete(filePath);
-                    Debug.Log("Fichier supprimé : " + filePath);
-                }
-                catch (Exception e)
-                {
-                    Debug.LogError("Erreur lors de la suppression du fichier : " + e.Message);
-                }
-            }
         }
     }
 
-    private string GetJsonFilePath(bool poidsDepassedAfterSave=false)
+    private string GetJsonFilePath(bool poidsDepassedAfterSave = false)
     {
         // Assurez-vous que le dossier existe
         if (!Directory.Exists(pathDirectory))
@@ -295,7 +199,7 @@ public class NewSystemeDeTraces : MonoBehaviour
         {
             Directory.CreateDirectory(pathDirectoryArchive);
         }
-        string nomFichierBase =returnUserIDFLuence_or_UserIDHM();
+        string nomFichierBase = returnUserIDFLuence_or_UserIDHM();
         string extension = ".json";
         string path = pathDirectory + nomFichierBase + "_vol" + volumeCourant.ToString() + extension;
 
@@ -352,10 +256,10 @@ public class NewSystemeDeTraces : MonoBehaviour
         {
             volumeCourant++;
         }
-        
-        
 
-        path = pathDirectory + nomFichierBase +"_vol"+ volumeCourant .ToString()+ extension;
+
+
+        path = pathDirectory + nomFichierBase + "_vol" + volumeCourant.ToString() + extension;
         return path;
     }
     [SerializeField] private string version_text;
@@ -432,16 +336,16 @@ public class NewSystemeDeTraces : MonoBehaviour
     }
     public void writeNewTrace_internal()
     {
-        
+
         String applicationVersionLuciole = getApplicationVersionLuciole();
-        if(traceJson.versionsLuciole == null)
+        if (traceJson.versionsLuciole == null)
         {
             traceJson.versionsLuciole = new List<NewSystemeDeTraces_appliVersionLuciole>();
             NewSystemeDeTraces_appliVersionLuciole versionCourante = new NewSystemeDeTraces_appliVersionLuciole();
             versionCourante.applicationVersionLuciole = applicationVersionLuciole;
             traceJson.versionsLuciole.Add(versionCourante);
         }
-        else if (traceJson.versionsLuciole[traceJson.versionsLuciole.Count-1].applicationVersionLuciole != applicationVersionLuciole)
+        else if (traceJson.versionsLuciole[traceJson.versionsLuciole.Count - 1].applicationVersionLuciole != applicationVersionLuciole)
         {
             traceJson.versionsLuciole.Add(new NewSystemeDeTraces_appliVersionLuciole());
         }
@@ -454,7 +358,7 @@ public class NewSystemeDeTraces : MonoBehaviour
             traceJson.versionsLuciole[n].sessions = new List<NewSystemeDeTraces_session>();
             traceJson.versionsLuciole[n].sessions.Add(new NewSystemeDeTraces_session());
         }
-        else if (traceJson.versionsLuciole[n].sessions.Count==0 || traceJson.versionsLuciole[n].sessions[traceJson.versionsLuciole[n].sessions.Count - 1].date != mM.dateWhenSessionWasLaunched)
+        else if (traceJson.versionsLuciole[n].sessions.Count == 0 || traceJson.versionsLuciole[n].sessions[traceJson.versionsLuciole[n].sessions.Count - 1].date != mM.dateWhenSessionWasLaunched)
         {
             traceJson.versionsLuciole[n].sessions.Add(new NewSystemeDeTraces_session());
         }
@@ -471,13 +375,13 @@ public class NewSystemeDeTraces : MonoBehaviour
             traceJson.versionsLuciole[n].sessions[m].epreuves = new List<NewSystemeDeTraces_epreuve>();
             traceJson.versionsLuciole[n].sessions[m].epreuves.Add(new NewSystemeDeTraces_epreuve());
         }
-        else if (traceJson.versionsLuciole[n].sessions[m].epreuves.Count ==0 || traceJson.versionsLuciole[n].sessions[m].epreuves[traceJson.versionsLuciole[n].sessions[m].epreuves.Count-1].epreuve!=mM.e.id)
+        else if (traceJson.versionsLuciole[n].sessions[m].epreuves.Count == 0 || traceJson.versionsLuciole[n].sessions[m].epreuves[traceJson.versionsLuciole[n].sessions[m].epreuves.Count - 1].epreuve != mM.e.id)
         {
             traceJson.versionsLuciole[n].sessions[m].epreuves.Add(new NewSystemeDeTraces_epreuve());
         }
         int o = traceJson.versionsLuciole[n].sessions[m].epreuves.Count - 1;
         traceJson.versionsLuciole[n].sessions[m].epreuves[o].epreuve = mM.e.id;
-        
+
         if (traceJson.versionsLuciole[n].sessions[m].epreuves[o].items == null)
         {
             traceJson.versionsLuciole[n].sessions[m].epreuves[o].items = new List<NewSystemeDeTraces_item>();
@@ -493,10 +397,10 @@ public class NewSystemeDeTraces : MonoBehaviour
         traceJson.versionsLuciole[n].sessions[m].epreuves[o].items.Add(newitem);
 
         // si tous les items de cette epreuves sont passés, on établi le scoring de l'épreuve à partir de ses scores d' items, sinon, le scoring de l'épreuve est à -1
-        if (mM.currentItem>= mM.jsonStructureScript.data.sessions[mM.currentSession].epreuves[mM.currentEpreuve].items.Count-1)
+        if (mM.currentItem >= mM.jsonStructureScript.data.sessions[mM.currentSession].epreuves[mM.currentEpreuve].items.Count - 1)
         {
             int scoreepreuve = 0;
-            foreach(NewSystemeDeTraces_item itt in traceJson.versionsLuciole[n].sessions[m].epreuves[o].items)
+            foreach (NewSystemeDeTraces_item itt in traceJson.versionsLuciole[n].sessions[m].epreuves[o].items)
             {
                 scoreepreuve += itt.scoreItem;
             }
@@ -560,4 +464,283 @@ public class NewSystemeDeTraces : MonoBehaviour
                            now.Second.ToString("D2");
         return timeString;
     }
+
+    private void sendOnefichierTraceToHM()
+    {
+        if (nombreDeFichiersTraites > fichiersSauvegardes.Length - 1)
+        {
+            endTransferts();
+        }
+        else
+        {
+            currentFilePath = fichiersSauvegardes[nombreDeFichiersTraites];
+            // Le fichier JSON existe, donc nous le lisons
+            string dateEnvoi = DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
+            string nouveauNomAvecDate = Path.GetFileNameWithoutExtension(currentFilePath) + "-" + dateEnvoi + ".json";
+            currentTemporaryFilePath = Path.Combine(PathDirectoryTemporary, nouveauNomAvecDate);
+            // Copiez le fichier source vers le dossier de destination en le renommant si nécessaire.
+            File.Copy(currentFilePath, currentTemporaryFilePath, true);
+            if (File.Exists(currentTemporaryFilePath))
+            {
+                try
+                {
+                    HM_PluginController.UploadTrace(currentTemporaryFilePath, transfertAsynchroneFinished);
+                }
+                catch (Exception ex)
+                {
+                    // Gérez toute exception survenue lors de l'appel à CheckTraceExist ici.
+                    ////Debug.LogError("Erreur lors de l'appel à UploadTrace : " + ex.Message);
+                    deleteFileFromTemporaryFolder(false);
+                    endTransferts();
+                }
+            }
+            else
+            {
+                ////Debug.LogError("Traces 2 - ne devrait jamais arriver");
+                deleteFileFromTemporaryFolder(false);
+                endTransferts();
+                /* sauf si : 
+                 * Fichier source inexistant : Si le fichier source spécifié n'existe pas, la copie échouera.
+                    Permissions insuffisantes : Si l'application n'a pas les permissions nécessaires pour lire le fichier source ou écrire dans le répertoire de destination, la copie échouera.
+                    Espace disque insuffisant : Si le disque de destination est plein ou manque d'espace, la copie échouera.
+                    Fichier de destination verrouillé : Si le fichier de destination est déjà ouvert ou verrouillé par une autre application, la copie échouera.
+                    Problèmes matériels : Des problèmes matériels, tels que des secteurs défectueux sur le disque, peuvent entraîner des erreurs lors de la copie
+                */
+            }
+        }
+
+    }
+
+    private void deleteFileFromTemporaryFolder(bool SuccesSomoveitToTheArchiveFolder)
+    {
+        if (SuccesSomoveitToTheArchiveFolder)
+        {
+            // Obtenez le nom du fichier sans le chemin
+            string fileName = Path.GetFileName(currentTemporaryFilePath);
+            // Créez le chemin complet du fichier de destination dans le nouveau dossier
+            string destinationARCHIVEFilePath = Path.Combine(pathDirectoryArchive, fileName);
+            // Déplacez le fichier source vers le dossier de destination
+            ////Debug.Log("fichierTemporary moved in archive" + fichierTemporary);
+            if (File.Exists(currentTemporaryFilePath))
+            {
+                if (!File.Exists(destinationARCHIVEFilePath))
+                {
+                    File.Move(currentTemporaryFilePath, destinationARCHIVEFilePath);
+                }
+                else
+                {
+                    File.Delete(currentTemporaryFilePath);
+                }
+            }
+
+
+            ////Debug.Log("ToDeleteOriginalFilePath = " + fichierOriginal);
+            // et on supprime le fichier original vu qu'il a été mis dans l'archive
+            if (File.Exists(currentFilePath))
+            {
+                File.Delete(currentFilePath);
+                ////Debug.Log("fichier original deleted " + fichierOriginal);
+            }
+            else
+            {
+                ////Debug.Log("le fichier original n'existe pas ");
+            }
+        }
+        else
+        {
+            // on supprime le fichier de temporary
+            if (File.Exists(currentTemporaryFilePath))
+            {
+                File.Delete(currentTemporaryFilePath);
+                ////Debug.Log("fichier original deleted " + fichierOriginal);
+            }
+        }
+
+
+
+    }
+
+    private void endTransferts()
+    {
+        //Debug.LogError("endTransferts");
+        nombreDeFichiersTraites = 0;
+        nombreDeFichiersATransferer = 0;
+        envoieEnCours = false;
+        doingAncientArchiveFolderNow = false;
+
+        /*
+        string[] fichiersSauvegardesDansArchive = Directory.GetFiles(pathDirectoryArchive, $"*.json");
+        mM.textdebugnew.text += " - END  - NOW FINISHED NB archives dans archiveNEW = "+ fichiersSauvegardesDansArchive.Count().ToString();
+        fichiersSauvegardesDansArchive = Directory.GetFiles(pathDirectoryArchiveAncien, $"*.json");
+        mM.textdebugnew.text += "NOW FINISHED NB archives dans archiveAncient = " + fichiersSauvegardesDansArchive.Count().ToString();
+        */
+
+        if (terminateSceneAFterTransfert)
+        {
+            //  StartCoroutine(mM.fenetrePause.terminateScenefterDeconnexionAndTracesSent());
+            StartCoroutine(mM.terminateScene());
+        }
+        else
+        {
+
+        }
+
+    }
+    private bool doingAncientArchiveFolderNow = false;
+    private void transfertAsynchroneFinished(int resultCode, string resultMessage)
+    {
+        ////Debug.LogError("resultCode=" + resultCode + " resultMessage=" + resultMessage+ " nombreDeFichiersTraites="+ nombreDeFichiersTraites+ " nombreDeFichiersATransferer="+ nombreDeFichiersATransferer+ " doingAncientArchiveFolderNow="+ doingAncientArchiveFolderNow);
+        ////Debug.Log("transfertAsynchroneFinished resultCode = " + resultCode.ToString() + " resultMessage=" + resultMessage + " nombreDeFichiersTraites = " + nombreDeFichiersTraites);
+
+        if (resultCode == 1 || resultCode == 0)
+        {
+            deleteFileFromTemporaryFolder(true);
+            if (nombreDeFichiersTraites == nombreDeFichiersATransferer - 1)
+            {
+                // on a atteint le bout
+                if (!doingAncientArchiveFolderNow)
+                {
+                    // ce dernier envoie s'est bien passé mais on n'a pas encore regardé les anciennes archives
+                    nombreDeFichiersTraites = 0;
+                    nombreDeFichiersATransferer = 0;
+                    envoieEnCours = false;
+                    moveAllFilesFromAncientArchiveFolderToRegularFolder();
+                }
+                else
+                {
+                    endTransferts();
+                }
+            }
+            else
+            {
+                // le transfeet précédent c'est bien passé (retour == 0) on lance le fichier suivant
+                nombreDeFichiersTraites++;
+                if (!doingAncientArchiveFolderNow)
+                {
+                    sendOnefichierTraceToHM();
+                }
+                else
+                {
+                    sendOnefichierAncientArchiveTraceToHM();
+                }
+            }
+
+
+            // Bien passé
+        }
+        else
+        {
+
+            deleteFileFromTemporaryFolder(false);
+            endTransferts();
+
+        }
+    }
+    private String[] fichiersAncientToSauvegarde;
+    private void moveAllFilesFromAncientArchiveFolderToRegularFolder()
+    {
+        //Debug.LogError("moveAllFilesFromAncientArchiveFolderToRegularFolder");
+        // Obtenez la liste de tous les fichiers dans le dossier spécifié.
+        string[] files = Directory.GetFiles(pathDirectoryArchiveAncien);
+
+        string nomFichierBase = returnUserIDFLuence_or_UserIDHM();
+        fichiersAncientToSauvegarde = Directory.GetFiles(pathDirectoryArchiveAncien, $"{nomFichierBase}_vol*.json");
+
+        if (fichiersAncientToSauvegarde != null && fichiersAncientToSauvegarde.Length > 0)
+        {
+            //Debug.LogError("il y a dans les archivrs des fichiers correspondants à ce joueur " + fichiersAncientToSauvegarde.Length);
+            // il y a des fichiers d'archive correspondant à ce joueur qui apparaissent encore dans l'ancien dossier archive. On va donc retenter de les envoyer au serveur HM
+            // si ils existent deja dans le serveur HM, on les bouge dans le nouveau dossier Archive
+            // si ils n'existent pas dans le serveur HM, on les envoit, puis on les bouge dans le nouveau dossier archive
+            doingAncientArchiveFolderNow = true;
+            nombreDeFichiersTraites = 0;
+            nombreDeFichiersATransferer = fichiersAncientToSauvegarde.Length;
+            envoieEnCours = true;
+            sendOnefichierAncientArchiveTraceToHM();
+
+        }
+        else
+        {
+            //Debug.LogError("il n'y a PAS dans les archivrs des fichiers correspondants à ce joueur voici cb il y a de fichiers dans archive " + files.Length+" looking for "+ nomFichierBase);
+
+            // in n'y a rien dans les archives à envoyer
+            endTransferts();
+        }
+
+    }
+
+    private void sendOnefichierAncientArchiveTraceToHM()
+    {
+        //Debug.LogError("sendOnefichierAncientArchiveTraceToHM");
+
+        if (nombreDeFichiersTraites > fichiersAncientToSauvegarde.Length - 1)
+        {
+            endTransferts();
+        }
+        else
+        {
+            currentFilePath = fichiersAncientToSauvegarde[nombreDeFichiersTraites];
+            // Le fichier JSON existe, donc nous le lisons
+            string dateEnvoi = DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
+            string nom = Path.GetFileNameWithoutExtension(currentFilePath) + ".json";
+            currentTemporaryFilePath = Path.Combine(PathDirectoryTemporary, nom);
+            // Copiez le fichier source vers le dossier de destination en le renommant si nécessaire.
+            File.Copy(currentFilePath, currentTemporaryFilePath, true);
+            if (File.Exists(currentTemporaryFilePath))
+            {
+                try
+                {
+                    HM_PluginController.UploadTrace(currentTemporaryFilePath, transfertAsynchroneFinished);
+                }
+                catch (Exception ex)
+                {
+                    // Gérez toute exception survenue lors de l'appel à CheckTraceExist ici.
+                    ////Debug.LogError("Erreur lors de l'appel à UploadTrace : " + ex.Message);
+                    deleteFileFromTemporaryFolder(false);
+                    endTransferts();
+                }
+            }
+            else
+            {
+                ////Debug.LogError("Traces 2 - ne devrait jamais arriver");
+                deleteFileFromTemporaryFolder(false);
+                endTransferts();
+                /* sauf si : 
+                 * Fichier source inexistant : Si le fichier source spécifié n'existe pas, la copie échouera.
+                    Permissions insuffisantes : Si l'application n'a pas les permissions nécessaires pour lire le fichier source ou écrire dans le répertoire de destination, la copie échouera.
+                    Espace disque insuffisant : Si le disque de destination est plein ou manque d'espace, la copie échouera.
+                    Fichier de destination verrouillé : Si le fichier de destination est déjà ouvert ou verrouillé par une autre application, la copie échouera.
+                    Problèmes matériels : Des problèmes matériels, tels que des secteurs défectueux sur le disque, peuvent entraîner des erreurs lors de la copie
+                */
+            }
+        }
+
+    }
+
+
+    private void deleteAllTemporaryFiles()
+    {
+        // Obtenez la liste de tous les fichiers dans le dossier spécifié.
+        string[] files = Directory.GetFiles(PathDirectoryTemporary);
+
+        foreach (string filePath in files)
+        {
+            if (Path.GetExtension(filePath) == ".json")
+            {
+                try
+                {
+                    // Supprimez le fichier s'il a l'extension .json.
+                    File.Delete(filePath);
+                    ////Debug.Log("Fichier supprimé : " + filePath);
+                }
+                catch (Exception e)
+                {
+                    ////Debug.LogError("Erreur lors de la suppression du fichier : " + e.Message);
+                }
+            }
+        }
+    }
+
+
+
 }
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 1c9ce9389db9f88d118dd66cdcf8ce7d0b7643c7..1add1d9a33fd3a949bee6abb290e363651381942 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -135,7 +135,7 @@ PlayerSettings:
   vulkanEnableLateAcquireNextImage: 0
   vulkanEnableCommandBufferRecycling: 1
   loadStoreDebugModeEnabled: 0
-  bundleVersion: 1.10
+  bundleVersion: 1.11
   preloadedAssets: []
   metroInputSource: 0
   wsaTransparentSwapchain: 0
@@ -156,6 +156,7 @@ PlayerSettings:
   androidSupportedAspectRatio: 1
   androidMaxAspectRatio: 2.1
   applicationIdentifier:
+    Android: com.trans3.evalulu
     Standalone: com.DefaultCompany.2DProject
   buildNumber:
     Standalone: 0
@@ -163,7 +164,7 @@ PlayerSettings:
     iPhone: 0
     tvOS: 0
   overrideDefaultApplicationIdentifier: 1
-  AndroidBundleVersionCode: 2
+  AndroidBundleVersionCode: 3
   AndroidMinSdkVersion: 22
   AndroidTargetSdkVersion: 0
   AndroidPreferredInstallLocation: 1
@@ -253,7 +254,7 @@ PlayerSettings:
   useCustomGradlePropertiesTemplate: 0
   useCustomGradleSettingsTemplate: 0
   useCustomProguardFile: 0
-  AndroidTargetArchitectures: 1
+  AndroidTargetArchitectures: 3
   AndroidTargetDevices: 0
   AndroidSplashScreenScale: 0
   androidSplashScreen: {fileID: 0}
@@ -701,7 +702,8 @@ PlayerSettings:
   scriptingDefineSymbols: {}
   additionalCompilerArguments: {}
   platformArchitecture: {}
-  scriptingBackend: {}
+  scriptingBackend:
+    Android: 1
   il2cppCompilerConfiguration: {}
   il2cppCodeGeneration: {}
   managedStrippingLevel:
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
index 8a690f1ac0880dc77d94faac5df59477a9d6707a..a5e5fe760f35cfbe23c1babc8913ebd870a5ccd1 100644
--- a/UserSettings/EditorUserSettings.asset
+++ b/UserSettings/EditorUserSettings.asset
@@ -24,10 +24,10 @@ EditorUserSettings:
       value: 5057510250560c5d5d0a0a7312225d44424e4d737e7b246928781f61b6e4373c
       flags: 0
     RecentlyUsedSceneGuid-6:
-      value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c
+      value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
       flags: 0
     RecentlyUsedSceneGuid-7:
-      value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
+      value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c
       flags: 0
     vcSharedLogLevel:
       value: 0d5e400f0650
diff --git a/UserSettings/Layouts/default-2022.dwlt b/UserSettings/Layouts/default-2022.dwlt
index 0f8b6cb940816eeba25c9567c6ad07a8a24334dc..19b16d8e0b747807e49875e55b307055e62931a1 100644
--- a/UserSettings/Layouts/default-2022.dwlt
+++ b/UserSettings/Layouts/default-2022.dwlt
@@ -14,12 +14,12 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_PixelRect:
     serializedVersion: 2
-    x: 0
-    y: 72
-    width: 2560
-    height: 1339
+    x: 243.2
+    y: 140
+    width: 1278.4
+    height: 627.2
   m_ShowMode: 4
-  m_Title: Hierarchy
+  m_Title: Inspector
   m_RootView: {fileID: 2}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
@@ -44,8 +44,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2560
-    height: 1339
+    width: 1278.4
+    height: 627.2
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_UseTopView: 1
@@ -69,7 +69,7 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2560
+    width: 1278.4
     height: 30
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
@@ -90,8 +90,8 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1319
-    width: 2560
+    y: 607.2
+    width: 1278.4
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
@@ -114,12 +114,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 30
-    width: 2560
-    height: 1289
+    width: 1278.4
+    height: 577.2
   m_MinSize: {x: 300, y: 100}
   m_MaxSize: {x: 24288, y: 16192}
   vertical: 0
-  controlID: 129
+  controlID: 103
 --- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -139,12 +139,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2002
-    height: 1289
+    width: 1000
+    height: 577.2
   m_MinSize: {x: 200, y: 100}
   m_MaxSize: {x: 16192, y: 16192}
   vertical: 1
-  controlID: 130
+  controlID: 63
 --- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -164,12 +164,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2002
-    height: 1026
+    width: 1000
+    height: 459.2
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 131
+  controlID: 39
 --- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -187,8 +187,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 672
-    height: 1026
+    width: 335.2
+    height: 459.2
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 13}
@@ -211,10 +211,10 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 672
+    x: 335.2
     y: 0
-    width: 1330
-    height: 1026
+    width: 664.8
+    height: 459.2
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
   m_ActualView: {fileID: 12}
@@ -239,9 +239,9 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1026
-    width: 2002
-    height: 263
+    y: 459.2
+    width: 1000
+    height: 118
   m_MinSize: {x: 231, y: 271}
   m_MaxSize: {x: 10001, y: 10021}
   m_ActualView: {fileID: 15}
@@ -265,10 +265,10 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 2002
+    x: 1000
     y: 0
-    width: 558
-    height: 1289
+    width: 278.40002
+    height: 577.2
   m_MinSize: {x: 276, y: 71}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 17}
@@ -292,14 +292,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Game
-    m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 672
-    y: 131
-    width: 1328
-    height: 1005
+    x: 578.4
+    y: 170.40001
+    width: 662.8
+    height: 438.2
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -316,7 +316,7 @@ MonoBehaviour:
   m_ShowGizmos: 0
   m_TargetDisplay: 0
   m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
-  m_TargetSize: {x: 1328, y: 984}
+  m_TargetSize: {x: 2160, y: 1620}
   m_TextureFilterMode: 0
   m_TextureHideFlags: 61
   m_RenderIMGUI: 1
@@ -331,10 +331,10 @@ MonoBehaviour:
     m_VRangeLocked: 0
     hZoomLockedByDefault: 0
     vZoomLockedByDefault: 0
-    m_HBaseRangeMin: -664
-    m_HBaseRangeMax: 664
-    m_VBaseRangeMin: -492
-    m_VBaseRangeMax: 492
+    m_HBaseRangeMin: -864
+    m_HBaseRangeMax: 864
+    m_VBaseRangeMin: -648
+    m_VBaseRangeMax: 648
     m_HAllowExceedBaseRangeMin: 1
     m_HAllowExceedBaseRangeMax: 1
     m_VAllowExceedBaseRangeMin: 1
@@ -352,23 +352,23 @@ MonoBehaviour:
       serializedVersion: 2
       x: 0
       y: 21
-      width: 1328
-      height: 984
-    m_Scale: {x: 1, y: 1}
-    m_Translation: {x: 664, y: 492}
+      width: 662.8
+      height: 417.2
+    m_Scale: {x: 0.3219136, y: 0.3219136}
+    m_Translation: {x: 331.4, y: 208.6}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -664
-      y: -492
-      width: 1328
-      height: 984
+      x: -1029.4688
+      y: -648
+      width: 2058.9375
+      height: 1296
     m_MinimalGUI: 1
-  m_defaultScale: 1
-  m_LastWindowPixelSize: {x: 1328, y: 1005}
+  m_defaultScale: 0.3219136
+  m_LastWindowPixelSize: {x: 828.5, y: 547.75}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 01000000000000000000
@@ -390,14 +390,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Hierarchy
-    m_Image: {fileID: 7966133145522015247, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 131
-    width: 671
-    height: 1005
+    x: 243.2
+    y: 170.40001
+    width: 334.2
+    height: 438.2
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -413,7 +413,7 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 54c8fdff8ec8fdff7acafdfff8e8fdff26ebfdff3aebfdffc4f3fdff04f4fdfff0f5fdff6e14feff9c16feffb016feffa020feffe220feffd422feff7842feffd045feffea45feff1c50feff5e50feff4a52feffc870fefff672feff0a73feff847bfeffc67bfeffb87dfeff5c9dfeffb4a0feffcea0feff1aaafeff5caafeff48acfeffc6cafefff4ccfeff08cdfeff5ed6feff96d6feff88d8feff2cf8feff84fbfeff9efbfeff0a06ffff4406ffff3008ffffae26ffffdc28fffff028ffff642cffffd44cffff1e4effff0656ffff3e56ffff2a58ffffa876ffffd678ffffe878ffff7c7cffffe485ffff1c86ffff0e88ffffb2a7ffff0aabffff24abffff6cb4ffffa4b4ffffacb6ffff2ad5ffff58d7ffff6cd7ffff74faffffd0c70100c4510200
+      m_ExpandedIDs: f838feff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -453,7 +453,7 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Scene
-    m_Image: {fileID: 2593428753322112591, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
@@ -808,7 +808,7 @@ MonoBehaviour:
   m_Position:
     m_Target: {x: 8.242814, y: 5.4317126, z: -0.21880572}
     speed: 2
-    m_Value: {x: 8.297, y: 5.183196, z: -0.22982198}
+    m_Value: {x: 8.242814, y: 5.4317126, z: -0.21880572}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -860,7 +860,7 @@ MonoBehaviour:
   m_Size:
     m_Target: 23.37879
     speed: 2
-    m_Value: 24.480408
+    m_Value: 23.37879
   m_Ortho:
     m_Target: 1
     speed: 2
@@ -901,14 +901,14 @@ MonoBehaviour:
   m_MaxSize: {x: 10000, y: 10000}
   m_TitleContent:
     m_Text: Project
-    m_Image: {fileID: -5467254957812901981, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 1157
-    width: 2001
-    height: 242
+    x: 243.2
+    y: 629.60004
+    width: 999
+    height: 97
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -920,7 +920,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: logo
+    m_NameFilter: 
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -932,7 +932,7 @@ MonoBehaviour:
     m_Folders:
     - Assets
     m_Globs: []
-    m_OriginalText: logo
+    m_OriginalText: 
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
@@ -940,14 +940,14 @@ MonoBehaviour:
   m_LastFolders:
   - Assets
   m_LastFoldersGridSize: -1
-  m_LastProjectPath: /home/loizbek/Documents/travail/projets/Luciole/_Dev/Evalulu
+  m_LastProjectPath: C:\Users\guill\OneDrive\Bureau\LUCIOLE\EVALULULU_DEC2023_2\lulu-testing
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 0}
-    m_SelectedIDs: 3ac70100
-    m_LastClickedID: 116538
-    m_ExpandedIDs: 0000000000ca9a3b
+    scrollPos: {x: 0, y: 19}
+    m_SelectedIDs: da400000
+    m_LastClickedID: 16602
+    m_ExpandedIDs: 00000000da40000000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -975,7 +975,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 00000000
+    m_ExpandedIDs: 
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -1002,7 +1002,7 @@ MonoBehaviour:
   m_ListAreaState:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
-    m_HadKeyboardFocusLastEvent: 1
+    m_HadKeyboardFocusLastEvent: 0
     m_ExpandedInstanceIDs: c6230000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
@@ -1047,7 +1047,7 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Console
-    m_Image: {fileID: -4327648978806127646, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
@@ -1081,14 +1081,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Inspector
-    m_Image: {fileID: -2667387946076563598, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 2002
-    y: 131
-    width: 557
-    height: 1268
+    x: 1243.2001
+    y: 170.40001
+    width: 277.40002
+    height: 556.2
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0