From 5d513ec11771e1345a3849c519c2d073f8b22c97 Mon Sep 17 00:00:00 2001 From: majean5 Date: Sun, 12 Jun 2022 21:27:17 +0200 Subject: [PATCH] documentation et descriptions des diagrammes de classes --- Business/Manager.cs | 1 - .../Diagramme de classes - Modèle.mdj | 62 +- ...mme de classes - Persistance (complet).mdj | 1028 ++++++++++++----- .../description-diagramme-modèle.pdf | Bin 0 -> 36432 bytes .../description-diagramme-persistance.pdf | Bin 0 -> 38599 bytes Persistance/DataContractPersistance.cs | 83 +- Persistance/DataToPersistReq.cs | 12 + Persistance/DataToPersistUsers.cs | 9 + Persistance/IPersistanceManager.cs | 31 +- StubLib/Stub.cs | 53 +- UnitTests/UnitTest_Modele.cs | 2 + WpfApp1/App.xaml.cs | 11 +- 12 files changed, 994 insertions(+), 298 deletions(-) create mode 100644 Documents/diagrammes-de-classes/description-diagramme-modèle.pdf create mode 100644 Documents/diagrammes-de-classes/description-diagramme-persistance.pdf diff --git a/Business/Manager.cs b/Business/Manager.cs index 15efe11..5dcd8f5 100644 --- a/Business/Manager.cs +++ b/Business/Manager.cs @@ -48,7 +48,6 @@ namespace Business /// /// constructeur avec INJECTION DE LA DéPENDANCE /// - public Manager(IPersistanceManager pers) { Requins = new ObservableCollection(); diff --git a/Documents/diagrammes-de-classes/Diagramme de classes - Modèle.mdj b/Documents/diagrammes-de-classes/Diagramme de classes - Modèle.mdj index b7f6e61..3fc4642 100644 --- a/Documents/diagrammes-de-classes/Diagramme de classes - Modèle.mdj +++ b/Documents/diagrammes-de-classes/Diagramme de classes - Modèle.mdj @@ -298,7 +298,7 @@ "font": "Arial;13;0", "left": 197, "top": 317, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+ModifierRequin(nom: string, nomSci: string, desc: string, photo: string, video: string, photoCarte: string, statutCons: Conservation, funFact: string, repartition: List): void", "horizontalAlignment": 0 @@ -1966,7 +1966,7 @@ "font": "Arial;13;0", "left": 1357, "top": 637, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "+FaireUnSubmit(nom: string, nomSci: string, desc: string, photo: string, video: string, photoCarte: string, statutCons: Conservation, funFact: string, repartition: List): int", "horizontalAlignment": 0 @@ -3520,6 +3520,44 @@ ] } ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGBWF6pZfXgxjg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UCrequinType", + "stereotype": "enumeration", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWF9DC/oY1zw=", + "_parent": { + "$ref": "AAAAAAGBWF6pZfXgxjg=" + }, + "name": "normal", + "type": "" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWGBYe/7KaOY=", + "_parent": { + "$ref": "AAAAAAGBWF6pZfXgxjg=" + }, + "name": "edit", + "type": "" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWGBcH/7u79E=", + "_parent": { + "$ref": "AAAAAAGBWF6pZfXgxjg=" + }, + "name": "add", + "type": "" + } + ] } ] }, @@ -3564,9 +3602,9 @@ "$ref": "AAAAAAGAI04iLFHiQSY=" }, "font": "Arial;13;0", - "left": 30.55908203125, + "left": 32, "top": 5, - "width": 84.35107421875, + "width": 86, "height": 13, "text": "Recherche carte" }, @@ -3579,7 +3617,7 @@ "font": "Arial;13;1", "left": 13, "top": 5, - "width": 12.55908203125, + "width": 14, "height": 13, "text": "sd" } @@ -4295,9 +4333,9 @@ "$ref": "AAAAAAGAI2vLjtnug4s=" }, "font": "Arial;13;0", - "left": 22.55908203125, + "left": 24, "top": 5, - "width": 93.421875, + "width": 96, "height": 13, "text": "Ajouter un requin" }, @@ -4310,7 +4348,7 @@ "font": "Arial;13;1", "left": 5, "top": 5, - "width": 12.55908203125, + "width": 14, "height": 13, "text": "sd" } @@ -4923,7 +4961,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 47.99365234375, + "left": 48, "top": 357, "width": 1, "height": 13 @@ -4937,7 +4975,7 @@ "font": "Arial;13;1", "left": 29, "top": 357, - "width": 13.99365234375, + "width": 14, "height": 13, "text": "alt" }, @@ -5642,7 +5680,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 39.99365234375, + "left": 40, "top": 213, "width": 1, "height": 13 @@ -5656,7 +5694,7 @@ "font": "Arial;13;1", "left": 21, "top": 213, - "width": 13.99365234375, + "width": 14, "height": 13, "text": "alt" }, diff --git a/Documents/diagrammes-de-classes/Diagramme de classes - Persistance (complet).mdj b/Documents/diagrammes-de-classes/Diagramme de classes - Persistance (complet).mdj index 116f0bd..9a4bfe3 100644 --- a/Documents/diagrammes-de-classes/Diagramme de classes - Persistance (complet).mdj +++ b/Documents/diagrammes-de-classes/Diagramme de classes - Persistance (complet).mdj @@ -61,7 +61,7 @@ "font": "Arial;13;1", "left": 101, "top": 199, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "Requin" }, @@ -96,7 +96,7 @@ "font": "Arial;13;0", "left": 96, "top": 192, - "width": 1019.05517578125, + "width": 1024, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGALQHg06EJvVQ=" @@ -133,7 +133,7 @@ "font": "Arial;13;0", "left": 101, "top": 222, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/Nom: string", "horizontalAlignment": 0 @@ -150,7 +150,7 @@ "font": "Arial;13;0", "left": 101, "top": 237, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/NomSci: string", "horizontalAlignment": 0 @@ -167,7 +167,7 @@ "font": "Arial;13;0", "left": 101, "top": 252, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/Description: string", "horizontalAlignment": 0 @@ -184,7 +184,7 @@ "font": "Arial;13;0", "left": 101, "top": 267, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/Photo: string", "horizontalAlignment": 0 @@ -201,7 +201,7 @@ "font": "Arial;13;0", "left": 101, "top": 282, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/Video: string", "horizontalAlignment": 0 @@ -218,7 +218,7 @@ "font": "Arial;13;0", "left": 101, "top": 297, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/PhotoCarte: string", "horizontalAlignment": 0 @@ -235,7 +235,7 @@ "font": "Arial;13;0", "left": 101, "top": 312, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/StatutCons: Conservation", "horizontalAlignment": 0 @@ -252,7 +252,7 @@ "font": "Arial;13;0", "left": 101, "top": 327, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/FunFact: string", "horizontalAlignment": 0 @@ -269,7 +269,7 @@ "font": "Arial;13;0", "left": 101, "top": 342, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+/Repartion: List", "horizontalAlignment": 0 @@ -278,7 +278,7 @@ "font": "Arial;13;0", "left": 96, "top": 217, - "width": 1019.05517578125, + "width": 1024, "height": 143 }, { @@ -303,7 +303,7 @@ "font": "Arial;13;0", "left": 101, "top": 365, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+ModifierRequin(nom: string, nomSci: string, desc: string, photo: string, video: string, photoCarte: string, statutCons: Conservation, funFact: string, repartition: List): void", "horizontalAlignment": 0 @@ -320,7 +320,7 @@ "font": "Arial;13;0", "left": 101, "top": 380, - "width": 1009.05517578125, + "width": 1014, "height": 13, "text": "+Equals(r: Requin): bool", "horizontalAlignment": 0 @@ -329,7 +329,7 @@ "font": "Arial;13;0", "left": 96, "top": 360, - "width": 1019.05517578125, + "width": 1024, "height": 38 }, { @@ -369,7 +369,7 @@ "containerChangeable": true, "left": 96, "top": 192, - "width": 1019.05517578125, + "width": 1024, "height": 206, "nameCompartment": { "$ref": "AAAAAAGALQHg06EIY6M=" @@ -1043,7 +1043,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 523, + "left": 524, "top": 499, "height": 13, "alpha": 1.5707963267948966, @@ -1064,7 +1064,7 @@ }, "visible": null, "font": "Arial;13;0", - "left": 509, + "left": 510, "top": 495, "height": 13, "alpha": 1.5707963267948966, @@ -1085,7 +1085,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 552, + "left": 553, "top": 508, "height": 13, "alpha": -1.5707963267948966, @@ -1106,7 +1106,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 496, + "left": 497, "top": 587, "height": 13, "alpha": 0.5235987755982988, @@ -1127,7 +1127,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 484, + "left": 485, "top": 581, "height": 13, "alpha": 0.7853981633974483, @@ -1148,7 +1148,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 521, + "left": 522, "top": 600, "height": 13, "alpha": -0.5235987755982988, @@ -1169,7 +1169,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 550, + "left": 551, "top": 412, "height": 13, "alpha": -0.5235987755982988, @@ -1189,7 +1189,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 537, + "left": 538, "top": 410, "height": 13, "alpha": -0.7853981633974483, @@ -1209,7 +1209,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 578, + "left": 579, "top": 416, "height": 13, "alpha": 0.5235987755982988, @@ -1255,7 +1255,7 @@ "$ref": "AAAAAAGALSX7JqOz6iI=" }, "lineStyle": 1, - "points": "503:623;573:398", + "points": "504:623;574:398", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAmStElfQTaPs=" @@ -1438,7 +1438,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 667, + "left": 668, "top": 421, "height": 13, "alpha": -0.5235987755982988, @@ -1458,7 +1458,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 657, + "left": 658, "top": 430, "height": 13, "alpha": -0.7853981633974483, @@ -1478,7 +1478,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 688, + "left": 689, "top": 404, "height": 13, "alpha": 0.5235987755982988, @@ -1524,7 +1524,7 @@ "$ref": "AAAAAAGALSoSe6WyJaI=" }, "lineStyle": 1, - "points": "783:593;667:398", + "points": "783:593;668:398", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAmStY2fRcV7s=" @@ -1867,7 +1867,7 @@ "font": "Arial;13;1", "left": 1069, "top": 471, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "Utilisateur" }, @@ -1902,7 +1902,7 @@ "font": "Arial;13;0", "left": 1064, "top": 464, - "width": 1008.20068359375, + "width": 1017, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAvAXUjFZRTBY=" @@ -1939,7 +1939,7 @@ "font": "Arial;13;0", "left": 1069, "top": 494, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "+/NbSubmits: int", "horizontalAlignment": 0 @@ -1948,7 +1948,7 @@ "font": "Arial;13;0", "left": 1064, "top": 489, - "width": 1008.20068359375, + "width": 1017, "height": 23 }, { @@ -1973,7 +1973,7 @@ "font": "Arial;13;0", "left": 1069, "top": 517, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "+FaireUnSubmit(nom: string, nomSci: string, desc: string, photo: string, video: string, photoCarte: string, statutCons: Conservation, funFact: string, repartition: List): int", "horizontalAlignment": 0 @@ -1990,7 +1990,7 @@ "font": "Arial;13;0", "left": 1069, "top": 532, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "+FaireUnChangement(req: Requin, desc: string, photo: string, video: string, photoCarte: string, statutCons: Conservation, funFact: string, repartition: List): void", "horizontalAlignment": 0 @@ -2007,7 +2007,7 @@ "font": "Arial;13;0", "left": 1069, "top": 547, - "width": 998.20068359375, + "width": 1007, "height": 13, "text": "+Equals(u: Utilisateur): bool", "horizontalAlignment": 0 @@ -2016,7 +2016,7 @@ "font": "Arial;13;0", "left": 1064, "top": 512, - "width": 1008.20068359375, + "width": 1017, "height": 53 }, { @@ -2056,7 +2056,7 @@ "containerChangeable": true, "left": 1064, "top": 464, - "width": 1008.20068359375, + "width": 1017, "height": 101, "nameCompartment": { "$ref": "AAAAAAGAvAXUjFZQl4I=" @@ -2095,8 +2095,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1552, - "top": 410, + "left": 1555, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -2116,8 +2116,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1537, - "top": 410, + "left": 1540, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -2137,8 +2137,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1581, - "top": 411, + "left": 1584, + "top": 410, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -2156,7 +2156,7 @@ "$ref": "AAAAAAGAvAXUjFZP5GE=" }, "lineStyle": 1, - "points": "1567:463;1567:371", + "points": "1571:463;1569:371", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAvAsirFvk5QU=" @@ -2209,7 +2209,7 @@ "font": "Arial;13;1", "left": 1861, "top": 255, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "Expert" }, @@ -2244,7 +2244,7 @@ "font": "Arial;13;0", "left": 1856, "top": 248, - "width": 466.09814453125, + "width": 468, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAvCeH6mc8WqY=" @@ -2281,7 +2281,7 @@ "font": "Arial;13;0", "left": 1861, "top": 278, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "+/Surnom: string", "horizontalAlignment": 0 @@ -2298,7 +2298,7 @@ "font": "Arial;13;0", "left": 1861, "top": 293, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "+/DateD: DateTime", "horizontalAlignment": 0 @@ -2307,7 +2307,7 @@ "font": "Arial;13;0", "left": 1856, "top": 273, - "width": 466.09814453125, + "width": 468, "height": 38 }, { @@ -2332,7 +2332,7 @@ "font": "Arial;13;0", "left": 1861, "top": 316, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "+ValiderSubmit(lBdFine: List, lBdPasFinie: List): int", "horizontalAlignment": 0 @@ -2349,7 +2349,7 @@ "font": "Arial;13;0", "left": 1861, "top": 331, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "+ValiderUnChangement(lBdFine: List, lBdPasFinie: List): int", "horizontalAlignment": 0 @@ -2366,7 +2366,7 @@ "font": "Arial;13;0", "left": 1861, "top": 346, - "width": 456.09814453125, + "width": 458, "height": 13, "text": "+Equals(e: Expert): bool", "horizontalAlignment": 0 @@ -2375,7 +2375,7 @@ "font": "Arial;13;0", "left": 1856, "top": 311, - "width": 466.09814453125, + "width": 468, "height": 53 }, { @@ -2415,7 +2415,7 @@ "containerChangeable": true, "left": 1856, "top": 248, - "width": 466.09814453125, + "width": 468, "height": 116, "nameCompartment": { "$ref": "AAAAAAGAvCeH6mc7ICg=" @@ -2677,7 +2677,7 @@ "top": 1109, "width": 640.58642578125, "height": 13, - "text": "+RequinsAdd: ObservableCollection", + "text": "+/RequinsAdd: ObservableCollection", "horizontalAlignment": 0 }, { @@ -2694,7 +2694,7 @@ "top": 1124, "width": 640.58642578125, "height": 13, - "text": "+RequinsEdit: ObservableCollection", + "text": "+/RequinsEdit: ObservableCollection", "horizontalAlignment": 0 }, { @@ -3094,7 +3094,7 @@ "font": "Arial;13;0", "left": 925, "top": 861, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "«i»" }, @@ -3107,7 +3107,7 @@ "font": "Arial;13;3", "left": 925, "top": 876, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "IPersistanceManager" }, @@ -3142,7 +3142,7 @@ "font": "Arial;13;0", "left": 920, "top": 856, - "width": 525.5439453125, + "width": 527, "height": 38, "stereotypeLabel": { "$ref": "AAAAAAGA15bdbeAtPgE=" @@ -3169,7 +3169,7 @@ "font": "Arial;13;0", "left": 920, "top": 894, - "width": 525.5439453125, + "width": 527, "height": 10 }, { @@ -3194,7 +3194,7 @@ "font": "Arial;13;0", "left": 925, "top": 909, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "+LoadUsers() : (List, List)(): IEnumerable", "horizontalAlignment": 0 @@ -3211,7 +3211,7 @@ "font": "Arial;13;0", "left": 925, "top": 924, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "+SaveUsers(List users, List experts) : void(): IEnumerable", "horizontalAlignment": 0 @@ -3228,7 +3228,7 @@ "font": "Arial;13;0", "left": 925, "top": 939, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "+LoadRequins() : (List, List, List)()", "horizontalAlignment": 0 @@ -3245,17 +3245,51 @@ "font": "Arial;13;0", "left": 925, "top": 954, - "width": 515.5439453125, + "width": 517, "height": 13, "text": "+SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void()", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWL8AQpztZ+E=", + "_parent": { + "$ref": "AAAAAAGA15bdbuAylvk=" + }, + "model": { + "$ref": "AAAAAAGBWL8AM5zk4cc=" + }, + "font": "Arial;13;0", + "left": 925, + "top": 969, + "width": 517, + "height": 13, + "text": "+LoadFunFacts(): List", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWL8EhZ3URwY=", + "_parent": { + "$ref": "AAAAAAGA15bdbuAylvk=" + }, + "model": { + "$ref": "AAAAAAGBWL8EfJ3L4FI=" + }, + "font": "Arial;13;0", + "left": 925, + "top": 984, + "width": 517, + "height": 13, + "text": "+SaveFunFacts(List) : void()", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", "left": 920, "top": 904, - "width": 525.5439453125, - "height": 68 + "width": 527, + "height": 98 }, { "_type": "UMLReceptionCompartmentView", @@ -3294,8 +3328,8 @@ "containerChangeable": true, "left": 920, "top": 856, - "width": 525.5439453125, - "height": 116, + "width": 527, + "height": 146, "nameCompartment": { "$ref": "AAAAAAGA15bdbeAsGok=" }, @@ -3333,8 +3367,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1552, - "top": 410, + "left": 1555, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3354,8 +3388,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1537, - "top": 410, + "left": 1540, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3375,8 +3409,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1581, - "top": 411, + "left": 1584, + "top": 410, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3394,7 +3428,7 @@ "$ref": "AAAAAAGAvAXUjFZP5GE=" }, "lineStyle": 1, - "points": "1567:463;1567:371", + "points": "1571:463;1569:371", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGA15reEOfj5xY=" @@ -3427,8 +3461,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1552, - "top": 410, + "left": 1555, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3448,8 +3482,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1537, - "top": 410, + "left": 1540, + "top": 411, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3469,8 +3503,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1581, - "top": 411, + "left": 1584, + "top": 410, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3488,7 +3522,7 @@ "$ref": "AAAAAAGAvAXUjFZP5GE=" }, "lineStyle": 1, - "points": "1567:463;1567:371", + "points": "1571:463;1569:371", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGA15rjSOgg+64=" @@ -3615,7 +3649,7 @@ "top": 1094, "width": 344.9951171875, "height": 13, - "text": "+Utilisateurs: List", + "text": "+/Utilisateurs: List", "horizontalAlignment": 0 }, { @@ -3632,7 +3666,7 @@ "top": 1109, "width": 344.9951171875, "height": 13, - "text": "+Experts: List", + "text": "+/Experts: List", "horizontalAlignment": 0 }, { @@ -3649,7 +3683,7 @@ "top": 1124, "width": 344.9951171875, "height": 13, - "text": "+SelectedUser: Personne", + "text": "+/SelectedUser: Personne", "horizontalAlignment": 0 }, { @@ -3666,7 +3700,7 @@ "top": 1139, "width": 344.9951171875, "height": 13, - "text": "+Pers: IPersistanceManager", + "text": "+/Pers: IPersistanceManager", "horizontalAlignment": 0 } ], @@ -3959,7 +3993,7 @@ "font": "Arial;13;1", "left": 693, "top": 1407, - "width": 162.25244140625, + "width": 167, "height": 13, "text": "DataToPersistReq" }, @@ -3994,7 +4028,7 @@ "font": "Arial;13;0", "left": 688, "top": 1400, - "width": 172.25244140625, + "width": 177, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGBTKft0FPgGkw=" @@ -4031,9 +4065,9 @@ "font": "Arial;13;0", "left": 693, "top": 1430, - "width": 162.25244140625, + "width": 167, "height": 13, - "text": "+Requins: List", + "text": "+/Requins: List", "horizontalAlignment": 0 }, { @@ -4048,9 +4082,9 @@ "font": "Arial;13;0", "left": 693, "top": 1445, - "width": 162.25244140625, + "width": 167, "height": 13, - "text": "+RequinsAdd: List", + "text": "+/RequinsAdd: List", "horizontalAlignment": 0 }, { @@ -4065,16 +4099,16 @@ "font": "Arial;13;0", "left": 693, "top": 1460, - "width": 162.25244140625, + "width": 167, "height": 13, - "text": "+RequinsEdit: List", + "text": "+/RequinsEdit: List", "horizontalAlignment": 0 } ], "font": "Arial;13;0", "left": 688, "top": 1425, - "width": 172.25244140625, + "width": 177, "height": 53 }, { @@ -4089,7 +4123,7 @@ "font": "Arial;13;0", "left": 688, "top": 1478, - "width": 172.25244140625, + "width": 177, "height": 10 }, { @@ -4129,7 +4163,7 @@ "containerChangeable": true, "left": 688, "top": 1400, - "width": 172.25244140625, + "width": 177, "height": 88, "nameCompartment": { "$ref": "AAAAAAGBTKft0FPf1qA=" @@ -4188,7 +4222,7 @@ "font": "Arial;13;1", "left": 981, "top": 1415, - "width": 141.9716796875, + "width": 149, "height": 13, "text": "DataToPersistUsers" }, @@ -4223,7 +4257,7 @@ "font": "Arial;13;0", "left": 976, "top": 1408, - "width": 151.9716796875, + "width": 159, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGBTKjWb1U6ug0=" @@ -4260,9 +4294,9 @@ "font": "Arial;13;0", "left": 981, "top": 1438, - "width": 141.9716796875, + "width": 149, "height": 13, - "text": "+Users: List", + "text": "+/Users: List", "horizontalAlignment": 0 }, { @@ -4277,16 +4311,16 @@ "font": "Arial;13;0", "left": 981, "top": 1453, - "width": 141.9716796875, + "width": 149, "height": 13, - "text": "+Experts: List", + "text": "+/Experts: List", "horizontalAlignment": 0 } ], "font": "Arial;13;0", "left": 976, "top": 1433, - "width": 151.9716796875, + "width": 159, "height": 38 }, { @@ -4301,7 +4335,7 @@ "font": "Arial;13;0", "left": 976, "top": 1471, - "width": 151.9716796875, + "width": 159, "height": 10 }, { @@ -4341,7 +4375,7 @@ "containerChangeable": true, "left": 976, "top": 1408, - "width": 151.9716796875, + "width": 159, "height": 73, "nameCompartment": { "$ref": "AAAAAAGBTKjWb1U5OjM=" @@ -4474,7 +4508,7 @@ "top": 1094, "width": 519, "height": 13, - "text": "+SerializerReq: DataContractSerializer", + "text": "+/SerializerReq: DataContractSerializer", "horizontalAlignment": 0 }, { @@ -4491,7 +4525,7 @@ "top": 1109, "width": 519, "height": 13, - "text": "+SerializerUsers: DataContractSerializer", + "text": "+/SerializerUsers: DataContractSerializer", "horizontalAlignment": 0 }, { @@ -4508,7 +4542,7 @@ "top": 1124, "width": 519, "height": 13, - "text": "+dataReq: DataToPersistReq", + "text": "+/dataReq: DataToPersistReq", "horizontalAlignment": 0 }, { @@ -4525,7 +4559,7 @@ "top": 1139, "width": 519, "height": 13, - "text": "+data: DataToPersistUsers", + "text": "+/data: DataToPersistUsers", "horizontalAlignment": 0 }, { @@ -4542,7 +4576,7 @@ "top": 1154, "width": 519, "height": 13, - "text": "+FilePath: string", + "text": "+/FilePath: string", "horizontalAlignment": 0 }, { @@ -4559,7 +4593,7 @@ "top": 1169, "width": 519, "height": 13, - "text": "+FileNameReq: string", + "text": "+/FileNameReq: string", "horizontalAlignment": 0 }, { @@ -4576,7 +4610,7 @@ "top": 1184, "width": 519, "height": 13, - "text": "+FileNameUsers: string", + "text": "+/FileNameUsers: string", "horizontalAlignment": 0 }, { @@ -4593,7 +4627,7 @@ "top": 1199, "width": 519, "height": 13, - "text": "+FileReq: string", + "text": "+/FileReq: string", "horizontalAlignment": 0 }, { @@ -4610,7 +4644,7 @@ "top": 1214, "width": 519, "height": 13, - "text": "+FileUsers: string", + "text": "+/FileUsers: string", "horizontalAlignment": 0 }, { @@ -4627,7 +4661,7 @@ "top": 1229, "width": 519, "height": 13, - "text": "+settings: XmlWriterSettings", + "text": "+/settings: XmlWriterSettings", "horizontalAlignment": 0 } ], @@ -4714,13 +4748,47 @@ "height": 13, "text": "+SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void()", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWL08jYmztLQ=", + "_parent": { + "$ref": "AAAAAAGBTKox/1Zing8=" + }, + "model": { + "$ref": "AAAAAAGBWL08gImqA7E=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1312, + "width": 519, + "height": 13, + "text": "+LoadFunFacts(): List", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWL1CFYqaiGk=", + "_parent": { + "$ref": "AAAAAAGBTKox/1Zing8=" + }, + "model": { + "$ref": "AAAAAAGBWL1CC4qRsGY=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1327, + "width": 519, + "height": 13, + "text": "+SaveFunFacts(List) : void()", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", "left": 664, "top": 1247, "width": 529, - "height": 68 + "height": 98 }, { "_type": "UMLReceptionCompartmentView", @@ -4760,7 +4828,7 @@ "left": 664, "top": 1064, "width": 529, - "height": 251, + "height": 281, "nameCompartment": { "$ref": "AAAAAAGBTKox/lZcsNQ=" }, @@ -5157,7 +5225,7 @@ "top": 1094, "width": 513.43017578125, "height": 13, - "text": "+requins: List", + "text": "+/requins: List", "horizontalAlignment": 0 }, { @@ -5174,7 +5242,7 @@ "top": 1109, "width": 513.43017578125, "height": 13, - "text": "+requinsAdd: List", + "text": "+/requinsAdd: List", "horizontalAlignment": 0 }, { @@ -5191,7 +5259,7 @@ "top": 1124, "width": 513.43017578125, "height": 13, - "text": "+requinsEdit: List", + "text": "+/requinsEdit: List", "horizontalAlignment": 0 }, { @@ -5208,7 +5276,7 @@ "top": 1139, "width": 513.43017578125, "height": 13, - "text": "+utlisateurs: List", + "text": "+/utlisateurs: List", "horizontalAlignment": 0 }, { @@ -5225,7 +5293,24 @@ "top": 1154, "width": 513.43017578125, "height": 13, - "text": "+expert: List", + "text": "+/expert: List", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGBWLkyIX7jips=", + "_parent": { + "$ref": "AAAAAAGBTMMVimwDLyM=" + }, + "model": { + "$ref": "AAAAAAGBWLkyCX7aGmc=" + }, + "font": "Arial;13;0", + "left": 101, + "top": 1169, + "width": 513.43017578125, + "height": 13, + "text": "+/funfacts: list", "horizontalAlignment": 0 } ], @@ -5233,7 +5318,7 @@ "left": 96, "top": 1089, "width": 523.43017578125, - "height": 83 + "height": 98 }, { "_type": "UMLOperationCompartmentView", @@ -5256,7 +5341,7 @@ }, "font": "Arial;13;0", "left": 101, - "top": 1177, + "top": 1192, "width": 513.43017578125, "height": 13, "text": "+Stub()", @@ -5273,7 +5358,7 @@ }, "font": "Arial;13;0", "left": 101, - "top": 1192, + "top": 1207, "width": 513.43017578125, "height": 13, "text": "+LoadUsers() : (List, List)()", @@ -5290,7 +5375,7 @@ }, "font": "Arial;13;0", "left": 101, - "top": 1207, + "top": 1222, "width": 513.43017578125, "height": 13, "text": "+SaveUsers(List users, List experts) : void()", @@ -5307,7 +5392,7 @@ }, "font": "Arial;13;0", "left": 101, - "top": 1222, + "top": 1237, "width": 513.43017578125, "height": 13, "text": "+LoadRequins() : (List, List, List)()", @@ -5324,18 +5409,52 @@ }, "font": "Arial;13;0", "left": 101, - "top": 1237, + "top": 1252, "width": 513.43017578125, "height": 13, "text": "+SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void()", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWLoZ/4FgqME=", + "_parent": { + "$ref": "AAAAAAGBTMMVimwET+k=" + }, + "model": { + "$ref": "AAAAAAGBWLoZ84FXd4s=" + }, + "font": "Arial;13;0", + "left": 101, + "top": 1267, + "width": 513.43017578125, + "height": 13, + "text": "+LoadFunFacts(): List", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGBWLodcoJHJFI=", + "_parent": { + "$ref": "AAAAAAGBTMMVimwET+k=" + }, + "model": { + "$ref": "AAAAAAGBWLodZ4I+efw=" + }, + "font": "Arial;13;0", + "left": 101, + "top": 1282, + "width": 513.43017578125, + "height": 13, + "text": "+SaveFunFacts(List) : void()", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", "left": 96, - "top": 1172, + "top": 1187, "width": 523.43017578125, - "height": 83 + "height": 113 }, { "_type": "UMLReceptionCompartmentView", @@ -5375,7 +5494,7 @@ "left": 96, "top": 1064, "width": 523.43017578125, - "height": 191, + "height": 236, "nameCompartment": { "$ref": "AAAAAAGBTMMVimv+FQg=" }, @@ -5413,8 +5532,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 812, - "top": 1343, + "left": 808, + "top": 1358, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -5434,8 +5553,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 799, - "top": 1335, + "left": 795, + "top": 1350, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -5455,8 +5574,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 837, - "top": 1358, + "left": 833, + "top": 1373, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -5476,7 +5595,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 800, + "left": 805, "top": 1363, "height": 13, "alpha": 0.5235987755982988, @@ -5497,8 +5616,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 790, - "top": 1354, + "left": 795, + "top": 1353, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -5518,8 +5637,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 821, - "top": 1380, + "left": 826, + "top": 1381, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -5539,8 +5658,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 824, - "top": 1323, + "left": 811, + "top": 1352, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -5559,8 +5678,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 812, - "top": 1318, + "left": 798, + "top": 1347, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -5579,8 +5698,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 850, - "top": 1333, + "left": 837, + "top": 1363, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -5625,7 +5744,7 @@ "$ref": "AAAAAAGBTKft0FPebZg=" }, "lineStyle": 1, - "points": "800:1399;851:1315", + "points": "804:1399;838:1345", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOTxWYCEcXo=" @@ -5682,8 +5801,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 997, - "top": 1361, + "left": 1005, + "top": 1376, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -5703,8 +5822,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 983, - "top": 1367, + "left": 992, + "top": 1383, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -5724,8 +5843,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1024, - "top": 1348, + "left": 1032, + "top": 1363, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -5745,7 +5864,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1008, + "left": 1009, "top": 1384, "height": 13, "alpha": 0.5235987755982988, @@ -5766,8 +5885,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 995, - "top": 1387, + "left": 996, + "top": 1388, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -5787,7 +5906,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1034, + "left": 1036, "top": 1376, "height": 13, "alpha": -0.5235987755982988, @@ -5808,8 +5927,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 986, - "top": 1338, + "left": 1001, + "top": 1368, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -5828,8 +5947,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 975, - "top": 1346, + "left": 990, + "top": 1377, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -5848,8 +5967,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1009, - "top": 1323, + "left": 1024, + "top": 1352, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -5894,7 +6013,7 @@ "$ref": "AAAAAAGBTKjWb1U4YsE=" }, "lineStyle": 1, - "points": "1033:1407;989:1315", + "points": "1035:1407;1003:1345", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOUIP4EAXU8=" @@ -5951,7 +6070,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 359, + "left": 360, "top": 899, "height": 13, "alpha": 1.5707963267948966, @@ -5972,7 +6091,7 @@ }, "visible": null, "font": "Arial;13;0", - "left": 359, + "left": 360, "top": 884, "height": 13, "alpha": 1.5707963267948966, @@ -5993,7 +6112,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 360, + "left": 359, "top": 928, "height": 13, "alpha": -1.5707963267948966, @@ -6012,7 +6131,7 @@ "$ref": "AAAAAAGBTMMVimv9pvs=" }, "lineStyle": 1, - "points": "358:1063;360:920;919:915", + "points": "358:1063;360:920;919:925", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOVqV4GGk3Q=" @@ -6046,7 +6165,7 @@ "visible": false, "font": "Arial;13;0", "left": 1075, - "top": 1000, + "top": 1015, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -6067,7 +6186,7 @@ "visible": null, "font": "Arial;13;0", "left": 1064, - "top": 990, + "top": 1005, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -6088,7 +6207,7 @@ "visible": false, "font": "Arial;13;0", "left": 1096, - "top": 1021, + "top": 1036, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -6106,7 +6225,7 @@ "$ref": "AAAAAAGBTKox/lZbzEI=" }, "lineStyle": 1, - "points": "1044:1063;1128:972", + "points": "1058:1063;1115:1002", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOWAVoH3rbE=" @@ -6139,8 +6258,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1315, - "top": 999, + "left": 1322, + "top": 1014, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -6160,8 +6279,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1325, - "top": 987, + "left": 1331, + "top": 1002, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -6181,8 +6300,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1296, - "top": 1022, + "left": 1303, + "top": 1037, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -6202,8 +6321,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1281, - "top": 971, + "left": 1304, + "top": 1000, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -6223,8 +6342,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1291, - "top": 962, + "left": 1314, + "top": 991, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -6244,8 +6363,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1260, - "top": 989, + "left": 1284, + "top": 1019, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -6265,8 +6384,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1350, - "top": 1028, + "left": 1340, + "top": 1029, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -6285,7 +6404,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1357, + "left": 1346, "top": 1017, "height": 13, "alpha": -0.7853981633974483, @@ -6305,8 +6424,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1336, - "top": 1052, + "left": 1326, + "top": 1053, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -6351,7 +6470,7 @@ "$ref": "AAAAAAGA15bdbeArhR8=" }, "lineStyle": 1, - "points": "1252:972;1361:1063", + "points": "1275:1002;1351:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOZM6IP8G6U=" @@ -6471,8 +6590,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1471, - "top": 891, + "left": 1472, + "top": 901, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -6493,7 +6612,7 @@ "visible": false, "font": "Arial;13;0", "left": 1474, - "top": 878, + "top": 888, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -6513,8 +6632,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1467, - "top": 919, + "left": 1468, + "top": 929, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -6622,7 +6741,7 @@ "$ref": "AAAAAAGA15bdbeArhR8=" }, "lineStyle": 1, - "points": "1446:913;2112:912;2112:1063", + "points": "1447:923;2112:912;2112:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOZef4R70+M=" @@ -7549,7 +7668,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 621, + "left": 622, "top": 417, "height": 13, "alpha": 0.5235987755982988, @@ -7570,7 +7689,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 634, + "left": 635, "top": 420, "height": 13, "alpha": 0.7853981633974483, @@ -7591,7 +7710,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 593, + "left": 594, "top": 413, "height": 13, "alpha": -0.5235987755982988, @@ -7633,7 +7752,7 @@ "visible": false, "font": "Arial;13;0", "left": 340, - "top": 1020, + "top": 1021, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -7652,8 +7771,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 303, - "top": 1040, + "left": 302, + "top": 1039, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -7702,7 +7821,7 @@ "$ref": "AAAAAAGALQHg0qEHIYI=" }, "lineStyle": 1, - "points": "606:398;608:888;312:888;312:1032;323:1063", + "points": "607:398;608:888;312:888;312:1032;321:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTOzLo8c2WYA=" @@ -7822,8 +7941,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1582, - "top": 584, + "left": 1584, + "top": 585, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -7843,8 +7962,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1595, - "top": 586, + "left": 1597, + "top": 588, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -7864,7 +7983,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1554, + "left": 1556, "top": 580, "height": 13, "alpha": -0.5235987755982988, @@ -7885,8 +8004,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 530, - "top": 1055, + "left": 536, + "top": 1052, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -7905,8 +8024,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 540, - "top": 1065, + "left": 546, + "top": 1061, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -7925,8 +8044,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 512, - "top": 1034, + "left": 516, + "top": 1033, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -7975,7 +8094,7 @@ "$ref": "AAAAAAGAvAXUjFZP5GE=" }, "lineStyle": 1, - "points": "1567:565;1568:632;1024:632;1024:803;536:808;536:1040;501:1063", + "points": "1570:565;1568:632;1024:632;1024:803;536:808;536:1040;507:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTO09G8njIe0=" @@ -8030,17 +8149,18 @@ "model": { "$ref": "AAAAAAGBTO1pY8vhijI=" }, - "visible": false, "font": "Arial;13;0", - "left": 2319, + "left": 2217, "top": 1593, + "width": 204, "height": 13, "alpha": 1.5707963267948966, "distance": 15, "hostEdge": { "$ref": "AAAAAAGBTO1pY8vlGU0=" }, - "edgePosition": 1 + "edgePosition": 1, + "text": "+SaveFunFacts(List) : void" }, { "_type": "EdgeLabelView", @@ -8159,7 +8279,7 @@ "visible": false, "font": "Arial;13;0", "left": 343, - "top": 1275, + "top": 1320, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -8179,7 +8299,7 @@ "visible": false, "font": "Arial;13;0", "left": 329, - "top": 1277, + "top": 1322, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -8199,7 +8319,7 @@ "visible": false, "font": "Arial;13;0", "left": 370, - "top": 1270, + "top": 1315, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -8248,7 +8368,7 @@ "$ref": "AAAAAAGAvCeH6mc6iG8=" }, "lineStyle": 1, - "points": "2173:364;2328:472;2320:1584;360:1584;358:1255", + "points": "2173:364;2328:472;2320:1584;360:1584;358:1300", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTO1pY8vmWGc=" @@ -8637,8 +8757,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1643, - "top": 567, + "left": 1646, + "top": 568, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -8658,8 +8778,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1654, - "top": 559, + "left": 1657, + "top": 561, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -8679,7 +8799,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1620, + "left": 1622, "top": 583, "height": 13, "alpha": -0.5235987755982988, @@ -8786,7 +8906,7 @@ "$ref": "AAAAAAGAvAXUjFZP5GE=" }, "lineStyle": 1, - "points": "1615:565;1656:608;2136:608;2136:1032;2131:1063", + "points": "1618:565;1656:608;2136:608;2136:1032;2131:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTPO1oPtCgDw=" @@ -8906,7 +9026,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2166, + "left": 2167, "top": 368, "height": 13, "alpha": 0.5235987755982988, @@ -8927,7 +9047,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2177, + "left": 2178, "top": 361, "height": 13, "alpha": 0.7853981633974483, @@ -8948,7 +9068,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2142, + "left": 2143, "top": 382, "height": 13, "alpha": -0.5235987755982988, @@ -9055,7 +9175,7 @@ "$ref": "AAAAAAGAvCeH6mc6iG8=" }, "lineStyle": 1, - "points": "2138:364;2216:456;2216:1032;2195:1063", + "points": "2139:364;2216:456;2216:1032;2195:1063", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGBTPRlav8X++c=" @@ -9090,6 +9210,225 @@ "headQualifiersCompartment": { "$ref": "AAAAAAGBTPRlbP8hCOM=" } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGBWGGmNTJkNxc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGBWGGmNjJlH0o=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJkNxc=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGBWGGmNjJmRB4=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJlH0o=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGBWGGmNjJnjhQ=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJlH0o=" + }, + "font": "Arial;13;1", + "left": 229, + "top": 559, + "width": 89, + "height": 13, + "text": "UCrequinType" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGBWGGmNjJoMv8=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJlH0o=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 72, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGBWGGmNjJp47c=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJlH0o=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 224, + "top": 552, + "width": 99, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGBWGGmNjJmRB4=" + }, + "nameLabel": { + "$ref": "AAAAAAGBWGGmNjJnjhQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGBWGGmNjJoMv8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGBWGGmNjJp47c=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGBWGGmNjJqesM=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJkNxc=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGBWGHKajTY8bM=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJqesM=" + }, + "model": { + "$ref": "AAAAAAGBWGHKWzSox5U=" + }, + "font": "Arial;13;0", + "left": 229, + "top": 582, + "width": 89, + "height": 13, + "text": "+normal", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGBWGHQhjW/tKo=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJqesM=" + }, + "model": { + "$ref": "AAAAAAGBWGHQdzWPbGk=" + }, + "font": "Arial;13;0", + "left": 229, + "top": 597, + "width": 89, + "height": 13, + "text": "+edit", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGBWGHUTDamP4g=", + "_parent": { + "$ref": "AAAAAAGBWGGmNjJqesM=" + }, + "model": { + "$ref": "AAAAAAGBWGHUPjZ2p/I=" + }, + "font": "Arial;13;0", + "left": 229, + "top": 612, + "width": 89, + "height": 13, + "text": "+add", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 224, + "top": 577, + "width": 99, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGBWGGmNjJrA5Q=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJkNxc=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "font": "Arial;13;0", + "left": 224, + "top": 630, + "width": 99, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGBWGGmNjJsqC8=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJkNxc=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGBWGGmNjJtfDo=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJkNxc=" + }, + "model": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 224, + "top": 552, + "width": 99, + "height": 88, + "nameCompartment": { + "$ref": "AAAAAAGBWGGmNjJlH0o=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGBWGGmNjJqesM=" + }, + "operationCompartment": { + "$ref": "AAAAAAGBWGGmNjJrA5Q=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGBWGGmNjJsqC8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGBWGGmNjJtfDo=" + } } ] }, @@ -10068,6 +10407,7 @@ "_parent": { "$ref": "AAAAAAGAvCeH6mc4CoU=" }, + "name": "SaveFunFacts(List) : void", "end1": { "_type": "UMLAssociationEnd", "_id": "AAAAAAGBTO1pY8viQV0=", @@ -10334,7 +10674,7 @@ "_parent": { "$ref": "AAAAAAGA15EgBtxNhVI=" }, - "name": "RequinsAdd", + "name": "/RequinsAdd", "type": "ObservableCollection" }, { @@ -10343,7 +10683,7 @@ "_parent": { "$ref": "AAAAAAGA15EgBtxNhVI=" }, - "name": "RequinsEdit", + "name": "/RequinsEdit", "type": "ObservableCollection" }, { @@ -10563,7 +10903,8 @@ "_parent": { "$ref": "AAAAAAGBTI4uf0YXVOE=" }, - "name": "Requin req" + "name": "Requin req", + "type": "" }, { "_type": "UMLParameter", @@ -10951,6 +11292,33 @@ "$ref": "AAAAAAGA15bdbeAp+aQ=" }, "name": "SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWL8AM5zk4cc=", + "_parent": { + "$ref": "AAAAAAGA15bdbeAp+aQ=" + }, + "name": "LoadFunFacts", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGBWL9KWaB25sg=", + "_parent": { + "$ref": "AAAAAAGBWL8AM5zk4cc=" + }, + "type": "List", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWL8EfJ3L4FI=", + "_parent": { + "$ref": "AAAAAAGA15bdbeAp+aQ=" + }, + "name": "SaveFunFacts(List) : void" } ], "isAbstract": true @@ -11012,7 +11380,7 @@ "_parent": { "$ref": "AAAAAAGBTJpsF0v66mQ=" }, - "name": "Utilisateurs", + "name": "/Utilisateurs", "type": "List" }, { @@ -11021,7 +11389,7 @@ "_parent": { "$ref": "AAAAAAGBTJpsF0v66mQ=" }, - "name": "Experts", + "name": "/Experts", "type": "List" }, { @@ -11030,7 +11398,7 @@ "_parent": { "$ref": "AAAAAAGBTJpsF0v66mQ=" }, - "name": "SelectedUser", + "name": "/SelectedUser", "type": { "$ref": "AAAAAAGAs7Try2LrDc4=" } @@ -11041,7 +11409,7 @@ "_parent": { "$ref": "AAAAAAGBTJpsF0v66mQ=" }, - "name": "Pers", + "name": "/Pers", "type": { "$ref": "AAAAAAGA15bdbeAp+aQ=" } @@ -11261,7 +11629,8 @@ "_parent": { "$ref": "AAAAAAGBTKDwFlDSLCQ=" }, - "name": "Utilisateur oldU" + "name": "Utilisateur oldU", + "type": "" }, { "_type": "UMLParameter", @@ -11269,7 +11638,8 @@ "_parent": { "$ref": "AAAAAAGBTKDwFlDSLCQ=" }, - "name": "Utilisateur newU" + "name": "Utilisateur newU", + "type": "" }, { "_type": "UMLParameter", @@ -11365,7 +11735,7 @@ "_parent": { "$ref": "AAAAAAGBTKft0FPc5Jk=" }, - "name": "Requins", + "name": "/Requins", "type": "List" }, { @@ -11374,7 +11744,7 @@ "_parent": { "$ref": "AAAAAAGBTKft0FPc5Jk=" }, - "name": "RequinsAdd", + "name": "/RequinsAdd", "type": "List" }, { @@ -11383,7 +11753,7 @@ "_parent": { "$ref": "AAAAAAGBTKft0FPc5Jk=" }, - "name": "RequinsEdit", + "name": "/RequinsEdit", "type": "List" } ] @@ -11432,7 +11802,7 @@ "_parent": { "$ref": "AAAAAAGBTKjWb1U2voU=" }, - "name": "Users", + "name": "/Users", "type": "List" }, { @@ -11441,7 +11811,7 @@ "_parent": { "$ref": "AAAAAAGBTKjWb1U2voU=" }, - "name": "Experts", + "name": "/Experts", "type": "List" } ] @@ -11475,7 +11845,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "SerializerReq", + "name": "/SerializerReq", "type": "DataContractSerializer" }, { @@ -11484,7 +11854,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "SerializerUsers", + "name": "/SerializerUsers", "type": "DataContractSerializer" }, { @@ -11493,7 +11863,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "dataReq", + "name": "/dataReq", "type": { "$ref": "AAAAAAGBTKft0FPc5Jk=" } @@ -11504,7 +11874,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "data", + "name": "/data", "type": { "$ref": "AAAAAAGBTKjWb1U2voU=" } @@ -11515,7 +11885,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "FilePath", + "name": "/FilePath", "type": "string" }, { @@ -11524,7 +11894,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "FileNameReq", + "name": "/FileNameReq", "type": "string" }, { @@ -11533,7 +11903,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "FileNameUsers", + "name": "/FileNameUsers", "type": "string" }, { @@ -11542,7 +11912,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "FileReq", + "name": "/FileReq", "type": "string" }, { @@ -11551,7 +11921,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "FileUsers", + "name": "/FileUsers", "type": "string" }, { @@ -11560,7 +11930,7 @@ "_parent": { "$ref": "AAAAAAGBTKox/lZZaTM=" }, - "name": "settings", + "name": "/settings", "type": "XmlWriterSettings" } ], @@ -11596,6 +11966,33 @@ "$ref": "AAAAAAGBTKox/lZZaTM=" }, "name": "SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWL08gImqA7E=", + "_parent": { + "$ref": "AAAAAAGBTKox/lZZaTM=" + }, + "name": "LoadFunFacts", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGBWL4zwYwAE5Y=", + "_parent": { + "$ref": "AAAAAAGBWL08gImqA7E=" + }, + "type": "List", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWL1CC4qRsGY=", + "_parent": { + "$ref": "AAAAAAGBTKox/lZZaTM=" + }, + "name": "SaveFunFacts(List) : void" } ] }, @@ -11695,7 +12092,8 @@ "_parent": { "$ref": "AAAAAAGBTLgSJmcnTRk=" }, - "name": "object sender" + "name": "object sender", + "type": "" }, { "_type": "UMLParameter", @@ -11703,7 +12101,8 @@ "_parent": { "$ref": "AAAAAAGBTLgSJmcnTRk=" }, - "name": "EventArgs e" + "name": "EventArgs e", + "type": "" }, { "_type": "UMLParameter", @@ -11747,7 +12146,7 @@ "_parent": { "$ref": "AAAAAAGBTMMViWv7uyI=" }, - "name": "requins", + "name": "/requins", "type": "List" }, { @@ -11756,7 +12155,7 @@ "_parent": { "$ref": "AAAAAAGBTMMViWv7uyI=" }, - "name": "requinsAdd", + "name": "/requinsAdd", "type": "List" }, { @@ -11765,7 +12164,7 @@ "_parent": { "$ref": "AAAAAAGBTMMViWv7uyI=" }, - "name": "requinsEdit", + "name": "/requinsEdit", "type": "List" }, { @@ -11774,7 +12173,7 @@ "_parent": { "$ref": "AAAAAAGBTMMViWv7uyI=" }, - "name": "utlisateurs", + "name": "/utlisateurs", "type": "List" }, { @@ -11783,8 +12182,17 @@ "_parent": { "$ref": "AAAAAAGBTMMViWv7uyI=" }, - "name": "expert", + "name": "/expert", "type": "List" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWLkyCX7aGmc=", + "_parent": { + "$ref": "AAAAAAGBTMMViWv7uyI=" + }, + "name": "/funfacts", + "type": "list" } ], "operations": [ @@ -11827,6 +12235,70 @@ "$ref": "AAAAAAGBTMMViWv7uyI=" }, "name": "SaveRequins(List reqs, List reqsAdd, List reqsEdit) : void" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWLoZ84FXd4s=", + "_parent": { + "$ref": "AAAAAAGBTMMViWv7uyI=" + }, + "name": "LoadFunFacts", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGBWLsXcIS78hk=", + "_parent": { + "$ref": "AAAAAAGBWLoZ84FXd4s=" + }, + "type": "List", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGBWLodZ4I+efw=", + "_parent": { + "$ref": "AAAAAAGBTMMViWv7uyI=" + }, + "name": "SaveFunFacts(List) : void" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGBWGGmNTJiV3I=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UCrequinType", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWGHKWzSox5U=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "name": "normal", + "type": "" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWGHQdzWPbGk=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "name": "edit", + "type": "" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGBWGHUPjZ2p/I=", + "_parent": { + "$ref": "AAAAAAGBWGGmNTJiV3I=" + }, + "name": "add", + "type": "" } ] } @@ -11873,9 +12345,9 @@ "$ref": "AAAAAAGAI04iLFHiQSY=" }, "font": "Arial;13;0", - "left": 30.55908203125, + "left": 32, "top": 5, - "width": 84.35107421875, + "width": 86, "height": 13, "text": "Recherche carte" }, @@ -11888,7 +12360,7 @@ "font": "Arial;13;1", "left": 13, "top": 5, - "width": 12.55908203125, + "width": 14, "height": 13, "text": "sd" } @@ -12604,9 +13076,9 @@ "$ref": "AAAAAAGAI2vLjtnug4s=" }, "font": "Arial;13;0", - "left": 22.55908203125, + "left": 24, "top": 5, - "width": 93.421875, + "width": 96, "height": 13, "text": "Ajouter un requin" }, @@ -12619,7 +13091,7 @@ "font": "Arial;13;1", "left": 5, "top": 5, - "width": 12.55908203125, + "width": 14, "height": 13, "text": "sd" } @@ -13232,7 +13704,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 47.99365234375, + "left": 48, "top": 357, "width": 1, "height": 13 @@ -13246,7 +13718,7 @@ "font": "Arial;13;1", "left": 29, "top": 357, - "width": 13.99365234375, + "width": 14, "height": 13, "text": "alt" }, @@ -13951,7 +14423,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 39.99365234375, + "left": 40, "top": 213, "width": 1, "height": 13 @@ -13965,7 +14437,7 @@ "font": "Arial;13;1", "left": 21, "top": 213, - "width": 13.99365234375, + "width": 14, "height": 13, "text": "alt" }, diff --git a/Documents/diagrammes-de-classes/description-diagramme-modèle.pdf b/Documents/diagrammes-de-classes/description-diagramme-modèle.pdf new file mode 100644 index 0000000000000000000000000000000000000000..16bdc0310b273a20a2a96099d4f43e56a5265a05 GIT binary patch literal 36432 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 AIRF3v literal 0 HcmV?d00001 diff --git a/Documents/diagrammes-de-classes/description-diagramme-persistance.pdf b/Documents/diagrammes-de-classes/description-diagramme-persistance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac3698025217f5de71192bb8a81ecf93161847bb GIT binary patch literal 38599 zcmdSAWmKG7+9r%ka18`2EV#S7yE_Ca917Rq?(Q1gCAbII0KwgYTW}A2B&SdJIbV0b zGqcwG8LC*1-MaVn+_Kq_D~gKKG0}4%y&-RS{Xu%e1YiV!j4YAf@bWUKy4wL6L=2q_ ztwClCiiT!DM*#EdV`T!63Kf7s#mT|h*h$p^2vi1voB&K*ze(f_9jv5m zO+l|>ew_kM0Iy^~etrfypp&7=t4sh3=WjxF3!p2|LD2zd3UmP48o%mb`7ME;AL$Ly z*5tP>zqJ0%sNcpgh=81JUllUQSeQ8K09byB(*yjK@7Jw=<9qewRgu#_Tu}x(f}9;* z)xH`k4zhLnbzlOp{WeXU8SsZQ;w%8BUjw7eAkGS4V*hpa>WP?}lZ1+sp%d_xM?!@I z!10?xLWL9X+p|{+MF)_v3eZW1;dPW5RDo_z3{p0)!zld6LFA8v)GwP~hsDIgP#EN< z^D2Z9z{bT!&&&qkWM$R^yt--Y^lGppfb|ar4j^Z{SCzkKN8;B7g9?MHgQ2aX-7m+C z-5Eqw7({_C7REqj3E@}Ks)k06uOxrW(;v<|0vP`~PQL{IIZomh)=oeN265|G$3%g~ zAQK>iEYQ}>$sEAU&c^wR%hAaJXlR4<#x1i!#{jgvf>oZy z+T71pt~LaSqEAB6ZN!zZo%h)2X?;T_PDm9`Qc5PX4^avX+aid$-E(zyx_FpgEt6Vn zcmHX4|6MA+!@J9}Dt@t5FY}pMfLl6RA$iy!1Xe3O%m=7NrX@_1Zj_z~MPcLRc6Q_{ z<>+Sj(Z%iT0h1h#!tAIQvTqOwFC9)x_a+^aR;HYUYxzt_;3IW>dGth@Zg-Qi*W>2d zM$_W(N59WntKEbB?U@Z6j^56&>z?-RkSRL$i(i1u64oy8DLl8q`0eR$>u8wf!(W;f zXNEtcE59U);W~%*I&zNlDb;7&$}p#lDzxE`i-c>iX$+`?$C_ zz*W~ofQYbNwB235$ec_+whY}AJq}ffDlPBQOP1RtJ-RM?do=_YABlx?BI73&hkeI| zzv*S4m|*6R*cD64+m9wr9G$#kT~a$3o&nj_>i=Vfq#t&HjK0~~*M@^HvOI%7t#0w> zEWWiQZ)?ya-nFRr(OtQ0hX;>@B+?1@c_3o8P~^HbL;oe{g0FYB<0Gyt4(08Z+PNx* z?MCo>Ni(Y&hx@GtlctkwkX^Pce6Ix?)%0k$oI^C$Wn&JMccUDyEhPjnW5bl`JyZP&eoB7tKLkW#FckMRuCPat)nag zEg;zskL#jOy2bJ3=H(Mw#KN&{ceew$IJ-+8`B?)^jma{%1aapgbFoXCT1TuH!76cy z{Ocbs-~$Ywu!Jjt9mCAZ`1US+{TFb==TgCVpjqfb3Ad|2(~FqIr>>{aj<}S>^DYQm zCHtc*bEWf%@50^=5NA?x_%PLH7LtXJ2PqM3F$0_A08 zvKrGUZ#;06go+fYo=lHPlBbW2wZFqpo)j^BUhrV;T8WYC%9qN$66Za!uV(N=8^?)1 zs4TynuUuCm6*z_F9o>vUE^Y6-1X6}b_{=zRd3uy3`tb8!*N=G2y0-D!K$#%vC06-( zxl$bdeT?Gf`!YFf#I5kAFMFW05Hd!MJyayZs&8SDKjiO-V*Of?&EY z!kV^sQ|z#QRvhx%eNgFeEc+DF$1W>`DA!(N2cO(mr_zBurpqhbzh3Ld_l`D8Ga=Ez z2s~&;`U6RC@_Pj$bPXq-eA@m-{o{uawJw%cAF~#9_hpDpoiMMiifwC2sx}B5#!`90 zZ71UVZ{j3K5`~<0W|cXsuJjz0RzV(WkVLEIVjt~3FrmtZIO9;=MJxt9lHR-NWX_&r zu|ed{BtN=q7FgZ)coc?5*LdtieLxO{i@B$NUg^a87PegiMzKY!i!0D%c>q^4jFs2| zO}me#phV>;I$%;RSY}vAmmbV0ztPj)T<;pf`gW|2N=3Xlfc?Hl7x4PqN^rq$?A=SpMAI%>7wPEgHzL&Za%9wZ^f?`;HxPbF zyZ?5`ou-?T++EOL9oG#GeHoh?=?&e?XD(wb$9%1cn#z?*b(9Q%$r9ACJ|oxsY(#7n`b3~)T(w=m!}H!=cy3K zpc09lIPW$**Lx!#(h=A82cP?tMz-Nxa%A{ZGh=1b2utFuo8k zJcSY6#-4c|th1asN2sldsm!g65j|){+A_`Ku6G2?!iPj-h_cni2N&#K3GZhYl53Ql8gG5SPaZ9vurb$7`b2CKw!*90|_bHDE1weBsk@@a;6 zjYp&@W<2=dnY0UlPH5fVA39hR_e@d)O6i)GHVa&j%S@3Cs+am4HA1ZGZwZCYd=N%$v*+Eq6&%H|> zIio5lC8O!JhE&+-9Tkw(m<}mT;c~H6+4ys&4ew^#*Mw*;^Me;Tq?HrFCfcWR-9hPb&h zySb6qT+{2*Wh(DU%rou4`K%u^P%;&sw(iiu-dR8poi0u#BCkbTT9zoA2|h>XT0pH- zB;VIAoS-I9R=^&m@Pm+t(D%?)QZR@Kfyzf$h4q?QVm*sgVjzAiD}%Z;l$&_7t8Y+l zsWkSz=TUPi)sHg1ZjpX5%N5qlpYMB1VfI)9=*>nt(z&V8T>OLDCWb1i6cZ~_(Rd8V z$nk6@w(Xx=FYzei%D;M3_tkKcZJtxseJuow2pS;+jr|~5h>bvm>SMa^Kvxdlf667*!+vlc<8*oS07LHdrubaG1nrS z*=X-kn6E$fxplUU!K0*geTERP%0IA2rHu$`pMFFB`FtkOmtxxVy94;M-2Af{_*I+# zS*-r9fq#|l3@Xk>PQTg})z>cL_g#5I8{lgx&me5*2>eYUEFvl7CI zS(`A3*}fLI7Pe*#8Wy%fwvHD6y#B=@3UoAfu&{FiIRJi_{0!n24vtPD=7tUc7UtI; z=pW}y%uKKBCQjzBoy)J<{k1jtSLgDJ@!yR7m*C$m$8SsjlXb5(xY?^vW(KL(7RM6%B*{?mx zukm^96oAYCmfwxhUw!`72mQ_Ge>O@C!g37qAO{;mYX)OO0MlQYezi>hOC}Mazcc;n z&i=;qKS6={Z%`2b3lx-rX3o}z4*%O|VER4H{{;@rEUf>8!|yiouU`J<{5OmL3m*QH ziT`&X!NSG$7f3L(u>Tbjtp5=bEL?wu1QRFAKOn)##`5ow_}z;C&F_C(R`~l&y}r4O zf14hO|7m)pOkVMC;p9#y`HvUC#PAi3uZVPfh3G3Jlo?b(YPJ@?de_&t=huzD+49fT z1RVg=KNb!C^}_zX^XClxHFo?bi~bBcB2uEi)c=Y*%zyOdzukMitqPKm5|uNwWBAi% z22l+F6XWX;zdlrPcYJ-_eyx%KnEvSPf3f`w4FIM;)*&)+rh`4@Qp5uE?`gU27sME}Yq94vpyB~0x93?BbjX8H>>|1Gfo z9WH;HsQ+N$f1D>ej{nnq!otb&m*Bzjns|Ph@sE7+UxEkcZ<>GPlYa#dW=8gZ4<5hA z=WkH|YivxVDje! z3y`ho>v9&QC^s`B^Q+QdiHwDvjhTj#k>d6HN+t&~`JXBNY7q0kAxFW;QpL%JLH_mC z{v#~_*g0NL{@Y3#3k&lvd4EB|&RQt*A~+LI z-WT2v{K6HOJOByjMO37Mjj`$%SV(J{v5c!_>6Dcw7KWu`)4d2D;b_iTw`g~U686{{ z*hPPyEp?owGpq}A4w~X65Fa2n(W{GEu2eeBwVF+^VKvH2Gz_D*ryJjw8_wC>nYdTL|Uo3p1O%20YsQ<4fPUO(>hmI(e{tkpkTtz*vO`@->D=A^<7c! z2PV2DGzKsR#S_dG-C?tvPo_*2cPJOPktep`qahJY)iey%A8y{}>v_8Ahbr%Mh-zcQ z9@{T-B_~@c)dJ(@-?g=gJ3B8U#y@4D=Fh|_sp z#r!pU|EC{j_P=wmbN&J)+iMzRXJG@da{Q`9{`%qI`jur~DSnqnzvx&w*niXgqW>%9 zzs}j1Ie*i$GP3@0{4JG@`IqcJ_5V8llKo5WKYw5OSYGoMD>KJ$x<7ROq5Jh*5Ad%L z^4pp}WBq@}Cl@m((?3>ynE*^2Of2kwhwI5lBsZP@r2VlD4Gj%}xh~p!4Gs0JC(2rM zn#QfZ4Llwf<@i{z_Y2)nqsjO*wREJz_A7I-8#n=wUa_o&1wn=Fwu?L8a#7fi*JPlvF#Sv}>_sG!U>0Py=rk3y7h{*-{9E~UL8>lp*5wk>or&wxja(*tj z`@|{y5kok=$A-YmW{w!6WCp1RiGm8{x!EHyJtY^9yH}UZt^@ZA7 zMAd%beN>8Mcu^{_edMixfAVJmq2+Hc{V3lBZE`q@76Zy8zw-GvTH^0x-;lFjiPhhI zE#ZcAR5Q=vcJ=*9u^rOloy&B$cQ&Aw%bYtsSS4!pNgtjydFnYy8mV2vbchM=2nAwI z@65*U2OXopmt&!TqL^;gJ6eX*Qt$oMs!uDpm7P;Qa z!QrBEF-K-=3!13Z$i1Z9TC2wCAYO2IOYAuaVRwQin`cmC8;dUp`rf^T%T}Xt+OSEB z&QvA&Tkbr(wtjCdqIiVelHRl(nZ(h=rAJ3p#H`C{&rm3|{W@yvS zdl1w#i8p8godX&evkdxy(fdeX@4z5dPDz_j9c00as$BZfVBobP-WJ+Cv$8ZLe{3o) z^!f^Rrw&PuQ>zdYDI2}Y(r&H7k&)SCU7{e=VrBoh7Yg0L`WS^~ zK(+#vjsO`Wfy&d=*pak`UpYkDy8 z4^90g7-yTMLxpPaNHzohghAx_R$~$iWE7OJ1K4WIRIWpEps{g29u8sEHMkH!y{+S& zs68w;gR+S-7OKUX{M-uR`;T+BZ$oaysH$C+2`MdYcyQi771soZSdn%vNpdPzDppI$ zT-OU<>%1%R&262HvP=mFBgH4M&|lqGOYAs341U*>%FxcO!1So9P`3n0(2yn+XLm*p zh{e|FXKiimhAkPDLeq;5)=5#>J7+gaZLsiA*JhdD!Uz!%w^%vmd3+AyGi(USvAV}W zs~Ojr=jGMi!#E1g26BB0PmypSZ`Z8j`e*D4lx@Db)t7Cu>4n?O5ogHuGm5 z7G}1NMc8s)q5K3EI!uM1EIOZ08ct}YI3E#$^GDp4^rye~XF2VM^HYu{bTCa3 zq2u}inS1C$`*Y!lCdHc;XT*nJeUBK&*l{;`ntMHe2ATVNUn*1ilMip<1~1TAiP{B1 z^56?laRGm4YJLox+iX1#ox7^d>bb|^fIn5r!+@4j@h}r#d%e>xPT6yB(xaqEy_BYW z|Cmc;G&w~ErHyx|jc9xvW@s~zWK{XN$2@DVKfyVBPXP2fdqQc>zF^F8T`I0h9 z!r?OM-9jE^3=Y^19w6c>iZ&=KfJUAA`su!&P;C+Sn$kaJm-;xmbyb=!)!fTt5m?Wk zR66Tkyh~}6NlmRBD6oSzS~z`w{|2)7;vzRG10hKIEK!J@az6=va47KmA=E09VuBNG zhULRPQ-I$MAur6(6r2z~xTr-SAS$*KLmza{5;N;gc+@p^dHlUFoAjr1cJ(T;+i7e5 z_+{lI)CBR}8te(|Y4zobr(Mh54R|*TtK!}wf`Ky18j0KKTF%jZf40#CVQSk;wqCYp z?iz=HHjN{#?d!YYk4;=Q-s59h3rsioqq~)uyt`QbA(g1S<}DkGn0*$@-1SwR z+%|)X1}a&|5A#uQ`-e`YK6=^U%jD&O zEz(2ej5&wYTbz2Q3;a&0?~t-A=;R0pEZM`KN!4F)2AO_ZZ&)+hVXLWSHK;=+)7L^` zxoEl9U{VPV=8m?i4J$W)rGuSBNU~nhV zhryrVB8e*ndWsvg<3+ffBrHE zbUQG@KCRCANRp!_t(k9gA@bxJONSSWfF-kd%)*^@k6Rp7-N+YQ78O5?$(-$=Gmddl zVwuNkhfO&V`{DgcV?#Qeaz|2|Ar^FcDyVv?)mhD1B|%r5Tb+%qJ6vsJQLTowJ~k*b zS=}&{nV4_z4L1_Qmn@ zC?TwC3hRB5v~^M~Iol~Z6apKK=Ke!rb27F8o3{BTV{dSyT7SOh8E_3KK5?~s8rp85 zaC$&3`ZNc?0qgExx8{qp;qpml)H;w*>-z*zaFqic(=%sefcC@51Xe~weT{;o9NJx` zg^q#mZeu~<`RBaP^RmbV#l^fG5j(-Ie!`34#1X|b!_A0-&6j{06ofPWnn60$H2DBN zC=-!OvJ~&G57Q?S6~hpjskXb~_z&KjsRW$9J|;h@w;=RerywFLyOoDdq-%a)^9J*| zm4B>$LTCYh>qPYIJUC%H>9zwJsvcq(4QYn{&hYb0!!uhCvej2_%r*oIsYI3<(Y*GC zFs>IrB+wI){f4lQx&66?R(_uYpGA9IK~;NPLw(BG5M|Zw1_p=+%qHHYbLV9f91QN$-01j_v21$?)f0&xM`5|*mW>Nl6DD}-7{fn%60k<;mTm~*h2K}x>JtrvNk>|Obu{WA?&q@W4;mB;*NErlhf2?7Z$5*U z8pM4t>M=#!RJX4*TIYY-t~GG(^xkpZSvNA9Pd6tiI`6#OmlFtM%p9`^IhhV#0ZR4XJ|nX@!&I?f%pH~VP`l5v(*g&Aa#p|TH4@DX<1sxA>Y{! z{2bkVb4|15AN%|PU>@{k3xzsQLmho{LLD*fi*NdKacR&O)o^Mzx*MaMJjA>R@J#RB zlLb9a`kZ7UteqzNZXk$knRRV1TGYq=z7Nk0pA|ixh|8tldE@1I7-fM6uWjnbJW;8_! z&5Sz(!k%CYo}uitI%^Zk8)^uwLg$Jp6TOujx&kkB^%DVDG+g|IPNa9!_tPmxz{-5x zzw$`T3-eQT6Y4WeKw+UbxywU9eS!V@kET}YVCh6U|Dr0J58##PYI;GD)7|&syFs5z z8OCW0M~3_c8w+psur;&R>Y9|E=Mx0HZcKd4?2gI}Yz!Ptw^LR~74$nyE!^Zv&i#tI zUYw3+`Q}q>+Z@gZJURGpWE_z142k#z6}qsgWQ>g)$kxzOJ`oSYq??i{QuNyWd#*fnUl8SWXL~qU@{lxWT1AnmlHM2dg ziyZAqK&GU~moOw~`BVZ_U)I~yFf{A6yx2u~`FZbNd)R4Ez{U$2{4=UU*%u!wEm$?U z$>6Vt7-^q{jvp*p8}Q7EpY0T%&s0JIAg6V234tSgft8;jt8VAFL(jAsyo3DRE+jP6 zf@s6xMB?nXLQ$(%HH+3f<~5vQdUEuxloN7W^~07ZRC>7tD*9~iYC8ArPqAj|@DB~} z1JE|_g)QyTm8cKK{qnaE@9Fin=q|xM#Xhj&ttjgP^=Z^mWY9HJDVj$ZKrOd#UoI+X zT-1%ps`b~g*P1)?zkk_9O6B45ZMSjnw}2DqTkMkoS*spld< z)E(O8@?zOJ>7}fFnFM(|Z-hTH47-_lEk~DEnJ<1SP38QU@$q>E?S8$g*^+2_ad9TL z-NMm}$Zcq87$x<#TVH;LO6yz4T}E_3#j0ENW=2r}H-dt!vERlZkD${UcoC!ew49B9 zZiEzNUthIFiacWvzpK`5PerYcx8HdKFI8QBj?(?_`RyO{Swg)mhKp{J}Vj)&g8 z?M=6>#oOlsk*5booraDTKbMf)y2-S|zAYp;?1b#pew`oqB1}UeU=kxT2Nb$5am3UT zOu3{H#-3#^NXGUBHiu|s9Ocd-j|ikfCx6SJyNNC2Zb~QkpildXVi`c9zB8LL5#;E8 z4g;X7=x&JzcQv4xN~qWBI_dt-!gX4I!zvYbueIy;de5N6^>TdFM{yRbs-x8^2|(=Q3&A=pf_XkTT{S%UUoJOhweEi^X>(P zHiiWaeJh@LbB;f85SoMCi_YzNV^~KX8_|$#ol26VkL`duxKoIK23|Q=o6`AJ89Avo zAGH=0$*P7-xaG!@_XAlt8-I>SbYIgfX&jW*-HMEOj$%0LPI8aYH0%5? zD^yy~cM_26rN!cdGDz1=h8A!q)U)|BGoO&BQUFi_Ghi6mxL_S6{u2G!~SowX^l zKsp?h0&Q^@7(4R{vBfx;aLa#n2qJ8@Y5Mrn%9Y5A%a`w(?kHo2CjoEn#C+LF z?W2X$OL1|G!rCH_xA{rw!1A-z1l`^0;q%&8q%i$hdI<36Hq>H7)KY92_hU$I&h@YC z5zYxon?EGto57BSAi~8A?`Zcssom@y_Wbin)O8j`1x zWL2p``E$BCa%N8IZ@qhmFkVK3@wh+7iJ$XxO2&{@9m_9!o%XIHBBFmg4u~9E*`4u3Apaq4HrF@ zc@n0JY6O>M>_m-zid`(?i7bbNp0@_IoesCXU+V)^z`ItajGkQ{HLlhxbw=8dXtyAY z-%TIO)wpI9>dJlU#bR!KOAnt`$kk6w+H!$&U9)L^da5aS=)?7fIE*}`S_al4WY&}g zud7=-5d1_67REy2M4HeknNwA5XNC{@zP9d3n9KKP8_enRi0k%wx%!Mvny9tPvc~iI zbJ*n_herL0MFL0N75h5Gw;i?`@Zkr%u-h(#COFrj*3$7RKZ<{5tB=>>zTl zssxt0iaIg2`xF49Q+lr$sZ*~YlWDngF z7>ilrRlo|?dvgeg@$f96EnIdWEnsje#Z=d)o_3=LhjbE?~TU5)kmw)^y~Re%^+fn?osDJEq8kZe_T9tSJ=m=Xzs zk`uA6I}XPk#E5a~$L4owM2)F+o0cZ7zJ?BzWf{k@m+=H!)gK_FzPiAPG`{V}r>=D% zy->9J=+qqqCt5M03#z=*R;|cZ>HdrmWHPk^YBQb5lAVtW+FkJe89&ImUz3eGvxMgsY@uORRD+r+y^rs46vy&ES1t?yvo5aWt2hrQ zoWrxD=7+yqPt#3t%X_E9NNn?M?BcL}v5`YrQwhA4Mpp0!bW!^l^J~=f*`n+uK)h}c zRR-TKbSK#szK{4|;YyI1&{A*~${m0nc?>2g!miV@L2rk002LxHktL(>(C$Bq<Yl!C%>VYj?yAV&hVK#@v^U!BcXl2W;pr) zH)^q0KO#wytp!0i2wQUH4PESa9N!Hk4dl`Z0%&+iI;^_10`>`#S9mKNHRcB%xmxPtK0D#hJ)nrx1c?9j20 zkoihhGT)a^^2APSvDhI%*RZx{4DqVZly27v?6_3#+>(z9~qsoD1S=@{1q zVViB^{@vLfmKqtz^OkaDj+LyHK~s2naAUlP%bbMtgCfS_fE`(gY^-%!5O}W?56cIy z?xJ>!{NZGu2X%ogyKj#o47*j;S{MT>FTCtG$ZcZLtT*qgdr^i5y4>%R@+H5)?gi<6 z5UeJ|C}=5^R?dSI1aJt5d#wvij~+Q9bhG46#&W1}M>FjsNlsX@;s-D>;KT~W)YBGE zBOPdk=uZe+Mu)`C`NbwPnL{C;YiDJ5t})}`2=$(OB!92x)e6!0?Cl8m*_~iZi_bj@ zs{m9#WQD5HKjTU3%i!^iT9aBXNjsrXxdb1bR>ADUq3TTGvA)JodGDILHUoVx4YEKu z&GvWB_X0ojbA~21*c%UaQg%vo+4!S#prW95gsQ+Q3i=(B#*nJMW(2$wmJPftm2~NZ zLX?xt@AzY=BMX!$h9a%ombsN1@N`26N!SCC_)imygfuAHNjO z)%L1%QFx*Qy_+R^1{GKYT*UAn%&>yTAo)sr@R{W{%>nOTl!M$&M7uN$>B93BR5b-% zR*HJK$u?lsG$-o6^JB5+0v_?O*z9e5D@yBy7tQ zuX3eY6^9hBOC`t; zS)ihamU<^c4aZ!5(_9g)%OJ>odpAeXknRENMFk66vGxWHYmPWVv82c2lc@mDN$FkWs36PH|Xcc8^tk78E2L~(Q8e}=A_RO$W>Iadq+&9>_s{>34VlHN579x zT#qO3PQnY=0bX}7wtn(v!hMP{`rKK~(@BSRYWssmkGZ3H0Z%?W&YZci5}_op?F&wr z9VlgCib5ab2kN|df|M{1^iu_jE4j*-9!xQR+@mF!r^bHm{4a`S9Ph~0-z2L@%g`kI z6^2sU)QU2b--u%cTtf^RaiaS{tJq6>gp*M%^$1pw&c(w)dNK)DSNO+*(i{{VOX*JQ0cUVHV zL2`vq(DRK8_fO{TJGCPbqZK+U@8vt$%r02KUB^9v>Y)0$nV1^xEH2a6>Xw%fZ*g>x zr#&%A>gXyeGVgR7Jhnn;>3$VvtbE~@ z;0VfUx{Ykr*f}>1vZX?ROZN;T4(%d_Opp$Do|7$E^6@F0N>IE&=Rv5m7?xZxDNi?& zu~e?sRJOEpH5`6|J8e~fS01xCz>3FoDS@=_uTrP{dF{mEWBcHtB5uv!mHXZOK zifO~{ZC1dc5(D~XFpij>BFMKfw5p(sQ$a9IcvFi>xdhfs=&?gfVmTKp&AA|YO7<)J zz}on;uUGm{Sjw2(SxRxA`E36mDO7A|orWVZq1v0tlTi=8BL1_;9VCk8u)M-F$gJNd z=V3XOTBY$B+bnR4Fuyy^7M4I{7n;|;2~vc=suCtR3uQ5#Dack zfItS$BdvorBKCF`?|_(Fb!nL@2Z}?u6u3_z)G6bxRWb6hR<0bp9Fo$yXeNQ>O2wP8R+F_I>k5MEd(_bvSK!=fB z#0`{Z*eM7aZwa9KCX~vr+^3MSD$(HZ~oOj}h4+P(Q;c!l79F&r7Er`O);{q!1in3Ww z*sMw-vs5Lf+kpiU%Go^oaGNP^eY{B`V#T6Im6M06*E5AvlBMU|vNmgS2L(kpqQTy5 zSGS6to|LolIO|fkv0EUP^WJ*7_SDGa$svN`b_K_27^ha#yNCWK;M^*B;nrZFFw~qr z6diL@#1;)L9?7l!)%*T>peu4=?Q0g*P&f9UNj%2sOKUAatjV=ROt{eQPnF` zXSRxe&az~U{B|dLNBb$h$am@urf+cyKe=iMi>n>{P74MjoHs=UsxPzHEpjcq1^Krq zRUZOsTh&7OnwJYT`pBZN(rmm^D73Pd17~){2}wm1KpR=1Wo^bGwM$%87zHcD3d?s{ zCF=@Jh4Xntm-izL%14x)_2$?*CahI=nap)+g>j4B;l(cH_V2|TFw~4C))Cha6iMCZ zF*QaIfgt(E+^Li>#Bjt2`Y_r$3yDP{wA5+t28^Ufm0d(7^%hP41@htx>vyBa!#Gib z1U1qo)FiqU?#vQlWtZSS;8FEiPJ3efAs)MtFQZO8a(v9r9@MvkvVm!x1iIASV=9}% zo$BLf;3Q!rGT~JzE%Rji>;BaCtnwfz0>uyk4dwpJp0{pE=(SsxrILkT_?)V*C({C# zEp(`zmJaAoo`s3jP8ambfJLQdHxjb5%;(uI9?65Md?_CdtI!`;bb)-4ac-R$lmq)6 zmh2U5sy@S|Zg?-5Pdj|EcCg$iGiw33b(_{jn5KAIG79@ytODr-#t9xY$DbSqOS7L7 zXX+eA+?z*Rl5~+Y#_9IRPMK{9G?-`#9~j2A=g^|hmG{%U67QTj_KjU^DvQy4Gh+^4 zcnm*hJttjS6Jf_Sm2tr-$dlaofUo$o#{cI%TL0XZ`|DqD|A(z}zqgJ5YwH{^UJew% zh#36i9*fH*Bs@^roIG%5N`0#aCF+FrL=a<|I0_ZoV`H6RK~KXuPS9iPwgJf{_HA1a zDgQl8`@UbpLRZ#&W) z8zvQlM!Bo1(o5+Of)4l6^md$uK07mQ2$+#y~ZMx#rrnl1HociDM0L z(r=@8Uu{b=wB5C59A7=$Fv1VA8h+GX?mH4Do^M(#7T~4pasGICoSB1fix6%7PThE; zRk5)y!OFuMEPS&S^*_(buMN`w>kVT}j4aF?|JpIe$;tNr+u*qEiQuL>+p@3i`6F%7 z)0Fv#l<7q}ya@USNf>6b3`y4IKvC*9aB(ouU&+#9Kj@plka(P7aY};GHENdc5PxW3 z4Tj&u`iO5+c+=Pz>fN~HsZ(y`g=u+BS*$U<{rs}TgYq%U`=q03?{OT_v(l$}??wB? zSPqbg8V?a9_=J!W7~V=S=m7VrVN!d368oScvV#&e&l6@Tnxi7>k*`Ub|wQLPPhCM6D{Kb8w`1@wa8U>h%ckZ=cYcTc2*a-y`j|^mB;NnISG7>WS8*8(_O@L~HCJNR`xJeEPXM#T6+BOss#b$7YP};rc8&vX}zMLFX(0w=zLcm53 zy8EfWII9NRD# z!pe!*2W#)FCpg3Ndd_x!$wryHd3dSrc#cCEGMg2^gWX8F&57z=zuRP0*-$<~l?#zj z7>L3h9MFC8lh>bQnlyReXIZDPKlTp#Vh9rp?kiYE6GS~x!Uk4Rg zO02Z9Sk?Q8p#~E=EeYfVf!N!YoQDolQmB(dOlCbiM=U%Q*fr?E_VQ?4_am9E>ZmL9 zc&8`B`L|DfeK94oFrX z&p~zR_(LnlbAr&*AQn(1>YVF9PtPk@_L2%1hjJ!|I~C5-=#^h8C>v1oD@zV+`dnLu zY&wRt@Dz5~709Z(umt(u7?{g!Nt-GU6ZsxY4y=1&99-KA7YL@I=R6E1(U<6d058GV zy`#QaNBzmV6cWJrR^6X)&u!v7&a6@Xn1s;=)1eGiZl4ANrm?z<{F5lUNrcab2bK<< zm}N;Xy~!0E^GI6QaWSw#@SZ(&ws`%k{UYqDEgMjcd5Ck%9T!a|`*99dLrV;W{G z=q44}mJTEkJHZjio{*lQv~=-&Kh@QSj=%3fs!O}rrp;%x`gT_lNI#E#cIz#SUQcg# zdfZQkRwH&X7$d>D2Z{sc=?X|dnl=n>of*Lv;XtWLXc4M8R{!O#2rKRK3ml7+h z6d+iRC0Z4@W~EY`puJf@BwHhKOkUmKf=a0$7gtG^PBcvcp+35+u1b05qmLxAnGtfJOfEG*|B=zB$ZGQHl++(m_(B>QE zb@mk|Ds!`ySpy1Zz9dhv9F5X*h&ioalQF!j{4hhdDc@kWOL5ZE6P2^-p^6q4xd2|p zO%|`_i3+m5zFHnWZD*n!7Y<^|)jE-h3SmuQN+x%neC-NRs&XFw*^XdbT9^nd3TLJ! zO*W*saoB~!92sT1KBX=_Wh7!ycgn@ZLT(jtM4>2GToRI)I1DD|1=L1qW;Qog_|r$q zCvVEnhC>$k4olWFO4)EQpS}<)Y{XJHIDV=zl8}}TyCA#aPlF~C2xH0a6U)Ig%zry; z18X3wpkakYAjZArM=Y^wJLl17ZCa@%AzCWRrO%8PK3p?e>m<0%NwcEQzV+FdQI#t= zkPx;Y=dsCh9pMbI%JnW=K=lMqljw@Ct#iqBVmBAGylc5GvR;0}2RCsG_Iw(>IMm%u zfMEIh7Yu3X8ISmpv>hJb7#?=a$J5i&8ykN!5e3q6jy3v+&W?^H*ZHixAM%<{ohKZR zjUrw+*#R|%478oN8!5rMomqU-AMp&w4=BpK7zneDkNj?y=UBcWRlz2GsIQ)YIdHF} zmOwmpYM2ckb1qTkz<}eaqz@G-q5PeyS8^>EVG1!W{)9 zXvpIN^zr>+c^glG&HE2a;L<;|U@GBHPrqZ171-U{BU4N4IM2@$7V96c4Lx=H3dT(H zu-h&tGr`d5V2??&jvFXv?2lyO z_CPB;*_ZUDlzqE|Ll_iaGu(j>jhl-x2iLxst42-~@7%t;=V!}A@A8PN);l4(7p(F~ zq;B)ouYiC95!|A|y%L`p?EtB4(^v%t^MyC9F_$+8GV3Nqnivgxqew4vD; z_(aZu%C`o2Wq3=>GW zn=NaPzUHR*MFg11CW8%S%jeT)%HuKJz1OATOc6`@%KY_l==_~-Z5eZP5{R5RlQJ}qG4kL~e zydhX-b9@}BO8@sbDnf?@t)d#4v$3-@JGeLK)CeIXA5=Oyk9T`3RtWjA9`yE8Snfq; z9=lgsxObaH3-}H8S5PSeN9ga+*K|IdI`KGYLNez{FRk zt&^i_%s9X6s0( zJZ33a9(M|yUmy#6V#|`F>*8|l8W<7Ol(-#Tz~(OIu)|@FopoKuaS)Zd4kRPW_Z)_f z-C>O-gS8Zd4IMR2k!m!F_q)a?dJ{4q!do-J1@QrnJ$Cx;$>3@CSmdo`{I;@g;s4j( zTL8zkEZc%&Cd*>Bn3>UHW@ct)mMmt;vY5$|EQ^_$nVFd_vY4jjbI*N;{>-~SV*bQL zyzc1US-G<^v$Cpp*N)E46*aa^n~&c~nMq{CMcr))w<*|Z7aAB0T!iB)gYC`05#Zwl zWI_#&YZ2%zO}tJ1$~2gRPfQQ~^hGLor0(h)#lBu1^h2f7rj`3-*J3q#Su8ru7gIVd zpaB}(dsyq8=q^fgV#P|aX18P7dcm^=@ex71<@>5lMm16}SPn93qjooWwIZh*0WBQW zU4eYq3Tyq#=qcg(jcBp;mRQw58Uj={ccV}-qBBa9JmEbaxn!x^6!}@jk7y>R_jvNY#~MgrB-Uly+4Mue$q*_nZ=L5-ye^-i57-ID`k% zw0k_=4x$%5z4#U4zq((}?l?5XL1ZGyWJHp#vp-8*mZoLu%G6K8rApKj&aN&==Z0xH zi!IoE%$>rOS=8I;Jtc)~&p2;G89I!jD}dVah$FQx`SAU-wCG6Prk-5`T#sBGh@BGR z3y1Rilcnj=XSX|V+60~?=&Tzu-<716D#V-M^mI?eo4Hub@Qh^ypFnh!1uZ!}#MuTh zWG31sMUUnFeGI0FCi-p=sd4S^J(_s+GlAk!o2X}SE&|kzS1$FNln+^?i zr8x!h+qa%JN*m;mHHd4ya(sl;PIb)U5X=SE$@Th}+lANk)G=(=(0(-p+?2jn4D0QY zim0vV=mR;7J=j`!*Bl_e-zw6@g9hYH$$YcmxQ`CrAT3C^4@IYf` zgK2pZK_Pt(sVxuj!O*8&T^S3LCw=h|46}GQu_nR?64@Tgw(@Vy#IU}|qip^SgRF!eXA)z)q zCwc^`bwK{2K;Ek^pVn}|;HV>iIF+m`<9w>^rFe&j^6)KA)0S@wXcuH(cxZTNu~LyI ziHb!_Nx=&8QwM+b`r7NkE#95J?`7P2d&1MlyW=3l$1L84G`fcKhsQxzb5ds_*4ig? z4-Gd+s~tGuEtE;(fLdX$BDGUJ8$|gXrd^70h5+o#4ih~)LAP{JujI_Ovy2$MFr|3Y z=>g9t%O}F~c1$H-A={B55o`yYSfB}P9-SLjs9N;h4+#TR)8Ik34Ww>lFqzltr2G8% zDE_8XN{d4fKm=}6-Y3>b7OeExUyq$~Lh*NT*Kj=wujLJ#f6y;msWVkIDCrd#_z@X* zCy+Qrmxx!X8B?trE)V21bzF35*mq&>>5Tbr6Acw%6C01^f9IQy#`gd|bSf~}ui#|U z3J%XsefQ+UI{}8r&n^!~nn9Jh3v~4(uet;5XjMwitD^n&hU~WWYHdvHHL|9)c=`71 zP@^@8uJ!!sg^ZlzhJ9C6`w_nwe{H(S96`2JNAW6h-DrkwZ8Y4J_tG z!56>Ck2Y?u7#S2X8o23>A$mkTiNcDp^7kYIL4$F|%Mbyu1NE5SHighk55)n6dZOwn zY3r@LDHQXDU3|bTP(Q2iYAN}MkVG9~xKV^G_xdFbxk8eDakSO#FXHj_*zXJ$+~oaH z)LI$s{n)hZdW_SJEfe`!i15B$ReN3bw#3IxSJdlPXQCyA=*+%6psr!irdPO465sB0 zBP!0H@r>Db{^uv-kRBySEaEhlsN6#Nl1>701)WSlxf0U>6EwvHEy82@(v5?v+sUOZ zCCj{&SyA~Yb1X--k8R$dQXcO?KB~WhHI>=-qf#phV{zYJa8MJ74S<`ngrSV5;?PPs z#=IM8ZL@!l`9c)WjoqAYDt){Lxx_`s?Tebv=Vj7x($9j(-0QNH@-2YrqKdRuTCfL} zS-l{a6tY5WdWM5Wng={iK0FipDDwMApxITt>JTe8tyDTKQlXL5)zBPFK|h_TU!O%y zkwo~O{#{I}592lW6^VrUC3ybG8JFGh72@l~b8BpWxRxi^HsYCW#Mvwd@3Z5&EV-+Z z-q-6ie5aFTTuWagM7esPZ^w|BOX8HR=1@}!SyW$);#X-u`-3*pVX|z)x;4t5{lx3g z`bbnb8=eo93oMHie$wJqYdJ;iT*s9#D=O#mTtZ?CV<}G@s)~a!XaU5~#+jTM!FgWH zUkH1w8k3@6)T;9l-b1m{Ka!--GlT^jsCcvkr<)|38K#FJ{sRz%S{D4CaQWB$>}_{c zwgPfQqB67dj)xM=wS^}s`Y4D1N6?E;w8)5|er|fsmtXtkJNFuMGH#L!fy_1m<)viy#tb}XD!6X+=;N&&}y0beYlQE?@ zgksF1L1ksK{TDPrkIpI3xzEcB!NcJK#{7}sui)CE?wDY@#=A_Wp9x?guGN`O5EeEy zaZH8=ShPvd$2=ZSUm)=o+RCH~WdrwhJS=YQ-rsKg$g=W;W43X3;CYptV5b|*@9aD~ zpn!k~=-3CkqKGRTQl}+fFt6H?PLLM<7y*6#?zvabgB7o#I+QSiocLU%fP!Ei$TJ`= zDX3poh_OTSE5RhIoF*{rya1Blxc?eWpLuMx7o8yz8hO~>_{-Sb|> zZMSu%F3*Rj+H@-??hVbSkdLbUH-45Lw;N>3ZP(??SZ%(MM+mqQncV2FFKfz`_}M(V zK;g0AiDTlN(RPXjQk{7Na6tV=^31S3K@9k@LbN{8aFQmLLJkizPZ8XJl{;bf?m(l6ll0-KP4L-1JJYNm>$=^; zV?TC6pQMv6URTcW4K8YXsC>4otFp#o>W?WzTIECN?l zUiBWsi-dG&LhA#!kTAoh8|i;g+tbTIo0d%>JuVM446qGY!>R52h;Pa6U=@F4ejXa$ zBBwv$`EftF(2fBSI9Liy8@POd6+P)I2HpjIwkx&ce4@ z)-VI0yoKuTMw&6tpOiKaFYq>=d5mT(zT~7&5I6a!_+53|X7TkCVxv|1ktvt1VSXM= zo+KIx2wojw{~DDBH7j7|Y`C6}du7u=aeL_;adhVHH9gCAZL75~mbBKUx3+a$rulSw zaBiq&cQuzV=rC66DoBh8GB%f;4?4yFL1iqplx#i{%pB z&S=O640Tl)`!`gvSEO20%U*<$%C++P6pu)<6|bOb)2FF0%vPq61AZhq9bOR}%t9;w z#bOTn*Tnmb=ErvR`_bjQsZq(Y7nv(N{3J#7$J0F{j)hE%(0Li4JvXLW$Iu4;rVYIn zw`N0Nbn{vLO@*{Id15<56*?4~JVyWi@C3ER*gvRsqPjeYp z8s(5IH}TgZ<20o#e;v$pU0ZK`3UT1Ooq36#jX60EJ>8e|J)arq(7O~^z3wiDmL*lK zJ6&FGdw_goxCL6$oinq=Aau!w5Fm1K-M{#td`77lOPOc~q?{YaEm8Ud7Y$p^*rBs? zW)csQ7@c<H7Cf(`=IDC=JN(8fo1J%j8f{du|!8<|PL7s+X{%;kZm;qo zQ_I+Hv2C?8fF?q$vvgs|3L_Z6B zLm-q>vxXfC%8j+(jHy>3H6k4_yaBy7wS1W zcp<~H)S>zO`BW7P#3&GKrM_cKM?tD3AMu<0u`WM7+azTN3*0j{L#45B$VyUffun*K zn++|2Rt99G?bDDqlDZe1=CD{ctTW#`qK()zTB~0PdQyGg-%+hC*Qr8&HA({ec>A+U zsUlvUq<3RN{1!VWzst;6RbV=N23y^h6^sz(ToQ?0J4Rdx7xhAW=0}?FyMEjtCpiU$ z1DK~(U|h5UVd_w~v|X_g*XDl4oVJ&?wwKYgpdw%Wl=1GsXT}RWd?5I$*n5oD3|uA0 z-K)=+Qi5xfSP$RoGt zy|n)r2^43v1NW+s6K$wIJ8mDwC$hQl(am^g8Nb4w@5LMJnXAhtrbOarTee6iJVc7# zw{EkyGt4wYj^Ar%zt+r!8<+`tF7=6@K+_p>y1Tjcb?FAE??1WpY2=#<3YJ>&ZGWVt`ixuXT>c{QlN zhC9s{t-&OBosW>R*O;=H7)U7pGs9>7;avR|kiH08#O8C8+Hb3fm>AzbM(_Cf<9p}f zu?X>%uRsMziI6+FJvav z#l7wns@GxGOZ-Y|y5K&s>{J~2w8MEx$j1T*PE6a@ju?;^2*l6*_A`0}9+@Qk9&7pY zR}cZ2*rrU)y+f+K2o?k8w^~vZIA4gd39N_okm(~cBGMzq!2=_tUT23{`jq)UJ9*%M z79`u_Y}0zxtIgVBQv*qQjYxsTqZC1IkMg&48bE^ja)@NU-{H98sNhZMc#J@Rz=OGA zddJunPa+a|byxjaX1A4}dK%*tPVo*sdzZ}od}ebqDMkT19Vv(xw9FS66I0%o18Hqj zVn9pJ7ORNZ7D*sIJZ!jX-=3IDF}IOfO=<%_(xg7x>L)j=2lnB#Na5xIGaZR8Qp+DrA#LRJ~$M7?rtXBtQ zukwb2<<4i!cCX=#8Bt9>-F{rOD37Sy#*6MfgkPl+E>Ij(U;9L&DYuXY(;&W*@g8IK1q?+ zX`rC1tF8lIdP0axF8IALSdpR%di_X*%RDBm5;B#`a0qNM$a|px;jOPxSk&)gqhCr} zVl4|+v8)K~GFcX+OrYI-1;O#`=wWB!=76o78oBp<#NV2api#(Qfj> z7xd(06?EcM9+Xe%WlBvpGpi-ji-?jQmQU;P49+E)SNJ{YywYJ&f8p*vzzAD_YoF4~ zJI~!jfM<;*y&{BXjWfBDhnLxWWg$uH?1N@bMe<$tfk-2((L}1lHK~BVsORa|BkMp| zmV|SW#yB(alG~htKGk8pg$rO>&^by4q<-I#cEl~-#b9WCs=#IO3x98iMpj~*Ibkz* zp0!+6MY84~Su?qg5hnTskDGDaq@lvv|I9Kf|2m6%ihJRlA@6G}s%k2#O1w5T`6EkR zgR>e4rg6g8-Lg0dPy?|>8&o--L z$~mq*@32_)%*Mvt?519L?*2Hh;$SFIje7}vp|<7`J6HPxYNmM3skR486U)x4#Lg-K zWC64Or>?f*H2n1}3wT5x)qIUeQ=&+-0o+v=<|YShH%ad+HHzh&vrEZIxD#tRRVqVU zV>=h}6`P154b`%Kf*4n5F4ffPk8<68-Koi=EcB>eyHoZJN9C_PXpksJ zGQ&QXwvOp}zDTSy%V}@QD~_U>t|`c{_jck*_f$l2TbZ22Nc*8Xy@qEE6ilccH5tqh z>knpdJ~xJfF=%BL1wsjLxi$UFpx1<7)0{uJz6xUSNZ9zU2etwG@Z{v^;KTwrRk@&^ zus%=Q(8@NHz~F^tprIg|)|cDE5hpRapFemSv+NqT^g9BxQw^KQ@~qz}Jqrj(M5%e0 z=#gfgm5rffNi|CsM)+$+eQiF^cL&C)2DF(95(rB)*8c5`q(Fhy)zu*D)K9S3oJ#_u z7j<)TnmDiPHs5Gm3|(tbHS&TMo@y1DSxyBu`p`PgO;{lbvk<0)m&5{VzPMB&tQ`$< zrV8X5p|-R`j=Q}gBZo9)FbgaSW8FjE1HVwbtZ!g$$)0;7k<@=qIPckP1XnR5_F+Xc zy%z^9nSthVs+1p{I3i<_6U}MEdax^G|LIzlC{briMnz;LjI&9`Bu?RF`UM33i};5c z9fXBi0iHIO$X4N;Xo1#5eZ>Kn6NrY4QjDOgl+*mW62I7EhjZWh+KT&7=k(KcD552d zSvG!6Nb`qgyR%?Snhwa7_o|wZ&OB*;$z?{(eVA>OXBrD75Oe6|X?F|r@GJxzJ26QeEvA!Ha9W&mvy!m}yJ~HZ zD_hYj%;kt*T(L)&g? z*3lfsp5L!f^3A#WT8WxT`n*4=M5VASg~Wy&L-71K{s>b8cXa4U&0>*@tD-0bd%Xly z&07YXh#KE)YKEW%Uqy+EiXNBc`yET;;Qct0NCCWi6Qasb&J9#h!S(>d5qC*6tM+^- zswUP0+%o9(*-orGRExAC*E(LlAvx*W)i@SL`i}OPD;SfLPM{xOMC408CE)6hO1b5Y zm(~}EMdf>RshXZD(F!{UN={1A;B0kqV5WRWobT+Kk#Oz<$&jkuUf!0;k3$g{Lyn=1nKg3R{<+CA@A?L=Fyv<~ ztJ?jhY$o0J0$uC-vO=uSR-K9qPjEB3el`b~L%e*aPoEFy2Obl0Fh?3cwOsJc;cV)T z&d$EwF)HY4G3ua{FUim$p}Jqmo!5xmS-h!5;p1qkd5FuaYNxGbY;~Q-SCKcl*-;xV z-NNxKi~xgkx#eTGHVT*)Wo6gh2z;j#RKF>Chr>H{9bNK%=u@SBsT*Mgj|vH1e*3NC z$bEf;$txQ0EBY~G13O+oFJ0$W=Gi}IEdIMNDga6aP~jC&YgLTFfhDP z3~#Tu77L&SK&)Y6VtP9QIE);>IB#9pH3?YhnE@0tKo2t$`y0guz?orZ0Z=ReJuJUe zv#|ay#|r4d!U8DH2Y3ObexvE>e`$Z?0d)Mb_Ga;Snw6F97Y)$$Uwr}I{PGCk=bPMb zwmE*Y_%Evr^Z>H}r2tnL7#M%~@^Z)v+uu;5^(&})c?C=>D$!5Rbzg8vi*ztVFf;wWsNR?)#uXQjiYK-C=UC?_qVu^|$Lk-!7j2 zC{eqg@PBtw0e_76^X5#frD4Ml=^1!h<)xt) zR^9*-^W3`rI&#T)3~808O4&4b$hA07bW~wi&N}|XH#EI6s16&Mz?+}dx^qI6-W)>_ zgK`2di3KMkk&C)x6j&Y4K7?X zuS7SdKpXKM`~0XWV)!PXZ)QddeQn&t>QU7u6x|*4i@d#uVD$ov(h6<*Ze9c9^}z82um(gtbAcA(D)!hj=`3RU$rI1!p_qAXKMz z9UPTpE98wgU}2MtWg=2j&cydl8FQ@rJy%64TcUQsPXllIj<%uXP1~OWk2Vx#mfi$A z=6HI?y2bd;)E`JxLFNgyyH7#!cW*mc6&S}mNK9`xgHcobqqaBt`h)6jo@;NOo*#4@ z)ts^7H=YQXs*v$%Mx=}qhtl0+MRcx`4*P4N&_Kb)_R53mBIx`iHyITgL9%Ex%O8ku zUS+kpH@-vXv-h)42(Xj{z*j&E5OgDi@*`JGPcQtSIPa$9LS^!U*HDJYr_sCG`cBBTa zl`3n=H_R2-cXa2@9OJCjaR($Z&O+gPIBc*B4mhh6Hk!^Bk9{AfnxPx#7cU!Ku1X}& z{8XpA(~)8*;qXyJKONhSxK`2f>-aL(uyT!1Q*&j%MmfRWlFzoPbWRhQR3DmcgjGp# z5Of~2_p+e4AAW;7Q42*(0rhlhpI zUg=M(m+^`@$?0_@g?ZcIm0I-i0h&EwONM#%GB6X_uQ0ZbZK`&OXclnBsa{WT(*~+(L6_oMC)?$4SO6%5*+mwQ>z~x(DQnF=UY#= zL^OvD35%kmqeB}X%MZwHu0Ok)nwoN8aW5SS2YoB4wS{j|_)%W0?4U0~+@F>tT zHpgrK6D?)QgR0gqyiSCHK8KHtg>wn(qE190mL>cqQL7>YZ32MV<&2c0xm;AG1Z=fw zE_u5o69aPdFp5jlLvL$VDhciBH(l!Rc{0@&B@Fynj$Z~Yf@5K2Q+RTBhlDO<^4uYn zJ5vV2(>nDqVR{Bi$NneL0K@9q`*zN__X-?KSerxyMrrk>o=!ERRCQ4NIW zom`xiKF?;pmTb{YMWCM2GQQhrs%58hW9bvP#wr9i#Gp&8t|bocCmHug1zxE1`Sg`i zGq^&)uceBxLYPZj+=L*t`FYbp?9NC{xaRr9VS!=IIEE!%BJ^L9&^OHG#bZK@_G#ky z4>~1m&QNhBv;**i5Sr>FbyZ)Qo8JJ*S* z?j%oLF%L_4jxA1gHZI5n8EE6=MDnH|jy5vlPepj;VFYfkrEd(Ib4E9&atU`vQvrpo zC9GYmYOQ{#i$<&ZxcMzpg9JeR;IP1FJhLjSKZQc*Cgw$tB!>uzOWBMmah-tmXCoh*fP-%+wChr z#fRJKJMNJ2tM_XCb8U~>E$^4M3pXCqVm+a z+gMJhI|DoGF~tO0+9c$+LNyI8p_t1K$i zEnBrL@6~JDdiLJM(!h){B z*B7^xcf(eI_iX}|B7Q&R>*DfVmA9g}5}chr*2meu@!6y4(_mk`Md@jSwRcPK2D9mP zoY16?bfv=)8Du{;-s|SFgRTbRjbh707=+2`7DUdBcXA`H@;qU=Gx+T2P!91TB(WeF z9YGBz^_uFQ#2561bpfZuNX;cM067{oaoZ_`CLhkOzQdB7o#Q!8uSkb(^CEuRU(7E3 zLT97UJ@M8x1M1G(7+4p*#6ripsdJq>x9AogcAQ3i1dP2L0NRiZj3}jHdkwOedjT55 zQd(9F3vqlD@KmH&?5lyUrL9@d8LE=jNTe0BhkX}h?w_cK+I<|!9ifBq6UTDk&}k`q zjnuqWD_Vad-B9)re#$@#{#m>26TWEgE%Z4X8yn=)Xmk}R&I$#%lh&s;%xa%QNy!Hv z1Dyv2f-ziuO5QuYBkkQN%5$#hd!*{r0KW|^n&MqG89R28#1^D4-tJ;JP>=`OjwBOF ziQ*cO$jwlQ*`RiyE8sC5#0TWuMl?=J;y5f*fnw%v&3S`of{{%wo7@8N;RKiWF7J|) z>-yX7F?=s&HEKkYeble2`Vb-9=oZSRu_MhSyouWOJV?ZcPbL{P;JYoEAJxhNXU)`Q zx*11!OACY|_~+>1if0dRV)4Zf&hs=v`W2sfLE|ytveomZfxFGf3VpF^)b}Mc$oh}r z5nSNUsl)7QtAz}P;St1bfoSrkF){EGER%f@Ryq4NjL#t{pS1lPd{x1lcFZiQsDkpK zajA5#Zz$n9DB*&5Hhk0WzKN2F{=D98d-q%+aZZ^d|8z!}d>EAzZ1F1=c0yfRGYJJ2YDyIGgvfvWhfy`<4TG7&nxf=unQ;(~?9vLZRkB+otz zT0)An0!eo-K~)m^PWJthK~id9+9%ZD)h7`tW1?jD zwH-QGJsH>gCi)!N5(^PXap|Z9F(#JOi;46bCAyvod-%Ifxp8`gzROuQAFk`=zWcPk zlu=6^&!g|ezL$`$e|K2iq{PktlC>NiHa5C=#%je@QIClsIH5y``P8Ou zo<5f$i$L~pAcS~*q4N{Jt?+Pr$Do*L$fqPQ31=$Y^P-# zG$sX7kZhQ1TxcEB~(vYJj$NT|$WH#GU`S}Sq>^?IE zKfR_55`d(HLORV7r3x4yeP~j$NUOhIKg#H(8dOp8=1!9x6c6ufRy6>=a^yPkZ)PoAMd?!Rom`!&+_tQy=s08-c+^?;9{(%9^T#~uTWTT_!D*Rg4Ufa zFWiC!*ZYlXpeU@Wz*;(9q8f4{E9@tO6TygJN##u!flbQ$bcM97?L%=C_C)fO(Xnb>ebhZ1v=154WZVo)>=VtOqekt~dK)RHAx#pK59CaV3s z;$mtfm}{NuxhJBPB*dkl-N}{EJpYZTPtfnNnIDSD$vN|fUlQK`5knAog_JMo2u($^ZcywiB!#vWClRD& z$BU1xd1vVlORMD>yd6)=U4zza^sR!P<%sLAH?f5ncZ*5r+E-rjCr!%*!S|Fs`5+b> zn*7I)E`5X}6me?a`Q!}5W5y~WO28kddtpdasK#uaR=*O84(SCgQXXCxFhmvShSz%Z z2TpyjRH&j<`l3>tr?o^lL^!Nskg7(3#F}O#tbNCrN?fepzV;pcHbBuXTxLw%#eT%w zAJil~m6*)V+m=v{z_mw1HpwbO*{onWF=j73QIs7GLd<1^8aUt7MB2nF+v|uAuk`|c zIjKdI_o~6%=)ljlkgO}FA?VSyuZJtH!gaa=l4O{3+hf{n|2^ig7Nvdai)JM>3CD5Lqf{<;@&cLOWbq4hp%^F9$ z)Wx_n5@-h%`YLdcI0zh!D(|qu)d!YbYg)8GwARdop4(_O&=9VM2q#un;@9WxMC-mx zQF4oJH&boE9q{(bsX3+3hiT$K7e!yeM{=>PRvdnpuY2AcUWib&di1(S9=mEBO|xk) zm~nV;HW^ZLnKbT4kmU*LXc!#Nen$ap!|jm}Joy={EK^pcWV`d8wVAo#J|no+-b4jS zsRqmrBWf>zv$FzXGq+m5tvr#yQ1vs%0R6IkIWopvhhRmOgufo9bG(~)68q0nTn7Z2 z^ePPQY@mnrS|bMM@X_)^&M}@lx1h}>8p}kRhL+k7C{&hP+}k9cbR}M9Kh850A16W4 ze~8!TKoYk6WX2n@TT`a{{9`Ugx#A)G^735(-njCEyFaigO69B}375kth*yHL7}3+H zOgvNkl}zwv|6T%&p$jr+UY=Cda)zNwr|^vh+}8*K!wPZKxM^E(@8nWaVAUR2IJRYV z!NxX!*OU|g?Bz3ugdhE&G8HWXOJE~ZJ9o`g(lTv7bvvRV*UP$W_7qhZ5`_28LY>vr zcfE@-s*)!ShcP`@xK&cX$}H2GRA_as$~D{K7wnH~FNc;;{T`PQPi@-GUpIuQo-+Ha zJmS1Wohqys3CF9V?{-_+w8QIu>etY1iP~kF1WaYPA_w5=E+TE@*9Lf4)pg2rQkW`Z!mnbVlU z{Zk5U1B8>V;JYde{cvBBch1j<)tGB7UDlBpDO^r3kK|Qfwfn@>ytVm_%IEegAIZiP zl-8Kn#Kc=W}pl^X5%)mqoi{!Y^$0Qx(HPRH#X+~yW zA|#GC;7`kyH4tH)=!$B9!Mx@2qn_+nLny8Nb*`!b9(*&7mC$U!rWsP}BlL~kckJv^lM@ELiP$l?WweUsaws0!PiaG%$iJ66_ zs5?oCt}MD=m@?ztw1bGuSt8N3!DDv%NZ*c?k`=!J0S_~6AESZTNP*xxj&~AgD2lE4 z<=*sIu%f*}W@0C?@`urCq*R5IO==2o!-rN-!)<;})bGQB!n_LFvhxu{Nd?2PmwKHS z<+#z-C<~cpwjO%@60kv|hL<2Ky#+lprk;F_%^u}^EkrqI@Nq5FxS1N*F@{3lalBuS z6{5)@h9Jhpk_zV$+)5~Fa0^QxL|Rp^*{_mgj1ztjgB4~(-3WSm8Wm*BOwL6Ne{`%&mkInL=q|e>$H^P$fsIBt zA}8s&V@K}CN+M54MI>Qg$rnHNMGWblCCAUqjDUz#p?Mc6fuc5d)KO@RwlsU$5 z_Sl0N>vDV789ok9iR?GvGQ>jU7cyeMsD~yqO}?`E5?_FrKg!c)b&qv z@zfyJbQ5GgYJLnRPQk!X4A-N_7HE>NAWl-&-TL^193H*6G>=|ec%ISwK<%*d zyu#Ml-;lR5y#iJu+=#2h8f-X>#9sszoz*KENPlz~@?l2eYwiH5ydcVMXc@|p)CXHA zV|&>6SjJwW zuz1Er{eqbmJ3VH;2F{7m`21mDiRL}hLXsYQv8MqGM8WKz8N%v5P3Dwjv?=GeuVe9-1JKN|%Ti zTNmSZ{zF-h`HacOSM1!=c!?Yr14+JU9x(XOdFo6>SizYqs8QiB8RD~vND4!6A3Pw6 zNO)?-6TW2_U6Itt7U;RE^zJh*CAlRk5P8%^xo3P`M?hWIIZ7)bjL(;kgLMq=aqlDT zQvW_y>ZK(1%8aZ0)jPs;DLcGUj0jtvhxlex&ATkY{d>|&Daz*O$fKM(s)Jsb8=7u1 zTWP6Y;w*WlXHW8_p#vCJu8PF2mCxpD@4$rOL#GA?zn?O3#4D&GG1`Qhj7iODNqI}j zMVeR*dy*-pZPx@XNHQAaSmgLq@bg6028Jst%*N)Yq!wI>3l$46vt2n7mixkALVjBX zRk8$GcAe(F@XKEeeut>myF4$Afr^1Sp@{*!cVch;UuM@A9VZ1!kmiV`SOBH0J> z;v>TN_D^Ls(41F<_<20-{l1J=rZu84&4mupBjxl=g#nH{Zgs zPmRF`F~!Gb;h9idYQem7iX>M8rbY=>2Kh7fTL}V)6OF7NJ&`R<4T=uJrqq{w*Km}_ zmc&^YnU=1uhzfG0s>md6FO$O^pR+iEehA=RmM~hTP{|QKGUy5v<(9`^`BKF?_T9HR z1)J&kq$ltxo357RohNv~;_s+l4c`Y}McQYcF__o`hhHmc~v51^`e@8y>>5=5|5?b0Z!?RTgP_X*)qQeJ8OU$0yk?b8%Itz9zy*$C{0cP{l=yvB={xbWXVIw zM9V=x*br??z+eNc6jg-{Cg_$c2Dg0uxSs16yY&9zsHbf9bXRgI*g)+Fy>*8roXZ z0Zz~{&@$1zDWZGp`3Ft^^6n3uf7ESc_-~i(oE@xwIc#J|XZ#y@s3Sl-xQ(NezKx;r|Bkjl z^!nu7{v+Z4SzZ4VuKy?k|B>+jtginoT)%zo z19r-QUE#mC+Pwd@RX4T)?9W{R8}Wa>A$ZF^{Jk!vkh!CsmA*S*ccWzPWMxd?bj3Ch#zTj7$c= z`@bGrW!zr}!=mEmu`FtfA# ztuG7xTW;l_#|8il|C`VB^o;a>k3C?#f13|Lod3=P;FQvldgj0S0^o4~%If}Z!^uJ4+{)Mi9tKeN__s?E!~g5o zq2I1F`VLONeR!GJn3 + /// Classe DataContractPersistance qui implémente IPersistanceManager et stocke les données dans les fichiers de persistance + /// public class DataContractPersistance : IPersistanceManager { // Serializers pour requins et utlisateurs/experts + + ///

