From 815aee6cf79070a2d1c839b17f32ec39eb65029b Mon Sep 17 00:00:00 2001 From: troufflard <> Date: Mon, 19 Sep 2016 13:51:09 +0000 Subject: [PATCH] ajout test en attente debug : Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1 (voir README, section But du test) --- Doc/doc_procedure_verification.tex | 6 + Perl/test.pl | 8 +- .../README | 54 ++++++ .../cube_1elt_npti8.her | 18 ++ .../cube_1elt_npti8.lis | 158 ++++++++++++++++++ .../traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 | 116 +++++++++++++ .../traction_biaxale_BLOCAGE_RELATIF_1.info | 83 +++++++++ ...biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 | 99 +++++++++++ doc_procedure_verification.pdf | Bin 248807 -> 249075 bytes 9 files changed, 540 insertions(+), 2 deletions(-) create mode 100755 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README create mode 100644 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her create mode 100644 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis create mode 100644 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 create mode 100644 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info create mode 100644 Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 diff --git a/Doc/doc_procedure_verification.tex b/Doc/doc_procedure_verification.tex index c653082..313ed45 100644 --- a/Doc/doc_procedure_verification.tex +++ b/Doc/doc_procedure_verification.tex @@ -1125,6 +1125,12 @@ pour ces 2 scripts, une gestion des signaux d'interruption \verb|INT| et \verb|T \item[-] modif du script \verb|Perl/test.pl| : ajout d'un 3ème argument pour le script \verb|.verif|. Désormais, le nom du fichier \verb|.info| est fourni en 3ème argument (voir la partie relative au script \verb|.verif| en section \ref{section_fichiers_facultatifs}) \end{itemize}%tiret +~\\ +\item[$\bullet$] 2016-09-19 (Julien Troufflard) : +\begin{itemize} +\item[-] modif du script \verb|test.pl| : légère modif sans conséquence (petit changement dans le message d'erreur en lien avec un problème d'exécution Herezh) +\end{itemize}%tiret + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %template d ajout d une nouvelle mise à jour (composé d'une puce "bullet" avec Date et auteur de la modif, suivie d une série de puce "-" diff --git a/Perl/test.pl b/Perl/test.pl index b395460..13f0bff 100755 --- a/Perl/test.pl +++ b/Perl/test.pl @@ -745,9 +745,13 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) { #---cas d un arret a cause d une activite cpu nulle elsif($status_calcul eq "activite cpu nulle") { printRapport(" -> ECHEC : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n"); - printRapport(" La cause possible est un probleme de menu interactif (verifiez le fichier .commande si il existe)\n\n"); + printRapport(" Causes possibles :\n"); + printRapport(" - erreur dans la lecture de la mise en donnees (verifiez le .info)\n"); + printRapport(" - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n"); print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n"; - print " La cause possible est un probleme de menu interactif (verifiez le fichier .commande si il existe)\n"; + print " Causes possibles :\n"; + print " - erreur dans la lecture de la mise en donnees (verifiez le .info)\n"; + print " - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n"; last BOUCLE_TEST; } diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README new file mode 100755 index 0000000..2ae9872 --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README @@ -0,0 +1,54 @@ +------------------------------------------------------ +Auteur +------------------------------------------------------ +Julien Troufflard (troufflard@univ-ubs.fr) + + +------------------------------------------------------ +Mots-cles +------------------------------------------------------ +Traction biaxiale +BLOQUAGE_RELATIF_ +TEMPS_MINI + + +------------------------------------------------------ +But du test +------------------------------------------------------ +Vérification du fonctionnement de la combinaison BLOQUAGE_RELATIF_ + TEMPS_MINI dans une condition de déplacement imposé + +** @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ +** @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ +** +** ----- remarques a supprimer une fois le bug resolu ----- +** +** ce calcul tourne avec la version 6.726 +** il ne tourne pas avec la version 6.727 +** +** selon redmine, la version 6.727 correspond aux modifs suivantes : +** <<< introduction des chargements en champs de valeurs >>> +** +** +** le .maple.ref1 ici present est celui obtenu avec la version 6.726 +** +** @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ +** @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + +------------------------------------------------------ +Description du calcul +------------------------------------------------------ +Calcul de traction biaxiale sur un cube unitaire. + +La gestion du chargement se fait via des courbes de charge : +1) Entre le temps 0 et 1, c est de la traction uniaxiale classique selon X car la condition sur UY de la face Y=1 est inactive jusqu au temps 1 inclus (TEMPS_MINI= 1). + +2) Entre le temps 1 et 2, la courbe dpl_UX permet de figer la face X=1 dans sa position actuelle (X=1.02). La condition sur la face Y=1 devient active, c'est-à-dire un déplacement UY=0.02 (piloté par la courbe dpl_UY_relatif) depuis la position atteinte au temps 1 (BLOQUAGE_RELATIF_). + + +------------------------------------------------------------- +Grandeurs de comparaison +------------------------------------------------------------- +les positions finales du noeud 8 : X1, X2, X3 + +contraintes au point d intégration 1 : SIG11, SIG22, SIG33 diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her new file mode 100644 index 0000000..3bc9991 --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her @@ -0,0 +1,18 @@ + nom_maillage cube_1elt_npti8 + + noeuds + 8 NOEUDS + + 1 0 0 0 + 2 0 0 1 + 3 0 1 0 + 4 0 1 1 + 5 1 0 0 + 6 1 0 1 + 7 1 1 0 + 8 1 1 1 + + elements + 1 ELEMENTS + + 1 HEXAEDRE LINEAIRE 5 7 3 1 6 8 4 2 diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis new file mode 100644 index 0000000..8224c23 --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis @@ -0,0 +1,158 @@ +# CORRESPONDANCE label => position +# +# gauche => X=1 +# +# droit => X=0 +# +# avant => Y=1 +# +# arriere => Y=0 +# +# haut => Z=1 +# +# bas => Z=0 +# + + N_avant 3 4 7 8 + + N_arriere 1 2 5 6 + + N_haut 2 4 6 8 + + N_bas 1 3 5 7 + + N_droit 1 2 3 4 + + N_gauche 5 6 7 8 + + N_haut_droit 2 4 + + N_haut_gauche 6 8 + + N_haut_arriere 2 6 + + N_haut_avant 4 8 + + N_bas_droit 1 3 + + N_bas_gauche 5 7 + + N_bas_arriere 1 5 + + N_bas_avant 3 7 + + N_arriere_droit 1 2 + + N_arriere_gauche 5 6 + + N_avant_droit 3 4 + + N_avant_gauche 7 8 + + N_haut_arriere_droit 2 + + N_haut_arriere_gauche 6 + + N_haut_avant_gauche 8 + + N_haut_avant_droit 4 + + N_bas_arriere_droit 1 + + N_bas_arriere_gauche 5 + + N_bas_avant_gauche 7 + + N_bas_avant_droit 3 + + N_to 1 2 3 4 5 6 7 8 + + E_avant 1 + + E_derriere 1 + + E_haut 1 + + E_bas 1 + + E_droit 1 + + E_gauche 1 + + E_haut_droit 1 + + E_haut_gauche 1 + + E_haut_arriere 1 + + E_haut_avant 1 + + E_bas_droit 1 + + E_bas_gauche 1 + + E_bas_arriere 1 + + E_bas_avant 1 + + E_arriere_droit 1 + + E_arriere_gauche 1 + + E_avant_droit 1 + + E_avant_gauche 1 + + E_haut_arriere_droit 1 + + E_haut_arriere_gauche 1 + + E_haut_avant_gauche 1 + + E_haut_avant_droit 1 + + E_bas_arriere_droit 1 + + E_bas_arriere_gauche 1 + + E_bas_avant_gauche 1 + + E_bas_avant_droit 1 + + E_to 1 + + F_avant 1 5 + + F_arriere 1 2 + + F_haut 1 4 + + F_bas 1 1 + + F_droit 1 6 + + F_gauche 1 3 + + A_haut_droit 1 11 + + A_haut_gauche 1 9 + + A_haut_arriere 1 12 + + A_haut_avant 1 10 + + A_bas_droit 1 3 + + A_bas_gauche 1 1 + + A_bas_arriere 1 4 + + A_bas_avant 1 2 + + A_arriere_droit 1 8 + + A_arriere_gauche 1 5 + + A_avant_droit 1 7 + + A_avant_gauche 1 6 diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 new file mode 100644 index 0000000..234d327 --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 @@ -0,0 +1,116 @@ +############################################################################################### +# Fichier de commande pour la visualisation elements finis # +# Herezh++ V6.687 # +# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ # +# http://www-lg2m.univ-ubs.fr # +############################################################################################### + + + + debut_fichier_commande_visu # >>>>>> le mot cle: + # permet au programme de se positionner au debut du fichier, il est indispensable + + + # ================================================================================= + # || ***** demande d'une visualisation maple: ***** || + # ================================================================================= + # un mot cle de debut (debut_visualisation_maple) + # un mot cle de fin ( fin_visualisation_maple) + # la seule presence de ces deux mots cle suffit a activer la visualisation maple + debut_visualisation_maple + + # ----------------------------- definition de la liste des increments a balayer: ---------------- + debut_list_increment # un mot cle de debut de liste + actif 1 # <0 ou 1> indique si l'ordre est actif ou non + # une liste d'entier separee par des blancs, ou le mot cle (tous_les_increments) + # un mot cle de fin de liste ( fin_list_increment) + dernier_increment fin_list_increment + + # ----------------------------- choix des maillages a visualiser: ---------------- + # la liste est facultative, par defaut la visualisation concerne le premier maillage + debut_choix_maillage # un mot cle de debut, + actif 0 # <0 ou 1> indique si l'ordre est actif ou non + # une liste d'entiers , puis , sur une meme ligne + 1 fin_choix_maillage + + # ----------------------------- definition des grandeurs a visualiser (maple): ---------------- + debut_grandeurs_maple # un mot cle de debut (debut_grandeurs_maple), + actif 1 # <0 ou 1> indique si l'ordre est actif ou non + # les grandeurs globales (energie, puissance ....) un mot cle de debut, le nom des grandeurs puis un mot de fin + debut_grandeurs_globales fin_grandeurs_globales + # ensuite pour chaque maillage:, + # le numero du maillage , + # les infos pour la visualisation eventuelle des torseurs de reaction, + # les infos pour la visualisation eventuelle aux noeud, + # - tout d'abord les ddl principaux (position, deplacements, temperature etc.) + # - puis les ddl etendus et particulieres qui peuvent representer des grandeurs diverses + # les infos pour la visualisation eventuelle aux elements, + # - tout d'abord les grandeurs generiques (deformations, contraintes etc.) + # - puis les grandeurs particulieres, par exemple specifique a une loi de comp ou une mesure de def + # enfin un mot cle de fin ( fin_grandeurs_maple) + 1 # le numero de maillage + # les torseurs de reaction: un mot cle de debut: debut_list_torseur_reaction + # une liste de nom , puis + debut_list_torseur_reaction fin_list_torseur_reaction + debut_liste_ddl_et_noeud # ** debut des ddl principaux aux noeuds + # debut de la liste de noeuds, puis une liste de numero de noeud , puis + deb_list_noeud fin_list_noeud + # debut de la liste des ref de noeuds, puis une liste de nom , puis + deb_list_ref_noeud N_haut_avant_gauche fin_list_ref_noeud + # debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis + deb_list_ddl_noeud X1 X2 X3 fin_list_ddl_noeud + type_sortie_ddl_retenue= 0 + # debut de la liste des ddl etendus a considerer aux noeuds, (une liste de ddl), puis + deb_list_ddl_etendu_noeud fin_list_ddl_etendu_noeud # fin des ddl etendu aux noeuds + # debut de la liste des grandeurs particulieres a considerer aux noeuds, (une liste de string), puis + deb_list_GrandParticuliere_noeud fin_list_GrandParticuliere_noeud # fin des grandeurs particulieres aux noeuds + fin_liste_ddl_et_noeud # fin des grandeurs aux noeuds + debut_liste_ddl_ptinteg # ** debut des grandeurs aux elements + # debut de la liste des elements et points d'integration, une liste de (un element, un numero de pt d'integ), puis + deb_list_NbElement_NbPtInteg 1 1 fin_list_NbElement_NbPtInteg + # debut de la liste des ref d'elements, puis une liste de: nom + numero d'integ, puis + deb_list_ref_element fin_list_ref_element + # debut de la liste des ref de ptinteg d'elements, puis une liste de: nom puis + deb_list_ref_ptinteg_element fin_list_ref_ptinteg_element + # debut de la liste des ddl a considerer pour les elements, (une liste de ddl), puis + deb_list_ddl_element SIG11 SIG22 SIG33 fin_list_ddl_element # fin de la liste de ddl a considerer pour les elements + # debut de la liste des grandeurs particulieres a considerer pour les elements, (une liste de string), puis + deb_list_GrandParticuliere_element fin_list_GrandParticuliere_element # fin des grandeurs particulieres aux elements + # tableau de grandeurs evoluees aux elements a visualiser, un par maillage + deb_list_GrandEvoluee_element fin_list_GrandEvoluee_element + fin_liste_ddl_ptinteg # fin des grandeurs aux elements +# informations particuliere dans le cas ou il y a une animation +# type_xi indique si oui ou non les grandeurs a tracer sont aux noeuds (sinon c'est au elements) +# x1 et x2 indiquent les noms des ddls des grandeurs en x et y. accroi_x1 et accroi_x2 indiquent +# si oui ou non x1 et x2 represente l'accroissement entre 0 et t de la grandeur ou bien la grandeur elle meme. + debut_info_particulier grandeur_au_noeud? 1 x1= NU_DDL x2= NU_DDL accroi_x1= 0 accroi_x2= 1 fin_info_particulier +# un parametre de pilotage du style de sortie + parametre_style_de_sortie 1 +# un parametre indiquant si les tenseurs sont en absolue (rep 1) ou suivant un repere ad hoc +# (tangent pour les coques, suivant la fibre moyenne pour les element 1D ) + tenseur_en_absolue_ 0 + fin_grandeurs_maple # fin des grandeurs a visualiser au format maple + + # ----------------------------- definition des parametres d'animation: ---------------- + debut_animation # un mot cle de debut de liste (debut_animation) + actif 0 # <0 ou 1> indique si l'ordre est actif ou non + # des parametres avec des valeurs: (sur une meme ligne) + cycleInterval 8 # cycleInterval (indique le temps en seconde du cycle de l'animation) + fin_animation # un mot cle de fin + + fin_visualisation_maple + # ================================================================================= + # || fin de la visualisation maple || + # ================================================================================= + + + + + + fin_fichier_commande_visu # <<<<<< le mot cle permet + # l'arret de la lecture des commandes, apres ce mot cle, aucune commande n'est lu, de plus + # sans le mot cle de fin de fichier, le fichier n'est pas valide + + ############################################################################################### + + diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info new file mode 100644 index 0000000..35c2e9c --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info @@ -0,0 +1,83 @@ +dimension 3 + + +niveau_commentaire 3 + + +TYPE_DE_CALCUL +non_dynamique avec plus lectureCommandesVisu + + +< cube_1elt_npti8.her +< cube_1elt_npti8.lis + + +les_courbes_1D + + dpl_UX COURBEPOLYLINEAIRE_1_D + Debut_des_coordonnees_des_points + Coordonnee dim= 2 0. 0. + Coordonnee dim= 2 1. 0.02 + Coordonnee dim= 2 2. 0.02 + Fin_des_coordonnees_des_points + + dpl_UY_relatif COURBEPOLYLINEAIRE_1_D + Debut_des_coordonnees_des_points + Coordonnee dim= 2 0. 0. + Coordonnee dim= 2 1. 0. + Coordonnee dim= 2 2. 0.02 + Fin_des_coordonnees_des_points + + + +choix_materiaux +E_tout MAT + + +materiaux +MAT ISOELAS +210000. 0.3 + + +masse_volumique +E_tout 1. + + +charges + + +blocages + +N_droit UX +N_arriere UY +N_bas UZ +N_gauche 'UX= COURBE_CHARGE: dpl_UX ECHELLE: 1.' +N_avant 'UY= COURBE_CHARGE: dpl_UY_relatif ECHELLE: 1.' TEMPS_MINI= 1. BLOQUAGE_RELATIF_ + + + +controle + +DELTAtMINI 1.e-7 +DELTAtMAXI 0.1 +TEMPSFIN 2. +DELTAt 0.1 +ITERATIONS 15 +PRECISION 1e-3 +SAUVEGARDE DERNIER_CALCUL +MAXINCRE 9999999 +NORME Residu/Reaction_et_VarRes + + +para_pilotage_equi_global + +para_syteme_lineaire + +para_affichage + + + +resultats pas_de_sortie_finale_ +COPIE 0 + +_fin_point_info_ diff --git a/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 new file mode 100644 index 0000000..aa66839 --- /dev/null +++ b/Tests_en_attente_debug/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 @@ -0,0 +1,99 @@ +#fichier au format maple6 +############################################################################################### +# Visualisation elements finis : Herezh++ V6.726 # +# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ # +# http://www-lg2m.univ-ubs.fr # +############################################################################################### + + + + # entete des donnees : informations gererales: on trouve successivement: + # >> le nombre de grandeurs globales (peut etre nul) suivi des identificateurs + # precedes du numero de colonne entre crochet + # >> le nombre de maillages m, et dimension de l'espace de travail + # puis pour chaque maillage, + # >> le nombre de torseurs de reaction (peut etre nul), le nombre total de reel qui va etre ecrit + # correspondant aux composantes des torseurs, puis les noms de ref associee suivi des positions + # des composantes entre crochet accolees a un identificateur: R pour reaction, M pour moment + # puis pour chaque maillage + # >> le nombre de noeud n (peut etre nul) ou il y a des grandeurs en sortie , + # puis le nombre des grandeurs p1 correspondantes, la position entre crochet des coordonnees + # et enfin l'idendificateur de ces grandeurs(p1 chaines de caractere) + # precedes du numero de colonne correspondant entre crochet + # puis pour chaque maillage + # >> le nombre de couples element-pt_integ (peut etre nulle) ou il y a des grandeurs en sortie , + # les grandeurs aux elements sont decomposees en 2 listes: la premiere de quantite P2 correspondant + # a des grandeurs generiques, la seconde de quantite P3 corresponds aux grandeurs specifiques, + # on trouve donc a la suite du nombre d'element: le nombre P2, suivi de P2 identificateurs de ddl + # chacun precedes du numero de colonne entre crochet + # puis le nombre P3, suivi de P3 identificateurs+categorie+type (chaines de caracteres), + # suivi entre crochet, de la plage des numeros de colonnes, correspondant + # chacun sur une ligne differentes + # ==== NB: pour les grandeurs specifique tensorielle: exemple d'ordre en 2D: + # tenseur symetrique, A(1,1) A(2,1) A(2,2), non symetrique A(1,1) A(1,2) A(2,1) A(2,2) + # en 3D c'est: tenseur symetrique, A(1,1) A(2,1) A(2,2) A(3,1) A(3,2) A(3,3) + # non symetrique A(1,1) A(1,2) A(2,1) A(2,2) A(2,3) A(3,1) A(3,2) A(3,3) + # ** dans le cas ou il n'y a qu'un seul increment en sortie, pour les grandeurs aux noeuds et aux elements, + # ** les informations peuvent etre decoupees selon: une ligne = un noeud, et le temps n'est pas indique + # ** ( cf: parametre_style_de_sortie = 0) + +#==================================================================== +#|| recapitulatif des differentes grandeurs par colonne || +#==================================================================== +#---------------------------------- grandeur globales ------------------------------------ +#0 (nombre de grandeurs globales) +#---------------------------------- maillage et dimension -------------------------------- +#1 3 (nombre de maillages et dimension) +#---------------------------------- torseurs de reactions -------------------------------- +#0 0 (nombre de torseurs et nombre total de grandeurs associees) +# +#---------------------------------- grandeurs aux noeuds -------------------------------- +#1 3 (nombre de noeuds, nombre total de grandeurs associees) +# reference N_haut_avant_gauche : noeud_8 [2]X [3]Y [4]Z [5]X1 [6]X2 [7]X3 ; +# +#---------------------------------- grandeurs aux elements ------------------------------ +#1 3 00 (nombre total d'elements, nombre totale de grandeurs associees, nombre de grandeurs particulieres, nombre de grandeurs tensorielles) +# element_1 pt_integ_1: [9]X [10]Y [11]Z [12] SIG11 [13] SIG22 [14] SIG33 +# +# +#==================================================================== +#|| fin du recapitulatif des differentes grandeurs || +#==================================================================== + + # ensuite les donnees sont organisees sur differentes lignes, chaques lignes correspondant + # a un calcul (par exemple un pas de temps), sur chaque ligne il y a m enregistrement, chacun + # correspondant a un maillage. On trouve pour chaque enregistrement successivement : + # s'il y a des grandeurs globales: le temps puis les grandeurs globales, + # puis s'il y a des torseurs de reaction : + # de nouveau le temps, les composantes de la resultante puis les composantes du moments + # donc en 1D -> 1 reels (resultante), en 2D -> 3 reels (resultante 2, moment 1) et en 3D 6 reels + # puis s'il y a des grandeurs aux noeuds: de nouveau le temps + # les coordonnees a t du premier noeud suivi des p1 grandeurs correspondant au premier noeud + # puis les coordonnees du second noeud, les p1 grandeurs etc. pour tous les noeuds + # puis s'il y a des grandeur aux elements: + # le temps, puis les coordonnees a t du point d'integration d'un element (pour les grandeurs generiques) + # suivi des p2 grandeurs correspondantes puis les coordonnees a t du point d'integration + # correspondant aux grandeurs specifiques suivi des p3 grandeurs correspondantes + # puis les coordonnees d'un second point d'integration d'un element, les p2 grandeurs + # etc. pour tous les points d'integration - element + + 1.000000000000e-01 1.002000000000e+00 9.994021528470e-01 9.994021528470e-01 1.002000000000e+00 9.994021528470e-01 9.994021528470e-01 1.000000000000e-01 2.117475151360e-01 7.882036274110e-01 7.882036274110e-01 4.186999968413e+02 -7.225796468299e-02 -7.225796473688e-02 +2.000000000000e-01 1.004000000000e+00 9.988092918389e-01 9.988092918389e-01 1.004000000000e+00 9.988092918389e-01 9.988092918389e-01 2.000000000000e-01 2.121701648668e-01 7.877360526756e-01 7.877360526756e-01 8.349867432157e+02 -5.044148934985e-06 -5.044148849720e-06 +3.000000000000e-01 1.006000000000e+00 9.982208308086e-01 9.982208308086e-01 1.006000000000e+00 9.982208308086e-01 9.982208308086e-01 3.000000000000e-01 2.125928145976e-01 7.872719480933e-01 7.872719480934e-01 1.248750042103e+03 -3.937182839309e-06 -3.937164706258e-06 +4.000000000000e-01 1.008000000000e+00 9.976368986747e-01 9.976368986747e-01 1.008000000000e+00 9.976368986747e-01 9.976368986747e-01 4.000000000000e-01 2.130154643284e-01 7.868114153390e-01 7.868114153390e-01 1.660052907544e+03 -4.181044289453e-06 -4.181062195130e-06 +5.000000000000e-01 1.010000000000e+00 9.970529665408e-01 9.970529665408e-01 1.010000000000e+00 9.970529665408e-01 9.970529665408e-01 5.000000000000e-01 2.134381140592e-01 7.863508825847e-01 7.863508825847e-01 2.067819639942e+03 -1.825287218956e+00 -1.825287218992e+00 +6.000000000000e-01 1.012000000000e+00 9.964824258645e-01 9.964824258645e-01 1.012000000000e+00 9.964824258645e-01 9.964824258645e-01 6.000000000000e-01 2.138607637900e-01 7.859009113400e-01 7.859009113400e-01 2.475355006163e+03 -3.672612228911e-05 -3.672615832784e-05 +7.000000000000e-01 1.014000000000e+00 9.959118851882e-01 9.959118851882e-01 1.014000000000e+00 9.959118851882e-01 9.959118851882e-01 7.000000000000e-01 2.142834135209e-01 7.854509400953e-01 7.854509400953e-01 2.879416119725e+03 3.912457109516e-02 3.912457105901e-02 +8.000000000000e-01 1.016000000000e+00 9.953413445119e-01 9.953413445119e-01 1.016000000000e+00 9.953413445119e-01 9.953413445119e-01 8.000000000000e-01 2.147060632517e-01 7.850009688507e-01 7.850009688507e-01 3.280027871816e+03 -1.697817128008e+00 -1.697817128045e+00 +9.000000000000e-01 1.018000000000e+00 9.947834816473e-01 9.947834816473e-01 1.018000000000e+00 9.947834816473e-01 9.947834816473e-01 9.000000000000e-01 2.151287129825e-01 7.845609962809e-01 7.845609962809e-01 3.680335473648e+03 -3.314144657907e-05 -3.314146454159e-05 +1.000000000000e+00 1.020000000000e+00 9.942256187827e-01 9.942256187827e-01 1.020000000000e+00 9.942256187827e-01 9.942256187827e-01 1.000000000000e+00 2.155513627133e-01 7.841210237110e-01 7.841210237110e-01 4.077253376881e+03 -4.098855042264e-02 -4.098855042230e-02 +1.100000000000e+00 1.020000000000e+00 9.962256187827e-01 9.933721658728e-01 1.020000000000e+00 9.962256187827e-01 9.933721658728e-01 1.100000000000e+00 2.155513627133e-01 7.856983739802e-01 7.834479266224e-01 4.217718765379e+03 4.681740028296e+02 -3.801827027837e-02 +1.200000000000e+00 1.020000000000e+00 9.982256187827e-01 9.925187129629e-01 1.020000000000e+00 9.982256187827e-01 9.925187129629e-01 1.200000000000e+00 2.155513627133e-01 7.872757242494e-01 7.827748295338e-01 4.356436264079e+03 9.326730854311e+02 -2.145438539390e+00 +1.300000000000e+00 1.020000000000e+00 1.000225618783e+00 9.916871782055e-01 1.020000000000e+00 1.000225618783e+00 9.916871782055e-01 1.300000000000e+00 2.155513627133e-01 7.888530745186e-01 7.821190187472e-01 4.496139628797e+03 1.396205739923e+03 -2.106395879764e-04 +1.400000000000e+00 1.020000000000e+00 1.002225618783e+00 9.908556434481e-01 1.020000000000e+00 1.002225618783e+00 9.908556434481e-01 1.400000000000e+00 2.155513627133e-01 7.904304247878e-01 7.814632079605e-01 4.634130600036e+03 1.856089274920e+03 8.615849624653e-02 +1.500000000000e+00 1.020000000000e+00 1.004225618783e+00 9.900241086907e-01 1.020000000000e+00 1.004225618783e+00 9.900241086907e-01 1.500000000000e+00 2.155513627133e-01 7.920077750570e-01 7.808073971738e-01 4.770419864359e+03 2.312349790221e+03 -1.876809064328e+00 +1.600000000000e+00 1.020000000000e+00 1.006225618783e+00 9.892127058348e-01 1.020000000000e+00 1.006225618783e+00 9.892127058348e-01 1.600000000000e+00 2.155513627133e-01 7.935851253262e-01 7.801674639172e-01 4.907537790639e+03 2.767532914915e+03 -1.794898118987e-04 +1.700000000000e+00 1.020000000000e+00 1.008225618783e+00 9.884013029789e-01 1.020000000000e+00 1.008225618783e+00 9.884013029789e-01 1.700000000000e+00 2.155513627133e-01 7.951624755954e-01 7.795275306606e-01 5.042987605215e+03 3.219156984343e+03 -1.248669994093e-01 +1.800000000000e+00 1.020000000000e+00 1.010225618783e+00 9.875899001230e-01 1.020000000000e+00 1.010225618783e+00 9.875899001230e-01 1.800000000000e+00 2.155513627133e-01 7.967398258646e-01 7.788875974040e-01 5.176779706159e+03 3.667247356173e+03 -2.241569013894e+00 +1.900000000000e+00 1.020000000000e+00 1.012225618783e+00 9.868000503675e-01 1.020000000000e+00 1.012225618783e+00 9.868000503675e-01 1.900000000000e+00 2.155513627133e-01 7.983171761337e-01 7.782646625417e-01 5.311641903360e+03 4.114546652242e+03 -2.077463709611e-04 +2.000000000000e+00 1.020000000000e+00 1.014225618783e+00 9.860102006119e-01 1.020000000000e+00 1.014225618783e+00 9.860102006119e-01 2.000000000000e+00 2.155513627133e-01 7.998945264029e-01 7.776417276794e-01 5.444880092637e+03 4.558375434422e+03 2.983076643923e-01 diff --git a/doc_procedure_verification.pdf b/doc_procedure_verification.pdf index fc05a0b74eb731f0d1fe9cb8f6c67c2f93b2d822..ac36685aae56b8d4432af673c12842394bd6e030 100644 GIT binary patch delta 21702 zcmV(xKETdCb%L{cPx#gG48?1Ct`3{dd)1-j$$*X4^>r&tCg ziG>t6SY8B*#)Q#;OCB>JgXJpt8h+44Yw~D8xd>M;+a}Ai2#2+9va<018h>}pwLS81 z6HydaC0w8|jj#&O5TOyHI5exaGDD+3m+u11QJhd2EQpGw^g~{c8&%mE!b$2zghs;* zz85fjW3YyN`E7*i4~sEQLITxXvm!d+(xrC@CRj4gDv>a6A58GlP@%t_+<$I3lln@wZZcChnqj_?;jnC}}bM+RddV$8u} zCSxM8>v0(=66*7OAXU4QH4umhvXdb|1_2qkwcG#phyol`_QIZg>PN=0VvN|45fJAv zB=eJq77CdEUNru_t=hE5{pyqeWfUu@?+Q9& z!oC9*W+gm}XLxL_q98o9?VH|la={`IET%Z=CWUQZwmET=`WSU0s>`D2Nmd>sbr>(k zmz61+J+Q&o1(A}-yPJf@woqrwFV%U6x9nWR)Tt>_KqO+ybwv z#98oO!-#8`p&xbRyMH1)*G&TsXU2B{M>7Qif=!^?u{krsW4o^y)X$g#@_A#4yIYd~$epN4&I0!o4J#nFNxbeuz?)KLc7nKx|P3` z!I(9n9z_vfXlJLQ?fDv$39X?`-dfcqJWV z5gHHsddL4rpY1@3mG-jeT(K>-Z)D##p`MZ(&Vd!Tfd%JLka6v4m~<+}uzJ5Atp`rT zo|%|sCJ}vtp?~Yac%msv;!%E?)8kC`ZG|V$GlBS6oEP)LrG4-%onl>JX!o7H8ZXV8 zZoM{DQ)c`5&}>-X0W6t%71WoYZ} zeMchn$-dbm2;(+Cgkt{RUQX!2pxKR}FLc`G z4Wy(O{(leSGyMwcCcUwFk_^kr7XsS0zP7O)(tz%<{H6Im4n=9(7h8TO?uN2~3i8tk zvV#e7Pw>rmv)&A@{=>88u{Ae1Csc7R6Ye?$y~(03h(qG(*9Nkbe`LseclO@^Y6;_cf{3ySpNN>C+XRz1#2V z)^1qhaCa#a;jmAs(Fn}(#K^Y@4 zQDaO#WZA%pDjwIKZnWOUqH#P01F;C92_HsP`d z$3sNj4h|e@3+DGxGbS)m`iKO-TIXB70+=goC_DKD7nBLcv0^Br0t+GG>eGmo1Jgn2*0-$f9tsW>&3{#_yfNu=4P*@u=on)W4p3H#P)h=avA~R>f zE27e8R9(@3bg(O1zni7_HF){iri`I9G6u75`>G#<;`kKJ&QAV>(CjH~eH1A(m~%N7 z>E3o-u^aWdxwp>Q_>F`be-7mkRT_(Y^}PIf zN$Fb+p5I&h?>iSLQ$(JDGkw+j^Xl#|XeN1D3T1AWF$V!h0W*`}o+*D?ZI2tb5&o`U zL7)hbeA(s8@U1umu;V%n&;W+d0oopn;_N7wLyXhmEVs_T@AC{-(&}`w_fCr40tO^5 zmmCgZHYGVcovD9TOt98C8;PhG=dwqOH!iq@NFU|%AR0OFEBuR;V&;wocACFv?nDvmAHq>6qjLbg>o z0nNe+Lh>dD1Slgn=$cG7X!dREi8+r;>lW+#0o#X~n62V;GgzIU)dl zsCrJblarb0zgxUn+?-yYzn+5%Yo43_+4*ugzqtZ!`udmm%kNK@=gT>0X2Yz1y0}`J zlM~ZFrB>wD+&}fyA+L(!89Z z3l#M)e!qX7lZcD?48&b6=U2z~ixF5ca|p1;*SuT4MBf4)3_ym)WUEE-~s zomU>YuGE*9?feEPxF-~RnB|E%qm5De{{D}DLX=&BJaVla_MEwT_vX#Zy|ALNsY(~2 z5>sHM0M?diuui%RDNcb6)pcUGVGoq)KFLAa=t+O8o-NS_7#|-F5^xPW0#YFxm@?ZE)0P1D$?Sn*3fAq4sXjzZ{iCa^ z1u&ke?2o? zifz~rtI}PtDdsMfX?R6!S7V+8>yiftrr~t~DjNLf)lq;kj4DSnGQpPH+RH%fAS1(= zZ>o{mf*m-Gn5J`n5-5e8(=@b*Wx6PGOaXsxOJ<6fc&M11-w~6u_YqTY@wS+po4$d! zU{_-DU3Os-te4a=Je&mUv4L&=!{oHJx3+}Fklo2)a@yTaE*&bTdu%6{?+D6VSA(Af zD>TZW;FIi;Z9!~!zh&eeDhR(5JTakrfFL$rnaSc2y|N1#!7>u98sLtxV#*d7VYYt} zvM6`D@uJ42xl-u z2-9GF>byT{in2do*cW6xl=ne)cpvePK)15%UzRO z=#g7bF0erny!L#iY9dms%=4;HyXXlwtVfsAKRP+l8Tv;$d4Jmf^!x|@zy5!9xx9Y+ z=f0m`b^p2i?edy>&@FB*dcO6izs_HsUtRp`D_?%Px_tkYuYY>BxLKaRx_ooF{Qa8; zlka@#3bH)!JaPpd{UH&^3?5@=bNsyI-(M3dgb)+t`ca2TCm$83|{!1+<5GLtJQpO%*FuqS!LQ9I!sKrUTHRwVGH2zc+NWguk77fYSw zi~pw;JMSoVj0Y-qY-?oLb4+jPcx1vmH|d0zhDiA-K`*dV{^LrNkEee`-oqpcPl{c~ zyB;50htPl&igO>-p`DY0`Py@^n8_d2 zV#2{8G*1rPXNV4~RSK^qX(`Hd%WxPKQjjo|V4w(kBrO#g0|NGFJ=k?m?|Z1Ntgwx+ zm9BK2_tFJn84QMC=ed9MVLdqmvYlxwit+h~i}(0wB}U5P5P4uoG0K`hOEtZVF@i>x*BmZ!TV$vo#t0 zlli|dU(cU^|M(?Qo$*AbnuPsNepzTJYbgbmTF(*g%rv;bWYK>_7qs1Rq}GeJH<*m@ zwT)*jYd^n)Q0#sKSI1)-71rukIPunVRhQWQt9r1T_Z1x9J^qDbhQ9S!q)ZV3q1A6) zqDQiHmZ7B3h_gtqiYKg}K4XI8*HdAPNVf9^;Q;s`)hh=qR|Q)ElMSqaZi2lq-x>1; zzz3H*XDYJFVv>Id+nL;$h>(JxxF~)YJ>aj77)k()-W_9p!5g4_R(!F|hFT&#QaxT~ zW$;B0ZKgNGycOq@mbCn)&4i)`K(~8&bf3DDWMn&+RX8N$CjX3SS0?R&C>Y zbgBUX`XYffSlY-hVxSe|R0`xo&YpVa$SDcbyognJ!{dJ?9%+Djf$uW82v(dCrt#Ar z$9hI6hnC0|`ZaKc^CTGNh~&AL>P2zG(o^zHH@^J;*grW99S^GAX($VK-%#@OvhYJY z_FB91r*#n#-5Injlx)^9e6Nr+EU0y=QrhfCB|+LWo7xyE6mFSTD*AEXh`hT9+xPc7 zR5YxTNqT=PTZr7xUvdp1>Xw$I+c9;n_ zFnqut8#|r#>*;C59Z_!7afg&5EF{+QGr>$Eu^&1?6DB?DBgWzXP8KvTD0@?Jc zrKVNiR~DgtRGgWXp{NfidDRaMDSS8yLwit&AfA776k71S#@6Z^DA9KrL5wi0Yaga? zN;zO0QKl;hw1BNFd9_vsCS|qGMBmhWI-?=LL2xXCn3>>N_0R&8Y}c}+Fv8FOR2B6`-UNGT_MI_g6Zdc+3L z*42OdwY9QrElnyqZVlV|dGNw-CA7YQ(!R!_Rv$`hsZTtFHebpw6Od|gck61tP0I*)^WMBnEAIsLIS!DCPOX(iJwYoq*&Ia?4Pq1(jADbq z9qMek(y%4O)Ziy?gV4*!xcQw7$3V-VW>0@a?G($@@FdNC3S({O5wZfvTQ$G*uBmD` zqh7d(8lL9#gaU>UQX=TdYiX0w;HA`jzO0wIw;VC8x!T=w#s6_EvmLdx@q^jR>P$rR z56bng!8$Nx|J#WMXWP^^5J8<&E62%$_CaWJq-1|( zMa?KxN%U~7Y%N?RKU!Hi(=4h?ntr6vJY`U*pebOqK}UM!G{4N(QDKFzjT~@$+w^0F zn^1w5_cpCxVl7(>-mY!lh^C2SQyYtstsBuY11tJY*6WBhRO?#_f#kOOrmvCP>a83r zg65PjXa5De!l@<-Wo~41baG{3Z3>4969Kmh69VQX5H<=gOl59obZ9alF)%VYIhT=v z0u=-?G%+%hF)Sy4jkg6*oaq)V3W4B36C_v%cNz=s?(V^9ppkCe-QC?Cf?Eh4++9K- zxFx~e<&v2>Gjq;+Rrgj`b^mLx?cd&C{Z08!NtIF96lx5TfI=J@S(t!408x1r7ES;V z$i@T&vZ7E@s(~G?L4S!+C^bO#4qzyR=U)n<_8=q2XPKCPk>j(TJQMZfR+J&-~x8E0H}Z*K=#fcQ^4l&eC`99@j;L4aq0 zHP{3Mad@_Hf|!Er0nfn!s?u@*MOzT$Pi4736&L`2^#;Jg#PYYhzpQ^d0z>{VHZn1R z+SnRF+`tfXfEm~t1W=TaV{&wLWB?dJOn)mHSvx>~pY4sDjlkAM#?K0WWNrkI5LN~l zJs0>_c@8G_U|UBACI_(f?-H4RyLs-iIK)&GYGVU}I69#G&QA<%4>EafyBqVLCu;?P zxA-U;O8@o(b45ef?nz!Yra z2rvejgCQvYcz+gy%>KmBhi?yd1?U2wXO9H{{Qdd+N$+{QOra2Kw|~_CIA3NF8FfiD z5&AzX{+kmKfw}@b7}?kWjI10$05>}afRmkn8{qZdUX+Z$e`Nvu$5a|(1_f~cne20y z{*$otU*}Kr*KW`P{@a%V^m%AO0GfYh`~#2!X!88U^8Y;Pf0+FL4ft;_|F;?c--INb ztgZi`Y5w5k-%6ZGfK%7aY7PB#C`N;?`o?}0FX z#N7JtHi8`_z^))uC9tE3#h=6Sr(FH_l39ZxASI{+`1h>>U}OOT|A%|tEEB8eo5SIG zBLAR3&x`ZlA;lpkP}AQV#>(*?U}SG^qG105cN=>iBE| zcrMQiU;Pt&-=aSd7b}2&S>+$}%&Gm2xH$pLMt>s~?q_83+^BzeE&#Lf zKj@h^`5SROb0$#h=OX{Mf3B6;^k0w#!2FLd77hTjnVI#!=w|`=U+~%AzuD(tHvd4D zXV?Ek;&{#*^4!aR@z1fKf5YchV21t|{oDlGf5GQ2*#8SYXX5aW^JmiGc~Ad;q2B|T z9si-9GjVi*{)>K2#_6BX&tsU>k?CqZ~wm%l{`ON==|F}g#AXktH%EDKu z32&ffU0~aFjWD4LmL3Vq_vlHK85P2Rly zee8-cdvQ5~oip)7DicSK;eR^*|x#u|My=e}H_#_G^XKtZ5`PYic|fjv4!as5&gB=+>p7U=T(Gh4t5IObN^^Mh z8~c>kC^S48I@x8hUJOouuBzV(yE=}|^TqqZ?0dLAiD+YKqwlUN%?Kt*F6QTAzWlC~ z#@T_foYA$DB48L{fOOi{N`M{3i*Do3cOCgvLQQ_-ZbGA|R9@=EI{DW8l$(xZd!orn z{=d?J>1Nw$489M6|6#`X1Bn@t1nr*rziRMmqt3DbShJ#=z8RJ~45UZSUw z;eK^@phdGIGT?+kt$vQwcmT<8g=tvL41w_dEf$UGEs?YeH;fP;ZQ0lRf=7lxqE6Mw zge%_$`W$nk@kNz?L$U%w-wz6!Z3(9eXiBwVB!x<;^zCO(+!6| zGKRyH9DeY^*_hW>w`KMpF1m`V#-t^lcY5Vhn8ym4H7h{Ap=WFu72^Y%8MM1IS)nz4 zFqCcjUE>te8(y`8x$0HSuk&BDUGJFxAZb_Hr-C|6L^OGS`<;gKyMNRpt%O^ivp$Ra z(2x31lo00;E;)EL9Dakr@4Ub$F!YN1HTJ+gwzp6dVuT51n%>uE;Ny7`saGWz>8!X4T_Hvn;-+RtArayE4)|GfVk<~Em=la1Zu&{eEw2+dZHO>P zeO+QD(Zzj#*3fv`e`cY0zUArEUwU&P;cg)9k~{p(%vb1cXU*5A@}80}B}TJaqFpao zx@O|MkMQO_)>Oo}gUh>#L@9i1MLKTz;c2oLwRz4WIFT1sed_|WW+llGJulO#m@tvW z`nTZ6c1R9e;#V9gOWwptM<*g-g+NuWH(NnIAM^2l^$THJu|2p_j3_563}kBz7TAQ5 zj9wOq@n-66>PPj4;t5#gN2}L+@}C#xK@DOCmYv+)kKQ4EYbQY8$mYrMY4;!9k2NGB z#$qkzRk|1Z%$9K?!4pSV@N;-GC9%y&h^%}ENkUml`k#1#|` zwI-FilxS+Jb+7aXZ2BHLzB~1t9k&>yN2FtzdichTp=II5QSM{HMp=Yqk$yn9!fDB% z=sFYf`C=(m%_+2Lu|u{;Svkpz`blAy>^=^En0>TU@u zUbHI}VvetiQWZZxc*Y(;;cpPHcFB4Me7EWH`vWvHfwCiF!D?ycsP&71l9MB6OKNj} z0Y@oYR@Vre^F6bSdBu;NaF3r9%`!x2YvI(VM9svxnCf3iYXUu1HU=bTiw}bmedt8gHrY&jOYXlDSP`=?>W<9A%c1nmhOvf8$n-3%HS4u*&+;r~XIpf|1cJxJd3N za%w_^4<(;JW}`2n+K%s5#K~}Ql-D4byTftD`k6~gRfbN8()dL$%-k(D1Tisx=1K9b z5g?5bV1#kCipi`j=oo*i_mP}+#Z#neJ%sZQ8tT*T-{fDz>c5{C-hJhU*hB>SuAwhs zvlPZ(a2QDHcYAw{5LuFLHOh2(bhj;5Oam;%UuGB5;`g0mGdXR2TIQ-7Y1l@xBI~|3 zm-w37YVsP##l4-e=_%<0HCzFIUECUs20o0+mkqYN+zTD*Urz8*%3D}{yTMPg`119c zrYOdvY3*IywXjW231JRu+V>XH1#3PeHbHu(%iVlcXzZ`CaVjS-$}VCe_#X?JFSDJR zwZ{2Xpl7p&C5S&(vZ^$0=H3<=Qs6KPxHlSeE@VGYTmFzHKwt=?0B=Kof3n|AZFYAs zEzXRx7Sal7Ru)hzsF!aBQSuIlpDo4*(F6I#Y0Kznl~NXT3(Wbg8|c2OF2kJN47jvq zYRBWoTPthMy3sv=XaN~8tl&GA3^_P&!xK4~yASP9Z&6EGi-TqFw3f{2*fkqG+hK`0 zrE^1t{@8^YVfYF^Ec$(a7GL24^anI=;eO`;80NkS`III=8or)BGZ>ysleFO2@~i{} zny9|`jgNHBWNW|h(~TB!I}0=4b-QchHip)dXnIbQ{9%Ze+$LG4z{k|(JUC_v@aSM8 zqPz=-f%cTYU14H7>5T~#Z{8n2z zO4(`TdWjDccPk@OaB`SRD#-9SfjQPGmKqbGEz@-%={pA3;VuPEpPug;sjj~;mYWh| zgTDF=+Ak|$)LKG+t>A@28(Ti5kxl~yhbH)LRDfQ(%bXcAc|<mQmMTtFqgNoOu> zQ);>E>g%kMIPfz*BZJaENEPiav;&eBDwhm{P_KE>r_!z8W~Ol#y*FT$=hwuelJ%kR zoSdg-Y#m!DI~0J)RH=nJa$zAKgWp-&zNFv!{Dld=g|9Y$yW_3$9?Cah_j#xae~3Pd}JCY1Dt7ks9sUamzE=OO_5>%bEuvcY zs$u@eF;6xub?5tGjK=pus;YD`HQgeh2 z?gD%3iF<73BLTkicl8h@UTpt^CA^fIM^rba?XDMpn6qYYH45h5A~dbBl%T-*`R6ZC zu9M_w#@U8qdjM@wOy?+s(#fKE==v06fWKrwi=_#l{kyvqvXlv}*2;H-wQ`Vrty?a& z-2}7NN=Fttm5aFXTBNhbj0?XMIB=|-giJ4H|YV*B@C6O zD2)DD4$O$F0E5f9uN@n#Ndlt}0mqBj@9VRFGPW*CUtoER`U8V5TC?=1>Isq)H3GdW z#-}^AO_vB1q!K^-B0IlIbrztRs8oMVnTJhJl-RZ1t=soygeyWUmT?=R&LY{EBZqnt zJ~8-FV(CFaaCcyc+C-4p0IpGY&iU1iiHjQVn7ieeR%j#GoK6y#^f2Jf=bw;>7KBiL za7){9s#T?WgOJW=KT`MsY;YoG3u{aKL3Fik>*vq5pOz}pW(_mqNERyh_~EByH`kj) zu+QQvAqd>^y)!%Mhef8yUwhx{?;GQ8gMMn&l)7=>kY~b9{j>=~AgrqpmjxNrmE?+6 z0D5v5t7%|-s701mqOqV^I#J0^H-!+7&?6+5vcB+&%Es&pHah(lAet7#Cg3RjmyqgK6Uj1jZd9yY9N?q`uJGpAO_GbH@a(!_yW2>1<6k`=Y>&yCyLZ+} z5LbjlXbBrKUx$^(|Ak=|`Rhz;iglxk*^ax>s$s2eA4EuF>QYN5sB98{TrSq+Yeapv z(S@e^DijZRu8>(eg&->Usd-Jo8_kbKoH*i>sRSQizkJ;K&kN5sR8BRgVKZaR(r{Cg z&61}+zwnZS@8SEel$w|lhi9*Kd8LWZw8X@;6VM-$;cvzS;^Pe74 zZ(lnczFTI7Mce2MP?kG?8+~ayFV+mm7OeQ7^l~ZQ_4|w0>PP`EKe0g@qUB-GQed+7 zXaFak8p33s;F0&FVb2)I&*#GBRMwb_OF~dA&7_r1D{y!?gJH37Xg|;P$yePv;s8Cx^wbhS~TL4P(qIKv=$i8@cwIUmyIvvK3Yk znh&>J%Fz9eaCFXRp^-}&=L-hFy;x`cG=;&OYjd=!J9GaQg-c(GcvM;VYwdM(Ye|^? zz3cq66z>g-D6)tj@pWG`s$>In=hW4CFUpkOvmkFa7lacy|5zLT%$|ry+F?uPBuj$` zvGDK%VP2%;7)$4W8y@9}k_`&@=5Jo-2xKK=6K;;FUY?b4P?zG4AEyJl8%VR#HPYFZ zAgMD}HDf18=7#5%4&{gA7F&dra*E21u}B0e+NhVQ-yxqG;EA#d*PMvV5tP_Js3gjh z7f^a{kpJq7KzgyKczobrAo8(C=WR=Ly8ggD2~=Yjc~`1O>4|+G(&wsfFD`M)d3l?iFh5+@|kYv>DT5iIf~5+0m;RZMchl{ z`?N1ss(VZsTkg^@Pt5$ut@=jx?u~_p=*c7x?{mxF#}Um!M2~t`J8=!V6Z`3j>iMr! zK0P4X;I-v{tYOxj#j}LZgDNYGs{&@cauOk}62URj4i7s52Tm2W09ZLVbI6G1S0z#0 zWd-NetU_x?H&_uKdin?13 zrxL?o=bANXyV)E01bt%&elGV(jr#=46U3{3WH6zB1#X4X=k$ra=?_~yC&)|pezR7c zcFN}m9vj+r6*FwGQ+6>cwM}l9DEr=YQ$|iB6D33q=QY{Qe<(uo&hY+(_Mo7{?8#4& z8ERAP9Cn6b8P-q-;h6;e$}XC*Sv;(4d||*AI1}b4no&KD?zSBvNZPMTjz0An*;iGY zC$hkQ8@yL2WjUb{)kl&?Q+IlsZ!Hl*O5d$v#dAN#$eG@h*p)1?w=Oi} z^R=PPdZ{x%p^QQ?i-}+`c?RCQ@Ffv`gxd4R{*47ayodRJ5T4S>=5h zW6bgNDt)z#nNMgvmS(4upcQS3i;{L~mP0vmfF4Z#=M3va;j%i$%bBpT?5yeGAH@Ey zd3ShH9d8+4R(9iu(-t<;?B?hyYx+r-ei625V6Hd1W1SU?w>5kM3DO;PI_G|;HB@qc zJmKI{KVA_z!ws(0X5sF^$eFu!_QCMr))+zJdA&D_7#1W|6Cq~OBuF`%T4KJ*Vyd|28Hd` zOH_-Ney4&2@?wfyW#h~9!!EJd?*znxgkW+G~TwkYCjP{w+H+k5@@ zV+B!S_%~vtpKWCe@lvYjKw%B)El}l}7ZRn2ql$DUxqr7vGS|20x-41s{yZm!k%^;*JD%7lJun#h=T6jXHjxW>&15dTvGDxyTAB0?z6RIWZ^smbQK*X|ZvR8V0#x*~x28gh zYF9$+TR7@kvSF`l_%#&zm>WigIonT~vBz;-r^R-^pY}qtyK12{=#o|@K$Knlz zdE##QUIEPrWgBPAwvrit&0F#S|9nZvSO)fprHakbERhA((2l&s2bj?$3UJhaiDuR|0x}N0s45Af&AR*G1bgd0 z8M1TjX618qJ#b2uBU?6m;%Bdl9?9Mtt%@|!bTPQhuV1UgHfC4tCqX!}7=x|Ae|=*` z?AiXIkJOB3pLw-^;ajR6{YAypSC52I;VoqOBn*ZTJOa(cnNBit7{w8!OB&L7I1#G> zL6(pRe7p^Y$=Ot_SF3(9Ut7(PAhczt?iQ+~9IM}2iTXaCF@8PQRfZ`Lco8z>gQfHo zb)u27lh%O3S4u?sDbLz~cyB$EsKiUiWCf-$VI@hhxR}^~Qwj1D%#|A2y{CDqe0A^g ziZGFTdI#CmN*ixw3%KTXZV_gz=w&ONHGUDeb;dh2b^h+lW3ox|My6;a4NdlWxRAX7 z_vd}L(;0sTsCaRy*9gW!;Y{`*V69Q>EyW&ATr2;O{Y0tks-#_c9X7|Q<%Cr#qO#x| z2Hd*0i&xcuJR(~hZ_W=wpzqykKi)&r0$RT4YlT1}MA$8WR?YRODP<>TXynUxQDc4- z*S`cPj&cth@_#@izi^ieeDt_eIoLI;{7Q(U8>zX?!53K>SR4< zU3^HW0f#wyy_tk53x(i0GR?r(rP-(`{5+%CxV{BmVyR#NOow*~SRKRJ!&GN1DhAxm zJBpouE2O?cP;g$|c@vC6Y#wm6=V5G=c2#;EXu9f(=c4OyRTjzy<%(n8(U_vf>aicD z3qnJ~F62htR@>d<4Esz}30!{$GnyBn%zU3G)50aa3iGWungsc86r4#*wUSUzKvopP z>NOExu>_SB?m~h#M6&e1Jvz|f^P(G@JAfB|w%_aVYko}>a@LyfyyWQ}-p7!zIQg`;ajh0SLeEJG7m8K7MAMr8>?) z`$bMww?p8nEg_BS`@1WnINzoLom7eZ=r}l7Og*5Q@`Y^3EcRq*bBAH4BRs;M374ooRIUyP+}&YYZ9A<>>% zEVMMr)j1>!C3(lL!w}BASJ*?T|3<1aw%o)?Vsvh0k7@ zZ!N#}i2AJS{t#|ddsu9!W_`hHH0$dDO>aJgTIEWf?N&F5$Wogt09H6ADbDpoA~&ds zM%5L}K$06{4nr{@E+&{z+d~9Fe8D>s>a6?KXl#ib3%a@y2a%LJ4AkycM)$A&n$OQ8^2Q{!mu z!I`^@rFsmFhA=(ZJuMOb-+d|uW(1)+>&m*K(wzr=&~z%=x!WMK8fUO z))G4MVAnkJixdzHhm*R0u(kSPHTs}yZoB!S-;ICD(4CZudVmIPSaW8pzCr7>y~-o_ zeDMLGMK^+|a&dM^BR_=YgdGp;HU@TH!y6(6-*DoPYV zUCl984B_)^Z(i8g(p1vkH~Mo1;Lo_A&=ZFbxJcWK;q?)AK}4{BQt^G$PSJ}^PDfWe z?I%y3AC;QXZHjE&e|=V7{gkbW<JrkgEb2#@RHqQLzr?Bq`Z#kaMJd-pHOm>Ks zTK!0a?0+%kBE`^u>ce(F|E~z^*5$HQAY&6C#HZjIQ1Dt2a5xz|m0f>5GXBbVd#C)O zrICLim3#5MNbId@HowJb)FS@$be86cOuzYk+md~C`LUR*vUReW`mEyiqX@6x2QApK zCA=0{mE(0amVkNMns-z`Cl4?vrizR|z0hh>ozyMg6qKNUZKWOG`se`N%$3Wc^TT*Y z34w**uEEjrJ;x}rj;>tN5nCQpNivx1zrKA!3|&mlQD6>4)2K5grlQ6HU3Bwyv1`)# zC(*jfyFM{YJdV9p@o8Ym!_T0b+LCL=J%*mGYM;R-WT>0vsdj9pFKiINMOx2&<+xWB&BVE_78nCn-SSjNXh=t_dF*@S%Hp& z+T*)_Y2ec1In}HzN|F z^~8^wR_B;8ziYS_=wg*|iP-H&!h@;Rc?he)&j;_vW!qG1^QimH4AUyEZ=kr6RmN6{ z4|LunXx<&GYy3uNO^{Ul{0PSob%uWWL1v(V);wZy(Max*dC8+y1tZuZ>ySLX3-{jlU-VOtb2CHh;cpNdhd%LOjRPV|P1Bvtii| zqtvep3V3^2Q5*srj7Mow+Zh@kXne}%$ae}K>oRE_(C1wW&Z1lj_@;c;b+W*mKqOo~ zrlrU(Me)`Vrb$}=aTN)9-gm}-2772`#Gfkh4n`6q^)Zb9FkB#OK=h*$%qyn3O)o^+ z_wqjusu?%fPnxR@^^U^juAk`9<|Npi3b@nzxkrl%(}UfCu%UeP;fA{3Dy-X%Z#e*lr<3LYxaEa++;_GnuP5^KWV` zoS4jeqTs16gI?>C!SVG_88)Gxz-joT-WB16_@TYY*d3w|ed$t~RAz<%TIXSo*}jF! zkH})rsx9p)qbW2a`|KfB%wN;YMsF)AvlcT`!xm+QAlDwu%EvcUdH)g(NNTqO5b0yn z_5OM*F)0fZ>LW{$x-D6M5Ntq?q_yv%2`lr-O)|MDLWNKA5ZouwVL`7ULR8@}W`0@E z6Q${hIho}!r}9(k`TvwIIj$0S>Heu>A_>}vTjLhRTV6i0{k>fsNKxS%$Hh2DP3SPLE$0AMXX zDhV)5A&?RPcX9D1Rs;aFxw2Tgp@TdwjK@3cm4XqbZRmx9d@MmU!=WJ+FB#m={PLh0IR&Pp4 z45LE$vQZ6aru80U0>gDHcb!#WzY12xFi4}EKhgAOD}}Nq`Vs@hOh!s|xfg~Q{DKzm z8sBvE+&Q=*Nzmf-dLp(Gx(ISqsmvShAQm9=WPc*tcc|tyM6_kECl+Q%lv$=kuj_5E zn7JT3DBY@mDp2R$kE?7e3kRIbBt$KA@2w+E$(elOZw801^iITbKs#|XxZmIzBB{|~ z=TjKC?^)6fMLF-qKIA%hD9C7e-z&;=e+Zkn7_Z*wIpQQJVGiZ=;zZrZsIM%)3C!p}GmtF-~|puL~?&HDEiE0a#(B=@e);SG0Y| z8xqTe=RhftZJg(gcf9TQ%jB#WUG}q`sb3tA9M8GzdSQQ2oOzT+ zV|7SgJPkH>1FOn7SZ(l*WwUAWbpact5wZ}h`?Y|ADSWrSsT*d(U_%uUw*~1SZ3ftJ zT@6J?!2V#}ubH^^{UL0!y-FKCz%2kI&(8DF)>f$gxwKN5ZPpjLEqdYFEKfben zT&)7zj;T1p_L^7URFxC(`t+F0Dh7X65q4lU;K3p_!P+#$ACjVz+pInYXd~$j9B?2R zG8dkxxjhiUEp;7@$n!Qf)YNn5`B$w*^TO%PUWXJ8n}=(7&8N6hW=olTrRE*scY%>p zroeHLUnpP?{iUrYzraE|ffCP>*45^JWi=OJT4IwFpW|n!vb!-)8`G2i#tmK4!N(Tu z-u1cZ<3xZUF-hw0h_1^|}s7^@kb(q)QA4FPW@$h>v&V=-% zkm@1L@(MLQh~mUNSX9SzaEz9YBNOv*_7@LN`NjgY(EU~;BpcV8+NsrdXLad+>nNFz z+HI|nD=K{YrxQ8osK8}7cw2%H9Qv%oqyAHVG&e6cE@&#b-uO}s@y=Cqld({!PJYm6KQGkVX-iz zv15=Z`&H|>=LMZ2a_K4IW){hD{@JBpuf{~biW>J?L`#L7RZtWFx5w!g2?gmAmhL51 zq`SM8T>(K^x><7R6p&CPq;X~G?glC8lJ1nH5$WswX6~K)c4yARshRV1&eQq*_4z_M zt^Y{8ulRvyOQS7B2AeE2BM;W#4>se9=^IX)??iZ?b=6&$iYXPZR)9C)R97imPsjd5 zFgW-58Km!u_m7(A?u#~E;mN}6`5C-gor3m8?~?dq`y{8jRY`a(0oLLeUo0j z>s4!NhDW2{9v)_F%G++isw?41%~fSOVZmLGn140p`Tx&<^uJGO7i)VWQNgG-TdamQ zTkIxXd?868pokD7yj-8$x1!h=wHdOoSLX=qvWK<~+GO$CtHsJ0W zTdfg0w+R&PMp!DpWhQ3fg}3sD?}*wGTYc)qcuJ!2d^1ASJn(jMxaqRI;Q26T zS>IauvnrI%#PkJ3^~975m$SZ7osK{>Vn&xGoVPTBaH+Z*1XI?x9-@O23ecZ_#7@f! z=A-{1S!^ixRC@wLRw6zmd}MT7Hmu(okt^|SKoIvs)_cERcAR7ze#iCn@fWHjyqs&N zQn}^C0&84RT2P9oWali*7*jkiNWZKDjx2#oiDa}cmH>Dwa2!(_KZGiP@e7zD6hVX$ zhFKn2=*CVY97+CpVG6?_<4X}Go7PYDDtYpnNXghQb$QWmE!VA7-8Bg9^gQ7+WV%SW9I;3)lI)yYfKmnTZ*%~Rk`d`#BE?b zeo59(0D5N7i_bvxn2;Jy`a-Q{9D$i zJQ(t2#l6G~0&`dyozbMfE5)9%JNsp>Hr)w;bSjYHZQ;A4b;nocRf+Twn>U4WaLa;t zjQ5jdl07s2$teaTPcwuqJPh4)SR<^dHfE*RTj|W(Bfkr|3&~HE)2A`(oG9G7T_BBY z80ugDjhI<8S+J7w1ZF#$j2GI+RT@~8{E^N1Cr0C~Ku@0Vm(Pna0)_uXP^`$Vp-2aNs| zZdz2=^t02TKRzISQ!q|SgoUnFM3LBJH-@4@=#5equJke!eO{^;g5Qv;fbbR5fu5-f zJydUW-SOm!72i08_qyc-D#*aRIM~eS zYgjA_T*`Qejkw@1+(fFf`{rfSy3Ss9={ij%aIP%8b83D!xzWhZR~r8o6qp$W2Y!x? zG8D#%6fEs`+Wl^6kD!dzAksHR*;3BRI^n)*Od2x!U}!P#+FwHA9iAVNYGgRR!Fx#+ zYf(Uc&lwl~AaS#urgwdF{2Rrovr{v3Z|~dw#iC*-P7fX=*53W|{He=Ij?~}dHe^52 z!qOVlZb8NEPR}&fL5*OvGovRsP;sT-T(V?R*`7FS%_ytHM0EMO1l(6QWLMqcJrO_gNL|zkZ_1} zO#P?l0xJKALO-^b&^GC7^u-I+JMSSg849~#QpG*gGY}*-^3uLDJ&K`-9ovwp@t4?7uxtiN7EdH>v# z>km?}(HTDQlgx{T@}o{s=BYJaz7Rf+^Eh|OrdHYp1Ot`7(&@@($`t}9YB_;9xnnO5 zk=!x+5?&}b)@NJRR6`Q?7%v4(WTcJzS@pLlYKCW?w+>}cqlT* zC7F_7jXW`=PTBXAqW=~r`Hi~K>K`91_bap*Ve9231P$WX%j!n|_LJf(Io_Q*HHziI zy4{~j-MEE?u1&hOLoe`eHHfYpg-giJCChu<0J6XTzR{T*1`+a)eoI28Pz)c?P4fa) zhqqH5A)iXd;!xZsh>;$v)3&>oJLDbG{O6)?&0MkD-QSV0xqcRx!+$JIBh!B0JU0Td z**bykTVR_l&O4UbUxt3+Z50jscV-@@-|qgR|J;AF*2`0Qm=Wk-!)T_dS-3*toZJ z*og}pPj}N6u=ArNDEx)i_OjoP)V}PqelRic={BIx&Kvk)?-9A-Tc536Vx)#EN;On6 zNaE#S3`sCax#krve@`%EEty@9x$yhq=49*da-0ulZXP76ymM+!Njs;$^btYxm*lwR z+6x#r+VFLuq_!P?vUp#K`9_8|wt3o1AgcTba9Q5dwuF6H=a)9IlA)V9*`P+nS8)x! zJl}3n0RRRas!Bp9iD^<~h8>y;Xo@R)UO`GW{AVW9bg~)R5L()8jE>-S$^>=3({IOG zI~2QoX?s;}Y6NbX-+)vT0K~k;4$N+PtigO{`dsv03j*47&@h(jI5dzd_Ka+DCP(iZ z%+?SaMx9^h%k$kkKk7>CI}?+nje--^z}zZ73G! z?nVj>LMASawH`Bb+tt8Xq~p`L;xXeeA0H-UDy8AA`0F{xK(9zUgf{>C$8U?v>Y1&5 z%K#YO=nEXDzx=DShrrLi`d3`zdbsvV>>O?o~If zI0B1r0h;O^jB`UUVwVrybR2|0f1Nuo_wE3<=$g$A-q-m+&lVQ;=g<(eAAzq=Cf}T2 z!2$Q`kYoxEG79es3~#@un4YOXU<9_WyChvK&vujq@f@2H`+bH{{~LcX1KD1LA>Gkt zvu1T2XU>m{6Qd1NqYVLLDGyW!E%A0H_eZ@BbD3b-RfH2w%R$4L_E27H%@LLF94x8% z0R42d$#GS(z3d_J)V5BMTJ(*94zT;2^^Ph;#b9_9Ks~&n!>_PJ#P~Xxl;-#}tLJrU zihS?feqzG}%f@dt7R5jv;i3eePe%*OP!-Kb`NqN?_Vm-mAeK!4#}c~C>)-AX(I^3t~_g3ifFKPvI>+^d~7_b5(jo!)h#t;?BaQ> z0vy6b&+n@z52Q7I;lXB=&38K`=R;9qJn}{gS-HuO=b3Aj-mdn=auLTK2|z*rmbb;D z_cpI-Ht0IrmRJBPEn|$Umgu|67im35{<=O-_O!2JV|aYWhVV4{qY7-nuoZg~+D+>{ z#DO+{gtkvDa1Y#~08VKCjkzke25wT&ByC6kw@W9(`(tZuk?}+eyL~?Cgd;H=9TN^? zwYp&=H>O>zsg^TZWT;cGuWz?=>Rf1k*6Uqd?c~)g_oiW@;(71Tug!dC43i*u(a-yt z*TE%tt}}QRJ4dMOUcDzjVz0_cKt_nCKTut!3k=_O(@Vg}kRftor(h*;nj^;Ndkp;3 zYCwT_)Yg$mb%g86qc|gu2<6|pbX1w6$2af9X$zCp(`HG?t0;$I!3oO9!_=iu2U3X& zw}w={^u41JHc_ahqSCsG8`7^F+%2J#AoE-MfRyHY`N{Mwfx_d$y_ut>oE!vGt9d+i zNy`bBSfCGM8LC7fsDZ3%VHyW7)|N(zEN*}xnLwD0leKWREkL*_qZ9;ks858nU_qwb zzYdBh4wTg@R?>8lciH0Tg#VgZ$*ah`@Gn+iSc=o#`8;F3m<9e3m|;;)ZS=7#`Am^j z)tX5BC6-b%6=9`n(p|GMr4}N&5k^kn2y6M{^i13l{G*SsT5I0II+|*j%O)N8?+9-z zYUhzPex{ENS&fAi)UDGBl8~pA7Il;N?LO<(bWhi_eC5-G4kg!US9Qhm>g4zL>6vj! zBdcv?Cp%G1$5+x_GK|B57w$;*k@amqJNxwu+N0{w1GIe6_15EgawlS-EZA&m*A>RP zC8qn+lo7TdZgH`=btI;F&oRMB=}Q1hj45<6`#SaGTIVNhm0cg|zgVPy_~lTa>t(4- zzRlawM%%r2$=w5+(&u<(TP&I(qoFu{=;T94lgrIzi zVk%p@)JiWL?I<{%bKD`B{&Sap3-9DPTj?e>XEI|R=A)mzSE#9-X`;<2f{a0O48S{= z<<3%ZOgDx%`6%lW#)q6{c-nsXB;?p0^Pd8bd9zxHQ*(=FBD;B!eV#StDk9;D)AvGo zj<6}D0sBn+Xguho3H#5#0D<7*Unb)htjA--~xs|zk{N9^Z{{!1iUrb(5SyVzqNnA)+ zLR>*fSx#A4NlXMNp(rOND5xYNB+V@K|F%H>hi?7{H;W1VM+J-hvxeqZqh}FU4+7Nu zE<{DOS!Z^6sZ>OKwYqj1Oc!b}t_ujK6HAqwO_t24E zousq?hCRh7X^Mh?k`#gWWgbV@k1b=MTc}9QBhk4hu0rLcX6)&ko*wou zhKNVfWA(sMt1MfXf}zM82E~NXF!*bDvbj{`T%365bQtMo@#uoOfLi(_W2;qRJ2Sgl zD}2`ByTlZ{0Dhaqeds2|n0@)&lT!q)a)Orx(*0V?n(N3Zs-9x~?T+gUbr-uJK7W|6 zE3O4DF=CC@6h~tX)QIUE3YJ~(z&;A~Ut@ve%yyzOfgZr2Vao^~5sf0-_|Dr;v{IK=Zp_#q(beE#|Kyp&e2=L-&Xs1S!q*4OAejjezuKNW z=X{y-y$mdrj*MthOjb}q4p2X_F1A$eRrop;;mF4lK7kfHMZUXqMR%hKDKZy>&on_{ z=kb^g^Gp|n-5GUEd4!YC6r9gDGuTDtD8i<3=buzl6~0#0{?N=9P|%0NKOjezv(}B5 zM_3Lg`^3yFgs#^|>U_*%=9V)I{f?tYm`|a|9*{i=RlOy>Sg7~u_8?2y_DVcE5w*OEP%5CkdV?p5f(uP-vXabF-}^D=AVpG%awBVEbpQc+&#Ek;yl<2Wcj)7yHMVeb+ay bZkalFF#u`p!`Mtj;y?)^c6KElWupHAkhT$$ delta 21422 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 NG&wd3B_%~qMhchCcK`qY