diff --git a/debug/grille.o b/debug/grille.o
index 77708f29336c4884c5970d0b9f056932f135a12a..7a55e049be5000d6a5666b08c73ddc393b750c88 100644
Binary files a/debug/grille.o and b/debug/grille.o differ
diff --git a/debug/main.o b/debug/main.o
index b19774a5d12225b79a10760f5a30fdc93fcc28ac..fe8b5042419573ae04594d9294ef5597b5defea2 100644
Binary files a/debug/main.o and b/debug/main.o differ
diff --git a/debug/moc_grille.cpp b/debug/moc_grille.cpp
index 59aeaceaa89d22659273cce35ee985937c3643b4..a0d5e823b47792ca9adf48c446b908bd1664a4ab 100644
--- a/debug/moc_grille.cpp
+++ b/debug/moc_grille.cpp
@@ -23,8 +23,8 @@ QT_BEGIN_MOC_NAMESPACE
 QT_WARNING_PUSH
 QT_WARNING_DISABLE_DEPRECATED
 struct qt_meta_stringdata_Grille_t {
-    QByteArrayData data[20];
-    char stringdata0[211];
+    QByteArrayData data[23];
+    char stringdata0[239];
 };
 #define QT_MOC_LITERAL(idx, ofs, len) \
     Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -39,29 +39,32 @@ QT_MOC_LITERAL(2, 18, 0), // ""
 QT_MOC_LITERAL(3, 19, 12), // "focusChanged"
 QT_MOC_LITERAL(4, 32, 12), // "verifClicked"
 QT_MOC_LITERAL(5, 45, 19), // "chiffreActifChanged"
-QT_MOC_LITERAL(6, 65, 14), // "changer_valeur"
-QT_MOC_LITERAL(7, 80, 6), // "valeur"
-QT_MOC_LITERAL(8, 87, 5), // "Carre"
-QT_MOC_LITERAL(9, 93, 4), // "Case"
-QT_MOC_LITERAL(10, 98, 15), // "colorer_voisins"
-QT_MOC_LITERAL(11, 114, 5), // "focus"
-QT_MOC_LITERAL(12, 120, 13), // "verif_matrice"
-QT_MOC_LITERAL(13, 134, 17), // "set_chiffre_actif"
-QT_MOC_LITERAL(14, 152, 1), // "i"
-QT_MOC_LITERAL(15, 154, 6), // "values"
-QT_MOC_LITERAL(16, 161, 22), // "QList<QList<QString> >"
-QT_MOC_LITERAL(17, 184, 6), // "colors"
-QT_MOC_LITERAL(18, 191, 8), // "verifier"
-QT_MOC_LITERAL(19, 200, 10) // "coloration"
+QT_MOC_LITERAL(6, 65, 11), // "gameIsSaved"
+QT_MOC_LITERAL(7, 77, 14), // "changer_valeur"
+QT_MOC_LITERAL(8, 92, 6), // "valeur"
+QT_MOC_LITERAL(9, 99, 5), // "Carre"
+QT_MOC_LITERAL(10, 105, 4), // "Case"
+QT_MOC_LITERAL(11, 110, 15), // "colorer_voisins"
+QT_MOC_LITERAL(12, 126, 5), // "focus"
+QT_MOC_LITERAL(13, 132, 13), // "verif_matrice"
+QT_MOC_LITERAL(14, 146, 17), // "set_chiffre_actif"
+QT_MOC_LITERAL(15, 164, 1), // "i"
+QT_MOC_LITERAL(16, 166, 9), // "save_grid"
+QT_MOC_LITERAL(17, 176, 6), // "values"
+QT_MOC_LITERAL(18, 183, 22), // "QList<QList<QString> >"
+QT_MOC_LITERAL(19, 206, 6), // "colors"
+QT_MOC_LITERAL(20, 213, 8), // "verifier"
+QT_MOC_LITERAL(21, 222, 10), // "coloration"
+QT_MOC_LITERAL(22, 233, 5) // "saved"
 
     },
     "Grille\0valChanged\0\0focusChanged\0"
     "verifClicked\0chiffreActifChanged\0"
-    "changer_valeur\0valeur\0Carre\0Case\0"
-    "colorer_voisins\0focus\0verif_matrice\0"
-    "set_chiffre_actif\0i\0values\0"
-    "QList<QList<QString> >\0colors\0verifier\0"
-    "coloration"
+    "gameIsSaved\0changer_valeur\0valeur\0"
+    "Carre\0Case\0colorer_voisins\0focus\0"
+    "verif_matrice\0set_chiffre_actif\0i\0"
+    "save_grid\0values\0QList<QList<QString> >\0"
+    "colors\0verifier\0coloration\0saved"
 };
 #undef QT_MOC_LITERAL
 
@@ -71,48 +74,54 @@ static const uint qt_meta_data_Grille[] = {
        8,       // revision
        0,       // classname
        0,    0, // classinfo
-       8,   14, // methods
-       4,   76, // properties
+      10,   14, // methods
+       5,   88, // properties
        0,    0, // enums/sets
        0,    0, // constructors
        0,       // flags
-       4,       // signalCount
+       5,       // signalCount
 
  // signals: name, argc, parameters, tag, flags
-       1,    0,   54,    2, 0x06 /* Public */,
-       3,    0,   55,    2, 0x06 /* Public */,
-       4,    0,   56,    2, 0x06 /* Public */,
-       5,    0,   57,    2, 0x06 /* Public */,
+       1,    0,   64,    2, 0x06 /* Public */,
+       3,    0,   65,    2, 0x06 /* Public */,
+       4,    0,   66,    2, 0x06 /* Public */,
+       5,    0,   67,    2, 0x06 /* Public */,
+       6,    0,   68,    2, 0x06 /* Public */,
 
  // methods: name, argc, parameters, tag, flags
-       6,    3,   58,    2, 0x02 /* Public */,
-      10,    3,   65,    2, 0x02 /* Public */,
-      12,    0,   72,    2, 0x02 /* Public */,
-      13,    1,   73,    2, 0x02 /* Public */,
+       7,    3,   69,    2, 0x02 /* Public */,
+      11,    3,   76,    2, 0x02 /* Public */,
+      13,    0,   83,    2, 0x02 /* Public */,
+      14,    1,   84,    2, 0x02 /* Public */,
+      16,    0,   87,    2, 0x02 /* Public */,
 
  // signals: parameters
     QMetaType::Void,
     QMetaType::Void,
     QMetaType::Void,
     QMetaType::Void,
+    QMetaType::Void,
 
  // methods: parameters
-    QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Int,    7,    8,    9,
-    QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Bool,    8,    9,   11,
+    QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Int,    8,    9,   10,
+    QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Bool,    9,   10,   12,
+    QMetaType::Void,
+    QMetaType::Void, QMetaType::Int,   15,
     QMetaType::Void,
-    QMetaType::Void, QMetaType::Int,   14,
 
  // properties: name, type, flags
-      15, 0x80000000 | 16, 0x0049500b,
-      17, 0x80000000 | 16, 0x0049500b,
-      18, QMetaType::Int, 0x00495003,
-      19, QMetaType::Int, 0x00495003,
+      17, 0x80000000 | 18, 0x0049500b,
+      19, 0x80000000 | 18, 0x0049500b,
+      20, QMetaType::Int, 0x00495003,
+      21, QMetaType::Int, 0x00495003,
+      22, QMetaType::Bool, 0x00495003,
 
  // properties: notify_signal_id
        0,
        1,
        2,
        3,
+       4,
 
        0        // eod
 };