+ /// DataContractSerializer permet de serialiser le type DataToPersistReq + /// DataContractSerializer SerializerReq { get; set; } = new DataContractSerializer(typeof(DataToPersistReq)); + /// + /// DataContractSerializer permet de serialiser le type DataToPersistUsers + /// DataContractSerializer SerializerUsers { get; set; } = new DataContractSerializer(typeof(DataToPersistUsers)); + /// + /// DataContractSerializer permet de serialiser le type List de String + /// DataContractSerializer SerializerFun { get; set; } = new DataContractSerializer(typeof(List)); @@ -26,41 +39,84 @@ namespace Persistance // DataToPersistReq et DataToPersistUsers + + /// + /// DataToPersistReq permet de structurer le fichier de persistance des requins + /// DataToPersistReq dataReq = new DataToPersistReq(); + /// + /// DataToPersistUsers permet de structurer le fichier de persistance des utilisateurs + /// DataToPersistUsers data = new DataToPersistUsers(); + /// + /// List de String permet de strcturer le fichier de persistance des fun facts + /// List lesFunFacts = new List(); // Chemin des fichiers + + /// + /// String le chemin des fichiers de persistance + /// String FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//Persistance"); // Noms des fichiers + + /// + /// String le nom du fichier de persistance des requins + /// String FileNameReq { get; set; } = "ficReqs"; + /// + /// String le nom du fichier de persistance des utilisateurs + /// String FileNameUsers { get; set; } = "ficUsers"; + /// + /// String le nom du fichier de persistance des fun facts + /// String FileNameFunFacts { get; set; } = "ficFunFacts"; // Fichiers complets + + /// + /// String le chemin complet du fichier de persistance des requins + /// String FileReq => Path.Combine(FilePath, FileNameReq); + /// + /// String le chemin complet du fichier de persistance des utilisateurs + /// String FileUsers => Path.Combine(FilePath, FileNameUsers); + /// + /// String le chemin compket du fichier de persistance des fun facts + /// String FileFunFacts => Path.Combine(FilePath, FileNameFunFacts); // Settings + + /// + /// XmlWriterSettings permet de rajouter des paramètres dans l'écriture des fichiers de persistance + /// public XmlWriterSettings settings { get; set; } = new XmlWriterSettings() { Indent = true }; // Méthodes pour les utilisateurs et experts + + /// + /// Charge les utilisateurs des fichiers + /// + /// Les List d'Utilisateur et d'Expert du fichier public (List, List) LoadUsers() { if (!File.Exists(FileUsers)) @@ -77,7 +133,11 @@ namespace Persistance } - + /// + /// Sauvegarde les listes en paramètres dans le fichier des utilisateurs + /// + /// + /// public void SaveUsers(List users, List experts) { if (!Directory.Exists(FilePath)) @@ -101,6 +161,11 @@ namespace Persistance // Méthodes pour tous les requins + + /// + /// Charge les listes des requins depuis les fichiers et les retourne + /// + /// Les List de Requin : ceux de l'application, ceux ajoutés par les utilisateurs, et ceux édités par les utilisateurs public (List, List, List) LoadRequins() { if (!File.Exists(FileReq)) @@ -118,6 +183,12 @@ namespace Persistance + /// + /// Sauvegarde les listes de requins en paramètres dans le fichier de persistance pour les requins + /// + /// + /// + /// public void SaveRequins(List reqs, List reqsAdd, List reqsEdit) { if (!Directory.Exists(FilePath)) @@ -142,7 +213,10 @@ namespace Persistance } } - + /// + /// Charge les fun facts du fichier de persistance dans un liste et la retourne + /// + /// List de String avec les fun facts du fichier dedans public List LoadFunFacts() { if (!File.Exists(FileFunFacts)) @@ -159,7 +233,10 @@ namespace Persistance } - + /// + /// Sauvegarde les fun facts de la liste en paramètre dans le fichier de persistance des fun facts + /// + /// public void SaveFunFacts(List funFacts) { if (!Directory.Exists(FilePath)) diff --git a/Persistance/DataToPersistReq.cs b/Persistance/DataToPersistReq.cs index 24e27cd..47c9dc4 100644 --- a/Persistance/DataToPersistReq.cs +++ b/Persistance/DataToPersistReq.cs @@ -8,13 +8,25 @@ using System.Threading.Tasks; namespace Persistance { + /// + /// Classe DataToPersistReq + /// [DataContract] class DataToPersistReq { + /// + /// List de Requin pour les requins de l'application + /// [DataMember] public List Requins { get; set; } = new List(); + /// + /// List de Requin pour les requins ajoutés par les utilisateurs + /// [DataMember] public List RequinsAdd { get; set; } = new List(); + /// + /// List de Requin pour les requins édités par les utilisateurs + /// [DataMember] public List RequinsEdit { get; set; } = new List(); } diff --git a/Persistance/DataToPersistUsers.cs b/Persistance/DataToPersistUsers.cs index 146ee02..aea1b3e 100644 --- a/Persistance/DataToPersistUsers.cs +++ b/Persistance/DataToPersistUsers.cs @@ -8,11 +8,20 @@ using System.Threading.Tasks; namespace Persistance { + /// + /// Classe DataToPersistUsers + /// [DataContract] class DataToPersistUsers { + /// + /// List d'Utilisateur pour les utilisateurs de l'application + /// [DataMember] public List Users { get; set; } = new List(); + /// + /// List d'Expert pour les experts de l'application + /// [DataMember] public List Experts { get; set; } = new List(); } diff --git a/Persistance/IPersistanceManager.cs b/Persistance/IPersistanceManager.cs index a65eff5..7189094 100644 --- a/Persistance/IPersistanceManager.cs +++ b/Persistance/IPersistanceManager.cs @@ -8,14 +8,43 @@ using System.Threading.Tasks; namespace Persistance { + /// + /// Classe IPersistanceManager décrivant le comportement des différentes instances de persistance + /// public interface IPersistanceManager { - + /// + /// Chargement des requins + /// + /// List de Requin : une pour les requins de l'application, une pour les requins ajoutés par les utilisateurs, et une pour les requins édités par les utilisateurs (List reqs, List reqsAdd, List reqsEdit) LoadRequins(); + /// + /// Sauvegarde des requins + /// + /// + /// + /// void SaveRequins(List reqs, List reqsAdd, List reqsEdit); + /// + /// Chargement des utilisateurs + /// + /// List d'Utilisateur et d'Expert (List users, List experts) LoadUsers(); + /// + /// Sauvegarde des utilisateurs + /// + /// + /// void SaveUsers(List users, List experts); + /// + /// Chargement des fun facts + /// + /// List de String les fun facts List LoadFunFacts(); + /// + /// Sauvegarde des fun facts + /// + /// void SaveFunFacts(List funFacts); } diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index b797352..e78a5e9 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -6,18 +6,40 @@ using Persistance; namespace StubLib { + /// + /// Classe Stub qui implémente IPersistanceManager et stocke des données dans le code + /// public class Stub : IPersistanceManager { - + /// + /// List de Requin stocke les requins qui sont dans l'application + /// private List requins = new List(); + /// + /// List de Requin stocke les requins qui ont été édités par les utilisateurs + /// private List requinsEdit = new List(); + /// + /// List de Requin stocke les requins qui ont été ajoutés par les utilisateurs + /// private List requinsAdd = new List(); + /// + /// List d'Utilisateur stocke les utilisateurs de l'applications + /// private List utilisateurs = new List(); + /// + /// List d'Expert stocke les experts de l'application + /// private List expert = new List(); - + /// + /// List de String stocke les fun facts de l'application + /// private List funFacts = new List(); + /// + /// Remplissage des listes avec des données pour l'application + /// public Stub() { // Requins @@ -41,11 +63,21 @@ namespace StubLib } + /// + /// Charge les requins des listes de la classe + /// + /// public (List reqs, List reqsAdd, List reqsEdit) LoadRequins() { return (new List(requins), new List(requinsAdd), new List(requinsEdit)); } + /// + /// Sauvegarde les requins dans les listes de la classe + /// + /// + /// + /// public void SaveRequins(List reqs, List reqsAdd, List reqsEdit) { requins = reqs; @@ -53,22 +85,39 @@ namespace StubLib requinsEdit = reqsEdit; } + /// + /// Charge les utilisateurs de la liste de la classe + /// + /// public (List users, List experts) LoadUsers() { return (new List(utilisateurs), new List(expert)); } + /// + /// Sauvegarde les utilisateurs dans la liste de la classe + /// + /// + /// public void SaveUsers(List users, List experts) { utilisateurs = users; expert = experts; } + /// + /// Charge les fun facts dans la liste de la classe + /// + /// public List LoadFunFacts() { return new List(funFacts); } + /// + /// Sauvegarde les fun facts dans la liste de la classe + /// + /// public void SaveFunFacts(List fun) { funFacts = fun; diff --git a/UnitTests/UnitTest_Modele.cs b/UnitTests/UnitTest_Modele.cs index 72524e0..519ea42 100644 --- a/UnitTests/UnitTest_Modele.cs +++ b/UnitTests/UnitTest_Modele.cs @@ -1,6 +1,8 @@ using System; +using Xunit; using Modèle; using System.Collections.Generic; +using NPOI.SS.Formula.Functions; namespace UnitTests { diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index 4f4570e..ee2529c 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -34,7 +34,11 @@ namespace WpfApp1 /// public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(strat); - + /// + /// Charge les données des fichiers de persistance dans l'application + /// + /// + /// private void Application_Activated(object sender, EventArgs e) { LeManager.LoadRequins(); @@ -42,6 +46,11 @@ namespace WpfApp1 LeManager.LoadFunFacts(); } + /// + /// Sauvegarde les données de l'application dans les fichiers de persistance + /// + /// + /// private void Application_Deactivated(object sender, EventArgs e) { LeManager.SaveRequins();