@@ -127,10 +136,12 @@ void Grille::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void
         case 1: _t->focusChanged(); break;
         case 2: _t->verifClicked(); break;
         case 3: _t->chiffreActifChanged(); break;
-        case 4: _t->changer_valeur((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break;
-        case 5: _t->colorer_voisins((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
-        case 6: _t->verif_matrice(); break;
-        case 7: _t->set_chiffre_actif((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 4: _t->gameIsSaved(); break;
+        case 5: _t->changer_valeur((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break;
+        case 6: _t->colorer_voisins((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+        case 7: _t->verif_matrice(); break;
+        case 8: _t->set_chiffre_actif((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 9: _t->save_grid(); break;
         default: ;
         }
     } else if (_c == QMetaObject::IndexOfMethod) {
@@ -163,6 +174,13 @@ void Grille::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void
                 return;
             }
         }
+        {
+            using _t = void (Grille::*)();
+            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Grille::gameIsSaved)) {
+                *result = 4;
+                return;
+            }
+        }
     } else if (_c == QMetaObject::RegisterPropertyMetaType) {
         switch (_id) {
         default: *reinterpret_cast<int*>(_a[0]) = -1; break;
@@ -182,6 +200,7 @@ void Grille::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void
         case 1: *reinterpret_cast< QList<QList<QString> >*>(_v) = _t->colors; break;
         case 2: *reinterpret_cast< int*>(_v) = _t->verif; break;
         case 3: *reinterpret_cast< int*>(_v) = _t->chiffre_IsActif; break;
+        case 4: *reinterpret_cast< bool*>(_v) = _t->isSaved; break;
         default: break;
         }
     } else if (_c == QMetaObject::WriteProperty) {
@@ -213,6 +232,12 @@ void Grille::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void
                 Q_EMIT _t->chiffreActifChanged();
             }
             break;
+        case 4:
+            if (_t->isSaved != *reinterpret_cast< bool*>(_v)) {
+                _t->isSaved = *reinterpret_cast< bool*>(_v);
+                Q_EMIT _t->gameIsSaved();
+            }
+            break;
         default: break;
         }
     } else if (_c == QMetaObject::ResetProperty) {
@@ -249,29 +274,29 @@ int Grille::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
     if (_id < 0)
         return _id;
     if (_c == QMetaObject::InvokeMetaMethod) {
-        if (_id < 8)
+        if (_id < 10)
             qt_static_metacall(this, _c, _id, _a);
-        _id -= 8;
+        _id -= 10;
     } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
-        if (_id < 8)
+        if (_id < 10)
             *reinterpret_cast<int*>(_a[0]) = -1;
-        _id -= 8;
+        _id -= 10;
     }
 #ifndef QT_NO_PROPERTIES
     else if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty
             || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) {
         qt_static_metacall(this, _c, _id, _a);
-        _id -= 4;
+        _id -= 5;
     } else if (_c == QMetaObject::QueryPropertyDesignable) {
-        _id -= 4;
+        _id -= 5;
     } else if (_c == QMetaObject::QueryPropertyScriptable) {
-        _id -= 4;
+        _id -= 5;
     } else if (_c == QMetaObject::QueryPropertyStored) {
-        _id -= 4;
+        _id -= 5;
     } else if (_c == QMetaObject::QueryPropertyEditable) {
-        _id -= 4;
+        _id -= 5;
     } else if (_c == QMetaObject::QueryPropertyUser) {
-        _id -= 4;
+        _id -= 5;
     }
 #endif // QT_NO_PROPERTIES
     return _id;
@@ -300,5 +325,11 @@ void Grille::chiffreActifChanged()
 {
     QMetaObject::activate(this, &staticMetaObject, 3, nullptr);
 }
+
+// SIGNAL 4
+void Grille::gameIsSaved()
+{
+    QMetaObject::activate(this, &staticMetaObject, 4, nullptr);
+}
 QT_WARNING_POP
 QT_END_MOC_NAMESPACE
diff --git a/debug/moc_grille.o b/debug/moc_grille.o
index f71ab924e320d4593e13b02d02cf781c6daa1ddb..590e2b2174d331d0e79152028f663744f0418c69 100644
Binary files a/debug/moc_grille.o and b/debug/moc_grille.o differ
diff --git a/debug/qrc_qml.cpp b/debug/qrc_qml.cpp
index 03861552289fd41533d77e1953df05db7432503f..9ef5fa40b73f5542782cea51e810bab953756adb 100644
--- a/debug/qrc_qml.cpp
+++ b/debug/qrc_qml.cpp
@@ -104,114 +104,120 @@ static const unsigned char qt_resource_data[] = {
   0x7f,0xbe,0x6c,0xda,0x86,0x7c,0x2f,0x2e,0x4f,0x7c,0x64,0x9f,0xa7,0x9f,0x9a,0x11,
   0x84,0xb6,
     // C:/Users/Simon/Documents/travail/ECL/Electifs/Programmation des interfaces graphiques en C++/Projet/projet_sudoku/main.qml
-  0x0,0x0,0x6,0x93,
+  0x0,0x0,0x6,0xfc,
   0x0,
-  0x0,0x2b,0x8,0x78,0x9c,0xed,0x99,0xdd,0x6e,0xdb,0x36,0x14,0xc7,0xef,0x3,0xe4,
-  0x1d,0x58,0xf7,0xa2,0xe,0xba,0xb9,0x96,0xfc,0x19,0x67,0xc6,0x90,0x6,0x6d,0x57,
-  0xa0,0x5d,0xd7,0xb4,0x68,0x2f,0x8a,0x20,0x60,0x24,0xda,0x66,0x4c,0x53,0xa,0x45,
-  0xe5,0xa3,0x81,0x1f,0xa8,0xcf,0xd1,0x17,0xdb,0xa1,0xe4,0xf,0x51,0xa2,0x25,0x79,
-  0xb3,0x2e,0x36,0x98,0x17,0x89,0x44,0x1e,0x52,0x87,0xbf,0xff,0x39,0x94,0x48,0xd3,
-  0x99,0xef,0x9,0x89,0x3e,0xca,0x8f,0x21,0x75,0xa6,0xc8,0x6e,0x58,0xd6,0xe1,0x1,
-  0xd5,0x2a,0x1b,0x5f,0x29,0x77,0xbd,0x3b,0x73,0xdb,0x3b,0xfc,0xe0,0x85,0x32,0x40,
-  0x56,0x23,0xdb,0x76,0xe6,0x71,0x29,0x3c,0x16,0xa8,0x9e,0x9d,0xc3,0x83,0xc3,0x83,
-  0xc5,0x40,0x8f,0x87,0x7,0x8,0xa,0x75,0xd1,0x0,0x9,0xcf,0x93,0xf1,0xad,0xe3,
-  0x31,0x4f,0xc,0x50,0xed,0x29,0xe9,0x12,0x67,0x84,0x6b,0x71,0xed,0x1d,0x75,0xe5,
-  0x64,0x80,0xba,0x9d,0x4e,0x7c,0x3f,0x21,0x74,0x3c,0x91,0x3,0xd4,0xb3,0x7a,0x71,
-  0xc5,0x2d,0xd,0xe8,0x15,0x23,0x3,0x24,0x45,0x48,0xe2,0x2a,0x49,0xa5,0xaa,0xb8,
-  0x9,0x3e,0x8b,0x7a,0xed,0x53,0xe8,0x7a,0xd3,0xb0,0x76,0xa4,0x9e,0xaf,0x1a,0x47,
-  0x21,0x77,0x24,0xf5,0x38,0x72,0x26,0xc4,0x99,0xd6,0x8f,0x16,0xce,0x44,0x43,0x85,
-  0xe4,0xc3,0xd5,0x35,0x91,0x67,0xbe,0x6c,0xdc,0x12,0x41,0x47,0x97,0x33,0x2c,0x5,
-  0x75,0x48,0xfd,0xe8,0x24,0x61,0x85,0x5,0x8a,0x5a,0xd1,0x30,0xdb,0x83,0x12,0x91,
-  0x30,0xa5,0xa3,0x7a,0x54,0x3b,0x1c,0xe,0xad,0xe4,0x83,0x54,0x11,0x24,0x8,0x19,
-  0xf4,0x8a,0xdd,0x1f,0x2a,0xef,0x4f,0x8c,0x16,0x82,0x38,0x12,0xf3,0x31,0x23,0x8d,
-  0x88,0xd0,0xb0,0xf6,0xb4,0x4f,0x48,0xb7,0xd5,0xab,0x15,0x99,0x4b,0x72,0x2f,0xad,
-  0xe8,0xef,0xb0,0xf6,0x52,0xe0,0x5b,0xf,0xdd,0x7a,0x61,0x80,0xf0,0x2d,0xf9,0x8e,
-  0xc4,0xcf,0x1f,0x61,0x10,0x50,0xc4,0x30,0xf2,0xb1,0x90,0x94,0xa0,0x27,0xc9,0xf1,
-  0xe6,0xeb,0x4b,0xc2,0x2,0xf2,0xf8,0xaf,0xdc,0xed,0x46,0x65,0x2b,0x77,0xdf,0x32,
-  0xf4,0x80,0x30,0xa,0x39,0x41,0x44,0x8,0x12,0x8a,0x5f,0x94,0xc7,0x24,0x8,0xf0,
-  0x3,0x38,0x6f,0x72,0x75,0x9e,0xd1,0x37,0x20,0xf2,0xd2,0x99,0xd0,0xd1,0x48,0x90,
-  0x4b,0xc,0x55,0xa3,0x3a,0xdd,0x24,0xb6,0xc9,0x34,0xa5,0xf8,0xb2,0xf9,0x6d,0x70,
-  0xaa,0xc,0x52,0xda,0x47,0x53,0xc5,0xea,0xb1,0xa9,0x38,0xc1,0x2c,0x24,0x41,0x3a,
-  0x50,0xa2,0xca,0xd4,0xf8,0x2c,0xf5,0xb8,0xf5,0xed,0xc8,0x13,0x75,0x36,0x6c,0x9e,
-  0xb0,0xdf,0x8e,0x4f,0xd8,0xf3,0xe7,0xe9,0x38,0x52,0xcd,0xe,0x34,0x3b,0xd0,0xec,
-  0x64,0x9b,0x57,0x9e,0x80,0x13,0x82,0xf8,0x4,0x4b,0x22,0x1a,0x54,0x92,0xd9,0xa9,
-  0xac,0xb3,0x23,0xc0,0xef,0x2f,0xef,0x9c,0xa3,0x6,0xe5,0x7e,0x28,0xd,0xfd,0x63,
-  0x55,0x62,0xbf,0xbf,0xb1,0x8b,0x6f,0xce,0x45,0x4a,0xcc,0xf9,0x66,0x3d,0xce,0x3c,
-  0x58,0x14,0x38,0xe1,0xb2,0xe1,0x71,0x75,0xcd,0x88,0x24,0xee,0xe0,0xd1,0xc4,0x69,
-  0x58,0x48,0x89,0x9e,0xe8,0x5c,0x28,0x4c,0x9c,0xc2,0xc4,0x69,0x76,0xe2,0xca,0x5c,
-  0x1a,0x26,0xdd,0xd4,0x26,0x4d,0x8d,0x93,0x96,0xda,0x84,0x9b,0x17,0xdf,0xe8,0x85,
-  0x6e,0xa0,0x12,0x3b,0xd1,0xf8,0x64,0x38,0x7c,0xf6,0xcc,0x44,0x5e,0xc5,0x37,0x76,
-  0x3f,0x70,0xf6,0x30,0x5c,0x2f,0x4f,0xba,0xc1,0x32,0x4b,0x9a,0x51,0xa9,0x99,0x4c,
-  0x46,0xb0,0x8e,0x36,0xae,0x3c,0xe6,0xc2,0x74,0xb2,0xc3,0x64,0xd9,0x97,0xa4,0x33,
-  0x35,0xd0,0xb1,0x4a,0xd0,0x99,0x6a,0x74,0xac,0x3c,0x3a,0x56,0x2e,0x9d,0x69,0x11,
-  0x9d,0x69,0x31,0x9d,0x69,0x55,0x74,0x98,0x81,0x8e,0x5d,0x82,0xe,0xd3,0xe8,0xd8,
-  0x79,0x74,0xec,0x5c,0x3a,0xac,0x88,0xe,0x2b,0xa6,0xc3,0xaa,0xa2,0x33,0x33,0xd0,
-  0x69,0x95,0xa0,0x33,0xd3,0xe8,0xb4,0xf2,0xe8,0xb4,0x72,0xe9,0xcc,0x8a,0xe8,0xcc,
-  0x8a,0xe9,0xcc,0xaa,0xa2,0xc3,0xd,0x74,0xda,0x25,0xe8,0x70,0x8d,0x4e,0x3b,0x8f,
-  0x4e,0x3b,0x97,0xe,0x2f,0xa2,0xc3,0x8b,0xe9,0xf0,0xaa,0xe8,0xf8,0x6,0x3a,0x9d,
-  0x12,0x74,0x7c,0x8d,0x4e,0x27,0x8f,0x4e,0x27,0x97,0x8e,0x5f,0x44,0xc7,0x2f,0xa6,
-  0xe3,0x57,0x45,0xe7,0xc6,0x40,0xa7,0x5b,0x82,0xce,0x8d,0x46,0xa7,0x9b,0x47,0xa7,
-  0x9b,0x4b,0xe7,0xa6,0x88,0xce,0x4d,0x31,0x9d,0x9b,0xaa,0xe8,0x4,0x6,0x3a,0xbd,
-  0x12,0x74,0x2,0x8d,0x4e,0x2f,0x8f,0x4e,0x2f,0x97,0x4e,0x50,0x44,0x27,0x28,0xa6,
-  0x13,0x54,0x45,0xe7,0xda,0x40,0xa7,0x5f,0x82,0xce,0xb5,0x46,0xa7,0x9f,0x47,0xa7,
-  0x9f,0x4b,0xe7,0xba,0x88,0xce,0x75,0x31,0x9d,0xeb,0xad,0xe9,0x2c,0xfe,0xf9,0xc2,
-  0xf3,0x89,0x90,0xb0,0x71,0x60,0x14,0x7,0x2b,0x10,0x6a,0x93,0xb9,0xb8,0x5c,0x7e,
-  0x93,0xbe,0x27,0x3c,0x7c,0x9,0xbc,0x12,0x33,0xa0,0xee,0x0,0xcd,0xe2,0xea,0xa5,
-  0xd5,0xd2,0x12,0x3d,0xea,0x3b,0xca,0xd7,0x94,0x11,0xb5,0x9f,0x4c,0x3a,0x75,0x1a,
-  0xef,0x39,0xc0,0x12,0x40,0x2e,0xd,0xff,0x24,0x77,0x28,0x36,0x9e,0x97,0xb0,0xfe,
-  0x4,0x1b,0x33,0xe4,0x84,0xb0,0xdd,0xe1,0x12,0x8d,0xf1,0x4c,0xef,0x36,0x4f,0x7a,
-  0xe5,0x12,0x46,0xc6,0x30,0xa1,0xc1,0x72,0x26,0x6f,0x41,0x5d,0x94,0xd2,0x23,0x31,
-  0x23,0xd5,0x9c,0xec,0xaf,0x8a,0x3,0x90,0xe1,0x49,0xaa,0x69,0x80,0x3e,0x83,0x1f,
-  0xe9,0xfe,0xaa,0xc4,0xfe,0x25,0x46,0x89,0x2,0x25,0x6b,0xa7,0x14,0xd3,0xed,0x54,
-  0x4d,0xd6,0xce,0xf3,0xb1,0x43,0xe5,0xc3,0x0,0x11,0x8e,0x61,0x1b,0xe9,0xa2,0xdf,
-  0x91,0x5,0xfa,0x34,0x1b,0xad,0xac,0xed,0xe2,0x3c,0x20,0x39,0xe8,0x4,0xf6,0xfe,
-  0x4c,0xed,0xff,0xa3,0x9e,0xb5,0xa7,0xa3,0xa8,0xd4,0x90,0x3a,0x35,0xd8,0x18,0x4f,
-  0x13,0x4f,0xd0,0xef,0xe0,0xd,0x66,0xa7,0xd0,0x97,0xc3,0x78,0x32,0x9e,0x70,0x23,
-  0xba,0x7f,0x47,0x46,0xa6,0x2d,0xf,0x4,0x12,0x75,0x36,0x74,0xf9,0x72,0x6,0x15,
-  0x2a,0x9a,0xd2,0xbd,0x8,0xa3,0x2e,0x59,0x58,0xbe,0x52,0xd7,0xe7,0xca,0xd9,0x4c,
-  0xf8,0xea,0x15,0x57,0xd8,0x99,0x8e,0x85,0x17,0x72,0xd0,0xeb,0x7c,0xb9,0x1b,0x36,
-  0x89,0x41,0x61,0xf3,0x44,0x1,0xdf,0xd7,0xf8,0x48,0xa4,0xdd,0xdc,0x6c,0xf2,0xc7,
-  0xe2,0x94,0xc4,0x64,0xb3,0x63,0xd,0x8e,0x9,0xc6,0x4e,0x3f,0xd2,0x40,0xa,0xcc,
-  0x3,0x1f,0xab,0x0,0xae,0xe5,0xe5,0xec,0xfa,0xa6,0xd4,0xdc,0xb,0xe6,0x5d,0x34,
-  0xe7,0xd5,0xb9,0xd2,0x22,0x5a,0xe,0xf,0x5e,0xbc,0xd0,0xf8,0x7b,0xc2,0x85,0xe5,
-  0x72,0x71,0xd0,0x64,0x6d,0x68,0x5e,0x8d,0xb2,0x8a,0xb3,0xb4,0x8e,0xb9,0xda,0x65,
-  0xbb,0xa7,0x2d,0x16,0xcf,0x8f,0xf1,0xc5,0xde,0x18,0x62,0x79,0x31,0x47,0x2b,0xdb,
-  0x84,0xb9,0x3,0x91,0x1e,0xc0,0xba,0x29,0xa5,0x37,0x5b,0xd,0x14,0xdf,0x96,0xda,
-  0xad,0xc7,0x97,0xab,0x69,0x68,0x8b,0x23,0xc8,0xbb,0xd6,0x6a,0xdd,0x70,0x3f,0x48,
-  0x4,0xcd,0x43,0xf2,0x26,0x9a,0xb0,0xa,0x8a,0x2b,0x6,0xfd,0x12,0xf3,0x5d,0xfa,
-  0xb9,0xcc,0xb0,0x38,0x97,0x56,0xfe,0xea,0xd5,0x45,0xdd,0x3e,0x8c,0x46,0x1,0x1,
-  0x1e,0xbf,0xb6,0x9a,0x59,0xd3,0x75,0xe2,0xa7,0x9e,0x91,0x6e,0x58,0x77,0x8d,0xb0,
-  0x83,0xd7,0xce,0x84,0x32,0x17,0x6c,0x15,0x8c,0x58,0x8b,0xe7,0xdd,0xb5,0x55,0xac,
-  0x42,0xda,0x2c,0xae,0x55,0x76,0xc9,0xc8,0x78,0x23,0xa8,0x9b,0x59,0x98,0xa1,0xeb,
-  0x18,0xea,0xf5,0xea,0xfb,0x1,0x4a,0x65,0xa0,0x6,0x54,0x15,0xe1,0xdd,0x5,0xe9,
-  0x3a,0x0,0x1d,0xce,0x78,0xa6,0x3a,0x50,0x59,0xce,0xc7,0x68,0x60,0xa7,0xa3,0x34,
-  0x7e,0x15,0x9a,0xd6,0x17,0x57,0x7b,0x55,0xa6,0x9b,0x67,0x1e,0xbc,0x76,0xc0,0xe2,
-  0x38,0x1d,0xf8,0xaa,0x9c,0x61,0x78,0x6f,0x19,0xc6,0x5c,0x8d,0xeb,0xe0,0x80,0x18,
-  0xa2,0x56,0x95,0x25,0x74,0xdb,0x32,0xac,0x40,0xaa,0x2c,0xa2,0xde,0xd8,0x3e,0x2f,
-  0x15,0xda,0xea,0xe2,0x65,0x8,0x99,0xc0,0xd3,0xef,0xfc,0xab,0xa8,0xf6,0x32,0x3a,
-  0xc,0x4e,0xc6,0x35,0xea,0x27,0x3,0x1b,0x75,0xbb,0xcd,0x54,0x94,0x40,0x12,0xb6,
-  0xec,0x74,0x4c,0xe8,0xab,0x4f,0xf2,0xed,0xfe,0xe5,0xe7,0x8f,0xf8,0x78,0x58,0x1d,
-  0xb9,0x82,0xf8,0x4c,0xff,0x86,0x28,0x99,0xbd,0x89,0xc5,0x77,0x80,0x46,0x98,0x5,
-  0xa4,0x38,0xec,0x57,0x39,0x62,0x77,0x76,0x93,0x24,0xba,0xaf,0xef,0xb1,0x18,0x53,
-  0xe,0x34,0x12,0x83,0x47,0x1f,0x70,0x77,0xb,0x22,0xaf,0xd5,0xcd,0xab,0x7b,0x78,
-  0x39,0xbc,0xd3,0xdf,0x86,0x91,0x95,0xef,0x51,0x2e,0x3f,0xd1,0xef,0xf0,0xda,0xb4,
-  0x12,0x38,0x3d,0x7e,0x6,0x8b,0xfa,0x54,0x9d,0x14,0x2e,0xf,0xea,0x53,0x47,0x8e,
-  0x49,0xe1,0xb4,0x97,0x52,0xfa,0x9b,0x31,0x1d,0x7,0xe7,0xd1,0xc1,0x33,0x96,0xa9,
-  0xf5,0x2d,0x3e,0x8f,0x5e,0xd7,0xad,0x7e,0x57,0x48,0x60,0x2e,0x15,0x4b,0x96,0x16,
-  0x46,0x76,0xb3,0x59,0x18,0x48,0xc9,0x98,0x29,0x8a,0x23,0xeb,0x1f,0x44,0x4d,0x61,
-  0x64,0x58,0xf6,0x7f,0x29,0x32,0xfe,0x2,0xa9,0x2,0x95,0x0,0x8f,0x59,0xd9,0xe7,
-  0x49,0xc3,0x73,0xf8,0x4c,0xc6,0x19,0xcb,0x61,0xac,0xe8,0xdc,0x14,0x6c,0xd9,0x1f,
-  0x2,0xac,0xa3,0x2d,0xa4,0xb7,0x75,0xe9,0x3b,0xbb,0x95,0xde,0xae,0x42,0xfa,0xde,
-  0x5e,0xf9,0x48,0x79,0xc3,0xcf,0x45,0xf6,0x36,0xd2,0xb7,0x34,0xe9,0x5b,0x3b,0xce,
-  0xfa,0x56,0x15,0xd2,0xef,0x93,0x7e,0xa3,0xf4,0xad,0x6d,0xa4,0x6f,0xeb,0xd2,0xef,
-  0x38,0xeb,0xdb,0x15,0x48,0xbf,0xa3,0xaf,0xe5,0xff,0xa3,0xf2,0xed,0x6d,0x94,0xef,
-  0x68,0xca,0xb7,0x77,0x9c,0xf4,0x9d,0xa,0x94,0xef,0xef,0x95,0xdf,0xa4,0x7c,0x67,
-  0x1b,0xe5,0xbb,0xba,0xf2,0x3b,0xce,0xf9,0x6e,0x5,0xca,0x5b,0xfb,0xa4,0xdf,0x28,
-  0x7d,0x77,0x1b,0xe9,0x7b,0x9a,0xf4,0x9d,0x1d,0x27,0x7d,0xaf,0xa,0xe9,0xf7,0x59,
-  0xbf,0x51,0xfa,0xde,0x36,0xd2,0xf7,0x75,0xe9,0x77,0x9c,0xf5,0xfd,0xa,0xa4,0xb7,
-  0xf7,0x59,0xbf,0x51,0xfa,0xfe,0x36,0xd2,0x1f,0x6b,0xd2,0x77,0x77,0x9c,0xf5,0xc7,
-  0x55,0x48,0xbf,0xcf,0xfa,0x8d,0xd2,0x1f,0x27,0xa5,0x8f,0xfe,0xfc,0xd,0xc5,0x29,
-  0x62,0xb9,
+  0x0,0x2d,0x38,0x78,0x9c,0xed,0x99,0xdd,0x6e,0xdb,0x36,0x14,0xc7,0xef,0x3,0xe4,
+  0x1d,0x58,0xf7,0xa2,0x9,0xba,0xb9,0x96,0xbf,0xa3,0xcc,0x18,0xd2,0x20,0xdd,0x2,
+  0xb4,0xeb,0x9a,0x16,0xed,0x45,0x11,0x4,0x8c,0x44,0xdb,0x8c,0x69,0x49,0xa1,0xa8,
+  0x7c,0x34,0xc8,0x3,0xf5,0x39,0xfa,0x62,0x3b,0x94,0x64,0x5b,0xa4,0x68,0x49,0xde,
+  0x2c,0x60,0x1b,0xa2,0x8b,0x44,0x22,0xf,0xa5,0x73,0x7e,0xff,0x73,0x28,0x91,0xa6,
+  0xf3,0xc0,0xe7,0x2,0x7d,0x10,0x1f,0x22,0xea,0xcc,0x50,0xbb,0x69,0x59,0xbb,0x3b,
+  0x54,0x69,0x6c,0x7e,0xa1,0x9e,0xeb,0xdf,0x9a,0xfb,0xde,0xe2,0x7b,0x3f,0x12,0x21,
+  0xb2,0x9a,0xf9,0xbe,0x63,0xdf,0x13,0xdc,0x67,0xa1,0x1c,0xd9,0xdb,0xdd,0xd9,0xdd,
+  0x49,0x6f,0xf4,0xb0,0xbb,0x83,0xe0,0xa0,0x2e,0xb2,0x11,0xf7,0x7d,0x91,0x5c,0x3a,
+  0x3e,0xf3,0xb9,0x8d,0x1a,0xcf,0x49,0x9f,0x38,0x63,0xdc,0x48,0x5a,0x6f,0xa9,0x2b,
+  0xa6,0x36,0xea,0xf7,0x7a,0xc9,0xf5,0x94,0xd0,0xc9,0x54,0xd8,0x68,0x60,0xd,0x92,
+  0x86,0x1b,0x1a,0xd2,0x4b,0x46,0x6c,0x24,0x78,0x44,0x92,0x26,0x41,0x85,0x6c,0xb8,
+  0xe,0x3f,0xf1,0xbd,0xc6,0xc7,0xc8,0xf5,0x67,0x51,0x63,0x5f,0x3e,0x5f,0x76,0x8e,
+  0x23,0xcf,0x11,0xd4,0xf7,0x90,0x33,0x25,0xce,0x6c,0x6f,0x3f,0x75,0x26,0xbe,0x55,
+  0x44,0xde,0x5f,0x5e,0x11,0x71,0x1c,0x88,0xe6,0xd,0xe1,0x74,0x7c,0x31,0xc7,0x82,
+  0x53,0x87,0xec,0xed,0x1f,0x66,0xac,0x30,0x47,0x71,0x2f,0x1a,0xe5,0x47,0x50,0xc2,
+  0x33,0xa6,0x74,0xbc,0x17,0xb7,0x8e,0x46,0x23,0x2b,0xfb,0x20,0x79,0x70,0x12,0x46,
+  0xc,0x46,0x25,0xee,0x8f,0xa4,0xf7,0x87,0x46,0xb,0x4e,0x1c,0x81,0xbd,0x9,0x23,
+  0xcd,0x98,0xd0,0xa8,0xf1,0x7c,0x48,0x48,0xbf,0x33,0x68,0x94,0x99,0xb,0x72,0x27,
+  0xac,0xf8,0xef,0xa8,0xf1,0x9a,0xe3,0x1b,0x1f,0xdd,0xf8,0x51,0x88,0xf0,0xd,0xf9,
+  0x86,0xf8,0x8f,0xef,0x51,0x18,0x52,0xc4,0x30,0xa,0x30,0x17,0x94,0xa0,0x67,0xd9,
+  0xfb,0x3d,0xae,0x4e,0x9,0xb,0xc9,0xc3,0x3f,0x72,0xb7,0x1f,0x1f,0x1b,0xb9,0x7b,
+  0xca,0xd0,0x3d,0xc2,0x28,0xf2,0x8,0x22,0x9c,0x93,0x88,0xff,0x24,0x3d,0x26,0x61,
+  0x88,0xef,0xc1,0x79,0x93,0xab,0x8f,0x39,0x7d,0x43,0x8,0xf4,0xc2,0x61,0x90,0x88,
+  0xc4,0x5d,0x2b,0x73,0x6c,0x34,0xe1,0xd4,0xcd,0x49,0x4c,0xc3,0x8f,0xd0,0xe7,0x6a,
+  0x22,0x4f,0xf0,0x9c,0x9c,0x26,0x3d,0xca,0x8,0x50,0x3a,0x1d,0x20,0x9f,0xf4,0xea,
+  0x55,0x36,0xd2,0x4b,0xec,0xcc,0x26,0xdc,0x8f,0x3c,0xf7,0x62,0x4e,0xbc,0xe8,0x12,
+  0xf3,0x4,0xd,0x1a,0x35,0x74,0x28,0x6,0x53,0xf9,0xff,0x35,0xe6,0xa7,0x82,0xcc,
+  0x9b,0x53,0xc8,0x7d,0x26,0xf3,0x1f,0xfc,0xfa,0x15,0x2d,0xc9,0x42,0x19,0x35,0x4,
+  0xc7,0x5e,0x8,0x52,0x12,0x4f,0x34,0xd0,0xbf,0x48,0xc9,0x93,0x58,0x3e,0xe4,0xbe,
+  0x20,0x1e,0x27,0x13,0x1a,0xa,0x4e,0xe6,0xd2,0xc7,0x4a,0xa,0x12,0x71,0xe1,0x4c,
+  0xe9,0x78,0xcc,0xc9,0x5,0x86,0x26,0x60,0xbc,0x56,0x47,0x83,0xa9,0x26,0xe8,0xa2,
+  0xfb,0x34,0x3c,0x92,0x6,0x9a,0xb0,0x71,0x88,0x58,0x3e,0x56,0xab,0x74,0xcc,0x22,
+  0x12,0xea,0xa5,0x1e,0x37,0x6a,0xf7,0x67,0xda,0xe3,0x56,0x97,0x63,0x9f,0xef,0xb1,
+  0x51,0xeb,0x90,0xfd,0x72,0x70,0xc8,0x5e,0xbe,0xd4,0x67,0x2,0xd9,0xed,0x40,0xb7,
+  0x3,0xdd,0x4e,0xbe,0x7b,0xe9,0x9,0x38,0xc1,0x49,0x40,0xb0,0x20,0xbc,0x49,0x21,
+  0x1d,0x8e,0xc4,0x1e,0xdb,0x7,0xec,0xc1,0xe2,0xca,0xd9,0x6f,0x52,0x2f,0x88,0x84,
+  0x61,0x7c,0xa2,0x46,0xe2,0xf7,0x57,0x76,0xfe,0xd5,0x39,0xd7,0x44,0x7c,0x5c,0xaf,
+  0xc7,0xb1,0xf,0xd3,0xba,0x7,0xa2,0x35,0x7d,0x4f,0x9e,0x33,0x2,0xf9,0x67,0x3f,
+  0x98,0x38,0x8d,0x4a,0x29,0xd1,0x43,0x95,0xb,0x85,0xc0,0x29,0x4,0x4e,0xf3,0x81,
+  0x4b,0x73,0x61,0x8,0xba,0xa5,0x4,0x4d,0x8d,0x41,0xb,0x25,0xe0,0xd6,0xf9,0x57,
+  0x7a,0xae,0x1a,0xc8,0xa9,0x39,0xd3,0xf9,0x6c,0x34,0x7a,0xf1,0xc2,0x44,0x5e,0xe6,
+  0x35,0x76,0xdf,0x7b,0xec,0x7e,0xb4,0x7a,0xc1,0xa8,0x6,0x8b,0xea,0x68,0xc5,0x47,
+  0xc3,0x64,0x32,0x86,0x37,0x61,0xf3,0xd2,0x67,0x72,0x3a,0xc9,0xdf,0x26,0xcf,0xbe,
+  0x22,0x9d,0x99,0x81,0x8e,0x55,0x81,0xce,0x4c,0xa1,0x63,0x15,0xd1,0xb1,0xa,0xe9,
+  0xcc,0xca,0xe8,0xcc,0xca,0xe9,0xcc,0xea,0xa2,0xc3,0xc,0x74,0xda,0x15,0xe8,0x30,
+  0x85,0x4e,0xbb,0x88,0x4e,0xbb,0x90,0xe,0x2b,0xa3,0xc3,0xca,0xe9,0xb0,0xba,0xe8,
+  0xcc,0xd,0x74,0x3a,0x15,0xe8,0xcc,0x15,0x3a,0x9d,0x22,0x3a,0x9d,0x42,0x3a,0xf3,
+  0x32,0x3a,0xf3,0x72,0x3a,0xf3,0xba,0xe8,0x78,0x6,0x3a,0xdd,0xa,0x74,0x3c,0x85,
+  0x4e,0xb7,0x88,0x4e,0xb7,0x90,0x8e,0x57,0x46,0xc7,0x2b,0xa7,0xe3,0xd5,0x45,0x27,
+  0x30,0xd0,0xe9,0x55,0xa0,0x13,0x28,0x74,0x7a,0x45,0x74,0x7a,0x85,0x74,0x82,0x32,
+  0x3a,0x41,0x39,0x9d,0xa0,0x2e,0x3a,0xd7,0x6,0x3a,0xfd,0xa,0x74,0xae,0x15,0x3a,
+  0xfd,0x22,0x3a,0xfd,0x42,0x3a,0xd7,0x65,0x74,0xae,0xcb,0xe9,0x5c,0xd7,0x45,0x27,
+  0x34,0xd0,0x19,0x54,0xa0,0x13,0x2a,0x74,0x6,0x45,0x74,0x6,0x85,0x74,0xc2,0x32,
+  0x3a,0x61,0x39,0x9d,0xb0,0x2e,0x3a,0x57,0x6,0x3a,0xc3,0xa,0x74,0xae,0x14,0x3a,
+  0xc3,0x22,0x3a,0xc3,0x42,0x3a,0x57,0x65,0x74,0xae,0xca,0xe9,0x5c,0x6d,0x4c,0x27,
+  0xfd,0x17,0x70,0x3f,0x20,0x5c,0xc0,0xd2,0x8f,0x51,0x1c,0x2e,0x41,0xc8,0x6d,0x82,
+  0xf4,0x74,0xf1,0x4d,0xfa,0x2e,0x59,0x15,0xa1,0x4c,0x4,0xd4,0xb5,0x51,0xba,0x58,
+  0x5a,0x58,0x2d,0x2c,0xd1,0x83,0xba,0x27,0xf0,0x86,0x32,0x22,0x77,0x4,0xb2,0x4e,
+  0x1d,0x25,0x6b,0xe,0xb0,0x4,0x90,0xb,0xc3,0x3f,0xc8,0x2d,0x4a,0x8c,0x1f,0x2b,
+  0x58,0xcb,0xf5,0x1f,0x72,0x22,0x2e,0x17,0x61,0x48,0xae,0x14,0xf5,0x67,0xc8,0xc3,
+  0xf7,0x3e,0x71,0x3a,0x99,0x10,0xe,0xdf,0xd0,0xda,0x1a,0x55,0xe5,0xb2,0xba,0x70,
+  0x9,0x23,0x13,0x88,0xde,0x5e,0x84,0x2d,0x17,0x83,0x48,0x13,0x2f,0x13,0xbe,0xec,
+  0xce,0x8e,0x97,0x87,0x3,0x8a,0x80,0x5b,0xb2,0xcb,0x46,0x9f,0xc0,0x69,0x7d,0xbc,
+  0x3c,0x92,0x60,0xb2,0x2b,0x4e,0xd9,0x92,0xb7,0x93,0xf2,0xaa,0x76,0xb2,0xc5,0x10,
+  0x6b,0x80,0x1d,0x2a,0xee,0x6d,0x44,0x3c,0xc,0x6b,0x4d,0xb9,0x68,0xb5,0x40,0xcc,
+  0x56,0xb3,0x93,0xb7,0x4d,0xb7,0x7f,0x8a,0x96,0xbb,0xe3,0xf8,0x88,0x97,0xbb,0xeb,
+  0x93,0x6f,0xea,0x73,0xfa,0xd,0xbc,0xc1,0xec,0x8,0xc6,0x7a,0x72,0xb1,0x99,0x4,
+  0xdc,0x8c,0xaf,0xdf,0x92,0xb1,0x69,0x7d,0x4,0x59,0x47,0x9d,0x35,0x43,0x3e,0x1f,
+  0x43,0x83,0x4c,0x3d,0x7d,0x14,0x61,0xd4,0x25,0xa9,0xe5,0x89,0x3c,0x3f,0x93,0xce,
+  0xe6,0x72,0x7d,0xdd,0x12,0xdf,0x46,0x67,0x8b,0x25,0xb3,0x49,0x8c,0x78,0x7b,0x2c,
+  0xbf,0x21,0x60,0x30,0x84,0x25,0x19,0x5,0xce,0x5f,0x92,0xad,0xb2,0x6e,0x6b,0xbd,
+  0xc9,0xef,0xe9,0xee,0x99,0xc9,0x66,0xcb,0x62,0x1d,0x10,0x8c,0x9d,0x61,0x6e,0x6f,
+  0xa2,0x68,0x26,0x58,0x5d,0x54,0x82,0x54,0x12,0x77,0x59,0xcc,0xcb,0xfd,0xc6,0x34,
+  0xad,0xd4,0x5e,0x6d,0xb,0xc7,0xe7,0x2e,0x4c,0xc8,0xe9,0x66,0xa4,0x55,0xc1,0x74,
+  0x79,0xf7,0x65,0xa2,0xea,0x89,0x50,0x28,0x7e,0x7e,0xb8,0x6e,0x91,0xfa,0x92,0x60,
+  0x4d,0x3c,0x33,0x14,0x43,0x1a,0xbb,0x95,0xef,0xc2,0x9e,0x3,0xa5,0x12,0xc2,0x2c,
+  0x2d,0x84,0x3f,0x5f,0xde,0x28,0xb9,0xac,0xb4,0x37,0x90,0x9c,0x2e,0xc3,0x50,0xa6,
+  0x62,0x25,0x75,0x57,0x1d,0x77,0x76,0x26,0x99,0xee,0xb3,0x17,0xc9,0x8e,0x18,0x44,
+  0x7c,0xc9,0x60,0x5c,0x26,0xde,0x85,0x9f,0x8b,0x12,0x4d,0x8a,0x71,0xe9,0xaf,0xda,
+  0x5c,0x36,0xec,0xfd,0x78,0x1c,0x12,0xe0,0xf1,0x73,0xa7,0x95,0x37,0x5d,0xcd,0x1c,
+  0xda,0x33,0xf4,0x8e,0xd5,0xd0,0x18,0x3b,0x78,0xed,0x4c,0x29,0x73,0xc1,0x56,0xc2,
+  0x48,0xb4,0x78,0xd9,0x5f,0x59,0x25,0x2a,0xe8,0x66,0x49,0xab,0xb4,0xcb,0x66,0xc6,
+  0x6f,0x9c,0xba,0xb9,0x99,0x1d,0x86,0xca,0x3d,0x4a,0xb5,0xf9,0xce,0x46,0x5a,0x65,
+  0x2a,0x40,0xe5,0xc1,0xfd,0xdb,0x50,0x6f,0x3,0xd0,0xd1,0xdc,0xcb,0x35,0x87,0xb2,
+  0xfa,0xbd,0x9,0xb2,0xdb,0x7a,0x96,0x26,0x2f,0xde,0x75,0x13,0xd4,0xea,0xc5,0xac,
+  0x77,0xcf,0x7d,0x78,0x6f,0x81,0xc5,0x81,0x9e,0xf8,0xf2,0x38,0xc6,0xf0,0x96,0x34,
+  0xdc,0x73,0x79,0x5f,0x7,0x87,0xc4,0x90,0xb5,0xf2,0x58,0x40,0x6f,0x5b,0x86,0x99,
+  0x49,0x1e,0x69,0xd6,0x1b,0xfb,0x1f,0x2b,0xa5,0xb6,0x3c,0x79,0x1d,0x41,0x25,0x78,
+  0xfa,0x17,0xc6,0x65,0xdc,0x7a,0x11,0xff,0x78,0x90,0xcd,0x6b,0x34,0xcc,0x26,0x36,
+  0xea,0xf7,0x5b,0x5a,0x96,0x40,0x11,0x76,0xda,0x7a,0x4e,0xa8,0xb3,0x52,0xf6,0x5b,
+  0xe2,0xf3,0x8f,0xef,0xc9,0xcf,0x9,0x72,0x8b,0x1e,0xc4,0x67,0xea,0x17,0x4b,0xc5,
+  0xea,0xcd,0x4c,0xca,0x36,0x1a,0x63,0x16,0x92,0xf2,0xb4,0x5f,0xd6,0x48,0xbb,0xb7,
+  0x9d,0x22,0x51,0x7d,0x7d,0x87,0xf9,0x84,0x7a,0x40,0x23,0x73,0xf3,0xf8,0x73,0xf1,
+  0x36,0x25,0xf2,0x46,0x5e,0x9c,0xdc,0xc1,0x4b,0xe3,0xad,0xfa,0x3a,0x8d,0xad,0x2,
+  0x9f,0x7a,0xe2,0x23,0xfd,0x6,0xef,0x5d,0x2b,0x83,0xd3,0xf7,0x8e,0x93,0xaf,0x28,
+  0xfb,0x61,0xf1,0xc3,0x8e,0xbe,0xb5,0x9e,0x11,0x4e,0x79,0x59,0xe9,0x5f,0xa8,0x7a,
+  0x1e,0x9c,0xc5,0xdb,0xdb,0x58,0x68,0xf3,0x5b,0xb2,0xeb,0xbd,0x6a,0x5b,0xfe,0xe,
+  0x95,0xc1,0x5c,0x29,0x97,0x2c,0x25,0x8d,0xda,0xad,0x56,0x69,0x22,0x65,0x73,0xa6,
+  0x2c,0x8f,0xac,0xbf,0x91,0x35,0xa5,0x99,0x61,0xb5,0xff,0x4b,0x99,0xf1,0x27,0x48,
+  0x15,0xca,0x2,0x78,0xc8,0xcb,0xfe,0x98,0x35,0x3c,0x83,0xef,0x6c,0x9c,0xb3,0x1c,
+  0x25,0x8a,0x3e,0x9a,0x92,0x2d,0xff,0xb3,0x83,0xb5,0xbf,0x81,0xf4,0x6d,0x55,0xfa,
+  0xde,0x76,0xa5,0x6f,0xd7,0x21,0xfd,0xe0,0x49,0xf9,0x58,0x79,0xc3,0x8f,0x53,0xed,
+  0x4d,0xa4,0xef,0x28,0xd2,0x77,0xb6,0x5c,0xf5,0x9d,0x3a,0xa4,0x7f,0x2a,0xfa,0xb5,
+  0xd2,0x77,0x36,0x91,0xbe,0xab,0x4a,0xbf,0xe5,0xaa,0xef,0xd6,0x20,0xfd,0x96,0xbe,
+  0x96,0xff,0x8f,0xca,0x77,0x37,0x51,0xbe,0xa7,0x28,0xdf,0xdd,0x72,0xd1,0xf7,0x6a,
+  0x50,0x7e,0xf8,0xa4,0xfc,0x3a,0xe5,0x7b,0x9b,0x28,0xdf,0x57,0x95,0xdf,0x72,0xcd,
+  0xf7,0x6b,0x50,0xde,0x7a,0x2a,0xfa,0xb5,0xd2,0xf7,0x37,0x91,0x7e,0xa0,0x48,0xdf,
+  0xdb,0x72,0xd1,0xf,0xea,0x90,0xfe,0xa9,0xea,0xd7,0x4a,0x3f,0xd8,0x44,0xfa,0xa1,
+  0x2a,0xfd,0x96,0xab,0x7e,0x58,0x83,0xf4,0xed,0xa7,0xaa,0x5f,0x2b,0xfd,0x70,0x13,
+  0xe9,0xf,0x14,0xe9,0xfb,0x5b,0xae,0xfa,0x83,0x3a,0xa4,0x7f,0xaa,0xfa,0xb5,0xd2,
+  0x1f,0x64,0xa5,0x8f,0xff,0xfc,0x5,0xe8,0x24,0xfd,0xfe,
   
 };
 
@@ -243,7 +249,7 @@ static const unsigned char qt_resource_struct[] = {
 0x0,0x0,0x1,0x78,0xb2,0x62,0x40,0x37,
   // :/main.qml
   0x0,0x0,0x0,0x36,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x5,0x99,
-0x0,0x0,0x1,0x78,0xb3,0xa4,0x46,0xd0,
+0x0,0x0,0x1,0x78,0xb5,0xf1,0x7e,0x3e,
   // :/Carre.qml
   0x0,0x0,0x0,0x1e,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x2,0xc2,
 0x0,0x0,0x1,0x78,0xb2,0xb2,0x56,0xea,
diff --git a/debug/qrc_qml.o b/debug/qrc_qml.o
index 1bbeff08eb3c9304b7351b99db621f3da57ca0a6..87e3a3baf7820b9b707fbdfadbc95f9638689476 100644
Binary files a/debug/qrc_qml.o and b/debug/qrc_qml.o differ
diff --git a/debug/sudoku.exe b/debug/sudoku.exe
index 010efdde6790dddad56167c49d11360cc5410425..e81914440a5a95d9c5270b56d65fd61ee3b403fe 100644
Binary files a/debug/sudoku.exe and b/debug/sudoku.exe differ
diff --git a/grille.cpp b/grille.cpp
index fafed4c2e64512b6f8f8503f5793035d5400e599..54d2361936c9b2bf1add8424ed6bd372f115f7ba 100644
--- a/grille.cpp
+++ b/grille.cpp
@@ -40,6 +40,7 @@ Grille::Grille(QObject *parent) : QObject(parent){
     for(int j =0;j<9;j++){
         colors.push_back(colors_case);
     }
+    isSaved = false;
 }
 
 void Grille::save_grid(){
@@ -63,6 +64,8 @@ void Grille::save_grid(){
     }
     myFile.close();
     cout << "enregistrement en cours" << endl;
+    isSaved = true;
+    gameIsSaved();
 }
 
 
diff --git a/grille.h b/grille.h
index e1fc2b208f0b9d5bd1e130d8deb0493af14b3acb..c5d082dc5568b24247c484924cabef55a9bfc54f 100644
--- a/grille.h
+++ b/grille.h
@@ -13,6 +13,7 @@ class Grille : public QObject
     Q_PROPERTY(QList<QList<QString>> colors MEMBER colors NOTIFY focusChanged)
     Q_PROPERTY(int verifier MEMBER verif NOTIFY verifClicked)
     Q_PROPERTY(int coloration MEMBER chiffre_IsActif NOTIFY chiffreActifChanged)
+    Q_PROPERTY(bool saved MEMBER isSaved NOTIFY gameIsSaved)
 
 public:
     explicit Grille(QObject *parent = nullptr);
@@ -20,8 +21,9 @@ public:
     Q_INVOKABLE void colorer_voisins( int Carre,int Case, bool focus);
     Q_INVOKABLE void verif_matrice( );
     Q_INVOKABLE void set_chiffre_actif(int i);
+    Q_INVOKABLE void save_grid();
     void Print();
-    void save_grid();
+
 
 
 private:
@@ -35,6 +37,7 @@ private:
     int verif;
     int chiffre_actif;
     int chiffre_IsActif;
+    bool isSaved;
 
 
 
@@ -43,6 +46,7 @@ signals:
     void focusChanged();
     void verifClicked();
     void chiffreActifChanged();
+    void gameIsSaved();
 
 };
 
diff --git a/main.qml b/main.qml
index 20fb6660d10bef125b60bf6060579e82dc7785cc..84d56aa74cdcbc407f469863733781710a427ba2 100644
--- a/main.qml
+++ b/main.qml
@@ -25,6 +25,19 @@ Window {
         }
     }
 
+    function save_clicked(){
+        vueObjetCpt.save_grid();
+        var isSaved = vueObjetCpt.gameIsSaved();
+        if(isSaved){
+//            background_menubar.color ="";
+            background_menubar.menuBarItem.highlighted ? "#666666" : "transparent" ;
+        }
+        else{  result.visible=true;
+            result.rectangle.color="#666666";
+            result.rectangle.text1.text="Erreur d'enregistrement";
+        }
+    }
+
     function set_chiffre_actif(i){
         vueObjetCpt.set_chiffre_actif(i);
         var chiffre_IsActif = vueObjetCpt.coloration
@@ -131,7 +144,8 @@ Window {
 
         Menu { title: qsTr("File")
             Action { text: qsTr("New File")}
-            Action { text: qsTr("Save current game")}
+            Action { text: qsTr("Save current game")
+                onTriggered: save_clicked()}
         }
 
         delegate: MenuBarItem {
@@ -148,6 +162,7 @@ Window {
             }
 
             background: Rectangle {
+                id : background_menubar
                 implicitWidth: 40
                 implicitHeight: 40
                 opacity: enabled ? 1 : 0.3
@@ -159,8 +174,8 @@ Window {
             implicitWidth: 40
             implicitHeight: 40
             color: "#ffffff"
-//            border.width: 1
-//            border.color: "#000000"
+            //            border.width: 1
+            //            border.color: "#000000"
 
 
             Rectangle {
diff --git a/sudoku.pro.user b/sudoku.pro.user
index ebfba85441959fff365f3ba9c0fc106f7ce4f42e..f30498733a6faaca60eb2caa7bad66590747f111 100644
--- a/sudoku.pro.user
+++ b/sudoku.pro.user
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.14.1, 2021-04-08T22:57:14. -->
+<!-- Written by QtCreator 4.14.1, 2021-04-09T00:41:01. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -100,17 +100,10 @@
     <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Simon/Documents/travail/ECL/Electifs/Programmation des interfaces graphiques en C++/Projet/projet_sudoku</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
-      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
-      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
-      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
-     </valuemap>
-     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
      </valuemap>
-     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@@ -218,7 +211,7 @@
     <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
     <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
     <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-    <value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/Simon/Documents/travail/ECL/Electifs/Programmation des interfaces graphiques en C++/Projet/projet_sudoku_v2/build-sudoku-Desktop_Qt_5_15_2_MinGW_64_bit-Debug</value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/Simon/Documents/travail/ECL/Electifs/Programmation des interfaces graphiques en C++/Projet/projet_sudoku</value>
    </valuemap>
    <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
   </valuemap>